許(xǔ)多DNS隧道化實用程序(xù)並沒(méi)有試圖隱藏(cáng)。他們依賴於DNS經常不被監(jiān)控(kòng)這一事實。提出了多種DNS隧道(dào)檢測技術。檢測技術將分為兩類,有效載荷(hé)分析(Payload Analysis)和流量分(fèn)析(traffic analysis)。對於有效載荷分析,將分析一個或多個請求和響應的DNS有效載荷,以獲得隧道指示器。對於流量分析,流量將隨著時間的推移進行分析。將考慮計數、頻率和其他請求屬性。
一、有效載荷分析
對於有效載荷分析檢測技術,我們也(yě)可以借鑒域生成算法的研究。DGA生成的(de)域與(yǔ)數據編碼中的(de)名稱類似。以下技術已在過去的研究中被涵蓋。
1.1請(qǐng)求和響應的(de)大小
一種技術(shù)涉及到(dào)分析請求和響(xiǎng)應的大小(xiǎo)。在一篇博客文章(Bianco, 2006)中,作者(zhě)定義了基於源字節和目(mù)標字節比率的方法來識別可疑的DNS隧道傳輸。將作為Snort/Squil入侵檢測係統的一部分存儲(chǔ)在MySQL數據庫中的DNS數據查詢(xún)源字節和目標字節。然後(hòu)將該比率與一個限值進行比較。
其他人(Pietraszek, 2004), (Skoudis, 2012)已經提出觀察DNS查詢和響應的長度來檢測隧道。DNS隧道化實用程序通常試圖將(jiāng)盡可能多的數據放入請求和響(xiǎng)應中。因此,隧道請求可能會有長標簽,最多63個(gè)字符(fú),長名稱最多255個字符。另一個建議(yì)是查看所有超過52個字符的主機(jī)名(míng)請求(Guy, 2009)。
1.2主機名(míng)的熵
DNS隧道可以根據(jù)請求(qiú)主機名的熵來檢測(Van Horenbeeck, 2006), (Butler, 2011)。合法的DNS名稱通常有(yǒu)字(zì)典上的單詞或看起來有意義的東西。
編碼的名稱具有更高的熵和更均勻(yún)地使用字符集。不(bú)過,也有例(lì)外,DNS名稱用於表示某種類(lèi)型的信息。內容(róng)交付網(wǎng)絡有時就是這(zhè)樣。尋找具有高熵的DNS名稱可以作為隧道挖掘的指(zhǐ)標。
1.3統計分析
查看DNS名稱的特定字符構成是另一種可用於檢測(cè)隧道的方法。合法的DNS名(míng)稱往(wǎng)往隻有幾個數字,而編碼的名(míng)稱可(kě)能有很多數字。研究域名中數字字符的(de)百分比已(yǐ)經被(bèi)提出(Bilge, 2011)。觀(guān)察最長有意義子串(LMS)長度的百分(fèn)比是另一種基於字符組成的方法(Bilge, 2011)。觀察獨特字符的數量(liàng)是另一種可能性。推薦提醒任何超過27個獨特字符(蓋伊,2009)。
由於合法的域(yù)名在一定程度上反映(yìng)了通用語言,因(yīn)此可以(yǐ)使用字符頻率分析(Born, 2010b)來檢測DNS隧道效應產生的(de)域名(míng)。
重複(fù)輔音可以用來檢測DNS隧道效應,或(huò)者(zhě)重複輔音和數(shù)字(Lockington, 2012)。隧道實用程序可能會創建具有(yǒu)連續輔音和數字的名稱,這些數字在反映通用語言的(de)域名中不太可能看(kàn)到。
1.4 不常見的記錄類型
另一種可能的檢測方法是尋找典型客戶不常用的記錄,如“TXT”記錄(lù)(Pietraszek, 2004)。
1.5 違(wéi)反政策(cè)
如果策略要求所有(yǒu)DNS查(chá)找通過內部(bù)DNS服務(wù)器,則違反該策略可作(zuò)為檢測方法。流量可(kě)以直接監控DNS請求到互聯網(Fry, 2009)。請注意,大多數DNS隧(suì)道實用程序都設計為在通過(guò)內部DNS服(fú)務器轉發請求時也能正常工作。
1.6 特定的簽名
在某些情況下,研究人員為特定的DNS隧道化(huà)實用(yòng)程序提供了簽名。簽名可用於檢查DNS頭(tóu)中的特定屬性並檢查有效負載中的特定內容。例如,為檢測NSTX DNS隧道效應開發了一個Snort簽名(Van Horenbeeck, 2006)。
二、流量分析
流量分析涉及在一段時間內(nèi)查看多個(gè)請求/響應對。請求(qiú)的數量和(hé)頻率(lǜ)可以用於隧穿的指示。對於流量分析檢測技術,在過去(qù)的研究中已經涵(hán)蓋了以下內容。
2.1 每個IP地址(zhǐ)的(de)DNS流量(per IP address)
一個(gè)基本而(ér)直接的方法是查看特定客戶端IP地址生成(chéng)的DNS流量(Pietraszek, 2004), (Van Horenbeeck, 2006)。由於隧道數據(jù)通常限製為每個請求512字節,因此通信需(xū)要大量的請求。此外,如(rú)果客戶端輪詢服務器(qì),它將持續發送請求。
2.2 每個域的DNS流(liú)量(per domain)
另(lìng)一種基本方法是(shì)查看特定域名的大量(liàng)流量(Butler, 2011)。DNS隧道實用程序都是使用特定域名來傳輸數據的,因此,所有(yǒu)隧道流量都(dōu)將是那個域名。我們(men)應該考慮DNS隧道可以(yǐ)配置多個域名(míng)的可(kě)能性(xìng),從(cóng)而降(jiàng)低(dī)每個域的通(tōng)信量。
2.3 每個域名的主機數量(liàng)
給定域名(míng)的(de)主機數量可以(yǐ)作為一個指標(Guy, 2009)。DNS隧道實用程(chéng)序對每個請求請求(qiú)一個唯一的主機名。這可能導致一個比典型的合法(fǎ)域名大得多的數字。此方法將作為使用(yòng)流量分析的示例實現。
2.4 DNS服務器的地理位置
地理因素是可以使用的另一個因素(sù)。正如所提議的,大量的DNS流量到世界上你不做生意的地方”(Skoudis, 2012)。對於沒有廣泛國際足跡的(de)企(qǐ)業,這種方法可能有用(yòng)。
2.5 域曆史
域曆史也可以用(yòng)來引起對(duì)DNS流量的懷疑(yí)。檢查何時(shí)添加了“A”記(jì)錄或“NS”記錄(Zrdnja, 2007)。該方法用於檢測惡意活動中涉及的域名。它也與檢測DNS隧道效(xiào)應有關。一個域(yù)可能是(shì)最近為DNS隧道化而獲得的,它的(de)NS記錄可以在最近(jìn)添加。
2.6NXDomain響應量
為了檢測DGA生成的名稱,提出了尋找過量NXDomain響應的方法。(Antonakakis,2012)。該(gāi)方法可用於檢測能產生大量NXDomain響應的Heyoka。
2.7可視化
研究表明,可視化技術可以用於檢測(cè)DNS隧(suì)道(Guy,2009)。這種方法需要分析人(rén)員進行交互工作,但是隧道式的流量非常(cháng)突出。
2.8 孤立DNS請求
雖(suī)然大(dà)多數檢測方(fāng)法都是觀察我們能看(kàn)到什(shí)麽,但另一種方(fāng)法是觀察我們希望看到什麽,但卻沒有。對於一般計算,DNS請求隻在另(lìng)一個請求之前發出,例如http上的web頁麵請求。考慮到這一點,另一種檢測方法是查找沒有其他應用程序(如http)相應請求的DNS請求。會有一些例外很容易被(bèi)過濾掉。安全設備可以反向(xiàng)查找(zhǎo)IP地址。反垃圾郵件解決方案(àn)使用DNS查詢來檢查給定的IP地址是否在黑(hēi)名單上。端點安全產品使用(yòng)帶有FQDN中嵌入的編碼文件散列的DNS查詢來檢查可疑文件的信譽。
2.9 一般隱蔽通道檢測
在其他的研究中已經討論了一(yī)些獨立於協議的隱蔽通道檢測技術(Couture, 2010)。用於隧道檢測的(de)實用程序可以查看一(yī)天中的請求時間或將流(liú)量與統計指紋進行比較。