软件供应链攻击的新形式

软件供应链攻击影响广泛,如Event-stream、SolarWinds Orion和Codecov Bash Uploader事件所示。防御策略包括使用lockfiles、管理依赖项和代码审查。防御工具涉及SCA工具和SLSA框架,提升供应链可见性是关键。
摘要由CSDN通过智能技术生成

        软件供应链攻击是一种新兴的攻击方式,它与传统攻击不同,一次软件供应链的攻击可以影响数百甚至上千个不同的目标。

        简单的来说,假设我是一个网络犯罪分子,想要将恶意代码注入N个不同的目标。在一次传统的网络攻击中,我需要想出大约N个独立的漏洞来影响每个系统。虽然我可以针对多个目标重用相同的攻击机制,但我并不能保证在所有情况下我的攻击都能奏效。更糟糕的是,在这N个目标中的任何一个都可能具备相对较严密的安全措施,并且很难被攻破。这是传统的攻击方法。

         现在,我只需要考虑发动一次针对相同N个系统的供应链攻击就行了,我只需要骇入这N个目标中的一个共享依赖项就可以完成对供应链中所有企业的攻击。更加危险的是,我可以尝试从无数其他来源中找到最简单的攻击面。

        这就是为什么软件供应链攻击如此危险的原因:一次成功的攻击可以影响大量目标。

        那么,安全团队可以采用什么策略来提高软件供应链的安全性呢?什么工具能提供最强有力的保护?首先,我想先介绍三个典型的软件供应链攻击事件。

一、软件供应链攻击示例

01 Event-stream

        Event-stream是一个npm包,其维护者不愿意再进行后续维护,因此他们转移了它的发布权限。新的维护人员添加了一个名为latMap stream的依赖项,该依赖最初是良性的,并且工作正常。

         但是,他们后来更新了latMap stream,使其携带恶意代码,可以嗅探装有100多个比特币的比特币钱包,并将密钥发送到远程服务器。如果你更新了你的event-stream或任何依赖项,并且为latMap stream定义了一个版本范围,那么它就会毫不客气的引入恶意代码。

     这里只有一个共享资源(npm注册表)。攻击者的目标是BitPay,但该漏洞影响了其他公司,包括微软和大多数其他不知情的event-stream用户。

02 SolarWinds Orion

        SolarWinds事件可能是软件供应链攻击中最著名的例子了。之所以会发生这种情况,是因为黑客获得了安全凭证。毕竟如果你的公司是SolarWinds,SolarWinds123都不会是一个好密码。

         一旦攻击者破坏了这些凭证并进入了SolarWind网络,他们就开始在整个SolarWind的系统中添加恶意代码。具体来说,黑客的最终目标是Orion平台,该平台用于基础设施的监控和大型组织的一些安全特性。Orion被认为是一个单一的、可信赖的资源。如果用户从SolarWinds下载,他们希望payload来自SolarWinds。

        但是,一旦payload被恶意更新,就会发生类似于event-stream的攻击。SolarWinds Orion受到了攻击,随后影响到了包括美联储、微软、美国能源部在内的数百个组织。这个漏洞已经持续了一年多的时间,至今仍然困扰着许多公司和美国政府。

03 Codecov Bash

         最近,我们遇到了Codecov bash uploader问题。由于Codecov的docker映像创建过程中的一个错误,恶意的参与者获得了访问凭证的权限,然后攻击者能够修改Codecov文档并修改用于在CI环境中安全该工具的脚本。

        对于上下文,Codecov是集成到CI环境中的代码覆盖工具。你下载一个脚本将你的代码覆盖率结果上传到Codecov的服务器,并且,攻击者能够更改特定的脚本。

        修改脚本使攻击者能够提取秘密环境变量,如果你从运行受损脚本的同一CI部署生产服务,这种情况会变得尤为糟糕。这意味着你所有的生产机密都应该被认为遭到了泄露。更糟糕的是,Twilio、GoDaddy和其他大多数Codecov用户都不知道发生了攻击,知道有人检查了payload的hash,发现它与Github上的上传脚本hash不匹配。

二、防御软件供应链攻击

       既然我们已经讨论了在供应链攻击中的具体案例,接下来的重点毫无疑问是如何防御它们。大体上,我们将这些防御机制分为两类:策略和工具。

供应链攻击的防御策略

1.使用lockfiles:

在依赖关系图中,lockfiles会将每个包的版本固定在一个特定的注册表内。这意味着即使发布了一个新版本,并且你的语义化版本范围规范允许你的代码使用它,lockfiles也不会被更改,除非你明确操作使它完成了更新。此外,大多数lockfiles包括hash,可以检测包payload发生的变化,以预防中间人攻击。

2.将依赖项放入源代码管理中:

不要每次都要安装依赖项时都从存储库进行安装。你应该将依赖项进行有效的管理,例如整理一个完备的SBOM清单。

3.检查所有代码:

这显然是一件费时费力的工作,但这是非常有必要的。一些必要的自动化工具可以显著提高你的检测效率。

供应链攻击的防御工具

1.SCA:它能识别并为开源代码中已知的漏洞提供修复建议。鉴于开源代码在现代软件开发中的普及,这是安全技术栈的一个重要组成部分。常用的一些SCA工具包括Mend SCA、CodeAnt、Checkmarx SCA等等。

2.SLSA框架:这是Google发布的一个用于软件构件供应链级别的框架,它旨在SDLC的不同阶段公开软件构件中的元数据,从而确保整个软件供应链中软件构件的完整性。

          这些策略和工具有一个共同点:可见性。追溯到event-stream事件,那次攻击最初被发现是因为在安装时安全工具发布了一个警告,说在一个不应该链接到互联网的软件包上有一个即将被废弃的网络调用。这促使安全团队意识到这可能是一次恶意攻击的源头。

        软件供应链攻击十分危险,也很难被及时检测出来,但使用正确的SCA工具、构建完整的SBOM清单可以进行有效抵御。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值