幾天前 GitHub 披露了 NPM 包存儲庫基礎設施中的兩起事件, 其中詳細介紹了 2 月 XNUMX 日,作為 Bug Bounty 計劃一部分的第三方安全研究人員在 NPM 存儲庫中發現了一個漏洞 即使未經授權,它也允許發布任何包的新版本 執行此類更新。
該漏洞是由微服務代碼中不正確的授權檢查引起的 該流程向 NPM 提出請求。 授權服務根據請求中傳遞的數據對包執行權限檢查,但正在將更新上傳到存儲庫的另一個服務根據上傳的包中的元數據內容確定要發布的包。
因此,攻擊者可以請求發布他有權訪問的包的更新,但在包本身中指明有關最終將被更新的另一個包的信息。
在過去的幾個月裡,npm 團隊一直在投資基礎設施和安全改進,以自動監控和分析最近發布的軟件包版本,以實時識別惡意軟件和其他惡意代碼。
npm 生態系統中發生的惡意軟件發布事件主要有兩類:由於帳戶劫持而發布的惡意軟件,以及攻擊者通過自己的帳戶發布的惡意軟件。 儘管高影響力的帳戶獲取相對較少,但與攻擊者使用自己的帳戶發布的直接惡意軟件相比,當針對流行的軟件包維護者時,帳戶獲取的影響力可能會很大。 雖然在最近發生的事件中,我們檢測和響應獲取流行軟件包的時間低至 10 分鐘,但我們會繼續改進我們的惡意軟件檢測功能和通知策略,以實現更主動的響應模型。
問題 漏洞報告6小時後修復,但漏洞在NPM中存在的時間更長 比遙測日誌涵蓋的內容。 GitHub 表示沒有使用此漏洞的攻擊痕跡 自 2020 年 XNUMX 月,但不能保證該問題之前沒有被利用過。
第二起事件發生在 26 月 XNUMX 日。 在使用replicant.npmjs.com服務數據庫進行技術工作的過程中, 據透露,數據庫中有機密數據可供外部諮詢, 揭示有關更改日誌中提到的內部包名稱的信息。
這些名字的信息 可用於對內部項目進行依賴攻擊 (今年 30 月,此類攻擊允許代碼在 PayPal、微軟、蘋果、Netflix、優步和其他 XNUMX 家公司的服務器上運行。)
另外, 與大型項目的存儲庫被扣押的發生率增加有關 以及通過破壞開發者帳戶來推廣惡意代碼, GitHub 決定引入強制性兩因素身份驗證. 該更改將於 2022 年第一季度生效,並將適用於最受歡迎的列表中包含的軟件包的維護者和管理員。 此外,它還報告了基礎設施的現代化,這將引入對新版本軟件包的自動監控和分析,以便及早檢測惡意更改。
回想一下,根據 2020 年進行的一項研究,只有 9.27% 的包管理器使用雙因素身份驗證來保護訪問,並且在 13.37% 的情況下,在註冊新帳戶時,開發人員試圖重複使用已知密碼中出現的已洩露密碼.
在檢查所用密碼的強度時,由於使用了“12”等可預測且簡單的密碼,因此訪問了 NPM 中 13% 的帳戶(佔包的 123456%)。 其中有問題的有4個最流行包的20個用戶帳戶,包月下載量超過13萬次的50個帳戶,月下載量超過40萬次的帳戶有10個,月下載量超過282萬次的帳戶有1個。 考慮到依賴鏈上的模塊負載,破壞不受信任的帳戶可能會影響 NPM 中多達 52% 的所有模塊。
最後, 如果您有興趣了解更多信息 您可以查看詳細信息 在下面的鏈接中。