周昌令,欒興龍,肖建國
?
基于深度學習的域名查詢行為向量空間嵌入
周昌令1,2,欒興龍1,2,肖建國3
(1. 北京大學計算中心,北京 100871;2. 北京大學信息科學技術學院,北京 100871;3. 北京大學計算機科學技術研究所,北京 100871)
提出一種新的分析DNS查詢行為的方法,用深度學習機制將被查詢域名和請求查詢的主機分別映射到向量空間,域名或主機的關聯(lián)分析轉化成向量的運算。通過對2組真實的校園網DNS日志數(shù)據(jù)集的處理,發(fā)現(xiàn)該方法很好地保持了關聯(lián)特性,使用降維處理以及聚類分析,不僅可以讓人直觀地發(fā)現(xiàn)隱含的關聯(lián)關系,還有助于發(fā)現(xiàn)網絡中的異常問題如botnet等。
DNS;深度學習;上下文;降維;行為分析;層次聚類
域名服務(DNS)是互聯(lián)網最重要的基礎應用之一,眾多互聯(lián)網中的業(yè)務都與它緊密關聯(lián),如Web、郵件、內容分發(fā)網絡(CDN)等。同時,一些惡意行為也利用或針對DNS的特性來達到攻擊的目的。例如,僵尸網絡(botnet)采用FastFlux手段來躲避打擊,其基本思想就是不斷變化域名與IP的對應關系。因此,主機的DNS查詢行為與網絡的運行狀況緊密相關。
主機可能在多種情況下發(fā)起DNS查詢的行為,根據(jù)發(fā)起方可以分為2大類別:一類是與用戶活動相關的,包括用戶主動發(fā)起的請求,如瀏覽Web網頁等以及由用戶觸發(fā)的請求,網頁中加載的圖片、廣告等;另一類是用戶活動無關的,是由軟件或系統(tǒng)自動產生的,如軟件自動更新、證書檢查、郵件黑名單查詢以及受控僵尸節(jié)點請求指令等。
第一種類型的行為與用戶的興趣偏好相關。分析用戶經常查詢的網站域名的關聯(lián)關系有助于理解用戶需求,提升服務質量,改善用戶體驗。由于分析結果與實際的網絡環(huán)境緊密相關,這方面的研究并不多。Moghaddam等[1]用自組織映射(SOM)分析了無線用戶訪問的域名之間的關聯(lián)性,他們發(fā)現(xiàn)一些邏輯上關聯(lián)的網站域名生成的SOM圖形狀也非常相似,如“itunes”和“netflix”、“washingtonpost”和“cnet”等。他們的工作只限于無線,且只分析了人工標注的100個域名。這一類行為產生的DNS日志主要是A和CNAME記錄,查詢的大部分也是真實存在的域名。
第二種類型的行為反映了主機特性。相關研究主要集中在發(fā)現(xiàn)網絡中的異常情況,如發(fā)送垃圾郵件[2]、惡意域名[3],botnet[4,5]等。其中botnet受關注程度最高,因為它對網絡的影響非常大,又采用了各種手段來躲避打擊。其中域名生成算法(DGA, domaingenerationalgorithm)是botnet應用得最多的一種手段,受控節(jié)點高頻地查詢不斷變化的域名,主控節(jié)點在需要時把即將出現(xiàn)的域名與發(fā)布指令的IP對應關系注冊上就可以控制該僵尸網絡。這樣由于所查詢的變化目標域名絕大部分都是無效的,將產生大量返回失敗的DNS查詢記錄(ServerFail或NxDomain)[6]。
此前對DNS域名查詢行為的相關研究工作,主要集中在特征參數(shù)的選取[3,7],以及關聯(lián)信息的描述[5]等方面,通常再結合機器學習的手段來區(qū)分不同的行為。本文提出一種新的基于深度學習的方法來研究DNS域名查詢行為:將被查詢域名和發(fā)起查詢請求的主機IP分別映射到維的實向量空間,對域名或主機的分析轉化成空間中的向量運算,通過降維還可以對域名或主機的關聯(lián)特性進行直觀的展示。
本文的主要貢獻如下。
1) 提出了一種將DNS查詢行為映射到向量空間的方法。通過構造被查詢域名列表以及請求查詢主機列表,用這2種列表作為深度學習的訓練數(shù)據(jù),獲得域名和主機的向量表示,然后在向量空間中分析元素之間的關聯(lián)性。
2) 借鑒了在自然語言處理(NLP)領域取得很好效果的深度學習優(yōu)化算法[8],實現(xiàn)了對海量DNS查詢日志數(shù)據(jù)的高效處理。對一個典型的大中型校園網網絡的核心DNS服務每天的查詢日志進行單機分析,其中深度學習算法的運行時間僅需要30~45 min。
3) 使用真實的校園網運行環(huán)境的DNS數(shù)據(jù)進行了驗證。本文選取了2組來自不同校園網的數(shù)據(jù)集,在訓練后得到的向量空間進行分析,發(fā)現(xiàn)映射后的向量很好地保留了域名或主機之間的關聯(lián)特性,通過降維和交互式可視化處理后可以容易地發(fā)現(xiàn)隱蔽的關聯(lián)關系。本文還通過計算向量之間的相似度對域名做層次聚類分析,結合域名信息熵發(fā)現(xiàn)與DNS相關的攻擊行為如botnet等。
為了便于后面描述,在此先定義一些相關的概念。
定義1 派生鄰近關系(derived proximity relationship)。按所描述的目標不同,可以分為被查詢域名的派生鄰近關系和請求查詢主機的派生鄰近關系。以被查詢域名的派生鄰近關系為例:在一段時間內,如果有一系列的主機都共同請求查詢過A、B這2個域名,則認為A和B是鄰近的。并且,發(fā)起共同請求的主機越多,則A與B的鄰近程度越高。類似地,2個主機查詢的相同域名越多,它們也越鄰近。
派生鄰近關系通常反映了實際中存在的關聯(lián)關系。以域名為例,假如多個域名所承載的業(yè)務存在邏輯上的聯(lián)系,用戶往往會順序訪問這些業(yè)務,如提供統(tǒng)一身份認證的系統(tǒng)與需要認證才能訪問的業(yè)務系統(tǒng),用戶經常會先后查詢它們的域名。又如用戶點擊網頁的鏈接訪問新的站點,以及網頁中加載來自不同域名的圖片時,起始站點的域名和關聯(lián)站點的域名會先后被查詢。這種先后查詢的域名最終形成域名關聯(lián)的上下文關系。本文通過保留這種先后順序來研究派生鄰近關系(或關聯(lián)關系)。
定義2 被域名查詢列表(QDL, queried domains list)。在一段時間內,主機產生的DNS查詢請求可以用序列表示,其中,每個主機對應一條QDL。同一個域名可以在列表內多次出現(xiàn)。
如圖1所示,此列表可以從DNS查詢日志信息中產生,圖中每個方括號中的內容都是一個被查詢域名列表。
屬于同一條QDL的域名保留了它們被查詢的先后順序,即保留了上下文的關聯(lián)性(或派生鄰近關系)。由于域名與自身的鄰近(關聯(lián))關系不需要考慮,因此同一域名在列表中連續(xù)出現(xiàn)時只保留一次,如果與其他域名交替重復出現(xiàn),則全部保留。域名按被查詢的先后順序排列。如果主機在很長一段時間沒有查詢活動,或者列表的長度超過預設值,則產生一條記錄。不同主機的長度一般不同,一個主機也可以有多條。在本文中僅將日志里返回A和CNAME的記錄納入。
類似地,研究主機的派生鄰近關系時,要用到下面的定義。
定義3 請求查詢主機列表(QHL, querying hosts list)。在一段時間內,查詢同一域名或子域的主機用序列表示。其中,相同的可以多次出現(xiàn)在列表中。
實際中,不同主機查詢DNS的域名是比較分散的,所以有時候需要關注查詢相同域名后綴的主機。域名的多個字段由點分隔符“.”分開,例如, www.example.com。2個或多個域名從右往左,它們所具有的公共字段為它們的公共域名后綴。一般地,需要關注的是最長的公共后綴。
本文中重點關注產生失敗查詢(返回NxDomain或ServerFail信息)的主機,這是因為它們通常與非正常的通信通道[6]以及惡意行為如botnet[4]相關。由于這類失敗查詢的前綴大量變化,而后綴在一段時間是保持不變的,所以需要按最長公共后綴產生的QHL才能把有類似行為的主機放到同一個上下文環(huán)境中。本文在第3.4節(jié)具體描述用來提取這類查詢的最長公共后綴的算法。
定義4 向量空間嵌入(vector space embedding)。數(shù)學上嵌入是指一個數(shù)學結構經映射包含到另一個結構中[9]。如果存在一個保持結構的單射,其中目標結構為維的向量空間,這個映射就給出了一個向量空間嵌入。本文中向量空間嵌入特指對列表集合(由QDL組成或由QHL組成)中所有不同的元素(域名D或主機H)所組成的集合,可以映射到維的實向量空間。即對集合來說,存在如下映射關系:。
將列表中的元素進行向量空間嵌入的基本思想最早由Hinton在1986年提出[10],該文中稱為分布式表示(distributed representation)。現(xiàn)在該方法主要用在自然語言處理(NLP)中,將單詞語義研究轉化成對應的維實數(shù)向量的運算[8],并取得了很好的效果[11]。
將DNS查詢行為與自然語言處理進行類比,列表QDL或QHL對應文檔,列表中的元素(域名或主機)對應單詞,列表的集合對應大量文檔組成的語料。通過從DNS查詢日志中構建QDL和QHL,保留了域名查詢行為的上下文關聯(lián)關系,從而得到用于進行深度學習的訓練數(shù)據(jù)。
3.1 深度學習
求解向量空間嵌入模型早期的方案是采用一個多層的神經網絡進行訓練。2013年Mikolov 在文獻[8]中指出,可以通過一系列的優(yōu)化措施,有效降低計算的復雜度。例如使用3層(輸入—隱藏—輸出)的神經網絡,只對滑動窗口內的詞計算聯(lián)合概率,采用優(yōu)化的Huffman編碼讓詞頻近似相等的單詞其隱藏層激活的值基本一致,從而減少隱藏層數(shù)目等,此外還采用了一些其他的優(yōu)化計算方法。實際上,一個優(yōu)化的單機版本word2vec[12]一天可訓練上千億單詞。
本文借鑒文獻[8]的方法,并采用了文獻[13]中的Skip-gram模型。如圖2所示,對于被查詢域名列表QDL(請求查詢主機列表QHL可以類似地處理)中的元素,以及其上下文窗口中的各元素,它們所對應的向量空間表示分別為和。
(2)
3.2 降維
降維(dimensionreduction)是指采用映射關系,將高維度空間中的點映射到低維度空間中。特別地,高維向量空間,當時人們無法直觀理解其中的數(shù)據(jù),故通常選擇將其降維到=2或= 3。
本文采用-SNE[14]來對得到的維向量空間做降維處理,以方便可視化理解。一般地,對高維空間中的元素,-SNE按下式計算它們的聯(lián)合概率p
(3)
最后,通過讓高維和低維空間中的KL距離(Kullback–Leiblerdivergence)取極小值,得到向量在低維空間中的映射。此映射保持了節(jié)點映射前后的相似度,因此非常適合對向量空間嵌入后的可視化處理。
(5)
3.3 層次聚類和相似度量
層次聚類(hierarchical clustering)[15]是一種可以根據(jù)給定的相似度閾值對節(jié)點聚類的方法,它需要計算節(jié)點之間的相似程度。本文中用維向量的運算來度量節(jié)點的派生鄰近程度或相似程度。令是列表QDL或QHL中的元素,它可用維向量來表示,則可以定義元素和元素之間的相似程度用單位長度向量的內積來計算
本文只關心那些節(jié)點之間相似程度很高的簇,并且要求簇內的節(jié)點至少2個以上。因此選擇complete-linkage clustering方法[16],達到閾值后就停止迭代,這樣可以大大提高計算效率。
3.4 域名最長公共后綴發(fā)現(xiàn)算法
本文在構建QHL時,重點關注返回的是查詢失?。⊿erver或NxDomain)的記錄。由于查詢的大多是一些并不存在的域名,它們幾乎不重復,很多情況由大量變化的前綴和少數(shù)不變的后綴組合而成,因此按域名后綴構建QHL是合理的選擇。由于DNS查詢日志的數(shù)據(jù)量往往非常巨大,加上需要對從長到短的后綴分別組合,直接記錄每個IP所有訪問過的域名后綴效率不高且空間占用較多。本文中采用了CountingBloomFilter[17]來減少對存儲空間的需求。具體算法描述如下,其中LD()函數(shù)將返回從長到短的各級域后綴的集合。
算法1 域名最長公共后綴發(fā)現(xiàn)
輸入:cbf counting Bloom filter
: 發(fā)起查詢的主機
域名
公共后綴最少出現(xiàn)次數(shù)
: 查詢主機列表
輸出:更新后的查詢主機列表
7) break
8) end
9) end
11) end
12) return
4.1 數(shù)據(jù)來源
本文使用了2組來自不同校園網環(huán)境的數(shù)據(jù)集。數(shù)據(jù)集PKU_DNS是在北京大學校園網的運行環(huán)境中對5臺核心DNS服務器的流量進行采集得到的。此采集系統(tǒng)采用Passive DNS 方案[18],通過交換機端口鏡像把校園網的幾臺核心DNS服務器的流量全部送到采集系統(tǒng),從而記錄下校園網用戶詳細的DNS查詢日志。其數(shù)據(jù)規(guī)模如表1所示。
表1 北京大學數(shù)據(jù)集PKU DNS的規(guī)模
數(shù)據(jù)集BIT_DNS是北京理工大學校園網中一臺核心DNS服務器的syslog日志,其數(shù)據(jù)規(guī)模如表2所示。由于該服務器沒有限制查詢的來源IP,而這幾天恰好有來自校外的DNS放大攻擊[19],使該數(shù)據(jù)集BIT_DNS每天請求查詢的不同主機數(shù)量偏大。
表2 北京理工大學數(shù)據(jù)集BIT DNS的規(guī)模
4.2 數(shù)據(jù)分析
數(shù)據(jù)分析使用的操作系統(tǒng)ubuntu 14.04.2 LTS,16 GB內存,4CPU。使用python代碼,完成3部分工作:1)從2個不同格式的原始數(shù)據(jù)集分別生成相應的QDL和QHL列表;2)對各自得到的列表采用深度學習算法訓練出向量空間嵌入表達,然后再調用-SNE[14]對得到維向量空間結果進行降維處理后,生成d3.js[20]需要的數(shù)據(jù)格式,方便通過瀏覽器交互地展示;3)對向量空間中的節(jié)點進行層次聚類[15],輸出高相似度的節(jié)點簇。在規(guī)模較大的PKU_DNS數(shù)據(jù)集上,單機上對每天的DNS日志文件進行列表提取過程大約需要2~3 h,向量空間嵌入的過程大約需要30~45 min,層次聚類過程大約需要15~30 min。
本文所選用的參數(shù)情況是:被查詢域名列表QDL的超時時間為1 h,每個QDL/QHL的長度限制為不超過1 000條記錄,當超時或長度超過限制時,輸出對應的列表作為訓練數(shù)據(jù)。由于DNS查詢行為具有顯著的按天重復的周期性[21],因此訓練數(shù)據(jù)以每天24 h為分隔。在計算最長公共后綴時,同一IP查詢某個后綴失敗次數(shù)不小于10會被記錄。深度學習進行向量空間嵌入的參數(shù)[12]為:向量維度選取,元素最少出現(xiàn)次數(shù)≥5,上下文窗口,隨機梯度下降學習率。
4.2.1 域名派生鄰近關系分析
通過將域名向量空間嵌入后,可以預期關系越近的域名,在向量空間中的距離也越近。圖3中展示了幾組在向量空間中鄰近的域名。第一組是與北京大學主頁www.pku.edu.cn相鄰的域名,可以看到,幾乎全部是校園網的內部域名,其中portal是北大校內門戶,pkunews是新聞網,Web5承載著主頁的一些業(yè)務,www.bjmu.edu.cn是醫(yī)學部的主頁,后面幾個也是校園網用戶經常訪問的一些站點,這些域名之間有直接的邏輯關系。第2組是與美國化學學會pubs.acs.org相鄰的域名,可以發(fā)現(xiàn)除了化學學會的子域網站外,其他幾個域名幾乎都是與學術研究有關的網站,唯一的例外是其中第5條后綴為rackcdn.com的域名,分析發(fā)現(xiàn)此域名是由pubs.acs.org首頁內加載了一個LiveChat的腳本所引起的。第3組域名展示的是美國物理學會刊物統(tǒng)計counter.aps.org相近的域名,可以看到,幾乎全部是與學術及出版相關的,而且是和物理學科有關聯(lián)的。最后一組域名則全部都是和人人網www.renren.com相關的域名。從這幾組相近的域名關系可以看出,如果域名所承載的業(yè)務緊密關聯(lián),或者涉及的內容對用戶具有相似性,在進行向量空間嵌入變換后,它們在向量空間也相鄰。類似的方式分析在BIT_DNS數(shù)據(jù)集中的典型的鄰近域名,也發(fā)現(xiàn)有類似的規(guī)律,如與北理工主頁www.bit.edu.cn相似度較高的域名幾乎都是北理工內部的一些網站。
圖4是PKU_DNS數(shù)據(jù)集2015年3月10日的被訪問域名嵌入后的向量空間進行了降維(使用-SNE),然后在二維空間中進行展示。為了更好地看到效果,做了如下處理。一是將部分域名按照它們的后綴進行了簡單的標記,如*.apple.com的域名都標識為apple,為了方便查看,本文在后期處理時在圖中增加了標注信息。二是節(jié)點支持交互式查詢,可以顯示每個點對應的域名。可以發(fā)現(xiàn),圖中有許多明顯的節(jié)點簇。它們大多數(shù)是由具有相同域名后綴的網站組成,或由屬于同一個公司的不同域名后綴的域名組成(如renren.com和xiaonei.com)。同一后綴的域名基本在同一個區(qū)域,但*.qq.com是個例外,在圖4中左下角的位置,形成了2個有一定距離的簇,這可能和它有差別很大的業(yè)務類型有關(即時通信和內容展示等)。另外一些簇是由截然不同的域名后綴組成的,例如標記為scholar學術的簇(位于左上角偏下的位置)。一些視頻類網站如56、土豆、愛奇藝等各自成簇,相互之間又靠得很近。除此之外,圖4的中央偏左的位置由大量后綴各異的節(jié)點組成,且相互之間并不緊密。它們主要是由一些低頻訪問的站點組成。由此發(fā)現(xiàn),不同數(shù)據(jù)集所得到的向量空間嵌入的結果并不一致,節(jié)點的絕對位置往往不一樣,但節(jié)點之間的相對位置具有前述的規(guī)律,即屬于同一公司的站點會被各自聚集在一起,如apple(蘋果)、taobao(淘寶)、sohu(搜狐)等。并且,不同數(shù)據(jù)集的簇的大小形狀也略有差異。一方面,這和-SNE算法有關,它的降維結果可能出現(xiàn)絕對位置的變化。另一方面也反映出這2個學校的用戶訪問網站的興趣偏好有所差異。
4.2.2 主機派生鄰近關系分析
前面提到,對失敗的DNS訪問,采用的是QHL列表,即最終是對訪問域名的主機IP進行向量化。如圖5所示為2015年3月11日北京大學校園網內發(fā)起失敗查詢的IP經過向量化,并采用-SNE降維后的數(shù)據(jù)(為了方便查看,本文在后期處理時在圖中增加了標注信息)。其中明顯獨立成簇的節(jié)點主要有這幾種情況:一是配置了錯誤的域名后綴,圖中標記為pku的簇是不少用戶錯誤設置了pku.edu.cn后綴引起的,標記為gsm和ccer的2個簇是2個學院自己維護的機房的IP,這些主機對每個待查域名都會添加錯誤的后綴再進行查詢,結果就產生了大量的NX記錄;另一種情況是自定義的軟件通信通道,如郵件服務器訪問DNSBL查詢黑名單,防病毒軟件(如mcaffe查詢云病毒庫)等;還有一些是用戶端使用BT軟件處理過期的torrent文件,大量重復查詢一些不再提供服務tracker服務器引起的;最后就是由于DNS相關的攻擊(如botnet等)形成的。
這些標簽數(shù)據(jù)是通過圖中的聚簇信息,找到對應的IP,然后根據(jù)前面歸并時的最長后綴來確定。在處理過程中發(fā)現(xiàn)在圖中有一個明顯集中的簇由6個IP組成,它們的坐標非常接近,幾乎重疊在一起。為了方便展示,本文在圖中把它們的標識點放大顯示,在圖的中下位置。在這一天中,它們發(fā)起查詢的部分域名后綴如圖6所示。注意這只是后綴,實際查詢時其前綴是高頻地不斷變化的,具有典型的DGA域名的特征。
a.fjhsxs.comwww.hsexpress.cn b.fjhsxs.comwww.hxj8453.com ggman.weiaojia.comwww.lundaddc.cn mk.mhzjs.cnwww.weijie130.com vip.mcgift.com.cnwww.weijie131.com www.543ba.comwww.weijie132.com www.543bk.comwww.weijie133.com www.999ae.comwww.weijie666.com www.999be.comwww.zszhanyi.cn
進一步的分析發(fā)現(xiàn),這幾個IP基本都提供了匿名DNS服務,允許任意主機使用它們來進行遞歸查詢。通過對圖6這些域名的Whois查詢以及利用當天的出口NetFlow[22]數(shù)據(jù)對這幾個IP的進出流量進行分析,確認這是一起針對目標域名的DNS放大攻擊(DoS攻擊)[19]。
4.2.3 聚類分析
得到域名或主機的向量空間嵌入表示后,通過計算向量之間的內積可以得到任意2個節(jié)點之間的相似程度,繼而可以使用層次聚類方法對節(jié)點進行成簇分析。本文只關心那些相似程度很高的節(jié)點簇,選擇的聚類閾值是0.9,并且要求簇內節(jié)點至少2個以上。由于的解釋和分析往往需要結合網絡環(huán)境中的用戶屬性來進行,因此本文只對得到的域名向量進行分析。前面提到業(yè)務關聯(lián)的域名在向量空間中比較鄰近,這些域名往往具有相同或類似的域名后綴,計算出這些域名的信息熵[23]就會比較低;而像botnet等利用DGA生成的一組域名其信息熵就會比較高。
通過層次聚類得到節(jié)點簇后,按它們的信息熵從高到低排列,發(fā)現(xiàn)在BIT_DNS數(shù)據(jù)集中,排在前面的2個域名簇,每簇都有上百個域名聚集在一起。它們的部分域名如圖7和圖8所示。可以看到,這2組域名在規(guī)律上類似,但又有所差別,并且不同組域名之間的相似度較低。進一步的分析發(fā)現(xiàn),這些域名分別屬于conficker botnet的2個變種。由于感染同種類別botnet的節(jié)點會以類似的規(guī)律定期查詢相同的域名,使這些被查詢域名之間產生派生鄰近關系,從而在向量空間表示的節(jié)點之間非常相似。
riijlnimo.bizbcdhaflh.netiqqzmokgde.net tuhfyfa.ccqqwjbhqa.netlspnzfc.net mhgdmuic.infoxolxlnxho.netlxiqeltz.net hoynorbaf.orgceisk.orgtyqqpui.net mgkrxfu.bizuqzfmfakkcw.biznvkzym.biz mwkpwowj.ccoqrksmcf.comzatvxxiczl.cc utnefbzyfy.comhelafi.infoizwcjusasmi.info
ivoljjpg.cclelexqcs.infohbdjdbu.com aittfmp.cnmeyohwrpv.infotshkd.com hrviyokg.combhvof.orgjjjgcpmxvbg.info xdnwa.orgkfzsm.orgpzqeytx.info zhbwyda.wsbltbxoirrvd.bizgklvmeulwc.info ildmidpdys.bizxvamcooo.ccolrhdrmf.biz eyeiouzf.cnuhyupqcdhg.cnqtnukhqp.cc
在DNS行為分析方面,Dominik等[24]評估了1NN(1最近鄰)、多項式樸素貝葉斯分類器(MNB, multinomial naive bayes classifier)和模式挖掘(PM, pattern mining)這3種算法在利用DNS日志對用戶行為模式進行挖掘方面的效果。袁春陽等[25]發(fā)現(xiàn)基于行為與域名查詢關聯(lián)在識別惡意域名時具有更好的效果,且可以監(jiān)測到未知的病毒。Gao等[21]提出了一種利用已知的惡意域名作為種子從DNS日志中發(fā)現(xiàn)未知的惡意域名的方法,其核心思想是利用域名解析請求在時間上的共現(xiàn)規(guī)律,將與惡意域名經常相伴出現(xiàn)的域名標記為可疑域名,再通過TF-IDF評分等方法將其可疑性量化。Choi等[5]采用關聯(lián)矩陣的方法來發(fā)現(xiàn)共同查詢現(xiàn)象,他們對每個域名形成一個二值矩陣,列向量是時間窗口,行向量是主機查詢情況,如果在時間窗口主機查詢了該域名,則矩陣對應位置(,)設置為1,否則設置為0。之后對不同的域名進行相似度聚類。Choi的方法面臨構造的矩陣維度非常大,運算復雜度很高的問題。
對DNS查詢失敗的記錄分析方面,Krishnan等[26]提出了利用閾值隨機游走的方法來分析日志中的NxDomain記錄,也考慮了共同查詢現(xiàn)象。他們的方法能夠用較少的失敗查詢數(shù)據(jù)就發(fā)現(xiàn)一些惡意域名,但不能區(qū)分不同類別的失敗查詢,故他們對如spamhaus之類的DNSBL需要放入白名單,也沒有考慮主機錯誤配置DNS后綴對結果的影響。
Mikolov提出的word2vec[8],首次發(fā)現(xiàn)了語義的相近關系可以直接用詞向量的運算直接獲得,極大地推動了詞向量方法在自然語言領域的應用,在語義分析、詞性分析、情感分析以及文檔翻譯[27]等方向取得了很好的進展。Levy等[28]證明了關于采用類似于詞嵌入(word embedding)的方式進行向量空間嵌入的方式可以保持元素之間的相關性,采用這種詞嵌入方式表示與互信息(PMI, pointwise mutual information)[29]表示在一定的前提下是等價的,而PMI就是用來處理元素之間關聯(lián)度的。Perozzi等[30]提出的DeepWalk方法將詞向量思想推廣到圖的處理,基于深度學習方法,把對圖中節(jié)點的隨機游走(random walk)當成一個文檔進行訓練,在社會化網絡多標簽分類任務中取得了很好的效果。Tang等[31]提出的LINE把DeepWalk的工作推廣到一般的圖處理。后兩者的方法在應用到DNS查詢行為時會把域名和主機同時向量空間嵌入,一是計算量大幅增加影響處理效率,二是影響了最終的相鄰效果。
本文提出了一種將網絡中的DNS查詢行為在向量空間嵌入的方法。通過構造被查詢域名列表和請求查詢主機列表,將域名或主機的隱含關聯(lián)關系用上下文共現(xiàn)機制來表示,然后利用深度學習的方法,將列表中的元素表示成維實數(shù)向量,用隨機梯度下降方法進行訓練,最終得到元素在向量空間中的表示,從而將元素的關聯(lián)分析轉化成向量的運算。使用這種方法得到的向量很好地保持了域名或主機的關聯(lián)信息。
本文使用真實校園網絡的運行數(shù)據(jù)來驗證向量空間嵌入方法。分別對北京大學和北京理工大學校園網核心DNS服務的查詢日志數(shù)據(jù)集進行處理,作為深度學習的訓練數(shù)據(jù),并得到各自的域名或主機的向量表示。發(fā)現(xiàn)這2個數(shù)據(jù)集上,向量空間中相鄰的節(jié)點往往具有顯著的關聯(lián)關系。為了直觀地發(fā)現(xiàn)節(jié)點之間的關系,本文采用-SNE方法進行降維,并采用了交互式的可視化來展示節(jié)點的信息,從而發(fā)現(xiàn)了在向量空間中鄰近節(jié)點的一些規(guī)律。在域名向量空間表示中,屬于同一公司如apple、taobao等的不同站點會因為其提供的業(yè)務具有關聯(lián)性而各自獨立成簇;不同組織或公司的域名,如果其站點提供的內容對用戶具有相似性,向量空間嵌入后也可能鄰近,如一些學術類的網站,這是用其他方法難于發(fā)現(xiàn)的。在主機向量空間表示中,本文通過域名最長公共后綴的算法產生查詢主機列表,得到的不同類別的查詢失敗記錄所關聯(lián)的節(jié)點各自獨立成簇,可以很好地區(qū)分各種產生失敗查詢的情況,并可幫助發(fā)現(xiàn)與DGA相關的域名攻擊情形。為了更好地發(fā)現(xiàn)成簇節(jié)點的特性,本文采用層次聚類方法對向量空間的節(jié)點進行分析。通過設置閾值只輸出那些節(jié)點之間相似程度很高、節(jié)點數(shù)量較多的簇,再結合域名的信息熵,本文在北京理工大學數(shù)據(jù)集上發(fā)現(xiàn)2組屬于不同botnet變種的查詢域名集合。由于聚類方法屬于無監(jiān)督學習,因此可以用于發(fā)現(xiàn)未知類型的域名查詢行為相關的攻擊如域名放大攻擊和botnet等。
在本文所使用的2個數(shù)據(jù)集上,數(shù)據(jù)規(guī)模不同,取得了類似的一些結果,因此本文的方法具有較好的適應性。但需要指出的是,本文所采用的深度學習機制依賴于訓練數(shù)據(jù)的量。數(shù)據(jù)量越大,結果越趨于穩(wěn)定,所展示的規(guī)律也更具有代表性。另外,本文的方法與自然語言處理所面臨的情況也有所不同。在自然語言處理中,其訓練語料是基本是不變的,而且單詞的語義也是基本穩(wěn)定的。而在域名查詢行為中,被查詢域名列表或請求查詢主機列表與所處的網絡環(huán)境相關,且是不斷增長的,隨著時間的增加域名查詢行為也可能發(fā)現(xiàn)變化。因此本文的方法更適合在規(guī)模較大的網絡環(huán)境中使用,且訓練數(shù)據(jù)的列表的時間跨度不宜過長。
本文提出了一種新的思路來處理域名查詢行為,在實際運行的數(shù)據(jù)中也取得了較好的效果。此方法有望在類似領域中得到應用,如網絡流量分析、日志分析等。同時也有一些問題需要進一步解決:1) 如何自動對向量空間中的元素進行分類并產生標簽;2) 如何更好地處理時間序列的數(shù)據(jù),做到實時在線運算,及時發(fā)現(xiàn)問題;3) 此方法目前對訓練數(shù)據(jù)量要求非常大,需要足夠的數(shù)據(jù)結果才會穩(wěn)定,但也意味著對當前數(shù)據(jù)的變化不敏感,如何發(fā)現(xiàn)當前新出現(xiàn)的異常,值得進一步探索。
[1] MOGHADDAM S, HELMY A. Spatio-temporal modeling of wireless users Internet access patterns using self-organizing maps[C]//2011 Proceedings IEEE INFOCOM. c2011: 496-500.
[2] CAGLAYAN A, TOOTHAKER M, DRAPAEAU D, et al. Behavioral analysis of fast flux service networks[C]//2010 43rd Hawaii International Conference on System Sciences. c2009: 1-9.
[3] BILGE L, KIRDA E, KRUEGEL C, et al. EXPOSURE: finding malicious domains using passive DNS analysis[C]//NDSS. c2011: 1-17.
[4] ANTONAKAKIS M, PERDISCI R. From throw-away traffic to bots: detecting the rise of DGA-based malware[C]// The 21st USENIX Security Symposium. c2012: 24.
[5] CHOI H, LEE H, LEE H, et al. Botnet detection by monitoring group activities in DNS traffic[C]//7th IEEE International Conference on Computer and Information Technology (CIT 2007). c2007: 715-720.
[6] CHEN Y, ANTONAKAKIS M. DNS noise: measuring the pervasiveness of disposable domains in modern DNS traffic[C]//Dependable Systems and Networks (DSN), 44th Annual IEEE/IFIP International Conference on. c2014: 598-609.
[7] CALLAHAN T, ALLMAN M, RABINOVICH M. On modern DNS behavior and properties[J]. ACM SIGCOMM Computer Communication Review, 2013,43 (3): 7.
[8] MIKOLOV T, CHEN K, CORRADO G, et al. Efficient estimation of word representations in vector space[J]. arXiv Preprint arXiv.1301. 3781.20B.
[9] WIKIPEDIA. Embedding[EB/OL]. https://en.wikipedia.org/wiki/1301. 3781.2013. Embedding, 2015.
[10] HINTON G E. Learning distributed representations of concepts[C]// The Eighth Annual Conference of the Cognitive Science Society. c1986: 1-12.
[11] LECUN Y, BENGIO Y, HINTON G. Deep learning[J]. Nature, 2015, 521 (7553): 436-444.
[12] REHUREK R. Word2vec in python, part two: optimizing. [EB/OL]. http://radimrehurek.com/2013/09/word2vec-in-python-part-two-ptimizing/,2015.
[13] MIKOLOV T, SUTSKEVER I, CHEN K, et al. Distributed representations of words and phrases and their compositionality[C]//Advances in Neural Information Processing Systems. c2013:3111-3119.
[14] MAATEN L V D, HINTON G. Visualizing data using-SNE[J]. Journal of Machine Learning Research, 2008, 9: 2579-2605.
[15] JAIN A, MURTY M, FLYNN P. Data clustering: a review[J]. ACM Computing Surveys (CSUR), 1999,31(3): 264-323.
[16] WIKIPEDIA. Complete-linkage clustering - wikipedia, the free encyclopedia[EB/OL]. https://en.wikipedia.org/w/index.php?title=Complete- linkage_clustering&oldid=625941679,2015.
[17] BRODER A, MITZENMACHER M. Network applications of bloom filters: a survey[J]. Internet Mathematics, 2004, 1 (4): 485-509.
[18] FJELLSKAL E B. Passive DNS tool[EB/OL]. https:// github.com/ gamelinux/passivedns,2015.
[19] 馬云龍, 姜彩萍, 張千里, 等. 基于IPFIX 的DNS異常行為檢測方法[J]. 通信學報, 2014, 35(z1): 5-9.
MA Y L, JIANG C P, ZHANG Q L et al. DNS abnormal behavior detection based on IPFIX[J]. Journal on Communications. 2014, 35(z1): 5-9.
[20] BOSTOCK M. Data driven documents[EB/OL]. http: //d3js.org/.
[21] GAO H, YEGNESWARAN V, CHEN Y, et al. An empirical reexamination of global DNS behavior[J]. ACM SIGCOMM Computer Communication Review, 2013, 43 (4): 267-278.
[22] CISCO. Cisco IOS NetFlow[EB/OL]. http:// www.cisco.com/go/ netflow.
[23] WIKIPEDIA. Entropy (information theory)-wikipedia, the free encyclopedia[EB/OL]. https://en.wikipedia.org/w/index.php?title= Entropy (information˙theory)&oldid= 674556523.2015.
[24] HERRMANN D, BANSE C, FEDERRATH H. Behaviorbased tracking: exploiting characteristic patterns in DNS traffic[J]. Computers & Security, 2013, 39:17-33.
[25] 袁春陽, 李青山, 王永建. 基于行為與域名查詢關聯(lián)的僵尸網絡聚類聯(lián)動監(jiān)測[J]. 計算機應用研究, 2012, 29(3):1084-1087.
YUAN C Y, LI Q S, WANG Y J. Linkage monitoring of cluster for botnet based on relevance of behavior and domain inquiry[J]. Application Research of Computers, 2012, 29(3):1084-1087.
[26] KRISHNAN S, TAYLOR T, MONROSE F, et al. Crossing the threshold: detecting network malfeasance via sequential hypothesis testing[C]//2013 43rd Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN). c2013: 1-12.
[27] ZOU W Y, SOCHER R, CER D, et al. Bilingual word embeddings for phrase-based machine translation[C]//2013 Conference on Empirical Methods in Natural Language Processing (EMNLP 2013).c2013: 1393-1398.
[28] LEVY O, GOLDBERG Y. Linguistic regularities in sparse and explicit word representations[C]//Proceedings of the 18th Conference on Computational Natural Language Learning (CoNLL 2014), c2014.
[29] WIKIPEDIA. Pointwise mutual information — Wikipedia, the free encyclopedia[EB/OL]. http://en.wikipedia.org/w/index.php? title= Pointwise˙mutual˙information&oldid= 650473510.
[30] PEROZZI B, SKIENA S. DeepWalk: online learning of social Representations[C]//The 20th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. c2014:701-710.
[31] TANG J, QU M, WANG M, et al. LINE: Largescale Information Network Embedding[J]. arXiv preprint arXiv:1503.03578, 2015.
Vector space embedding of DNS query behaviors by deep learning
ZHOU Chang-ling1,2, LUAN Xing-long1,2, XIAO Jian-guo3
(1. Computer Center, Peking University, Beijing 100871, China; 2. School of Electronics Engineering and Computer Science, Peking University, Beijing 100871, China; 3. Institute of Computer Science & Technology, Peking University, Beijing 100871, China)
A novel approach to analyze DNS query behaviors was introduced. This approach embeds queried domains or querying hosts to vector space by deep learning mechanism, then the relationship between querying of domains or hosts was mapped to vector space operations. By processing two real campus network DNS log datasets, it is found that this method maintains relationships very well. After doing dimension reduction and clustering analysis, researchers can not only easily explore hidden relationships intuitively, but also discover abnormal network events like botnet.
DNS, deep learning, context, dimension reduction, behavior analysis, hierarchical clustering
TP393.07
A
10.11959/j.issn.1000-436x.2016064
2015-03-30;
2015-09-10
國家2012年下一代互聯(lián)網技術研發(fā)、產業(yè)化和規(guī)模商用專項基金資助項目(No.CNGI-12-03-001);國家發(fā)展改革委2011年國家信息安全專項基金資助項目;國家高技術研究發(fā)展計劃(“863計劃”)基金資助項目(No.2015AA011403)
The Next-Generation Internet Technology Development, Industrialization and Large-scale Commercial Project, the National Development and Reform Commission 2012 (No.CNGI-12-03-001), National Information Security Special Project Funded by National Development and Reform Commission 2011, The National High Technology Research and Development Program of China(863 Program)( No.2015AA011403)
周昌令(1977-),男,重慶人,北京大學博士生,主要研究方向為網絡與信息安全、無線網絡、網絡流量分析及網絡管理等。
欒興龍(1989-),男,山東煙臺人,北京大學碩士生,主要研究方向為網絡流量分析、自然語言主題模型等。
肖建國(1957-),男,遼寧鞍山人,北京大學教授,主要研究方向為圖像處理、文本挖掘和網絡信息處理。