1. 程式人生 > 其它 >【騰訊反病毒實驗室】深度剖析APT28最新作品

【騰訊反病毒實驗室】深度剖析APT28最新作品

近日,MacOS平臺首次出現了XAgent的病毒樣本。XAgent家族是由俄羅斯知名黑客團隊APT28開發的間諜軟體,具備反除錯,鍵盤記錄,下載檔案和加密通訊等惡意能力,在各種主流作業系統中都有樣本出現,在近年來的黑客入侵事件中扮演了重要的角色。本文首先對APT28的背景進行解讀,從技術角度深度分析該間諜軟體,從挖掘出的病毒特徵證實該樣本出自APT28之手。最後提供了YARA規則用於判定此類病毒。

本文由騰訊反病毒實驗室出品,該實驗室2017年一月份開源惡意軟體分析工具HaboMalHunter,將會作為騰訊首個在安全領域開源的專案登上Black Hat Conference,敬請關注。

官方開源地址:

https://github.com/Tencent/HaboMalHunter

(點選文末閱讀原文,直接訪問該專案)

1. APT28解讀

APT28被證實是俄羅斯政府支援的組織[4],該組織由經驗豐富的開發人員和黑客組成,主要收集國防和地緣政治方面的情報,該組織相關攻擊時間最早可以追溯到 2007 年。APT28間諜活動主要針對美國、歐洲和前蘇聯國家,包括政府和軍事單位、國防機構、媒體以及與俄羅斯當局持不同政見者。

1.1 攻擊方法

通過分析APT28之前所使用的惡意軟體(Sofacy和XAgent),能夠體會到這個黑客組織的在技術上的強大之處。例如在針對喬治亞內務部的APT攻擊中[5],首先該黑客組織使用了魚叉式攻擊,使用帶有下載器(Sofacy)的Excel文件作為附件進行第一階段撒網式的攻擊,為了增加迷惑性,檔名稱,內容和郵件主題都含有真實的喬治亞駕駛證ID資訊。當用戶誤點了附件之後,利用Office 漏洞釋放下載器,接著下載器收集基礎資訊然後加密回傳給C&C伺服器,等待後續指令。值得主意的是,回傳資訊使用的通道,可能是HTTP,也可能是郵件SMTP協議,並且郵件的標題也包含駕駛證資訊,這樣做為了掩人耳目,試圖躲避網路監控和分析。當C&C伺服器分析受害者的價值之後,才決定是否展開第二輪攻擊(XAgent)。同樣也是為了減少攻擊所使用的漏洞利用技術,加密通訊技術等遭到洩露。

除了常見的隱藏手段,APT28製作的病毒,還將配置資訊(C&C伺服器)加密儲存在登錄檔中。這樣即使獲取了病毒檔案,也無法和後端伺服器通訊,增加了分析研究的難度。另一方面,XAgent系列病毒在Windows, Linux, Android甚至iOS平臺上均有發現,開發如此高質量的間諜軟體,需要各個作業系統的專業知識,所以有理由推測APT28是一個組織嚴密,分工細緻的黑客團隊。

1.2 惡意行為

根據從本次樣本中挖掘出的逆向資訊,該樣本屬於間諜軟體,如下表所示,該樣本具備,鍵盤記錄,程序注入,竊取密碼多種惡意行為。

1.3 黑客事件

2014年,烏克蘭總統選舉期間,烏克蘭選委網站的網路投票遭受黑客攻擊,包括入侵系統、竊取資料、ddos攻擊,以及嘗試用假選舉結果篡改網站內容。烏克蘭官員披露,在之後的調查中,發現了APT28組織使用的惡意軟體。

2015年,法國電視臺TV5Monde遭到大規模網路攻擊,攻擊者入侵了電視臺的廣播傳輸渠道,刪除重要資料,破壞重要的硬體設施。短短几分鐘內,TV5Monde的12個頻道全部癱瘓。之後的事件調查發現,此次的攻擊行為與黑客組織APT28有關。

此外,APT28還在2016年入侵了世界反興奮劑組織的資料庫,竊取了運動員的醫療資料,並在網上公佈了部分運動員的醫療檔案,披露了美國等國家數位高水平運動員豁免使用禁藥的事件。

近期,俄羅斯黑客介入美國總統選舉的報告被披露,矛頭直指黑客組織APT28。報告聲稱APT28入侵了民主黨全國委員會的郵箱伺服器,導致了大量郵件被公開。全美媒體對公開的郵件進行了大量的報道,擴大了攻擊的效果。

2. 技術分析

通過對MacOS平臺上XAgent樣本的深入分析,發現該樣本具備反除錯,盜取密碼,下載檔案和加密通訊等多種能力,總結出該病毒的功能模組資訊如下。

2.1 靜態分析

首先本次分析的XAgent樣本屬於MacOS平臺上的二進位制可執行格式即Mach-O格式,其在VirusTotal中的基本情況如下:

從基本資訊來看,該樣本近期才被發現,後續的分析也能夠印證其應該處於開發的初級階段,不排除後續升級的可能。靜態分析主要從字串特徵,程式碼逆向等方面進行。

2.1.1 字串特徵

病毒檔案中包含的可見字元,是病毒靜態特徵的重要來源,也會大量用於病毒判別規則中。從結果中可以得出如下資訊:病毒嘗試訪問瀏覽器(Firefox)和通訊錄(TCC.db),開發者使用者名稱(kazak)和該病毒的工程名(XAgentOSX),惡意行為函式名(executeShellCommand)和C&C伺服器域名(apple-iclods.org)。

alices-iMac:~ root# strings -n 8 -a ./XAgent.macho.bin | sort | uniq

/Applications/Firefox.app/Contents/MacOS
/Library/Application Support/com.apple.TCC/TCC.db
/Users/kazak/Desktop/Project/XAgentOSX/XAgentOSX/Source/Boot/Boot.mm
<font size=4 color=red><pre>Error take screenshot</pre></font>
executeShellCommand:

http://apple-iclods.org/

injectRunningApp

2.1.2 程式碼逆向

通過程式碼逆向發現,病毒使用Object-C編寫。由於篇幅的限制,這裡只展現一些有趣的細節:下圖的反編譯結果展現了樣本提取Firefox密碼的SQL語句。

2.2 動態分析

動態分析以MacOS Sierra 10.12 為環境,會重點關注反除錯機制,檔案I/O和網路通訊等方面。

2.2.1 反除錯機制

在動態除錯過程中,發現病毒觸發了自刪除行為。如下彙編程式碼展示了這一技術,其中sysctl系統呼叫,傳入了CTL_KERN引數,如果檢測到了偵錯程式,病毒會呼叫remove()函式,將自身刪除。

2.2.2 檔案I/O

通過對檔案I/O行為進行監控,發現該樣本試圖對日誌(Logging)、網路(CFNETWORK_DIAGNOSTICS)、使用者介面(SystemAppearance)、鍵盤佈局(AppleKeyboardLayouts)等關鍵檔案進行訪問和操作。

  UID    PID COMM          FD PATH   
    0    346 XAgent  -1 /Library/*/Logging/Subsystems/com.apple.defaults.plist 
  0    346 XAgent   4 /usr/share/icu/icudt57l.dat 
  0    346 XAgent  -1 /System/*/CFNETWORK_DIAGNOSTICS 
  0    346 XAgent   4 /System/*/SystemAppearance.car 
    0    346 XAgent   4 /System/*/AppleKeyboardLayouts-L.dat 
    0    346 XAgent   4 /var/db/mds/messages/se_SecurityMessages 
    0    346 XAgent  -1 /var/root/Library/Cookies/XAgent.binarycookies

2.2.3 網路監控

首先分析樣本發起的DNS查詢,可以得到5個C&C伺服器資訊,而且反彙編的結果也提供了交叉驗證。在特徵規則中這些域名資訊會被整理成判定規則。

其次,根據反彙編的結果,我們主要從HTTP協議進行分析。如下圖所示,樣本使用{watch,search,results,open,close}等命令同C&C伺服器進行通訊。其中引數都是經過RC4加密後,然後base64編碼的。比較遺憾的是,這些請求均沒有得到伺服器的響應。

通過網路分析,可見該樣本只接收資料上報,對於普通的客戶端不會進行回覆,符合間諜軟體的定位。

至此對於該病毒的分析已經告一段落,可以看出該病毒具備較多的惡意能力,同時後臺伺服器的策略做的非常周密。不足之處是,對於Object-C程式碼混淆和關鍵字串混淆做的不夠完善,所以猜測該樣本處於開發階段,後續會持續進化。

3. 特徵規則

經過上一節的病毒分析過程,我們掌握了該樣本的靜態和動態特徵,本節會先介紹該樣本被判斷為XAgent的原因,然後介紹該樣本的判定規則。

3.1判定原因

首先直接原因是樣本中出現了體現作者和樣本專案名稱的原始碼路徑資訊。XAgentOSX直接提示該樣本屬於MacOS平臺上的XAgent家族。

/Users/kazak/Desktop/Project/XAgentOSX/XAgentOSX/Source/Boot/Boot.mm

其次,根據Google釋出的Windows和Linux平臺上的XAgent報告[3],我們可以找到該樣本和其他平臺上的樣本的共同點。

如下圖所示,報告中分析的URL格式和該樣本一致。

而且,該樣本也使用了HTML做為日誌格式。同報告中披露的日誌格式一致。並且對字型和顏色的設定也是相同的。

綜合這兩方面的原因,可以確定該樣本是APT28團隊製作的MacOS平臺上的XAgent間諜軟體。

3.2 判定規則

根據前面靜態分析的結果,提取了如下YARA規則對MacOS平臺上的XAgent病毒進行判別。此條YARA規則可以分為三個部分,首先判斷Mach-O的檔案頭,其次提取關鍵的字串資訊,例如keylog,專案名稱和通訊錄檔名等。最後是該樣本試圖訪問的C&C伺服器的IP或者域名,對於C&C伺服器,只要滿足其一即可。

 rule MacOS_XAgent
{
    meta:
        Date    = "2017/02/21"
        Description = "MacOS XAgent APT28"
    strings:
        $s0 = "keylog_spec_key"
        $s1 = "encryptedUsername"
        $s2 = "com.apple.TCC/TCC.db"
        $s3 = "kazak/Desktop/Project/XAgentOSX"
        $s4 = "Error take screenshot"
        $cc0 = "23.227.196.215"
        $cc1 = "apple-checker.org"
        $cc2 = "apple-iclods.org"
        $cc3 = "apple-search.info"
        $cc4 = "apple-uptoday.org"
        $mach = {CF FA ED FE} // Mach-O
    condition:
        $mach in (0..4) and all of ($s*) and 1 of ($cc*)
}

4.總結

本文首先對XAgent樣本幕後的作者APT28進行了解讀,然後對其進行了技術分析,根據分析結果歸納出針對該病毒的判定規則。從病毒表現出的功能和逆向結果可以看出,XAgent功能強大,具備反除錯,加密通訊等能力。對於後續XAgent的變種和傳播情況,我們會持續進行關注。

5.參考資料

1. https://zh.wikipedia.org/wiki/Mach-O

2. https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/dtruss.1m.html

3. https://www.documentcloud.org/documents/3461560-Google-Aquarium-Clean.html

4. https://www.fireeye.com/blog/threat-research/2017/01/apt28_at_the_center.html