关于Startup-SBOM
Startup-SBOM是一款针对RPM和APT数据库的逆向分析与安全检测工具,该工具本质上是一个简单的 SBOM 实用程序,旨在提供正在执行的包的内部视图,可以帮助广大研究人员枚举所有软件包以及可执行文件、服务和版本。
该工具的流程和目标很简单,可以帮助我们清晰地了解 APT 安装的软件包(目前正在为 RPM 和其他软件包管理器实现此功能),主要用于检查哪些软件包正在实际执行。
支持的镜像
目前该工具适用于基于 Debian 和 Red Hat 的镜像,工具可以保证 Debian 的输出,但是 Red-Hat 仍然需要做一些工作,因为还并不完美。
工具要求
rich==13.4.2
pydantic==2.6.4
graphviz==0.20.1
rpm==0.1.0
工具安装
由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好最新版本的Python 3环境。
接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:
git clone https://github.com/morpheuslord/Startup-SBOM.git
然后切换到项目目录中,使用pip命令和项目提供的requirements.txt安装该工具所需的其他依赖组件:
cd Startup-SBOM pip3 install -r requirements.txt
工具使用
参数选项 | 描述 |
--analysis-mode | 指定操作模式。默认为static。选项为static和chroot。 |
--static-type | 指定静态模式的分析类型。仅在静态模式下是必需的。选项有info和service。 |
--volume-path | 指定已安装卷的路径。默认值为/mnt。 |
--save-file | 指定 JSON 输出的输出文件。 |
--info-graphic | 指定是否为 CHROOT 分析生成可视化图表。默认值为True。 |
--pkg-mgr | 手动指定包管理器或者不添加此选项以进行自动检查。 |
工具运行演示
静态信息分析
该命令以静态分析模式运行程序,具体使用信息目录分析方法。它分析安装在位于/mnt的已安装卷上的软件包,并将输出保存在名为output.json的 JSON 文件中。最后,它将为 CHROOT 分析生成可视化图表:
python3 main.py --pkg-mgr apt --analysis-mode static --static-type info --volume-path /mnt --save-file output.json
静态服务分析
该命令以静态分析模式运行程序,具体使用服务文件分析方法。它分析安装在位于 的已安装卷上的软件包/custom_mount,并将输出保存在名为output.json的 JSON 文件中。但它不会为 CHROOT 分析生成可视化图表:
python3 main.py --pkg-mgr apt --analysis-mode static --static-type service --volume-path /custom_mount --save-file output.json --info-graphic False
带有或不带有图形输出的 Chroot 分析
此命令以 chroot 分析模式运行程序,它分析安装在位于/mnt的已安装卷上的软件包,并将输出保存在名为 的 JSON 文件中output.json。最后,它会为 CHROOT 分析生成可视化图表(--info-graphic保持True/False即可):
python3 main.py --pkg-mgr apt --analysis-mode chroot --volume-path /mnt --save-file output.json --info-graphic True/False
RPM静态分析
python3 main.py --pkg-mgr rpm --analysis-mode static --volume-path /mnt --save-file output.json
带有或不带有图形输出的RPM Chroot 分析
python3 main.py --pkg-mgr rpm --analysis-mode chroot --volume-path /mnt --save-file output.json --info-graphic True/False
图形化数据输出(Chroot)
APT Chroot
RPM Chroot
许可证协议
本项目的开发与发布遵循MIT开源许可协议。
项目地址
Startup-SBOM:【GitHub传送门】