

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 相依性替代攻擊
<a name="dependency-substitution-attacks"></a>

套件管理員可簡化封裝和共用可重複使用程式碼的程序。這些套件可能是組織開發的私有套件，用於其應用程式，或者可能是公有套件，通常是在組織外部開發並由公有套件儲存庫分發的開放原始碼套件。請求套件時，開發人員依賴其套件管理員來擷取其相依性的新版本。相依性替代攻擊也稱為相依性混淆攻擊，利用套件管理員通常無法區分套件的合法版本與惡意版本。

相依性替代攻擊屬於稱為軟體供應鏈攻擊的駭客子集。軟體供應鏈攻擊是一種利用軟體供應鏈中任何位置漏洞的攻擊。

相依性替代攻擊可以針對任何同時使用內部開發的套件和從公有儲存庫擷取的套件。攻擊者會識別內部套件名稱，然後在公有套件儲存庫中以策略方式放置同名的惡意程式碼。一般而言，惡意程式碼會發佈在版本編號較高的套件中。套件管理員會從這些公有摘要擷取惡意程式碼，因為他們認為惡意程式套件是套件的最新版本。這會導致所需套件與惡意套件之間的「混淆」或「替代」，導致程式碼遭到入侵。

為了防止相依性替代攻擊， AWS CodeArtifact 提供套件原始伺服器控制。套件原始伺服器控制是控制套件如何新增至儲存庫的設定。這些控制項可用來確保套件版本無法直接發佈至您的儲存庫並從公有來源擷取，保護您免受相依性替代攻擊。原始伺服器控制可以在個別套件和多個套件上設定，方法是在套件群組上設定原始伺服器控制。如需套件原始伺服器控制以及如何變更它們的詳細資訊，請參閱 [編輯套件原始伺服器控制項](package-origin-controls.md)和 [套件群組原始伺服器控制](package-group-origin-controls.md)。