morpheuslord/Startup-SBOM

GitHub: morpheuslord/Startup-SBOM

一款面向 Linux 系统和 Docker 容器的 SBOM 工具,通过逆向分析 init 系统和包管理器数据库,将启动进程映射回原始软件包并关联 CVE 漏洞信息。

Stars: 17 | Forks: 2

# Startup-SBOM Startup-SBOM 是一款通用实用工具,旨在提供内部视角,展示在 Linux 系统或 Docker 容器启动期间执行了哪些软件包。 通过分析服务文件、init 脚本和容器 entrypoint,该工具将每个启动进程映射到其原始软件包,从而为实际的系统执行情况提供清晰的视角。 ## 功能特性 - **通用 Init 支持:** 自动检测并分析 Systemd、SysVinit 和 OpenRC。 - **Docker 支持:** 使用 `--docker` 直接分析正在运行或已停止的容器。 - **多包管理器支持:** 支持 APT (Debian/Ubuntu)、RPM (Fedora/CentOS/RHEL)、Pacman (Arch) 和 APK (Alpine)。 - **CVE 分析:** 使用 NVD 数据进行集成的漏洞扫描。 - **图形化输出:** 生成服务依赖关系流程图。 - **CycloneDX 导出:** 生成行业标准的 SBOM。 ## 安装说明 所需的软件包已在 `requirements.txt` 文件中列出,可以使用 pip 进行安装: ``` pip3 install -r requirements.txt ``` ## 使用说明 | 参数 | 描述 | |-------------------|-------------------| | `--analysis-mode` | `static` 或 `chroot`。默认为 `static`。 | | `--static-type` | `info` (软件包数据库) 或 `service` (活动服务)。默认为 `info`。 | | `--volume-path` | 挂载文件系统的路径。默认为 `/mnt`。 | | `--docker` | 要分析的 Docker 容器 ID 或名称。 | | `--save-file` | 保存输出的路径 (JSON/CycloneDX)。 | | `--info-graphic` | 为 CHROOT 分析生成可视化图表。默认为 `True`。 | | `--pkg-mgr` | 显式指定软件包管理器 (apt, rpm, pacman, apk)。 | | `--cve-analysis` | 启用 CVE 漏洞扫描。 | ### 使用示例 #### 1. 分析 Docker 容器 ``` python3 main.py --docker my-container --cve-analysis --save-file sbom.json ``` #### 2. 分析挂载卷(静态服务模式) ``` python3 main.py --volume-path /mnt/target_root --static-type service --save-file output.json ``` #### 3. 带图形化输出的 Chroot 分析 ``` python3 main.py --analysis-mode chroot --volume-path /mnt/target_root --info-graphic True ``` ## 支持的组合 | 操作系统系列 | 包管理器 | Init 系统 | |-----------|-----------------|-------------| | Debian/Ubuntu | APT | Systemd, SysVinit | | RHEL/CentOS | RPM | Systemd | | Arch Linux | Pacman | Systemd | | Alpine Linux | APK | OpenRC | | Docker 容器 | (任意) | Docker Entrypoint + Internal Init | ## 内部工作原理 有关方法和流程的详细文档,请访问 [Wiki](https://github.com/morpheuslord/Startup-SBOM/wiki)。 ## 待办事项 - [x] 支持 RPM - [x] 支持 APT - [x] 支持 Pacman - [x] 支持 APK (Alpine) - [x] 支持通用 Init (Systemd, SysVinit, OpenRC) - [x] 支持 Docker 容器分析 - [x] 支持 CVE 分析 - [x] 支持有组织的图形化输出 - [x] 支持 CycloneDX 导出 ## 想法与讨论 欢迎在讨论页面提出有关此主题的想法。 [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.19307312.svg)](https://doi.org/10.5281/zenodo.19307312)
标签:APK, APT, CVE, CycloneDX, Docker安全, LLM防护, NVD, OpenRC, Pacman, Python, RPM, SBOM, Systemd, SysVinit, WebSocket, Web截图, 云资产清单, 依赖分析, 包管理器, 容器安全, 数字签名, 无后门, 无线安全, 服务依赖图, 硬件无关, 系统启动分析, 统一API, 网络安全审计, 请求拦截, 资产盘点, 跌倒检测, 软件物料清单, 逆向工具, 逆向工程