張斌,廖仁杰
(1.信息工程大學(xué)密碼工程學(xué)院,河南 鄭州 450001;2.河南省信息安全重點(diǎn)實(shí)驗(yàn)室,河南 鄭州 450001)
惡意域名通常采用IP-Flux、Domain-Flux 等技術(shù)動(dòng)態(tài)變換域名字符串構(gòu)成和IP 的映射關(guān)系,具有較強(qiáng)的欺騙性和隱蔽性[1-2],如何有效檢測(cè)惡意域名已成為網(wǎng)絡(luò)安全領(lǐng)域的研究熱點(diǎn)之一。
目前,基于域關(guān)聯(lián)信息的惡意域名檢測(cè)方法按提取關(guān)聯(lián)信息的不同分為三類。第一類是基于域名請(qǐng)求時(shí)間關(guān)聯(lián)的惡意域名檢測(cè)方法,如基于固定時(shí)間窗分析域名請(qǐng)求時(shí)間相似性的域名檢測(cè)方法[3-4]、基于同類別域名請(qǐng)求呈伴隨關(guān)系的域名檢測(cè)方法[5]等。此類檢測(cè)方法的出發(fā)點(diǎn)是同類別域名在請(qǐng)求時(shí)間上呈聚集出現(xiàn)的特點(diǎn),對(duì)并發(fā)訪問的惡意域名檢測(cè)效果較好,并能檢測(cè)大部分域名,檢測(cè)樣本覆蓋率較高,但易受主機(jī)產(chǎn)生的合法域名請(qǐng)求和觀測(cè)時(shí)間窗口大小設(shè)置的干擾,還需結(jié)合域名的其他信息以提高此類方法的穩(wěn)健性。第二類是基于置信度傳播(BP,belief propagation)算法[6]的惡意域名檢測(cè)方法。此類檢測(cè)方法基于圖模型挖掘域名之間的關(guān)聯(lián)關(guān)系,首先,提取域名系統(tǒng)(DNS,domain name system)流量中域名解析IP 地址、訪問域名主機(jī)等信息構(gòu)成圖模型,如域名-主機(jī)二部圖[7]、域名-IP地址二部圖[8-9]、域名傳播圖[10]、別名圖[11]等;然后結(jié)合已有黑白名單標(biāo)記圖中部分節(jié)點(diǎn),采用BP算法或圖聚類方法對(duì)圖中域名節(jié)點(diǎn)進(jìn)行標(biāo)記。此類方法基于圖中存在邊連接的域名節(jié)點(diǎn)具有同質(zhì)性的特點(diǎn)進(jìn)行節(jié)點(diǎn)標(biāo)記,可在已知標(biāo)簽數(shù)據(jù)較少的情況下對(duì)未知屬性域名節(jié)點(diǎn)進(jìn)行檢測(cè),但由于僅利用DNS 流量中單一類型域名信息構(gòu)成圖模型,導(dǎo)致域名信息利用率較低,檢測(cè)效果不佳。第三類是基于異質(zhì)信息網(wǎng)絡(luò)(HIN,heterogeneous information network)[12]的惡意域名檢測(cè)方法。此類檢測(cè)方法依據(jù)與惡意域名、攻擊者掌控IP 地址存在聯(lián)系的域名大概率為惡意域名的假設(shè),首先將DNS 流量中多種信息,如域名、IP 地址、訪問主機(jī)等映射為HIN中的節(jié)點(diǎn),然后采用網(wǎng)絡(luò)表示學(xué)習(xí)方法將HIN 中域名節(jié)點(diǎn)間的關(guān)聯(lián)信息向量化,使具有關(guān)聯(lián)的域名向量在特征空間中聚類出現(xiàn),所得域名向量可結(jié)合分類算法實(shí)現(xiàn)域名檢測(cè),如結(jié)合域名請(qǐng)求主機(jī)、域名解析IP 地址和域名請(qǐng)求時(shí)間信息,采用LINE(large-scale information network embedding)[13]進(jìn)行域名表示學(xué)習(xí)的域名檢測(cè)方法[14-15],結(jié)合HIN 與直推式分類器的域名檢測(cè)方法[16],采用圖卷積網(wǎng)絡(luò)[17]進(jìn)行域名節(jié)點(diǎn)表示學(xué)習(xí)的檢測(cè)方法[18-19]以及結(jié)合IP 地址信息、被動(dòng)DNS 特征和域名字符串特征的檢測(cè)方法[20]。此類方法采用HIN 表示域名相關(guān)信息,提高了DNS 流量中域名信息利用率,并通過表示學(xué)習(xí)方法將HIN 中域名節(jié)點(diǎn)向量化,為惡意域名檢測(cè)提供區(qū)分性強(qiáng)的訓(xùn)練數(shù)據(jù),檢測(cè)準(zhǔn)確率較第二類方法有較大提升,但此類方法存在以下不足:1) 由域名信息構(gòu)造而成的HIN 中存在弱連接域名,此類節(jié)點(diǎn)與其他節(jié)點(diǎn)不存在邊連接,導(dǎo)致無法從HIN 中挖掘關(guān)聯(lián)解析信息實(shí)現(xiàn)檢測(cè),檢測(cè)樣本覆蓋率較低;2) 采用矩陣乘法操作提取HIN 中域名節(jié)點(diǎn)之間關(guān)聯(lián)解析信息,時(shí)間復(fù)雜度較高。
為提高基于域名關(guān)聯(lián)信息檢測(cè)惡意域名的樣本覆蓋率和檢測(cè)準(zhǔn)確率,本文考慮結(jié)合第一類方法具有較高檢測(cè)樣本覆蓋率和第三類檢測(cè)方法中采用HIN 表示域名解析信息具有較高檢測(cè)準(zhǔn)確率的特點(diǎn),提出一種結(jié)合域名解析IP 地址、別名記錄和請(qǐng)求時(shí)間進(jìn)行關(guān)聯(lián)信息挖掘的惡意域名檢測(cè)方法。
本文主要的研究工作如下。
1) 將DNS流量中域名解析信息映射為HIN中的節(jié)點(diǎn)和邊,彌補(bǔ)由于采用同質(zhì)網(wǎng)絡(luò)無法同時(shí)表示域名與IP 地址之間的解析關(guān)系和域名之間別名關(guān)系的不足,提高域名信息利用率;給出描述域名之間關(guān)聯(lián)信息的元路徑定義,同時(shí)提出一種用于提取域名關(guān)聯(lián)信息的網(wǎng)絡(luò)遍歷方法,避免采用矩陣乘法操作提取元路徑關(guān)聯(lián)信息計(jì)算復(fù)雜度較高的問題。
2) 提出基于請(qǐng)求時(shí)間的弱連接域名關(guān)聯(lián)信息挖掘方法,根據(jù)較小時(shí)間窗內(nèi)發(fā)起請(qǐng)求的域名之間屬性相似的特點(diǎn),從請(qǐng)求時(shí)間角度挖掘弱連接域名的關(guān)聯(lián)信息,解決弱連接域名因元路徑關(guān)聯(lián)信息缺失而無法被檢測(cè)的問題,提高檢測(cè)樣本覆蓋率。
3) 提出一種域名表示學(xué)習(xí)方法,通過基于元路徑的域名關(guān)聯(lián)解析信息與基于請(qǐng)求時(shí)間的域名關(guān)聯(lián)信息進(jìn)行差異學(xué)習(xí),將域名映射為特征空間的數(shù)值向量,通過向量間歐氏距離反映域名之間關(guān)聯(lián)程度,為用于惡意域名檢測(cè)的有監(jiān)督分類器提供區(qū)分性較強(qiáng)的訓(xùn)練數(shù)據(jù),獲得較高的檢測(cè)準(zhǔn)確率。
基于域名關(guān)聯(lián)信息進(jìn)行惡意域名檢測(cè)的依據(jù)如下。1) 惡意域名解析信息存在關(guān)聯(lián)關(guān)系:由于攻擊者掌握的IP 資源有限,不同惡意程序所使用域名的解析IP 地址存在交集,可通過分析域名IP 共享機(jī)制發(fā)現(xiàn)惡意域名家族[10,12]。2) 惡意域名在請(qǐng)求時(shí)間上存在關(guān)聯(lián)關(guān)系:由于感染惡意程序的主機(jī)以固定時(shí)間周期發(fā)送域名請(qǐng)求以驗(yàn)證控制服務(wù)器狀態(tài)和獲取攻擊命令,安全人員可在DNS 記錄中發(fā)現(xiàn)感染主機(jī)對(duì)惡意域名周期性訪問的現(xiàn)象[2,4]。由于攻擊者可通過劫持合法域名進(jìn)行攻擊活動(dòng),并在對(duì)惡意域名發(fā)起查詢的同時(shí),隨機(jī)發(fā)送大量合法域名請(qǐng)求以隱藏惡意域名請(qǐng)求,若僅依靠單一類型關(guān)聯(lián)信息進(jìn)行域名檢測(cè)易產(chǎn)生較多誤報(bào)與漏報(bào)[1]。綜上所述,本文結(jié)合域名解析信息與請(qǐng)求時(shí)間信息進(jìn)行惡意域名檢測(cè),以提高基于域名關(guān)聯(lián)信息的惡意域名檢測(cè)結(jié)果可靠性。
基于解析信息與請(qǐng)求時(shí)間相結(jié)合的惡意域名檢測(cè)方法(MDND-RIQT,malicious domain name detection based on resolution information and query time),同時(shí)利用域名解析信息與請(qǐng)求時(shí)間關(guān)聯(lián)信息進(jìn)行域名檢測(cè):采用異質(zhì)信息網(wǎng)絡(luò)挖掘域名解析信息中存在的關(guān)聯(lián)信息;根據(jù)固定時(shí)間窗提取域名請(qǐng)求時(shí)間關(guān)聯(lián)信息;設(shè)計(jì)域名表示學(xué)習(xí)算法,將未知域名與已知合法/惡意域名的關(guān)聯(lián)程度量化為向量間歐氏距離,所得數(shù)值向量作為域名特征,并結(jié)合有監(jiān)督分類器實(shí)現(xiàn)域名檢測(cè)。MDND-RIQT 整體流程如圖1 所示,包括域名異質(zhì)信息網(wǎng)絡(luò)(DN-HIN,domain name heterogeneous information network)構(gòu)建、基于關(guān)聯(lián)信息的域名對(duì)提取、域名表示學(xué)習(xí)和域名分類器的訓(xùn)練與測(cè)試。
圖1 MDND-RIQT 整體流程
DN-HIN構(gòu)建是將DNS流量中解析記錄表征為異質(zhì)信息網(wǎng)絡(luò),為挖掘域名關(guān)聯(lián)解析信息提供數(shù)據(jù)表示?;陉P(guān)聯(lián)信息的域名對(duì)提取圍繞域名基于元路徑的關(guān)聯(lián)解析信息和基于請(qǐng)求時(shí)間關(guān)聯(lián)信息展開,將存在關(guān)聯(lián)信息的2 個(gè)域名記為一個(gè)域名對(duì)。域名表示學(xué)習(xí)自動(dòng)融合不同類別的域名關(guān)聯(lián)信息,將域名映射為數(shù)值向量,通過向量間歐氏距離量化域名之間關(guān)聯(lián)程度,最后通過已知標(biāo)簽的域名向量訓(xùn)練有監(jiān)督分類器用于未知標(biāo)簽域名檢測(cè)。
對(duì)于網(wǎng)絡(luò)G=(V,E),其中V和E分別代表網(wǎng)絡(luò)G中的節(jié)點(diǎn)和邊,G中存在節(jié)點(diǎn)類型的映射關(guān)系φ:V→A,使 ?v∈V,φ(v)∈A,以及邊連接的映射關(guān)系φ:E→R,使 ?e∈E,φ(e)∈R,A和R分別代表節(jié)點(diǎn)類型集合和邊連接類型集合。若>2,則稱G為異質(zhì)信息網(wǎng)絡(luò)。異質(zhì)信息網(wǎng)絡(luò)已廣泛應(yīng)用于信息檢索和數(shù)據(jù)挖掘領(lǐng)域[12]。
在網(wǎng)絡(luò)通信中,主機(jī)發(fā)起對(duì)某一域名的查詢請(qǐng)求后,可通過本地緩存或解析服務(wù)器遞歸查詢獲得查詢結(jié)果。DNS 流量中A 和AAAA 類型記錄包含域名與 IP 地址一對(duì)一或一對(duì)多的解析關(guān)系、CNAME 類型記錄包含域名的別名關(guān)系。為充分挖掘域名與IP 地址、域名與域名之間的關(guān)聯(lián)信息用于惡意域名檢測(cè),選取HIN 表示不同類型的域名解析信息,構(gòu)成DN-HIN。DN-HIN 包含2 種節(jié)點(diǎn)(即域名節(jié)點(diǎn)ND、IP 地址節(jié)點(diǎn)NIP)和2 種邊連接關(guān)系(即ND與NIP之間的解析關(guān)系RResolve、別名記錄構(gòu)成的CNAME 關(guān)系RCNAME)。采用2 個(gè)鄰接矩陣存儲(chǔ)DN-HIN 中節(jié)點(diǎn)之間RResolve和RCNAME邊連接關(guān)系,分別記為MResolve和MCNAME,并根據(jù)DNS 流量中的域名信息對(duì)矩陣進(jìn)行賦值,矩陣賦值如下
異質(zhì)信息網(wǎng)絡(luò)中2 個(gè)節(jié)點(diǎn)可通過不同路徑建立連接,不同的路徑代表節(jié)點(diǎn)間不同的語義關(guān)系,這樣的路徑稱為元路徑[12]。為挖掘DN-HIN 中域名節(jié)點(diǎn)之間的連接關(guān)系用于惡意域名檢測(cè),定義以下5 種類型的域名元路徑(MetaP,meta-path),其中,d代表域名,IP 代表域名解析IP 地址。
1) MetaP1:域名(d1)-IP 地址(IP1)-域名(d2)。有限的IP 地址資源導(dǎo)致不同域名的解析IP 地址存在交集,并且解析到同一IP 地址的域名之間具有較強(qiáng)的同質(zhì)性。例如,同一公司的多個(gè)域名通常解析為同一個(gè)IP 地址;惡意程序采用域名生成算法產(chǎn)生的大量惡意域名往往指向同一個(gè)IP 地址,以確保感染主機(jī)被攻擊者同時(shí)管控。
2) MetaP2:域名(d1)-CNAME-域名(d2)。CNAME 表示域名的別名記錄。若域名d1的查詢結(jié)果為CNAME 記錄,將繼續(xù)對(duì)別名域名d2發(fā)起查詢,最終獲得域名d1的解析IP 地址。網(wǎng)絡(luò)攻擊者通過設(shè)置CNAME 記錄將感染主機(jī)發(fā)起的對(duì)惡意域名的查詢轉(zhuǎn)移到跳板主機(jī),并可靈活更換跳板主機(jī)以提高網(wǎng)絡(luò)攻擊事件中的通信隱蔽性[10]。
3) MetaP3:域名(d1)-IP 地址(IP1)-域名(d2)-IP地址(IP2)-域名(d3)??紤]到域名解析的負(fù)載均衡問題,在實(shí)際設(shè)置中通常為同一個(gè)域名配置多個(gè)解析IP 地址,并且每個(gè)IP 地址也可作為多個(gè)域名的解析地址,從而出現(xiàn)MetaP3 表示的域名解析IP 地址共享機(jī)制。文獻(xiàn)[21]中指出,僵尸網(wǎng)絡(luò)控制者為尋求更高的經(jīng)濟(jì)利益,開始為其他惡意程序提供服務(wù),出現(xiàn)同一惡意域名在不同時(shí)間被不同惡意程序家族使用的Baas(botnet as a service)模式,并且為躲避監(jiān)管,所使用惡意域名的解析IP 地址會(huì)在不同國(guó)家和托管平臺(tái)之間遷移。
4) MetaP4 :域 名(d1)-CNAME-域 名(d2)-CNAME-域名(d3)。域名d1的查詢結(jié)果為別名為域名d2的CNAME 記錄,繼續(xù)發(fā)起對(duì)域名d2的查詢,返回一條別名記錄為域名d3的CNAME 記錄,最終由域名d3的查詢結(jié)果得到解析IP 地址并將此IP 地址作為域名d1的解析結(jié)果。此類域名利用方式常用于采用動(dòng)態(tài)域名解析服務(wù)的釣魚網(wǎng)站和網(wǎng)絡(luò)詐騙[10],具有較高隱蔽性。
5) MetaP5:域名(d1)-IP 地址(IP1)-域名(d2)-CNAME-域名(d3)。MetaP5 在MetaP1 和MetaP2 的基礎(chǔ)進(jìn)行拓展。對(duì)于同時(shí)存在A 類型和CNAME 類型查詢結(jié)果的域名d2,可將域名d2作為中間節(jié)點(diǎn),使域名d1與域名d3建立長(zhǎng)距離關(guān)聯(lián)關(guān)系。
以上5 種元路徑以合法/惡意網(wǎng)絡(luò)活動(dòng)中域名、IP 地址之間的聯(lián)系為基礎(chǔ),通過不同長(zhǎng)度、不同連接關(guān)系的元路徑提高域名關(guān)聯(lián)解析信息挖掘的全面性,并用于推理域名節(jié)點(diǎn)的屬性:若域名節(jié)點(diǎn)在DN-HIN 中與已知惡意域名節(jié)點(diǎn)或攻擊者掌控的IP地址節(jié)點(diǎn)存在元路徑聯(lián)系,則該域名傾向?yàn)閻阂狻?/p>
通過統(tǒng)計(jì)DN-HIN 中域名節(jié)點(diǎn)的出度可知,域名節(jié)點(diǎn)的出度為1~6,從而由式(1)所得的鄰接矩陣為稀疏矩陣。已有研究采用鄰接矩陣相乘操作挖掘域名節(jié)點(diǎn)之間不同的元路徑關(guān)聯(lián)信息,此過程受元路徑種類數(shù)、元路徑長(zhǎng)度、鄰接矩陣大小等因素影響,具有較大的計(jì)算開銷[16]。為提高在DN-HIN 中提取域名節(jié)點(diǎn)之間元路徑關(guān)聯(lián)信息的效率,設(shè)計(jì)基于元路徑的網(wǎng)絡(luò)遍歷算法(NTA-M,network traversal algorithm based on meta-path),該算法以DN-HIN 中域名節(jié)點(diǎn)作為遍歷起點(diǎn),以廣度優(yōu)先原則搜尋DN-HIN 中滿足5 種元路徑的下一跳節(jié)點(diǎn),最終輸出與元路徑匹配的域名節(jié)點(diǎn)序列,具體描述如算法1 所示。
算法1基于元路徑的網(wǎng)絡(luò)遍歷算法
輸入鄰接矩陣MResolve和MCNAME,域名集合DN_Set,元路徑遍歷匹配項(xiàng)MetaP3、MetaP4 和MetaP5
輸出滿足元路徑關(guān)系的域名節(jié)點(diǎn)序列集合Traversal_Result
設(shè)鄰接矩陣MResolve大小為n×m、MCNAME大小為n×n,其中,n為域名數(shù)量,m為IP 地址數(shù)量。若采用矩陣相乘操作提取基于MetaP3(最長(zhǎng)元路徑)的域名節(jié)點(diǎn)序列,算法復(fù)雜度為O(n3m)。設(shè)DN-HIN 中節(jié)點(diǎn)最大出度為l,則NTA-M 在最壞情況下(DN-HIN 中所有節(jié)點(diǎn)出度均為l,元路徑均為MetaP3)的算法復(fù)雜度為O(nl4)。由于l的數(shù)量級(jí)遠(yuǎn)小于m或n的數(shù)量級(jí),則NTA-M 具有較小的算法復(fù)雜度。此外,采用矩陣相乘操作來提取域名關(guān)聯(lián)信息需保存矩陣相乘的結(jié)果,該矩陣為n×n的稀疏矩陣,具有較大存儲(chǔ)空間開銷。NTA-M 所得結(jié)果僅需保存與元路徑匹配的節(jié)點(diǎn)序列。綜上,NTA-M 比基于矩陣乘法的元路徑信息提取方法具有更小的時(shí)間與空間開銷。
由于MetaP3、MetaP4、MetaP5 包含MetaP1與MetaP2,NTA-M 僅考慮MetaP3、MetaP4 與MetaP5 用于域名元路徑信息提取,所得域名節(jié)點(diǎn)序列如圖2(a)所示(均以域名D1作為遍歷起點(diǎn)),D代表域名節(jié)點(diǎn)、IP 代表IP 地址節(jié)點(diǎn)、Resolve 和CNAME 分別對(duì)應(yīng)域名解析關(guān)系和域名別名關(guān)系。為進(jìn)一步提取域名之間元路徑關(guān)聯(lián)信息用于域名檢測(cè),將域名節(jié)點(diǎn)序列中的邊連接信息和IP 地址節(jié)點(diǎn)刪除,并劃分為5 種不同類型的域名對(duì)集合,如圖2(b)所示,域名對(duì)將用于后續(xù)域名表示學(xué)習(xí)。
圖2 基于NTA-M 提取域名對(duì)示意
受DNS 流量采集時(shí)長(zhǎng)、網(wǎng)絡(luò)環(huán)境等因素影響,弱連接域名在DN-HIN 中無法提取到任何元路徑關(guān)聯(lián)信息用于檢測(cè)。為此,引入域名請(qǐng)求時(shí)間關(guān)聯(lián)信息,用于提取與弱連接域名存在請(qǐng)求時(shí)間關(guān)聯(lián)的域名對(duì)。
當(dāng)用戶瀏覽合法或惡意網(wǎng)站時(shí),瀏覽器在較短的時(shí)間內(nèi)會(huì)向不同域名發(fā)起的DNS 查詢請(qǐng)求,以獲取網(wǎng)頁中的文字、圖片等內(nèi)容,在此過程中被發(fā)起請(qǐng)求的部分域名之間雖不存在解析信息關(guān)聯(lián),但出現(xiàn)在同一網(wǎng)頁瀏覽事件中,所發(fā)起請(qǐng)求的域名具有較大概率為同一類別(合法或惡意)。此外,惡意程序中通過域名生成算法產(chǎn)生的惡意域名在請(qǐng)求時(shí)間上呈集中請(qǐng)求的特點(diǎn)。由此,在較小時(shí)間窗內(nèi)發(fā)起請(qǐng)求的域名具有較大概率屬于同一類別,基于域名請(qǐng)求時(shí)間的關(guān)聯(lián)信息可用于惡意域名檢測(cè)[2-4]。為彌補(bǔ)DN-HIN 中弱連接域名由于缺少元路徑關(guān)聯(lián)信息無法被檢測(cè)的不足,本文提出基于域名請(qǐng)求時(shí)間的關(guān)聯(lián)信息提取方法(AIEM-DNQT,associatedinformation extraction method based on domain namequery time),該方法通過提取域名請(qǐng)求時(shí)間關(guān)聯(lián)信息有效檢測(cè)弱連接域名。
設(shè)Dataset 為N臺(tái)主機(jī)的域名請(qǐng)求記錄集合,Dateset={D1,D2,…,DN},其 中Di=代表主機(jī)i在時(shí)刻發(fā)起對(duì)域名的查詢,Li代表Di的域名請(qǐng)求總數(shù);WDN_List={WDN1,WDN2,…,WDNN′}為弱連接域名構(gòu)成的集合,N′為弱連接域名數(shù)量。令τ為請(qǐng)求時(shí)間判別閾值,若域名與弱連接域名的請(qǐng)求時(shí)間間隔小于τ,則判別2 個(gè)域名之間存在請(qǐng)求時(shí)間關(guān)聯(lián)關(guān)系。AIEM-DNQT 具體描述如算法2 所示。
算法2基于域名請(qǐng)求時(shí)間的關(guān)聯(lián)信息提取算法
輸入主機(jī)域名請(qǐng)求記錄集合Dataset,弱連接域名集合WDN_List,判別閾值τ
輸出弱連接域名基于請(qǐng)求時(shí)間關(guān)聯(lián)的域名對(duì)集合Rquery
算法2 分為2 個(gè)階段。1) 弱連接域名請(qǐng)求記錄遍歷,設(shè)Dataset 中每個(gè)弱連接域名請(qǐng)求記錄數(shù)為Q,以弱連接域名為中心,大小為2τ的時(shí)間窗內(nèi)平均域名請(qǐng)求記錄數(shù)為Nav,則得到所有弱連接域名的域名對(duì)時(shí)間復(fù)雜度為O(QWNav);2) 域名對(duì)排序,設(shè)每個(gè)弱連接域名的平均域名對(duì)數(shù)量為P,則算法2 的時(shí)間復(fù)雜度為O(QWNavlbP)。算法2 中步驟8) 選擇出現(xiàn)頻次較高的域名對(duì)作為最終結(jié)果,通過頻次統(tǒng)計(jì)降低主觀設(shè)置τ值和主機(jī)后臺(tái)程序發(fā)起的合法域名請(qǐng)求帶來的干擾。Rquery將用于后續(xù)域名表示學(xué)習(xí)。
借鑒Skip-Gram 模型可在保持字、詞語義關(guān)系的前提下,基于文本向量化的思想[22],將通過NTA-M 和AIEM-DNQT 分別得到基于元路徑和基于請(qǐng)求時(shí)間關(guān)聯(lián)信息的域名對(duì)理解為自然語言處理的詞組,輸入Skip-Gram 模型,將每個(gè)域名轉(zhuǎn)化為維度固定的數(shù)值向量。域名向量間歐氏距離反映域名之間的關(guān)聯(lián)程度,域名向量之間距離越小說明域名之間關(guān)聯(lián)越緊密。
Skip-Gram 模型訓(xùn)練需建立 2 個(gè)大小均為M×Dim 的矩陣,分別記為域名向量矩陣W和關(guān)聯(lián)域名向量矩陣W′,其中,M為域名樣本總數(shù),Dim為域名向量維度,Dim?M。通過Skip-Gram 模型學(xué)習(xí)域名向量的目標(biāo)是對(duì)于任意存在關(guān)聯(lián)關(guān)系的域名對(duì)(di,dj)(i,j∈{1,2,…,M},i≠j),使條件概率P(dj|di,θ)最大化,P(dj|di,θ)采 用Softmax 函數(shù)進(jìn)行衡量。
其中,θ為W與W′所包含的參數(shù),vi為域名di的數(shù)值向量(矩陣W中第i行對(duì)應(yīng)的數(shù)值向量),和為域名dj和dk在矩陣W′中的數(shù)值向量。
推論 1令R={RMetaP1,RMetaP2,RMetaP3,RMetaP4,RMetaP5,Rquery}為包含6 種關(guān)聯(lián)關(guān)系域名對(duì)的集合,若采用R中域名對(duì)作為Skip-Gram 模型的訓(xùn)練數(shù)據(jù),那么域名表示學(xué)習(xí)的目標(biāo)函數(shù)可表示為
其中,wr為關(guān)聯(lián)關(guān)系Rr的權(quán)值,σ(x)=1 (1+e-x),Pn(v)為域名負(fù)樣本(與域名di不存在任意關(guān)聯(lián)關(guān)系的域名)的概率分布,Nk為負(fù)樣本采樣數(shù)。
證明考慮式(2)的分母項(xiàng)需對(duì)所有樣本進(jìn)行計(jì)算,計(jì)算開銷較大的問題,采用負(fù)采樣技術(shù)[22]將式(2)轉(zhuǎn)化為區(qū)分R中所有域名與di是否存在關(guān)聯(lián)關(guān)系的邏輯回歸任務(wù),即
參數(shù)θ更新需考慮R中不同關(guān)聯(lián)關(guān)系的域名對(duì),并且不同關(guān)聯(lián)關(guān)系的域名對(duì)滿足相互獨(dú)立,通過取最大似然得到域名表示學(xué)習(xí)的目標(biāo)函數(shù)為
考慮式(5)連續(xù)乘法操作計(jì)算開銷較大的問題,對(duì)式(5)等號(hào)兩側(cè)同取log 函數(shù),令L=logO,可得
考慮到R中不同關(guān)聯(lián)關(guān)系域名對(duì)參數(shù)θ更新存在差異性影響[16,19],在式(6)中為不同的關(guān)聯(lián)關(guān)系引入權(quán)重因子,令Weight={wMetaP1,wMetaP2,wMetaP3,wMetaP4,wMetaP5,wquery}為所有域名關(guān)聯(lián)關(guān)系的權(quán)重集合,最終可得基于關(guān)聯(lián)信息權(quán)重自適應(yīng)的域名表示學(xué)習(xí)的優(yōu)化目標(biāo)函數(shù)
其中,wr∈Weight,wr在訓(xùn)練過程中根據(jù)損失值自適應(yīng)調(diào)整,推論1 證畢。
采用小批量樣本的隨機(jī)梯度下降法對(duì)式(7)中參數(shù)θ和Weight 進(jìn)行交替更新,即完成Nθ次θ參數(shù)更新后,進(jìn)行一次Weight 參數(shù)更新,避免Weight中部分權(quán)重因頻繁調(diào)整而取值過大,提高參數(shù)更新穩(wěn)定性。令rθ和rW分別為參數(shù)θ和Weight 的更新學(xué)習(xí)率,Nb為小批量樣本數(shù)量,參數(shù)更新具體步驟如下。
步驟1初始化θ與Weight。
步驟2從R中每個(gè)關(guān)聯(lián)關(guān)系域名對(duì)集合隨機(jī)選擇Nb個(gè)域名對(duì),采用式(7)進(jìn)行誤差計(jì)算。
步驟3若已完成Nθ次θ參數(shù)更新,以學(xué)習(xí)率為rW的隨機(jī)梯度上升法對(duì)權(quán)重Weight 進(jìn)行更新;否則,轉(zhuǎn)到步驟4。
步驟4采用學(xué)習(xí)率為rθ的梯度下降法對(duì)θ進(jìn)行更新。
步驟5若未達(dá)到最大迭代次數(shù),回到步驟2;否則,輸出θ與Weight。
采用梯度上升法更新Weight 的原因如下。對(duì)于任意wr∈Weight,若wr的更新梯度值較大則說明式(7) 中Rr類別的計(jì)算結(jié)果,即的值較大,從而可通過增大Rr類別域名對(duì)的權(quán)重wr以獲得更大的更新梯度,加快參數(shù)θ更新速度。
考慮所得的域名數(shù)值向量在特征空間分布上呈現(xiàn)關(guān)聯(lián)性較強(qiáng)的2 個(gè)域名向量距離較近的同類聚集特點(diǎn),選取支持向量機(jī)(SVM,support vector machine)和隨機(jī)森林(RF,random forest)作為域名分類器[23]。惡意域名檢測(cè)器訓(xùn)練與測(cè)試流程如下:首先,通過已知域名黑白名單對(duì)域名數(shù)值向量進(jìn)行標(biāo)注;其次,隨機(jī)選取部分帶標(biāo)簽數(shù)據(jù)用于域名檢測(cè)器訓(xùn)練;最后,通過訓(xùn)練完成的域名檢測(cè)器檢測(cè)未知標(biāo)簽域名。
實(shí)驗(yàn)環(huán)境如下:Windows 7 64 位操作系統(tǒng),CPU為Intel Xeon Silver4114 2.2 GHz,64 GB RAM,GPU 為NVIDIA GeForce RTX 2080 SUPER,選取Python 3.6 實(shí)現(xiàn)所提算法。
實(shí)驗(yàn)數(shù)據(jù)來源于 Malware Capture Facility Project,該項(xiàng)目在真實(shí)的主機(jī)和網(wǎng)絡(luò)環(huán)境中采集僵尸網(wǎng)絡(luò)、木馬等惡意程序運(yùn)行過程中產(chǎn)生的惡意流量數(shù)據(jù)和正常用戶產(chǎn)生的合法流量數(shù)據(jù)。為驗(yàn)證所提方法進(jìn)行惡意域名檢測(cè)的有效性,篩選數(shù)據(jù)集中DNS 流量作為實(shí)驗(yàn)數(shù)據(jù),并采用惡意軟件測(cè)試平臺(tái)VirusTotal 對(duì)所有域名進(jìn)行標(biāo)簽標(biāo)注。
AIEM-DNQT 算法中請(qǐng)求時(shí)間判別閾值τ為5 s。域名表示學(xué)習(xí)參數(shù)設(shè)置如下:域名數(shù)值向量維度設(shè)置為60,rθ設(shè)置為5,rW設(shè)置為0.05,每輪迭代負(fù)樣本數(shù)Nk為80。SVM 參數(shù)設(shè)置如下:懲罰系數(shù)C通過預(yù)實(shí)驗(yàn)確定為5,核函數(shù)采用徑向基函數(shù);RF中決策樹數(shù)量通過預(yù)實(shí)驗(yàn)確定為100,其余參數(shù)為默認(rèn)設(shè)置。
TP(true positive)為被正確判別為惡意域名的樣本數(shù);FP(false positive)為被錯(cuò)誤判別為惡意域名的樣本數(shù);TN(true negative)為被正確判別為合法域名的樣本數(shù);FN(false negative)為被錯(cuò)誤判別為合法域名的樣本數(shù)。主要參考的判別標(biāo)準(zhǔn)如下。
檢測(cè)樣本覆蓋率(C-rate,coverage rate),即檢測(cè)方法能檢測(cè)的樣本數(shù)與樣本總數(shù)的比值。
為驗(yàn)證所提域名表示學(xué)習(xí)方法的有效性,并分析域名數(shù)值向量在特征空間中的分布特點(diǎn),分別采用式(6)和式(7)進(jìn)行域名表示學(xué)習(xí),并采用t-SNE[24]將域名向量降至2 維進(jìn)行可視化分析,結(jié)果如圖3所示。
圖3 域名向量2 維可視化
圖3(a)為式(7)所得域名向量的2 維空間分布,域名向量呈現(xiàn)部分聚集的情況,并且位于同一聚集區(qū)域中的域名具有相同屬性。由t-SNE 的降維原理可知,在降維后的特征空間中處于同一個(gè)類簇的域名在原特征空間中也呈現(xiàn)聚類分布的特點(diǎn)。由圖3(c)與圖3(d)可知,采用式(7)進(jìn)行域名表示學(xué)習(xí)可使存在關(guān)聯(lián)關(guān)系的域名在高維特征空間中具有較小距離,不存在關(guān)聯(lián)關(guān)系的域名間距離較大,并且不同類別的域名數(shù)值向量具有較好的可區(qū)分性。圖3(b)為采用式(6)進(jìn)行域名表示學(xué)習(xí)所得的域名向量可視化結(jié)果,仍存在部分同類別的域名向量呈聚類的特點(diǎn),但通過分析圖3(e)和圖3(f)中黑色框線內(nèi)的樣本分布可知,不同類別域名向量區(qū)分性不強(qiáng),這將降低后續(xù)域名檢測(cè)器性能,產(chǎn)生較高誤報(bào)率。
按照不同比例將樣本集劃分為訓(xùn)練集與測(cè)試集,其中訓(xùn)練集用于訓(xùn)練SVM 和RF 分類器,測(cè)試集用于獲得分類評(píng)價(jià)指標(biāo)。表1 給出了不同訓(xùn)練集占比下不同分類器的實(shí)驗(yàn)結(jié)果,實(shí)驗(yàn)結(jié)果為進(jìn)行10 次實(shí)驗(yàn)所得平均值,其中訓(xùn)練集占比為訓(xùn)練集樣本數(shù)與數(shù)據(jù)集樣本總數(shù)的比值。
表1 不同訓(xùn)練集占比下SVM、RF 檢測(cè)性能對(duì)比
由表1 可知,在相同的訓(xùn)練集占比下,SVM 的F1 分?jǐn)?shù)與準(zhǔn)確率均優(yōu)于RF,主要是因?yàn)橥ㄟ^2.4 節(jié)所得的域名向量在特征空間中具有較好的區(qū)分性,使通過SVM 學(xué)習(xí)得到的支持向量能較好區(qū)分不同類別域名向量,在檢測(cè)效果上優(yōu)于基于特征選擇實(shí)現(xiàn)集成決策的RF。此外,在訓(xùn)練集占比僅為30%時(shí),SVM 的 F1 分?jǐn)?shù)可達(dá)到 0.921,說明MDND-RIQT 通過學(xué)習(xí)DN-HIN 中元路徑關(guān)聯(lián)信息和請(qǐng)求時(shí)間關(guān)聯(lián)信息得到區(qū)分性較好的域名向量,并結(jié)合SVM 的小樣本學(xué)習(xí)能力,取得較好檢測(cè)效果。
采用SVM 可獲得較優(yōu)的檢測(cè)指標(biāo),但由于存在漏報(bào),各項(xiàng)指標(biāo)還有一定提升空間,所提檢測(cè)方法產(chǎn)生漏報(bào)的主要原因是部分惡意域名與合法域名存在關(guān)聯(lián)關(guān)系,主要包含以下2 種情況:1) 攻擊者將惡意服務(wù)器部署到云/VPS 平臺(tái),使惡意域名的解析IP 地址與部署在同平臺(tái)的合法域名存在關(guān)聯(lián),從而造成此類惡意域名的數(shù)值向量與合法域名具有相似的數(shù)值向量分布,進(jìn)而被域名檢測(cè)器誤判為合法域名;2) 攻擊者通過滲透手段掌握部分站點(diǎn)控制權(quán)進(jìn)行惡意活動(dòng),如上傳惡意篡改軟件供用戶下載、在網(wǎng)頁中掛載惡意程序等,由于此類攻擊事件中的域名只存在與其他合法域名的關(guān)聯(lián)信息,導(dǎo)致所提方法無法檢出此類惡意域名利用方式,將此類域名誤判為合法。為減少以上兩類漏報(bào)產(chǎn)生,還需針對(duì)惡意域名的利用方式進(jìn)行分析,以提高檢測(cè)方法穩(wěn)健性。
采用控制變量法設(shè)計(jì)對(duì)比實(shí)驗(yàn),以檢驗(yàn)不同關(guān)聯(lián)信息與表示學(xué)習(xí)方法對(duì)檢測(cè)結(jié)果的影響,所得對(duì)比結(jié)果如表2 所示,MDND-RI 代表未采用域名請(qǐng)求時(shí)間關(guān)聯(lián)信息的 MDND-RIQT 方法,MDND-RIQT-Equal 為采用式(6)進(jìn)行域名表示學(xué)習(xí)的MDND-RIQT 方法。對(duì)比實(shí)驗(yàn)中域名檢測(cè)器均為SVM,訓(xùn)練集占比均為70%。
表2 不同實(shí)驗(yàn)設(shè)置的檢測(cè)性能對(duì)比
由表2 可知,Malshoot 的C-Rate 和檢測(cè)準(zhǔn)確率最低,其主要原因?yàn)镸alshoot 僅提取域名解析IP地址的二階相似度用于域名表示學(xué)習(xí),導(dǎo)致大量域名因缺乏基于IP 地址的關(guān)聯(lián)信息而無法被檢測(cè);MDND-RI 采用2.2 節(jié)提出的5 種元路徑關(guān)聯(lián)信息進(jìn)行域名檢測(cè),檢測(cè)指標(biāo)較Malshoot 均有提升,其中C-Rate 增長(zhǎng)明顯,但仍有19.1%的域名由于關(guān)聯(lián)解析信息缺失無法被檢測(cè);MDND-RIQT-Equal 方法結(jié)合域名解析信息和請(qǐng)求時(shí)間兩方面的關(guān)聯(lián)信息,C-Rate 達(dá)到最高,但在將關(guān)聯(lián)信息轉(zhuǎn)化為數(shù)值向量過程中,未能區(qū)分不同域名關(guān)聯(lián)關(guān)系對(duì)目標(biāo)函數(shù)優(yōu)化的差異性影響,導(dǎo)致部分域名向量更新不足,所得F1 分?jǐn)?shù)較低。MDND-RIQT 通過結(jié)合域名元路徑和請(qǐng)求時(shí)間關(guān)聯(lián)信息,并采用域名關(guān)聯(lián)信息權(quán)重自適應(yīng)的域名向量學(xué)習(xí)方法進(jìn)行域名檢測(cè),各項(xiàng)指標(biāo)均為最優(yōu)。
域名數(shù)值向量包含域名基于元路徑與基于請(qǐng)求時(shí)間的關(guān)聯(lián)信息,域名向量維度的設(shè)置影響后續(xù)域名檢測(cè)的性能。為說明域名向量維度的設(shè)置對(duì)檢測(cè)效果的影響,設(shè)置不同維度進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如圖4 所示。
圖4 域名向量維度對(duì)檢測(cè)性能的影響
由圖4 可知,隨著域名向量維度增加,F(xiàn)1 分?jǐn)?shù)與準(zhǔn)確率均增加并最終穩(wěn)定在一定范圍內(nèi)。當(dāng)維度設(shè)置為12,由于向量維度過小,無法有效表征域名之間豐富關(guān)聯(lián)信息,F(xiàn)1 分?jǐn)?shù)和準(zhǔn)確率取值最低;當(dāng)維度設(shè)置為72 或84 時(shí),檢測(cè)指標(biāo)略微降低,說明維度設(shè)置過大存在一定過擬合風(fēng)險(xiǎn);當(dāng)維度分別設(shè)置為36、48 或60 時(shí),檢測(cè)指標(biāo)受維度調(diào)整引起的波動(dòng)較小,從而在參數(shù)調(diào)整過程中能較快取得檢測(cè)指標(biāo)較優(yōu)的向量維度設(shè)置。
基于圖模型的惡意域名檢測(cè)研究通?;贐P算法進(jìn)行惡意域名檢測(cè)[5-11],此類方法能在僅有少量域名節(jié)點(diǎn)帶有標(biāo)簽的情況下,通過節(jié)點(diǎn)間消息傳遞的方式為對(duì)未知標(biāo)簽域名節(jié)點(diǎn)進(jìn)行標(biāo)記,降低惡意域名檢測(cè)中對(duì)大量標(biāo)簽數(shù)據(jù)的依賴。將所提方法與基于BP 的惡意域名檢測(cè)方法[10]進(jìn)行對(duì)比,采用不同訓(xùn)練集占比進(jìn)行實(shí)驗(yàn),所得F1 分?jǐn)?shù)對(duì)比情況如圖5 所示,其中閾值用于判定域名標(biāo)簽,當(dāng)BP算法迭代收斂后,若域名標(biāo)簽數(shù)值大于閾值,判別為惡意域名。由于初始標(biāo)簽設(shè)置為0.5,分別選擇0.49 和0.51 作為閾值,以檢驗(yàn)閾值設(shè)置對(duì)檢測(cè)結(jié)果的影響。
由圖5 可知,隨著訓(xùn)練集占比增加,BP 算法的F1 分?jǐn)?shù)逐漸增加并最終保持穩(wěn)定。當(dāng)訓(xùn)練集占比小于70%,BP 算法的F1 分?jǐn)?shù)受閾值設(shè)置影響較大,其主要原因如下:1) 當(dāng)訓(xùn)練集占比較小時(shí),域名圖中大量域名節(jié)點(diǎn)初始標(biāo)簽為0.5,導(dǎo)致采用BP算法進(jìn)行節(jié)點(diǎn)標(biāo)簽更新后,其標(biāo)簽仍為0.5;2) 由于樣本集中合法域名數(shù)量遠(yuǎn)多于惡意域名數(shù)量,當(dāng)閾值設(shè)定為0.51,標(biāo)簽為0.5 的域名被判為正常域名,導(dǎo)致樣本集中少數(shù)惡意域名因標(biāo)簽為0.5 被誤判為合法域名,此時(shí)檢測(cè)誤報(bào)率較低,從而具有較高的F1 分?jǐn)?shù);當(dāng)閾值設(shè)置為0.49,導(dǎo)致大量標(biāo)簽為0.5 的合法域名被誤判為惡意,產(chǎn)生較多誤報(bào),所得F1 分?jǐn)?shù)較小。與BP 算法相比,所提方法可在已知標(biāo)簽數(shù)據(jù)較少的情況取得較高的F1 分?jǐn)?shù)。
圖5 所提方法與BP 算法對(duì)比
本文提出一種結(jié)合域名解析IP 地址、別名記錄和請(qǐng)求時(shí)間關(guān)聯(lián)信息的惡意域名檢測(cè)方法。該方法采用HIN 表示域名解析信息,設(shè)計(jì)了基于元路徑的網(wǎng)絡(luò)遍歷方法,以提高域名關(guān)聯(lián)解析信息提取效率。引入請(qǐng)求時(shí)間關(guān)聯(lián)信息有效檢測(cè)弱連接域名,提高了檢測(cè)方法的樣本覆蓋率。設(shè)計(jì)了域名表示學(xué)習(xí)方法融合不同關(guān)聯(lián)信息,通過向量間歐氏距離量化域名關(guān)聯(lián)程度。實(shí)驗(yàn)結(jié)果表明,所提方法在已知標(biāo)簽數(shù)據(jù)較少的情況下域名檢測(cè)效果較優(yōu)。下一步研究將引入域名注冊(cè)信息、WHOIS 信息用于域名關(guān)聯(lián)信息挖掘,進(jìn)一步提高檢測(cè)精度。