受歡迎的JavaScript UAParser.js遭惡意程式感染

NPM package UAParser.js在全球數以千萬台的電腦上安裝,近日被發現遭受盜取密碼和秘密挖礦的惡意程式感染,即使不熟識JavaScript也應該立即檢查系統,因為一經安裝或執行便可視為被完全入侵。

甚麼是UAParser.js以及受歡迎的原因

根據開發者的網頁統計,UAParser.js每星期被下載600至800萬次,很多項目都使用到這個library。JavaScript的開發者使用UAParser.js去解析瀏覽器發送的User-Agent數據,在很多網站上都有部署,同時在不同公司的軟件開發過程中都有使用,包括Facebook、Apple、Amnazon、Microsoft、Slack、IBM、HPE、Dell、Oracle、Mozilla等等,除此之外,部份軟件開發者使用第三方儀器,例如Karma框架去進行編碼測試,同樣需要倚靠這個library,考慮到供應鏈的話,攻擊規模進一步擴大。

惡意編碼製作者不明

這次受影響的3個library版本包括0.7.29、0.8.0和1.0.0,攻擊者把惡意腳本嵌入library內,下載時連同惡意編碼並在受害者電腦上執行,包括Linux和Windows裝置在內,其中一個模組的目標是挖掘加密貨幣,另一個(只限Windows平台)則能盜取機密資料,例如瀏覽器cookies、密碼和操作系統登入憑證。

然而這並非全部,根據CISA的警告,安裝被入侵的library將會讓攻擊者取後受感染系統的控制權。而GitHub的用戶表示,惡意程式製作binary檔案jsextension(Linux)和jsextension.exe(Windows),出現這個檔案是明顯的感染特徵。

惡意編碼進入UAParser.js的方法

根據UAParser.js計劃開發者Faisal Salman表示,不明攻擊者取得他在npm的帳號並發放3個惡意版本的UAParser.js library,開發者立即對被感染的內容入加警告並通知npm支援,很快便移除了危險的版本,但在上線期間,很可能有可觀數量的裝置已經下載。

整個過程發生在美國時間10月22日的下午2時到6時,短短4小時之內,到晚上開發者發現郵箱的不尋常垃圾電郵活動,令他警覺到有可疑活動,然後發現問題的根源,暫時難以計算被感染的library的下載數量,但事故發生後的3天內,保安方案在全球偵測到幾十家公司內含有惡意編碼。

已下載受感染library的處理方法

首先是在電腦中檢查惡意程式,所有該惡意程式使用的攻擊元件都成功被卡巴斯基的產品偵測。然後是更新library的補丁版本,0.7.30、0.8.0和1.0.1,然而這樣仍不足夠,根據建議,任何電腦曾經安裝或執行受感染版本library,都應該視為完全被感染,所以用戶和管理員應該更改所有那些電腦上的登入憑證。

一般而言,開發和構建環境是攻擊者嘗試組織供應鏈攻擊的方便目標,這意味著這種環境急需要反惡意程式的方案保護。

資料來源:Kaspersky Blog