來源:《Detecting APT Malware Infections Based on Malicious DNS and Traffic Analysis》,SPECIAL SECTION ON BIG DATA FOR GREEN COMMUNICATIONS AND COMPUTING。清華大學
摘要:高級持久威脅(APT)是對互聯網的嚴重威脅。借助APT惡意軟件,攻擊者可以遠程控制受感染的機器并竊取敏感信息。DNS是流行的惡意軟件用于定位命令和控制(C&C)服務器的常用方式。在本文中,我們提出了一種新的系統,該系統放置在網絡出口點上,旨在有效地檢測基于惡意DNS和流量分析的APT惡意軟件感染。該系統使用惡意的DNS分析技術檢測可疑的APT惡意軟件C&C域,然后利用基于簽名的基于異常的檢測技術對相應可疑IP的流量進行分析。我們提取了14個基于大數據的特性,以描述與惡意軟件相關的DNS的不同屬性,以及它們被查詢的方式,我們還定義了網絡流量特性,可以識別遠程控制的受損害客戶的流量。我們建立了一個聲譽引擎來計算一個IP地址的聲譽分數使用這些特征向量在一起。我們的實驗在一個大型的地方機構網絡上進行了兩個月,所有的功能都是用大數據進行研究的,其中包括了4億個DNS查詢。我們的安全措施不僅可以大大減少需要記錄和分析的網絡流量的數量,而且還可以提高系統的可持續性。
一、引言
目前,互聯網上的高級持續威脅(APT)攻擊正在增加;不幸的是,它們很難被發現。它是一套秘密的、持續不斷的黑客過程,目標是具有高價值信息的特定實體,如政府、軍隊和金融行業。APT攻擊的意圖是竊取數據,而不是對網絡或組織造成損害。一旦侵入網絡,攻擊者就會在被感染的機器上安裝APT惡意軟件。例如,惡意軟件,例如特洛伊木馬或后門,是為反病毒軟件和目標網絡的防火墻而量身定做的。它不僅用于在APT攻擊中遠程控制被攻擊的機器,還用于在較長時間內從受感染的主機竊取敏感信息。APT惡意軟件可以使用多態代碼來規避反病毒軟件,并使用允許端口上的協議繞過防火墻。
DNS是Internet的重要組成部分,它是負責將域名解析為相應IP地址的協議。不幸的是,除了用于幫助定位web服務器和郵件主機的良性使用之外,域名也容易受到惡意使用。為了遠程控制被感染的機器,攻擊者需要建立一個命令和控制通道。受感染機器與攻擊者之間的命令和控制通道負責發送命令和傳輸數據。大多數惡意軟件,例如木馬、后門和其他遠程訪問工具,利用域名來定位他們的命令和控制(C&C)服務器,并與攻擊者進行通信。例如,著名的惡意軟件如Gh0st、PCShare和毒葛,都指示攻擊者首先創建域和端口來定位命令和控制服務器。
在APT攻擊中,惡意軟件需要保持與C&C服務器的持久連接。攻擊者廣泛使用DNS來定位惡意軟件的命令和控制服務器。因為如果攻擊者將C&C服務器的IP硬編碼到惡意軟件二進制文件中,就會導致無法恢復的某種故障。一旦C&C服務器宕機或IP地址被檢測到,被入侵的機器就會脫離攻擊者的控制。另一個原因是,為了隱藏真正的攻擊源,攻擊者經常使用他們在不同國家和地區控制或管理的服務器作為代理。由于使用域名稱可以靈活地更改惡意軟件C&C服務器的IP地址,并遷移C&C服務器,因此它可以幫助攻擊者更容易地隱藏代理服務器背后的真實攻擊源。
通過分析虛擬機中的大量惡意軟件樣本,我們發現木馬等遠程訪問工具(RAT)等惡意軟件經常使用DNS特別是動態DNS來定位命令和控制服務器。動態DNS是一種可以實時更新名稱服務器的方法。動態DNS提供者擁有許多現有的2LD域。用戶只需注冊一個新的3LD子域,并將IP地址映射到注冊的新動態域名。一個未注冊的新的3LD子域名可以很容易注冊。對于像特洛伊木馬這樣的惡意軟件,DDNS是一種天生的適合。動態DNS的主要便利是,用戶可以隨時更改域以指向新的IP地址。有大量的動態DNS提供商,例如,no - ip和DynDNS,且大多數都是免費的。
在本文中,我們的目標是檢測APT惡意軟件,它依賴于DNS來定位命令和控制服務器。以往的研究通過對DNS流量的分析來研究如何檢測僵尸網絡(見[1]-[3])。這些研究集中于檢測惡意流量服務或利用域生成算法(DGA)的機器人。惡意流量服務與內容傳輸網絡(CDN)服務類似。它利用了與CDN相同的理論。CDN是加速網站內容交付和減少web服務器滯后的常用方法。它是一個由許多不同國家和地區的機器組成的網絡。每當用戶向CDN網絡的一部分web服務器發送請求時,最近的服務器將響應網站訪問者。CDN是加速web服務器內容傳遞的有效方法。惡意流量服務是僵尸網絡使用的一種DNS技術。內容傳遞網絡與惡意流量網絡的區別在于,CDN由大量合法服務器組成,而惡意流量網絡由大量受感染的機器組成。Conficker[4]和Kraken是最近利用惡意流量的僵尸網絡,因為它對探測和發現更有抵抗力。通過使用惡意流量服務( malicious flux service),可以減少發現和刪除僵尸網絡的機會。
域生成算法(DGA)可用于生成大量的域名[5]。它被許多惡意軟件和僵尸網絡所推廣,比如Srizbi bots[6]和Conficker蠕蟲[4]。受感染的機器每天都會產生大量的域名。例如,Conficker蠕蟲每天生成5萬個域名用于與C&C服務器通信。C&C服務器的域名是從域名列表中隨機選擇的。
APT的惡意軟件與上面提到的僵尸和蠕蟲非常不同。APT惡意軟件的主要目的是遠程控制機器和竊取機密數據,而不是發起拒絕服務攻擊,發送垃圾郵件或造成損害。它需要在長時間的操作過程中保持高度的潛行性。例如,在那些機器人和蠕蟲的例子中,攻擊者需要使用命令和控制服務器來遠程控制數千個受感染的主機。但是APT攻擊者不使用相同的C&C服務器遠程控制這么多受感染的終端用戶機器,因為這樣會增加暴露的風險。精心制作的惡意軟件僅用于對其有價值的最終用戶機器。
APT惡意軟件的DNS行為特征與惡意流量服務和DGA非常不同。Flux service和DGA域有一些明顯的特性。例如,從由域生成算法生成的域中提取“短生命”特性。因為DGA域僅在短時間內使用[7]。“字母數字分布”也是從DGA域中提取的特征,因為DGA域不包含“有意義”的單詞[7], [8]。例如,惡意流量DNS流量也有一個明顯的共同特征,即解析到域名的IP地址變化迅速。識別與APT惡意軟件活動相關的惡意域名是一個挑戰。APT攻擊中精心制作的惡意軟件不使用惡意流量服務或DGA域。APT惡意軟件的域名是由攻擊者注冊的。與這些機器人和蠕蟲相比,精心制作的惡意軟件需要高度的隱身。因此,APT惡意軟件的DNS行為特征不明顯。很難分析大型網絡中大量的入站和出站流量,比如大型企業和ISP。在一個大的網絡中發現APT的惡意軟件感染是另一個具有挑戰性的問題。
在本文中,我們提出了一種新的系統“IDnS”,它被放置在網絡出口點上,以檢測APT惡意軟件的感染,它依賴于DNS來定位命令和控制服務器。本文的主要貢獻如下:
?利用惡意DNS檢測技術和入侵檢測技術的結合,將一個新的系統置于網絡邊緣,檢測網絡內的惡意軟件感染。這種方法不僅可以大大減少需要記錄和分析的網絡流量,而且還可以提高系統的可持續性。
?我們通過研究大量的DNS流量(可以稱為大數據)來定義14個APT惡意軟件C&C服務器領域特性,包括動態DNS特性。其中7個在之前的作品中沒有提出過。此外,還定義了異常的網絡流量特性,以幫助識別被遠程控制的受損客戶的流量。
?我們使用使用這些特征向量建立一個聲譽引擎來決定一個IP地址是否被感染。
二、相關工作
1、DNS惡意軟件研究
研究人員最近提出了通過DNS流量分析識別惡意域名的方法。Notos[9]建立一個聲譽引擎,為一個新的未知領域動態分配聲譽評分,以判斷它是否具有惡意。EXPOSURE[7]研究了DNS解析器下的一個本地域內的DNS查找行為,以檢測惡意使用的域,如用于惡意流量的域、成人網站、垃圾郵件、網絡釣魚和惡意軟件。在文獻[10]中,它給出了系統EXPOSURE的摘要[7],它使用被動的DNS分析來自動檢測惡意域名。相對于以往的研究,Notos[9]和[7],基于從本地遞歸DNS服務器上的DNS流量,Kopis[11]提供了一個新的有利位置,并引入了新的流量特性,通過在上面的DNS層次結構中監控上DNS的網絡流量來獲取流量的全局可見度。通過分析全局DNS查詢,它可以準確地檢測到惡意軟件域。[12], [13]在DNS根服務器上分析DNS查找行為。Castro等人[14]和Brownlee等人[13]試圖表征在DNS根服務器上有多少DNS流量是非法的。Gao等人[15]提出了一種新穎的方法來看待域名的共現和序列。它利用DNS查詢中的時間相關性將惡意的域組隔離開來,但它需要已知的惡意域名作為錨。
還研究了通過監測和分析DNS流量來檢測惡意軟件活動的方法。一些方法側重于檢測利用惡意流量服務(malicious flux service)的僵尸網絡。Perdisci等[16]旨在通過分析來自多個大型網絡的遞歸DNS (rdn)流量來檢測惡意流量服務。[8]開發了一種在網絡邊緣放置的系統,通過檢測DNS流量中的惡意流量域來檢測和減輕網絡上的僵尸網絡感染。不幸的是,APT攻擊中精心制作的惡意軟件不會使用惡意的流量服務或DGA域。[17]提出一種基于異常的機制,通過監測和分析DNS流量來檢測僵尸網絡。該機制依賴于分布式機器人同時發送的DNS查詢中的組活動。作者提出了一些特征來區分僵尸網絡和良性客戶端產生的DNS流量。但他們只關注僵尸網絡的群體活動屬性,他們識別的功能不適合檢測APT惡意軟件。
以前的工作都沒有試圖識別APT惡意軟件活動中涉及的惡意域名。本文重點研究了APT活動中精心制作的惡意軟件的C&C服務器域名。我們提取了14個APT惡意軟件C&C域特征,包括惡意DDNS的特征,其中7個特征在以前從未被提出。我們將被稱為“IDns”的系統置于網絡的邊緣,并進行網絡流量分析,以檢測網絡內受感染的機器。
2、入侵檢測的研究
一般來說,網絡入侵檢測的主要研究包括基于簽名的檢測和基于異常的檢測。基于簽名的檢測技術依賴于現有的簽名數據庫來檢測已知的惡意軟件感染。通過基于簽名的檢測技術,可以通過基于簽名的模式匹配識別惡意軟件C&C通信流量。因此,對于惡意軟件感染檢測來說,這是一種典型的方法。但是基于簽名的檢測技術有一個致命的缺點,如果新的惡意軟件的簽名不在現有的簽名數據庫中,它就無法檢測到新的惡意軟件感染。
Snort[18]是一個著名的基于簽名的網絡入侵檢測系統。Snort在VRT中有許多用于檢測惡意代碼和可疑網絡活動的規則。這些都是很好的消息來源,有許多優秀的規則來檢測各種各樣的威脅,包括惡意軟件。在本文中,Snort由于其受歡迎程度和熟悉程度而被選中。以往的研究都集中在Snort的優點和缺點[19], [20]。只要攻擊是預先明確定義的,就有低的誤報,但是很難發現新的或未知的攻擊。
基于異常的入侵檢測[21], [22]是一種檢測偏離“正常”行為的異常行為的技術。網絡的“正常”行為首先需要研究和識別。基于異常的入侵檢測的主要優點是能夠檢測新的或未知的攻擊。因為新的或未知的惡意軟件的簽名不可用,也會產生異常行為。基于異常的入侵檢測的主要缺點是,它更容易產生誤報。由于不同網絡和應用的行為是如此復雜,“正常”的行為很難準確識別。與基于簽名的檢測不同,基于異常的入侵檢測是一種基于檢測異常行為的更廣泛的匹配。許多合法的應用程序執行與惡意程序相同的異常行為。
Mcafee[23]向我們展示了識別APT惡意軟件命令和控制(C&C)通信流量的高級檢測技術。它還分析了APT惡意軟件與C&C服務器通信時產生的流量,并提取了一些服務器APT惡意軟件的網絡特性,其中包括變種Gh0st和毒葛。卡巴斯基實驗室[24]介紹了許多APT的惡意軟件和網絡運動,包括方程”、“面具”、“BlackEnergy”和其他著名的APT活動。他們的報告包括C&C域名和APT惡意軟件的C&C服務器IP地址。
三、方法的概述
1、提取用于檢測的特性
IDns的設計目的是檢測在APT攻擊中用于制作惡意軟件的惡意域名,并檢測被感染的機器。出于這個目的,我們對大量的DNS流量進行了分析,這些流量可以稱為大數據。我們還分析了大量可疑的惡意軟件C&C服務器的網絡流量。
我們從大數據中提取的特征包括惡意DNS特征和網絡流量特征。通過對DNS流量的研究,我們獲得了能夠定義APT惡意C&C域的可識別DNS特性。通過研究惡意軟件和良性應用程序的行為,我們獲得了能夠定義APT惡意軟件C&C流量的可識別的網絡流量特性。網絡流量特性,包括基于簽名的檢測特性和基于異常的檢測特性,可以幫助識別被精心設計的惡意軟件遠程控制的受感染客戶的流量。
2、系統的架構
圖1顯示了系統“IDnS”的體系結構。它由四個主要單位組成:
數據收集器:將其放置在網絡邊緣,以記錄由網絡生成的入站和出站流量。
惡意DNS檢測器:負責分析網絡生成的入站和出站DNS流量,檢測可疑的APT惡意軟件C&C域。它將檢測可疑的APT惡意軟件相關領域,并為系統的“網絡流量分析器”提供相應的可疑的C&C服務器IP地址。
網絡流量分析器:它由基于簽名的檢測器和基于異常的檢測器組成,用于分析可疑的C&C服務器IP地址的網絡流量。基于簽名的檢測器已經定義了C&C通信流量簽名,用于檢測系統已知的惡意軟件。基于異常的檢測器檢測異常行為,包括協議異常、統計異常、應用異常等。當未知或新的惡意軟件被基于異常的檢測器識別時,將定義新的簽名。所有已識別的C&C通信流量簽名將被收集到我們的TM(目標惡意軟件)族。
聲譽引擎:它的目標是通過使用惡意的DNS和網絡流量特征向量,來計算IP地址的信譽評分來判斷主機或服務器是否感染了IP地址。
3、惡意的DNS特征
在本文中,我們根據大數據識別出14個特征來檢測APT惡意軟件的命令和控制域(見表1)。其中7個特征之前沒有提出過。我們還對以前提出的一些舊的特征給出了新的解釋。在本節中,我們將詳細介紹本文中提出的14個特性,并解釋它們可以用來檢測APT惡意軟件命令和控制域的原因。
3.1基于域名的特性
每一個域名都是按句點分開的。最后一部分稱為頂級域(TLD)。二級域(2LD)是最后兩個部分。第三級域(3LD)是最后三個部分,等等。例如,給定域名“a.b.c.com”,域名的TLD為“com”,域名的2LD為“c.com”,域名的3LD為“b.c.com”。對于動態DNS, 2LD“c.com”是DDNS提供商現有的部分。“b.c.com”中的第三級子域名“b”是由用戶創建的。我們提取了三個基于域名的特征,第三級子域名是DDNS(動態域名),其中包含了著名的名稱、特定的名稱或網絡名稱。在以往的研究中,這3個針對惡意軟件C&C動態域名的功能從未被提出過。
包含著名的名稱:我們發現有趣的是,許多注冊于C&C服務器的動態域名可以告訴我們他們自己高度懷疑。我們可以用名字來告訴他們。就像我們能說的,一個穿警服的長發男人是一個假警察。許多注冊的可疑動態域名包含著名的域名,如windows,yahoo 和 taobao。我們知道,這些動態域名幾乎不可能用于微軟、雅虎或阿里巴巴。
包含特定的名稱:我們還發現為C&C服務器注冊的許多動態域名包含一些特定的名稱,如“web”、“mail”、“news”和“update”。這些特定的名稱不僅使這些域名容易記住,而且使這些域更像普通的域名。正如所觀察到的,這個特定的名字和著名的域名通常是一起使用的,比如“yahoomail.xxx.com”、“yahoonews.xxx.com”和“windowsupdate.xxx.com”。
包含釣魚名稱:網絡釣魚是一種通常用于社會工程攻擊的技術。攻擊者欺騙受害者訪問一個惡意網站。當受害者進入釣魚網站時,會試圖在受害者身上安裝惡意軟件。為了欺騙用戶,我們都知道phishing域與合法域名有類似的名稱。比如“youtuhe.com”,“youtube.com”,“yah00.com”和“yahoo.com”等。我們注意到,許多惡意的動態域名被用于RAT工具的命令和控制服務器,而不是欺騙服務器,也有一個類似于合法域名的網絡釣魚域名。
3.2 DNS問答功能
Silent IP:隱藏C&C服務器和C&C網絡流量,當攻擊者不需要向受害者機器發送命令時,他們不希望域名指向C&C服務器。在那一刻,攻擊者通常會更改域以指向某些特定的ip。具體的IP地址通常為:127.0.0.1(回行地址),192.168.x.x,172.16.x.x,x 10. x.x(私有地址);. x.x.x.255(廣播地址)。
預先定義的IP:在APT攻擊中一些高級的惡意軟件改進了這個方法。當攻擊者在開發和編碼高級惡意軟件時,一個預定義的IP被硬編碼到惡意軟件二進制文件中。靜默機制的工作原理是這樣的,當域被解析為預定義的IP時,惡意軟件就會轉向silent模式,并且在域被解析到另一個IP地址之前不會啟動連接。預定義的IP地址通常是一些具有明顯特征的無效IP地址,比如5.5.5.5、2.3.3.2。在本文中,這個特定的IP地址和預定義的IP地址都被稱為Silent IP。在之前的研究中沒有提出預定義IP的特性。
不同的IP地址和不同國家的數量,為了隱藏真正的攻擊源,攻擊者通常使用服務器位于不同的國家或地區他們控制或管理著C&C服務器。對于攻擊者,C&C服務器最好不要駐留在攻擊者或受害者的同一個國家。因為如果C&C服務器位于受害者的同一個國家,受害國就更容易分析這次攻擊。如果C&C服務器駐留在攻擊者的同一個國家,那么跟蹤真實的源就更容易了。之前的工作中使用了這兩個特性來檢測僵尸網絡[12], [16]。
共享相同IP的域數量:這也是EXPOSURE以前提出的一個特性[7]。我們研究并訓練這個特性來檢測惡意的動態DNS,它也同樣有效。在APT攻擊場景中,單個攻擊者在同一時間內很少擁有超過30個動態名稱來定位命令和控制服務器,因為這不是必需的,而且很難維護它們。因此,惡意動態域的數量共享相同的IP,定義小于30。
已知的C&C服務器的B類范圍內的IP:我們對已經檢測到的C&C服務器的數量進行了統計分析。結果顯示,在相同的B類IP地址范圍內,甚至在同一類范圍內,有許多C&C服務器。這可能有兩個原因。第一個是越來越多的攻擊者租用VPS服務器作為C&C服務器。因為VPS服務器是穩定的,很難追溯和管理。從同一服務提供者租用的VPS服務器大部分在相同的B類IP地址范圍內,甚至在同一類范圍內。第二個原因是,一些高級攻擊者為C&C服務器構建了特殊的網絡。
3.3基于時間價值的特征
每日相似度:此特征是在EXPOSURE提出的[7]。他們檢查是否有一些域顯示他們的請求計數隨時間變化的相似性,每天相同間隔的請求計數的增加或減少。在我們的檢測中,我們檢查這些域是否每天在相同的時間間隔內改變IP地址。例如,有組織的APT攻擊者通常會在一天工作時間的開始時更改域指向C&C服務器,并在一天工作時間結束時更改域以指向靜默IP。一些惡意軟件通常在每天相同的時間間隔連接到C&C服務器,監控DNS請求的一致間隔將會有所幫助。
同一時間窗口中相同的查詢數量:此特性意味著在同一時間窗口中,域查詢的數量大致相同。當被感染的主機聯機時,但由于某種原因存在連接失敗。受感染的主機將會錯誤地發送DNS錯誤并發送大量的重復DNS查詢。
非常低的頻率:這是在以前的工作中從未提出過的一個新特性。我們發現,一些高級的APT惡意軟件查詢域以非常低的頻率定位命令和控制服務器,在一個時間內,甚至是幾個星期。我們認為這些域的行為是為避免被高級APT攻擊者發現而設計的。正如所觀察到的,這些域還有其他共同的特性。大多數域都是web服務器,這些web服務器在網站內容和設計中也有共同的特性。域名的解析IP地址和時間(TTL)都是穩定的。
3.3TTL價值特性
Time To Live (TTL)是由權威的名稱服務器為DNS記錄設置的。TTL是指解析器可能緩存域的響應結果的時間。如果存根解析器在TTL過期之前查詢緩存名稱服務器,那么緩存服務器將簡單地使用已緩存的資源記錄進行應答,而不是從權威的名稱服務器中檢索它。
平均TTL:將主機名的TTL值設置為較低的值可以幫助攻擊者快速更改C&C服務器。此外,基于我們的測量,動態域名服務的TTL值,如dyndn、NO-IP和ChangeIP,通常設置為30、31、60,300秒。但并不是所有的惡意軟件C&C域都將TTL值設置為更低的值。正如我們在“非常低頻率”中提到的,有高級的惡意軟件域設置更高的TTL值,如觀察到的86400秒。因為他們幾個星期都不改變解析IP地址。
3.4探索功能
上面列出的惡意DNS特性都是基于被動分析的。在此部分,我們提出了主動探測方法來幫助檢測惡意域名。
Web服務器與否:我們建議使用這一新方法探測域的80端口,并檢查它是否是真實的Web服務器。如果一個域保持TCP端口80打開而不是一個web服務器,它是高度可疑的。我們可以檢查它是否是一個命令和控制服務器保持TCP端口80開放監聽被感染的主機通過分析響應數據包連接。但是如果它是一個web服務器,我們不能確認它是一個命令和控制服務器。因為攻擊者可以使用web服務器作為命令和控制服務器。
Whois信息:通過查詢Whois,我們可以獲得更多的域名信息,如注冊日期、注冊商、注冊人姓名、注冊電子郵件和注冊國家。將這些信息與之前已知的惡意軟件C&C域的信息進行比較是一種有效的方法。例如,著名的APT惡意軟件“等式”的所有C&C域似乎都是通過相同的兩個主要注冊商注冊的,使用“代理域”來屏蔽注冊者信息。
4、網絡流量特性
我們的系統IDnS使用基于簽名的檢測和基于異常的檢測一起為監控網絡提供最大的防御。
4.1基于簽名的檢測功能
規則集在基于簽名的id中起著至關重要的作用,規則的數量和準確性決定了可以檢測到多少感染。為了應用眾所周知的基于簽名的IDS的公共開放規則集,我們使用來自snort的VRT規則集[18]的規則。我們的系統側重于檢測惡意軟件感染,所以適用于該系統的規則主要來自惡意后門規則、惡意數控規則、惡意程序和黑名單規則。經過長時間的檢測,系統檢測并確認了大量惡意DNS檢測和基于異常檢測的惡意軟件感染。
我們在本文中提到的基于簽名的檢測功能是指當惡意軟件與C&C服務器通信時產生的C&C網絡流量的特征。通過分析惡意軟件與指揮和控制服務器通信時產生的網絡流量,我們提取了21個未知惡意軟件或木馬的網絡通信特征。我們將未知的惡意軟件歸到我們的TM(目標惡意軟件)家族,因此我們的TM(目標惡意軟件)家族中的所有惡意軟件都可以被習慣性地檢測到。我們將在未來繼續做這項工作,因為它是檢測惡意軟件感染的有效方法。
當惡意軟件與命令和控制服務器通信時產生的網絡流量更傾向于具有一致的特性。這是因為攻擊者在受感染機器和控制服務器之間建立的命令和控制通道是穩定的。惡意軟件用于與C&C服務器通信的C&C協議通常具有一致或常規的內容[23]。
例如,在我們的TM(目標惡意軟件)家庭中,惡意軟件TM1通過HTTP協議啟動了一個連接到命令和控制服務器的連接,URL參數始終是一致的。TM1有一致的URL參數“GET/1/login.php?u=YmFsY2s=&p=cGFzc3dvcmQyMDE1 HTTP1.1”。我們TM家庭的另一個有針對性的惡意軟件TM2有常規的URL參數“GET/{6characters}.php? id={12 characters} HTTP1.1”這12個字符是受感染機器的加密MAC地址。當惡意軟件通過HTTP協議與命令和控制服務器通信時,分析HTTP報頭是一種用于檢測惡意軟件通信的通用方法。我們可以在HTTP POST/GET請求中從URL參數、內容類型、內容長度和用戶代理中提取網絡流量特性。
一些APT惡意軟件通過HTTPS協議與命令和控制服務器通信。在這種情況下,檢測一致或常規的URL參數不起作用,因為URL內容是加密的。還有一種方法可以檢測HTTPS C&C流量。因為通過HTTPS協議與命令和控制服務器通信的惡意軟件具有一致的安全套接字層(SSL)證書。在SSL證書中檢測一致的默認值也是檢測惡意軟件感染的有效方法[23]。
4.2基于異常的檢測特性
基于異常的入侵檢測是基于對網絡中異常行為的檢測。基于簽名的方法需要一個已知簽名的數據庫。基于異常的入侵檢測需要定義異常或正常的行為。我們定義了APT惡意行為,包括協議異常、統計異常、應用異常:
協議和端口(協議異常)的錯配:為了通過目標網絡的防火墻,惡意軟件通常使用防火墻允許C&C通信的協議和端口。正如所觀察到的,惡意軟件與C&C服務器通信的最流行的端口是80、8080、443、8000、1863等等。惡意軟件與C&C服務器通信的最流行的協議是HTTP和HTTPs。C&C通信協議是在編碼階段由惡意軟件開發人員設計和實現的,而當攻擊者在使用C&C服務器的時候對其進行配置時,就會創建域和端口。由于任何端口都可以由遠程訪問工具用戶配置,所以有時會發生協議和端口的不匹配。例如,HTTP協議通信不發生在端口80或8080上,或者在端口80上發生非HTTP協議通信。它們都很可能是惡意的流量。
加密數據在不常用的端口(協議異常)上傳輸:不是所有的惡意軟件都在常用的協議端口上與C&C服務器通信。一些惡意軟件有時會與一些端口上的C&C服務器通信,而這些服務器很少被合法的應用程序使用。而大部分的APT的惡意軟件C&C的流量數據被加密以躲避檢測。因此,在不常用的協議端口上的加密數據也可能是惡意的流量。
上行鏈路和下行鏈路的不匹配(統計異常):正常情況下,下行數據流量到主機的流量比上行流量到服務器的流量要大。但是C&C通信流量是截然相反的。被感染的主機上傳到控制服務器的數據流量總是大于從控制服務器接收到的數據流量。例如,HTTP請求的流量遠遠超過HTTP響應,這很可能是惡意的流量。
許多小數據包長TCP連接(統計異常):當攻擊者發送的命令集受感染的機器,命令,如文件資源搜索命令,文件下載命令需要很多等待時間,加上人類的思考時間,使連接會話持續時間更長。由C&C服務器發送給受感染主機的命令集是所有小數據包。
心跳包流量(應用程序異常):在被感染的主機客戶端連接了命令和控制服務器后,服務器將發送數據包給客戶端,確保另一端在線。這種包稱為心跳包。由于心跳包的大小類似,我們將所有數據包按數據包大小分組,并檢查同一集群中的數據包是否定期發送。
惡意軟件領域的流量:正如我們在實驗中所觀察到的,C&C服務器的流量在大多數情況下都是平滑的,但是當攻擊者從受感染的主機上傳數據到C&C服務器時,其流量就會達到峰值。
圖2顯示了一天24小時內3個惡意軟件域(C&C服務器)的流量。domain3的C&C服務器控制了2個受感染的主機,攻擊者在10:00-11:00時從第一個主機竊取了18.2MB的數據,從另一個被感染的主機竊取了14.1MB的數據,時間是15:00-16:00PM。由于沒有上傳數據,其他2個域名的流量一直保持平穩,大約每小時4KB和16KB。
根據流量分析,監控網絡中的大多數主機不知道惡意軟件域,并與C&C服務器通信,除了受感染的主機。另一個原因是,感染宿主的心跳包很小,而且感染宿主并不總是在網上。大多數惡意軟件都是為了特定目的而竊取信息。在受感染的計算機中有許多文件,我們對惡意網絡流量的研究表明,攻擊者更喜歡從受感染的計算機竊取辦公文檔,比如doc、xls和pdf。攻擊者還喜歡上傳諸如WinRAR之類的壓縮工具來打包一些文檔文件。
5、建立檢測模型
5.1構建訓練數據集
訓練數據集在機器學習算法中起著重要的作用[25]。我們的目標是訓練一個分類器,它可以識別用于制作惡意軟件C&C服務器的域,并訓練一個聲譽函數,它可以判斷一個IP地址是否被惡意軟件感染。
為此,我們收集了大約1000個用于制作惡意軟件C&C服務器的域,并收集了1000個良性域來構建訓練數據集。我們正在討論的訓練集中的這些惡意域是用于制作惡意軟件的C&C服務器域,不包括惡意流量或DGA(域生成算法)域。我們從malwaredomains.com [26], VRT規則集[18],apt.securelist.com[24]等收集惡意軟件C&C服務器域。不同于Notos[9]和EXPOSURE[7],我們充分利用了在網絡中部署的“病毒郵件檢測系統”,并從數百個惡意軟件樣本中提取了數百個惡意域名。將病毒郵件發送到特定的目標,并附帶帶有漏洞的文檔和特洛伊木馬程序,已經成為APT攻擊中最重要的攻擊載體之一[27]。
我們系統的訓練期是前四個星期。在這四個星期的時間里,惡意軟件C&C領域的“基于時間的行為”可以被更好的觀察。在最初的4個星期里,我們在一個具有不同價值的大型地方研究機構網絡進行試驗,我們還在網絡中標記了大約500個惡意域名和超過200個受感染的機器,通過人工分析網絡連接到每個可疑的C&C服務器域,并對網絡中每個受感染的主機進行人工驗證。我們在構建惡意域名列表和感染主機列表時是保守的。我們在給域名貼上惡意的標簽之前,先進行初步檢查,IP地址是被感染的,然后用在我們的訓練設備上,每一種感染都通過現場檢查和人工驗證通過研究機構的網絡管理員的合作來確認。我們的訓練數據集里的1000個良性域是從Alexa top 1000域收集的[28]。
5.2惡意DNS檢測器分類器。
惡意DNS檢測器的分類器采用J48決策樹算法。J48決策樹是基于C4.5算法的,它已經被證明有效地分類了EXPOSURE的良性域和惡意域[7]。J48決策樹分類器是在訓練期間建立的。每個節點都在檢查某個屬性的狀態。這棵樹的每一根樹枝都代表了這項研究的結果。
5.3信譽引擎
我們系統的信譽引擎(參見圖3)負責檢測具有IP地址i的網絡內部的主機是否具有類似于受感染的主機的行為。它計算一個IP地址的信譽評分。聲譽評分在0和1之間。得分0代表低信譽(意味著惡意軟件感染),得分1代表高聲譽(它意味著沒有被感染)。我們將這個聲譽函數作為統計分類器來實現。
我們使用了三個模塊,分別是惡意DNS檢測器模塊、基于簽名的檢測器模塊和基于異常的檢測器模塊,分別計算三個輸出向量MD(ip i)、SD(ip i)和AD(ip i)。在計算了向量MD(ip i)、SD(ip i)和AD(ip i)之后,這三個特征向量將被串聯成一個特征向量V(ip i)。V(ip i)將被輸入到訓練有素的聲譽函數中。信譽函數負責計算分數S = f(ip i)。S在0和1之間變化。結果0代表低信譽,這意味著惡意軟件被感染。結果1代表較高的聲譽,意味著沒有感染。較低的價值代表較低的聲譽。聲譽函數使用數據集 L = {(V(ip i )), y i } i=1..n。如果ip i是被確認的感染宿主,y i = 0,否則y i = 1。
6、評價
我們的實驗是在一個大型的當地研究所的網絡上進行的,持續了8個星期。注意,在兩個月的實驗期間,試驗的前四個星期是訓練期,最后四周是測試。這個大型的地方機構網絡是一種具有高價值信息的網絡,它往往受到高級持續威脅攻擊者的攻擊。該網絡在邊緣有一個專業的流量監控設備,可以監控大量的入站和出站流量,包括DNS流量和C&C服務器流量。在兩個月的實驗期間,大型的本地研究所網絡擁有超過3萬名用戶,我們監測了大約4億個DNS查詢。
如果不部署任何過濾器,記錄和分析大量的流量是不可行的。因此,使用兩個過濾器減少了DNS流量。第一個過濾器是白色列表中最流行的域。Alexa的前1000個站點[28]和所有的都有相同的著名的2LD或3LD域被收集到白名單中。通過部署第一個過濾器,可以減少20%的監控流量。第二個部署過濾器是在我們觀察的網絡中被超過1000個主機查詢的域。在實驗的前3天,我們記錄并通過網絡中查詢主機的數量對域進行統計。與惡意的flux域和DGA域不同,在APT攻擊中精心設計的惡意軟件的C&C服務器域很少被用于太多的受感染的機器。通過部署兩個過濾器,可以減少85%的流量。第二個部署過濾器使記錄和分析流量變得可行。
專業的流量監控設備可以通過“源IP地址”、“目的地IP地址”、“源端口”或“目的端口”等規則為我們提供監控流量。在實驗期間,我們可以將可疑的C&C服務器IP作為“源IP地址”和“目標IP地址”的規則提交給監控設備。因此,我們的系統應該記錄和分析的C&C服務器流量很小。
6.1評價分類器和信譽函數。
為了評估我們的“惡意DNS分類器”和“信譽函數”的真實陽性率和假陽性率,我們用10倍交叉驗證和66%的分割率進行了訓練數據集的評估實驗。66%比例分割意味著66%的訓練數據集用于訓練,其余34%是用于檢查。表2展示了這個評估實驗的結果。10倍交叉驗證和66%的分割評價實驗表明,我們的惡意DNS分類器和信譽函數的真實陽性率約為96%,假陽性率約為1.5%。
我們的系統的最終目的是檢測未知的惡意軟件C&C域和精心制作的惡意軟件感染。評估必須顯示它能檢測到未知的惡意軟件C&C域以及在訓練數據中不存在的惡意軟件感染,為了達到這個目的,我們使用了過去四周的實驗數據。
因為這個實驗是在一個大型的地方機構網絡上進行的,所以要用真實的數據集來確定真實的正確率是很有挑戰性的。為了建立一個基本的事實,在過去的四個星期里,我們從VRT規則集[18]中收集了900個域名[0],在這個網絡中部署“病毒郵件檢測器”中電子郵件附件的惡意軟件樣本[26]。所有收集的域在之前的訓練數據集中都沒有使用過。在過去四個星期內,在網絡中被感染的機器請求了900個收集的區域中的426個。其余的474個域沒有被查詢。在實驗中,在426個域名中,有408個域名被IDnS檢測為惡意軟件C&C域名。實際陽性率為95.8%。通過對已知惡意域名的C&C服務器網絡流量的人工分析,以及對可疑感染主機的現場檢查,發現197臺機器被感染。在這些設備中,有188臺機器被檢測到被IDnS感染。聲譽函數的真實陽性率約為95.4%。
在過去4周的實驗期間,459個域和227個機器被檢測到被IDnS的惡意和感染。如上所述,我們通過人工網絡流量分析、現場檢查和驗證確認了所有的惡意領域和感染。結果顯示,被識別的惡意軟件C&C域的假陽性率約為2.9%,而被識別的受感染機器的假陽性率約為3.4%。
6.2對系統可持續性的評價
我們對已經識別的200c&c服務器的流量進行了統計,并在表3中示出一天的結果。我們還發現,單個C&C服務器的流量每天可能會發生很大的變化,但是對于大量的C&C服務器來說,總的流量和流量的比例并沒有太大的變化。它說明了C&C服務器IP在正常情況下每天的流量較小,而該系統的網絡流量分析儀只需要分析較少的流量。
如果不知道哪個IP地址是可疑的C&C服務器,大多數當前基于網絡的入侵檢測系統都需要監視和分析所有的流量。對于基于簽名的IDS,很難實時處理大型企業和ISP網絡的大量流量。對于基于異常的IDS,記錄和分析大量的流量是不可行的。本文的安全方法可以大大減少需要記錄和分析的網絡流量。它可以提高系統的可持續性。
7、與以前的工作相比較
7.1EXPOSURE:使用被動DNS分析發現惡意域名
EXPOSURE[7]是一種使用被動的DNS分析來檢測涉及到惡意行為的域的系統。作者還提出了15個行為特征,用于識別惡意域名。對于檢測僵尸網絡,對其特征的解釋。提取的結果表明,EXPOSURE的重點是利用惡意通量和域生成算法(DGA)檢測僵尸網絡。
在“基于時間的特性集”中,提出了“每日相似性”的特征,以檢測“每天同一時間間隔內請求計數的增加或減少”。這個特性是基于僵尸網絡經常使用的惡意流量服務而確定的[16]。從域中提取特征“短生命”,因為他們認為每個bot都可以使用域生成算法(DGA)。DGA域僅在短時間內使用[7]。
在“TTL價值的特征集”中,基于Conficker蠕蟲追蹤一周,提出了“不同TTL值”和“TTL變化數”的特征。Conficker是一個使用DGA的惡意軟件。他們提出的功能不能用于在APT攻擊中探測精心設計的遠程訪問工具(RAT),因為APT攻擊者很少使用域通量技術或DGA。
在“基于域名的特性集”中,“數字字符%”,“LMS(最長的有意義的子字符串)長度的百分比”顯示的EXPOSURE并不適合于檢測APT惡意軟件。APT攻擊中使用的域,無論動態域名(DDNS)還是沒有,都是由攻擊者手動注冊的,它們沒有定義的暴露的特性。
7.2在DNS流量中通過監視組活動來檢測僵尸網絡
[17]提出了一種通過監測群活動DNS流量來檢測僵尸網絡的新機制。他們專注于檢測一組bot,被稱為僵尸網絡,由C&C服務器遠程控制,可用于發送垃圾郵件、發起DDoS攻擊等。作者定義了“群體活動”以檢測僵尸網絡。根據判斷僵尸網絡域的機器人數量是固定的,該特征被識別出來。組活動是由多個分布式機器人發送的同步DNS查詢形成的。大多數合法域名都是連續查詢,但不是同時查詢。
這種基于異常的檢測機制可以檢測到未知或未知的僵尸網絡。但是這種方法有內在的局限性,它只能檢測到僵尸網絡由大量的bot組成。為了減少被檢測到的風險,高級攻擊者很少使用相同的C&C服務器和域來遠程控制大量受損害的終端用戶機器。
8、討論
本節討論了IDnS的優點和局限性。首先執行惡意的DNS分析,以找出在我們的方法中命令和控制服務器的可疑IP地址。只通過網絡流量特性分析,IDS有時無法準確判斷主機是否被感染。但結合惡意DNS流量分析,IDS可以顯著提高檢測精度。惡意的流量特性發生在流量到可疑的惡意IP確實有很低的聲譽的正常流量。這種方法的另一個優點是它可以提高系統的可持續性。對于一個大而高速的網絡來說,記錄和處理所有入站和出站的流量是非常困難的。這種方法可以大大減少需要記錄和分析的網絡流量。主要的限制是,IDnS不擅長檢測不依賴于域的惡意軟件感染,比如木馬直接使用IP地址來定位命令和控制服務器。經過長時間的檢測,我們收集了許多命令和控制服務器的IP地址。通過分析C&C服務器的流量,這也可以幫助檢測不依賴于域的惡意軟件感染的部分。此外,該系統的管理員還可以提供他們想要集中于系統的流量分析器的IP地址。