李建
摘 要:DNS在為Internet的正常運行提供可靠保障的同時也遭受來自網絡的欺騙攻擊威脅,DNS攻擊具有隱秘性強、打擊面大、攻擊效果明顯的特點。文章分析了DNS系統解析流程、DNS欺騙攻擊原理和分類,并列出常見的欺騙攻擊方式,提出不同檢測方法,討論了針對DNS欺騙攻擊的防范策略,對提高DNS抗欺騙攻擊能力具有明顯效果。
關鍵詞:DNS欺騙攻擊;攻擊模式;檢測方法;防范策略
DNS(Domain Name System)為全球分布范圍最廣的分布式、多層次數據庫系統,提供從IP到域名間的映射服務,是Internet正常運行的關鍵技術設施。DNS系統將便于識記的主機名映射為晦澀難記的IP,并保障其他網絡應用(Email投遞、網站訪問等)順利進行。DNS系統一經提出即發展迅速,全球注冊主機數量從1987的2萬余條發展到2005的3億余條;獨立域數量也由1987年幾個發展到05年8290萬余個。截至2014年6月,中國境內域名數達到1915萬個。
DNS系統因其本身存在的脆弱性導致系統安全性、保密性均受到威脅,隨著網絡快速發展,DNS面臨越來越多的攻擊威脅。2014年11月,ICANN(國際域名與IP地址分配管理組織)稱其受到黑客攻擊,一批員工的賬號、密碼被盜,ICANN內部的“中央區域數據系統”中有關用戶的姓名和地址信息以及與ICANN有業務往來的人士的個人信息也被盜。2014年1月21日,全球頂級根域名服務器出現故障,導致.com的網站無法訪問。在Internet快速發展的今天,DNS重要性、安全性研究需求顯得尤為突出。
1 域名系統解析原理
DNS系統分為根、頂級域名服務器、權威域名服務器、主機4個部分,使用分布式數據庫將IP地址和域名一一映射。
分析DNS欺騙攻擊之前先界定其域名解析流程,DNS分為2個部分:Server(服務器端)和Client(客戶端),遞歸服務器內部已預先設置了根服務器的IP地址。DNS Server接受Client域名查詢請求,從DNS root逐層向下迭代查詢。域名解析流程如圖1所示(以訪問www.phei.com.cn為例)。
客戶端首先向本地DNS服務器發出查詢www.phel.com.cn的IP地址的請求,如果本地DNS服務器在本機DNS緩存表中沒有查到相關記錄,則立即向根服務器發起遞歸查詢;根服務器收到查詢請求后,將.cn域服務器地址反饋給本地DNS服務器;本地DNS服務器繼續向.cn域發出查詢請求,域服務器將.com.cn反饋給本地DNS服務器;本地DNS服務器則繼續向.com.cn域發出查詢請求,域服務器將phel.com.cn授權域名服務器的地址反饋給本地DNS服務器;本地DNS服務器繼續向phel.com.cn發起查詢,得到www.phel.com.cn的IP地址,以DNS應答包的方式傳遞給用戶,并將查詢所得內容復制在本地DNS緩存表中,以備客戶端查詢。
2 DNS系統欺騙攻擊原理
DNS域名系統安全性與Internet能否正常運行緊密相關,DNS系統遭受網絡攻擊時會造成重要信息被泄密、拒絕提供服務、網絡服務癱瘓等事件發生,DNS安全性隱患包括以下幾方面:(1)在設計協議時安全性考慮不足,不能保證查詢數據的真實性和完整性。(2)Internet在全球快速推廣導致DNS系統信息管理難度增大,系統冗余性降低。(3)針對DNS安全性問題提出的各種改進技術如DNSSEC、分布式哈希表等難以大范圍使用。
DNS欺騙攻擊是攻擊者事先偽造為用戶信賴的DNS Server,將查詢IP改為攻擊者事先指定的IP,進而將查詢網站引向攻擊者網站,實施DNS Server域名欺騙攻擊。此攻擊方式主要包括2種:緩存中毒、ID欺騙。
(1)緩存投毒。為盡最大可能地快速給用戶提供服務,DNS Server將收到的Domain Name和IP地址映射數據保存至本地Cache,保存期限TTL(TTL≥0),在TTL不為0時,如有訪問該信息的請求信息,無需重新查找可直接從本地答復,此方式可高效利用緩存信息,增強DNS設施服務效率。緩存機制的缺陷在于不檢查附加數據,緩存投毒攻擊者利用此漏洞將TTL值設為較長時間即可實現長時間欺騙用戶,在TTL未失效內,緩存內事先植入的虛假信息會快速擴散至其他DNS Server,造成大面積緩存中毒事件發生。
(2)ID欺騙。當DNS緩存已記錄的信息在緩存失效之前如有Client查詢則直接返回緩存記錄,此過程使用Transaction ID與端口間的通信來標示一次通信過程。當進行域名解析時,Client用特定的ID標示向DNS Server發送解析數據包,DNS Server使用此ID向Client發送應答數據包,Client對比發送的請求數據包和應答數據包ID標示,如一致則說明該應答信息可靠,否則將該應答信息丟棄。
上述通信過程簡潔明了,效率高,但易遭受攻擊,如生日攻擊。此攻擊來自生日悖論,假設存在一個23人團隊,則2人同一天生日的概率為50%。生日攻擊利用此特點,向某一DNS Server請求同一域名查詢時,也同時發送大量針對該域名不同ID的答復報文,增大了使該DNS Server的被騙幾率。最常見的域名欺騙攻擊是針對DNS數據報頭部的事務ID進行欺騙。
3 常見DNS欺騙攻擊方法
DNS常見欺騙攻擊需要獲取對方ID,主要有網絡監聽獲取ID和序列號攻擊(預測下一個ID)法。
(1)網絡監聽獲取ID。為通過監聽用戶流量獲得ID,攻擊者可選擇與DNS Server或眾多客戶端主機中某一主機位于同一局域網內。DNS系統允許在請求信息中添加額外信息,如IP地址、Domain Server等,Client接收到攻擊的Domain Server查詢請求時均被引向攻擊者之前設定的Domain Server。因DNS系統僅用ID標示判定信息真實性,且ID從Client發出、由DNS Server返回,且客戶端僅通過核實發出、返回端ID是否一致來確定信息的可靠性,使得通過網絡監聽的方式獲取ID的攻擊成為可能。
(2)序列號攻擊原理。DNS查詢報文格式中ID號所占位數為16位,即其取值范圍為0~65535,其預測難度不大,該攻擊過程中攻擊者對正確報文DNS Server發起DDOS攻擊,拖延DNS Server正確回復報文,保證攻擊者的DNS Server搶在正確的DNS Server之前回復請求端報文,該報文內嵌ID與請求報文內嵌ID相同,Client接收先到的虛假報文,丟棄后到的真實報文。虛假報文中內嵌的IP將Client引向攻擊者誘導的非法網站。
舊版BIND可通過較近幾個DNS包ID來猜測虛假ID,新版BIND9利用上述猜測法成功概率有所下降,但其算法依然存在漏洞。據分析,通過新近收集到的5000個DNS包內的ID同樣可成功測算出即將出現的下一個ID,成功率高達20%,因此,使用此方法偽造虛假ID并進行DNS欺騙攻擊的成功率較高。
4 DNS欺騙攻擊檢測
有關學者提出多種檢測DNS欺騙攻擊方法,相關文獻研究了Domain-Flux檢測技術。惡意攻擊軟件使用的算法為DGA(域名生成算法),以time等參數為算子自動產生大量虛假域名并嘗試連接與控制服務器。當發生DNS欺騙攻擊時,Client將收到2個以上相同ID的應答報文,但只能有1個真實的應答報文,其余報文均為欺騙信息。但此類檢測方法試用范圍不同,鑒于此,本文提出檢測方法。
4.1 被動監聽檢測法
被動監聽檢測法,檢測接收的DNS應答報文,正常情況下應答報文只有1個,當域名與IP存在一對多的映射關系時,1個應答報文中將包含多個映射關系的回復,不會出現有多個應答報文情況。因此,如一個請求報文在額定時間內收到多個應答報文則有遭受DNS欺騙攻擊的可能。
該檢測法不會添加額外的網絡流量負擔,但因其檢測方法的消極性無法檢測出網絡潛在攻擊威脅。
4.2 主動試探檢測法
主動試探檢測法,由DNS系統主動發送檢測數據包檢測是否存在DNS欺騙攻擊,通常主動發送的檢測數據包不可能接收到回復,但攻擊者為搶在合法數據包抵達之前能將欺騙包發給客戶端,在不驗證DNS Server的IP合法性情況下搶先發送應答報文,此情況發生說明系統受到DNS欺騙攻擊。
主動試探檢測法需要DNS系統主動發送大量探測包,容易增加網絡流量負擔、導致網絡擁塞,且通常DNS欺騙攻擊只針對特定域名,在選擇探測包包含的待解析域名時存在定位性不強的問題,使得該方法的探測難度加大。
4.3 交叉檢查查詢法
交叉檢查查詢法,Client接收DNS應答包后反向對DNS Server查詢應答包中返回的IP對應的DNS,如兩者完全一致則說明DNS系統未受到欺騙攻擊,反之亦然。
該查詢方法介于前2種檢測方法之間,即對收到的數據包在被動檢測基礎上再主動驗證,依賴于DNS反向查詢功能,但較多數量的DNS Server不支持此功能。
4.4 使用TTL(生存時間)DNS攻擊檢測
TTL(Time to live)位于IPV4包的第9字節占8bit,其作用是限制IP數據包在網絡中的留存時間,在TTL不為0時,如有訪問該信息的請求信息,無需重新查找可直接從本地答復。在進行DNS欺騙攻擊時如需長時間欺騙則將TTL值設為較長時間即可。也是IP數據包在網絡中可轉發的最大跳數,即可避免IP數據包在網絡中無限循環、收發,節約網絡資源。通常同一Client發送的DNS查詢請求會經過相對固定的路由、相對固定時間內到達DNS Server。即一定時間內,從同一Client發往固定DNS Server的請求數據分組TTL值大小是相對固定的。但網絡攻擊者發動的DNS反射式攻擊需要不同地區的多臺僵尸網絡控制的受控計算機協同工作,同時發送虛假源地址的DNS請求信息,雖然攻擊者可使用虛假的源IP地址、TTL等信息,但由于受僵尸網絡控制的計算機分別位于不同地域,因此,真實IP地址對應的主機發送的數據分組抵達DNS Server的數量很難造假。
IP地址造假是成功實施DDOS攻擊的必備條件,因此,使用TTL的DNS攻擊檢測方法可對來自相同源IP地址的DNS請求數據分組TTL值做實時對比,如相同源IP地址的TTL值變化頻繁則可對DNS請求分組做無遞歸的本地解析或丟棄。使用此方法可發現假IP地址并有效遏制域名反射放大攻擊。
5 防御技術
(1)遭受序列號攻擊時可使用專業監聽軟件,正常情況下由DNS Server回復報文,如收到多個回復報文即懷疑有欺騙攻擊;可從以下方面進行防御:僅僅授權自身管轄的域名解析提供遞歸查詢,且只接受域外DNS Server的DNS查詢請求,可減少遭到攻擊的可能性;DNS重定向,所有到達DNS Server的查詢均重定向至另DNS Server,對真實的用戶提供正常域名查詢功能,從而屏蔽、減少虛假IP造成的故障。
(2)緩存投毒特點是將TTL值變大,如發現TTL值過大需重點關注。投毒攻擊往往攻擊銀行、搜索網站、熱門網站等,可將此類網站IP記錄為相應表格,統計經常被請求解析的域名頻率,記錄域名查詢失敗次數,引入域名信譽機制,如請求IP與表中記錄IP不一致則說明DNS回復信息可疑。
6 結語
網絡攻擊的檢測和防范是推動網絡進步的動力,本文分析了基于DNS構架的解析過程,闡述了DNS欺騙攻擊原理,提出針對DNS欺騙攻擊的檢測方法和防范方案,對提高DNS系統抗欺騙攻擊能力和安全性有積極作用。隨著網絡的快速發展后續還需進一步探索更有效的檢測方法,以提高DNS系統抵御各種新型欺騙攻擊的能力,保證系統安全、穩定地運行。
[參考文獻]
[1]天極軟件頻道.互聯網管理機構ICANN遭攻擊部分資料被泄露[EB/OL].[2014-12-22]. http://soft.yesky.com/ security/348/42849348.shtml.
[2]前瞻網.1月21日網絡故障:根域名服務器dns遭黑客攻擊致網絡癱瘓[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