恶意包是软件供应链攻击中日益增长的威胁
恶意软件包系列(1 / 4)

欢迎来到第一个帖子在DevOps和DevSecOps社区的恶意软件包系列。每周,本技术系列将重点介绍各种恶意软件包及其对软件供应链的影响,所有内容都将在未来四周内发布。
我们将在每篇文章中深入研究恶意软件包,包括
- 定义软件供应链攻击,了解恶意软件包在其中扮演的关键角色(你在这里)
- 分析真实世界的感染方法攻击者用来传播恶意软件包的JFrog安全研究团队发现的攻击案例
- 了解恶意软件包中使用的标准有效载荷以及攻击者如何使用混淆技术将它们隐藏在代码中
- 讨论在软件开发生命周期中检测和防御软件供应链攻击的最佳实践
开始吧。让我们讨论一下软件供应链中的恶意软件包。
什么是软件供应链攻击,其固有的安全风险是什么?
在软件供应链攻击中,攻击者故意将漏洞、恶意代码或整个恶意组件塞进所提供的可信软件或硬件中并在硬件或软件供应链中消耗。
现代软件开发涉及将第三方软件集成到企业应用程序中。根据2021年软件安全的Veracode状态据报道,97%用Java编写的典型应用程序是由开源库组成的。这一统计数据表明,只有3%的Java代码是原创的,这只显示了今天的深度和广度第三方库和开源代码。
这种实践本质上是在软件供应链中的各方之间建立信任链。但是,实际上,这种做法也需要风险,因为第三方软件包和开源软件包可能包含漏洞或通过软件供应链交付的恶意代码,影响使用易受攻击或恶意软件包的所有应用程序。
软件供应链中存在哪些类型的威胁?
有三个软件供应链安全威胁(图1.1)。
前两种威胁显示软件漏洞,有意或无意。这些漏洞通常指的是软件错误,其中每个错误通常分配一个公开和发布时的通用漏洞和暴露(CVE)标识符。
第三个软件供应链威胁是恶意组件或软件包。与需要利用的漏洞不同,此威胁包括实际的恶意代码,在使用时执行不需要的操作和恶意活动。当这种类型的威胁暴露危险时,通常不分配CVE。在被报告为恶意后,整个包或包的特定版本将从包存储库中删除,例如,PyPi或NPM。由于缺乏恶意包名称和版本的识别机制,开发人员和安全涉众很难进行跟踪。我们将在本博客系列的后续文章中讨论克服这一挑战的解决方案。
以下是两个现实世界中的例子:
- 无意的错误:一个很好的例子就是臭名昭著的Log4Shell脆弱性在2021年12月震动了世界。Log4j包被Java项目广泛使用,并影响了许多企业应用程序和云服务,如Apache Struts、Apache Solr、Apache Druid等等。
- 故意漏洞:在2020年,一个故意的漏洞注入了一个后门SolarWinds“猎户座软件平台。该软件的后门版本被下载了大约18000次,并积极影响了大约100家不同的公司。
如果您想知道恶意软件包的真实例子,请继续关注,因为我们将在下周的“恶意软件包”系列文章中仔细研究这一特殊威胁。
攻击者可以利用上述威胁进行实际攻击。第三方代码的无意漏洞也可以被认为是供应链攻击(如影响许多企业组织的广泛利用的Log4Shell漏洞)。尽管如此,软件供应链攻击的保守术语通常指的是通过植入恶意代码或故意植入漏洞来故意破坏供应链,如上面两个例子所示。因此,虽然无意的漏洞通常被认为是对软件供应链安全的威胁,但在讨论攻击供应链时,它超出了范围。
为什么攻击者会攻击软件供应链?
攻击者攻击软件供应链有两个原因。
首先,从技术的角度来看,如果你看一下这种方法的本质,你会发现这种类型的攻击没有涉及特定的目标。因此,例如,当您通过感染单个软件包来攻击供应链时,您可能会攻击依赖于该软件包的所有软件以及使用此特定受感染依赖项的应用程序的所有最终消费者。攻击者会采用软件供应链方法,因为这种攻击具有很高的分布潜力。
攻击者利用软件供应链的第二个原因是,与我们在过去二三十年中看到的攻击者专注于利用漏洞的经典目标攻击相比,他们需要在软件供应链攻击上投入的精力很少。在标准的目标攻击中,攻击者必须投入足够的时间和金钱来破坏单个目标。当目标是一个已知的软件平台时,这种攻击变得更加复杂,因为与许多相对较小的软件包相比,它是高度维护和安全的。
攻击者需要很高的技术技能来进行有针对性的攻击,因为它基本上涉及到寻找漏洞、开发可用的利用程序或为其付费。
看看Zerodium的定价表;利用获取平台。
上表显示,一个远程代码执行漏洞的成本可能高达100万美元,其中Windows上的零点击RCE漏洞成本最高。该表展示了利用漏洞时的复杂性和高赏金/奖励。
当将这种努力与攻击恶意开源软件包进行比较时,选择是无穷无尽的,因为那里有成千上万的软件包。因此,攻击者只需找到单个包进行攻击,或发布单个恶意软件包,滥用供应链中各方之间的信任,使这种攻击方法有效。在下一篇博文中,我们将了解恶意开源软件包攻击的原因和容易程度。
流行的套餐包括NPM的伪造者和颜色对于恰好是该包供应链一部分的大型消费者社区来说,游戏可能会结束。正如我们今年早些时候发表的,有些包可以针对大型企业解决方案的用户.
敬请期待“恶意软件包”的下一部分博客系列,我们将分析攻击者用来传播恶意软件包的真实感染方法。在那篇文章中,我们将提供JFrog安全研究团队发现的攻击案例。在你走之前,问问你的家人elf this:我如何防御软件供应链攻击和恶意包?
想了解更多吗?登记参加即将到来的JFrog网络研讨会.
这个教育系列由网络研讨会改编而成识别和避免恶意包,从技术上展示了目前在PyPI (Python)和npm (Node.js)包库中流行的不同类型的恶意包。
