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 导出
## 想法与讨论
欢迎在讨论页面提出有关此主题的想法。
[](https://doi.org/10.5281/zenodo.19307312)
标签:APK, APT, CVE, CycloneDX, Docker安全, LLM防护, NVD, OpenRC, Pacman, Python, RPM, SBOM, Systemd, SysVinit, WebSocket, Web截图, 云资产清单, 依赖分析, 包管理器, 容器安全, 数字签名, 无后门, 无线安全, 服务依赖图, 硬件无关, 系统启动分析, 统一API, 网络安全审计, 请求拦截, 资产盘点, 跌倒检测, 软件物料清单, 逆向工具, 逆向工程