我們分析了 IcedID 僵屍網絡的最新變化,該活動濫用谷歌點擊付費 ( PPC ) 廣告,通過惡意廣告攻擊傳播 IcedID。 IcedID 是最早在 2017 年被披露的模塊化銀行木馬,也是近年來最流行的惡意軟件家族之一。IcedID 主要針對金融行業發起攻擊,還會充當其他惡意軟件家族(如 Vatet、Egregor、REvil)的 Dropper。
在密切跟蹤 IcedID 僵屍網絡的活動後,我們發現它的傳播方法發生了一些重大變化。自 2022 年 12 月以來,我們觀察到谷歌點擊付費 ( PPC ) 廣告被攻擊者濫用,通過惡意廣告攻擊傳播 IcedID。趨勢科技已将檢測到的 IcedID 變體命名為 TrojanSpy.Win64.ICEDID.SMYXCLGZ。
像谷歌廣告這樣的廣告平台,其目的是使企業能夠向目标受衆展示廣告,以提高流量和增加銷售。惡意軟件發布者濫用同樣的功能,使用一種被稱為惡意廣告的技術,其中選擇的關鍵字被劫持,顯示惡意廣告,誘使毫無戒心的搜索引擎用戶下載惡意軟件。
在我們的調查中,攻擊者使用惡意廣告通過合法組織和知名應用程序的克隆網頁傳播 IcedID 惡意軟件。最近,美國聯邦調查局 ( FBI ) 發布了一份關于網絡犯罪分子如何濫用搜索引擎廣告服務來僞裝成合法網站,并通過一些經濟誘惑将用戶引向惡意網站。
本文介紹了 IcedID 僵屍網絡的最新傳播方法和它使用的新加載程序的技術細節。
技術分析
有機搜索結果是由 Google PageRank 算法生成的,而谷歌廣告出現在有機搜索結果的上方、旁邊、下方或更突出的位置。當這些廣告被攻擊者通過惡意廣告劫持時,它們可以将用戶引導到惡意網站。
劫持搜索結果的關鍵詞
在調查中,我們發現 IcedID 傳播者劫持了這些品牌和應用程序用來顯示廣告的關鍵詞:
這些惡意網站看起來就像合法網站一樣。下圖顯示了一個看起來合法的惡意 Slack 網頁,被 IcedID 傳播者用來引誘受害者下載惡意軟件。
一個被 IcedID 傳播者使用的看似合法的惡意 Slack 網頁
感染鍊
整個感染流程包括傳播初始加載程序,進入設備并最終釋放有效負載。有效負載通常是後門。
IcedID 僵屍網絡惡意軟件感染鍊
通過劫持搜索的廣告結果發起攻擊
用戶會通過在 Google 上輸入搜索詞來搜索應用程序,在這個特定的示例中,用戶想要下載 AnyDesk 應用程序,并在 Google 搜索欄上輸入搜索詞 "AnyDesk"。被劫持的 AnyDesk 應用程序的廣告會導緻惡意網站顯示在有機搜索結果上方。
IcedID 攻擊者濫用合法的 Keitaro 交通方向系統 ( TDS ) 來過濾研究員和沙盒流量,随後受害者被重定向到惡意網站。
一旦用戶選擇了 " 下載 " 按鈕,它就會下載用戶系統中 ZIP 文件中的惡意 Microsoft 軟件安裝程序(MSI)或 Windows 安裝程序文件。
IcedID 僵屍網絡惡意廣告感染鍊
新的 IcedID 僵屍網絡加載程序
在這個攻擊活動中,加載程序通過 MSI 文件被釋放,這并不是 IcedID 的常規操作。
安裝程序會釋放幾個文件,并通過 rundll32.exe 調用 "init" 導出函數,然後執行惡意加載程序例程。
這個 " 加載程序 "DLL 具有以下特征 :
開發者使用了一個合法的 DLL,并在最後一個序數處使用 "init" 導出函數名将一個合法函數替換為惡意加載程序函數;
IcedID 加載程序中每個合法導出函數的第一個字符都替換為字母 "h";
對惡意函數的引用是一個經過修複的合法函數;
生成的惡意文件幾乎與合法版本完全相同。這對機器學習 ( ML ) 檢測解決方案來說是一個挑戰。
從表面上看,惡意的 IcedID 和合法的 sqlite3.dll 文件幾乎完全相同。下圖顯示了使用由安全研究員 Karsten Hahn 開發的 PortEx Analyzer 工具對這些文件進行的并排比較。該工具允許我們快速地可視化可移植可執行 ( PE ) 文件的結構。
惡意 IcedID ( 左 ) 和合法 PE ( 右 ) 文件的可視化表示 ( 使用 Karsten Hahn 的 PortEx Analyzer 工具 )
因此,我們假設這是針對兩種類型的惡意軟件檢測技術的攻擊:
機器學習檢測引擎;
白名單系統;
充當 IcedID 加載程序的篡改 DLL 文件
我們已經觀察到,一些被修改為充當 IcedID 加載程序的文件是衆所周知且廣泛使用的庫。
已被修改為 IcedID 加載程序的文件如下所示:
在 sqlite3.dll 中,我們觀察到在序号 270 處的函數 "sqlite3_win32_write_debug" 已被 IcedID 加載程序中的惡意 "init" 函數替換。
上面列出的修改後的 DLL 文件就是這種情況,最後一個序号的導出函數被惡意的 "init" 函數替換。
IcedID 修改(左)和正常(右)文件的比較,其中前者在最後一個序号的導出函數被惡意的 "init" 函數替換
進一步調查表明,該文件的結構是相同的。
IcedID 修改文件和普通文件的比較,其中兩個文件顯示相同的結構
執行
"MsiExec.exe" 執行(父進程) ( MITRE ID T1218.007 - System Binary Proxy Execution: msiexec ) ;
生成 "rundll32.exe" ( MITRE ID T1218.011 - System Binary Proxy Execution: rundll32.exe ) ;
"rundll32.exe" 通過 "zzzzInvokeManagedCustomActionOutOfProc" ( MITRE ID T1218.011 - System Binary Proxy Execution: rundll32.exe ) 運行自定義操作 "Z3z1Z";
自定義操作生成第二個 "rundll32.exe" 以運行帶有 "init" 導出函數 ( MITRE IDs T1027.009 - Embedded Payloads and T1218.011 - System Binary Proxy Execution: rundll32.exe ) 的 IcedID 加載程序 "MSI3480c3c1.msi"。
IcedID 加載程序執行鍊
MSI 自定義操作
包含自定義操作的 MSI 結構
總結
IcedID 是一個值得注意的惡意軟件家族,能夠傳播其他有效負載,包括 Cobalt Strike 和其他惡意軟件。IcedID 使攻擊者能夠執行具有高度影響力的後續攻擊,從而導緻整個系統被破壞,例如竊取數據和使用勒索攻擊癱瘓整個系統。惡意廣告和規避加載程序的使用都在提醒我們部署分層安全解決方案的重要性,包括自定義沙箱、預測性機器學習、行為監控以及文件和網絡聲譽檢測功能。終端用戶還可以考慮使用廣告攔截器來阻止惡意攻擊。