據外媒 bleepingcomputer 報導,11 月 4 日,流行的 npm 庫“coa” 被劫持,其中注入了惡意程式碼,並且短暫地影響了世界各地依賴於“coa”的 React 包。
“coa”是 Command-Option-Argument 的縮寫,這個庫每週在 npm 上的下載量約為 900 萬次,並被 GitHub 上近 500 萬個開源儲存庫使用。
'coa' 是 Node.js 專案的命令列選項解析器。該專案的最後一個穩定版本 2.0.2 於 2018 年 12 月釋出。但是,在 npm 上突然出現了幾個可疑版本:2.0.3、2.0.4、2.1.1、2.1.3 和 3.1.3,正是這些惡意版本破壞了依賴於“coa”的 React 包:
GitHub 上 coa 的惡意版本
React 開發人員 Roberto Wesley Overdijk 對此表示:
“我不知道這種情況為什麼出現,也不知道到底發生了什麼。但無論這個版本怎麼做,它都破壞了網際網路。”
另一個使用 ElBidouilleur 控制程式碼的 GitHub 使用者發現 “coa”2.1.3 版本破壞了他們的構建:
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! coa@2.1.3 preinstall: start /B node compile.js & node compile.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the coa@2.1.3 preinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/mboutin/.npm/_logs/2021-11-04T14_01_45_544Z-debug.log
此外,幾位開發者也加入了討論,表示自“coa”的新版本釋出以來,他們的構建也遇到了問題。
目前,雖然這些惡意版本已被 NPM 刪除。仍可以從Sonatype 的自動惡意軟體檢測系統檢索存檔副本。
惡意軟體同樣劫持了 “ua-parser-js” 和假的 noblox 包
相同的事件也發生在上個月,被 Facebook、Microsoft、Amazon、Reddit 和其他大型技術公司使用的另一個流行的 npm 庫 “ ua-parser-js ”遭到劫持。
據 BleepingComputer 分析,被劫持的“COA”版本中包含的惡意軟體實際上與被劫持的UA-PARSER-JS版本中的程式碼相同,可能在兩個事件背後的威脅演員之間建立連結。
惡意軟體可能是竊取 Windows的Danabot密碼竊取木馬。載入通過Regsvr32.exe 時,它將最終使用 rundll32.exe 再次啟動各種引數以執行不同的惡意行為。
載入時,Danabot 將執行各種惡意活動,包括:
- 竊取來自各種 Web 瀏覽器的密碼,包括 Chrome、Firefox、Opera、Internet Explorer 和 Safari
- 竊取各種應用程式的密碼,包括VNC,線上賭場應用程式,FTP客戶端和郵件帳戶
- 竊取儲存的信用卡
- 擷取活動螢幕的截圖
- 日誌 keystrokes
- 將所有這些被盜資料傳送回威脅演員,以允許他們違反受害者的其他賬戶
“coa” 庫使用者應該怎麼做
出於這類供應鏈攻擊的廣泛影響,強烈建議 “coa” 庫使用者檢查自己的專案是否有惡意軟體,包括檢查 compile.js、 compile.bat、sdd.dll 這些檔案是否存在。
如果確認已經受感染,請更改裝置上的密碼、金鑰和令牌,同時將 coa 的 npm 版本固定到穩定版本“2.0.2”。