摘要
目前,很多软件由共享的开源组件组成,一旦某个组件出现安全问题,将造成重大影响。为了解在安全左移条件下通过软件成分分析(SCA)方法得到的开源组件安全状况误差及其产生的原因,梳理开源组件安全测试在安全左移中的常见场景,并基于此构建测试用例。选择蜕变测试方法,使用SCA工具进行安全测试并统计分析。实验结果显示,二进制SCA和编译SCA重叠部分数据占比不超过60%。基于BOM的SCA中以编译方式执行检测BOM结果的精确度、召回率等指标在大部分情况下均超过90%;源码不编译方式SCA相较于编译方式的检测结果中组件的精确度、召回率等指标均在40%左右,但关于漏洞检测与解决的相关指标在90%左右。软件供应链的二进制制品检测与源代码处于无法编译状况下的安全左移场景检测结果精确度不足,而对于BOM文件的安全测试结果有效可靠。
0 引言
为节约成本、提高开发效率,大量开源组件被引入到在企业软件开发过程中&#x