背景
提到这个话题,其实它的背后是整个软件的发展,以及整个开源生态的发展,包括像云原生以及低代码这些新技术的发展,我们可以发现软件的开发越来越像是一个在搭积木的过程。这些积木,其实就是这些开源组件、开源软件。
有机构调研显示说,在2015年到2019年之间,整个开源代码在项目代码里面使用的占比是翻了一倍的,直到今天,它大概是到了78%的一个水平。
从上边的这一组数据来看,每个项目里面引入的开源组件可能会超过一百多个,这里面有28%都是有漏洞缺陷的。同时呢,这些有漏洞的组件,它不止存在一个漏洞,平均是两个三个漏洞,这些开源的项目有63%存在开源许可证的侵权的风险的。
所以我们可以看到,从软件供应链的生产到使用的整个链条,在过去两年都发生了非常多的安全事件。
从国家监管的层面来说,我们可以看到在最近两年,不管是中国还是美国,都出台了比较多的相关律法规,整个监管是越来越严格。
供应链安全威胁
从整个威胁来看,我们会发现对于攻击者来说,去攻击一个通用软件,它的攻击性价比是很高的,因为它的杀伤面会非常大。
在去年有两个比较大的漏洞的事件,一个是十月份的时候,境外的黑市论坛有一些组织去卖中国的银行的一些代码和数据,还有去年12月的Log4j2的事件,这些漏洞的事件影响力还是非常大的。
第二个是关于这个组件的投毒。在今年三月份,有用户发现说在这个NPM中有一个组件叫node-ipc,它针对俄罗斯的用户加入了一些反华的标语,包括在之前的版本是加入了这种文件擦除的逻辑。同时,这个组件的引用量非常大,每周下载量超过百万,我们可以看到投毒现在也变得带有政治色彩。
还有一类,关于这个开源许可证的侵权的问题,尤其是涉及到一些海外业务的公司需要注意。比如说GPL的开源许可证,它约定的是,如果你使用GPL许可证的代码修改了的话,你修改之后的项目,在发布的时候也是要提供相应的源代码,也就意味着,其实在商业使用上它会受到一定的限制。
接下来,我列举了两个标志性的案件:
第一个案件,2019年,柚子公司抄袭了数字天堂的GPL开源许可证,然后被告侵权的案件。这在中国是第一次把GPL的许可证作为侵权的依据。
第二个案件是在2021年,在中国的法院首次明确了GPL的许可证是有法律效力的,这也就意味着在之后开源许可证不再是一个君子协定,如果你企业违反了这些协议的许可证的约定的话,那么是需要付出相应的经济和声誉上的损失和代价。
面临的挑战
以上是关于软件供应链安全的一些威胁,这些威胁其实背后对应的是三大挑战。
供应链如何准确识别
首先是怎么去识别我们用到了什么样的供应链,背后的复杂性有多种多样的形态,它可能有不同的场景。
比如说像这个Ja