張 奕,鄒福泰
(上海交通大學(xué) 網(wǎng)絡(luò)空間安全學(xué)院,上海 200240)
盡管互聯(lián)網(wǎng)在不斷發(fā)展和改善,但是利用互聯(lián)網(wǎng)的服務(wù)和協(xié)議進(jìn)行惡意活動的行為仍然屢見不鮮。域名系統(tǒng)(Domain Name System,DNS)是互聯(lián)網(wǎng)的基礎(chǔ)核心服務(wù)之一,主要提供IP地址和域名之間的映射,通俗講是將人類易記憶的域名翻譯為機(jī)器易于識別的IP地址。DNS本身是一個完全開放的協(xié)作體系,所以域名是各種網(wǎng)絡(luò)惡意行為(如垃圾郵件、惡意軟件、釣魚網(wǎng)站和僵尸網(wǎng)絡(luò)等)中使用的主要攻擊媒介。為了有效打擊網(wǎng)絡(luò)攻擊者,必須有效檢測發(fā)現(xiàn)惡意域名并加以阻攔。
2016年6月,日本大型旅行社JTB由于員工打開附帶惡意域名連接的郵件而遭到非法網(wǎng)絡(luò)入侵,造成將近800萬客戶資料外泄,包括姓名、地址及護(hù)照號碼等。2019年8月,沉寂近3個月的Emotet服務(wù)器再次被喚醒,網(wǎng)絡(luò)攻擊者建立了新的傳播渠道,利用來自385個頂級域名的3萬多個域名發(fā)送了垃圾電子郵件,感染美國多個州和地方政府[1]。中國國家計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)急技術(shù)處理協(xié)調(diào)中心發(fā)布的《2019年上半年我國互聯(lián)網(wǎng)網(wǎng)絡(luò)安全態(tài)勢》指出,2019年上半年CNCERT自主檢測發(fā)現(xiàn)約4.6萬個針對我國境內(nèi)網(wǎng)站的仿冒頁面,此外CNCERT監(jiān)測發(fā)現(xiàn)惡意電子郵件數(shù)量超過5 600萬封,涉及惡意郵件附件37萬余個,平均每個惡意電子郵件附件傳播次數(shù)約151次。大部分的惡意行為都與域名系統(tǒng)息息相關(guān),對惡意域名檢測的需求日益增長。
近年來,隨著計(jì)算機(jī)設(shè)備的計(jì)算能力和效率的不斷提升,知識圖譜和人工智能技術(shù)的發(fā)展在網(wǎng)絡(luò)安全相關(guān)領(lǐng)域得到了越來越廣泛的應(yīng)用。但是,目前域名檢測的主要手段還是基于傳統(tǒng)的檢測方式,此類方法存在更新維護(hù)及時性差且開銷大的缺陷。因此,為了解決上述問題,本文建立了一個基于知識圖譜的惡意域名檢測系統(tǒng),主要貢獻(xiàn)如下:
(1)首次將知識圖譜與DNS日志相結(jié)合,提出了一種將DNS日志信息轉(zhuǎn)化為知識圖譜知識存儲與知識表示的方法。
(2)提出使用基于深度學(xué)習(xí)模型將知識圖譜中的屬性三元組向量化,完成知識圖譜嵌入,并基于此使用神經(jīng)網(wǎng)絡(luò)模型進(jìn)行進(jìn)一步特征提取。
(3)實(shí)現(xiàn)基于知識圖譜的惡意域名檢測原型系統(tǒng),采用合理指標(biāo)進(jìn)行性能評估實(shí)驗(yàn)。實(shí)驗(yàn)研究表明,本文提出的惡意域名檢測系統(tǒng)具有較高的準(zhǔn)確性和適用性。
目前,最傳統(tǒng)的惡意域名檢測方法是通過黑名單的方式,但是該方法存在更新維護(hù)開銷極大的缺陷。由于一些域名快速生成技術(shù)(如Fast-Flux、Domain-Flux、Double-Flux等)的興起,靜態(tài)檢測即黑名單方式越來越不可行。
針對這些轉(zhuǎn)換技術(shù),之后的系統(tǒng)[2-5]主要采用基于功能的方法。這些研究在一定層面上取得了極好效果,但是仍然存在一些潛在問題。這些檢測系統(tǒng)大量運(yùn)用一些人工選擇的統(tǒng)計(jì)特征(如不同的IP的地址數(shù),TTL的標(biāo)準(zhǔn)偏差等),使得檢測系統(tǒng)易被攻擊者規(guī)避。
此外,文獻(xiàn)[6]提出了一種用于發(fā)現(xiàn)將來可能會被濫用的惡意域名的系統(tǒng),系統(tǒng)的關(guān)鍵思想是利用域名的時間變化模式,通過讀取DNS日志并分析域名的事件變化模式,從而預(yù)測給定的域名是否將用于惡意目的。很大一部分的惡意軟件都使用域生成算法(Domain Generation Algorithm,DGA)生成大量偽隨機(jī)域名,以連接到命令和控制服務(wù)器。文獻(xiàn)[7]提出了一種DGA分類器,利用長短期記憶(Long Short Term Memory,LSTM)網(wǎng)絡(luò)預(yù)測DGA及其各自的家族,而無需先驗(yàn)特征提取。文獻(xiàn)[8]將重點(diǎn)放在基于每個域的檢測(和生成)域上,利用生成對抗網(wǎng)絡(luò)的概念構(gòu)建基于深度學(xué)習(xí)的DGA,生成器學(xué)習(xí)生成越來越難以檢測的域名;反過來,檢測器模型更新參數(shù),以補(bǔ)償對抗生成的域從而達(dá)到收斂。然而,此類檢測方法所用的信息主要為域名本身,其他相關(guān)信息使用較少,使得大量信息未被開發(fā)。
基于網(wǎng)絡(luò)結(jié)構(gòu)的惡意域名檢測通過將DNS相關(guān)數(shù)據(jù)建模為圖形進(jìn)行進(jìn)一步分析。文獻(xiàn)[9]中,通過分析與頂點(diǎn)區(qū)域的偏差和不同頂點(diǎn)域之間的相關(guān)性來確定一組獨(dú)特的特征,以獨(dú)特地描述圖形區(qū)域。在這些功能基礎(chǔ)上,訓(xùn)練分類器將其應(yīng)用到大型開放式安全掃描服務(wù)VirusTotal中。然而,在上述網(wǎng)絡(luò)方法的限制下,幾乎所有這些研究人員都將DNS相關(guān)數(shù)據(jù)建模為客戶端域雙向圖[10]或域-IP雙邊圖[11]。在這種情況下,它們最多只能代表兩種類型的實(shí)體,大量其他關(guān)系仍未被挖掘。
不同于上述已有工作,本文結(jié)合DNS日志信息,將DNS響應(yīng)記錄和DNS權(quán)威相應(yīng)資源記錄,利用知識圖譜進(jìn)行知識表示,并完成其向量化的工作,基于神經(jīng)網(wǎng)絡(luò)模型實(shí)現(xiàn)對惡意域名的檢測。
知識圖譜于20世紀(jì)中葉被普萊斯等人提出。1977年,知識工程的概念亮相于第五屆人工智能大會,以專家系統(tǒng)為代表的知識庫系統(tǒng)開始被研究。直到2012年,谷歌[12]正式提出知識圖譜的概念,并將其應(yīng)用于搜索業(yè)務(wù)。知識圖譜是一種用圖模型來描述知識和建模世界萬物之間的關(guān)聯(lián)關(guān)系的技術(shù)方法[12]。
2.1.1 知識表示
知識表示主要研究如何利用計(jì)算機(jī)符號來表示人腦中的知識。三元組是最常用的一種表示方法,即G=(E,R,S),其中E是知識圖譜的實(shí)體集合,R是知識圖譜中的關(guān)系集合,S ?E×R×E 代表知識圖譜中的三元組集合。三元組集合的表現(xiàn)形式包括頭實(shí)體、尾實(shí)體、邊關(guān)系、屬性和屬性值等。雖然通過這樣的離散的符號化表達(dá)方式可以有效將數(shù)據(jù)結(jié)構(gòu)化,但是這些符號并不能在計(jì)算機(jī)中表達(dá)對應(yīng)的語義信息并進(jìn)行計(jì)算。
為了解決上述問題,知識圖譜研究者在詞向量的啟發(fā)下,將知識圖譜中實(shí)體和關(guān)系映射到連續(xù)的向量空間。知識圖譜的嵌入也是通過人工智能的模型進(jìn)行學(xué)習(xí),但是該方法的訓(xùn)練需要監(jiān)督學(xué)習(xí)。如圖1所示,在知識圖譜嵌入的學(xué)習(xí)過程中,模型將三元組轉(zhuǎn)化為同一維度的向量。
圖1 語義信息嵌入知識圖譜的向量表示方法
2.1.2 知識圖譜嵌入的主要方法
多數(shù)知識圖譜以所有已知的三元組進(jìn)行模型訓(xùn)練,但是這樣的任務(wù)難以滿足所有的應(yīng)用,所以當(dāng)前的研究開始關(guān)注知識圖譜中額外信息的嵌入,如屬性值、實(shí)體類型及關(guān)系路徑等。
目前,知識圖譜嵌入的方法主要分為3類——轉(zhuǎn)移距離模型、語義匹配模型和考慮附加信息的模型。其中,以TransE模型[13]為代表的轉(zhuǎn)移距離模型的應(yīng)用最廣泛。
TransE作為知識圖譜嵌入的主要手段,完成了實(shí)體與關(guān)系的向量化,也為本文的嵌入模型提供了基礎(chǔ)支撐。
雙向長短期記憶網(wǎng)絡(luò)由前向LSTM與后向LSTM組合而成。一個前向的LSTM利用過去的信息,一個后向的LSTM利用未來的信息。在當(dāng)前時刻下,可以同時利用雙向的信息,所以會比單向LSTM的預(yù)測更加準(zhǔn)確。
BiLSTM的結(jié)構(gòu)如圖2所示,每個節(jié)點(diǎn)為LSTM神經(jīng)元。訓(xùn)練過程中,將每個訓(xùn)練序列分為前向和后向兩個獨(dú)立的遞歸神經(jīng)網(wǎng)絡(luò),并最終連接同個輸出層。
本文系統(tǒng)通過搭建知識圖譜嵌入模型,通過神經(jīng)網(wǎng)絡(luò)進(jìn)行分類,最終實(shí)現(xiàn)惡意域名檢測的功能。系統(tǒng)框架圖如圖3所示,首先對DNS日志信息進(jìn)行預(yù)處理,獲取所需的統(tǒng)計(jì)特征后,提取出對應(yīng)的實(shí)體、關(guān)系以及屬性存入知識圖譜。其次,將知識圖譜中的存儲實(shí)體通過設(shè)計(jì)的嵌入模型完成數(shù)據(jù)向量化表示。最后,基于嵌入模型的輸出,利用神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練和驗(yàn)證。下面將詳細(xì)講解系統(tǒng)的各個模塊。
圖2 雙向LSTM結(jié)構(gòu)
圖3 系統(tǒng)框架
本文的原始研究數(shù)據(jù)集為DNS日志,包括DNS響應(yīng)記錄和DNS權(quán)威相應(yīng)資源記錄。本模塊將日志中的數(shù)據(jù)與知識圖譜中的實(shí)體、關(guān)系以及屬性相轉(zhuǎn)換。
主要的轉(zhuǎn)換實(shí)體如圖4所示??蛻舳薎P為請求發(fā)起方,DNS請求實(shí)體主要包含屬性如表1所示,DNS應(yīng)答實(shí)體主要包含屬性如表2所示。
圖4 主要轉(zhuǎn)換實(shí)體
表1 DNS請求實(shí)體屬性
表2 DNS應(yīng)答實(shí)體屬性
除了上述表1和表2中的屬性外,通過處理數(shù)據(jù)提取了頻率、存活時間等統(tǒng)計(jì)特征作為實(shí)體屬性,之后將處理完的數(shù)據(jù)存入知識圖譜數(shù)據(jù)庫中,為嵌入模塊提供數(shù)據(jù)支撐。
本文使用的嵌入模型不單單對于實(shí)體和關(guān)系進(jìn)行嵌入,也包含了對于屬性值的嵌入。嵌入模型主要由兩部分組成,一部分為三元組的嵌入,另一部分為實(shí)體屬性的嵌入,如圖5所示。
圖5 嵌入模型
為了使得屬性嵌入與三元組嵌入的結(jié)果處于一個統(tǒng)一的向量空間,系統(tǒng)會同時訓(xùn)練這兩個模塊,其中三元組嵌入使用TransE來進(jìn)行實(shí)體對其的嵌入。TransE是基于實(shí)體和關(guān)系的分布式向量表示,模型受word2vec啟發(fā),利用了詞向量的平移不變現(xiàn)象。其中,定義一個距離函數(shù)d(h+r,t),用來衡量h+r和t之間的距離,在實(shí)際應(yīng)用中可以使用L1或L2范數(shù)。在模型訓(xùn)練過程中采用最大間隔方法,最小化目標(biāo)函數(shù),目標(biāo)函數(shù)如下:
其中,S為三元組集合;S′為負(fù)采樣的三元組,通常隨機(jī)生成;γ為取值大于0的間隔距離參數(shù)。梯度更新只需計(jì)算距離 d(h+r,t)和 d(h′+r′,t′)。
對于屬性嵌入,同樣借鑒上述模型的思想,但是差別在于將屬性作為三元組中的關(guān)系以及將屬性值作為三元組中的尾實(shí)體進(jìn)行訓(xùn)練。由于在這個基礎(chǔ)上的訓(xùn)練的最終結(jié)果會導(dǎo)致屬性值類似于實(shí)體的情況存在,為了避免某些含義不同的相同值被重復(fù)訓(xùn)練,如AA的屬性值為1、TC的屬性值同樣為1,如果同時訓(xùn)練兩者會導(dǎo)致最終的訓(xùn)練結(jié)果指向同一個屬性值1,但在含義上兩者是不同的,所以系統(tǒng)對屬性值進(jìn)行了區(qū)分。
本系統(tǒng)的神經(jīng)模型網(wǎng)絡(luò)模型如圖6所示。
圖6 神經(jīng)網(wǎng)絡(luò)模型
嵌入模型完成了輸入的向量化過程,所以神經(jīng)網(wǎng)絡(luò)模型主要用于分類,模型的輸入為實(shí)體、關(guān)系以及屬性值的序列化向量。考慮到長度不一的問題,這里對于數(shù)據(jù)進(jìn)行分析,選取合適的長度對過長的序列進(jìn)行截取,對過短的序列進(jìn)行補(bǔ)長處理。
本模型選用BiLSTM雙向長短期記憶網(wǎng)絡(luò)的優(yōu)點(diǎn)在于能夠?qū)W習(xí)序列中向量的上下文關(guān)系,同時包括前向的向量和后向的向量,從而更好地提取特征進(jìn)行分類。
本文實(shí)驗(yàn)基于ubuntu16的系統(tǒng),訓(xùn)練用顯卡為Nvidia 1080Ti,使用基于Keras的主流深度學(xué)習(xí)框架進(jìn)行訓(xùn)練。
本文使用的數(shù)據(jù)集為某網(wǎng)絡(luò)中心抓取的7日DNS日志信息鏡像信息,約有42億條數(shù)據(jù)。為了從中獲取有效的訓(xùn)練數(shù)據(jù)集,構(gòu)建了一個程序?qū)ζ溥M(jìn)行過濾。在過濾掉一部分無用日志信息后,基于原有的惡意域名黑名單采集負(fù)面樣本(黑名單上的惡意域名通過VitusTotal進(jìn)行驗(yàn)證),而對于正面樣本選取Alexa前1 000的域名作為篩選標(biāo)準(zhǔn)。然而,在這種情況下,正面樣本和負(fù)面樣本的比例極度不均衡,負(fù)面樣本的比例較少,最后通過隨機(jī)選取正面樣本的方式保持?jǐn)?shù)據(jù)集的正負(fù)樣本比例為1:1。
正負(fù)樣本的個數(shù)都為6 180個,通過將正負(fù)樣本轉(zhuǎn)化為知識圖譜中的實(shí)體、屬性值和關(guān)系后,可以獲取28 950個實(shí)體以及屬性值實(shí)體和39種關(guān)系。這里將屬性值同樣看為實(shí)體是基于嵌入模型,因?yàn)樵谟?xùn)練過程中屬性值與實(shí)體是等價的。
本系統(tǒng)的主要模型表現(xiàn)為最終的檢測結(jié)果,所以主要選取準(zhǔn)確率和F1-Score,計(jì)算方式如下:
其中TP是將正類預(yù)測為正類的數(shù)量,TN是將負(fù)類預(yù)測為負(fù)類的數(shù)量,F(xiàn)P是將負(fù)類預(yù)測為正類的數(shù)量,F(xiàn)N為將正類預(yù)測為負(fù)類的數(shù)量。
本系統(tǒng)的最終目標(biāo)為檢測出惡意域名。為了更好地比較檢測結(jié)果,對使用RNN模型、LSTM模型以及BiLSTM模型的檢測模型分別進(jìn)行實(shí)驗(yàn)觀測,綜合比較其優(yōu)劣。
對于數(shù)據(jù)集,采用8:2的比例重新劃分訓(xùn)練集和測試集。通過嵌入模型,所有的實(shí)體、屬性值以及關(guān)系已經(jīng)轉(zhuǎn)換為100維向量。同時,綜合比較訓(xùn)練集中的序列長度,選取的序列長度為68。對于長度不足的序列,通過補(bǔ)零向量補(bǔ)至長度為68;對于長度過長的序列則進(jìn)行截取。
表3顯示了各模型在不同訓(xùn)練迭代時的準(zhǔn)確率,這里的F1值基于正面樣本。實(shí)驗(yàn)整體采用消融分析的方式,將模型的batchsize設(shè)置為64。通過實(shí)驗(yàn)發(fā)現(xiàn),當(dāng)epoch選為20時,模型已經(jīng)基本收斂,模型的分類效果已經(jīng)達(dá)到全局最優(yōu)。
從表3可以看出,對于3種不同的神經(jīng)網(wǎng)絡(luò)分類模型,無論是ACC值還是F1-Score值,BiLSTM明顯優(yōu)于另外兩種,而LSTM相較于RNN也更優(yōu)。在訓(xùn)練集上,模型的準(zhǔn)確率最高可達(dá)99.31%,F(xiàn)1-Score最高可達(dá)99.32%。
綜上,在進(jìn)行惡意域名檢測時,BiLSTM效果良好,原因可能在于輸入序列在前后文的內(nèi)容上存在較強(qiáng)的關(guān)聯(lián)性,同時驗(yàn)證了本系統(tǒng)嵌入模型的優(yōu)越性。
表3 不同模型的實(shí)驗(yàn)結(jié)果
本文提出了一個高準(zhǔn)確率的基于知識圖譜的惡意域名檢測系統(tǒng),使用知識圖譜嵌入模型和BiLSTM深度神經(jīng)網(wǎng)絡(luò)等技術(shù),從DNS日志中整合有效信息,深度提取信息特征,最終完成惡意域名的檢測分類。實(shí)驗(yàn)證明,該系統(tǒng)檢測性能良好,相較其他模型有較高的準(zhǔn)確率。然而,系統(tǒng)仍有部分不足,后續(xù)工作將主要針對系統(tǒng)的泛化能力和對一些額外統(tǒng)計(jì)特征的研究進(jìn)一步提高對惡意域名的檢測能力。