国精品无码一区二区三区在线,欧美性XXXXX极品少妇,亚洲伊人成无码综合网

安天獨家深度分析方程式組織多平臺惡意代碼

時間 :  2015年02月10日  來源:  安天


 

1 背景


安天從2015年2月起,陸續公布了兩篇針對方程式攻擊組織的分析報告,分析了其針對Windows平臺的惡意代碼組件構成、對硬盤的持久化能力和對加密算法的使用。本報告則將首次公布安天對方程式攻擊組織針對Solaris平臺和Linux平臺的部分樣本分析,我們也可以自豪的說,這是業內首次正式證實這些“惡靈”真實存在的公開分析。事實上,安天的相關工作完成于數年前。安天的分析工程師們從2012年起,已經關注到超級攻擊組織,力圖將其載荷能力覆蓋一切可以達成入侵和持久化的場景,在這些場景中,各種服務器操作系統,如Linux、Solaris、FreeBSD等是其高度關心的目標。這些載荷不是尋常的腳本木馬,而是組件化、具備Rootkit能力、具有超強加密抗分析能力、嚴格進行加密通訊的二進制組件。在安天工程師一直將類似超級攻擊組織發起的攻擊稱為A2PT,并把惡意代碼載荷的全平臺覆蓋能力作為A2PT組織的重要標志。

安天將長期跟蹤分析高級威脅和高級惡意代碼的經驗轉化為產品能力,為用戶探海威脅檢測系統協助用戶在網絡中捕獲載荷投放與橫向移動,利用智甲終端防御系統為傳統Windows主機和國產操作系統提供全面的保護,協助用戶使用追影安全分析平臺進行多種平臺的惡意代碼分析。這些產品的部署也使安天能夠在用戶支持下獲取更多的威脅線索。同時安天也積極關注開源情報和公開信息,關注相關組織的有關信息與動向。

在去年年初卡巴斯基和安天先后對方程式組織使用的惡意代碼進行分析曝光后,方程式組織又在一系列“爆料”事件中浮出水面。在2016年8月所外泄的方程式組織針對多種防火墻和網絡設備的攻擊代碼中[1],公眾第一次把方程式組織和名為“ANT”的攻擊裝備體系聯系起來,并以此看到其針對Cisco、Juniper、Fortinet等防火墻產品達成注入和持久化的能力。而在2016 年 10 月 31 日,The Hacker News發布文章“Shadow Brokers reveals list of Servers Hacked by the NSA” [2],文章披露了“影子經紀人”公開的更多文件,其中包括部分方程式組織入侵的外國服務器列表。相關文件聲稱,大部分被感染的服務器運行的是 Solaris,Oracle-owned Unix等版本的操作系統,有些運行的是 FreeBSD 或 Linux 系統。而隨著這些信息和安天的捕獲分析工作相互印證,一個關于這個超級攻擊組織的幾乎無死角的、全平臺化攻擊能力已經日趨清晰。

我們的分析工作不斷驗證著這些信息,在過去數年,這種分析如此漫長、復雜和艱難,超出了我們之前對“震網”、“火焰”的分析和復現中所面臨的挑戰。這種高度復雜、隱蔽的全能高級惡意代碼,無論是對受害者,還是分析者來說,都是一個巨大的挑戰。特別是當其打擊范圍幾乎覆蓋所有體系結構與操作系統的時候,相對更擅長Windows、Linux和Android等主流操作系統平臺下惡意代碼分析的傳統安全分析團隊感受到了巨大的壓力和挑戰。如果用這個組織的名稱“方程式”做一個關于分析難度的比喻的話,我們需要破解的已經并不只是一個“方程式”,而是更為復雜的多元多次的“方程組”。

 

2 方程式組織的多平臺作業能力


方程式組織采用了工業水準的制式化攻擊武器庫,安天在此前報告中已經對其6件惡意代碼組件“裝備”進行了分析,他們分別是:EquationLaser、EquationDrug、DoubleFantasy、TripleFantasy、Fanny和GrayFish,其中EquationDrug、DoubleFantasy安天均已發現其他平臺的樣本。方程式武器庫信息見下表:

讀者可以通過閱讀下列報告,自己完成方程式攻擊組織針對多平臺操作系統的拼圖:

注:安天在Solaris樣本中分析出的User Agent具有Solaris標識,而卡巴斯基在“EQUATION GROUP: QUESTIONS AND ANSWERS” [8]中披露出曾捕獲到Mac OS X的User Agent的信息,由此來看,盡管安天和卡巴斯基廠商目前都尚未捕獲Mac OS X的樣本,但方程式組織針對MAC OS X的攻擊載荷是真實存在的。
 

3 X86 Linux部分載荷分析


安天已經捕獲分析了Linux下的DoubleFantasy組件。該組件是方程式組織在Linux平臺上用于前期偵查、探測預期目標的攻擊樣本。由于是Linux平臺下的樣本,在具體功能實現的技術細節上與我們之前的曝光的Windows樣本有所區別。
3.1  偵查、探測前導模塊——DoubleFantasy
3.1.1  文件標簽

3.1.2  運行流程

Trojan/Linux.DoubleFantasy 樣本執行時分為有參數和無參數兩種情況,當有參數‘-c’時候,僅僅是用于獲取系統信息,可以視為場景偵查功能,其流程如下:

圖 1 Trojan/Linux.DoubleFantasy–c參數流程

如果樣本以無參數運行會具有網絡通信行為,流程如下:

圖 2 Trojan/Linux.DoubleFantasy無參數運行流程

3.1.3  基本功能
遍歷系統文件、清除/var/log/lastlog記錄、獲取系統賬戶密碼信息。
連接Google判斷網絡連通狀態。
連接遠程服務器,并根據遠程控制指令進行不同的操作。
樣本中同樣存在多處信息加密算法和網絡通訊加密算法。
樣本會利用一個鏈接文件啟動自身,proc/%d/exe文件指向樣本自身文件。
樣本運行后會開啟三個連續的PID線程。
隨后樣本收集被感染機器的信息包括系統目錄、文件擴展名等信息。如下圖:

圖 3 收集常規系統信息

惡意代碼開始fork( )進程,并判斷fork( )的子進程的PID號,判斷是否執行成功,如果執行成功則主進程退出,無法調試,影響調試過程如下圖所示:


圖 4 子進程判斷

分別解密各種字符串,獲取用戶信息,包括系統版本等。
獲取用戶登陸信息 getpwnam。
查看文件 /bin/fast  /sbin/login /usr/sbin/nologin 。
獲取用戶登陸密碼getpwuid。
讀取用戶日志var/log /lastlog。

3.1.4  函數、數據動態加載

此樣本所調用的函數和數據都是動態加載調用,在分析中需要動態調試,經過分析我們把函數調用地址通過動態分析解密出來如下圖:


圖 5 函數調用地址

3.1.5  字符串解密分析

樣本內部采用了一種自定義的加密算法,用于加密內部要用到的字符串信息,該算法共被調用了115次,加密算法如下:


圖 6  Linux樣本字符串加密算法

3.1.6  網絡通信加密

DoubleFantasy 的Linux樣本在網絡通信時,硬編碼在樣本中的16位密鑰與DoubleFantasy 在Windows平臺樣本中加密注冊表相關數據的16位密鑰相同:

66 39 71 3c 0f 85 99 81 20 19 35 43 fe 9a 84 11

經計算后生成的子密鑰為:

E9 BE CD E0 A8 9F 4D DB C3 42 AC 2B 24 77 AB CB 5A C1 52 F8 5B 3E F0 78 CB 01 0A 69 29 8F 85 8C 03 9C 7C EF 5E 36 0E 8B C0 40 76 28 9C 9C F2 24 81 9D 02 72 4F 6A BB B5 5B 42 73 14 88 F2 73 75 8B F9 37 98 3B 9F 64 2B A3 C4 FF C7 8A 40 67 C1 25 9F 65 54 45 36 48 FF E2 86 05 1A F4 94 AC 2B 08 D5 E5 83 BE 2C AD EE D0 A6 98 CB 8D 35 ED EE C4 F0 8C F2 CD BA 87 03 54 27 3D 13 A7 9B 6A 05 C7 02 30 21 05 67 58 3B E6 A1 44 0A 37 16 3C 86 E9 BC 8B 20 1A 98 7E 28 E6 7F F7 CA F7 9E 38 31 7F F0 2F 93 11 2B 28 F0 FF 11 B7 FC 1C 63 86 CB

Linux樣本的自定義算法與Windows下的樣本相同,而使用的加密密鑰只有一個(因為Linux系統沒有注冊表,所以就沒有注冊表加密這功能),該密鑰與Windows平臺下注冊表加密數據的Key相同(Windows平臺有兩組key,一組注冊表key一組網絡通訊key),從下圖中可以看出兩個平臺的二級密鑰變化算法是相同的(具體算法可以參照Windows加密算法分析部分)。


圖 7 二級密鑰變化算法

3.1.7  網絡控制指令

Linux樣本的指令分支部分與安天此前所發布的報告中分析的Windows部分基本相同,Linux樣本共有9個分支指令,功能也大致相同,指令代碼分別為:0x4A、0x4B、0x60、0x70、0x75、0x76、0x78、0x79、0x80。


圖 8 Linux樣本的指令分支代碼

Linux系統下的樣本在指令上與Windows樣本功能一致,僅在獲取系統信息上有細微差別,Linux樣本獲取信息格式如圖:


圖 9 Linux樣本獲取信息格式

獲取信息格式說明:


 

4 SPARC架構Solaris場景能力

 


方程式組織可能制造了第一個SPARC架構[9]下的具有Rootkit屬性的惡意代碼,并為DoubleFantasy的Solaris[10] 版本來提供掩護。
4.1  Solaris系統及SPARC架構 

Solaris是Sun Microsystems研發的計算機操作系統,采用SPARC架構或X86架構,主要用于工作站、服務器上的操作系統。Solaris平臺下的惡意代碼比較罕見,從安天統計來看,即使加上之前的SUN OS時期,二進制編譯形態的惡意代碼變種數也不超過60種,而且幾乎都是基于X86平臺的。

SPARC全稱為“可擴充處理器架構”(Scalable Processor ARChitecture),是RISC微處理器架構之一,其指令集和X86有顯著區別,并且有自己獨有的窗口、延遲槽、過程調用特點。

SPARC架構的計算機一般用于工業、航天相關領域,其在類似IDC和一般IT場景的使用極為罕見。

4.2  Rootkit隱藏模塊

該模塊是SPACR架構的Solaris平臺下的一個Rootkit程序,同其他Rootkit程序一樣,它主要負責隱藏主功能樣本文件、以及相關衍生的文件和其自身,包括進程、文件、和服務信息。它首先在目標機器上運行,偵查目標機器的系統環境、配置信息、網絡狀態,并隱藏指定的文件和進程。
4.2.1  文件標簽

4.2.2  樣本主函數
樣本共有249個函數,如圖所示為樣本主函數流程,部分函數也相對復雜,且樣本內部同樣存在多種加密數據。


圖 10 樣本主函數

4.2.3  衍生文件名及路徑

樣本運行后根據內部配置的兩組字符串組合生成文件名,作為自身的新文件名,并將自身復制到/sbin/目錄下。

通過上表可以發現,這些單詞都是系統文件、系統命令中使用的高頻單詞或前后綴。因此樣本的文件名稱是經過精心構造的,文件名極具迷惑性,換在系統文件中,一般的管理員也難以察覺異樣。
4.2.4  啟動腳本

樣本使用服務的方式實現開機啟動,在etc/rc.d/目錄下創建腳本(S85s%),此腳本會作為開機要執行的服務以start參數運行。

圖 11 服務腳本

S85s%文件的內容是加密的,樣本運行時調用自身函數解密,并修改其中文件名的變量,再將其寫入到/etc/rc.d/目錄(下圖%E處會修改為樣本自身路徑)。


圖 12 解密后腳本內容

4.2.5  隱藏目錄、文件

樣本會根據目標機器的HOSTID生成MD5,然后再將MD5進行一個類base64的算法計算,最后取前6位,將.tmp與這6位字符拼接成文件夾名稱,然后創建該文件夾。

圖 13 樣本創建的文件夾名

樣本還會根據運行參數,將其他文件復制到此文件夾下執行,并負責隱藏此文件夾下的所有文件。
4.2.6  版本判斷

樣本通過uname函數確定系統不是sun4m、sun4d版本,通過讀取/dev/ksyms文件判斷系統架構:i386、ia64、sparc、sparcv9,確定是SPARC架構,確定release版本必須是5.1。

圖 14 版本判定

4.2.7  加密配置數據

樣本內部存在多處加密算法,其中一個調用多次,我們分析并解密出其數據。 

 


圖 15 加密算法

解密的加密數據:

4.2.8  Solaris系統及SPARC架構解密執行其他代碼/樣本

樣本在文件尾部添加加密數據,執行后通過末尾數據確定加密數據大小,通過定義的格式進行解析和讀取,解密數據后猜測會加載執行。

4.3  DoubleFantasy的Sparc架構模塊

該樣本與Windows、Linux平臺樣本的功能基本相同,主要區別在于CPU架構、匯編指令、配置信息存儲位置、獲取系統信息等。
4.3.1  文件標簽

4.3.2  基本功能
初始化字符串、動態數組,解密內部配置信息。
連接Google或Yahoo網址判斷網絡連通狀態。
連接遠程URL地址。樣本會收集主機的信息回傳至遠程地址,并等待遠程主機發送指令。
具有讀取系統賬戶密碼文件的功能,可以竊取用戶及密碼信息。
樣本內部實現了以守護進程模式運行,可以達到自我保護防止被結束的功能。
該樣本采用多種加密算法加密字符串信息。
獲取系統大量信息并回傳到服務器(如計算機名稱、IP地址、進程信息、賬戶信息等,詳細內容可見本章節后面詳細分析)。
網絡指令部分,具有7條網絡指令,功能上與Windows版本相同,可對計算機進行相對應的指令操作,對應指令詳細功能見本章后面詳細分析。
4.3.3  配置信息加密

由于Solaris系統沒有Windows的注冊表,因此該樣本的配置數據會直接解密后使用,其中一個解密算法如下,該解密函數共調用63次。

圖 16 字符串解密

解密出字符串信息見下表:

樣本使用的另一個加密字符串的算法,用于加密樣本運行時需要使用的配置信息,解密算法如下:

圖 17 另一解密算法

解密內容見下表:

4.3.4  網絡通信加密

Solaris樣本的自定義算法與Windows下的樣本相同,而使用的加密密鑰只有一個(因為Solaris系統沒有注冊表,所以就沒有注冊表加密的功能),該密鑰與Windows平臺下注冊表加密數據的Key相同,兩個平臺的自定義加密算法是相同的(具體算法可以參考3.1.6加密算法分析部分)。

通過安天CERT分析,得到原始16位密鑰為:

66 39 71 3c 0f 85 99 81 20 19 35 43 fe 9a 84 11

長度為16字節,與Windows的原始16位密鑰長度相同。

由于Solaris和Windows樣本生成網絡通信子密鑰的算法相同,那么可生成子密鑰:

E9 BE CD E0 A8 9F 4D DB C3 42 AC 2B 24 77 AB CB 5A C1 52 F8 5B 3E F0 78 CB 01 0A 69 29 8F 85 8C 03 9C 7C EF 5E 36 0E 8B C0 40 76 28 9C F2 24 81 9D 02 72 4F 6A BB B5 5B 42 73 14 88 F2 73 75 8B F9 37 98 3B 9F 64 2B A3 C4 FF C7 8A 40 67 C1 25 9F 65 54 45 36 48 FF E2 86 05 1A F4 94 AC 2B 08 D5 E5 83 BE 2C AD EE D0 A6 98 CB 8D 35 ED EE C4 F0 8C F2 CD BA 87 03 54 27 3D 13 A7 9B 6A 05 C7 02 30 21 05 67 58 3B E6 A1 44 0A 37 16 3C 86 E9 BC 8B 20 1A 98 7E 28 E6 7F F7 CA F7 9E 38 31 7F F0 2F 93 11 2B 28 F0 FF 11 B7 FC 1C 63 86 CB

此子密鑰才是用于加解密發送、接收數據的。
4.3.4  網絡控制指令

在對Solaris樣本的分析中我們發現它的功能要比Windows樣本的指令少一些,Solaris平臺下只有7個指令,功能上與Windows大致相同。下面為兩個平臺下IDA中的對比圖,多圖中可以看出Solaris平臺下的樣本指令比Windows平臺上少很多結構圖也很簡單。


圖 18  Windows平臺與Solaris平臺下網絡指令結構對比

Solaris樣本的指令功能并未在上圖中實現,起初我們以為Solaris樣本的指令功能還未完成,不過在進行進一步的分析后我們發現,Solaris樣本采用一種特殊的動態計算方式來跳轉到不同的指令分支代碼,下圖中紅色部分即為動態計算后跳轉的指令分支。


圖 19 Solaris指令分支函數

Solaris樣本各個指令功能簡要描述如下,大體功能與Windows指令相同: 

其中下載執行部分樣本與Windows一樣,使用相同的指令標記,也是通過三步(創建、寫入、執行)來完成下載執行的功能,只是在代碼結構上有所不同,Solaris把三條指令整合到一個函數中。

執行文件時,先給文件提權,然后使用execle函數帶有參數執行文件:
參數1:文件B路徑
參數2:文件名B或"sendmail"(猜測與mail有關)
參數3:0
參數4:PATH=%PATH%(環境變量)

例如:execle("/usr/bin/sample","sample", NULL, %envp%);


圖 20執行文件參數

Solaris樣本指令功能、數據包格式與Windows樣本相同,指令的詳細功能、數據包格式說明可見 Windows平臺樣本的指令分析。

Solaris樣本下收集的系統信息與Windows略有不同,具體如下:

5 總結

 



5.1  以真實威脅驅動我國信息防御能力的改進

安天希望用自己的工作告訴中國用戶,那些關于超級攻擊組織全平臺覆蓋能力的種種爆料,并非傳說,而且是一種真實的威脅,是一種既定的事實。

在我國安全防御的實踐中,有一種先入為主的觀點,即認為由于各種規定和約束,暴露在互聯網上的節點,乃至能夠訪問互聯網的內網中,并不存放高價值的信息。“一切有價值的信息都存在于隔離網內”——這是一個美好的愿景和想象,但并非在這個信息大量產生、高速流動時代的真實情況。同時在大數據時代,高價值信息的定義和范圍也在不斷變化著。更多的信息資產已經不可避免地分布在公共網絡體系中。而對這些資產的窺視和攻擊也在持續增加著。而超級攻擊組織則是類似攻擊的始作俑者和長期實踐者。

針對DNS服務器的入侵,可以輔助對其他網絡目標實現惡意代碼注入和信息劫持;針對郵件服務器的植入可以將用戶所有的郵件通聯一網打盡,針對運營商骨干節點的持久化,可以用來獲取全方位的信息,包括收獲類似Camberdada[11]計劃中說的那種“輕而易舉的勝利”。

注:Camberdada計劃是斯諾登曝光的一份監聽行動計劃,相關機構通過在運營商的持久化節點,監聽用戶發放給殺毒廠商的郵件,以發現自己的攻擊是否暴露,并實現對其他方投放的樣本捕獲和再利用。

而“物理隔離”的安全神話也已經到了應該破滅的時候,習近平總書記在4.19講話中已經提醒國內用戶和網絡安全工作者:“‘物理隔離’防線可被跨網入侵,電力調配指令可被惡意篡改,金融交易信息可被竊取,這些都是重大風險隱患。”

而中國龐大又脆弱的信息化肌體則又面對著武裝到牙齒的對手。攻擊載荷的代碼工程規模、作業鏈條的精密設計、全方位無死角的平臺覆蓋都已顯示了方程式攻擊組織這樣的超級攻擊組織空前的攻擊能力。而根據相關曝光的信息,其所發動的面對大量的關鍵目標為期數年的攻擊,也表明了這一組織極為堅定的攻擊決心。安天在此前的研究中曾將類似的攻擊能力組織稱為A2PT,并從惡意代碼載荷視角給出了A2PT的若干評價標準。這些標準與方程式組織的行為與能力高度吻合。

就像我們此前所概括的那樣,相關超級攻擊組織擁有“成建制的網絡攻擊團隊、龐大的支撐工程體系與制式化的攻擊裝備庫、強大的漏洞采集和分析挖掘能力和關聯資源儲備以及系統化的作業規程和手冊,具有裝備體系覆蓋全場景、漏洞利用工具和惡意代碼載荷覆蓋全平臺、持久化能力覆蓋全環節的特點。面對這種體系化、既具備工業級水準又具有高度定向性的攻擊,永動機注定停擺,銀彈注定啞火。想要達成防御效果,實現追蹤溯源,唯有以清晰的戰略、充分的成本投入,以體系化的防守對決體系化[12]的攻擊,通過長期艱苦、扎實的工作和能力建設,才能逐漸取得主動。
5.2  我們的努力和對能力型廠商深入協作的期待

從2010年開始,安天先后對“震網”、“毒曲”、“火焰”、“APT-TOCS(海蓮花)”、“白象”、“烏克蘭停電”、“方程式”等高級攻擊行動或攻擊組織進行了深入的分析,累計發布了數百頁的分析報告。毫無疑問,高級威脅檢測產品的能力,是依托扎實有效的分析過程來不斷改進的。安天發布了面向高級威脅檢測和態勢感知的產品體系:安天的探海威脅檢測系統改善了用戶流量側的威脅檢測的深度和能力,安天的智甲終端防御系統為用戶提供了包括“白名單+安全基線”在內的多種防御策略,安天的追影威脅分析平臺則為用戶提供了通過動靜態手段深度分析威脅載荷的能力,安天也在多個行業和部門的態勢感知和通報預警平臺的建設中扮演了關鍵角色,提供整體的設計支持、開發集成以及供應關鍵的檢測分析能力。

安天將下一代威脅檢測引擎、高定制化深度分析、面向資產和威脅的交互可視分析和知識與情報支撐,作為自身達成有效的、可落地的用戶價值的產品基因。

但安天也客觀地看到,面對超級攻擊組織的強大能力、堅定意志和難以想象的攻擊成本,任何廠商的單打獨斗,都難以有效地達成使命,因此安天一直與同業一起,倡導能力型安全廠商間的積極協作和能力互認。在此前針對來自南亞次大陸的網絡攻擊分析應對中,雖然安天將事件命名為“白象”,360企業安全命名為“摩訶草”,但雙方在報告形成中進行了有效地信息互通,以及對對方分析成果的引用互認,這是一個良好的開端,我們相信類似的能力型安全廠商的協作,將會越來越多。
5.3  期待一個更安全的網絡世界

當前,超級攻擊組織的全環節覆蓋能力,已經引發了全球用戶‘一切均不可信’的安全焦慮。”去年部分國內媒體對方程式攻擊的報道中,將攻擊者針對高價值目標節點硬盤固件實現攻擊持久化的植入,解讀為當前主流的硬盤都帶有后門,這固然是一種誤解,但也不能不說當一個超級攻擊組織的能力強大到了只能猜測和想象的程度時,就不可能不引發恐慌,從而導致對超級大國產生“濫用供應鏈和信息流優勢”的嚴重質疑。

而近期的方程式攻擊代碼泄露事件以及此前“ANT”裝備體系的曝光,則又使我們看到了相關的Exploit儲備和攻擊思路流入到網絡犯罪組織、甚至恐怖主義組織的可能性。鑒于網絡攻擊技術存在極低的復制成本的特點,當前已經存在嚴峻的網絡軍備擴散風險。因此,超級大國能否合理控制自身網絡軍備發展的速度和規模,并對因自身未有效履行責任而使網絡領域發生可能的軍備擴散,進行有效地干預和控制,是我們能達成一個更安全的網絡世界的關鍵因素。

我們期待一個更安全的網絡世界,我們將為之努力!

如對安天發出的報告發現任何技術問題或有所疑問,請與安天工程師聯系。我們會在網站版報告中對報告進行后續版本修訂。