李建
摘 要:DNS在為Internet的正常運(yùn)行提供可靠保障的同時也遭受來自網(wǎng)絡(luò)的欺騙攻擊威脅,DNS攻擊具有隱秘性強(qiáng)、打擊面大、攻擊效果明顯的特點。文章分析了DNS系統(tǒng)解析流程、DNS欺騙攻擊原理和分類,并列出常見的欺騙攻擊方式,提出不同檢測方法,討論了針對DNS欺騙攻擊的防范策略,對提高DNS抗欺騙攻擊能力具有明顯效果。
關(guān)鍵詞:DNS欺騙攻擊;攻擊模式;檢測方法;防范策略
DNS(Domain Name System)為全球分布范圍最廣的分布式、多層次數(shù)據(jù)庫系統(tǒng),提供從IP到域名間的映射服務(wù),是Internet正常運(yùn)行的關(guān)鍵技術(shù)設(shè)施。DNS系統(tǒng)將便于識記的主機(jī)名映射為晦澀難記的IP,并保障其他網(wǎng)絡(luò)應(yīng)用(Email投遞、網(wǎng)站訪問等)順利進(jìn)行。DNS系統(tǒng)一經(jīng)提出即發(fā)展迅速,全球注冊主機(jī)數(shù)量從1987的2萬余條發(fā)展到2005的3億余條;獨立域數(shù)量也由1987年幾個發(fā)展到05年8290萬余個。截至2014年6月,中國境內(nèi)域名數(shù)達(dá)到1915萬個。
DNS系統(tǒng)因其本身存在的脆弱性導(dǎo)致系統(tǒng)安全性、保密性均受到威脅,隨著網(wǎng)絡(luò)快速發(fā)展,DNS面臨越來越多的攻擊威脅。2014年11月,ICANN(國際域名與IP地址分配管理組織)稱其受到黑客攻擊,一批員工的賬號、密碼被盜,ICANN內(nèi)部的“中央?yún)^(qū)域數(shù)據(jù)系統(tǒng)”中有關(guān)用戶的姓名和地址信息以及與ICANN有業(yè)務(wù)往來的人士的個人信息也被盜。2014年1月21日,全球頂級根域名服務(wù)器出現(xiàn)故障,導(dǎo)致.com的網(wǎng)站無法訪問。在Internet快速發(fā)展的今天,DNS重要性、安全性研究需求顯得尤為突出。
1 域名系統(tǒng)解析原理
DNS系統(tǒng)分為根、頂級域名服務(wù)器、權(quán)威域名服務(wù)器、主機(jī)4個部分,使用分布式數(shù)據(jù)庫將IP地址和域名一一映射。
分析DNS欺騙攻擊之前先界定其域名解析流程,DNS分為2個部分:Server(服務(wù)器端)和Client(客戶端),遞歸服務(wù)器內(nèi)部已預(yù)先設(shè)置了根服務(wù)器的IP地址。DNS Server接受Client域名查詢請求,從DNS root逐層向下迭代查詢。域名解析流程如圖1所示(以訪問www.phei.com.cn為例)。
客戶端首先向本地DNS服務(wù)器發(fā)出查詢www.phel.com.cn的IP地址的請求,如果本地DNS服務(wù)器在本機(jī)DNS緩存表中沒有查到相關(guān)記錄,則立即向根服務(wù)器發(fā)起遞歸查詢;根服務(wù)器收到查詢請求后,將.cn域服務(wù)器地址反饋給本地DNS服務(wù)器;本地DNS服務(wù)器繼續(xù)向.cn域發(fā)出查詢請求,域服務(wù)器將.com.cn反饋給本地DNS服務(wù)器;本地DNS服務(wù)器則繼續(xù)向.com.cn域發(fā)出查詢請求,域服務(wù)器將phel.com.cn授權(quán)域名服務(wù)器的地址反饋給本地DNS服務(wù)器;本地DNS服務(wù)器繼續(xù)向phel.com.cn發(fā)起查詢,得到www.phel.com.cn的IP地址,以DNS應(yīng)答包的方式傳遞給用戶,并將查詢所得內(nèi)容復(fù)制在本地DNS緩存表中,以備客戶端查詢。
2 DNS系統(tǒng)欺騙攻擊原理
DNS域名系統(tǒng)安全性與Internet能否正常運(yùn)行緊密相關(guān),DNS系統(tǒng)遭受網(wǎng)絡(luò)攻擊時會造成重要信息被泄密、拒絕提供服務(wù)、網(wǎng)絡(luò)服務(wù)癱瘓等事件發(fā)生,DNS安全性隱患包括以下幾方面:(1)在設(shè)計協(xié)議時安全性考慮不足,不能保證查詢數(shù)據(jù)的真實性和完整性。(2)Internet在全球快速推廣導(dǎo)致DNS系統(tǒng)信息管理難度增大,系統(tǒng)冗余性降低。(3)針對DNS安全性問題提出的各種改進(jìn)技術(shù)如DNSSEC、分布式哈希表等難以大范圍使用。
DNS欺騙攻擊是攻擊者事先偽造為用戶信賴的DNS Server,將查詢IP改為攻擊者事先指定的IP,進(jìn)而將查詢網(wǎng)站引向攻擊者網(wǎng)站,實施DNS Server域名欺騙攻擊。此攻擊方式主要包括2種:緩存中毒、ID欺騙。
(1)緩存投毒。為盡最大可能地快速給用戶提供服務(wù),DNS Server將收到的Domain Name和IP地址映射數(shù)據(jù)保存至本地Cache,保存期限TTL(TTL≥0),在TTL不為0時,如有訪問該信息的請求信息,無需重新查找可直接從本地答復(fù),此方式可高效利用緩存信息,增強(qiáng)DNS設(shè)施服務(wù)效率。緩存機(jī)制的缺陷在于不檢查附加數(shù)據(jù),緩存投毒攻擊者利用此漏洞將TTL值設(shè)為較長時間即可實現(xiàn)長時間欺騙用戶,在TTL未失效內(nèi),緩存內(nèi)事先植入的虛假信息會快速擴(kuò)散至其他DNS Server,造成大面積緩存中毒事件發(fā)生。
(2)ID欺騙。當(dāng)DNS緩存已記錄的信息在緩存失效之前如有Client查詢則直接返回緩存記錄,此過程使用Transaction ID與端口間的通信來標(biāo)示一次通信過程。當(dāng)進(jìn)行域名解析時,Client用特定的ID標(biāo)示向DNS Server發(fā)送解析數(shù)據(jù)包,DNS Server使用此ID向Client發(fā)送應(yīng)答數(shù)據(jù)包,Client對比發(fā)送的請求數(shù)據(jù)包和應(yīng)答數(shù)據(jù)包ID標(biāo)示,如一致則說明該應(yīng)答信息可靠,否則將該應(yīng)答信息丟棄。
上述通信過程簡潔明了,效率高,但易遭受攻擊,如生日攻擊。此攻擊來自生日悖論,假設(shè)存在一個23人團(tuán)隊,則2人同一天生日的概率為50%。生日攻擊利用此特點,向某一DNS Server請求同一域名查詢時,也同時發(fā)送大量針對該域名不同ID的答復(fù)報文,增大了使該DNS Server的被騙幾率。最常見的域名欺騙攻擊是針對DNS數(shù)據(jù)報頭部的事務(wù)ID進(jìn)行欺騙。
3 常見DNS欺騙攻擊方法
DNS常見欺騙攻擊需要獲取對方ID,主要有網(wǎng)絡(luò)監(jiān)聽獲取ID和序列號攻擊(預(yù)測下一個ID)法。
(1)網(wǎng)絡(luò)監(jiān)聽獲取ID。為通過監(jiān)聽用戶流量獲得ID,攻擊者可選擇與DNS Server或眾多客戶端主機(jī)中某一主機(jī)位于同一局域網(wǎng)內(nèi)。DNS系統(tǒng)允許在請求信息中添加額外信息,如IP地址、Domain Server等,Client接收到攻擊的Domain Server查詢請求時均被引向攻擊者之前設(shè)定的Domain Server。因DNS系統(tǒng)僅用ID標(biāo)示判定信息真實性,且ID從Client發(fā)出、由DNS Server返回,且客戶端僅通過核實發(fā)出、返回端ID是否一致來確定信息的可靠性,使得通過網(wǎng)絡(luò)監(jiān)聽的方式獲取ID的攻擊成為可能。
(2)序列號攻擊原理。DNS查詢報文格式中ID號所占位數(shù)為16位,即其取值范圍為0~65535,其預(yù)測難度不大,該攻擊過程中攻擊者對正確報文DNS Server發(fā)起DDOS攻擊,拖延DNS Server正確回復(fù)報文,保證攻擊者的DNS Server搶在正確的DNS Server之前回復(fù)請求端報文,該報文內(nèi)嵌ID與請求報文內(nèi)嵌ID相同,Client接收先到的虛假報文,丟棄后到的真實報文。虛假報文中內(nèi)嵌的IP將Client引向攻擊者誘導(dǎo)的非法網(wǎng)站。
舊版BIND可通過較近幾個DNS包ID來猜測虛假ID,新版BIND9利用上述猜測法成功概率有所下降,但其算法依然存在漏洞。據(jù)分析,通過新近收集到的5000個DNS包內(nèi)的ID同樣可成功測算出即將出現(xiàn)的下一個ID,成功率高達(dá)20%,因此,使用此方法偽造虛假ID并進(jìn)行DNS欺騙攻擊的成功率較高。
4 DNS欺騙攻擊檢測
有關(guān)學(xué)者提出多種檢測DNS欺騙攻擊方法,相關(guān)文獻(xiàn)研究了Domain-Flux檢測技術(shù)。惡意攻擊軟件使用的算法為DGA(域名生成算法),以time等參數(shù)為算子自動產(chǎn)生大量虛假域名并嘗試連接與控制服務(wù)器。當(dāng)發(fā)生DNS欺騙攻擊時,Client將收到2個以上相同ID的應(yīng)答報文,但只能有1個真實的應(yīng)答報文,其余報文均為欺騙信息。但此類檢測方法試用范圍不同,鑒于此,本文提出檢測方法。
4.1 被動監(jiān)聽檢測法
被動監(jiān)聽檢測法,檢測接收的DNS應(yīng)答報文,正常情況下應(yīng)答報文只有1個,當(dāng)域名與IP存在一對多的映射關(guān)系時,1個應(yīng)答報文中將包含多個映射關(guān)系的回復(fù),不會出現(xiàn)有多個應(yīng)答報文情況。因此,如一個請求報文在額定時間內(nèi)收到多個應(yīng)答報文則有遭受DNS欺騙攻擊的可能。
該檢測法不會添加額外的網(wǎng)絡(luò)流量負(fù)擔(dān),但因其檢測方法的消極性無法檢測出網(wǎng)絡(luò)潛在攻擊威脅。
4.2 主動試探檢測法
主動試探檢測法,由DNS系統(tǒng)主動發(fā)送檢測數(shù)據(jù)包檢測是否存在DNS欺騙攻擊,通常主動發(fā)送的檢測數(shù)據(jù)包不可能接收到回復(fù),但攻擊者為搶在合法數(shù)據(jù)包抵達(dá)之前能將欺騙包發(fā)給客戶端,在不驗證DNS Server的IP合法性情況下?lián)屜劝l(fā)送應(yīng)答報文,此情況發(fā)生說明系統(tǒng)受到DNS欺騙攻擊。
主動試探檢測法需要DNS系統(tǒng)主動發(fā)送大量探測包,容易增加網(wǎng)絡(luò)流量負(fù)擔(dān)、導(dǎo)致網(wǎng)絡(luò)擁塞,且通常DNS欺騙攻擊只針對特定域名,在選擇探測包包含的待解析域名時存在定位性不強(qiáng)的問題,使得該方法的探測難度加大。
4.3 交叉檢查查詢法
交叉檢查查詢法,Client接收DNS應(yīng)答包后反向?qū)NS Server查詢應(yīng)答包中返回的IP對應(yīng)的DNS,如兩者完全一致則說明DNS系統(tǒng)未受到欺騙攻擊,反之亦然。
該查詢方法介于前2種檢測方法之間,即對收到的數(shù)據(jù)包在被動檢測基礎(chǔ)上再主動驗證,依賴于DNS反向查詢功能,但較多數(shù)量的DNS Server不支持此功能。
4.4 使用TTL(生存時間)DNS攻擊檢測
TTL(Time to live)位于IPV4包的第9字節(jié)占8bit,其作用是限制IP數(shù)據(jù)包在網(wǎng)絡(luò)中的留存時間,在TTL不為0時,如有訪問該信息的請求信息,無需重新查找可直接從本地答復(fù)。在進(jìn)行DNS欺騙攻擊時如需長時間欺騙則將TTL值設(shè)為較長時間即可。也是IP數(shù)據(jù)包在網(wǎng)絡(luò)中可轉(zhuǎn)發(fā)的最大跳數(shù),即可避免IP數(shù)據(jù)包在網(wǎng)絡(luò)中無限循環(huán)、收發(fā),節(jié)約網(wǎng)絡(luò)資源。通常同一Client發(fā)送的DNS查詢請求會經(jīng)過相對固定的路由、相對固定時間內(nèi)到達(dá)DNS Server。即一定時間內(nèi),從同一Client發(fā)往固定DNS Server的請求數(shù)據(jù)分組TTL值大小是相對固定的。但網(wǎng)絡(luò)攻擊者發(fā)動的DNS反射式攻擊需要不同地區(qū)的多臺僵尸網(wǎng)絡(luò)控制的受控計算機(jī)協(xié)同工作,同時發(fā)送虛假源地址的DNS請求信息,雖然攻擊者可使用虛假的源IP地址、TTL等信息,但由于受僵尸網(wǎng)絡(luò)控制的計算機(jī)分別位于不同地域,因此,真實IP地址對應(yīng)的主機(jī)發(fā)送的數(shù)據(jù)分組抵達(dá)DNS Server的數(shù)量很難造假。
IP地址造假是成功實施DDOS攻擊的必備條件,因此,使用TTL的DNS攻擊檢測方法可對來自相同源IP地址的DNS請求數(shù)據(jù)分組TTL值做實時對比,如相同源IP地址的TTL值變化頻繁則可對DNS請求分組做無遞歸的本地解析或丟棄。使用此方法可發(fā)現(xiàn)假IP地址并有效遏制域名反射放大攻擊。
5 防御技術(shù)
(1)遭受序列號攻擊時可使用專業(yè)監(jiān)聽軟件,正常情況下由DNS Server回復(fù)報文,如收到多個回復(fù)報文即懷疑有欺騙攻擊;可從以下方面進(jìn)行防御:僅僅授權(quán)自身管轄的域名解析提供遞歸查詢,且只接受域外DNS Server的DNS查詢請求,可減少遭到攻擊的可能性;DNS重定向,所有到達(dá)DNS Server的查詢均重定向至另DNS Server,對真實的用戶提供正常域名查詢功能,從而屏蔽、減少虛假IP造成的故障。
(2)緩存投毒特點是將TTL值變大,如發(fā)現(xiàn)TTL值過大需重點關(guān)注。投毒攻擊往往攻擊銀行、搜索網(wǎng)站、熱門網(wǎng)站等,可將此類網(wǎng)站IP記錄為相應(yīng)表格,統(tǒng)計經(jīng)常被請求解析的域名頻率,記錄域名查詢失敗次數(shù),引入域名信譽(yù)機(jī)制,如請求IP與表中記錄IP不一致則說明DNS回復(fù)信息可疑。
6 結(jié)語
網(wǎng)絡(luò)攻擊的檢測和防范是推動網(wǎng)絡(luò)進(jìn)步的動力,本文分析了基于DNS構(gòu)架的解析過程,闡述了DNS欺騙攻擊原理,提出針對DNS欺騙攻擊的檢測方法和防范方案,對提高DNS系統(tǒng)抗欺騙攻擊能力和安全性有積極作用。隨著網(wǎng)絡(luò)的快速發(fā)展后續(xù)還需進(jìn)一步探索更有效的檢測方法,以提高DNS系統(tǒng)抵御各種新型欺騙攻擊的能力,保證系統(tǒng)安全、穩(wěn)定地運(yùn)行。
[參考文獻(xiàn)]
[1]天極軟件頻道.互聯(lián)網(wǎng)管理機(jī)構(gòu)ICANN遭攻擊部分資料被泄露[EB/OL].[2014-12-22]. http://soft.yesky.com/ security/348/42849348.shtml.
[2]前瞻網(wǎng).1月21日網(wǎng)絡(luò)故障:根域名服務(wù)器dns遭黑客攻擊致網(wǎng)絡(luò)癱瘓[EB/OL].[2014-01-22].http://www.henan100.com/ news/2014/328895.shtml.
[3]YADAV S,REDDY A K K,REDDY A L N,et al.Detecting Algorithmically Generated Malicious Domain Names[C]//In 10th ACM SIGCOMM Conference on Internet Measurement,Melbourne,Australia,November1-3,2010.
[4]ANTONAKAKIS M,PERDISCI R,NADJI Y,et al.From Throw-Away Traffic to Bots Detecting the Rise of DGA-Based Malware[C]//In 21st USENIX Security Symposium,Bellevue,WA,USA,August 8-10,2012.
[5]YADAV S,REDDY A L N.Winning with DNS Failures: Strategies for Faster Botnet Detection[C]//In 7th International ICST Conference on Security and Privacy in Communication Networks,London,UK,September 7-9,2011.
[6]YADAV S,REDDY A K K,REDDY A L N,et al.Detecting AlgorithmicallyGenerated Domain-Flux Attacks with DNS Traffic
Analysis[J].IEEE/ACMTransactions on Networking,2012(5):1663-1677.
Detection and Prevention of DNS Spoofing Attacks
Li Jian
(Communication University of Shanxi, Jinzhong 030619, China)
Abstract: When providing reliable guarantee for the normal operation of the Internet, the DNS is also spoofing attacks from the network. The DNS spoofing attacks are obvious characteristics with the strong privacy, larger surface combats and good attack effects. The paper analyzes the workflow of the DNS system, the principle and classification of the DNS spoofing attacks, and lists the common spoofing attacks, proposed different methods. And discussed the prevention strategies for the DNS spoofing attacks. These methods have obvious effects to improve the anti-spoofing capabilities of DNS.
Key words:DNS spoofing attacks; attack mode; detection method; prevention strategies