当前位置:   article > 正文

软件供应链安全:每个环节都很重要

软件供应链安全:每个环节都很重要

软件开发中的潜在风险不仅与特定的公司或产品有关,如今整个软件供应链都会变成攻击者的目标。确保我们把所有精力放在保护软件供应链的每个环节上是非常重要的,因为如果一个环节被攻破了,整个供应链都会收到影响。

供应链活动包括将原材料、组件和资源转化为成品的每一步,以及将其交付给最终客户。

 

一、什么是软件供应链

关于软件供应链的定义在之前的文章中已经阐述过很多次了,这次我们来换个极其简单的例子。

 

我们为客户生产最终的webapp,在此过程中我们需要编译一个源代码并使用来自第三方服务的信息。有时源代码本身就依赖于从其他代码生成的外部库。

软件供应链攻击发生时,一些恶意行为被引入该供应链。在供应链上的任何一个环节被攻击都可能在下游传播受损的代码或组件,并且很难被注意到。事实上,许多攻击都是集中在通过在中间步骤注入一些恶意软件或漏洞来损害软件供应商,以便最终给终端用户带来致命后果。

二、什么是供应链攻击

我们已经用一个简化的例子给出了软件供应链的定义,接下来让我们把重点放在源代码上:

 

放大供应链上的任何一个环节,都会显示出更多的细节:

 

在这个示例中,我们的源代码放在一个私有的git库中这个库可能是企业的基础设施或供应商提供的SaaS服务的一部分,也可能是编译器工具、基础容器映像注册中心等等。

也有些依赖项托管在公共存储库中,如Docker Hub或Quayio,它们可能会受到恶意攻击。供应链中的一些组件(蓝色部分)处于企业的监控和保护之下,比如私有源代码git库、应用程序本身以及生成的最终二进制或容器映像。但是,许多其他组件或服务(绿色部分)是公共服务和资源,由其他公司提供,完全不受企业控制。

因此,软件供应链攻击者可以直接攻击企业,但也可以更“简便”一些,直接针对任何上游元素,使企业成为受损资源的供应商。

三、供应链攻击实例

有趋势表明,供应链攻击正在以每年4-5倍的指数增长,最常见的是与依赖项混淆或类型篡改有关,其次是恶意源代码注入。

CodeCov

CodeCov的Docker映像中泄露的凭据允许攻击者修改bash脚本。这个脚本由客户下载并执行,导致客户凭据泄露,攻击者因此能获得访问他们git库的权限。

多个客户,如Monday.com、Hashicorp、Twiio、Confluge都受到了不同程度的影响。

Solorwinds

攻击者入侵了Solarwinds公司的网络,并设法将恶意软件注入到他们的构建过程中。该恶意软件是作为Orion产品更新的一部分捆绑在一起的。作为构建阶段的一部分,制品进行了数字签名,然后被数百名客户下载。

一旦恶意软件在客户网络中运行,攻击者就会监视并窃取他们的信息。这次事件也显示了一个供应链攻击是如何传播到下游并影响多个客户的:作为被破解的Orion软件的一部分,一个Mimecast邮件服务器的TLS证书私钥被泄露。这使得攻击者能够在邮件服务器上执行中间人攻击,并访问客户的电子邮件。

我们可能永远不会知道Solarwind攻击的影响到底有多大,因为这个被破解的软件在成千上万客户的网络中运行了几个星期甚至好几个月。

而且这还远未结束,Solarwinds事件背后的攻击者最近一直试图复制类似的攻击,而且攻击的目标已经拓展至了供应链的其他部分,比如经销商和其他技术服务提供商,他们代表客户定制、部署和管理云服务。

Kaseya

这和Solarwinds攻击事件很相似,但这次攻击者利用了Kaseya系统的0day漏洞。一旦他们控制了系统,就能使用VSA在客户的系统中执行远程命令并为所欲为。

Apple Xcode和XcodeGhost

在这次攻击中,合法Xcode项目“TabBarInteractive”的木马化版本在一个公共源码库中发布使用该项目假版本的开发人员无意中在每个项目构建上执行了一个脚本。该脚本打开了到C2服务器的连接。

还有另一个例子,重新包装带有恶意代码的Xcode版本,被上传到中文文件托管服务。从这些镜像下载妥协版本的开发人员最终得到一个修改过的对象文件,在创建ios应用程序时,目标文件链接在最终的可执行文件中。至少有两个恶意应用程序登陆了苹果官方appstore并成功通过了苹果的认证和代码审查。

NPM包 ua-parse-js

2021年10月22日,一个非常常见的NPM包ua-parse-js的开发者发现,一个攻击者上传了一个包含Linux和Windows恶意软件的危害版本,并且有能力窃取数据,例如才能够浏览器中窃取密码和cookies。

这个ua-parse-js库是大量软件和公司(包括Facebook)供应链的一部分,这些软件和公司用于数百万台计算机上的一些面向用户的应用程序。

Unicode和代码编译器

剑桥大学的一些研究人员声称,他们发现了一种针对源代码的新型供应链攻击,这种攻击具有文本编码标准(如Unicode)的相似之处。按照Unicode的工作方式,可以向注释或代码的某些部分添加特殊字符,使代码的“逻辑编码”按与显示顺序不同的顺序工作。这使得在人们看来正确的代码中隐藏恶意代码成为可能,从而顺利绕过了审查过程。

四、供应链攻击分类

并非所有人都认同意,针对软件供应链任何阶段的攻击都属于供应链攻击的范畴。ENISA(欧盟网络安全局)在供应链攻击的威胁景观报告中提出了一个分类标准,以描述供应链攻击的特点:

 

此外,该报告中还明确提到了一些不符合要求的例子,如:

1.一些冒名顶替或劫持品牌的软件包被上传到公共存储库,但它们不会损害现有的软件包或软件存储库。

2.发现了未在已知攻击中使用的漏洞或意外错误,因为它们不针对供应商或客户。

3.面向公众的脆弱版本的软件,它们可能会外泄客户数据,但供应商没有受到损害。

因此,对于一些攻击事件,目前甚至没有一个全球共识,它是否可以被归类为软件供应链攻击。但现存的共识是:保障软件供应链安全十分重要。随着软件、基础设施和依赖关系的日益复杂些,以及针对供应链攻击的增加,使得行业越来越关注软件供应链的安全性。

UniSCA软件供应链安全管理平台将帮助您保护软件供应链中的每个单独环节,维护软件供应链整体安全。

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号