diagonalciso/soc-sbom

GitHub: diagonalciso/soc-sbom

一个零外部依赖的轻量级 SBOM 漏洞监控仪表板,通过多源漏洞情报订阅自动匹配软件清单中的组件并跟踪修复进度。

Stars: 0 | Forks: 0

# SBOMguard

soc-sbom dashboard screenshot

一个轻量级、独立的 SBOM 漏洞监控仪表板。根据多个 CVE 和漏洞利用情报源跟踪您的软件清单,并在出现与您运行的软件相匹配的高严重性或正被 actively exploited 的漏洞时发出警报。 无外部 Python 依赖 —— 仅使用标准库、SQLite、内联 HTML/CSS/JS。 ## 功能 - **多源漏洞订阅** — NVD CVE API v2、CISA KEV、EPSS、OSV(涵盖 GHSA 和 20 多个生态系统) - **两种匹配策略** — 针对商业软件的 CPE 精确匹配;针对开源包的基于 purl 的 OSV 查询 - **EPSS 评分** — 来自 FIRST.org 的每个 CVE 的每日漏洞利用概率 - **KEV 高亮** — 在各处标记 CISA Known Exploited Vulnerabilities - **SBOM 清单管理** — 添加/编辑/删除项目、标记为已验证、跟踪最后审查日期 - **匹配分诊工作流** — 确认、标记为误报或重新打开匹配项 - **仪表板** — KPI、待处理匹配项、KEV 匹配项,每 60 秒自动刷新 - **Systemd 服务** — 作为后台服务运行,可在重启后继续运行 ## 页面 | 页面 | 路径 | 描述 | |---|---|---| | 仪表板 | `/` | KPI、最近匹配项、KEV 匹配项 | | SBOM | `/sbom` | 清单管理 — 添加/编辑/删除/验证项目 | | CVE | `/cves` | 包含 EPSS 评分、KEV 标志、评分过滤器的 CVE 浏览器 | | 匹配 | `/matches` | 匹配队列 — 确认 / 误报 (FP) / 重新打开工作流 | ## 漏洞来源 | 来源 | 覆盖范围 | 是否需要 Key | |---|---|---| | [NVD CVE API v2](https://nvd.nist.gov/developers/vulnerabilities) | CVSS ≥ 7.8,按 `lastModified` 增量更新,每 6 小时 | 可选(免费,可提高速率限制) | | [CISA KEV](https://www.cisa.gov/known-exploited-vulnerabilities-catalog) | 已知被利用的漏洞,每天全量刷新 | 无 | | [EPSS](https://www.first.org/epss/) | 每个 CVE 的漏洞利用概率评分 (0–100%),每天 | 无 | | [OSV / GHSA](https://osv.dev) | 开源包 — PyPI、npm、Maven、Go、Cargo、NuGet、Debian、Ubuntu、Alpine 等 | 无 | ## 匹配 **商业软件 (CPE):** 在 SBOM 项目上设置 CPE 字段,以便与 NVD 数据进行精确匹配。 示例:`cpe:2.3:a:paloaltonetworks:pan-os:*:*:*:*:*:*:*:*` **开源包 (purl):** 在 SBOM 项目上设置 purl 字段。SBOMguard 直接为该包查询 OSV,涵盖 GHSA 和所有受支持的生态系统。 示例:`pkg:pypi/requests@2.28.0` **模糊回退:** 如果未设置 CPE 和 purl,则供应商和产品名称将与来自 NVD 的 CVE 受影响产品数据进行模糊匹配。 ## 安装 ### 前置条件 - Python 3.8+ - Linux 及 systemd(用于服务安装) ### 设置 ``` git clone https://github.com/diagonalciso/soc-sbom cd soc-sbom cp .env.example .env # 编辑 .env 以设置 port、CVSS threshold,以及可选的 NVD API key ``` ### 手动运行 ``` python3 app.py ``` ### 安装为 systemd 服务 ``` sudo cp soc-sbom.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable --now soc-sbom ``` ## 配置 编辑 `.env`: ``` SBOMGUARD_PORT=8082 # HTTP port CVSS_THRESHOLD=7.8 # Minimum CVSS score to store from NVD FEED_INTERVAL=21600 # Seconds between feed runs (default 6h) NVD_API_KEY= # Optional — register free at nvd.nist.gov ``` ## 项目结构 ``` app.py HTTP server, all routes, inline HTML pages db.py SQLite schema, migrations, CRUD functions feeds.py NVD, KEV, EPSS, OSV fetchers + SBOM matcher .env Live configuration soc-sbom.service systemd unit file ``` ## 技术栈 - 仅 Python 标准库(无需 pip install) - 采用 WAL 模式的 SQLite - 内联 HTML/CSS/JS — 单进程,无需构建步骤 ## 文档 请参阅 **[MANUAL.md](MANUAL.md)** 获取完整手册(概述、配置、端点、集成、故障排除)。在运行中的仪表板中,点击右上角的 **`?` 帮助按钮** 以在 `/manual` 路径下打开它。
标签:CISA项目, GPT, PB级数据处理, SBOM, SQLite, XXE攻击, 安全态势感知, 安全运维, 漏洞管理, 硬件无关