本週早些時候,安全工具 Socket 報告了一些流行的 NPM 套件遭到入侵,這可能危及了開發者的機器。 讓我們看看這個漏洞是如何運作的,以及你如何能夠保護自己免受其影響 👇
步驟 1:NPM 發布者訪問 駭客利用釣魚攻擊來入侵擁有這些套件發布權限的帳戶。 這使得駭客能夠發布這些流行 NPM 套件的惡意版本。
步驟 2:依賴安裝下載惡意軟體 當開發者安裝那個新的惡意版本時,NPM 套件中的 "postinstall" 腳本會在安裝後運行,並在開發者的機器上下載並執行惡意軟體。 這可能會危及進一步的開發者帳戶或從他們的電腦中竊取憑證。
我們該如何避免這種漏洞的危害? 作為包的作者: 使用雙重身份驗證(2FA),以降低釣魚攻擊妨礙您發佈包的權限的可能性。 作為開發者: 1. 鎖定依賴項。 幸運的是,這已經是標準做法,否則這種漏洞的影響會更大。 2. 儘量避免使用 postinstall 腳本。 大多數包不需要 postinstall 腳本來運行,因此建議將其關閉。MetaMask 創建了一個很棒的開源工具,名為 LavaMoat。 3. 審核依賴項。 保護自己免受這類漏洞的最佳方法是對您最初添加到項目中的依賴項保持謹慎。Socket 是一個非常有用的工具,可以幫助自動化這種審核。
281