“开源软件管控是最简单、成效最显著的一项应用安全建设工作。”
Gartner预测,到2025年,为降低开源软件带来的安全与License合规风险,75%的应用开发团队会在开发流程中引入SCA工具(目前仅40%)。
从当前全球IT发展趋势来看,开源仍是主流,90%以上的单位在研发项目中用到了开源组件这把双刃剑,但安全、license合规与运营风险却愈演愈烈;并且针对开源软件的基础检查与修复相比于其它安全管控措施更加可行、易落地;法律法规层面对软件供应链安全风险的重视也会扩大自动管理工具的市场。
近日,工信部印发《“十四五”软件和信息技术服务业发展规划》,提出开源正在重塑软件发展生态的新趋势,开源软件已成为软件产业创新源泉,同时在“提升产业基础保障水平”中强调了保障开源代码组件供给安全和提升开源治理能力的要求。
对于开源软件的管控,目前已有很多国内外资料可供参考。Gartner分析师在今年的安全峰会上从容易忽视的开源软件运营风险管控,以及推进开源软件安全建设的最佳步骤两个角度作了分享。
1 // 管控开源软件“运营风险”的最佳实践
Gartner研究发现,开源组件中有17%的脆弱点是由恶意活动产生的(但当前告警率仅0.2%),而83%的漏洞都是因为日常运营中的不当操作引起的。由此可见,开源软件的“运营风险”更应受到重视,用户在选用SCA工具时也应着重评估这方面的能力。
Gartner同时也给出了一个有利于解决开源软件运营风险的最佳实践,如下:
一般方法:在工具链中完成测试
允许访问开源软件 ➡ 开发人员从源头获取开源软件 ➡ 在开发流程中完成测试
优势 | 劣势 |
在开源软件的使用阶段开展评估和安全控制 | 因为代码漏洞或license问题导致开发流程停滞并等待修复 |
安全与研发相对摩擦较少 | 缺乏整体控制 |
成本较低 | 缺乏对引用组件的监控 |
最佳实践:管控开源软件存储库
限制访问开源软件 ➡ 审核需要引入的开源组件包 ➡ 为通过审核的组件包建立专门的存储库 ➡ 开发人员访问本地开源软件库
优势 | 劣势 |
管控最大化 | 经济和人力成本上升 |
评估更细致 | 对人员数量和技能提出更高要求 |
使用过程中对开源软件可视性更强 | 有可能延迟请求和研发进度 |
—— | 仍要在工具链中完成测试 |
2 // 如何推进开源治理工作
● 从制定规范着手,确定漏洞、法律、知识产权、供应链等风险容忍度
● 评估是否采用经审查的开源存储库的方式,加强安全控制,但需投入更多资源
● 在软件研发和部署前或部署后进行开源软件的安全扫描
● 评估SCA工具(只有明确了自己的需求和情况才能作出更好的选购决策)
● 持续监控软件物料清单BOM的成熟度和采用情况(参照SPDX、SWID、CycloneDX等标准规范)
除了工具评估部分,默安科技在其余步骤的实现上均可提供直接服务或相应的咨询服务。SCA工具选购评估的主要方向也可参照Gartner分析师的建议:
软件漏洞的发现(开源软件支持的广度;是否具备开放式标准定义的接口)
● License的识别与风险评估
● 运营风险
● 监控与管理能力
● CI/CD工具链的集成
● 开发人员赋能
● 汇报与报表能力
默安科技自主研发的雳鉴SCA可作为独立产品灵活集成用户现有开发工具链,也可作为DevSecOps或应用安全测试工具链的组件融入开发流程。
针对开源软件运营风险,雳鉴SCA同时支持上述的一般管控方法和最佳实践中提供可信赖的本地开源组件库的方式,用户可根据自身情况灵活选择。
目前雳鉴SCA已完成多次产品升级,除了软件成分可视化管理、漏洞检测全面、License合规风险快速定位等基础功能外,还具备第三方组件库与漏洞数据更加全面、支持检测自研组件安全风险、快速精准定位组件引用位置和引用信息、误报与漏报率低、支持DevOps开发模式等优势。该产品已在金融、能源、制造、交通等行业成功应用,帮助具备不同应用开发场景的各行业客户分析软件成分、发现和修复组件风险。