1) 用戶向DNS 客戶端發(fā)送DNS請求,客戶端先查看本地緩存,如果緩存中有該域名,則直接返回給用戶;客戶端若沒有域名的相關(guān)緩存,則向本地域名服務(wù)器提出解析請求。

2) 本地域名服務(wù)器在收到請求后,先查看緩存,若緩存中有相關(guān)記錄,則應(yīng)答客戶端的請求;否則,本地域名服務(wù)器直接向根域名服務(wù)器提出請求。

3) 根域名服務(wù)器接到請求后,將包含有所需解釋的域名的頂級域名服務(wù)器返回給本地域名服務(wù)器。

4) 本地域名服務(wù)器根據(jù)根域名服務(wù)器的返回結(jié)果,向頂級域名服務(wù)器發(fā)送請求。

5) 頂級域名服務(wù)器接到請求后,將包含所查詢的域名的域名服務(wù)器返回給本地域名服務(wù)器。

6) 本地域名服務(wù)器根據(jù)返回結(jié)果連接包含域名的域名服務(wù)器,得到查詢結(jié)果,

然后將查詢結(jié)果緩存,并向客戶端應(yīng)答。

7) 客戶端接到應(yīng)答后,將查詢結(jié)果緩存,然后向用戶應(yīng)答。

按此在新窗口打開圖片按此在新窗口打開圖片

二、 安全威脅

DNS的安全威脅主要可分為幾種:DNS欺騙、分布式拒絕服務(wù)攻擊、DNS軟件漏洞攻擊、管理缺陷等。下面分別對這幾類攻擊進(jìn)行介紹。

DNS欺騙

DNS的查詢請求是基于UDP的,DNS客戶端會接受首先到達(dá)的DNS應(yīng)答包,而將后到達(dá)的DNS應(yīng)答包當(dāng)作是冗余包簡單丟棄掉。客戶端對DNS應(yīng)答包的驗(yàn)證僅通過隨機(jī)發(fā)送的查詢ID和UDP端口號,除此之外沒有任何的驗(yàn)證。這就給DNS欺騙提供了機(jī)會。

1、DNS ID欺騙

DNS ID欺騙中的攻擊者必須跟用戶處于同一個局域網(wǎng)內(nèi)。

攻擊流程:

1) Arp欺騙。欺騙者向用戶發(fā)送偽造的arp應(yīng)答報(bào)文,更新用戶本地的arp緩存,使用戶認(rèn)為欺騙者為網(wǎng)關(guān)。這樣,在用戶向本地DNS服務(wù)器發(fā)送請求時,數(shù)據(jù)的流向就改為用戶—欺騙者—網(wǎng)關(guān)—本地DNS服務(wù)器。欺騙者通過sniffer軟件,嗅探到DNS請求包的ID和端口號。

2) 欺騙者利用得到的ID和端口號,優(yōu)先向用戶發(fā)送偽造DNS應(yīng)答,用戶在對ID和端口號進(jìn)行核對后認(rèn)為是正確的應(yīng)答。此時用戶訪問的域名已經(jīng)被替換為欺騙者偽造的IP。

3) 本地DNS服務(wù)器發(fā)送的真的DNS應(yīng)答包因?yàn)橥碛趥卧彀脩羰盏胶髞G棄。至此,DNS ID欺騙攻擊完成。

2、DNS緩存中毒

當(dāng)攻擊者與用戶不是處于同一個局域網(wǎng)時,攻擊者無法得到DNS請求報(bào)文的ID與端口號,“生日攻擊”就是在這種情況下的對DNS緩存的一種攻擊方式。

攻擊流程如下:

1、 攻擊者向DNS服務(wù)器發(fā)送一定數(shù)量的DNS請求包,請求的DNS選擇該DNS服務(wù)器解析不了的,這樣的情況下,DNS服務(wù)器會向上層DNS服務(wù)器發(fā)出相同數(shù)量的請求。

2、 攻擊者快速向DNS服務(wù)器發(fā)送一定數(shù)量的偽造的DNS應(yīng)答包,其中ID和端口號為隨機(jī)的,當(dāng)ID和端口號與正確的相碰撞時,緩存攻擊成功。DNS服務(wù)器將錯誤的DNS解析項(xiàng)緩存,這樣,所有DNS請求都將導(dǎo)向攻擊者偽造的IP地址。

“生日悖論”的數(shù)學(xué)模型可以證明,一次成功的攻擊所需發(fā)送偽造包的數(shù)量并不多,即是說“生日攻擊”是易于發(fā)動,也易于成功的。

分布式拒絕服務(wù)攻擊

攻擊者通過控制的“僵尸網(wǎng)絡(luò)”(成百上千的被控主機(jī)群)向目標(biāo)DNS服務(wù)器發(fā)送DNS查詢請求,從而導(dǎo)致目標(biāo)DNS服務(wù)器過載以及網(wǎng)絡(luò)線路堵塞。從而形成分布式拒絕服務(wù)攻擊。

著名的“暴風(fēng)影音DNS攻擊”事件就是分布式拒絕服務(wù)攻擊的一個實(shí)例。

軟件漏洞攻擊

1、 DoS(Deny of Service)攻擊

利用DNS軟件的漏洞,如9.2.0版本以前的BIND,向正在運(yùn)行的BIND設(shè)備發(fā)送特定的DNS數(shù)據(jù)包請求,BIND會自動關(guān)閉,用戶的請求將無法得到DNS服務(wù)器的任何應(yīng)答,用戶也將無法訪問互聯(lián)網(wǎng),從而形成DoS攻擊。

2、 緩沖區(qū)溢出攻擊

利用DNS軟件對輸入的請求字符串不做做嚴(yán)格的檢查的安全漏洞,攻擊者構(gòu)造特殊的數(shù)據(jù)包攻擊DNS服務(wù)器,以期造成DNS軟件的緩沖區(qū)溢出,在溢出成功后,通過執(zhí)行特殊的代碼獲得高級的權(quán)限,從而得到DNS服務(wù)器的控制權(quán)。

管理缺陷

DNS現(xiàn)有的管理、配置以及安全機(jī)制的規(guī)劃都非常有限,甚至還很初級。例如目前全球DNS系統(tǒng)仍然主要依賴多點(diǎn)鏡像、負(fù)載均衡等方法來應(yīng)對流量突發(fā)訪問以及遭受DDOS攻擊時保持正常運(yùn)轉(zhuǎn)。另外對DNS的管理和配置以及安全防護(hù)也主要依賴管理者的實(shí)際經(jīng)驗(yàn)。

三、 解決方案

應(yīng)對上述DNS安全威脅的主要辦法可總結(jié)如下:

防范Arp攻擊、采用UDP隨機(jī)端口、建立靜態(tài)IP映射、運(yùn)行最新版本的BIND、限制查詢、利用防火墻進(jìn)行保護(hù)、利用交叉檢驗(yàn)、使用TSIG機(jī)制、利用DNSSEC機(jī)制。

下面分別做出說明。

防范Arp攻擊

主要是針對局域網(wǎng)的DNS ID欺騙攻擊。如上所述,DNS ID欺騙是基于Arp欺騙的,防范了Arp欺騙攻擊,DNS ID欺騙攻擊是無法成功實(shí)施的。

采用UDP隨機(jī)端口

不再使用默認(rèn)的53端口查詢,而是在UDP端口范圍內(nèi)隨機(jī)選擇,可使對ID與端口組合的猜解難度增加6萬倍,從而降低使DNS緩存攻擊的成功率。

建立靜態(tài)IP映射

主要是指DNS服務(wù)器對少部分重要網(wǎng)站或經(jīng)常訪問的網(wǎng)站做靜態(tài)映射表,使對這些網(wǎng)站的訪問不再需要經(jīng)過緩存或者向上一級的迭代查詢,從而在機(jī)制上杜絕DNS欺騙攻擊。

運(yùn)行最新版本的BIND

使用最新版本的BIND,可以防止已知的針對DNS軟件的攻擊(如DoS攻擊、緩沖區(qū)溢出漏洞攻擊等)。應(yīng)密切關(guān)注BIND安全公告,及時打好補(bǔ)丁。

限制查詢

在BIND8和BIND9之后,BIND的allow-query子句允許管理員對到來的查詢請求使用基于IP地址的控制策略,訪問控制列表可以對特定的區(qū)甚至是對該域名服務(wù)器受到的任何查詢請求使用限制策略。如限制所有查詢、限制特定區(qū)的查詢、防止未授權(quán)的區(qū)的查詢、以最少權(quán)限運(yùn)行BIND等。

利用防火墻進(jìn)行保護(hù)

這種保護(hù)方式可以使受保護(hù)的DNS服務(wù)器不致遭受分布式拒絕服務(wù)攻擊、軟件漏洞攻擊。原理是在DNS服務(wù)器主機(jī)上建立一個偽DNS服務(wù)器共外部查詢,而在內(nèi)部系統(tǒng)上建立一個真實(shí)的DNS服務(wù)器專供內(nèi)部使用。配置用戶的內(nèi)部DNS客戶機(jī),用于對內(nèi)部服務(wù)器的所有查詢,當(dāng)內(nèi)部主機(jī)訪問某個網(wǎng)站時,僅當(dāng)內(nèi)部DNS服務(wù)器上沒有緩存記錄時,內(nèi)部DNS才將查詢請求發(fā)送到外部DNS服務(wù)器上,以保護(hù)內(nèi)部服務(wù)器免受攻擊。

利用交叉檢驗(yàn)

這種保護(hù)方式可以從一定程度上防范DNS欺騙攻擊。原理是反向查詢已得到的IP地址對應(yīng)的主機(jī)名,用該主機(jī)名查詢DNS服務(wù)器對應(yīng)于該主機(jī)名的IP地址,如果一致,則請求合法,否則非法。

使用TSIG機(jī)制

TSIF(事物簽名)機(jī)制(RFC2845)通過使用共享密鑰(Secret Key)及單向散列函數(shù)(One-way hash function)提供信息的驗(yàn)證以及數(shù)據(jù)的完整性。當(dāng)配置了TSIG后,DNS消息會增加一個TSIF記錄選項(xiàng),該選項(xiàng)對DNS消息進(jìn)行簽名,為消息發(fā)送者和接受者提供共享密鑰,從而保證了傳輸數(shù)據(jù)不被竊取和篡改。TSIP機(jī)制的部署步驟不做贅述,相關(guān)RFC文檔有詳細(xì)說明。

利用DNSSEC機(jī)制

為保證客戶機(jī)發(fā)送的解析請求的完整性,保護(hù)DNS服務(wù)器及其中的信息,防止入侵者冒充合法用戶向他人提供虛假DNS信息,IETF(網(wǎng)絡(luò)工程任務(wù)組)提出了DNS安全擴(kuò)展(DNSSEC)的安全防范思想。

1、 DNSSEC工作原理

為提高DNS訪問數(shù)據(jù)包的安全性,DNSSEC在兼容現(xiàn)有協(xié)議的基礎(chǔ)上引入加密和認(rèn)證體系,在每個區(qū)域都有一對區(qū)域級的密鑰對,密鑰對中的公鑰對域名記錄信息進(jìn)行數(shù)字簽名,從而使支持DNSSEC的接收者可以校驗(yàn)應(yīng)答信息的可靠性。

BIND9.0支持DNS的安全擴(kuò)展功能?。DNSSEC引入兩個全新的資源記錄類型:KEY和SIG,允許客戶端和域名服務(wù)器對任何DNS數(shù)據(jù)來源進(jìn)行密鑰驗(yàn)證。DNSSEC主要依靠公鑰技術(shù)對于包含在DNS中的信息創(chuàng)建密鑰簽名,密鑰簽名通過計(jì)算出一個密鑰Hash數(shù)來提供DNS中數(shù)據(jù)的完整性,并將該Hash數(shù)封裝進(jìn)行保護(hù)。私/公鑰對中的私鑰用來封裝Hash數(shù),然后可以用公鑰把Hash數(shù)翻譯出來。如果這個翻譯出的Hash值匹配接收者計(jì)算出來的Hash數(shù),那么表明數(shù)據(jù)是完整的、沒有被篡改的。

2、 DNSSEC的實(shí)施

1)、創(chuàng)建一組密鑰對

#cd/vat/named

#dnssec -keygen -a RSA -b 512 -n ZONE qfnu.edu.Kqfnu.edu+002+27782

2)、生成密鑰記錄

#dnssec –makekeyset -t 172802 I

3)、發(fā)送密鑰文件到上一級域管理員,以供簽名使用

#dnssec -signkey keyset -qfnu.edu Kedu.+002+65396.private

然后將返回qfnu.edu.signedkey文件

4)、在進(jìn)行區(qū)域簽名之前,必須先將密鑰記錄添加到區(qū)域數(shù)據(jù)文件之中

#cat“$include Kqfnn.edu.+002+27782.key”>>db.qfnu.edu

5)、對區(qū)域進(jìn)行簽名

#dnssec –signzone -O qfnu.edu db.qfnu.edu

6)、修改named.conf里的zone語句,系統(tǒng)將會載新的區(qū)域數(shù)據(jù)文件

3、 DNSSEC的不足

一方面,DNSSEC安全性雖然有所提高,但是標(biāo)記和校驗(yàn)必然產(chǎn)生額外的開銷,從而影響網(wǎng)絡(luò)和服務(wù)器的性能,簽名的數(shù)據(jù)量很大,家中了域名服務(wù)器對骨干網(wǎng)以及非骨干網(wǎng)連接的負(fù)擔(dān),同時簡明校驗(yàn)也對CPU造成了很大的負(fù)擔(dān),同時簽名和密鑰也占用了占用的磁盤空間以及RAM容量。

另一方面,安全性能方面的考慮。絕大多數(shù)的DNS軟件是美國出口的,它們?yōu)榱送ㄟ^美國政府的安全規(guī)定而被迫降低加密算法和過程的安全強(qiáng)度。

第三方面,RSA算法的使用。RSA擁有美國專利,與某些廠商和組織倡導(dǎo)的“免費(fèi)/開放”目標(biāo)有所沖突,但是同時又別無選擇。在成本方面也是部署中的一個問題。

四、 總結(jié)

知名IT網(wǎng)站TechTarget近日發(fā)布的2010年五大安全主題的展望中,DNSSEC部署動向位列第三位,DNS服務(wù)的安全性已經(jīng)受到人們越來越多的關(guān)注。然而DNS系統(tǒng)本身的復(fù)雜性以及全球性特點(diǎn)給DNS系統(tǒng)的安全部署又帶來了很多的問題,而目前已有的安全方案仍然很不成熟,部署應(yīng)用中也還有很多問題沒有解決,如何面對這些挑戰(zhàn),仍然是一個尚未解決又急需解決的難題。

參考文獻(xiàn):

1、Dannie-《百度域名劫持事件百日談》

2、郭大興,周向榮 《DNS緩存中毒攻擊與防范》綠盟科技開發(fā)中心

3、孔致,姜秀柱 《DNS欺騙原理及其防御方案》計(jì)算機(jī)工程 2010年2月 第36卷 第三期

4、Harry’s home《從百度域名劫持事件談DNS系統(tǒng)的安全問題》

5、《TechTarget展望2010年五大安全主題》 中國信息安全認(rèn)證中心

6、《互聯(lián)網(wǎng)域名系統(tǒng)安全管理的現(xiàn)狀及研究進(jìn)展》 中國信息安全認(rèn)證中心

7、姜春茂,黃春梅,聶福林 《基于DNS攻擊的安全防范策略》陜西科技大學(xué)學(xué)報(bào) 2004年

8、王啟建 高仲合 《基于DNS攻擊的安全分析及其防范》網(wǎng)絡(luò)與信息安全

9、王昕 王靜怡 《基于DNS攻擊的安全加固策略應(yīng)用科技》

10、張紅輕,王道順 《基于DNS緩存中毒的Webmail攻擊及防護(hù)》 計(jì)算機(jī)工程 2009年2月

11、喬雷 《對暴風(fēng)DNS遭遇攻擊導(dǎo)致大規(guī)模網(wǎng)絡(luò)故障的分析》 網(wǎng)絡(luò)安全博客

分享到

tangrong

相關(guān)推薦