依赖项替换攻击 - CodeArtifact

依赖项替换攻击

程序包管理器简化了打包和共享可重用代码的过程。这些程序包可能是组织为了在其应用程序中使用而开发的私有程序包,也可能是公有程序包(通常是在组织外部开发并由公有程序包存储库分发的开源程序包)。在请求程序包时,开发人员依靠他们的程序包管理器来提取其依赖项的新版本。依赖项替换攻击也称为依赖项混淆攻击,该攻击利用了这样一个事实,即程序包管理器通常无法区分程序包的合法版本和恶意版本。

依赖项替换攻击是被称为软件供应链攻击的黑客攻击的其中一种形式。软件供应链攻击是一种利用软件供应链中任何地方的漏洞进行的攻击。

依赖项替换攻击可以针对任何人,包括使用内部开发的程序包和从公有存储库提取的程序包的用户。攻击者识别内部程序包名称,然后策略性地将同名的恶意代码放置在公有程序包存储库中。通常,恶意代码在版本号较高的程序包中发布。因为程序包管理器认为恶意程序包是程序包的最新版本,所以从这些公有源中提取恶意代码。这种行为会导致期望程序包和恶意程序包之间发生“混淆”或“替换”,进而导致代码被篡改。

为了防止依赖项替换攻击,AWS CodeArtifact 提供了程序包来源控制。程序包来源控制是用于控制如何将程序包添加到存储库的设置。这些控制设置可用于确保不能既将程序包版本直接发布到您的存储库中,又从公有来源摄取程序包版本,从而保护您免受依赖项替换攻击的威胁。通过对程序包组设置来源控制,可以对单个程序包和多个程序包设置来源控制。有关程序包来源控制以及如何对其进行更改的更多信息,请参阅编辑程序包来源控制程序包组来源控制