域名系統(tǒng)安全研究綜述
第28卷第9期2007年9月 通 信 學(xué) 報(bào) V ol.28 No.9Journal on Communications September 2007域名系統(tǒng)安全研究綜述王垚 1,2,胡銘曾
第28卷第9期
2007年9月 通 信 學(xué) 報(bào) V ol.28 No.9Journal on Communications September 2007
域名系統(tǒng)安全研究綜述
王垚 1,2,胡銘曾 1,李斌 1,閆伯儒 1,3
(1. 哈爾濱工業(yè)大學(xué) 計(jì)算機(jī)網(wǎng)絡(luò)與信息安全研究中心, 黑龍江 哈爾濱 150001;
2. 中國外匯交易中心,上海201203;3. 微軟亞洲工程院,北京 100086)
摘 要:作為互聯(lián)網(wǎng)關(guān)鍵基礎(chǔ)設(shè)施的域名系統(tǒng)(DNS)其安全性正面臨嚴(yán)峻考驗(yàn)。協(xié)議設(shè)計(jì)脆弱性導(dǎo)致數(shù)據(jù)信息真
實(shí)性和完整性得不到保證;配置故障普遍存在,系統(tǒng)冗余性降低,單點(diǎn)失效問題嚴(yán)重;系統(tǒng)規(guī)模不斷擴(kuò)大導(dǎo)致管
理難度急劇增加。從協(xié)議脆弱性、實(shí)現(xiàn)脆弱性和操作脆弱性3個(gè)方面對域名系統(tǒng)面臨的威脅進(jìn)行分類,綜述了針
對這些安全威脅的改進(jìn)方案和研究成果,并論述了進(jìn)一步研究中需要解決的關(guān)鍵問題。
關(guān)鍵詞:域名系統(tǒng);互聯(lián)網(wǎng)基礎(chǔ)設(shè)施;網(wǎng)絡(luò)安全
中圖分類號:TP393.08 文獻(xiàn)標(biāo)識碼:A 文章編號:1000-436X(2007)09-0091-13
Survey on domain name system security
WANG Yao1,2, HU Ming-zeng1, LI Bin1, YAN Bo-ru1,3
(1. Research Center of Computer Network and Information Security Technology, Harbin Institute of Technology, Harbin 150001, China;
2. China Foreign Exchange Trade System, Shanghai 201203, China; 3. Microsoft Adranced Technology Center , Beijing 100086, China)
Abstract: DNS(domain name system), as the critical Internet infrastructure, its security is facing great challenge. Proto-
col design vulnerability provides no assurance for data authentication and integrity. Configuration errors are widespread
with diminished server redundancy and severe single point of failure. The continuous development of system scale leads
to the dramatic difficulty in administration. The threats towards DNS were categorized according to protocol, implemen-
tation and operation vulnerability. The improvements and resolutions to these threats were summarized and the new
problems in future study work were discussed.
Key words: domain name system; Internet infrastructure; network security
1 引言
DNS(domain name system,域名系統(tǒng)) 是互聯(lián)網(wǎng)
上最為關(guān)鍵的基礎(chǔ)設(shè)施,其主要作用是將易于記憶
的主機(jī)名稱映射為枯燥難記的IP 地址[1,2],從而保
障其他網(wǎng)絡(luò)應(yīng)用(如網(wǎng)頁瀏覽、電子郵件等) 順利執(zhí)
行。作為全球最大也是最為成功的分布式數(shù)據(jù)庫系
統(tǒng),其效率和普及程度是其他服務(wù)無法比擬的。一
旦遭受攻擊,會給整個(gè)互聯(lián)網(wǎng)帶來無法估量的損失。然而近年來對互聯(lián)網(wǎng)安全性的研究主要集中在信息安全方面,通常使用認(rèn)證(authentication)和加密(encryption)等手段來保證信息的機(jī)密性(confidentiality)和完整性(integrity),但這是以互聯(lián)網(wǎng)基礎(chǔ)設(shè)施安全可靠為前提的,針對關(guān)鍵設(shè)施的安全事件頻繁發(fā)生(如DNS 欺騙和路由重定向) 使得這一假設(shè)受到前所未有的挑戰(zhàn)。作為互聯(lián)網(wǎng)基礎(chǔ)設(shè)施,DNS 存在極大的安全隱患,主要表現(xiàn)在:1) 協(xié)議設(shè)計(jì)存在較大的脆弱性(vulnerability),缺乏必要收稿日期:2006-04-20;修回日期:2007-08-01
基金項(xiàng)目:國家重點(diǎn)基礎(chǔ)研究發(fā)展計(jì)劃(“973”計(jì)劃) 基金資助項(xiàng)目 (G2005CB321806)
Foundation Item: The National Basic Research Program of China (973 Program) (G2005CB321806)
,·92· 通 信 學(xué) 報(bào) 第28卷
的安全性考慮,數(shù)據(jù)信息真實(shí)性(authenticity)和完整性得不到保證;2) 系統(tǒng)規(guī)模不斷擴(kuò)大導(dǎo)致管理難度急劇增加,人為錯(cuò)誤因素使得配置故障普遍存在,系統(tǒng)冗余性(redundancy)大大降低,單點(diǎn)失效(single point of failure)問題嚴(yán)重;3) 對DNS 安全性的各種改進(jìn)措施難以大規(guī)模應(yīng)用,且往往又引入新的安全問題。本文綜述了DNS 安全領(lǐng)域的最新研究進(jìn)展,對當(dāng)前DNS 面臨的安全威脅進(jìn)行了分類比較,從脆弱性、系統(tǒng)可用性(availability)和可生存性(survivability)等角度闡述了研究者提出的各種改進(jìn)方法和措施,并指出了其難點(diǎn)和未來的研究方向。
本文第2節(jié)概述DNS 安全問題現(xiàn)狀。第3節(jié)對DNS 面臨的安全威脅進(jìn)行分類比較。第4節(jié)綜述增強(qiáng)DNS 安全性的各種研究方案。第5節(jié)展望進(jìn)一步的研究工作。第6節(jié)為結(jié)束語。
2 DNS安全問題現(xiàn)狀
2.1 DNS基本概念
DNS 服務(wù)是互聯(lián)網(wǎng)上大部分服務(wù)和應(yīng)用正常運(yùn)轉(zhuǎn)和實(shí)施的基礎(chǔ),從Web 到郵件服務(wù),從負(fù)載均衡到服務(wù)發(fā)現(xiàn)(service discovery),DNS 服務(wù)已經(jīng)深入到互聯(lián)網(wǎng)的各個(gè)角落,成為互聯(lián)網(wǎng)上不可或缺的關(guān)鍵一環(huán)。DNS 主要包括3個(gè)組成部分,分別是:域名空間(domain name space)和資源記錄(resource record) ;名字服務(wù)器(name server);解析器(resolver),如圖1所示。

圖1 DNS體系結(jié)構(gòu)
1)DNS 以域名為索引,每個(gè)域名是一棵很大的逆向樹中的路徑,這棵逆向樹就稱為域名空間。而域名則被存放在稱為資源記錄的數(shù)據(jù)結(jié)構(gòu)中。
2)名字服務(wù)器是存儲有關(guān)域名空間信息的程序,它作為DNS 客戶/服務(wù)器機(jī)制的服務(wù)器端,通
常含有域名空間中某一部分的完整信息,這一部分稱之為區(qū)(zone)。名字服務(wù)器分為權(quán)威名字服務(wù)器和緩存名字服務(wù)器2種。
3)解析器是DNS 客戶/服務(wù)器機(jī)制的客戶端,通常作為庫例程存在,供需要使用名字服務(wù)的應(yīng)用程序引用,負(fù)責(zé)向名字服務(wù)器查詢信息并將結(jié)果返回給調(diào)用它的應(yīng)用程序。 2.2 DNS 安全現(xiàn)狀
近20年來,DNS 服務(wù)發(fā)展迅速,其注冊規(guī)模越來越大,管理難度也急劇增加。據(jù)美國互聯(lián)網(wǎng)海量數(shù)據(jù)中心(ISC)統(tǒng)計(jì),1987年全球DNS 注冊主機(jī)數(shù)僅有20 000條,但截止到2007年1月已增至433 193 199條。其獨(dú)立域(independent zone)的個(gè)數(shù)也由1987年的幾個(gè)增加到2005年的8 290萬個(gè)[3]。此外,射頻識別(RFID)和移動(dòng)計(jì)算等應(yīng)用的出現(xiàn)和普及使得DNS 的數(shù)據(jù)發(fā)生動(dòng)態(tài)變化。以DNS 作為高可靠性公鑰基礎(chǔ)設(shè)施(PKI)的需求使得DNS 系統(tǒng)的安全性和健壯性問題亟待解決。然而作為互聯(lián)網(wǎng)的早期協(xié)議,DNS 從設(shè)計(jì)之初就建立在互信模型的基礎(chǔ)之上,是一個(gè)完全開放的協(xié)作體系[2],其上存在的各類數(shù)據(jù)從未進(jìn)行加密,沒有提供適當(dāng)?shù)男畔⒈Wo(hù)和認(rèn)證機(jī)制,也沒有對各種查詢進(jìn)行準(zhǔn)確識別,同時(shí)對網(wǎng)絡(luò)基礎(chǔ)設(shè)施和核心骨干設(shè)備的攻擊沒有受到足夠重視,使得DNS 很容易遭受攻擊。2005年3月美國系統(tǒng)網(wǎng)絡(luò)安全協(xié)會發(fā)布的關(guān)于域名欺騙攻擊的警告指出,新一輪攻擊中大批.com 域名成為犧牲品,至少有1 300個(gè)域名被誘騙到被攻陷的網(wǎng)絡(luò)服務(wù)器[4]。在其公布的2004年度Top20網(wǎng)絡(luò)安全隱患排行榜中,DNS 的主要應(yīng)用軟件BIND(berkeley Internet name domain)更是排在UNIX 及Linux 操作系統(tǒng)相關(guān)安全隱患的首位[5]。由此可見,加強(qiáng)防范對DNS 的攻擊、確保DNS 系統(tǒng)安全已經(jīng)到了刻不容緩的地步。
除了脆弱性之外,DNS 系統(tǒng)本身的可用性和可生存性也是眾多學(xué)者、研究人員和運(yùn)營商普遍關(guān)注的問題。大部分DNS 服務(wù)器為提高可用性都會使用冗余和緩存機(jī)制,通常使用多個(gè)權(quán)威DNS 服務(wù)器來提供服務(wù),每臺服務(wù)器又會緩存客戶查詢過的信息。但是據(jù)統(tǒng)計(jì)全球大約有38.78的網(wǎng)站將所有DNS 服務(wù)器部署在同一子網(wǎng)內(nèi)[6],其可生存性大大降低,一旦其所在網(wǎng)絡(luò)遭到攻擊或發(fā)生嚴(yán)重的電力故障,會導(dǎo)致整個(gè)DNS 系統(tǒng)癱瘓,存在著嚴(yán)重的單點(diǎn)失效問題。此外,緩存的存在雖然減少了訪問
,第9期 王垚等:域名系統(tǒng)安全研究綜述 ·93·
時(shí)間,卻是以犧牲一致性(consistency)為代價(jià)的,同時(shí)也使得服務(wù)器發(fā)生緩存中毒的機(jī)率增大,極大削弱了DNS 系統(tǒng)的可用性。動(dòng)態(tài)更新不及時(shí)或發(fā)生中斷也會降低DNS 系統(tǒng)的可用性。主從服務(wù)器之間數(shù)據(jù)更新缺乏連貫性,客戶可能從一些服務(wù)器得到陳舊數(shù)據(jù),從而導(dǎo)致非故意性攻擊。在更新過程中,如果主名字服務(wù)器崩潰,一些更新數(shù)據(jù)就會永久丟失。對DNS 服務(wù)器的錯(cuò)誤配置也將大大降低DNS 的可用性。文獻(xiàn)[7]研究結(jié)果顯示無用授權(quán)(lame delegation)配置錯(cuò)誤影響了15的DNS 區(qū),而 .cn 域下存在無效授權(quán)錯(cuò)誤的區(qū)更以高達(dá)36的比例排在首位,大約2的區(qū)存在循環(huán)依賴錯(cuò)誤,服務(wù)器冗余降低問題普遍存在。
3 DNS 安全威脅分類
一個(gè)系統(tǒng)之所以受到威脅,是因?yàn)槠浔旧泶嬖诳梢员粷B透的脆弱性,或稱弱點(diǎn)。脆弱性被定義為設(shè)計(jì)、實(shí)現(xiàn)和操作過程中的錯(cuò)誤或弱點(diǎn),分為協(xié)議脆弱性、實(shí)現(xiàn)脆弱性和操作脆弱性3類。本節(jié)從這3個(gè)方面對DNS 系統(tǒng)面臨的安全威脅進(jìn)行分類比較,如圖2所示。 3.1 協(xié)議脆弱性
協(xié)議脆弱性主要是系統(tǒng)在設(shè)計(jì)之初對前提假設(shè)條件考慮不夠充分或之后條件發(fā)生變化導(dǎo)致的。由于使用的長期性和廣泛性,使得這類脆弱性通常很難從根源上得到修正,DNS 在這一方面極具代表性。由DNS 協(xié)議缺乏必要的認(rèn)證機(jī)制,客戶無法確認(rèn)接收到的信息的真實(shí)性和權(quán)威性,基于名字的認(rèn)證過程并不能起到真正的識別作用,而且接收到的應(yīng)答報(bào)文中往往含有額外的附加信息,其正確性也無法判斷。此外,DNS 的絕大部分通信使用UDP ,數(shù)據(jù)報(bào)文容易丟失,也易于受到劫持和欺騙。DNS 協(xié)議脆弱性面臨的威脅主要是域名欺騙和網(wǎng)絡(luò)通信攻擊。
3.1.1 域名欺騙
域名欺騙是指域名系統(tǒng)(包括DNS 服務(wù)器和解析器) 接收或使用來自未授權(quán)主機(jī)的不正確信息。在此類威脅中,攻擊者通常偽裝成客戶可信的DNS 服務(wù)器,然后將偽造的惡意信息反饋給客戶。域名欺騙主要是事務(wù)ID 欺騙(transaction ID spoofing)和緩存中毒(cache poisoning)。
1) 事務(wù)ID 欺騙
當(dāng)前最常見域名欺騙攻擊是針對DNS 數(shù)據(jù)報(bào)頭部的事務(wù)ID 來進(jìn)行欺騙。由于客戶端會用該ID 作為響應(yīng)數(shù)據(jù)報(bào)是否與查詢數(shù)據(jù)報(bào)匹配的判斷依據(jù),因此可以通過偽裝DNS 服務(wù)器提前向客戶發(fā)送與查詢數(shù)據(jù)報(bào)ID 相同的響應(yīng)報(bào)文,只要該偽造的響應(yīng)報(bào)文在真正的響應(yīng)報(bào)文之前到達(dá)客戶端,就可以實(shí)現(xiàn)域名欺騙。對ID 的獲取主要采用網(wǎng)絡(luò)監(jiān)聽(sniffing)和猜測序列號兩種方法。其中網(wǎng)絡(luò)監(jiān)聽比較簡單,由于DNS 數(shù)據(jù)報(bào)文都沒有加密,因此如果攻擊者能夠監(jiān)聽到客戶的網(wǎng)絡(luò)流量即可獲得事務(wù)ID 。攻擊者通常使用ARP 欺騙的方法進(jìn)行監(jiān)聽,但是這種方法要求攻擊者必須與客戶處于同一網(wǎng)絡(luò)環(huán)境中。為突破這種限制,很多攻擊者開始采用猜測序列號的方法來進(jìn)行欺騙。由于DNS 查詢報(bào)文的事務(wù)ID 字段為2個(gè)字節(jié),限制了其ID 值只能是0~65 535,大大降低了猜測成功的難度。在此過程中,攻擊者通常對提供真實(shí)報(bào)文的名字服務(wù)器發(fā)動(dòng)DoS 攻擊,延緩正確應(yīng)答報(bào)文返回,從而保證虛假的應(yīng)答報(bào)文提前返回給客戶端。
2) 緩存中毒
為了減少不必要的帶寬消耗和客戶端延遲,名字服務(wù)器會將資源記錄緩存起來,在數(shù)據(jù)的生存期(TTL)內(nèi)客戶端可以直接向其查詢。使用緩存可以提高DNS 基礎(chǔ)設(shè)施的有效性和可擴(kuò)展性[8]。而攻擊者則利用DNS

協(xié)議中緩存機(jī)制中對附加區(qū)數(shù)據(jù)不
圖2 DNS系統(tǒng)安全威脅分類
,·94· 通 信 學(xué) 報(bào) 第28卷
做任何檢查的漏洞,誘騙名字服務(wù)器緩存具有較大TTL 的虛假資源記錄從而達(dá)到長期欺騙客戶端的目的[9]。在有效TTL 時(shí)段內(nèi),緩存的虛假資源記錄會擴(kuò)散到其他名字服務(wù)器,從而導(dǎo)致大面積的緩存中毒,很難徹底根除。緩存中毒給互聯(lián)網(wǎng)帶來了新的挑戰(zhàn),其攻擊方式主要有以下幾個(gè)特點(diǎn):1) 攻擊具有隱蔽性,不用消耗太多網(wǎng)絡(luò)資源就可以使性能急劇受損;2) 采用間接攻擊方式使得客戶端和服務(wù)器都受到攻擊;3) 使用貌似合法的記錄來污染緩存,很難檢測出來;4) 目前的緩存設(shè)計(jì)缺乏相應(yīng)的反污染機(jī)制,對于精心組織的惡意緩存中毒攻擊更是束手無策。
3.1.2 網(wǎng)絡(luò)通信攻擊
針對DNS 的網(wǎng)絡(luò)通信攻擊主要是DoS(denial of service,拒絕服務(wù)) 攻擊、惡意網(wǎng)址重定向和中間人(man-in-the-middle)攻擊。
DoS 攻擊是最難解決的一類網(wǎng)絡(luò)安全問題,具有實(shí)施成本低、防范難度大、攻擊能力強(qiáng)和隱蔽效果好等特點(diǎn),危害性極大。同其他互聯(lián)網(wǎng)服務(wù)一樣,DNS 系統(tǒng)容易遭受拒絕服務(wù)攻擊。針對DNS 的拒絕服務(wù)攻擊通常有兩種方式:一種是攻擊DNS 系統(tǒng)本身,包括對名字服務(wù)器和客戶端進(jìn)行攻擊,另一種是利用DNS 系統(tǒng)作為反射點(diǎn)來攻擊其他目標(biāo)。在針對DNS 系統(tǒng)的DoS 攻擊中,主要通過發(fā)送否定回答顯示域名不存在,從而制造黑洞效應(yīng),對客戶端造成事實(shí)上的DoS 攻擊,而對名字服務(wù)器的攻擊則主要是以root 等根名字服務(wù)器為目標(biāo)[10]。在反射式攻擊中,攻擊者也經(jīng)常利用root 等頂級服務(wù)器作為反射點(diǎn),用DNS 應(yīng)答對目標(biāo)進(jìn)行洪泛攻擊[11]。雖然攻擊目標(biāo)不是DNS 系統(tǒng)本身,但由于DNS 承擔(dān)域名和IP 地址映射的任務(wù),攻擊者通過查詢被攻擊目標(biāo)的域名IP 地址,使得DNS 收到大量的查詢請求從而同樣間接受到DoS 攻擊。此外,由于DNS 協(xié)議設(shè)計(jì)上的原因,查詢報(bào)文通常很小,而響應(yīng)報(bào)文在采用UDP 傳輸情況下最大可達(dá)512字節(jié),因而能夠產(chǎn)生放大式的攻擊效果,并且超過512字節(jié)的報(bào)文又采用TCP 傳輸,更增加了DoS 攻擊成功的概率。與Smurf 、Fraggle 等傳統(tǒng)IP 欺騙方法通過廣播報(bào)文實(shí)施DoS 攻擊不同,針對DNS 的攻擊通常利用普通查詢過程中DNS 響應(yīng)報(bào)文尺寸遠(yuǎn)大于請求報(bào)文尺寸以及區(qū)傳送或遞歸查詢過程中DNS 響應(yīng)報(bào)文數(shù)量遠(yuǎn)大于請求報(bào)文數(shù)量等特點(diǎn)來放大攻擊流量,從而產(chǎn)生“四
兩撥千斤”的攻擊效果。
在惡意網(wǎng)址重定向和中間人攻擊過程中,攻擊者通常偽裝成客戶可信任的實(shí)體對通信過程進(jìn)行分析和篡改,將客戶請求重定向到假冒的網(wǎng)站等與請求不符的目的地址,從而竊取客戶的賬戶和密碼(例如信用卡賬號和網(wǎng)上銀行密碼) 等機(jī)密信息,進(jìn)行金融欺詐和電子盜竊等網(wǎng)絡(luò)犯罪活動(dòng)。針對DNS 的攻擊工具可以參考Dug Song開發(fā)的DSniff 工具包[12]。其中的DNSSpoof 和WebMITM 可以用來對DNS 進(jìn)行域名欺騙和中間人攻擊。 3.2 實(shí)現(xiàn)脆弱性
歷史上關(guān)于計(jì)算機(jī)或者計(jì)算機(jī)網(wǎng)絡(luò)的很多著名安全問題不是由于算法或是協(xié)議缺陷造成的,而是由實(shí)現(xiàn)錯(cuò)誤引起的,通常是在編碼階段由于安全編碼水平不高以及程序測試不全面導(dǎo)致在某種特定條件下程序執(zhí)行出現(xiàn)異常和錯(cuò)誤,從而引發(fā)災(zāi)難性后果。具有代表性的是利用緩沖區(qū)溢出(overflow)來發(fā)起攻擊,而作為分布式系統(tǒng)典型代表的DNS 在這方面也傷痕累累。
1992年,Danzig 等人[11]從類RPC 流(RPC-like traffic) 的角度對DNS 的一個(gè)根名字服務(wù)器進(jìn)行了測量,發(fā)現(xiàn)其在緩存機(jī)制、超時(shí)重傳算法和替代服務(wù)器選擇算法方面存在7類實(shí)現(xiàn)錯(cuò)誤。研究表明由于這些錯(cuò)誤的大量存在導(dǎo)致DNS 占用的廣域網(wǎng)帶寬超出其所需帶寬20倍以上。2001年,Brownlee 等人[13,14]對F 根服務(wù)器和通用頂級域名服務(wù)器(gTLD)的安全性進(jìn)行了全方位的測量,結(jié)果顯示盡管歷經(jīng)了10年,Dnazig 在1992年發(fā)現(xiàn)的DNS 脆弱性依然大量存在,偽造的A 類型查詢、重復(fù)查詢、無效TLD 查詢以及利用根服務(wù)器發(fā)起的DoS 攻擊不僅極大影響了全球DNS 的性能,也嚴(yán)重威脅著整個(gè)互聯(lián)網(wǎng)的安全性。
作為應(yīng)用最為廣泛的DNS 軟件,BIND 的漏洞和缺陷無疑給DNS 帶來嚴(yán)重的威脅,其緩沖區(qū)溢出漏洞一度占據(jù)UNIX 及Linux 操作系統(tǒng)相關(guān)安全隱患的首位[5]。此外,9.0版本之前查詢報(bào)文的事務(wù)ID 和源端口號并非隨機(jī)生成[15]。Sacramento [16]還發(fā)現(xiàn)BIND 4.x和8.x 兩個(gè)系列會允許客戶向同一IP 地址同時(shí)發(fā)送多個(gè)遞歸查詢請求,由此衍生出一種稱為生日悖論(birthday paradox) [17]的攻擊方法,這種攻擊方法增加了成功猜測到正確的事務(wù)ID 的可能性,受到廣泛的關(guān)注。式(1)給出了成功概率P 的計(jì)算公式,其中t
,第9期 王垚等:域名系統(tǒng)安全研究綜述 ·95·
3.3.2 域名注冊攻擊
域名注冊攻擊的方法主要有域名劫持(domain
n ×(n ?1) hijacking) 和類似域名注冊。域名劫持是對域名注冊2?1?
(1) p =1??1??管理公司的注冊域名記錄非法改變使之指向其他t ??
Web 站點(diǎn)。攻擊者通常會利用域名注冊時(shí)限,利用
如圖3所示,利用生日悖論定理,攻擊者只需原域名擁有者忽略域名時(shí)限的空隙,購買剛到期的發(fā)送800個(gè)報(bào)文就幾乎能夠100地預(yù)測出事務(wù)ID 域名占為己有,或者通過冒充原域名擁有者以電子[18]值,大大減少猜測過程中隨機(jī)生成的DNS 報(bào)文數(shù)郵件等方式向域名注冊管理公司提出請求修改注量和攻擊時(shí)間,使得這種攻擊更容易得手。另一種冊域名記錄,將域名重定向到另一組織或站點(diǎn)[21]。攻擊方法稱為相位空間(phase space)欺騙攻擊,基于而類似域名注冊攻擊通常是利用用戶習(xí)慣性錯(cuò)誤
[19]
Zalewski 的TCP 序列號預(yù)測原理來對DNS 查詢報(bào)拼寫、字母相似性和替換頂級域名后綴等方式來注文的事務(wù)ID 進(jìn)行預(yù)測,也具有很好的攻擊效果。

冊與銀行、知名企業(yè)的域名相類似的域名,從而達(dá)
到欺騙客戶和竊取機(jī)密信息等目的。這種攻擊屬于非法盜取電子財(cái)產(chǎn),造成的損失是巨大而持久的。 3.3.3 信息泄漏
信息泄漏通常發(fā)生在區(qū)傳送過程中。區(qū)傳送(zone transfer)是區(qū)數(shù)據(jù)文件裝載到輔名字服務(wù)器的過程,使主、輔名字服務(wù)器之間數(shù)據(jù)同步。輔名字服務(wù)器既可以從主名字服務(wù)器裝載區(qū)數(shù)據(jù)文件,也 可以從其他輔名字服務(wù)器裝載。在傳送過程中,內(nèi)
圖3 生日悖論攻擊成功概率
部網(wǎng)絡(luò)拓?fù)洹⒅鳈C(jī)名和操作系統(tǒng)等信息有可能會暴露,并從這些信息中判斷其功能或發(fā)現(xiàn)其他具有漏3.3 操作脆弱性
洞的其他主機(jī),從而使得進(jìn)一步攻擊成為可能[22]。 DNS 最初設(shè)計(jì)主要考慮物理設(shè)備故障,并沒有代表事務(wù)ID 值的集合,這里取值為65 535,n 是
隨機(jī)生成的報(bào)文數(shù)量。
考慮由于人為操作或配置錯(cuò)誤所帶來的安全隱患。由于缺乏有效的配置管理工具,使得DNS 上存在大量的配置錯(cuò)誤(例如無用授權(quán)、循環(huán)依賴和冗余降低等) ,給整個(gè)域名空間帶來極大的安全威脅[7]。針對操作脆弱性的安全威脅主要包括域名配置攻擊、域名注冊攻擊和信息泄漏等。 3.3.1 域名配置攻擊
域名配置攻擊包括無意攻擊和有意攻擊。其中無意攻擊是由于誤配置造成的,例如將防火墻等報(bào)文過濾軟件配置成只允許查詢報(bào)文發(fā)送而不允許應(yīng)答報(bào)文返回。這給DNS 空間帶來極大污染,因?yàn)槊址?wù)器持續(xù)發(fā)送查詢報(bào)文而沒有意識到這樣的配置使其無法接收到任何應(yīng)答報(bào)文[20]。有意攻擊則是利用DNS 協(xié)議配置的隨意性弱點(diǎn)來實(shí)施攻擊。這種攻擊方法的典型代表是對DNS 通配符(wildcard)的濫用,攻擊者通常利用通配符條目來混淆其要真正攻擊的目的主機(jī),垃圾郵件也會利用這點(diǎn)向主機(jī)名嵌入跟蹤信息來驗(yàn)證真實(shí)的郵件賬號從而避開反垃圾郵件系統(tǒng)的檢測。
4 改進(jìn)方案
目前針對DNS 安全的研究主要集中在3個(gè)方面:DNS 協(xié)議安全性研究、DNS 配置診斷研究以及DNS 管理和維護(hù)研究。各個(gè)研究方向看待問題的角度雖然不同,但是從整體上來說都是為了增強(qiáng)DNS 系統(tǒng)的可用性、可靠性及安全性。針對上一節(jié)提到的各種DNS 安全威脅,研究者從協(xié)議安全性、系統(tǒng)可用性和管理維護(hù)等角度提出了許多解決方案和措施,對現(xiàn)有域名系統(tǒng)的安全性加以改進(jìn)和完善。
4.1 DNS 協(xié)議安全性研究
DNS 報(bào)文的源真實(shí)性和完整性是非常重要的,即所謂的目標(biāo)安全性(object security)。因此DNS 安全應(yīng)該關(guān)注的是:如何保證收到的DNS 報(bào)文的可信任性和完整性;如何保證附加字段的信息是可信任的;如何保證區(qū)傳送的機(jī)密性,即通道安全(channel security)。一直以來,很多學(xué)者和研究機(jī)構(gòu)都在探討DNS 安全性問題,對于DNS 協(xié)議所固有的安全缺陷,提出了一些解決方案。1997年1月,
,·96· 通 信 學(xué) 報(bào) 第28卷
IETF 域名系統(tǒng)安全工作組提出DNS 安全擴(kuò)展協(xié)議
BIND (DNSSEC)[23]來加強(qiáng)DNS 基礎(chǔ)設(shè)施的安全性。
9.x 系列版本提供對DNSSEC 的支持。DNSSEC 在兼容現(xiàn)有協(xié)議基礎(chǔ)上引入公鑰加密/認(rèn)證體系,通過事務(wù)簽名和區(qū)簽名來提供端到端的數(shù)據(jù)真實(shí)性和完整性保護(hù)。主要功能包括:密鑰分發(fā);數(shù)據(jù)完整性和原始性認(rèn)證;事務(wù)和請求認(rèn)證。DNSSEC 的出現(xiàn)雖然極大改善了DNS 的安全性,但目前仍然沒有得到大規(guī)模部署,主要存在以下困難:1) 系統(tǒng)效率問題。大量的簽名和記錄驗(yàn)證帶來嚴(yán)重的負(fù)載,很難在實(shí)際應(yīng)用中部署。2) 密鑰系統(tǒng)的管理問題比較突出,包括密鑰的分發(fā)、保存、更新以及廢除等。DNSSEC 中的密鑰是離線存儲的,但是由于動(dòng)態(tài)更新需要頻繁使用密鑰,使得離線的密鑰存儲局限性很大。而且DNSSEC 假定區(qū)的私鑰不被竊取,并且負(fù)責(zé)提供真實(shí)名字服務(wù)的服務(wù)器本身是誠實(shí)可信的,這一假定違反了安全管理和域名服務(wù)器管理角色分離的原則。3) DNSSEC只提供數(shù)據(jù)原始性驗(yàn)證和完整性檢查,沒有提供機(jī)密性、控制列表和一致性檢驗(yàn),無法抵御重放攻擊。4) 由于只提供單向認(rèn)證,只對名字服務(wù)器的響應(yīng)進(jìn)行認(rèn)證,而沒有對客戶的查詢請求進(jìn)行認(rèn)證,因而不能解決緩存中毒的問題。5) DNSSEC也沒有提供對DoS 的防護(hù)機(jī)制。6) DNSSEC本身給DNS 增加了額外的復(fù)雜性,也增加了新的實(shí)現(xiàn)錯(cuò)誤和配置錯(cuò)誤的機(jī)會。此外,DNSSEC 的移植花費(fèi)較高,經(jīng)濟(jì)因素也是制約其部署的原因之一。因此DNSSEC 的大規(guī)模普及和應(yīng)用任重而道遠(yuǎn)。
為解決DNSSEC 中存在的問題,很多學(xué)者進(jìn)行了有益的嘗試。Cachin 等人[24]通過門限加密方法來分布式存儲密鑰,使得密鑰在線存儲和簽署成為可能。使用原子廣播協(xié)議對名字服務(wù)器進(jìn)行安全復(fù)制,克服了名字服務(wù)器的單點(diǎn)失效問題,具有較強(qiáng)的可生存性。但是其通信協(xié)議比較復(fù)雜,也沒有考慮緩存的情況,并且延遲較大,很難在實(shí)際環(huán)境中應(yīng)用。Ateniese 等人[25]提出用對稱加密機(jī)制來管理DNSSEC 中的密鑰,不僅改善了DNSSEC 的性能,而且可以提供必要的數(shù)據(jù)機(jī)密性,抵御重放攻擊。此外,對稱加密機(jī)制也提供互相認(rèn)證,使得控制列表和一致性檢驗(yàn)切實(shí)可行。但是對稱加密要求每一對通信實(shí)體要共享一個(gè)會話密鑰,導(dǎo)致服務(wù)器負(fù)載過重。為解決可擴(kuò)展性問題,Ahmed [26]提出一種層次化的名字服務(wù)器結(jié)構(gòu),結(jié)合迭代和遞歸解析方
法,在一定程度上減少了根名字服務(wù)器的密鑰存儲負(fù)擔(dān)。
緩存中毒也是DNS 協(xié)議脆弱性導(dǎo)致的嚴(yán)重威脅。從微觀結(jié)構(gòu)來看,必須解決單獨(dú)區(qū)的單點(diǎn)失效問題,提供更新的及時(shí)傳播;從宏觀結(jié)構(gòu)來看,解決整個(gè)DNS 系統(tǒng)的可用性問題,要保證發(fā)往端解析器的更新記錄及時(shí)更換。通過關(guān)閉名字服務(wù)器的遞歸查詢功能或單純減少數(shù)據(jù)的TTL 值會減小緩存中毒的可能性,但卻極大降低了DNS 域名解析的速度和效率,可謂因噎廢食。對于這一問題,Schuba 等人[27]給出了若干解決方案,主要包括權(quán)威性驗(yàn)證、上下文相關(guān)性檢測和限制性使用。通過權(quán)威性驗(yàn)證,由權(quán)威名字服務(wù)器提供的信息才會被緩存。上下文相關(guān)性檢測包括內(nèi)容和查詢類型的相關(guān),保證只有與查詢請求相關(guān)的附加信息會被保留。限制性使用則是給緩存的信息加上一些標(biāo)記,用來標(biāo)注這些信息在下次解析過程中是否可以使用。Yan Gao等人[28]認(rèn)為緩存中毒攻擊分為存儲位置干擾(locality-disruption)攻擊和虛假存儲位置(false-locality)攻擊。根據(jù)這兩種攻擊的內(nèi)在特征,提出了基于數(shù)據(jù)流替換算法的檢測方案,不僅能檢測出單獨(dú)發(fā)起的攻擊,還能檢測出混合式攻擊,并實(shí)現(xiàn)了反污染攻擊原型系統(tǒng),有效抵制了緩存中毒攻擊。雖然這些方法在不同程度上降低了DNS 的性能并且增加了使用的復(fù)雜性,但卻極大加強(qiáng)了DNS 的安全性。
由于動(dòng)態(tài)更新沒有完整性檢查機(jī)制,因此也會帶來緩存不一致等問題。Amir 等人[29]指出動(dòng)態(tài)更新產(chǎn)生緩存不一致問題,而且更新發(fā)向單獨(dú)的主服務(wù)器也會加大單點(diǎn)失效的概率,提出用對等服務(wù)器結(jié)構(gòu)來代替主從服務(wù)器結(jié)構(gòu)。區(qū)更新可以提交給任何一臺服務(wù)器,然后通過Spread 組群通信機(jī)制迅速傳播復(fù)制。這種對等結(jié)構(gòu)減小了整個(gè)區(qū)對單一主服務(wù)器的依賴。Wilkinson 等人[30]利用SCOLD 系統(tǒng)關(guān)鍵組件的間接路由技術(shù)來抵制DNS 更新時(shí)遭受的分布式拒絕服務(wù)(DDoS)攻擊,通過地理位置分散的代理服務(wù)器和預(yù)備網(wǎng)關(guān)在客戶端和目標(biāo)服務(wù)器之間建立間接路由。其代理服務(wù)器通常由參與者志愿提供或者由ISP 有償提供,間接路由則用IP 遂道(tunnel)技術(shù)來實(shí)現(xiàn)。Wang 等人[31]提出基于門限加密的安全DNS 體系結(jié)構(gòu),來解決區(qū)安全密鑰在線存儲引發(fā)的單點(diǎn)失效問題和管理區(qū)分問題。認(rèn)為DNS 面臨內(nèi)外兩種攻擊:外部是主名字服務(wù)器的單
,第9期 王垚等:域名系統(tǒng)安全研究綜述 ·97·
點(diǎn)失效;內(nèi)部是服務(wù)器管理員非授權(quán)接觸私鑰所造成的信息泄漏。通過引入?yún)^(qū)安全服務(wù)器和門限加密算法來構(gòu)造容侵系統(tǒng)以解決上述問題,但是由于局限于同一局域網(wǎng)并且未采用具有容錯(cuò)能力的廣播協(xié)議,該方案同樣有產(chǎn)生單點(diǎn)失效的隱患。Steven Cheung [32]提出了基于形式化描述分方法來保護(hù)DNS 等關(guān)鍵基礎(chǔ)設(shè)施。指出DNS 服務(wù)器應(yīng)該只采用與權(quán)威源一致的數(shù)據(jù)。利用高級容錯(cuò)系統(tǒng)在安全策略違規(guī)行為檢測、異常行為部件識別、系統(tǒng)診斷和系統(tǒng)重新配置等方面的特性,設(shè)計(jì)了DNS wrapper 原型系統(tǒng)來過濾可疑消息報(bào)文,有效抵御緩存中毒和DNS 欺騙等攻擊,從而保障了DNS 系統(tǒng)的安全性。
在網(wǎng)絡(luò)傳輸方面通常采用SSL 協(xié)議來加強(qiáng)安全性。由于SSL 協(xié)議在銀行、電信等高等級安全應(yīng)用領(lǐng)域廣泛使用,技術(shù)成熟可靠,提供應(yīng)用級的加密和認(rèn)證,而且移植方便、代價(jià)小,因此在目前情況下比DNSSEC 更具競爭力。Fetzer 等人[33]提出用SSL 協(xié)議來改進(jìn)目前DNS 的安全狀況,增強(qiáng)基礎(chǔ)設(shè)施的可信任性。通過在客戶和服務(wù)器之間架設(shè)可信代理來完成認(rèn)證工作,對現(xiàn)有的客戶端和服務(wù)器完全透明。并且使用現(xiàn)有SSL 的CA 認(rèn)證基礎(chǔ)設(shè)施,移植代價(jià)很小。此外,由于SSL 可以單獨(dú)配置,因此需要進(jìn)行安全加固的實(shí)體可以獨(dú)立部署而不依賴于其他實(shí)體,從而保證了配置的順利實(shí)施。這種方案的缺點(diǎn)在于SSL 協(xié)議是面向連接的,建立在TCP 協(xié)議棧之上,因此不適合保護(hù)DNS 中廣泛使用的UDP 通信數(shù)據(jù)。并且每個(gè)客戶和服務(wù)器之間都要搭建隧道,負(fù)載較大。
Paxson 認(rèn)為針對名字服務(wù)器的反射式DoS 攻擊對DNS 構(gòu)成嚴(yán)重威脅[34]。指出了針對DNS 的兩種攻擊策略,同時(shí)給出了兩種方法來對抗攻擊,一種是在受害者一方過濾對虛假請求的應(yīng)答報(bào)文,另一種是限制遞歸名字服務(wù)器只為本地機(jī)器提供服務(wù)。Rikitake [35]提出使用T/TCP來作為DNS 的傳輸協(xié)議。然而作為T/TCP協(xié)議中欺騙檢測關(guān)鍵點(diǎn)的TAO 測試無法有效抵制惡意攻擊。此外,由于DNS 的查詢和響應(yīng)報(bào)文主要使用UDP 協(xié)議,而UDP 和DNS 協(xié)議本身都沒有提供對請求源的認(rèn)證,使得名字服務(wù)器很容易受到基于欺騙的DoS 攻擊。Guo 等人利用cookie 來檢測DNS 欺騙攻擊[36]。每一個(gè)請求發(fā)起者都需要獲得權(quán)威名字服務(wù)器分發(fā)的唯一cookie 來標(biāo)識之后的所有通信。由于欺騙請求無法
給出正確的cookie 因而能夠被檢測出來,而且這種方案誤報(bào)率很低。然而這些方法均需要修改DNS 的通信機(jī)制,并且需要額外的代理部件進(jìn)行配合,不僅加重了性能負(fù)載,也增加了部署復(fù)雜性。Ballani 等人[37]的利用緩存服務(wù)器中的過期記錄來減輕DoS 造成的影響。由于緩存服務(wù)器中的記錄即使過期也不被刪除,因此可以利用這些記錄作為權(quán)威名字服務(wù)器不可用時(shí)的備份記錄??墒沁@種方案違反了DNS 協(xié)議關(guān)于過期記錄的語義,無法得到合理采納。Pappas 等人[38]也是根據(jù)權(quán)威名字服務(wù)器資源記錄變動(dòng)不頻繁這一特點(diǎn),通過設(shè)置長時(shí)間的TTL 值來增強(qiáng)DNS 抵御DoS 攻擊的能力。實(shí)驗(yàn)表明該方法能夠?qū)NS 的可用性提高一個(gè)數(shù)量級,而且既不需要額外的物理設(shè)備,也沒有改變DNS 的傳統(tǒng)協(xié)議設(shè)計(jì),然而該方法增加了系統(tǒng)遭受緩存中毒攻擊的風(fēng)險(xiǎn)。其他對DoS 攻擊的檢測方法大多是監(jiān)測DNS 流量突變異常,而沒有發(fā)現(xiàn)網(wǎng)絡(luò)進(jìn)出流量之間表現(xiàn)出來的不平衡性,也沒有研究流量屬性特征進(jìn)而從數(shù)據(jù)結(jié)構(gòu)角度刻畫流量行為。 4.2 DNS 配置診斷研究
配置錯(cuò)誤通常包括兩種,一種是由于實(shí)現(xiàn)脆弱性引起的,另一種是人為因素造成的。
Vixie [39]致力于糾正DNS 在實(shí)現(xiàn)方面的錯(cuò)誤。在BIND 4.9.3之后增強(qiáng)了對緩存資源記錄的檢查,并且增加了可信性等級機(jī)制,即來源可靠的記錄會被優(yōu)先緩存。但是BIND 的漏洞層出不窮,涵蓋各個(gè)版本,排在UNIX 及Linux 操作系統(tǒng)相關(guān)安全隱患的首位[5]。鑒于此,Bernstein 開發(fā)了djbdns [40]來取代BIND 。djbdns 改正了BIND 實(shí)現(xiàn)上的很多錯(cuò)誤,如非FIFO 緩存數(shù)據(jù)結(jié)構(gòu)、緩沖區(qū)溢出和無法處理未識別記錄類型等,每一個(gè)查詢報(bào)文的源端口號也是隨機(jī)產(chǎn)生,極大提高了DNS 系統(tǒng)的魯棒性。
許多DNS 管理員缺乏DNS 系統(tǒng)的理論知識和實(shí)際經(jīng)驗(yàn)。由于缺乏系統(tǒng)的文檔和自動(dòng)配置管理工具,人為錯(cuò)誤配置導(dǎo)致了很多攻擊和故障,如無用授權(quán)和冗余降低,因此對配置錯(cuò)誤檢測工具的需求尤為迫切。目前有幾種DNS 配置錯(cuò)誤檢測工具[41~45],但是它們只能檢測DNS 系統(tǒng)中的錯(cuò)誤子集,例如識別資源記錄錯(cuò)誤等具體問題,而且這些檢測工具只有一個(gè)探測點(diǎn),無法識別出需要分布檢測才能發(fā)現(xiàn)的錯(cuò)誤。為了解決這個(gè)問題,Pappas 等人[46]將DNS 配置賦予兩種屬性:連續(xù)性和獨(dú)立性,認(rèn)為配置錯(cuò)誤就是對這兩種屬性的破壞。他們
,·98· 通 信 學(xué) 報(bào) 第28卷
利用多個(gè)探測點(diǎn)對DNS 的配置錯(cuò)誤進(jìn)行檢測,并提供了可視化檢測工具。清華大學(xué)韓殿飛等人[47]對中國域名服務(wù)器的幾類配置錯(cuò)誤進(jìn)行了測量與分析,發(fā)現(xiàn)這些問題同樣廣泛存在,實(shí)驗(yàn)結(jié)果表明.cn 域中30以上的區(qū)都存在配置問題,對中國互聯(lián)網(wǎng)的性能和魯棒性構(gòu)成了較大威脅。此外,dnsproxy [48]和dnstop [49]也可以很有效地檢測配置錯(cuò)誤。dnsproxy 運(yùn)行于防火墻或防火墻內(nèi)的可信主機(jī)上。它將域名空間分割為若干領(lǐng)域(Realm),每個(gè)領(lǐng)域由若干名字服務(wù)器來提供服務(wù)。根據(jù)查詢的域名,dnsproxy 會將請求分配到相應(yīng)的領(lǐng)域來查詢,對結(jié)果進(jìn)行一致性檢驗(yàn)和過濾并記錄潛在攻擊和錯(cuò)誤配置的日志。dnstop 則采用BPF 接口對DNS 查詢報(bào)文進(jìn)行分析統(tǒng)計(jì),可以有效地檢測偽造的A 類型查詢、重復(fù)查詢和無效TLD 查詢等錯(cuò)誤報(bào)文。臺灣交通大學(xué)陳昌盛等人[50]利用本體論來描述DNS 系統(tǒng),設(shè)計(jì)了基于本體論和知識系統(tǒng)的DNS 配置檢測和管理工具iDNS-MS [51],包括DNS 配置和維護(hù)、DNS 調(diào)試、DNS 流量異常監(jiān)測、DNS 注冊和DNS 教學(xué)等子系統(tǒng),從而有效降低了系統(tǒng)管理員的工作負(fù)擔(dān)。
4.3 DNS 管理和維護(hù)研究
作為大規(guī)模分布式系統(tǒng),DNS 的可管理性(manageability)、可控性(controllability)和可維護(hù)(maintainability)是十分重要的。除了對DNS 協(xié)議安全性的研究之外,很多文章在現(xiàn)有基礎(chǔ)上提出了一些安全建議,主要是及時(shí)升級服務(wù)器軟件、嚴(yán)格配置DNS 系統(tǒng)等被動(dòng)消極的防御手段[52],對于DNS 欺騙等一些難以避免的攻擊則缺乏必要的檢測方法和防范措施。
使用分離式DNS(split DNS)[53]是比較常見的管理方式。利用視圖將域名空間分割為內(nèi)部域和外部域,從而避免由于雙向DNS 數(shù)據(jù)不加限制地穿過防火墻所帶來的安全隱患。內(nèi)部域的客戶可以使用私有地址和遞歸查詢內(nèi)部域名,無法解析的查詢通過轉(zhuǎn)發(fā)交由外部域的名字服務(wù)器處理。外部域只包含對外公開的區(qū)數(shù)據(jù),使得在互聯(lián)網(wǎng)上的暴露最小化。這種方案缺點(diǎn)是配置不當(dāng)可能會使內(nèi)部私有地址泄漏從而給互聯(lián)網(wǎng)名字空間造成污染[20]。
另一種方法是依賴SNMP 的MIB(management information base,管理信息庫) 來對DNS 進(jìn)行管理。將各種不同的DNS 功能劃分為兩個(gè)非重疊類:解析器功能和名字服務(wù)器功能,用相應(yīng)的實(shí)體來表示
解析器和名字服務(wù)器,并根據(jù)DNS 規(guī)范、配置文件和現(xiàn)有的DNS 管理工具的使用經(jīng)驗(yàn)創(chuàng)建相應(yīng)的對象進(jìn)行協(xié)議描述。但是它主要是對DNS 流量進(jìn)行審計(jì),很難識別DNS 的配置錯(cuò)誤。
在目前的DNS 系統(tǒng)中,域名擁有者既要提供域名解析服務(wù),又要維護(hù)自己的名字服務(wù)器,使得服務(wù)和管理耦合在一起,不但加大了管理難度,而且由于管理者專業(yè)水平參差不齊,極大增加了服務(wù)器被攻擊的風(fēng)險(xiǎn)。因此,研究者通過改變DNS 層次式管理架構(gòu)(hierarchy structure)來解決這一固有問題,多是利用P2P 網(wǎng)絡(luò)特有的扁平結(jié)構(gòu)(flat structure) 進(jìn)行替代,主要的方案包括DDNS [54]和CoDoNS [55]。
DDNS 采用基于Chord [56]的P2P 分布式哈希表(DHT, distributed hash table)來提供名字解析服務(wù),繼承了Chord 的容錯(cuò)能力和負(fù)載均衡特性,同時(shí)也消除了目前DNS 系統(tǒng)中存在的管理問題。把資源記錄整合為RRSet ,由所有者簽名后插入DHash 中,客戶端使用時(shí)同樣要驗(yàn)證簽名。然而DDNS 中存在DoS 的可能,即Chord 網(wǎng)絡(luò)空間被域名所有者插入大量記錄而耗光。此外分布式哈希表不足以服務(wù)于DNS ,因?yàn)楹芏喙δ苄枰诳蛻舳藢?shí)現(xiàn),一旦更改,則需要所有客戶端進(jìn)行更新。CoDoNS 系統(tǒng)則保留了傳統(tǒng)DNS 設(shè)計(jì)中的成功之處,如層次化結(jié)構(gòu)的獨(dú)立管理和通用的數(shù)據(jù)庫接口,并與目前的DNS 系統(tǒng)完全兼容,可以實(shí)現(xiàn)平滑過渡。CoDoNS 由遍布全球的節(jié)點(diǎn)構(gòu)成P2P 自組織覆蓋網(wǎng)絡(luò)(overlay),通過家節(jié)點(diǎn)(home node)保存域名記錄,并在鄰居節(jié)點(diǎn)上緩存。如果家節(jié)點(diǎn)失效,則最相鄰的鄰居節(jié)點(diǎn)會取而代之成為新的家節(jié)點(diǎn)。利用P2P 網(wǎng)絡(luò)自組織性和自適應(yīng)性的優(yōu)勢,CoDoNS 可以很好地抵御DoS 攻擊,動(dòng)態(tài)地進(jìn)行負(fù)載均衡,從而有效避免了單點(diǎn)失效問題。此外,CoDoNS 中的名字記錄通過自我驗(yàn)證可以有效地防止被篡改,并且通過加密授權(quán)使得每個(gè)具有有效名字記錄的節(jié)點(diǎn)可以為其他節(jié)點(diǎn)提供權(quán)威的名字記錄,從而打破了名字空間管理員對資源的壟斷,實(shí)現(xiàn)了域名空間管理與域名解析的有效分離。但是由于缺乏必要的激勵(lì)機(jī)制,P2P 網(wǎng)絡(luò)中搭便車(free riding)的現(xiàn)象普遍存在,成為制約這類方案實(shí)施的瓶頸。清華大學(xué)李丹等人[57]對互聯(lián)網(wǎng)名字空間結(jié)構(gòu)及解析服務(wù)進(jìn)行了深入研究,分析了當(dāng)前的互聯(lián)網(wǎng)名字空間結(jié)構(gòu)及其解析服務(wù)存在的問題,并對目前的各種互聯(lián)網(wǎng)名字空間改進(jìn)方
,第9期 王垚等:域名系統(tǒng)安全研究綜述 ·99·
案進(jìn)行了分類、綜述與比較,指出目前的DNS 系統(tǒng)存在著記錄更新速度慢、服務(wù)模式單一、資源描述能力不夠強(qiáng)、配置易出錯(cuò)等缺點(diǎn), 分析并比較了許多對DNS 進(jìn)行補(bǔ)充和改進(jìn)的方案, 包括URN [58]、INS [59]和CoDoNS 。
4.4 DNS 安全技術(shù)研究譜系
通過對DNS 安全技術(shù)發(fā)展歷程的分析,可以形成DNS 安全技術(shù)研究譜系圖,如圖4所示。按照協(xié)議安全性、配置診斷、管理和維護(hù)將DNS 安全技術(shù)研究分為3大類,其中白色方框表示安全技術(shù)所屬類別,深色方框?yàn)榫唧w安全技術(shù),從圖中可以更加直觀地了解具體安全技術(shù)的發(fā)展歷程,為今后DNS 安全技術(shù)研究和發(fā)展指明方向。
5 未來研究工作展望
作為大規(guī)模分布式網(wǎng)絡(luò),DNS 可以抽象為一個(gè)有向圖。名字服務(wù)器和解析器構(gòu)成圖的節(jié)點(diǎn),而名字服務(wù)器和解析器之間的路由則構(gòu)成了有向圖的邊。因此,加強(qiáng)DNS 的安全性就是要加強(qiáng)這些節(jié)點(diǎn)和邊的安全性。節(jié)點(diǎn)的安全主要通過安全評估來保證,包括安全漏洞掃描和權(quán)威名字服務(wù)器可用性測量;邊的安全性則體現(xiàn)在關(guān)鍵路由發(fā)現(xiàn)和保護(hù)上。此外,DNSSEC 有效配置與平滑過渡、DNS 配置錯(cuò)誤檢測以及對DNS 攻擊的檢測和防御等問題也是未來研究的熱點(diǎn)問題。 5.1 DNS 系統(tǒng)安全評估
DNS 安全評估主要是根據(jù)“木桶原理”對DNS
系統(tǒng)安全方面進(jìn)行測評,發(fā)現(xiàn)DNS 系統(tǒng)中存在的薄弱環(huán)節(jié)。另外要對特定DNS 系統(tǒng)請求進(jìn)行監(jiān)測,統(tǒng)計(jì)其中無效DNS 請求,分析其對DNS 系統(tǒng)的影響。具體評估方法包括安全漏洞掃描和權(quán)威名字服務(wù)器分布探測。
DNS 服務(wù)器是DNS 系統(tǒng)中最為重要的環(huán)節(jié),BIND 是目前互聯(lián)網(wǎng)上廣泛使用的DNS 服務(wù)器軟件,其最新版本為9.4.0,新版本修正了很多已知的DNS 漏洞。但是之前的版本在網(wǎng)絡(luò)上仍然大量存在,在不同程度上存在著脆弱性,容易受到緩存中毒及域名欺騙攻擊。而安全漏洞掃描是通過發(fā)探測報(bào)文的方法來搜集目標(biāo)DNS 服務(wù)器相關(guān)信息以及存在的安全隱患,形成相應(yīng)的漏洞評估報(bào)告,協(xié)助和指導(dǎo)相關(guān)管理人員更新升級軟件版本,消除安全隱患。
此外,DNS 名字服務(wù)器使用冗余機(jī)制來提高服務(wù)的穩(wěn)定性和健壯性。重要的組織機(jī)構(gòu)都配有多臺名字服務(wù)器提供服務(wù),通常由一臺主名字服務(wù)器和多臺輔名字服務(wù)器組成。一旦主名字服務(wù)器出現(xiàn)故障,則由輔名字服務(wù)器接管,從而保證服務(wù)不被中斷。然而目前很多機(jī)構(gòu)將全部名字服務(wù)器部署在同一子網(wǎng)內(nèi),一旦其所處網(wǎng)絡(luò)出現(xiàn)故障,將導(dǎo)致整個(gè)服務(wù)癱瘓。名字服務(wù)器分布探測就是探測目標(biāo)域名的權(quán)威名字服務(wù)器的真實(shí)情況,包括服務(wù)器個(gè)數(shù)、IP 地址和部署地點(diǎn)等信息,并以此來判斷其是否存在單點(diǎn)失效的風(fēng)險(xiǎn)。這種探測需要支持多點(diǎn)探測來保證測量的準(zhǔn)確性[60]。

圖4 DNS安全技術(shù)研究譜系圖
,·100· 通 信 學(xué) 報(bào) 第28卷
5.2 DNS 系統(tǒng)關(guān)鍵路由發(fā)現(xiàn)和保護(hù)
DNS 名字服務(wù)器用來對外提供域名解析服務(wù)。如何對名字服務(wù)器進(jìn)行管理,確保其高效有序的使用和運(yùn)轉(zhuǎn)是目前面臨的重要問題。對名字服務(wù)器進(jìn)行有效管理,就必然要對服務(wù)器工作狀況進(jìn)行調(diào)查和分析,弄清網(wǎng)絡(luò)中的報(bào)文究竟源自哪里,要訪問的是哪些網(wǎng)站的信息,各類網(wǎng)站被訪問的頻率如何以及所訪問的名字服務(wù)器分布情況。其服務(wù)對象可能遍布全球各地,因此從不同的客戶端到達(dá)服務(wù)器的路由也就千差萬別。但是一般情況下,絕大部分路由都會在最后幾跳匯接到一段比較固定的路由上,特別對根和頂級域名服務(wù)器更是如此。這段固定的路由稱為關(guān)鍵路由。這些關(guān)鍵路由是通往DNS 服務(wù)器的必經(jīng)之路,一旦出現(xiàn)問題,將導(dǎo)致與之相連的服務(wù)器全面失效,因此要對這些關(guān)鍵路由實(shí)施特殊的保護(hù)。
保護(hù)關(guān)鍵路由的首要問題是如何發(fā)現(xiàn)它們。關(guān)鍵路由發(fā)現(xiàn)需要對目標(biāo)名字服務(wù)器進(jìn)行分布式路由探測,然后將探測結(jié)果進(jìn)行分析和綜合,最終找到大部分路由的匯接點(diǎn)。探測結(jié)果的準(zhǔn)確性依賴于測試機(jī)的分布情況,測試機(jī)分布越廣泛,探測結(jié)果就越準(zhǔn)確。通過對DNS 系統(tǒng)的關(guān)鍵路由進(jìn)行發(fā)現(xiàn)和保護(hù),能夠有效分析造成網(wǎng)絡(luò)時(shí)延的成因并定位故障點(diǎn),極大改善整個(gè)Internet 的性能和DNS 的服務(wù)質(zhì)量(QoS),并對互聯(lián)網(wǎng)基礎(chǔ)設(shè)施的規(guī)劃建設(shè)和安全防護(hù)起到很好的指導(dǎo)作用。 5.3 DNS 異常檢測和安全防護(hù)
異常檢測是網(wǎng)絡(luò)安全保障措施的重要組成部分,有利于及時(shí)發(fā)現(xiàn)網(wǎng)絡(luò)異常行為,快速檢測和定位網(wǎng)絡(luò)故障和性能問題所在,指導(dǎo)網(wǎng)絡(luò)管理者采取措施加以解決從而避免或減輕故障和攻擊造成的影響,對保障網(wǎng)絡(luò)服務(wù)質(zhì)量、提高網(wǎng)絡(luò)的可用性及維護(hù)網(wǎng)絡(luò)的可靠性具有重要意義?,F(xiàn)實(shí)網(wǎng)絡(luò)中存在兩種異常行為,一種是由惡意攻擊引起的,一種是系統(tǒng)在軟件設(shè)計(jì)、編碼和系統(tǒng)配置過程中的脆弱性所導(dǎo)致的??梢酝ㄟ^基于流量 (volume)和報(bào)文載荷(payload)特征的方法進(jìn)行檢測。DNS 系統(tǒng)采用層次化體系結(jié)構(gòu),由作為客戶端的解析器、本地名字服務(wù)器和全局名字服務(wù)器構(gòu)成,因此其業(yè)務(wù)量模型為層級式客戶/服務(wù)器業(yè)務(wù)量模型,其中的業(yè)務(wù)量具有層次性,底層名字服務(wù)器完成中繼功能,既可能是數(shù)據(jù)源也可能是數(shù)據(jù)宿。同時(shí),傳統(tǒng)的客戶/服務(wù)器業(yè)務(wù)量模型具有不對稱性,即服務(wù)器到客戶端的流
量較大,而在DNS 協(xié)議中查詢和響應(yīng)報(bào)文尺寸相差不大,并沒有明顯的流量差異,因此基于流量統(tǒng)計(jì)的傳統(tǒng)檢測方法并不適用于大規(guī)模網(wǎng)絡(luò)環(huán)境下DNS 異常的檢測和識別。此外,目前通用的異常檢測方法多為流量異常(volume anomaly)檢測,對沒有明顯攻擊特征的名字服務(wù)器端口掃描等攻擊束手無策。 針對DNS 名字服務(wù)器的端口掃描攻擊具有很強(qiáng)的隱蔽性,不像DDoS 攻擊那樣產(chǎn)生額外的流量,并且攻擊報(bào)文和正常報(bào)文在結(jié)構(gòu)上差異很小,但是端口掃描攻擊在結(jié)構(gòu)上會表現(xiàn)出業(yè)務(wù)量異常(traffic anomaly),因此,針對DNS 端口掃描等隱蔽性攻擊開展專門的檢測技術(shù)研究非常必要。
安全防護(hù)技術(shù)是保證網(wǎng)絡(luò)信息系統(tǒng)保密性、完整性、可用性、可控性和不可否認(rèn)性的綜合技術(shù)。隨著網(wǎng)絡(luò)規(guī)模極速增長,安全等級不斷提升,安全防護(hù)技術(shù)得到長足發(fā)展,目前以可生存性增強(qiáng)、容錯(cuò)和容侵等技術(shù)為核心的第三代安全技術(shù)逐漸成為研究熱點(diǎn)。與此同時(shí),域名系統(tǒng)的角色重要性和安全欠缺性矛盾日益嚴(yán)重,絕大部分的名字服務(wù)器依然暴露在各種威脅之中,嚴(yán)重威脅互聯(lián)網(wǎng)的整體安全性。目前對網(wǎng)絡(luò)攻擊和破壞行為的對抗效果并不理想,大多只能抵御已知攻擊,缺少對域名系統(tǒng)故障和人為操作失誤等因素的處理,在體系結(jié)構(gòu)上多是外在附加的被動(dòng)防御,未能解決脆弱性的本源問題,無法應(yīng)對具有隨機(jī)多變和和傳播隱蔽等特點(diǎn)的攻擊和破壞行為。因此,如何將安全防護(hù)技術(shù)系統(tǒng)應(yīng)用到DNS 這一關(guān)鍵基礎(chǔ)設(shè)施成為互聯(lián)網(wǎng)安全領(lǐng)域亟待解決的研究課題。 5.4 DNS 攻擊反向追蹤
反向追蹤技術(shù)用來追蹤和定位攻擊者所在的位置,能夠找到攻擊數(shù)據(jù)的源頭,對于盡快恢復(fù)正常的網(wǎng)絡(luò)功能、阻止攻擊再次發(fā)生以及最終讓攻擊者受到應(yīng)有懲罰來說至關(guān)重要。網(wǎng)絡(luò)犯罪之所以如此猖獗,在很大程度上是由于網(wǎng)絡(luò)的開放性使得對攻擊者的追蹤和懲罰難以實(shí)施,無法形成強(qiáng)大的網(wǎng)絡(luò)威懾力,致使攻擊者肆無忌憚地進(jìn)行破壞。反向追蹤技術(shù)可以從源頭上消除攻擊并最終形成網(wǎng)絡(luò)威懾力。到目前為止已經(jīng)出現(xiàn)了很多反向追蹤技術(shù),如鏈路測試(link testing)、報(bào)文記錄(logging)、ICMP 追蹤(ICMP traceback)和報(bào)文標(biāo)記 (packet marking) 等。這些追蹤機(jī)制優(yōu)缺點(diǎn)并存,沒有一種解決方案可以實(shí)現(xiàn)有效追蹤方法規(guī)定的全部需求。這些追蹤方案需要在大部分互聯(lián)網(wǎng)基礎(chǔ)設(shè)施中的