惡意程式
FBI:駭客於Google關鍵字假15個品牌之名,散播 IcedID 殭屍網路
趨勢科技分析了某起利用 Google 點擊付費 (PPC) 廣告散播 IcedID 殭屍網路的惡意廣告,IcedID 能讓駭客執行高破壞力的後續攻擊來侵害系統,例如:竊取資料或使用勒索病毒癱瘓系統。
IcedID 殭屍網路假冒15個知名品牌及應用程式,刊登Google 點擊付費廣告,散播惡意程式
在密切追蹤 IcedID 殭屍網路的活動期間,趨勢科技發現其散播方式出現重大改變。從 2022 年 12 月起,我們觀察到它開始在 惡意廣告攻擊中使用 Google點擊付費 (PPC) 廣告來散播 IcedID。趨勢科技將此 IcedID 變種命名為「TrojanSpy.Win64.ICEDID.SMYXCLGZ」。
Google Ads 之類的廣告平台可讓企業瞄準特定對象投放廣告,以便衝高流量和提升買氣。使用惡意廣告來散播惡意程式的駭客集團就是利用這類機制,針對特定的關鍵字來投放惡意廣告,引誘不知情的搜尋引擎使用者下載其惡意程式。
趨勢科技的研究發現,IcedID 駭客集團會製作模仿合法企業與知名應用程式的冒牌網頁,然後再搭配惡意廣告來散播 IcedID 惡意程式。最近,美國聯邦調查局 (FBI) 發布一份警告指出網路犯罪集團如何利用搜尋引擎的廣告服務偽裝成合法品牌將使用者帶到惡意網站來獲利。
本文從技術面詳細說明 IcedID 殭屍網路的最新散播方式與使用的最新載入器。
技術分析
Google 的搜尋結果基本上是由 Google PageRank 頁面排名演算法自然產生,而 Google 廣告則會出現在搜尋結果的某些顯著位置,例如:頂端、下方、側邊,或夾雜在搜尋結果當中。這類廣告萬一遭到駭客挾持而植入了惡意廣告﹐使用者很可能會被帶到惡意網站。
受害的15個品牌和應用程式
趨勢科技研究發現,IcedID 駭客集團會挾持以下品牌和應用程式的關鍵字來投放惡意廣告:
- Adobe – 電腦軟體公司
- AnyDesk – 遠端遙控應用程式
- Brave Browser – 網頁瀏覽器
- Chase Bank – 銀行應用程式
- Discord – 即時通訊服務
- Fortinet – 資安廠商
- GoTo – 遠端遙控應用程式
- Libre Office – 開放原始碼的 Microsoft Office 替代品
- OBS Project – 影音串流應用程式
- Ring – 家用閉路電視 (CCTV) 製造商
- Sandboxie – 虛擬化/沙盒模擬應用程式
- Slack – 即時通訊應用程式
- Teamviewer – 遠端遙控應用程式
- Thunderbird – 電子郵件用戶端
- US Internal Revenue Service (IRS) – 美國國稅局
使用者被帶往的惡意網站通常做得跟正牌網站很像,圖 1 顯示一個 IcedID 駭客集團用來誘騙使用者下載惡意程式的冒牌 Slack 軟體網頁。

感染過程
整個感染過程包括三個階段:派送初始載入器、下載殭屍網路核心元件、在系統植入惡意檔案,而惡意檔案通常是後門程式。

經由惡意廣告感染
- 使用者在 Google 上搜尋某個字詞來尋找想要的應用程式。在此處範例中,使用者想要下載 AnyDesk 應用程式,所以在 Google 搜尋列上輸入了「AnyDesk」。
- 搜尋結果頂端出現一個會將使用者帶到惡意網站的 AnyDesk 應用程式惡意廣告。
- IcedID 駭客集團利用合法的 Keitaro Traffic Direction System (TDS) 來過濾來自資安研究人員與沙盒模擬環境的流量。真正的受害者則會被帶往某個惡意網站。
- 使用者一旦點選「Download」(下載) 按鈕,就會下載一個 ZIP 壓縮的惡意 Microsoft Software Installer (MSI) 或 Windows Installer 軟體安裝檔到自己系統上。

新的 IcedID 殭屍網路載入器
在這波攻擊中,殭屍網路病毒載入器是經由一個 MSI 安裝檔來植入系統,這是 IcedID 典型的作法。安裝檔會在系統中植入多個檔案,並透過「rundll32.exe」呼叫名為「init」的匯出函式 (export function) 來執行惡意程式載入器。
這個載入器 (DLL 函式庫) 具備以下特點:
- 駭客使用一個合法的 DLL 函式庫,然後將裡面的某個匯出函式置換成惡意的載入器函式,並將函式名稱改成「init」。
- IcedID 載入器 DLL 中的每個合法匯出函式名稱第一個字元都被置換成「h」。
- 指向惡意函式的參照是一個修改過的合法函式。
最後產生的惡意檔案,和原始的合法版本幾乎一模一樣,這會讓使用機器學習 (ML) 偵測技巧的資安軟體難以偵測。
表面上看來,IcedID 與合法版本的「sqlite3.dll」檔案幾乎一模一樣。圖 4 顯示兩者在 PortEx Analyzer 工具當中的對照圖 (此工具是由資安研究人員 Karsten Hahn 所開發)。該工具能讓我們以視覺化方式快速呈現 PE 檔案的結構,進而比較相似的檔案。

基於以上原因,我們認為這起攻擊是特別針對兩種惡意程式偵測技巧而來:
- 機器學習偵測
- 白名單系統
使用修改過的 DLL 檔案作為 IcedID 載入器
我們觀察到,一些被修改用來當成 IcedID 載入器的檔案,都是知名或使用廣泛的函式庫。
DLL 名稱 | 說明 |
tcl86.dll | ActiveState 的 TCL (Tool Command Language) 程式設計語言解譯器的一個函式庫。 |
sqlite3.dll | SQLite 資料庫的一個函式庫。 |
ConEmuTh.x64.dll | Far Manager 的一個擴充模組。 |
libcurl.dll | CURL 函式庫。 |
表 1:被駭客修改用來當成 IcedID 載入器的檔案。
以「sqlite3.dll」為例,我們發現其中的第 270 個函式「sqlite3_win32_write_debug」在 IcedID 載入器中被置換成惡意的「init」函式。
類似的情況也發生在前述各個被修改過的 DLL 當中,那就是:最後一個匯出函式都被置換成惡意的「init」函式。

經過進一步詳細比對之後就能看出其實兩者的檔案結構完全相同。

執行過程
- 啟動「MsiExec.exe」(父處理程序) (MITRE ID T1218.007 – 系統程式代理執行:msiexec)
- 啟動「rundll32.exe」(MITRE ID T1218.011 – 系統程式代理執行:rundll32.exe)
- 「rundll32.exe」透過「zzzzInvokeManagedCustomActionOutOfProc」執行客製化動作「Z3z1Z」(MITRE ID T1218.011 – 系統程式代理執行:rundll32.exe)
- 客製化動作經由「init」匯出函式啟動另一個「rundll32.exe」來執行 IcedID 載入器「MSI3480c3c1.msi」(MITRE ID T1027.009 – 內嵌式惡意檔案、MITRE ID T1218.011 – 系統程式代理執行:rundll32.exe)



結論
IcedID 是一個值得關注的惡意程式家族,因為它具有散播其他惡意檔案的能力,包括:Cobalt Strike 和其他惡意程式。IcedID 能讓駭客執行高破壞力的後續攻擊來侵害系統,例如:竊取資料或使用勒索病毒癱瘓系統。像這樣使用惡意廣告以及將載入器偽裝成正常檔案的駭客攻擊,正好提醒企業:部署一套含有客製化沙盒模擬分析、預判式機器學習、行為監控,以及檔案與網站信譽評等的多層式資安解決方案有多重要。至於一般使用者,則可考慮採用廣告攔截程式來阻擋惡意廣告攻擊。
入侵指標 (IoC) ,詳細的入侵指標請參考這份文字檔。
原文出處:IcedID Botnet Distributors Abuse Google PPC to Distribute Malware