田繼鵬
(中原工學(xué)院 計算機學(xué)院, 河南 鄭州 450007)
隨著計算機應(yīng)用技術(shù)和互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,各種網(wǎng)絡(luò)攻擊事件層出不窮[1]。高級持續(xù)性威脅(Advanced Persistent Threat,APT)攻擊是指高級的、持續(xù)性的滲透攻擊,是針對特定機構(gòu)和企業(yè)的多方位的綜合攻擊,具有非常強的隱蔽性和針對性。與傳統(tǒng)網(wǎng)絡(luò)攻擊相比,APT攻擊的過程和方式具有顯著差異,是最具有威脅性的網(wǎng)絡(luò)攻擊類型之一[2],因此,APT攻擊檢測的難度更大。針對Google公司的“極光攻擊”、針對RSA的“SECURID攻擊”、針對伊朗核電站的“震網(wǎng)攻擊”、東京“Coincheck新經(jīng)幣”竊取事件、臺積電“WannaCry攻擊”停擺事件等各類APT攻擊案例,使傳統(tǒng)的被動式攻擊檢測方法束手無策,迫切需要建立一種新的安全檢測系統(tǒng)。APT攻擊檢測系統(tǒng)需要實現(xiàn)識別攻擊行為,切斷攻擊路徑,進(jìn)而追蹤攻擊源頭[3]。本文從APT攻擊的特征入手,對攻擊過程分階段進(jìn)行分析,并嘗試構(gòu)建一種多態(tài)檢測系統(tǒng),提高APT攻擊的行為檢測能力,減少攻擊所帶來的損失。
APT攻擊具有極強的目的性,例如滲透內(nèi)網(wǎng)獲取敏感信息和內(nèi)部管理權(quán)限、破壞工業(yè)內(nèi)網(wǎng)的核心控制系統(tǒng)、植入惡意程序并進(jìn)行監(jiān)控等[4]。這種攻擊行為具有非常強的隱蔽能力,通常利用零日(0Day)漏洞進(jìn)行攻擊滲透。APT攻擊持續(xù)時間非常長,有案例顯示曾有攻擊者在攻擊成功后,持續(xù)潛伏5~10年,且攻擊是動態(tài)發(fā)展的。APT攻擊的破壞性非常大,在一些技術(shù)手段高、資金充裕的APT攻擊組織面前,許多國家級的企業(yè)、機構(gòu),甚至國防、軍工等部門,都是被攻擊對象,例如利用西門子的0Day漏洞控制伊朗核電站離心機控制系統(tǒng)的“震網(wǎng)攻擊”事件[5],成功地拖延了伊朗制造核武器的進(jìn)程。檢測和防御APT攻擊已經(jīng)成為現(xiàn)代社會發(fā)展的一個重要環(huán)節(jié)。面對APT攻擊,要有足夠的認(rèn)識,更要有必要的檢測和防御能力[6]。根據(jù)對現(xiàn)有案例的分析,歸納出APT攻擊的幾個特征:
(1) 身份偽裝滲透。APT攻擊先獲取目標(biāo)信任的身份(ID),并利用該ID攻擊目標(biāo)使用的內(nèi)部論壇或社交軟件等,再利用獲取的偽裝身份對目標(biāo)的組織內(nèi)部發(fā)起攻擊,逐步滲透內(nèi)部高級目標(biāo),以獲取更高級別的訪問權(quán)限。
(2) 攻擊行為隱蔽。APT攻擊者在獲取訪問權(quán)限后,通過所控制的內(nèi)網(wǎng)客戶端,利用合法加密數(shù)據(jù)通道,將獲取的重要數(shù)據(jù)信息竊取出來,進(jìn)而欺騙內(nèi)部安全防護系統(tǒng)的審計以及異常檢測等。整個過程對被攻擊者非常隱蔽。
(3) 持續(xù)性潛伏。APT攻擊者的攻擊行為是長期的、動態(tài)發(fā)展的。隨著時間的增長,系統(tǒng)不斷有新的漏洞暴露出來,但內(nèi)部系統(tǒng)防御體系通常是強調(diào)靜態(tài)對抗,隨著攻擊的持續(xù),系統(tǒng)的失守是必然的。同時,這種持續(xù)性還體現(xiàn)在攻擊者不斷嘗試各種攻擊手段,通過長期控制被攻擊目標(biāo)的系統(tǒng)來獲取更大的利益。因此持續(xù)性攻擊潛伏符合攻擊者控制和竊取重要數(shù)據(jù)信息的利益需求,APT攻擊案例有潛伏10年的情況[7]。
(4) 廣譜信息收集。APT攻擊行為非常依賴被攻擊目標(biāo)的信息,例如組織架構(gòu)、人際關(guān)系、常用軟件、防御策略與安全檢查產(chǎn)品、內(nèi)部網(wǎng)絡(luò)架構(gòu)等。攻擊者通過主動掃描、互聯(lián)網(wǎng)搜索,甚至通過實地內(nèi)部訪問的途徑收集被攻擊目標(biāo)的信息。
(5) 針對性。攻擊者會利用收集到的各種信息,針對性地搭建攻擊環(huán)境來尋找目標(biāo)的安全漏洞,逐步測試針對該漏洞的木馬能否欺騙并繞過攻擊目標(biāo)的安全防護系統(tǒng)。
(6) 未知性。APT攻擊者依據(jù)所發(fā)現(xiàn)的系統(tǒng)安全漏洞,尤其是一些未知的0Day漏洞,編寫一些既符合自己攻擊目的,又能繞過被攻擊目標(biāo)現(xiàn)有安全體系的木馬。這些0Day漏洞和針對性的木馬,對被攻擊目標(biāo)的安全防護體系來說都毫不知情[8]。
APT攻擊一般通過外網(wǎng)滲透內(nèi)網(wǎng),獲取目標(biāo)身份數(shù)據(jù)信息。收集被攻擊目標(biāo)的Web服務(wù)器信息,搜尋可開展攻擊的弱點,以此突破外網(wǎng)的Web服務(wù)器或者其他對外開放的服務(wù)。利用被入侵的目標(biāo)ID的服務(wù)器作橋梁,對內(nèi)網(wǎng)的其他服務(wù)器或終端進(jìn)行掃描,為下一步攻擊做準(zhǔn)備。利用密碼暴力破解或者發(fā)送木馬電子郵件等方法,獲取管理員賬號,入侵AD服務(wù)器或核心開發(fā)環(huán)境。通過植入惡意程序,例如木馬、后門、Downloader等[9],利用被攻擊者的私人ID發(fā)送電子郵件給攻擊者,回傳大量敏感數(shù)據(jù)信息。最后通過高管郵件ID向其他內(nèi)部員工發(fā)送帶有惡意程序的附件,進(jìn)而入侵其他內(nèi)網(wǎng)終端。APT攻擊行為的階段演變?nèi)鐖D1所示。
圖1 APT攻擊行為的階段演變示意圖
本文通過對大量攻擊樣本的分析,將APT攻擊過程劃分為以下幾個階段:
第一階段:情報收集。通過一些公開的數(shù)據(jù)源(LinkedIn、Facebook等)搜尋特定人員信息,利用搜索引擎配合爬網(wǎng)程序,在網(wǎng)上搜索需要的信息,并過濾篩選所需數(shù)據(jù)[10]。情報收集貫穿APT攻擊的整個過程,攻擊者對于所攻陷的每個ID都會收集所需信息,用以開展后續(xù)攻擊。
第二階段:突破攻擊切入點。攻擊者在確定好攻擊目標(biāo)ID后,通過電子郵件、即時通訊軟件、網(wǎng)站掛馬、App漏洞等途徑突破目標(biāo)ID防線[11]。
第三階段:C&C通信。APT攻擊者在控制一定數(shù)量內(nèi)網(wǎng)終端后,會建立命令、控制及更新服務(wù)器(C&C Server),對安裝在內(nèi)網(wǎng)終端的惡意程序進(jìn)行升級,從而繞過安全檢測系統(tǒng)的查殺。同時搜尋具有價值的數(shù)據(jù)信息,提升攻擊者權(quán)限,確保APT攻擊者長期控制目標(biāo)系統(tǒng)。在攻擊完成后,進(jìn)行入侵痕跡銷毀、偽裝攻擊IP地址等工作,例如日志刪除、Rootkit隱匿等[12]。
第四階段:數(shù)據(jù)發(fā)掘和信息竊取。APT攻擊者通常通過長期潛伏挖掘更多數(shù)據(jù)信息,搜尋有價值的數(shù)據(jù)進(jìn)行加密打包,并通過預(yù)留后門將數(shù)據(jù)回傳。同時,對獲取的信息進(jìn)行分析,以便獲取更高訪問權(quán)限,入侵高級管理者的終端系統(tǒng),進(jìn)而獲取更有價值的數(shù)據(jù)信息。
APT攻擊階段的演變給防御工作帶來極大挑戰(zhàn),APT攻擊是全面的、持久的、多渠道的,安全防御需要改變策略,單一防御功能的安全策略已經(jīng)不能滿足需求。針對攻擊階段建立相應(yīng)的防御策略,雖然可以應(yīng)對常見的、單一的攻擊行為,但無法實現(xiàn)全方位、實時的安全防護,需要進(jìn)一步從攻擊特征方面對防御體系進(jìn)行分析和完善。
在目前復(fù)雜的網(wǎng)絡(luò)環(huán)境下,如果有任何一個節(jié)點出現(xiàn)疏忽,就有可能被成功攻擊。比如,Web服務(wù)器通常會成為APT攻擊者的攻擊發(fā)起點,因為Web服務(wù)器是公司或政府機關(guān)網(wǎng)絡(luò)系統(tǒng)中最容易出現(xiàn)漏洞的地方;同時也因為它是網(wǎng)絡(luò)郵件的集散中心[13],也成為APT攻擊者收集信息的重點地方。攻擊Web服務(wù)器最有效的攻擊方法是通過Email進(jìn)行掛馬攻擊,例如發(fā)送釣魚郵件、通過惡意腳本掃描終端、針對程序漏洞植入惡意程序、構(gòu)建僵尸網(wǎng)絡(luò)等。
技術(shù)層面上,APT攻擊的手法更新頻繁并相互融合,且大多數(shù)攻擊工具都是未知的。但APT攻擊多數(shù)時候是極具針對性的,任何攻擊行為都具有相同或類似的手法,例如RANCOR(APT組織名)攻擊就是綜合了APT28(APT組織名)攻擊中的一些攻擊手法。DDKONG和PLAINTEE(APT組織名)等家族新的攻擊工具在2018年的攻擊中又被發(fā)現(xiàn)。DDKONG的攻擊工具是在Excel文件中嵌入宏來加載惡意程序,通過采集和分析嵌入宏的代碼,此攻擊方法與2017年的APT28攻擊中“Sofacy”所使用的方法相同。PLAINTEE也利用了相似的方法,其主要通過CoCreateGuid( )的調(diào)用來創(chuàng)建一個唯一的GUID,作為被攻擊者的標(biāo)識ID,通過自定義的UDP協(xié)議進(jìn)入配置端口,獲取并解碼數(shù)據(jù)包。通過數(shù)據(jù)的采樣分析,“Sofacy”攻擊具有一個0x66660002返回命令,包含一個相同的GUID,收到響應(yīng)后,惡意程序會產(chǎn)生帶有不同命令參數(shù)的幾個新線程,目的是加載并運行從服務(wù)器上接收的新插件,插件與PLAINTEE具有相同的網(wǎng)絡(luò)協(xié)議和DLL。因此,嘗試從攻擊行為特征入手,并對其攻擊背景進(jìn)行調(diào)查、分析、取證,從而發(fā)現(xiàn)APT攻擊行為背后的產(chǎn)業(yè)鏈和APT攻擊組織,可以達(dá)到更好的防御效果。
通過對APT攻擊行為的階段演變及技術(shù)手法的分析,本文嘗試采用靜態(tài)攻擊檢測和動態(tài)產(chǎn)業(yè)鏈分析相結(jié)合的檢測方法。在APT攻擊行為的分階段檢測過程中,針對攻擊者加載的惡意程序代碼的細(xì)節(jié),例如功能、0Day漏洞、C&C服務(wù)器、被攻擊ID、攻擊頻率等信息,嘗試提取APT攻擊的屬性和特征,對獲取的攻擊信息進(jìn)行分析,挖掘其產(chǎn)業(yè)鏈,最終構(gòu)建一個多態(tài)的安全檢測體系,包括技術(shù)層面的攻擊檢測方法和深入產(chǎn)業(yè)鏈的動態(tài)分析追蹤。
整個檢測防御體系劃分為4個模塊:發(fā)現(xiàn)預(yù)警、追根溯源、沙盒取證、主動防御。主要運用分布式部署和集中管理相結(jié)合的方法進(jìn)行安全檢測。前端主要部署在網(wǎng)絡(luò)出口和主要鏈路,進(jìn)行靜態(tài)的安全檢測和攻擊預(yù)警,并實時存儲數(shù)據(jù)。后臺與中心系統(tǒng)服務(wù)器連接,專門針對0Day漏洞和未知惡意程序進(jìn)行分析和檢測,從前端部署設(shè)備的存儲文件中提取數(shù)據(jù)樣本,對已知的攻擊進(jìn)行動態(tài)分析并提取其攻擊特征。部署在前端的預(yù)警模塊能檢測出已知的病毒或木馬,對于未知木馬或惡意文件,將檢測其是否存在Shellcode指令或相關(guān)代碼,之后進(jìn)行動態(tài)檢測,形成安全檢測分析文件,并生成其特征文件,加入攻擊特征庫當(dāng)中。利用所形成的特征庫對相應(yīng)攻擊行為進(jìn)行預(yù)警、攔截,可達(dá)到理想的防御效果。
多態(tài)攻擊檢測體系如圖2所示。
圖2 多態(tài)攻擊檢測體系
靜態(tài)的技術(shù)層面的攻擊檢測如下:第一步,從獲取的攻擊樣本中提取攻擊特征與功能特征,并對樣本進(jìn)行逆向分析。第二步,模擬攻擊環(huán)境,測試APT攻擊程序,獲取并記錄APT攻擊行為,審計網(wǎng)絡(luò)應(yīng)用程序帶寬占用情況,進(jìn)行APT攻擊溯源,并對其產(chǎn)業(yè)鏈追蹤。第三步,提取EXE文件、ShellCode、PE文件等,然后在虛擬環(huán)境下運行和分析異常結(jié)構(gòu),提取數(shù)據(jù)特征,并實時掃描系統(tǒng)內(nèi)存與CPU中資源異常調(diào)用等。第四步,檢測關(guān)鍵位置的代碼注入和各類API鉤子,檢測任意已知的攻擊代碼片段,檢測Rootkit、Key logger、Anti-AV等惡意程序,檢測郵件、域、IP、URL等眾多可疑字串等。
動態(tài)產(chǎn)業(yè)鏈的分析,通過建立相應(yīng)信息防護規(guī)章制度來進(jìn)行。APT組織經(jīng)常使用魚叉式網(wǎng)絡(luò)釣魚的方式進(jìn)行網(wǎng)絡(luò)攻擊。因此,檢測電子郵件附件是否被注入惡意代碼,用來判斷是否有人在嘗試入侵。通過安全郵件網(wǎng)關(guān)對郵件進(jìn)行檢查,并在此過程中提取可疑文件的數(shù)據(jù)特征。監(jiān)控網(wǎng)絡(luò)流量,設(shè)置安全管控措施,分析異常流量數(shù)據(jù)特征。設(shè)置具有針對性的攻擊檢測方法,在發(fā)現(xiàn)入侵行為時,立即切斷可疑通訊,發(fā)布安全預(yù)警提示。另外,將系統(tǒng)管理員的訪問權(quán)限與關(guān)鍵系統(tǒng)的數(shù)據(jù)訪問權(quán)限分開,能有效預(yù)防黑客通過內(nèi)網(wǎng)端點上的鍵盤測錄程序收集高級權(quán)限的賬號信息;同時將關(guān)鍵、敏感、機密的數(shù)據(jù)加密,以加大信息獲取的難度。
為了驗證本文提出的多態(tài)檢測方法的效果,建立一個仿真實驗環(huán)境進(jìn)行測試。用VMware構(gòu)建100臺虛擬攻擊機,網(wǎng)絡(luò)拓?fù)淙鐖D3所示。實驗時,采集在正常網(wǎng)絡(luò)狀態(tài)下未受攻擊時的數(shù)據(jù),并對該數(shù)據(jù)進(jìn)行篩選分析,得到正常網(wǎng)絡(luò)狀態(tài)下的鏈接分布參數(shù)和流量閥值。實驗中設(shè)定不同的攻擊次數(shù)并對檢測結(jié)果進(jìn)行比較,根據(jù)APT攻擊階段和攻擊方式的不同,采用DDos攻擊、端口掃描等常見的攻擊方式進(jìn)行實驗。DDos攻擊模擬了SYN-Flood、Smurf和UDP DNS Query Flood攻擊方法;端口掃描模擬了Nmap對主機開放的端口和協(xié)議進(jìn)行掃描。
利用異常的流量監(jiān)測技術(shù)對異常行為進(jìn)行檢測,對于發(fā)現(xiàn)隱藏的木馬和入侵行為是行之有效的策略。在實驗中,異常行為的判定模型是需要動態(tài)調(diào)整的,規(guī)則太復(fù)雜會影響用戶的正常工作,難以執(zhí)行,太簡單則會造成攻擊檢測的疏漏。因此,根據(jù)網(wǎng)絡(luò)運行狀態(tài)的歷史數(shù)據(jù)建立相應(yīng)的特征庫,以此為基礎(chǔ)進(jìn)行異常行為分析,則更加高效。
面對同類攻擊時,具體攻擊檢測的技術(shù)和方法不同,有效攻擊識別率也有所不同。實驗中,模擬4種常見攻擊行為,分別采集并統(tǒng)計常規(guī)檢測方法下的報警次數(shù)和命中率,如表1所示。常規(guī)攻擊檢測方法在面對單一攻擊方式或攻擊源基數(shù)較小時,攻擊報警命中率相對較高。基于流量異常的檢測方法具有較好的預(yù)警效果,而基于信息熵的檢測方法,對于Smurf攻擊具有較高命中率,但面對端口掃描攻擊,即使攻擊基數(shù)降低,命中率依然較低。
圖3 網(wǎng)絡(luò)拓?fù)鋱D
本文提出多態(tài)檢測方法,采集和提取模擬實驗環(huán)境下的數(shù)據(jù)樣本特征,并將獲取的各種攻擊特征聯(lián)合常規(guī)攻擊檢測方法進(jìn)行攻擊預(yù)警實驗,分別采集并統(tǒng)計報警次數(shù)和命中率,如表2所示。通過分析比對,發(fā)現(xiàn)加入攻擊行為特征后,4種常見攻擊的報警次數(shù)大大提高。UDP DNS Query Flood攻擊報警命中率提高至100%,尤其是面對端口掃描攻擊時,加入攻擊特征后,即便攻擊基數(shù)從200次提高到500次,但命中率依然提高至92%,預(yù)警效果顯著。攻擊行為特征的加入,使攻擊檢測預(yù)警效率明顯提高,對APT攻擊檢測起到了促進(jìn)作用。
表1 常規(guī)攻擊檢測結(jié)果
表2 加入攻擊特征后的檢測結(jié)果
面對APT攻擊行為不斷增長的事實,本文提出從多角度、多方位,綜合利用各種方法和技術(shù)手段,進(jìn)行必要的安全檢測,以確保信息的安全。通過模擬實驗,構(gòu)建一個分階段的、多態(tài)的APT攻擊檢測體系是行之有效的方法。但現(xiàn)實網(wǎng)絡(luò)中APT攻擊環(huán)境更加復(fù)雜,攻擊組織的技術(shù)能力顯然是機器模擬所不能達(dá)到的。隨著網(wǎng)絡(luò)終端接入方式的日益多樣化,數(shù)據(jù)的防御變得更加復(fù)雜。下一步,將在攻擊行為檢測的基礎(chǔ)上,進(jìn)一步完善APT攻擊防御體系,從而應(yīng)對網(wǎng)絡(luò)數(shù)據(jù)信息安全所面對的新挑戰(zhàn)。