技术分享|从SCA 看开源软件的安全检测与治理

2022-03-31 15:35

“开源”一词,对于现阶段的IT行业从业人员来说是家喻户晓的概念,从上世纪大约90年代末开始,从以个人为代表的自发行为到如今的各个大型企业及基金组织的参与,开源软件已经进入到我们现实生活中的方方面面。


从SCA 看开源软件的安全检测与治理.jpg

全球最大的代码托管平台GitHub   2020年度报告中的数据显示,截至2020年,GitHub的开发者数量达5600万,去年为4000万,增长了四成。同时期去年中托管仓库已经有1.4亿,2020年新建repo数量6000万,去年为4400万。GitHub用户量预计到2025年将超过一亿。


对于其中提到的一些开源软件,也被广泛应用于互联网、金融、游戏、通信、教育等各行各业,时刻影响着我们的周边环境。







1
开源软件的隐患



万事万物都存在两面性,如此优越的开源软件,同样也存在极大的潜在风险。

引用开源软件的风险主要为安全漏洞风险许可风险及知识产权风险。


安全漏洞风险,顾名思义就是具有相关漏洞,使用了当前开源软件的产品或者平台可以被他人直接通过相关漏洞进行攻击。


许可及知识产权风险,该风险主要是在法律上构成相关侵权行为的风险,比如引入了某 GPL许可,那么如果直接使用和修改后进行分发,就会带来相关许可违规风险,另外在知识产权方面,任意截取和使用他人的代码,也会给自己带来一定的法律违规风险。


也会有人会觉得,既然都知道风险,那么这太好解决了,有漏洞的组件不用和违规的组件不用不就可以了?实际上开源软件的风险复杂性和隐匿性要远远高于想象。


风险依赖传递

由于组件之间存在依赖关系,所以当引入某一个组件时,往往实际情况是引入了很多依赖组件,伴随着这些依赖组件随之而来就有漏洞风险、合规风险等,风险的传递性在确认和定位方面增加了问题处理的复杂度。


许可证兼容性

可之间也是存在许可证的兼容性问题,比如Apache2.0与GPL-2.0不兼容。


许可证更新

许可证的合规要求不是一成不变的,随着互联网环境下移动APP、大数据、容器、云服务等的变化,许可证的内容升级也在变化,也许同样都是GPL,但是GPL2.0和GPL3.0就存在内容上的差异。


传递性、兼容性、迭代等都使得原本就存在困难的开源软件的安全管理工作,更是难上加难。虽然面临种种困难,但是对于企业来说,开源安全重于泰山!及时构建开源软件的安全检测和治理是当下企业必须开展的一项工作。





SCA—识别开源软件的安全及合规问题


2019年,根据Gartner定义:软件组件分析产品对应用程序进行分析,以检测开源软件组件是否带有已知的安全漏洞或功能漏洞,及需要恰当授权许可的商业软件或第三方产品。它有助于确保企业软件供应链仅包含安全的组件,从而支持安全的应用程序开发和组装。


结合当下企业的基本开源安全诉求,通过分析、管控、监控以及预警等各个环节进行开源检测、管控和风险预警。





开源网安SourceCheck平台通过实现上述管理过程的可视化、流程化、自动化等,形成了一套实现对软件生命周期全过程的管理解决方案。


客户可根据自身企业的相关规章制度及流程管理要求,选择适合于企业内部的开源组件治理手段,可分别从设计阶段、开发阶段、测试阶段、交付阶段中使用SourceCheck,以满足客户化场景下的真实使用。





SCA与其他安全工具相比,具有诸多优势,与目前国内的IAST、SAST等安全工具对比来看,SCA技术具有以下优点:


检测准确性

SCA在对组件检测时,准确率高达100%


应急响应

当发生应急事件时,可以快速溯源,准确定位影响范围


软件生命周期

相比其他工具,SCA可以在软件生命周期中各个阶段和场景下都可以介入


市场待开发

相比传统安全工具,SCA在国内领域属于新市场,同时政策支持、预热给了有力支撑


修复效率高

基于组件视角,安全问题可通过升级版本进行修复,效率高且操作简单





开源是大势所趋,特别是对于企业来说,在现在快节奏的互联网环境下,开源软件更加是“英雄有用武之地”。但随之而来的风险也让我们不得不警醒,开源网安SourceCheck将从技术出发,从根本预防安全问题,做到有备无患,实现自动化检测及处理开源组件风险。