北大库博软件成分分析与同源漏洞检测工具(CoBOT SCA)是基于代码大数据,相似哈希等技术,研发的新一代代码同源分析系统,面向组织的第三方库检测需求,在不改变组织现有开发、测试流程的前提下,与源代码管理系统(Git、SVN等)、缺陷管理系统(如Jira、Bugzilla、禅道等)、持续集成工具(如Jenkins、TFS)无缝对接,将代码第三方库检测融入企业的研发流程,实现了软件成分分析、自主研发率分析、两两对比分析、成分中的已知漏洞分析及评估、许可证分析、漏洞范围影响分析等功能,帮助组织快速构建代码安全保障体系。
1、主要技术指标
项目 |
支持情况 |
支持语言 |
支持 C/C++、Java 等20余种主流开发语言 |
检测粒度 |
组件级、文件级、函数级、片段级 |
开源库 |
包含来自于GitHub、SourceForge、Google Code百万个以上的开源项目,千万个以上的版本,百亿行以上的代码 |
闭源库 |
包含Windows、Linux常用系统调用库、二进制、Jar文件十万个以上 |
漏洞库 |
包含CVE、CNVD、CNNVD等漏洞库、 |
本地库 |
支持GIT、SVN本地仓库及文件夹形式的代码导入 |
同源检测 |
支持检测一级、二级克隆及部分三级克隆的情况,通过代码溯源,得到项目中组件及漏洞信息 |
相似性检测 |
对比基准项目和被测项目,定位相似代码片段,得出被测项目自主研发率 |
许可证检测 |
支持包括GPL、BSD、LGPL、NPL、MIT等主流许可证在内的,超过八十种许可证检测 |
兼容平台 |
支持 Windows、Linux、中标麒麟 等多种主流通用操作系统、 |
缺陷管理系统集成 |
Bugzilla、Jira、TFS、禅道 |
扩展能力 |
自定义检测规则、检测报告 |
检测效率 |
平均 500 万行/小时 |
2、成分分析及许可证分析
基于第三方软件和企业本地软件代码库和漏洞库,进行软件成分分析,能够发现软件中使用了哪些第三方组件和企业内部的其它软件,包含项目级、版本级、文件级乃至函数级等多级分析。
成分分析结果如下图所示:
提供超过80多种常见许可证检测,包括GPL、BSD、LGPL、NPL等主流许可证类型。通过检测引用第三方组件的许可证信息, 避免软件可能产生的侵权风险。
许可证信息展示请见下图:
3、代码自主研发率分析
检测代码组成成分,识别出自研代码和引用的第三方库中的开源框架/构件,计算代码自主研发率, 帮助软件资产评估和工作量评估。
代码自主研发率分析如下图所示:
3、同源漏洞检测
对于复用第三方代码或企业其它项目代码的同源漏洞,CoBOT SCA提供漏洞的发布日期、漏洞类型、所在组件、影响项目、CWE 编号等信息。提供漏洞的高、中、低不同级别设定、检索和展示。
已知的同源漏洞通常存在一个已经修复漏洞的版本,可以通过版本升级进行修复,给出适配的升级版本建议。
4、漏洞影响力分析
当发现一个漏洞时,漏洞传播影响分析基于成分分析的结果,构建跨项目的大规模漏洞传播图,用户可以发现漏洞的传播影响范围,并采取适当的修复措施。
5、两两相似性分析
CoBOT SCA支持同一个用户和资产库中同一个项目不同版本或者两个不同项目之间的分析对比,能够发现两者之间的相似性,包含组件级、版本级、文件级乃至函数级等。同时能够导出分析报告内容可以根据需求进行定制。提供包括 MS Word、MS Excel、PDF 等多种格式的检测报告。
6、自动化检测流程及与环境集成
CoBOT SCA支持SVN、Git等代码管理工具,并且检测结果可与Bugzilla、Jira、禅道等Bug管理工具进行整合,同时提供与Jenkins、Bamboo等持续集成环境的接口,用户可以将CoBOT SCA、持续集成工具、代码库、Bug管理系统四者进行关联,Jenkins通过任务设置定期获取代码,通过CoBOT SCA进行检测,将结果推送至Bug管理系统,最大限度的减少人工干预的工作量。