本文档详细介绍了在 Cybellum Platform 3.11 版本中上传固件包并进行 SCA(软件组成分析)扫描的完整操作流程。
目录
1. 概述
Cybellum Platform 支持通过上传二进制固件文件创建组件,并自动执行软件组成分析(SCA)。该技术能够从固件中提取有价值的信息,包括:
| 分析内容 | 说明 |
|---|---|
| SBOM(软件物料清单) | 识别固件中包含的所有开源软件包 |
| 漏洞信息 | 自动关联已知漏洞(CVE) |
| 代码弱点 | 检测二进制级别的安全弱点 |
| 恶意软件 | 识别潜在的恶意代码 |
| 加密密钥 | 发现嵌入的加密密钥 |
| 配置信息 | 分析系统配置和隐私风险 |
| 硬件信息 | 识别硬件组件和接口 |
2. 操作前准备
2.1 权限要求
| 权限 | 说明 |
|---|---|
dt_create |
创建组件权限 |
dt_update_asset_info |
更新组件资产信息权限 |
dt_update_version_info |
更新版本信息权限 |
2.2 文件准备
重要提示:
- 确保上传的固件文件未被加密,扫描加密文件可能产生意外结果
- 建议文件大小不超过系统限制(大文件可能需要更长扫描时间)
- 确认文件格式在支持列表中(详见第6章)
3. 操作步骤详解
步骤一:进入组件管理页面
- 登录 Cybellum Platform
- 在左侧导航栏中点击 Asset Management(资产管理)
- 点击 Components(组件)菜单项

进入组件页面后,可以看到现有组件列表及其状态信息。
步骤二:创建新组件
- 在组件页面右上角,点击 Create Component(创建组件)按钮
- 在下拉菜单中选择 Binary File (firmware) (二进制文件/固件)选项

说明:选择 Binary File (firmware) 表示将通过 SCA 技术分析上传的固件文件。
步骤三:填写组件基本信息
在弹出的创建向导中,填写组件的基本信息。
3.1 必填字段
| 字段名 | 说明 |
|---|---|
| Name | 组件的唯一名称 |
| Version | 组件版本号(无需遵循语义化版本规范) |
| Lifecycle phase | 生命周期阶段 |
| Business unit | 业务单元(根据平台版本提供下拉选项) |
| Scanner type | 扫描引擎类型(目前仅支持 'Cybellum') |

3.2 生命周期阶段选项
| 阶段 | 说明 |
|---|---|
| Concept | 概念阶段 |
| Design | 设计阶段 |
| Development | 开发阶段 |
| Validation | 验证阶段 |
| Production | 生产阶段 |
| Post-Production / Support | 后生产/支持阶段 |
| End of Cybersecurity Support | 网络安全支持终止 |

3.3 高级扫描选项
| 选项 | 说明 | 注意事项 |
|---|---|---|
| Scan as Microcontroller | 启用微控制器优化处理 | 会显著增加扫描时间,谨慎使用 |
| Use advanced AUTOSAR recognition | 启用高级 AUTOSAR 模块识别 | 需与微控制器选项配合使用 |
3.4 扩展字段(可选)
点击 More Details 按钮可显示更多可选字段:
| 字段名 | 说明 |
|---|---|
| Component Type | 组件类型 |
| CAL | 网络安全保证等级(1-4级) |
| Version Date | 版本创建日期 |
| Description | 组件描述 |
| Distribution | 使用范围(外部使用/SaaS/内部使用/开源共享) |
| SBOM Phase | SBOM 阶段(Design/Source/Analyzed/Build/Deployed/Runtime) |
| SBOM Timestamp | SBOM 时间戳 |
| SBOM Type | 组件类型(application/framework/library/controller等) |
| Workflow | 工作流配置 |
| Tags | 用户定义标签 |
| Vendor | 供应商名称 |
| Model | 型号名称 |
| Part number | 部件编号 |
| Client | 客户名称 |
步骤四:上传固件文件
填写完基本信息后,点击 Next 按钮进入上传界面。
4.1 上传方式
支持两种上传方式:
| 方式 | 说明 |
|---|---|
| Local filesystem | 从本地文件系统上传 |
| From a URL | 从指定 URL 下载 |
4.2 上传操作
- 选择上传方式
- 选择或指定固件文件
- 等待文件上传完

提示 :支持的文件格式详见第6章
步骤五:确认创建并启动扫描
- 确认文件上传完成
- 点击 Create 按钮
- 系统开始创建组件并启动扫描流程
创建成功后,新组件将出现在组件列表中,状态显示为 Processing(处理中)。
步骤六:监控扫描进度
6.1 查看扫描状态
在组件列表中可以查看扫描状态:
| 状态 | 说明 |
|---|---|
| Queued | 排队等待 |
| Processing | 正在处理 |
| Completed | 扫描完成 |
| Error | 扫描出错 |
6.2 查看详细信息
点击组件行,进入组件详情页面。点击右上角的信息图标可查看扫描详细信息:
扫描信息包含:
- 组件 ID
- 创建时间
- 扫描统计(排队、开始、提取、完成时间)
- 扫描持续时间
- Worker ID
- 扫描状态
- 扫描引擎版本信息
6.3 下载扫描日志
如需故障排查,可点击 Download Extraction and Analysis Logs 按钮下载完整日志:
步骤七:查看扫描结果
当组件状态变为 Completed 后,可以查看完整的扫描结果。
7.1 组件概览
点击组件进入详情页面,概览标签页显示:

统计信息:
- 组件类型
- 识别的操作系统
- 接口数量
- SBOM 包数量
- 唯一许可证数量
- 最旧的 SBOM 包版本日期
7.2 文件树查看
进入 Files 标签页可浏览提取后的文件结构:

文件信息包含:
- ID(内部文件 ID)
- MIME 类型
- MD5/SHA1 哈希值
- 文件大小
- 缓解措施(二进制加固机制)
- 系统文件标识
- 访问控制信息(Owner、Permissions)
- 文件内容预览(前 20KB)
7.3 SBOM 管理
进入 SBOM 标签页查看识别的软件包:
包信息包含:
- 包名称和版本
- 供应商信息
- 许可证信息
- EOL(生命周期终止)状态
- 风险评分
7.4 其他分析结果
| 标签页 | 内容 |
|---|---|
| Hardware | HBOM 硬件物料清单 |
| Network | 网络接口、IP 地址、防火墙配置 |
| Cryptography | 加密密钥识别结果 |
| Configurations & Privacy | 配置和隐私分析结果 |
4. 扫描流程详解
固件扫描流程分为三个主要阶段:
4.1 提取阶段 (Extraction)
提取阶段是 SCA 扫描的第一步,负责解包和提取固件文件。
流程说明
上传文件 → 文件识别 → 类型分类 → 解包提取 → 元数据收集 → 文件系统存储
详细步骤
- 数字孪生识别:系统识别上传的组件版本文件,将路径发送给提取工作器
- 文件类型识别:遍历文件,使用 MIME 类型和自定义逻辑识别文件类型
- 提取执行:按预配置的提取器引擎顺序提取文件
- 元数据收集:收集文件名、大小、哈希值、权限等信息
- 文件系统存储:提取的文件系统存储到磁盘(通常约为原文件 3.5 倍大小)
提取引擎架构
提取工作器运行在独立的 Docker 容器中,包含:
- 提取工作器容器(控制器和主引擎逻辑)
- 提取引擎容器(执行提取过程)
提示:系统支持通过插件机制扩展自定义提取器,支持专有格式。
4.2 分析阶段 (Analysis)
分析阶段在提取完成后执行,由多个分析引擎并行处理。
分析引擎
| 引擎 | 功能 |
|---|---|
| SBOM 引擎 | 软件包识别 |
| 信息泄露引擎 | 敏感信息检测 |
| 加密密钥引擎 | 加密密钥识别 |
| 注册表引擎 | Windows 注册表解析 |
| ... | 其他专用引擎 |
分析特点
- 并发批处理:使用线程和进程池提高吞吐量
- 领域专一:每个引擎负责特定领域的信息收集
- 结果存储:分析结果存储到数据库并关联到组件版本
分析工作器架构
分析工作器运行在独立的 Docker 容器中,包含:
- 分析工作器容器(控制器和主引擎逻辑)
- 组件标识符容器(SBOM 识别)
4.3 包识别阶段 (Package Identification)
包识别阶段负责识别固件中的软件包并生成 SBOM。
流程图

识别机制
| 机制 | 说明 |
|---|---|
| 签名匹配 | 查找二进制中的签名、函数符号、变量等 |
| 模式和二进制匹配 | 使用 YARA 规则或字符串匹配 |
| 包管理器解析 | 解析 dpkg、rpm、npm、pypi、NuGet 等 |
| 清单和配置文件 | 解析 pom.xml、os-release、IPA 文件等 |
| 文件元数据 | 分析 PE、ELF 头信息 |
结果处理流程
- 结果归一化:合并不同引擎的识别结果,处理版本差异
- 置信度分类:将结果分为低、中、高置信度
- 元数据加载:匹配 Cybellum 映射的包元数据
- SBOM 转换:将识别结果转换为 SBOM 对象存储
版本候选
当无法精确识别版本时,系统会显示版本候选列表:
证据信息
可查看包识别的证据信息:

5. 扫描结果说明
5.1 组件页面列信息
| 列名 | 说明 |
|---|---|
| Name | 组件名称 |
| Version | 组件版本 |
| Version Type | 版本类型(Default/None) |
| Type | 组件类型分类 |
| CAL | 组件评估等级 |
| Vendor | 供应商 |
| Lifecycle Phase | 生命周期阶段 |
| Last Update | 最后更新日期 |
| Status | 扫描状态 |
| Business Unit | 业务单元 |
| Part Number | 部件编号 |
| Architectures | 检测到的系统架构 |
| Scan Date | 扫描日期 |
| Uploaded File Size | 上传文件大小 |
| Extracted File Size | 提取后文件大小 |
5.2 KPI 指标
| KPI | 说明 |
|---|---|
| Num of unknown vulnerabilities | 未知漏洞数量 |
| Num of known vulnerabilities | 已知漏洞数量 |
| Num of malwares | 恶意软件数量 |
| Num of packages | SBOM 包数量 |
| Num of passwords | 检测到的密码数量 |
| Num of HBOM | 硬件物料清单条目数 |
| Num of cryptographic keys | 加密密钥数量 |
| Max Risk Score | 最高风险评分 |
6. 支持的文件格式
6.1 文件系统
| 类别 | 支持的文件系统 |
|---|---|
| Linux | ext2/3/4, JFS, JFFS2, UBIFS, btrfs, CramFS, SquashFS, xfs, minix, reiserfs, EROFS |
| Android | ext4, sparse image, boot image |
| QNX | QNX4, QNX6, QNX-EFS, QNX-IFS, QNX-QTD, QNX Trusted Safe FS |
| Windows | NTFS |
| macOS | Macintosh HFS |
| 其他 | ISO 9660/UDF, YAFFS, FreeBSD UFS, Thread-X, Linux Kernel Containers |
6.2 压缩和归档格式
7-zip, AR, ARJ, bzip2, compress, cpio, gzip, lrzip, lzip, LZ4, LZH, LZMA, lzop, PLF Parrot, RAR, rzip, TAR, XAR, XZ, ZIP, StuffIt, zStandard, ACE, ZOO, ZPAQ
6.3 安装包格式
| 类别 | 支持格式 |
|---|---|
| Linux | Debian (.deb), Red Hat RPM (.rpm) |
| macOS | DMG, PKG |
| Windows | .exe, .msi, .cab, .mzz |
| Android | APK, OTA |
| iOS | IPA |
| 其他 | Intel HEX, ODX, U-Boot Ambarella, TPLink, TRX UEFI, VBF, VxWorks ROS, Xerox DLM 等 |
6.4 虚拟和磁盘镜像格式
EFI Boot, QEMU QCOW2, VMware VMDK, VirtualBox VDI/VHD, SREC, FFU, Uboot Image 等
6.5 微控制器文件格式
.bin, .hex, .s19, .s, .s1, .s2, .s3, .s37, .sx, .srec, .elf
6.6 SBOM 标准格式
| 格式 | 版本 | 导入 | 导出 |
|---|---|---|---|
| CycloneDx | 1.2-1.6 JSON/XML | ✓ | ✓ (JSON) |
| SPDX | 2.1-2.3 多种格式 | ✓ | ✓ (TagValue/JSON) |
7. 常见问题与注意事项
7.1 扫描时间相关
| 情况 | 原因 | 建议 |
|---|---|---|
| 扫描时间过长 | 启用了微控制器扫描选项 | 仅在必要时启用 |
| 扫描时间过长 | 启用了高级 AUTOSAR 识别 | 仅在需要时启用 |
| 扫描排队等待 | 系统资源占用高 | 等待其他扫描完成 |
| 大文件扫描慢 | 文件提取占用空间大 | 预留足够磁盘空间 |
7.2 扫描结果相关
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 结果不完整 | 某些引擎失败 | 查看警告图标了解详情 |
| 版本未识别 | 二进制信息不足以区分版本 | 手动设置版本 |
| 包识别置信度低 | 识别证据不足 | 查看证据信息并手动确认 |
7.3 文件上传相关
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 加密文件扫描异常 | 无法正确提取加密内容 | 确保文件未加密 |
| 格式不支持 | 文件格式不在支持列表 | 联系支持团队定制 |
| 上传失败 | 文件过大或网络问题 | 检查网络连接和文件大小 |
7.4 配置优化
扫描配置可通过以下路径调整:
路径:Configurations & Help → Application → Assets → Component Scan

| 配置项 | 说明 |
|---|---|
| Find Referencing Paths | 搜索动态加载的 SBOM 包相关文件 |
| Find Extended Information Leaks | 识别日志消息、函数名、硬件信息泄露 |
注意:启用以上选项会延长扫描时间。
附录:快速参考卡片
操作流程速览
1. 进入 Asset Management → Components
↓
2. 点击 Create Component → Binary File (firmware)
↓
3. 填写组件名称、版本等基本信息
↓
4. 选择上传方式,上传固件文件
↓
5. 点击 Create 确认创建
↓
6. 等待扫描完成(状态变为 Completed)
↓
7. 查看扫描结果(SBOM、漏洞、文件树等)
扫描阶段概览
上传 ──→ 提取 ──→ 分析 ──→ 包识别 ──→ 结果存储
(Extraction) (Analysis) (Identification)


