返回目录
开源项目安全工具类新手

Sirius Scan:开源漏洞扫描器(Nmap 发现 + CVE 检测 + Web UI)

Sirius Scan 是一个开源的漏洞扫描平台,提供自动化主机与服务发现(基于 Nmap)、基于 CVE 的漏洞检测与 CVSS 评分、实时风险仪表盘与修复指引,并支持通过 gRPC 的远程分布式扫描代理、交互式终端和 REST API。采用 Docker Compose 一键部署,六个服务自动启动,许可证为 MIT。

0 次阅读2026/09/11 发布
Sirius Scan:开源漏洞扫描器(Nmap 发现 + CVE 检测 + Web UI) 来源图片

社区作者 · zZz

它解决什么问题

Sirius 是一个开源漏洞扫描器,具备自动化发现、基于 CVE 的检测和现代化 Web UI,官方描述为“克隆、运行四条命令、开始扫描”。

核心能力:

  • 网络发现:通过 Nmap 自动进行主机与服务枚举。
  • 漏洞检测:基于 CVE 的扫描并给出 CVSS 评分。
  • 风险仪表盘:实时扫描进度、严重性趋势与修复指引。
  • 远程代理:通过 gRPC 在多个环境中进行分布式扫描。

交互式终端:

可复制命令
PowerShell 控制台

,用于高级脚本与自动化。

  • REST API:可对接既有安全工作流(端口 9001,使用 X-API-Key 认证)。

架构与端口:

调用关系:UI 经 HTTP/WebSocket 访问 API;终端与代理运行时经 gRPC 访问 Engine;API 向 RabbitMQ 发布 AMQP 消息、由 Engine 消费队列;API 与 Engine 读写 PostgreSQL;API 做会话/缓存操作、Engine 做扫描状态缓存操作。

  • sirius-ui(Next.js 14、React、Tailwind,端口 3000):Web 界面。
  • sirius-api(Go、Gin,端口 9001):REST API 与业务逻辑。
  • sirius-engine(Go + 内嵌 gRPC agent,端口 5174、50051):扫描器、终端、代理服务。
  • sirius-postgres(PostgreSQL 15,端口 5432):漏洞与扫描数据。
  • sirius-rabbitmq(RabbitMQ,端口 5672、15672):服务间消息通信。
  • sirius-valkey(Redis 兼容,端口 6379):缓存与会话数据。

界面:仪表盘(Dashboard)、扫描器(Scanner)、漏洞导航器(Vulnerability Navigator)、环境(Environment)、主机详情(Host Details)、终端(Terminal)。参见配图 1 至配图 6。

API 访问:REST 端点位于 9001 端口,由内部服务 API Key 保护。优先使用 Docker secret 文件(SIRIUS_API_KEY_FILE,默认 /run/secrets/sirius_api_key),SIRIUS_API_KEY 仍作为受支持的环境变量回退方案。安装器会写入 ./secrets/sirius_api_key.txt(权限 0644,以便非 root 应用 UID 能读取绑定的 secret 文件)并同时配置两者。示例:

命令
curl http://localhost:9001/health -H "X-API-Key: $SIRIUS_API_KEY"
命令
curl http://localhost:9001/api/v1/scan/get/all -H "X-API-Key: $SIRIUS_API_KEY"

完整 API 文档见 REST API Reference。

生产环境安全建议:使用 --force 运行安装器以重新生成全部凭据;限制端口,仅暴露 3000(UI),保持 5432、6379、5672 为内部端口;在 nginx 或 Traefik 反向代理后启用 TLS;保持镜像更新(docker compose pull && docker compose up -d)。

适用对象:安全团队与渗透测试人员、需要自托管资产管理/漏洞管理的中小团队、需要自动化扫描接入 CI 或安全流程的运维与 DevSecOps 工程师。

— 本文由 AI 根据公开来源辅助整理,命令、版本与许可证请在使用前到原始页面复核。

安装 / 开始使用

准备环境

准备环境
Docker Engine 20.10+ 且使用 Compose V2;内存 4 GB;磁盘 10 GB;支持 Linux、macOS 和 Windows(WSL2)。

一、快速开始(四条命令,按顺序执行)

步骤 1

可复制命令
git clone https://github.com/SiriusScan/Sirius.git

步骤 2

可复制命令
cd Sirius

步骤 3

可复制命令
docker compose -f docker-compose.installer.yaml run --rm sirius-installer

步骤 4

可复制命令
docker compose up -d

首次运行说明:安装器会在首次运行时生成安全密钥,可安全重复执行;六个服务会自动全部启动。

二、登录 浏览器打开 http://localhost:3000

  • Email:[email protected]
  • Password:由安装器打印,在输出中查找 INITIAL_ADMIN_PASSWORD。

三、镜像版本说明 默认情况下安装器不设置 IMAGE_TAG,因此 Compose 会从 GHCR 拉取 latest。若要固定发布版本(例如在 .env 中指定 v1.0.0),只有在六个容器镜像都存在该标签后才可这样做;可在未登录 ghcr.io 的 shell 中执行以下命令验证:

命令
bash scripts/verify-ghcr-public-access.sh v1.0.0

四、部署模式(安装器步骤始终相同,只有 docker compose up 命令不同)

标准(大多数用户,从 GHCR 拉取完整发布栈):

可复制命令
docker compose up -d

开发(本地代码热重载):

可复制命令
docker compose -f docker-compose.yaml -f docker-compose.dev.yaml up -d

源码构建(显式本地全栈构建):

可复制命令
docker compose -f docker-compose.yaml -f docker-compose.build.yaml up -d --build

生产(加固设置,pull_policy: always):

可复制命令
docker compose -f docker-compose.yaml -f docker-compose.prod.yaml up -d
  • 非交互式安装(CI / Terraform / 自动化):
命令
docker compose -f docker-compose.installer.yaml run --rm sirius-installer --non-interactive --no-print-secrets
命令
docker compose up -d
  • 轮换密钥:
命令
docker compose -f docker-compose.installer.yaml run --rm sirius-installer --force
命令
docker compose up -d --force-recreate

五、验证安装

可复制命令
docker compose ps    # 全部 6 个服务应显示 healthy

或 running

可复制命令
curl http://localhost:3000    # UI 有响应
可复制命令
curl http://localhost:9001/health    # API 有响应

预期服务与端口:sirius-ui(3000)、sirius-api(9001)、sirius-engine(5174、50051)、sirius-postgres(5432)、sirius-rabbitmq(5672、15672)、sirius-valkey(6379)。

六、API 调用

命令
curl http://localhost:9001/health -H "X-API-Key: $SIRIUS_API_KEY"
命令
curl http://localhost:9001/api/v1/scan/get/all -H "X-API-Key: $SIRIUS_API_KEY"

优先使用 Docker secret 文件(SIRIUS_API_KEY_FILE,默认 /run/secrets/sirius_api_key),SIRIUS_API_KEY 为受支持的环境变量回退。安装器会写入 ./secrets/sirius_api_key.txt(权限 0644)。

七、常见问题排查

  • 服务无法启动:使用 docker compose logs <service> 查找错误。
  • Dev overlay 缺少基础设施:需要同时使用两个文件 -f docker-compose.yaml -f docker-compose.dev.yaml。
  • 端口冲突:使用 lsof -i :3000 查找占用进程。

数据库连接错误:执行

可复制命令
docker exec sirius-postgres pg_isready

重置后密钥过期/陈旧:重新运行安装器,然后执行

可复制命令
docker compose up -d --force-recreate

八、生产安全建议

  • 轮换密钥:以 --force 运行安装器重新生成全部凭据。
  • 限制端口:仅暴露 3000(UI),保持 5432、6379、5672 为内部端口。
  • 使用反向代理:在前面部署 nginx 或 Traefik 并启用 TLS。

保持镜像更新:

可复制命令
docker compose pull && docker compose up -d

界面参考:配图 1(Sirius Scan Dashboard)、配图 2(Scanner)、配图 3(Vulnerabilities)、配图 4(Environment)、配图 5(Host)、配图 6(Terminal)。

更详细的操作手册见仓库中的 Installation Guide、Interface Tour、Scanning Guide、Docker Architecture、System Architecture、CI/CD Guide、Operations & Troubleshooting;贡献指南见 CONTRIBUTING.md(Issues、Discussions、Discord 为快捷入口)。

来源教程配图

Sirius Scan Dashboard
配图 1 · Sirius Scan Dashboard查看原图
Scanner
配图 2 · Scanner查看原图
Vulnerabilities
配图 3 · Vulnerabilities查看原图
Environment
配图 4 · Environment查看原图
Host
配图 5 · Host查看原图
Terminal
配图 6 · Terminal查看原图

适用场景

对自有或已授权网络进行主机与服务发现
梳理资产清单
执行基于 CVE 的漏洞扫描并结合 CVSS 评分排定修复优先级
通过风险仪表盘跟踪扫描进度
严重性趋势并获取修复指引
使用 gRPC 远程代理在多个环境(多网段/多机房)分布式扫描
通过 REST API(X-API-Key
端口 9001)把扫描接入既有安全工作流或 CI 自动化
使用交互式 PowerShell 终端进行高级脚本与自动化操作
自托管部署漏洞管理平台
数据不出内网
在开发/构建/生产等不同模式间切换