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