即使在软件供应链安全受到广泛关注的情况下

开源软件供应链的安全隐患

关键要点

  • 2020年的SolarWinds黑客事件引发了对软件供应链威胁的警惕,但两年后开源代码仍然脆弱。
  • 根据Synopsys的报告,98%的应用程序使用开源代码,黑客攻击的数量显著增加。
  • 常见的开源攻击方式包括拼写恶搞和依赖混淆。
  • 政府和企业正在努力提高开源软件的安全性,但黑客亦在不断演进攻击手法。

2020年的SolarWinds黑客事件提醒我们软件供应链的威胁,而在经历了两年之后,开源代码的安全漏洞依然频繁被利用。现代互联网中有高达98%的应用程序都在依赖开源代码,正如Synopsys的一份所指出的。Chainguard的首席执行官DanLorenc将这种现象比作冰山——水面上浮现的只是互联网的一小部分,而绝大多数的开源代码则隐藏在水面之下。

伴随开放源代码开发模型的吸引力,黑客们逐渐形成了攻击的动机:共享和重用代码的协作方法使得攻击变得简单。Sonatype的研究表明,在过去三年中,攻击开源软件的案例平均增长了700%。网络安全社区在亲身经历了开源漏洞的影响后,更加重视这一问题,特别是在的漏洞被利用之后,成为了人们的热门话题。

BrianBehlendorf,开源安全基金会(OpenSSF)总经理,在提到:“作为一名在开源软件领域工作多年的从业者,Log4j事件让我意识到,我们还需做很多工作。”

为什么开源依然脆弱

Sonatype的首席技术官Ilkka Turunen告诉SCMedia,开源代码库之所以受欢迎,原因在于其易用性和潜在收益。“网络犯罪分子只需注册一个账户并发布恶意软件包,如果他们没有注册,某些开源生态系统在所有权方面并没有验证规定。”

根据Turunen的说法,拼写恶搞和依赖混淆是开源攻击中最常见的两种形式。在拼写恶搞中,攻击者会创建一个与流行包名称略微不同的包,诱使开发者在搜索流行组件时犯下无意的拼写错误。依赖混淆是一种拼写恶搞的变体,攻击者可能会创建一个带有最新版本号的受损包,上传到没有名称空间身份验证的公共库,比如npmjs。在这种情况下,一些管道构建工具会自动采用更高级的恶意版本。

犯罪分子不仅通过自己的账户攻击社区,还会窃取其他开源贡献者的账户,发布恶意包。Checkmarx的供应链安全负责人Tzachi Zornstain告诉SCMedia,攻击者一般会选择那些信誉良好的贡献者。例如,UA-Parser-JS的开发者FaisalSalman的npm账户去年被劫持,安装了加密挖矿和密码窃取恶意软件。他的JavaScript库每周被下载约800万次,在Facebook、Google、Amazon、IBM和Microsoft等众多科技巨头中被广泛使用。

Zornstain的团队去年在一个俄罗斯地下论坛上发现,一名黑客在向其他罪犯出售一个开发npm账户,自称该账户每周有超过700万次安装。

“我们现在看到这种账户劫持在开源社区中变得越来越流行,”Zornstain表示。

当然,利益相关者正在积极应对这些威胁。比如,面对针对npm注册中心的JavaScript软件包的系列攻击,GitHub等公司以及开源组织如允许用户

Leave a Reply

Your email address will not be published. Required fields are marked *