使用CodeArts Governance进行二进制成分分析
应用场景
据《2024年中国软件行业全景图谱》统计,2023年国内软件市场规模超12万亿,我国软件行业正处于成长期,市场规模增长较快,预计2029年整体行业的市场规模将超21万亿。据《2023年软件供应链状况报告》指出,过去三年针对软件供应链的攻击平均年增长高达742%。因此,开源/第三方软件引入评估面临以下问题:
- 针对采购的软件或对外交付的软件产品没有很好的安全检测手段。
- 产品需要对供应商有基础的安全性认证。
- 开源漏洞响应与修复效率低,安全风险缺乏管理。
通过二进制成分分析服务提供页面和开放API,提供风险快速评估能力。功能特性如下:
- 全方位风险检测:对软件包/固件进行全面分析,基于各类检测规则,检测相关被测对象的开源软件漏洞和许可证合规、敏感信息(弱口令、硬编码密码等)、安全配置、安全编译选项等存在的潜在风险。
- 支持各类应用:支持对桌面应用(Windows和Linux)、移动应用程序(APK、IPA、Hap等)、嵌入式系统固件等的检测。
- 专业分析指导:提供全面、直观的风险汇总信息,并针对不同的扫描告警提供专业的解决方案和修复建议。
- 恶意代码检查:提供病毒木马等恶意软件的扫描,支持开源软件中敏感信息外发、木马下载执行、反弹shell、恶意命令执行恶意行为检测。
方案架构
以下示意图为用户申请开源/第三方软件场景,该软件包含制品包,将制品包提供给二进制成分分析服务进行检测,检测项包括:已知漏洞、安全编译选项、信息泄露、安全配置、恶意代码/软件等风险项,并输出风险评估报告,待风险项完成整改后进行使用。
方案优势
约束与限制
指标类别 |
指标项 |
限制说明 |
---|---|---|
任务管理 |
语言类型 |
支持C/C++/Java/Go/JavaScript/Python/Rust/Swift/C#/PHP等语言开源软件已知漏洞检测。 |
扫描包格式 |
支持上传的文件格式有.7z、.arj、.cpio、.phar、.rar、.tar、.xar、.zip、.jar、.apk、.war等,以及支持上传Android OTA Images、Android sparse、Intel HEX、RockChip、U-Boot等固件。 |
|
扫描包上传大小限制 |
5GB。 |
实施步骤
- 登录开源治理服务控制台。
- 在左侧导航栏,单击“软件成分分析 > 二进制成分分析”。
- 在“二进制成分分析”页面,单击“添加任务”,弹出“添加任务”对话框,单击“扫描对象”旁的文件框,选择本地的软件包,导入扫描对象。
- 文件上传成功后,单击“确定”,等待扫描任务完成。
- 单击任务名称,也可以单击任务列表操作列的“查看报告”,进入扫描报告页面。扫描报告页面说明如表2所示。
表2 详情总览说明 栏目
说明
任务概况
- 显示目标任务的基本信息,包括:文件名、文件大小、特征库版本、平台版本等基本信息。
- 显示目标任务的组件检测、安全漏洞、安全配置、开源许可证、信息泄露、安全编译选项、恶意软件扫描检测概况,包括:
- 组件检测:展示被扫描的软件包所有的组件数量,有漏洞、未知版本和无漏洞组件数量占比。
- 安全漏洞:展示超危、高危、中危、低危各个级别漏洞数量占比。
- 安全配置:展示通过、失败、不涉及的检测结果数量占比。
- 开源许可证:展示高风险、中风险、低风险各个级别开源许可证的统计信息。
- 信息泄露:展示信息泄露各检测项结果分布。
- 安全编译选项:展示安全编译各检测项结果分布。
- 恶意软件扫描:展示病毒和恶意代码扫描结果分布。
开源软件漏洞
显示扫描任务中每个组件的组件名称、组件版本、开源许可证、包含文件数以及存在漏洞数。
- 组件名称、组件版本和文件数可按升降序查看。
- 可按组件名称、开源许可证对组件列表进行筛选查看。
开源许可证
显示开源软件的许可证检测结果,包括许可证使用的集成风险和许可证间的兼容性风险。
- 许可证信息:二进制文件包许可证检测结果,包含许可证名称、集成风险、涉及组件和许可证描述和风险分析。
- 许可证兼容性:二进制文件包中各目录的许可证间兼容性风险检测。
密钥和信息泄露
显示Git地址、IP、硬编码密码、弱口令、硬编码密钥和SVN地址的检测结果。
安全编译选项
显示BIND_NOW、NX、PIC等检测项目的描述、检测结果、不符合文件数。
安全配置
显示凭据管理、认证问题和会话管理的检测项目、安全风险等级、检测结果。
恶意软件扫描
显示病毒扫描和恶意代码扫描的结果。
- 单击“对象路径”,可以查看文件对象路径详细信息。
- 单击“CVE”漏洞名称可以查看相应漏洞的“漏洞详情”、“漏洞简介”、“解决方案”、“漏洞修复参考”、“参考链接”。
图1 开源软件漏洞检测结果
- 在“密钥和信息泄露”页签查看对应检测项目的检测结果。
图2 密钥和信息泄露检测结果
- 在“安全编译选项”页签查看编译选项对应检测项目的检测结果。
图3 安全编译选项检测结果
- 在“恶意软件扫描”页签查看病毒扫描和恶意代码扫描的检测结果。
图4 病毒扫描和恶意代码扫描的检测结果