金憲珊 季永煒 董冬偉






摘? 要: 設計了一種惡意程序發布檢測平臺,其中的檢測方法為:從HTTP請求消息中提取摘要信息;將摘要信息與惡意、安全網站識別庫中的識別信息進行匹配;如果匹配不成功,則使用決策分類器對摘要信息進行分類處理;如果確定為可疑惡意網站,則生成可疑惡意資源的下載連接信息;將多個可疑惡意資源的下載連接信息進行關聯,確定可疑惡意資源的網絡發布信息。該方法通過網絡節點圖可以更好地描述惡意程序發布網絡的活動,關注惡意程序分發網絡的機理和網絡基礎架構的屬性,提高惡意程序的檢出率,加強網絡安全。
關鍵詞: 惡意程序; HTTP; 安全; 檢測
中圖分類號:TP393? ? ? ? ? 文獻標識碼:A ? ?文章編號:1006-8228(2021)12-37-04
Abstract: A malware publishing detection platform is designed, in which the detection methods are: extracting summary information from HTTP request messages; Matching the summary information with the identification information in the identification library of malicious and secure websites; If the matching is not successful, the decision classifier is used to classify the summary information; If it is determined to be a suspicious malicious website, generate download connection information of suspicious malicious resources; Associate the download connection information of multiple suspicious malicious resources to determine the network publishing information of suspicious malicious resources. Through the network node graph, the method can better describe the activities of the malware publishing network, pay attention to the mechanism of the malware distribution network and the attributes of the network infrastructure, so as to increase the detection rate of malware and improve the network security.
Key words: malware; HTTP; security; detection
0 引言
目前,一般的惡意程序下載攻擊過程可以分為三個階段,在第一階段,即漏洞利用階段,攻擊者的目標是在受害者的主機上運行一小段代碼,為此,攻擊者首先準備一個帶有下載漏洞利用驅動代碼的網站[1]。當受害者訪問惡意頁面時,瀏覽器將獲取并執行驅動代碼。當攻擊成功時,它強制瀏覽器執行注入的殼代碼(shellcode)。在隨后的第二階段,即安裝階段,殼代碼(shellcode)下載實際的惡意軟件二進制文件并啟動它。一旦惡意軟件程序運行,在第三階段,即控制階段,它展現其惡意活動,通常,惡意軟件連接回遠程命令和控制(C&C)服務器。攻擊者使用此連接發出命令,將新的可執行文件“丟棄”到受感染的主機上,以增強惡意軟件的功能,并收到被盜的數據。
目前,大多數保護用戶免受惡意軟件攻擊的技術集中在第一和第三階段[2]。大量工作針對初始漏洞利用階段,嘗試檢測包含驅動器下載漏洞的頁面,并防止瀏覽器首先訪問惡意頁面[3]。例如,蜜罐客戶端(honeyclient)抓取網頁以快速查找具有漏洞利用代碼的頁面,并將這些發現轉化為域和URL黑名單。攻擊者通過惡意域名快速改變,使黑名單永久失效。此外,攻擊者已經開始大力識別蜜罐客戶端(honeyclient)的指紋(由操作系統、設備類型和主機名等識別客戶端的特征),并混淆其代碼以規避檢測[4]。由于在安裝階段,殼代碼(shellcode)通常會發出從遠程服務器獲取程序的HTTP請求,然后在本地安裝并執行惡意軟件,這可以通過簡單地調用用戶瀏覽器中的可用功能來完成此請求。從網絡的角度來看,這種連接幾乎不可疑,和不同的下載良性程序的合法請求基本一致。因此,急需一種新的惡意程序發布檢測技術。
1 檢測平臺架構(圖1)
惡意程序發布檢測平臺包括:數據采集模塊、預處理模塊、特征匹配模塊、訓練學習模塊、分類處理模塊和發布信息確定模塊。數據采集模塊采集用于發起文件下載的HTTP請求消息。預處理模塊從HTTP請求消息中提取摘要信息。特征匹配模塊將摘要信息與惡意\安全網站識別庫中的識別信息進行匹配。
如果信息匹配成功,則確定為惡意網站或是可信網站,訓練學習模塊將一定數量的摘要信息按照一定比例分別作為訓練樣本和測試樣本,對所述決策分類器進行訓練。如果匹配不成功,則分類處理模塊使用訓練學習模塊,通過已經訓練好的決策分類器,對摘要信息進行分類處理,確定為可疑惡意網站或可信網站。如果確定為可疑惡意網站,則發布信息確定模塊基于此摘要信息對應的HTTP請求消息,生成可疑惡意資源的下載連接信息。發布信息確定模塊將多個可疑惡意資源的下載連接信息進行關聯處理,確定可疑惡意資源的網絡發布信息。
通過對大量的HTTP請求消息進行采集,并進行HTTP短摘要的提取,利用機器學習算法進行惡意程序分發特征分析、獲得可疑惡意下載候選連接,生成可疑惡意資源的下載連接網絡節點圖,通過對包含惡意主機的網絡節點圖的不斷疊加,達到預期規模的惡意程序的分發網絡圖,利用網絡節點圖并綜合惡意程序下載活動的聚類,獲得惡意程序下載網絡的基礎架構。
2 平臺處理流程(圖2)
數據采集預處理模塊從數據采集點獲得HTTP請求數據,HTTP請求數據可以是在線數據或之前采集、記錄的抓包文件,例如.pacp文件等。數據采集預處理模塊從采集到的在線數據或抓包文件中的HTTP消息提取HTTP短摘要,HTTP短摘要包括源IP地址和目的IP地址、端口號、URI、用戶代理(UA)HTTP頭字段和前K個字節內容的哈希值等,K為是可配置參數。
已知惡意/良性域記錄模塊是已知的良性域和惡意域的列表,該列表來源于可信的數據源頭,良性域集從Alexa一些提供詳細服務器數據所獲取的信息組成[5]。
HTTP特征匹配模塊從數據采集和預處理模塊獲得HTTP短摘要,根據不同特征要求,為每一條HTTP短摘要記錄進行處理,形成特征匹配后的數據。特征匹配后,如果數據中的IP地址或URI與已知惡意/良性域記錄模塊中的記錄匹配,則輸出到有標簽數據,否則為無標簽數據,多個無標簽數據形成無標簽數據集。有標簽數據集合可以按照預設比例分別作為訓練集和測試集,由學習模塊訓練分類器時使用,例如,預設比例可以為20%為測試集、80%為測試集等。獲得學習后的分類器模型對無標簽的數據進行分類,確定每個HTTP數據代表的是可疑惡意下載的候選連接還是良性連接。
如果當前的HTTP數據被分類器判定為良性預連接,則完成對當前數據的處理;如果當前的HTTP數據被分類器判定為可疑惡意下載的候選連接,則根據HTTP數據的原始HTTP短摘要生成可疑惡意下載的候選連接網絡節點圖。
識別可疑的連接的方法是根據惡意下載程序的行為特征進行的,這些行為特征通常與惡意活動相關聯,包括文件名的突變檢測、分布式托管和域名變更檢測、惡意軟件專用主機檢測和漏洞利用程序下載主機檢測等。
每一個HTTP短摘要分別被提取惡意程序發布網絡特征相關的數據。對于文件變異特征,特征提取模塊從HTTP短摘要中查找與單個URI相關聯的下載記錄,并且下載超過n個不同文件(由文件的哈希值確定是否為不同文件),n為不同文件個數的閾值,通常在10到50之間。
對于分布主機和域名變換特征,特征提取模塊從HTTP短摘要中查找HTTP請求的同一服務器(IP地址)上是否托管不同的域名、該服務器唯一頂級域名數量、匹配URI路徑的數量和匹配文件名的數量、每個域名URI數量、服務文件類型類型和域名變化等數據。首先,利用聚類的方法發現內容發布網絡,即如果兩個域同時托管了哈希值相同的文件,那么認為這兩個域屬于統一聚類;如果在兩個聚類中分別有至少一個域托管了相同哈希值的文件,則將這兩個聚類聯系起來;內容分布網絡包括兩個或兩個以上的域的聚類。
然后,統計與此下載記錄相對應的可疑內容發布網絡的特征信息,其中,所述關于可疑內容發布網絡的特征信息包括:頂級域名數量、URI路徑數量、文件數量、文件類型。
查詢歷史下載記錄,如果確定摘要信息中的域名、IP地址和下載文件僅與一個URI相對應,則確定與此摘要信息對應的可疑惡意資源通過專用主機下載的特征信息。對于惡意程序專用主機的特征,特征提取模塊從HTTP短摘要中查找域名和IP地址,如果該域名和IP地址包括了一個可執行文件的下載并最多托管了一個HTML網頁的URI,則需要提取相關的記錄。
對于漏洞利用程序下載主機的特征,特征提取模塊從HTTP短摘要中獲取與摘要信息中的目的IP地址和用戶代理(User-Agent),尋找與同一IP地址聯系了一次以上且使用不同的User-Agent記錄,并統計User-Agent的數量;將此文件下載記錄以及User-Agent的數量作為關于漏洞利用的特征信息。
特征提取模塊可以根據需要添加新的與惡意程序發布相關的其他特征,從HTTP短摘要中提取與新添加的特征相關的數據為進一步的處理分析做準備。
3 惡意資源識別
基于摘要信息對應的HTTP請求消息生成可疑惡意資源的下載連接網絡節點圖,下載連接網絡節點圖中的節點包括:IP地址、域名、URL路徑、文件名和下載文件等。將多個可疑惡意資源的下載連接網絡節點圖進行疊加處理,并將多個可疑惡意資源的下載連接網絡節點圖中的相同節點進行關聯處理,形成可疑資源的分發網絡圖;其中,多個可疑惡意資源的下載連接網絡節點圖中的相同節點為重疊狀態;基于可疑資源的分發網絡圖獲取鏈接到相同的可疑惡意資源的網絡路徑信息以及可疑惡意資源的發布主機,用以確定發布可疑惡意資源的網絡架構。
惡意程序發布網絡圖經初始化后執行一系列迭代,生成可疑候選主機相關的惡意活動網絡圖,每次獲得一個可疑惡意下載的候選連接網絡節點圖,就將其添加在惡意程序發布網絡圖中,直至圖形達到其預設大小的限制。最終,鏈接到相同文件的不同URI關聯在一起的主機、路徑和行為形成惡意程序發布網絡的機理和網絡基礎架構。
如圖3所示,當目標網絡是ISP網絡時,數據的采集點為ISP網絡的出現點(POP),能夠獲得廣泛和充分的發起了文件下載的HTTP請求數據,有利于惡意主機的發現。如圖4所示,當目標網絡是大型企業網絡時,數據的采集點為企業網的出口交換機,在企業網的出口可以獲得所有企業網對互聯網發出的發起了文件下載的HTTP請求數據。
當分類器確定了一個HTTP記錄為可疑惡意候選連接后,生成可疑惡意下載網絡節點圖。圖5是單個可疑惡意資源的下載連接網絡節點圖,在圖的左下角是圖例,可以看到對于單個可疑惡意資源的下載連接網絡節點圖包括與連接相關的URL、全程域名、域名、客戶端、服務器、URL文件名、URL路徑、壓縮的有效載荷和解壓后的有效載荷,基本上反映了單獨一次內容下載的主要特征。
但是,單個可疑惡意資源的下載連接網絡節點圖不能全面反映惡意下載網絡的全貌,它只能反映出一系列惡意下載的步驟之一,并且觀察單次下載時,惡意下載和良性下載表現的情況區別不大。因此需要將被判斷為可疑惡意資源的下載連接疊加在一起,綜合判斷惡意程序下載的網絡基礎架構。如圖6所示,多個可疑惡意資源的下載連接網絡節點圖疊加后形成的可疑資源的分發網絡圖。圖6中疊加了5個可疑惡意下載的網絡節點圖,可以看到盡管5個可疑惡意下載請求的URL并不相同,但是它們最終都指向了兩個惡意程序Malware1.exe和Malware2.exe,根據這個線索,可以跟蹤下載這兩個惡意程序的客戶端和服務器之前的行為,最終了解與Malware1.exe和Malware2.exe相關的惡意軟件發布網絡的原理和基礎架構。
4 結束語
本文的惡意程序發布檢測平臺,從發起了文件下載的HTTP請求消息中提取摘要信息,將摘要信息與惡意\安全網站識別庫中的信息進行匹配,匹配成功的記錄將按照一定的比例分別作為訓練集和測試集訓練分類器,匹配不成功的,則使用已經訓練好的決策分類器對摘要信息分類處理,若確定為可疑惡意網站,則生成可疑惡意資源的下載連接信息,將多個可疑惡意資源的下載連接信息進行關聯處理,確定可疑惡意資源的網絡發布信息;利用機器學習的方法,基于已知惡意程序下載特征的提取和已知數據集,對分類器進行訓練和學習,對新的網絡流量數據檢測出可疑惡意資源,并生成其網絡節點圖并進行關聯,得到惡意程序發布網絡的信息和網絡基礎架構,可以消除誤報。網絡節點圖可以更好的描述惡意程序發布網絡的活動,忽略攻擊者可以輕易改變的特征,而關注惡意程序分發網絡的機理和網絡基礎架構的屬性,能夠檢測到以前沒檢測出的惡意網絡活動,進而增加惡意程序的檢出率,提高網絡安全。
參考文獻(References):
[1] 陸濤.惡意程序檢測算法的研究與實現[J].現代電子技術,2017.40(3):85-88
[2] 王樂樂,汪斌強,劉建港等.基于遞歸神經網絡的惡意程序檢測研究[J].計算機科學,2019.46(7):86-90
[3] 劉佳,張平,劉培玉等.新型入侵增量識別入侵檢測模型[J].計算機應用與軟件,2019.36(3):320-326
[4] 王麗娜,王斐,劉維杰.面向SDN的安全威脅及其對抗技術研究[J].武漢大學學報(理學版),2019.2:153-164
[5] 任益辰,肖達.基于程序雙維度特征的惡意程序相似性分析[J].計算機工程與應用,2021.57(1):118-124