數千開發者的npm賬戶在使用域名已過期的電子郵件地址
去年,微軟和北卡羅萊納州立大學的研究人員,分析了上傳到npm 上的1630101 個庫的元數據。結果發現,數以千計的JavaScript 開發者賬戶,正在使用域名已過期的電子郵件地址,意味著他們的項目很容易被劫持。在2818 名項目維護者使用的電子郵件地址中,某些已過期的域名已掛在GoDaddy 等網站上待售。
NPM 是“節點包管理器”(Node Package Manager)的縮寫
研究人員指出,別有用心的攻擊者可購買這些域名,在其電子郵件服務器上重新註冊維護者的地址,然後重置維護者的賬戶密碼、以接管受害者的npm 包。
這類攻擊得逞的隱患很大,因為npm 門戶不會對賬戶所有者強制執行2FA 雙因素身份驗證。意味著一旦被攻擊者重置密碼,他們就可肆意篡改相關軟件包。
共計2818 個維護者賬戶在管理8494 個包,其中平均有2.43 個直接依賴項,表明特定攻擊可波及數以萬計的其它下游項目。
所有者可能會覺察到其賬戶被劫持,但考慮到許多npm 庫和賬戶要么長期被冷落(高達58.7% 未得到維護)、要么就是已被遺棄(44.3%),情況並不容樂觀。
研究團隊將它們的發現通報給了npm 安全團隊,但並未說明對方給出了怎樣的回應。
截止The Record 發稿時,發給npm 上屬的GitHub 的電子郵件,暫未看到退件回執。
慶幸的是,在研究結果於2021 年12 月發布的前幾天,npm 已宣布一項新計劃,聲稱要逐漸讓開發者賬戶強制執行雙因素身份驗證。
該過程將分多個階段進行,且本月初註冊的前百名維護者賬戶都已落實2FA 方案。欲知詳情,還請翻閱《npm 供應鏈中的薄弱環節》一文。
以下是研究團隊的一些其它發現:
● 33249 個軟件包(2.2%)使用了安裝腳本,或被濫用於執行惡意命令、且違反npm 的最佳安全實踐。
● 排名前1% 的軟件包(14941 個),平均有32.4 名維護者—— 這為針對不活躍/ 疏於照顧的開發者賬戶進行的攻擊敞開了大門。
● 389 個軟件包,平均有40 名貢獻者—— 這為意外植入的安全漏洞、或讓項目充斥潛在惡意代碼而留下了隱患。
● 前1% 維護者,平均管理著180.3 個軟件包;而直接依賴的包數量,平均為4010 個—— 意味著某些開發者可能可能過勞,或沒有太多精力來徹底維護或審查軟件包的變更。