◆尹川銘
(北方民族大學計算機科學與工程學院 寧夏 750021)
淺析域名劫持與HttpDNS
◆尹川銘
(北方民族大學計算機科學與工程學院 寧夏 750021)
互聯網安全問題日益嚴峻的今天,傳統的互聯網技術面臨著前所未有的挑戰。本文在詳細分析了傳統DNS解析原理的基礎上,探究了域名劫持的攻擊原理以及攻擊者常用的攻擊方法。對DNSSec進行了簡明扼要的探討,然后對HttpDNS做了深入探究,并與傳統的DNS進行了詳細對比。
域名劫持;DNS;DNSSec;HttpDNS
隨著社會信息化進程的不斷推進,網絡普及率越來越高。人們在享受互聯網技術帶來便利的同時,對其的依賴性也隨之增強,加之用戶的安全意識缺乏,在網絡交易越來越頻繁的今天,互聯網安全問題尤為重要。DNS為整個互聯網提供地址解析服務,扮演著極其重要的角色,其在設計初期缺少對安全性的考慮,使得針對DNS的攻擊層出不窮。DNS的安全問題已經成為整個互聯網安全的重中之重。
DNS(Domain Name System,域名系統)的存在,其目的是讓人們不再去記憶復雜難以理解的 IP地址,使用有含義的域名來訪問網站[1]。DNS作為全球最大的分布式系統之一,因其在設計之初缺乏安全方面的考慮,使其十分容易受到攻擊。DNS旨在響應用戶的域名查詢請求,返回網絡可以識別IP地址。DNS的解析過程大致可分為三種方式:本地緩存解析、LocalDNS解析、迭代解析。
本地緩存解析。主機發起解析請求時,會先查詢主機Localhosts文件是否有對應的域名-IP映射。如果查詢失敗,則查詢主機DNS解析Cache。
LocalDNS解析。本地緩存解析失敗,則主機向ISP運營商的LocalDNS服務器發起解析請求。LocalDNS服務器會先查詢本地解析配置池,如果查詢失敗,則查詢LocalDNS解析Cache。
迭代解析。迭代解析由 LocalDNS服務器發起,LocalDNS服務器根據配置不同可以把解析請求發給上級DNS服務器,或者向13臺根邏輯域名服務器(編號分別為“A”至“M”)發起查詢請求。根DNS服務器會返回一個授權管理該域的頂級域名服務器IP,LocalDNS服務器收到應答后向該頂級域名DNS服務器發起查詢請求。該頂級域名DNS服務器如果無法解析會返回下一級DNS服務器IP,LocalDNS向下一級DNS服務器發起查詢請求,如此迭代下去,直到查詢結束[2]。
DNS使用UDP53端口進行查詢與應答,使用TCP53端口進行數據同步。DNS查詢與應答報文設計簡單且采用明文傳輸,僅使用16位標識字段來區分對不同查詢的應答。這就使得DNS應答報文極易偽造。
通常所說的域名劫持指的是,將主機的域名解析請求解析到錯誤的IP地址上,使用戶無法正常訪問目標網站。而錯誤的IP地址往往指向釣魚網站、掛馬網站等,給用戶的隱私與財產帶來威脅。
DNS劫持通常發生在一定的網絡域內,影響本域內的網絡用戶,但是帶來的后果卻十分嚴重。如2010年1月12日百度境外.comDNS服務器被黑客攻陷,篡改了www.baidu.com的解析映射,造成包含北京、遼寧、江蘇、四川、安徽、廣東、武漢等多地部分地區百度首頁出現無法打開或非法跳轉的現象長達 11個小時。
攻擊者常用的攻擊方式可分為:攻擊DNS服務器,偽造DNS服務器,偽造DNS應答報文。
攻擊DNS服務器。DNS服務器本身由于管理員配置或者管理不當存在安全隱患、使用了弱口令、沒有及時更新漏洞補丁、防火墻存在安全隱患等。極易遭受黑客成功入侵,獲取最高權限,修改DNS配置域,在主機進行LocalDNS解析時返回被篡改的IP地址,使用戶無法訪問目標網站或者跳轉到非法網站。
偽造DNS服務器。攻擊者搭建非法DNS服務器,配置解析域,修改對特定目標域名的IP映射。如將www.ccb.cn(中國建設銀行)的IP(202.106.80.106)映射成192.168.1.11(攻擊者搭建的釣魚網站),用戶在難以察覺的情況下,泄露了自己的銀行信息,給自己的財產安全帶來嚴重的安全隱患。
偽造DNS應答報文。DNS解析所使用的UDP報文使用明文傳輸,這就為偽造應答報文提供了可能性。攻擊者往往事先對攻擊域內發起ARP欺騙攻擊,將用戶主機網關IP-MAC映射成攻擊者主機的MAC地址,對攻擊域內DNS解析請求報文進行監聽。針對敏感域名的DNS解析請求,偽造DNS應答報文。由于攻擊者主機跟用戶主機在同一網絡域內,攻擊者偽造的DNS應答報文會先于LocalDNS服務器的應答報文到達用戶主機。用戶主機對相同16位標識字段的DNS應答報文,優先相應先到達者。用戶主機完成域名解析之后,就會丟棄之后所有相同 16位標識字段的DNS應答報文,即使用戶主機收到了正確的DNS解析包也不會相應,最終用戶被跳轉到了非法IP所指向的網站[3]。
針對DNS存在的諸多安全隱患,新的DNS解析協議DNSSec被提了出來。DNSSec(Domain Name System Security Extensions)DNS安全擴展,在現有DNS協議的基礎上通過增加幾條新的資源記錄來進行安全擴展[4]。但是DNSSec依然使用UDP進行明文傳輸,只是相應的增加了安全簽名機制。DNSSec需要對現有的DNS服務器更新升級,工作量巨大,并且國內的大部分DNS服務器不支持DNSSec的迭代查詢,這就導致了DNSSec沒有普及。
即保證與國內現有的DNS解析服務器良好的兼容,又能很好的保證解析的安全性與質量,HttpDNS解析協議應運而生。HttpDNS解析協議使用HTTP協議向DNS服務器的TCP80端口發送解析請求,替代現有的UDP53端口。這一小小的改動能有效的避免域名劫持與跨網訪問問題。目前國內支持 HttpDNS解析的公共DNS服務器有:阿里、騰訊、CloudXNS等。HttpDNS相比傳統的DNS解析服務,有以下優點:
(1)解析請求不再經過 LocalDNS服務器,用戶主機直接使用HTTP協議向公共DNS服務器直接發起查詢請求,即使鏈路存在域名劫持攻擊,攻擊者也無法偽造解析結果。可以有效避免因鏈路監聽與LocalDNS安全隱患所引起的域名劫持問題。
(2)普通的DNS解析機制,可能因ISP的DNS服務器設置問題,導致對在多個ISP部署節點的域名查詢時,最終的查詢結果指向其他 ISP內的主機,這就導致用戶跨網訪問問題。HttpDNS解析服務可以直接獲取用戶IP地址,根據用戶IP所在的ISP提供最優解析,也就有效的避免了跨網訪問問題。
(3)ISP利用其自身LocalDNS之便,常常向用戶投放廣告彈窗,并對特定的域名進行屏蔽。HttpDNS繞過ISP的LocalDNS服務器,可有效地避免廣告彈窗,并且絕大部分解析一次請求即可完成解析。
(4)實現成本低廉,用戶只需要稍作修改既可以完成對現有APP的DNS部署。
(5)目前國內HttpDNS服務商大部分實現了BGP Anycast,在多個ISP布置節點,能有效將用戶流量路由到最佳節點。不僅保證了解析低時延,更能實現機房容災,有效的抵御DDos攻擊,保證用戶解析質量。
傳統的互聯網技術,在面對當今攻擊者多樣化的攻擊方法下已經捉襟見肘。不斷更新與完善現有互聯網技術,加強互聯網安全建設,普及互聯網安全知識,優化互聯網生態環境,是行之有效的解決方法。
[1]李杰. DNS欺騙和緩存中毒攻擊的檢測[D].電子科技大學,2015.
[2]陸柯羽. DNS遞歸服務器推薦系統設計與實現[D].哈爾濱工業大學,2015.
[3]陳琳. DNS攻擊檢測與防御技術研究[D].北京郵電大學,2011.
[4]彭陽.基于 DNSSEC的增強型信任體系結構研究[A].中國計算機學會計算機安全專業委員會.第27次全國計算機安全學術交流會論文集[C].中國計算機學會計算機安全專業委員會,2012.