【時差攻擊】npm搜索時間有機可乘 不公開軟件秒速曝光
![Topic report3](https://www.wepro180.com/wp-content/uploads/2022/11/WEB_221108_npm.jpg)
網絡安全公司Aqua Security最新發現,GitHub旗下的 npm 開源軟體註冊中心服務存在時差缺陷,黑客可利用搜尋時差得悉套件名稱是否已被私人註冊,從而在公開資料庫中上載名稱幾乎一樣的惡意套件,令軟件開發者被誤導下載使用。GitHub 已表明無法修正缺陷,開發者只能自保。
npm ( Node Package Manager ) 是跟 NodeJS 一起安裝的管理工具,它可讓軟件或網站開發者借用其他開源軟件時,更容易解決 NodeJS 編碼的部署問題。由於在現時開發軟件或網站時,為加速開發流程及減少不必要的開發過程,幾乎所有軟件開發者都會引用開源軟件,因此 npm 亦成為黑客目標,通過上載藏有惡意功能的軟件,感染其他開發者的軟件或網站,替黑客進行公司機密或信用卡資料盜竊的行為。要達成這種供應鏈攻擊 ( supply chain attack ),黑客其中一個常用手段是串字錯誤 ( typosquatting )攻擊,即上載一個與著名 npm 名稱相近的軟件,開發者只要稍為鬆懈,就有可能下載了惡意軟件使用。
網絡安全公司 Aqua Security 指出,一些公司為求員工不會受到串字錯誤影響,當開發了私人的 npm 後,會選擇私人 ( private ) 登錄,即無法通過 GitHub 的 registry API 發現相關 npm,令黑客無法借助串字錯誤而令員工上釣。不過,安全專家發現 registry API 原來存在缺陷,因為在搜尋一個私人登錄的 npm,與完全未有登錄的名稱時,其結果返回時間存在數百微秒的時差,雖然只是很短暫,但安全專家仍可區別搜尋的 npm 名稱已被登錄或根本不存在。只要黑客掌握上述資料,便可以直接於公開資料庫上存相同名稱的 npm 軟件,便可有機會誤導該公司的員工下載使用。
Aqua Security 將缺陷資料提交 GitHub,對方回覆基於設計限制,他們無法阻止時差攻擊,因此專家指出企業如要維持現時做法,便應定時搜尋開源資料庫上有否使用串字錯誤的 npm 存在,如發現便要即時向 GitHub 舉報。另外,企業亦可在公開資料庫上登錄相同名稱的 npm,因為系統不許可在公開資料庫上登錄相同名稱的軟件,雖然無法阻止串字錯誤問題,但仍可減少員工中招機會。
資料來源:https://www.bleepingcomputer.com/news/security/new-npm-timing-attack-could-lead-to-supply-chain-attacks/
相關文章:【魚目混珠】GitHub平台藏35,000惡意專案開發者誤用帳戶盡失