林成虎,李曉東,金 鍵1,,尉遲學(xué)彪,吳 軍
(1.中國互聯(lián)網(wǎng)絡(luò)信息中心,北京100190;2.中國科學(xué)院 計(jì)算機(jī)網(wǎng)絡(luò)信息中心,北京100190;3.中國科學(xué)院研究生院,北京100190)
域名系統(tǒng) (domain name system,DNS)的主要功能是實(shí)現(xiàn)IP地址到域名之間的相互轉(zhuǎn)換[1]。在日常的網(wǎng)絡(luò)應(yīng)用中,DNS經(jīng)常遭受到破壞者的惡意攻擊,比較常見的有DNS緩存中毒、DNS重定向、DNS信息劫持、DNS放大攻擊、DNS的DDOS攻擊等。DNS方面的重大安全事件也時(shí)有發(fā)生,如:2009年 “5.19暴風(fēng)影音”事件,2010年“百度域名劫持”事件等。DNS的安全形勢越來越嚴(yán)峻,保護(hù)DNS的安全穩(wěn)定不容懈怠,特別是能夠主動(dòng)地檢測出DNS訪問的異常,意義重大。
在DNS異常檢測方面,Ishibashi等[2]針對(duì)特定域名的DDOS攻擊,分析了修改DNS服務(wù)器配置對(duì)攻擊流量的影響;Villamarin-Salomon等[3]對(duì)DNS流量進(jìn)行相似性分析,利用貝葉斯算法來檢測已知特征的僵尸網(wǎng)絡(luò)流量攻擊;Kirkpatrick等[4]通過對(duì)A根服務(wù)器的DNS流量進(jìn)行聚類檢測和線性判別,發(fā)現(xiàn)DNS服務(wù)器的錯(cuò)誤配置;Chatzis等[5]對(duì)DNS查詢流量進(jìn)行了基于時(shí)間序列相似性的研究,用來檢測郵件蠕蟲。這些檢測方法都有一定的局限性,檢測的攻擊類型過于單一,缺乏對(duì)未知特征攻擊的檢測能力,誤報(bào)率較高,而且檢測的實(shí)時(shí)性較差。
為此,本文主要提出了一種基于權(quán)重的Kmeans(WKmeans)算法,結(jié)合多特征檢測,能夠快速有效地發(fā)現(xiàn)DNS查詢流量異常。
Kmeans算法[6]是一種基于劃分的聚類分析方法,被廣泛應(yīng)用于各種異常檢測中,其核心思想是:將n個(gè)向量(對(duì)象)的集合劃分為k個(gè)類簇,使得同一類簇內(nèi)的向量相似度高,不同類簇之間的向量相似度低。
設(shè)待分類的向量集合為 {x1,x2,x3,… ,xn},dis(x,ck)表示向量x與向量ck的歐氏距離,向量x表示待分類的向量,向量c表示聚類中心向量,m表示向量的特征個(gè)數(shù)。
該算法的基本流程如下:
(1)選定k個(gè)向量作為初始聚類中心 {c1,c2,c3,… ,ck}。
(2)將待分類的向量逐個(gè)計(jì)算與每個(gè)聚類中心的距離,按最小距離原則把每個(gè)向量劃分到某一類中,這里是計(jì)算向量間的歐氏距離
式中:cki——的是某個(gè)聚類中心ck的第i個(gè)特征取值,而不是聚類中心k的更換。
(3)重新計(jì)算分好類之后的每個(gè)類中心,即利用式(2)計(jì)算每個(gè)類中所有向量的均值,其中,v表示的是第k類內(nèi)向量的個(gè)數(shù)
(4)如果重新計(jì)算的類中心有變化,則轉(zhuǎn)至 (2)重新迭代,直到每個(gè)類中心不再發(fā)生變化。
由于在不同的應(yīng)用場景中,不同的向量特征對(duì)聚類結(jié)果的影響也不同。所以,我們需要對(duì)Kmeans算法做出一定的改進(jìn)來應(yīng)用于實(shí)際情況。本文主要是利用檢測算法對(duì)“5.19事件”中真實(shí)的DNS數(shù)據(jù)進(jìn)行實(shí)驗(yàn)分析,結(jié)合DNS流量異常的基本特征,提取了查詢頻率、源IP地址的分布空間、源IP地址的熵值、查詢域名的分布空間、域名查詢的最大次數(shù)、查詢域名的熵值、遞歸查詢的比例等7個(gè)相關(guān)特征 (即m=7),但發(fā)現(xiàn)提取出來的每個(gè)特征值之間的數(shù)量級(jí)差異很大,如果直接用式 (1)來計(jì)算歐氏距離,數(shù)量級(jí)大的特征值在檢測算法中占用的權(quán)重就特別大,甚至可能抹掉數(shù)量級(jí)很小的特征值對(duì)檢測結(jié)果的影響。為了得到更好檢測效果,有必要對(duì)不同的向量特征賦予不同的權(quán)重,我們將這種基于權(quán)重的Kmeans算法稱為 W-Kmeans算法。因此,采用式 (3)替代式 (1)來算歐氏距離
式中:wi——向量第i特征的權(quán)重。
本文在實(shí)驗(yàn)提取7個(gè)向量特征之后,通過對(duì)特征數(shù)據(jù)集的具體分析,對(duì)各個(gè)特征賦予不同的初始權(quán)重。在本設(shè)計(jì)方案中,各個(gè)特征的初始權(quán)重取值如下:查詢頻率取權(quán)重 (1/10000)2,源IP地址的分布空間取權(quán)重 (1/1000)2,源IP地址的熵值取權(quán)重102,查詢域名的分布空間取權(quán)重(1/10000)2,域名查詢的最大次數(shù)取權(quán)重 (1/1000)2,查詢域名的熵值取權(quán)重102,遞歸查詢的比例取權(quán)重102。因?yàn)樵诓煌牧髁凯h(huán)境中,單位時(shí)間內(nèi)的DNS查詢次數(shù)不同,故提取的特征數(shù)據(jù)值也不同,但總的原則是,初始權(quán)重的取值大小要使得同一特征值的大部分?jǐn)?shù)據(jù)兩兩相減的差值范圍落在0至1之間,不同特征值相減后的差值數(shù)量級(jí)也盡量控制在10倍以內(nèi)。同時(shí),為了分類效果更佳,還需要根據(jù)實(shí)驗(yàn)結(jié)果對(duì)各特征值的權(quán)重值進(jìn)行微調(diào),根據(jù)先驗(yàn)知識(shí),可以在檢測 “5.19事件”DNS流量異常的具體情景中再適當(dāng)調(diào)高遞歸查詢比例的權(quán)重值。
W-Kmeans算法是機(jī)器學(xué)習(xí)領(lǐng)域中的一種無監(jiān)督學(xué)習(xí),除了可以檢測出在訓(xùn)練集中標(biāo)記過的異常類簇,還能發(fā)現(xiàn)新的未知特征異常。為了更好地檢測出未知特征的DNS異常流量,提高檢測算法的泛化能力和準(zhǔn)確率,我們?cè)O(shè)定一個(gè)歐氏距離閾值Dthreshold。當(dāng)某個(gè)向量開始被劃分到正常類簇中,但是該向量與正常類中心向量的距離大于閾值Dthreshold時(shí),要重新將該向量劃分為異常類。閾值Dthreshold取值的大小可根據(jù)具體應(yīng)用環(huán)境進(jìn)行設(shè)置,在不同的檢測環(huán)境中,閾值的大小也不同,需要對(duì) “5.19事件”的真實(shí)數(shù)據(jù)和實(shí)驗(yàn)的分類結(jié)果進(jìn)行分析后再確定。
在應(yīng)用W-Kmeans算法的過程中,k值是需要事先給定的,k值的大小直接影響分類的效果,很多時(shí)候,由于待檢測樣本的未知性,k值的選定很難預(yù)測和評(píng)估。但在這里,我們分類的目的很明確,就是要區(qū)分出正常流量和異常流量,因此,類簇取值k=2,不存在k的取值問題。
此外,初始聚類中心的選擇,對(duì)聚類結(jié)果也有較大的影響。而且,特征集的孤立噪聲點(diǎn)比較敏感,不能選為初始聚類中心。這里,為了實(shí)驗(yàn)結(jié)果的可復(fù)現(xiàn)性,我們根據(jù)先驗(yàn)知識(shí)選取了16:00和19:00左右的兩個(gè)向量點(diǎn)作為初始聚類中心,并可將訓(xùn)練結(jié)果的聚類中心納入知識(shí)庫,用于以后的DNS流量異??焖贆z測。
利用該設(shè)計(jì)方案來檢測DNS流量異常的基本流程如圖1所示。
圖1 DNS流量異常檢測流程
其中,特征提取是將原始數(shù)據(jù)源轉(zhuǎn)化為算法參數(shù)的關(guān)鍵一環(huán),將在第2.2部分詳細(xì)闡述。向量特征的相關(guān)程度,直接影響算法分類效果好壞。同時(shí),結(jié)果分析是根據(jù)著名“5.19事件”的公開性、可調(diào)查性來調(diào)整檢測算法參數(shù)的選擇,優(yōu)化分類結(jié)果,并為算法的檢測效果提供權(quán)威的讓人信服的依據(jù)。
DNS查詢?nèi)罩咎N(yùn)含著豐富的有用信息,記錄了用戶查詢行為的絕大部分信息,是DNS系統(tǒng)中最寶貴的資源之一。算法檢測的數(shù)據(jù)來源,是CN域名權(quán)威服務(wù)器上記錄的DNS查詢?nèi)罩?,其產(chǎn)生的日志記錄每一行代表一次查詢行為,形如:
其中,為查詢請(qǐng)求時(shí)間;為查詢來源IP地址;為用戶源端口;“ns.xinnet.cn”為用戶請(qǐng)求查詢的域名;為資源類別 (class),表示Internet,是最常見的一種;為資源記錄類型 (RR type),表示請(qǐng)求查詢?cè)撚蛎腎PV4地址;“+”表示遞歸查詢。
可以看出,每條日志中有用的信息是:時(shí)間、源IP、源端口、查詢域名、資源類別、資源記錄類型、遞歸標(biāo)識(shí)。在數(shù)據(jù)的預(yù)處理過程中,我們就把這些信息提取出來。
在一些常見DNS流量攻擊中,經(jīng)常出現(xiàn)很多偽造的查詢域名,即:隨機(jī)字符串+固定域名后綴,而且在域名系統(tǒng)中,形如 “ns.xinnet.cn”和 “ns2.xinnet.cn”的域名是屬于同一個(gè)子域 “xinnet.cn”的,也是位于同一個(gè)區(qū)數(shù)據(jù)文件中的。所以,我們有必要對(duì)查詢域名進(jìn)行歸約處理,根據(jù)CN域名的命名規(guī)則[7],將日志記錄中出現(xiàn)的所有CN域名都?xì)w約為CN域下的二級(jí)域名,或者CN域下的43種按機(jī)構(gòu)性質(zhì)、行政區(qū)域申請(qǐng)的三級(jí)域名。比如www.sina.com.cn、 news.sina.com.cn、 sports.sina.com.cn等,都將被歸約為sina.com.cn的查詢。
W-Kmeans算法檢測的精確性很大程度上依賴于DNS流量特征的選取。在仔細(xì)分析了DNS流量異常的一般特征后,我們從CN頂級(jí)域主機(jī)房節(jié)點(diǎn)的權(quán)威服務(wù)器上采集了2009年5月19日16:00—24:00之間的查詢?nèi)罩緛碜鰴z測分析,對(duì)原始的DNS查詢?nèi)罩窘?jīng)過預(yù)處理后提取了7個(gè)向量特征值作為檢測算法的輸入?yún)?shù)。
(1)查詢頻率——單位時(shí)間內(nèi)DNS查詢請(qǐng)求的總次數(shù),這是最直接反映DNS流量變化情況的一個(gè)特征值。當(dāng)查詢頻率發(fā)生突變時(shí),DNS流量必定有異常,反之則不一定成立。如圖2所示,是所用數(shù)據(jù)集的查詢頻率圖。
圖2 查詢頻率
(2)源IP地址的分布空間——單位時(shí)間內(nèi)訪問的不同源IP地址的數(shù)目。惡意流量攻擊發(fā)生時(shí),源IP地址的分布空間必定會(huì)發(fā)生變化。在一些攻擊中,攻擊者通過偽造源IP地址,或者通過控制大量的被感染 “肉機(jī)”來發(fā)起惡意流量攻擊,在攻擊的初始階段,源IP地址的分布會(huì)先增大,當(dāng)惡意流量占滿被攻擊目標(biāo)的服務(wù)信道,其它正常IP的請(qǐng)求被湮沒,甚至無法進(jìn)入服務(wù)信道后,源IP地址的分布再逐漸減小。
(3)源IP地址的熵值——在信息論中,熵[8]表示整個(gè)系統(tǒng)的平均信息量,可以用熵值來表示一個(gè)系統(tǒng)的穩(wěn)定性。當(dāng)DNS發(fā)生流量異常時(shí),必定會(huì)引起查詢?cè)碔P地址熵值的突變。如圖3所示,是源IP地址的熵值圖。計(jì)算熵值的式 (4)如下
式中:X——單位時(shí)間內(nèi)的事件集合 {x1,x2,x3,…,xn},pi——事件xi出現(xiàn)的概率,s——單位時(shí)間內(nèi)出現(xiàn)的不同源IP地址的數(shù)目。
圖3 源IP地址熵值
(4)查詢域名的分布空間——單位時(shí)間內(nèi)請(qǐng)求查詢的不同域名的數(shù)目。當(dāng)發(fā)生惡意流量攻擊時(shí),查詢域名的分布空間也會(huì)呈現(xiàn)出與正常情況不一樣的規(guī)律,分析與源IP地址的分布空間類似。
(5)域名查詢的最大次數(shù)——單位時(shí)間內(nèi)單個(gè)域名被重復(fù)查詢的次數(shù),取最大值。次數(shù)越大,說明同一個(gè)域名被訪問的平均時(shí)間間隔就越小。此特征能有效檢測針對(duì)特定域名的惡意攻擊異常。
(6)查詢域名的熵值——當(dāng)DNS流量發(fā)生異常時(shí),也必定會(huì)引起查詢域名熵值的明顯變化。同樣利用式 (4)來計(jì)算熵值,分析情況與源IP地址的熵值類似。
(7)遞歸查詢的比例——單位時(shí)間內(nèi)遞歸查詢的次數(shù)與查詢頻率的比例。這是DNS特有的流量特征。在很多的DNS攻擊事件中,攻擊者經(jīng)常偽造大量的遞歸服務(wù)器,然后利用這些偽造的遞歸服務(wù)器向攻擊目標(biāo)不斷地發(fā)出DNS請(qǐng)求,以達(dá)到耗盡攻擊目標(biāo)資源的目的。
經(jīng)過實(shí)驗(yàn)對(duì)比分析,發(fā)現(xiàn)如果單位時(shí)間粒度取值太?。?s),特征值就沒能包含足夠多的信息來更好地判斷流量異常,而且時(shí)間粒度過小會(huì)造成檢測算法誤報(bào)率過高,容易產(chǎn)生虛警。因此,在以上的特征值提取中,我們統(tǒng)一將單位時(shí)間取值為10s。
根據(jù)工信部的通報(bào)[9],2009年5月19日21時(shí)左右,我國境內(nèi)發(fā)生大面積的網(wǎng)絡(luò)故障現(xiàn)象。據(jù)調(diào)查,事件的起因是域名托管商DNSPOD的服務(wù)器在18日19時(shí)[10]左右開始遭受大規(guī)模惡意流量攻擊,其托管在江蘇常州電信機(jī)房內(nèi)的服務(wù)器被迫離線,包括暴風(fēng)影音baofeng.com、#等大型網(wǎng)站在內(nèi)的約10萬個(gè)域名無法被正常解析,導(dǎo)致全國各地的ISP域名遞歸服務(wù)器收到海量的DNS異常查詢請(qǐng)求,各地ISP的服務(wù)器不堪重負(fù)而癱瘓,進(jìn)一步演變?yōu)槿珖跃W(wǎng)絡(luò)故障問題。來自基礎(chǔ)運(yùn)營商事后的統(tǒng)計(jì),此次5.19事件的波及范圍多達(dá)23個(gè)省,其中影響較為嚴(yán)重的省份有5至10個(gè)。
由于DNS的緩存作用,DNSPOD托管的域名有24小時(shí)左右的緩存期,所以當(dāng)DNSPOD的服務(wù)器18日晚被關(guān)閉后,并沒有立刻出現(xiàn)大面積的網(wǎng)絡(luò)異常現(xiàn)象。而是在19日下午以后,各地的DNS遞歸服務(wù)器對(duì)DNSPOD托管域名的緩存相繼失效,大量解析失效的域名不斷地發(fā)出重復(fù)的查詢請(qǐng)求,同時(shí)大批相關(guān)的CN域名的異常查詢被引向CN頂級(jí)域的權(quán)威服務(wù)器。因此,CN權(quán)威服務(wù)器上的DNS日志有效地記錄了5.19事件的異常情況。
如圖4所示,我們采集了CN頂級(jí)域主機(jī)房節(jié)點(diǎn)19日16:00—24:00之間的查詢?nèi)罩咀鯠NS異常檢測分析。通過W-Kmeans算法的聚類分析,圖4中得到了正常流量類和異常流量類這兩類的分類結(jié)果。圖4中,每隔90s顯示一個(gè)采樣的向量點(diǎn),類1表示正常流量類,類2表示異常流量類。
圖4 分類結(jié)果
由圖4中容易看出,從16:00左右開始,就出現(xiàn)零星的異常流量點(diǎn),這是由于DNSPOD托管的部分域名在各地ISP域名遞歸服務(wù)器上的緩存已經(jīng)開始失效,異常查詢請(qǐng)求開始出現(xiàn),直到21:00左右,大規(guī)模的遞歸服務(wù)器緩存失效,大量的DNS異常查詢請(qǐng)求涌入到正常網(wǎng)絡(luò)流量中,CN權(quán)威服務(wù)器上記錄到的異常流量也頻繁出現(xiàn),達(dá)到一個(gè)峰值。同時(shí),隨著DNS異常流量的持續(xù)增多,各地的ISP遞歸服務(wù)器達(dá)到負(fù)荷極限而崩潰,造成更多相關(guān)的CN域名訪問無法到達(dá)CN頂級(jí)域的權(quán)威服務(wù)器,因此,在22:00以后的很長一段時(shí)間內(nèi),CN頂級(jí)域檢測到的都是異常流量,直到20日凌晨左右才慢慢恢復(fù)正常。這些檢測結(jié)果都與工信部公布的通報(bào)高度吻合,說明W-Kmeans算法在DNS異常流量檢測中具有較好的檢測效果。
通過研究發(fā)現(xiàn),利用 W-Kmeans算法來設(shè)計(jì)多特征和距離閾值相結(jié)合的檢測方案,并專門用來檢測DNS的訪問異常,本文所做的這些工作在國內(nèi)外的DNS領(lǐng)域中都屬于首次應(yīng)用,突破了Kmeans算法應(yīng)用場景的一些局限性,對(duì) 比 于 Ishibashi、Villamarin-Salomon、Kirkpatrick 和Chatzis等人的DNS異常檢測方法,也有一定的優(yōu)勢,主要優(yōu)點(diǎn)在于:①能夠結(jié)合多特征檢測,降低單一特征的誤報(bào)率;②實(shí)時(shí)性較好,以10s為單位時(shí)間來統(tǒng)計(jì)數(shù)據(jù)樣本,既包含了足夠多的檢測信息,又保證了檢測算法的靈敏度,能迅速判斷出異常流量;③運(yùn)算量小,數(shù)億條的原始數(shù)據(jù)轉(zhuǎn)換成了幾千條的向量特征值,向量的數(shù)目只與時(shí)間粒度有關(guān),新的待檢測樣本只需要與處理好的訓(xùn)練向量集和聚類中心進(jìn)行比較,無需與大量的原始訓(xùn)練數(shù)據(jù)進(jìn)行計(jì)算;④具有較強(qiáng)的泛化能力,通過增設(shè)歐氏距離閾值Dthreshold,既能檢測出已知特征的流量異常,也能檢測出未知特征的流量異常;⑤算法簡單易用,收斂速度快,通過各種初始條件的合理設(shè)置,能夠很好地加快算法的收斂速度。
本文基于W-Kmeans算法設(shè)計(jì)了DNS流量異常檢測的方法,并結(jié)合DNS流量異常的一般特征,提取了查詢頻率、源IP地址的分布空間、源IP地址的熵值、查詢域名的分布空間、域名查詢的最大次數(shù)、查詢域名的熵值、遞歸查詢的比例等7個(gè)相關(guān)特征,設(shè)置了歐氏距離閾值Dthreshold,經(jīng)過真實(shí)的實(shí)驗(yàn)數(shù)據(jù)分析,證明了該檢測方法具有較高的準(zhǔn)確性,而且能通過適當(dāng)調(diào)整算法參數(shù),取得更好的檢測效果。
DNS在互聯(lián)網(wǎng)系統(tǒng)中的地位越來越重要,必須盡可能保證DNS的安全穩(wěn)定。我們下一步的工作重點(diǎn)是,將本文的檢測方法應(yīng)用于其它場景的DNS查詢流量中,并結(jié)合中科院自主研發(fā)的DNS抗攻擊設(shè)備,在實(shí)踐中繼續(xù)分析與優(yōu)化特征的選取和各種參數(shù)的設(shè)置,不斷改進(jìn)該檢測方案,進(jìn)一步提高算法檢測性能。
:
[1]Albitz P,Liu C.DNS and BIND [M].Beijing:O’Reilly Media,2006.
[2]Ishibashi Keisuke,Toyono Tsuyoshi,Matsuoka Hirotaka,et al.Measurement of DNS traffic caused by DDoS attacks[C]//Washington:Proceedings of the Symposium on Applications and the Internet Workshops,2005:118-121.
[3]Villamarin Salomon R,Brustoloni J C.Bayesian bot detection based on DNS traffic similarity [C]//Hawaii:Proceedings of the ACM Symposium on Applied Computing, 2009:2035-2041.
[4]Kirkpatrick B,Lacoste-julien S,Xu Wei.Analyzing root DNS traffic [C/OL]. [2012-03-29]http://www.cs.ubc.ca/-bbkirk/papers/cs281a-2004.pdf.
[5]Chatzis N,Brownlee N.Similarity search over DNS query streams for email worm detection [C]//Washington:International Conference on Advanced Information Networking and Applications,2009:588-595.
[6]Han J,Kamber M.Data mining concepts and techniques[M].FAN Ming,MENG Xiaofeng,transl.Beijing:China Machine Press,2010 (in Chinese). [Han J,Kamber M.數(shù)據(jù)挖掘概念與技術(shù) [M].范明,孟小峰,譯.北京:機(jī)械工業(yè)出版社,2010.]
[7]China Internet Network Information Center.Category of dot CN[EB/OL].http://www.cnnic.cn/jczyfw/cnym/cn01 _ymzc/201102/t20110215_20334.html#2 _1,2012/2012 (in Chinese).[中國互聯(lián)網(wǎng)絡(luò)信息中心.CN域名的類別 [EB/OL].http://www.cnnic.cn/jczyfw/cnym/cn01 _ymzc/201102/t20110215_20334.html#2_1,2012/2012]
[8]JIANG Nan, WANG Jian.The theory of information and coding [M].Beijing:Tsinghua University Press,2010 (in Chinese).[姜楠,王健.信息論與編碼理論 [M].北京:清華大學(xué)出版社,2010.]
[9]Ministry of Industry and Information Technology of the People’s Republic of China.Internet network failure briefing of some areas on May 19 [EB/OL]. [2012-03-29].http://www.miit.gov.cn/n11293472/n11293832/n11293907/n11368223/12365340.html (in Chinese).[中華人民共和國工業(yè)和信息化部.關(guān)于5月19日部分地區(qū)互聯(lián)網(wǎng)網(wǎng)絡(luò)故障情況通報(bào) [EB/OL].[2012-03-29].http://www.miit.gov.cn/n11293472/n11293832/n11293907/n11368223/12365340.html.]
[10]Baidu Baike.DNSPod [EB/OL].[2012-03-29].http://baike.baidu.com/view/1838299.html,2012/2012-03-29 (in Chinese).[百度百科.DNSPod [EB/OL].[2012-03-29].http://baike.baidu.com/view/1838299.html,2012/2012-03-29.]