2021年针对开源软件的供应链攻击猛增650%!
作者: 日期:2022年02月07日 阅:2,222

网络犯罪分子在破坏开源软件包,通过软件供应链分发恶意代码。据安全提供商Sonatype的分析显示,这些所谓的软件供应链攻击去年猛增650%,该公司在2021年测得12000起事件。这一发现结果凸显了组织需要谨慎处理开源代码,近期的Log4J漏洞表明了这点。

软件供应链攻击简介

开源软件包通常存储在在线代码存储库中。据德国波恩大学、弗劳恩霍夫通信技术研究所(Fraunhofer FKIE)和SAP Labs France的研究人员声称,由于其中一些软件包被广泛用于各种应用程序,这些存储库俨然成了“一条可靠且可扩展的恶意软件分发渠道”。

图1

据Sonatype发布的《软件供应链现状报告》显示,软件供应链攻击有三种形式。两种最常见的攻击是依赖项混淆(dependency confusion)和误植域名(typosquatting),它们有赖于这一点:名为依赖项管理器的软件开发工具会自动下载开源代码,并部署到应用程序中。

在依赖项混淆攻击中,攻击者创建软件包的受感染版,它有更高的版本号,以便软件包自动部署。这是2021年最常见的软件供应链攻击类型。在误植域名攻击中,攻击者会创建一个软件包,名称中只有一个字符与某个流行软件包不同,希望开发人员输错字符。

恶意代码注入是指向开源软件包添加新代码,以便运行它的任何人都受到影响。据Sonatype声称,去年这种攻击的人气有所下降,可能是由于开源存储库加强了安全。

波恩大学的研究发现,面向Node.js的存储库(npm)和面向Python的存储库(PyPi)是供应链攻击的主要目标,“大概是由于恶意代码在软件包安装过程中很容易触发”。

开源软件的安全现状

Sonatype的报告评估了最常见的开源软件包中的漏洞数量。报告发现,Java软件包的Maven Central存储库中存在漏洞的组件数量最多,包括350000多个被视为“高危”的组件,这意味着这类组件很容易被利用,以获得根级访问权限。排在第二位的是JavaScript软件包的nmp存储库,包括250000个存在高危漏洞的组件。

图2

Sonatype发现,存在漏洞的软件包版本只占存储库中软件包版本的少数。比如说,Maven Central中只有4.9%的软件包版本存在高危漏洞。至于PyPi,仅0.4%的软件包版本存在高危漏洞。

然而,这些软件包被频繁下载,这意味着这些漏洞会迅速传播开来。2021年,JavaScript开发者下载了1.5万亿个开源软件包,而Python下载量去年翻番,更是多达1270亿人次。

图3

Sonatype执行副总裁Matt Howard说:“今年的报告再次证明,开源既是数字化创新的主要动力,又是软件供应链攻击的成熟目标。这个严峻的现实凸显了技术领导人面临重大的责任和机遇,他们需要拥抱智能自动化,那样才能规范使用最好的开源供应商,同时帮助开发人员通过最佳版本确保第三方库是最新颖的。”

波恩大学等组织的研究人员的报告特别指出,许多开源项目引入了双因子身份验证,并禁用自动安装额外软件包的脚本。他们写道,这些措施需要在整个开源生态系统中推而广之。 “尽管利益相关者的普遍意识有所提高,但这类对策必须更加普及,并在可能的情况下默认执行,以防止开源软件供应链攻击。”

去年底众多Java应用程序的开源日志工具Log4J曝出严重漏洞后,业界再次开始围绕开源软件的安全性展开争论。专家们告诉Tech Monitor,无偿志愿者维护的Log4J用于大量的应用程序,而部署它们的组织常常不知情,这意味着可能需要数月的时间才能找到并修补所有实例。

文章来源:

https://techmonitor.ai/technology/cybersecurity/supply-chain-attacks-open-source-software-grew-650-percent-2021


相关文章