Quantcast
Channel: iThome
Viewing all articles
Browse latest Browse all 33102

惡意NPM套件濫用Unicode字元、Google行事曆,隱匿攻擊意圖

$
0
0

惡意NPM套件的攻擊行動層出不窮,但為了隱匿作案的行蹤,駭客會試圖結合多種手法,像是透過Unicode埋藏惡意內容,或是濫用合法的雲端服務來達到目的。

例如,最近資安業者AikidoVeracode揭露的NPM套件os-info-checker-es6,就是典型的例子,攻擊者利用Unicode字元來藏匿惡意程式碼,並且使用Google行事曆活動(event)邀請的短網址,來存取最終的有效酬載,使得這起多階段攻擊行動的蹤跡難以察覺。

針對整起攻擊行動的過程,Aikido指出該惡意套件起初在3月19日上架,當時他們僅是發現套件並未具備開發人員標榜的功能,認為不尋常而進行追蹤,但沒發現異狀。研究人員從該套件的preinstall.js元件察覺有異,起因是內部功能函數eval()會呼叫經由Base64處理的輸入內容。

他們對駭客使用的二進位檔案進行逆向工程,此檔案以Rust打造而成,結果發現駭客輸入decode函數的內容出現不尋常的「|」開頭,經過確認其實是Unicode未分配標準字元使用的字碼(譯註:此處應該是指Unicode的Private Use Area characters,而非Aikido提到的Private Use Access characters)。

不過,即使研究人員解開駭客使用的Unicode特殊字元,還是無法得知意圖。另一方面,他們陸續看到4個相依os-info-checker-es6的套件,分別是:skip-tot、vue-dev-serverr、vue-dummyy、vue-bit,怪異的是,這些相依套件竟然不會呼叫os-info-checker-es6當中的decode函數。

直到5月7日駭客上傳了os-info-checker-es6新版1.0.8,答案終於揭曉,這個NPM套件的preinstall.js更換了eval()內容,經解碼後出現的竟是Google行事曆發送的活動邀請連結,這個活動的名稱也很詭異,是一串字串,活動定於2027年6月27日舉行。研究人員將字串以Base64演算法解開,結果得到一段網址。但用途為何?他們並未進一步說明。

Veracode也公布相關調查結果,他們指出該惡意套件起初在3月19日上架,當天駭客先後共發布了5個版本,但這些套件看起來沒有什麼破壞能力,主要的功能在於收集目標環境的作業系統、版本,處理器架構、主機名稱等系統資訊,並未有資料洩露或顯著的惡意行為,Veracode推測,這幾個版本駭客主要的目的,在於測試NPM套件能否正常部署。

駭客沉寂了數日,於3月22日至23日再度活動,對於不同作業系統編譯Node.js模組進行測試,但還是難以看出其攻擊意圖。

直到後續出現的1.0.8版os-info-checker-es6,他們才確認駭客的目的,研究人員指出preinstall.js比之前的版本大上許多,並指出駭客使用了相當複雜的C2機制。

首先,NPM套件安裝後,會取得Google Calendar短網址,此套件使用特定的功能函數追蹤,直到收到HTTP 200 OK的回應。

接著此套件從Google Calendar活動標題取得經Base64演算法處理的網址並解碼,下載第二階段的惡意軟體有效酬載,此有效酬載同樣經過Base64處理。最終攻擊者解密有效酬載,並透過功能eval()執行。


Viewing all articles
Browse latest Browse all 33102

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>