劉 冰 楊 學 楊 琪 李雪妮 馬永征
(中國互聯(lián)網絡信息中心 北京 100190)
隨著大數(shù)據、互聯(lián)網的不斷發(fā)展,域名(Domain Name)、IP與自治系統(tǒng)號碼(ASN)等互聯(lián)網基礎資源的規(guī)模和監(jiān)管難度不斷增大。伴隨網站承載形式的日趨多元化和互聯(lián)網技術的蓬勃發(fā)展,各類網絡攻擊方法[1]層出不窮,網絡空間治理的難度日益增加。不良網絡應用是各種網絡攻擊的關鍵組成部分,如釣魚網站和僵尸網絡等[2],同時也是各類涉賭、涉黃、涉暴網站的主要載體,威脅著網絡空間的安全。因此,及時發(fā)現(xiàn)和鑒別這些不良網絡應用,并阻止利用其進行網絡攻擊的各類技術手段對維護網絡空間的安全與穩(wěn)定是至關重要的。近年來,不良網絡應用的檢測與發(fā)現(xiàn)越來越受到人們的關注。
目前,針對不良網絡應用檢測與發(fā)現(xiàn)的方法不盡相同,主要是通過特征提取的方式,獲取網站文本數(shù)據特征或其他多維度的特征,一般涉及的特征大致分為兩種:(1) 通過爬取網站數(shù)據,根據內容進行文本分析,提取文本特征[3];(2) 從網站域名注冊和運維的角度分析域名系統(tǒng)(Domain Name System,DNS)相關數(shù)據并提取相關特征[4-7]。這種基于特征的檢測途徑都需要進行基于機器學習算法的分類識別與檢測,通過將這些特征標記成訓練數(shù)據集并構建分類器來區(qū)分不良域名和正常域名。這類方法的主要問題是許多局部特征(比如域名本地屬性特征和記錄類型特征等)通常并不健壯,攻擊者可以很容易地改變這些特征來逃避檢測,從而并不會對攻擊能力造成影響。例如,如果將域名的緩存時間(Time To Live,TTL)設定為檢測目標,那么攻擊者可以簡單地通過更改DNS查詢緩存的時間來干擾檢測結果從而達到攻擊目的,其根本原因在于現(xiàn)有工作中提取的許多特征是基于單個域名或主機的局部特征。因此,攻擊者通過合理化地更改這些特征,很容易使不良網絡應用不符合分類器中指定的特征模式,從而影響分類檢測算法的效果。
針對此現(xiàn)象,Khalil等[8]提出了一種基于圖數(shù)據分析的不良網絡應用快速發(fā)現(xiàn)算法。該算法可作為機器學習分類方法的補充算法,利用域名與IP、IP與ASN、域名與域名之間的全局關系解決域名局部特征不健壯問題,提升算法穩(wěn)健性,并通過一種簡單的度量方法來反映攻擊者控制的資源之間的內在關聯(lián),達到利用少量已知不良域名快速關聯(lián)和發(fā)現(xiàn)大量潛在不良網絡應用的目的,降低種子數(shù)據成本,提高不良網絡應用發(fā)現(xiàn)的可擴展性。但是,該算法在計算惡意得分時僅考慮遍歷域名關系圖譜中的所有連通圖,忽略了排除在連通圖之外的那些與種子域名有密切關聯(lián)的域名,因此該算法更適用于連通圖涵蓋域名較多的情況,對于連通圖整體規(guī)模較小且有較多節(jié)點散落在連通圖外的情況表現(xiàn)不佳。因此,本文針對該算法進行了改進和優(yōu)化,補充對非連通圖內域名節(jié)點惡意得分的計算方法,擴大了種子域名的作用范圍,對不在連通圖中但與種子域名同樣有密切關聯(lián)的域名進行了惡意得分的補充計算,同時在種子獲取方式和基于圖路徑的算法性能方面做了優(yōu)化處理。為了評估本文算法的有效性,我們進行了大量的實驗,通過主動采集的.CN域名DNS解析數(shù)據和從公開來源獲取的有效數(shù)據,仔細權衡不同參數(shù)配置對真陽率和假陽率的影響來評估本文算法的實用性和有效性。實驗結果表明,本文算法在保持較低假陽率(小于0.5%)的同時,可以獲得較高的真陽率(大于99%)。此外,即使使用少量已知不良種子域名(數(shù)百個),本文算法也可以發(fā)現(xiàn)大量潛在不良網絡應用所使用的域名(上萬個),因而具有較好的大規(guī)模工程化實際應用的前景。
本文的實驗數(shù)據主要來源于國家互聯(lián)網基礎資源大數(shù)據(服務)平臺[9]以及來源于MaxMind開源數(shù)據庫GeoLite2[10]的ASN數(shù)據。
國家互聯(lián)網基礎資源大數(shù)據(服務)平臺[9]在互聯(lián)網基礎資源數(shù)據的采集和清洗方面具備面向全球互聯(lián)網范圍的主動式數(shù)據采集和探測能力,可批量采集結構化業(yè)務數(shù)據,批量導入半結構化文件數(shù)據,實時爬取非結構化網絡數(shù)據,還可以實時采集被動式DNS數(shù)據(解析日志),形成了大數(shù)據平臺的一體化數(shù)據采集及清洗能力。其主動式數(shù)據采集系統(tǒng)已具備覆蓋2億域名、超過100萬臺DNS服務器的深度采集和探測能力,能高效地采集并結構化域名DNS解析數(shù)據(以反映域名與IP對應關系的A記錄為主,另有CNAME記錄、MX記錄等其他DNS解析數(shù)據),本文中應用的是此域名A記錄解析數(shù)據庫。
本文使用了國家互聯(lián)網基礎資源大數(shù)據(服務)平臺2019年7月采集的域名A記錄解析數(shù)據,域名A記錄總數(shù)為3.76億條,其中異常數(shù)據主要包括四種情況:查詢返回服務器異常SERVFAIL、查詢超時、域名不存在和域名無A記錄。對異常數(shù)據進行清洗過濾后,剩余A記錄總數(shù)為2.97億條(含所有.CN和部分.COM等頂級域數(shù)據)。本文只選取了.CN域名的A記錄解析數(shù)據,過濾了其他頂級域的數(shù)據,共計1 591萬個.CN域名節(jié)點、219萬個IP節(jié)點,以及1 683萬條域名解析A記錄(域名-IP邊)。另外,本文采用GeoLite2開源數(shù)據庫的ASN數(shù)據(選用2019年3月26日的數(shù)據)進行IP與ASN的關聯(lián)處理,并應用開源圖數(shù)據庫HugeGraph[11]進行圖數(shù)據存儲??梢暬植繄D結構如圖1所示,其中已在域名節(jié)點處標注上對應域名信息,未標注的節(jié)點是與域名關聯(lián)的IP節(jié)點,由圖1可知,域名與IP存在著多對多的關聯(lián)關系。
圖1 域名解析圖(局部)
Khalil等[8]提出的算法中,核心是發(fā)現(xiàn)和分析域名之間的全局關聯(lián)關系而不是局限于對域名局部特征的分析。我們通過主動采集的DNS解析數(shù)據和ASN數(shù)據構建出域名、IP和ASN之間的全局關聯(lián)關系,當然也可以通過被動DNS數(shù)據或集成其他數(shù)據源(如DNS日志和WHOIS記錄等)來增強此關聯(lián)關系的可信度。雖然DNS記錄的很多特征可以通過不同方式更改,但是攻擊者想要達到攻擊目的就必須要把不良網絡應用映射到他們可以控制或可以訪問的IP上[12]。一般情況下,攻擊者會通過頻繁注冊新域名來規(guī)避檢測,不良網絡應用之間也因此建立起了關聯(lián)。例如,在針對反病毒威脅生態(tài)系統(tǒng)的縱向分析[13]中顯示,這些惡意行為中使用的不良網絡應用隨著時間的推移在整個互聯(lián)網空間中大規(guī)模移動,它們之間共享著許多不同的特征。因此,多個不良網絡應用很有可能最終被映射在相同的IP上,同樣,多個不同IP也很可能關聯(lián)著相同的不良網絡應用。為了解除它們之間的這種關系,攻擊者只能盡可能地減少每個不良網絡應用指向的IP數(shù)量以及每個IP主機關聯(lián)不良網絡應用的數(shù)量,但是這會大大限制攻擊者對資源的利用,同時大幅提升了管理成本,很大程度地折損了攻擊者的利益。因此,我們認為基于域名和IP之間的關聯(lián)關系可以提供一種可靠的方法來研究攻擊者是如何組織和部署惡意資源的,并進一步幫助我們利用有限的已知不良網絡應用去大規(guī)模地檢測和發(fā)現(xiàn)潛在的不良網絡應用。
由于與已知惡意域名有強烈關聯(lián)的域名很可能也是惡意的,因此,給定一組已知的不良域名列表作為種子域名,我們可以根據其與待測域名的關聯(lián)強度來判斷這些域名是否為潛在不良網絡應用所使用,但核心問題是如何定義域名之間的這種關聯(lián)強度。Khalil等[8]提出通過一種簡單直接的度量方法來反映不良域名之間的內在關聯(lián),如果兩個域名都指向相同的IP,則將它們建立連接,構建無向加權圖。但其實很多完全沒有任何關聯(lián)的域名也可以使用相同的IP(比如在虛擬主機場景中)。因此,可以先將IP節(jié)點按度排序,將度值最高的少量節(jié)點作為共享IP池排除,然后再基于上述關聯(lián)構建反映域名之間全局相關性的加權圖,從而不局限于只針對主機或域名本地局部特征所做的分析。當然,在互聯(lián)網資源的合法管理下,有些域名與不良種子域名之間也會存在著一定的關聯(lián),但并不能證明這些域名是惡意的。為了更準確發(fā)現(xiàn)不良網絡應用,該算法提出了一種基于路徑的機制,根據每個域名與已知不良種子域名的拓撲連接來獲得其惡意得分,并設定一個惡意得分閾值,若超過該閾值,則認為是潛在不良網絡應用所使用的域名。
本文在Khalil等[8]提出的算法基礎上進行了以下幾個方面的優(yōu)化:1) 優(yōu)化種子域名的獲取方式。在原有利用VirusTotal API[14]遍歷域名關系圖中所有域名并將命中黑名單的域名作為種子域名的基礎上通過分析種子域名度分布特征,將域名解析圖中的域名節(jié)點按度值排序,然后取少量TopN的域名節(jié)點作為種子域名的補充。2) 優(yōu)化計算兩個域名間關聯(lián)強度corr的算法。原有算法在計算corr時,針對所有與種子集合有交集的連通圖中每個域名,需要分別計算其與各個種子域名之間所有路徑中最短路徑上經過的所有邊的權值的乘積,再取其中的最大值作為corr的值。而優(yōu)化后算法復雜度只是一個Dijkstra算法的復雜度即O(|E|+|D|log|D|),結合NetworkX和Spark GraphFrame工具,該優(yōu)化算法在本文數(shù)據集上(域名總數(shù)千萬級)的計算時間由1天縮短至10分鐘左右,時間縮短了99%以上,大幅提升了算法性能。3)補充對非連通圖內域名節(jié)點惡意得分的計算方法,擴大了種子域名的作用范圍,對不在連通圖中但與種子域名同樣有密切關聯(lián)的域名進行了惡意得分的補充計算,大幅提升了真陽率。
2.1.1排除公共IP
Khalil等[8]提出如果兩個域名解析到許多相同的IP上,那么這兩個域名之間極有可能存在很強的關聯(lián)。這種關聯(lián)很有可能表明它們?yōu)橥唤M織所控制。例如,攻擊者可能將釣魚網站部署到其所控制的一組僵尸程序中,用一種或多種傳播手段,將大量主機感染僵尸程序,從而在控制者和被感染主機之間形成一對多控制的僵尸網絡[15],而這些釣魚網站將被關聯(lián)到攻擊者所控制的主機資源中,關聯(lián)到許多相同的IP上。
當然,很多不同的域名也可以合理共享一組IP。例如,為了負載均衡,一個組織可以在一組服務器中同時托管該組織下的幾個不同域名。但這不影響我們的結論,因為這些域名仍然還是由同一組織所控制的。如果其中一個域名是惡意的,那么托管在同一服務器上的其他域名也可能是惡意的,因此這種情況下我們的結論依然成立。但在云服務、Web托管和內容分發(fā)網絡(Content Delivery Network,CDN)中,毫無關聯(lián)的域名會解析到相同的公共IP池中。這種情況下,共享IP的兩個不同域名中當一個域名為不良網絡應用所使用時,并不能說明另一個域名也很可能是惡意的??紤]到互聯(lián)網上有大量的服務提供商,列出所有的公共IP池是不切實際的。因此,針對此場景的干擾,可以通過一個排除公共IP池地址的方案,簡單直接地過濾掉大部分公共IP地址,減輕其對算法的影響。
針對我們獲取到的域名解析A記錄數(shù)據,結構化“域名-IP”關聯(lián)數(shù)據,利用Spark GraphFrame圖處理庫建立反映域名與IP解析關系的圖譜(Domain Name Resolution Graph),下文簡稱RG原始圖。如果一個IP關聯(lián)了大量的域名,那么它很可能是一個公共IP地址,因此我們排除公共IP時對RG原始圖中所有IP節(jié)點計算度分布情況(如圖2所示),分析圖數(shù)據確定度閾值,將度值大于該閾值(可配置)的IP認為是公共IP地址進行過濾,并從RG原始圖中刪除,得到新的域名解析關系圖(下文簡稱RG圖)。
圖2 IP節(jié)點度分布情況
本文中閾值選擇100,即在RG原始圖中過濾掉IP節(jié)點度大于100的點(累計9 103個IP節(jié)點),認為其為公共IP池中的IP。排除后,RG圖中剩余1 591萬個域名節(jié)點、218萬個IP節(jié)點及883萬條邊,可以看出本文的數(shù)據集節(jié)點之間關聯(lián)關系總數(shù)少于節(jié)點數(shù),節(jié)點之間具有一定的關聯(lián)關系但并不緊密,經實驗驗證,Khalil等[8]提出的算法在本數(shù)據集上表現(xiàn)效果不佳,經過本文算法改進后得到了較好的效果。
2.1.2構建域名關系圖
Khalil等[8]提出,在構建域名關系圖時,關鍵在于如何定義域名與域名之間的關聯(lián)強度,以及如何確定與已知不良網絡應用沒有直接關聯(lián)關系的域名的惡意程度。一般來說,如果兩個域名解析到同一個IP上,那么它們就存在一定的關聯(lián)。顯然,如果兩個域名共享的IP越多,或者兩個IP關聯(lián)的相同域名越多,那么它們之間存在的關聯(lián)關系就可能越強。
由于兩個域名解析的相同IP越多,它們的關聯(lián)越強,權重越大。當兩個域名解析的相同IP數(shù)量足夠多時,關聯(lián)足夠強,此時添加額外的相同IP對關聯(lián)程度不會產生太大的影響,而當IP數(shù)量較少時,增加額外的相同IP對關聯(lián)強度的影響較大,因此對關聯(lián)程度的影響也較大。針對域名之間的關聯(lián)關系定義如下:2.1.1章節(jié)得到的RG圖是域名與IP之間的無向關系圖,對該圖中任意兩個有相同IP交集的域名d1和d2求權重,定義如式(1)所示。
對任意不相同的兩個域名,計算其IP交集的個數(shù)|ip(d1)∩ip(d2)|,設置閾值t,過濾掉IP交集個數(shù)小于t的域名。將所有滿足條件的域名d1和d2以及它們之間的邊(權重ω)加入域名關系圖(Domain Name Graph),下文簡稱DG圖,構建得到該無向加權圖。當兩個域名d1和d2不共享任何IP時,根據式(1)可知ω(d1,d2)=0。因此,當d1≠d2時,ω(d1,d2)取值范圍在0至1之間。
2.1.3關聯(lián)ASN信息
為了進一步增強域名關聯(lián)關系的有效性,降低公共IP池地址對算法的影響,Khalil等[8]提出在構建域名關系DG圖計算邊權值時,考慮到共享IP的多樣性,可進行ASN信息的關聯(lián),而不僅僅是計算兩個域名共享IP的數(shù)量。雖然一個服務提供商可以將兩個不相關的域名同時映射到公共IP池中,但它們同時映射到兩個或多個服務提供商公共IP池中的可能性很小。因此,本文利用IP所屬的ASN信息來近似地識別來自不同服務提供商的IP。當然,服務提供商有可能擁有來自于多個ASN的IP,但即使兩個不相關的域名僅屬于單個服務提供商,它們也仍然可能是有關聯(lián)的。但依據實驗結果顯示,這種情況是罕見的,對本文算法有效性的影響有限。除了關聯(lián)ASN外,還可以使用WHOIS的IP記錄來識別屬于同一提供商的IP。但眾所周知,WHOIS記錄因為缺乏標準格式和異構的信息源往往存在噪聲,并且信息相互沖突。綜上所述,本文選擇在構建域名關系圖時引入ASN信息,對式(1)進行改進以更有效地映射域名與域名之間的關聯(lián)強度。
具體來說,給定一個IP集合I,用asn(I)表示I中的所有IP所屬的ASN集合,定義了對域名關系圖中任意兩個不同域名d1和d2之間權值ω(d1,d2)的計算公式,其中,ip(d)表示域名d解析到的所有IP的集合,以此更新DG圖如式(2)所示。
(2)
利用域名、IP和ASN之間的關聯(lián)關系,通過式(2)計算域名之間邊的權值,并構建DG圖,示例如圖3所示,(a)為反映域名、IP和ASN之間關聯(lián)關系的域名解析圖,(b)為經過式(2)處理后建立起的反映域名與域名之間關聯(lián)關系的無向加權圖。
(a) 域名解析圖(RG圖)
2.2.1獲取已知不良網絡應用所使用的域名
本文一個重要思路是用盡可能少的種子域名發(fā)現(xiàn)盡可能多的不良網絡應用,而所謂“種子”就是已經確定為不良網絡應用所使用的域名。通過考察多個不同渠道獲取的不良黑名單(包括VirusTotal API、Bambenek Consulting、Xsec-ip開源庫、360 netlab DGA數(shù)據庫、Badips等),考慮到黑名單涵蓋范圍、更新頻率、數(shù)據獲取方式及穩(wěn)定性等方面的因素,本文選擇利用VirusTotal API查詢DG圖中所有域名,若域名命中任意一個黑名單,則認為其為不良種子域名。將獲取到的已知不良域名列表定義為S集合,取較小比例(5%~30%)作為種子域名供快速發(fā)現(xiàn)不良網絡應用,剩余大部分不良網絡應用供算法評估(計算假陽率)使用。
2.2.2補充種子域名數(shù)據
由于VirusTotal域名檢測網站核查的惡意范圍有限,且數(shù)據集中域名關聯(lián)程度有限,為加大種子域名在檢測不良網絡應用時發(fā)揮的作用,本文對已獲取到的惡意種子域名在域名解析圖(RG圖)中的度分布情況進行了分析。如圖4所示,RG圖中度值較高的域名數(shù)量較少,度值較低的域名數(shù)量較多,符合冪律分布現(xiàn)象,且已知不良網絡應用所使用的域名的度值分布集中在虛線框區(qū)域,即已知不良域名具有度值較高的特點。因此,本文提出種子域名提取的補充算法,將RG圖中的域名節(jié)點按度值排序取TOPN(N值可配置)作為補充種子域名合并到種子數(shù)據列表中,以增加算法的普適性,提升算法在發(fā)現(xiàn)潛在不良網絡應用時的命中率。
圖4 種子域名(已知不良)度分布情況
利用基于圖路徑的算法,通過計算與種子域名密切關聯(lián)的各域名惡意得分的方式來評估和發(fā)現(xiàn)潛在不良網絡應用。Khalil等[8]認為DG圖是由多個連通圖組成,在計算可疑域名的惡意得分時,首先遍歷DG圖得到所有連通圖的集合,再篩選出與種子集合S有交集的連通子圖,對該連通子圖中的所有域名d計算其惡意得分mal(d,S),若惡意得分超過閾值m,則將該域名d加入不良集合。但這樣忽略了連通圖之外的域名與種子域名同樣存在有密切關聯(lián)的可能,因此,本文在此基礎上提出對連通圖外域名節(jié)點的惡意得分的計算方法。
具體算法如下:
1) 遍歷DG圖中所有連通圖,若與種子域名集合S有交集,則遍歷該連通圖中的任一域名d:
(2) 利用基于圖路徑的機制定義反映域名d與種子域名Si之間關聯(lián)強度corr(d,Si)的計算方法:通過Dijkstra算法計算加權圖中域名d與所有種子域名Si之間所有路徑中最短路徑的權值ω(d,Si),即兩個節(jié)點之間關聯(lián)最強的一條路徑上的權值之和,對該數(shù)據取倒數(shù)并進行離差標準化處理,歸一化至[0,1],即corr(d,Si)值越大表示關聯(lián)強度越大,且該值取值范圍在0至1之間。
(3) 將域名d到S集合中所有種子Si的關聯(lián)強度corr(d,Si)列表進行倒序排序,用S1表示與域名d關聯(lián)強度最大的種子,則corr(d,S1)表示該種子與域名d之間的關聯(lián)強度,用mal(d,S)表示域名d的惡意得分,則計算公式如下(其中n表示種子數(shù)):
mal(d,S)=corr(s1,d)+
2) 本文提出對于連通圖之外的域名節(jié)點,從DG圖中分析獲取所有與種子數(shù)據有直接關聯(lián)的邊,按域名分組,將其與該域名有關聯(lián)的所有種子邊的權值倒序排序作為corr的值,并按式(3)計算其惡意得分,并補充到結果中。
通過三大評價指標(真陽率、假陽率和發(fā)現(xiàn)數(shù)量)對算法效果進行評估,具體指標含義定義如下:
真陽率(True Positive Rate,TPR):實際為不良域名并被預測為不良域名的比例。將2.2節(jié)獲取的種子域名隨機取一定比例作為算法中使用的種子集合A,剩余大比例種子集合B作為真陽率的驗證數(shù)據集,定義真陽率P計算方法如下:
假陽率(False Positive Rate,F(xiàn)PR):實際為正常域名但被預測為不良域名的比例。在計算假陽率時需要預先得到一個已知良性域名的白名單,本文獲取白名單的方式是從Alexa和Domcop網站取域名排名TOP 2萬的域名作為白名單。定義假陽率F的計算方法如下:
(5)
發(fā)現(xiàn)數(shù)量:通過少量已知種子域名快速發(fā)現(xiàn)的疑似不良網絡應用所使用的域名的數(shù)量。
如前文所述,本文實驗數(shù)據集中的域名通過白名單篩選出已知良性域名,并通過黑名單方式標注出已知不良網絡應用所使用的域名,具體分布情況如表1所示。
表1 數(shù)據集域名屬性分布情況
3.1.1種子數(shù)量取值的影響
由于本文算法的核心是通過盡可能少的種子域名快速發(fā)現(xiàn)盡可能多的不良網絡應用所使用的域名,實驗中將已知不良域名數(shù)據按一定比例分為兩部分,一部分作為種子域名數(shù)據用于發(fā)現(xiàn)大量疑似不良域名;另一部分作為驗證數(shù)據集,用于計算真陽率。為進一步分析種子數(shù)量對真陽率和假陽率以及對不良域名發(fā)現(xiàn)數(shù)量的影響,本文將種子域名數(shù)量分別設置為已知不良域名總數(shù)的5%~50%,在種子域名數(shù)量的不同取值情況下分別預測得到的疑似不良域名,并統(tǒng)計其真陽率、假陽率和發(fā)現(xiàn)數(shù)量三個指標,如圖5和圖6所示。
圖5 種子數(shù)量對真陽率和假陽率的影響
圖6 種子數(shù)量對發(fā)現(xiàn)數(shù)量的影響
由實驗結果整體來看,由圖5可知,不同種子域名數(shù)量的取值對真陽率和假陽率的影響不大,當惡意得分閾值相同時,種子域名數(shù)量越大得到的真陽率越大但假陽率也越大,綜合來看當種子域名數(shù)量取已知不良域名總數(shù)的10%~30%時,均可得到較大的真陽率(大于99%)和較小的假陽率(小于0.5%)。同時,由圖6可知,種子域名數(shù)量對不良網絡應用發(fā)現(xiàn)數(shù)量有一定的影響且符合冪律分布,當種子數(shù)量取值為種子總數(shù)的10%~50%之間時對算法影響差別不大,均可以獲得較高的發(fā)現(xiàn)數(shù)量(1.5萬左右)。因此,我們可以得出結論,即使使用數(shù)百個已知惡意種子域名,本文算法也可以發(fā)現(xiàn)上萬個大量的潛在不良網絡應用。
3.1.2惡意得分閾值的影響
本文在種子數(shù)量相同(取已知不良域名總數(shù)的10%)的情況下,分別設置惡意得分閾值在[0.50,0.75]之間取值(取值間隔為0.05,共6組取值),計算每組實驗下的真陽率和假陽率,考察惡意得分閾值的取值對算法效果的影響。由于種子域名是隨機選取的,固定種子數(shù)量的情況下,選取的種子依然不同,為保證實驗的可靠性,我們在每組惡意得分閾值的設置下都隨機進行6次實驗(即每條折線上有6個數(shù)值結果)。如圖7所示,當惡意得分閾值大于0.7時,可以獲得極小的假陽率(小于0.4%)但真陽率相對較小(小于85%);而當惡意得分閾值的取值在[0.50,0.65]之間時,可以在得到極大的真陽率(大于99%)的同時獲得較小的假陽率(小于0.5%),且在此區(qū)間內時惡意得分的影響不大。
圖7 不良得分對算法效果的影響
綜合上述的實驗結論可知,隨著種子數(shù)量的增加,真陽率越來越大但假陽率也隨之增大,同時,隨著惡意得分閾值的增大,假陽率越來越小但真陽率也隨之明顯減小。為取得最佳算法結果即獲取最大真陽率和最小假陽率,當惡意得分閾值取值在[0.55,0.65]之間且種子數(shù)量在種子總數(shù)的[10%,30%]之間時,可以獲得算法的最佳效果。
如第2節(jié)所述,本文對Khalil等[8]提出的算法進行了優(yōu)化,經實驗驗證,算法效果明顯提升。本文在固定惡意得分取值為0.5且種子數(shù)量為已知不良域名總數(shù)的10%的情況下,分別對優(yōu)化前和優(yōu)化后的算法進行6組實驗(每組隨機取固定數(shù)量的種子域名),計算其真陽率、假陽率和發(fā)現(xiàn)不良域名數(shù)量,得到圖8。圖8中兩條折線分別代表了本文算法與Khalil等[8]提出的算法對比的真陽率和假陽率的變化情況,顯然本文算法的真陽率得到明顯提升的同時,假陽率也保持在小于0.7%的較小范圍內,且受隨機種子的選擇影響波動極小,而優(yōu)化前算法在本數(shù)據集中效果不佳且受隨機種子的選擇影響波動較大。圖8中的柱狀圖顯示本文算法在不同隨機種子的6組實驗中發(fā)現(xiàn)疑似不良網絡應用的數(shù)量與原算法的對比情況,可以明顯看出算法優(yōu)化前只能快速發(fā)現(xiàn)小于1 000個左右域名,而算法優(yōu)化后可以檢測到1.5萬個左右疑似不良網絡應用所使用的域名。
圖8 算法優(yōu)化前后效果對比
本文提出一種基于圖數(shù)據分析的不良網絡應用快速發(fā)現(xiàn)的優(yōu)化算法,一方面能更加高效地快速發(fā)現(xiàn)疑似潛在不良網絡應用,另一方面能在獲得較低假陽率的同時確保得到極高的真陽率。算法具有普適性和較高的可擴展性,可以根據種子類型的不同(如賭博類、涉黃類、釣魚類、僵尸類等)而挖掘發(fā)現(xiàn)不同種類的疑似不良網絡應用,在不良網絡應用快速檢測和發(fā)現(xiàn)方面具有較好的實用價值和大規(guī)模工程化應用意義。盡管在本文中我們關注于利用域名、IP和ASN的全局關聯(lián)來發(fā)現(xiàn)潛在的不良網絡應用,但我們并不主張放棄現(xiàn)有工作中提出的局部特征,我們的目標是提供另一個維度來檢測和快速發(fā)現(xiàn)不良網絡應用,本文提出的方案可以與基于局部特征的算法集成起來進一步提高不良網絡應用發(fā)現(xiàn)算法的效果。例如,可以將每個域名根據過去研究工作中識別出的一些本地特征進行初始評分,然后再應用本文算法通過已知不良網絡應用作為種子快速發(fā)現(xiàn)潛在的大量未知不良網絡應用,為后續(xù)發(fā)現(xiàn)算法研究提供一個非常穩(wěn)健而準確的方案。同時,本文算法還可以與基于分類器的算法相結合,將分類器的輸出作為獲取種子域名的初始途徑,有效提高算法整體的準確率,為未來的深入研究工作提供理論和實踐基礎。