ER1999K/sbom_generator

GitHub: ER1999K/sbom_generator

一个通过 SSH 在离线局域网中为远程 Linux 主机自动生成 CycloneDX SBOM 的 Python 工具。

Stars: 0 | Forks: 0

# SBOM 生成器 为一个或多个远程 Linux 主机(通过 SSH)生成 CycloneDX 软件物料清单(SBOM),运行时无需互联网连接。 ## 目录结构 ``` sbom_generator/ ├── main.py # Entry point ├── host_manager.py # Host input, txt file parsing, password collection ├── connection_tester.py # SSH connection testing and user confirmation ├── ssh_client.py # SSH connection and auth retry logic ├── arch_detector.py # Remote OS/architecture detection ├── remote_executor.py # Syft transfer, execution, and cleanup ├── sbom_handler.py # SBOM retrieval and local save ├── logger.py # Logging configuration ├── requirements.txt # Python dependencies ├── hosts.txt.example # Example hosts file └── binaries/ ├── syft_linux_amd64 # Syft binary for x86_64 ├── syft_linux_arm64 # Syft binary for ARM64 └── syft_linux_armv7 # Syft binary for ARMv7 ``` ## 要求 - Python 3.10+ - Windows、macOS 或 Linux 本地机器 - 远程主机:Linux(x86_64、ARM64 或 ARMv7) ## 设置 ### 1. 安装依赖 ``` pip install -r requirements.txt ``` ### 2. 添加 Syft 二进制文件 从 https://github.com/anchore/syft/releases 下载并放置到 `binaries/`: | 要下载的文件 | 重命名为 | |----------------------------------|---------------------| | `syft_X.X.X_linux_amd64.tar.gz` | `syft_linux_amd64` | | `syft_X.X.X_linux_arm64.tar.gz` | `syft_linux_arm64` | | `syft_X.X.X_linux_armv7.tar.gz` | `syft_linux_armv7` | 解压每个归档文件中的 `syft` 二进制文件并按上述名称重命名。 ## 使用 ``` python main.py ``` 程序将引导你完成以下交互式步骤: 1. **加载主机** — 从文本文件或手动输入 2. **输入密码** — 对每个主机安全提示输入(隐藏输入) 3. **连接测试** — 在扫描前验证每个主机的 SSH 连接 4. **确认** — 如果有主机失败,决定是否继续 5. **输出目录** — 选择保存 SBOM 文件的目录 6. **扫描** — 在每个可达主机上运行 Syft 7. **摘要** — 最后显示所有主机的结果 ## 主机文件格式 ``` # hosts.txt # username@ip,每行一个 # 以 # 开头的行和空行将被忽略 erikh@192.168.0.42 pi@192.168.0.55 ``` ## 输出 每个主机生成一个 SBOM 文件: ``` sbom-192-168-0-42.json sbom-192-168-0-55.json ``` ## 退出代码 | 代码 | 含义 | |------|-----------------------------------| | 0 | 所有主机扫描成功 | | 1 | 未提供主机或用户取消 | | 4 | 所有主机扫描失败 | | 6 | 部分成功(某些主机失败) |
标签:ARM64, ARMv7, CycloneDX, ETW劫持, Python, SBOM, SSH, x86_64, 主机管理, 二进制分发, 内存分配, 占用监测, 可执行文件, 局域网, 文件传输, 无后门, 日志记录, 本地网络, 特权提升, 硬件无关, 离线工具, 系统架构检测, 网络安全, 自动化部署, 资产管理, 跌倒检测, 软件物料清单, 软件组成分析, 远程执行, 逆向工具, 隐私保护