JFrog 研究人員 Andrey Polkovnychenko 和 Shachar Menashe 在一份報告中,截至 3 月 21 日他們已觀察到不少於 218 個惡意 NPM 包。檢查後發現這都是針對 Azure 開發人員的新的大規模供應鏈攻擊,攻擊者採用了一個自動指令碼來建立賬戶並上傳覆蓋整個 scope 的惡意軟體包,旨在竊取個人身份資訊。
除了針對 scope 外,還有 、、 和 也是目標。在這些惡意包釋出大約兩天後,JFrog 向 NPM 維護人員進行了披露,其迅速進行了刪除;但在此之前,每個軟體包已平均被下載了約 50 次。
根據介紹,攻擊人員使用的軟體供應鏈攻擊方法是 typosquatting,他們只是建立了一個新的(惡意的)包,其名稱與現有的 @azure scope package 相同,但刪除了 scope name。舉例如下:
這是一個合法的 azure npm 包
以及它的惡意對應物
「攻擊者依賴於一些開發人員在安裝軟體包時可能錯誤地省略了@azure 字首這一事實。例如,錯誤地執行 npm install core-tracing,而不是正確的命令 - npm install @azure/core-tracing。」
而除了 typosquatting 感染方式外,所有的惡意軟體包都有極高的版本號(例如 99.10.9)。研究人員指出,這表明是一種依賴性混淆攻擊。一個可能的猜想是,除了基於 typosquatting 的普通 npm 使用者的目標外,攻擊者還試圖針對開發人員和從 Microsoft/Azure 內部網路執行的機器。
JFrog 建議,對於使用目標包的 Azure 開發人員,可以通過檢查它們的名稱是否以 @azure* scope 開頭,以確保合法性。並表示,由於供應鏈攻擊的迅速崛起(特別是通過 npm 和 PyPI 軟體包庫),似乎應該增加更多的審查和緩解措施。
例如,在建立 npm 使用者時新增一個 CAPTCHA 機制將不允許攻擊者輕鬆建立任意數量的使用者來上傳惡意包,從而更容易識別攻擊。除此之外,作為安全軟體管理過程的一部分,基於 SAST 或 DAST 技術(或者最好是兩者)的自動軟體包過濾的需求可能也是不可避免的。