本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
依赖项替换攻击
程序包管理器简化了打包和共享可重用代码的过程。这些程序包可能是组织为了在其应用程序中使用而开发的私有程序包,也可能是公有程序包(通常是在组织外部开发并由公有程序包存储库分发的开源程序包)。在请求程序包时,开发人员依靠他们的程序包管理器来提取其依赖项的新版本。依赖项替换攻击也称为依赖项混淆攻击,该攻击利用了这样一个事实,即程序包管理器通常无法区分程序包的合法版本和恶意版本。
依赖项替换攻击是被称为软件供应链攻击的黑客攻击的其中一种形式。软件供应链攻击是一种利用软件供应链中任何地方的漏洞进行的攻击。
依赖项替换攻击可以针对任何人,包括使用内部开发的程序包和从公有存储库提取的程序包的用户。攻击者识别内部程序包名称,然后策略性地将同名的恶意代码放置在公有程序包存储库中。通常,恶意代码在版本号较高的程序包中发布。因为程序包管理器认为恶意程序包是程序包的最新版本,所以从这些公有源中提取恶意代码。这种行为会导致期望程序包和恶意程序包之间发生“混淆”或“替换”,进而导致代码被篡改。
为了防止依赖替换攻击, AWS CodeArtifact 提供了包源控制。程序包来源控制是用于控制如何将程序包添加到存储库的设置。这些控件可用于确保软件包版本既不能直接发布到您的存储库,也不能从公共来源获取,从而保护您免受依赖项替换攻击。通过在包裹组上设置源控件,可以对单个包裹和多个包裹设置原产地控制。有关包裹来源控制以及如何更改它们的更多信息,请参阅编辑程序包来源控制和Package 组原产地控制。