域名系統(tǒng)(Domain Name System,DNS)是一個(gè)將Domain Name和IP Address進(jìn)行互相映射的Distributed Database.DNS是網(wǎng)絡(luò)應(yīng)用的基礎(chǔ)設(shè)施,它的安全性對(duì)于互聯(lián)網(wǎng)的安全有著舉足輕重的影響。但是由于DNS Protocol在自身設(shè)計(jì)方面存在缺陷,安全保護(hù)和認(rèn)證機(jī)制不健全,造成DNS自身存在較多安全隱患,導(dǎo)致其很容易遭受攻擊。很多專家就DNS Protocol的安全缺陷提出了很多技術(shù)解決方案。例如IETF提出的域名系統(tǒng)安全協(xié)議(Domain Name System Security,DNSSEC),其目標(biāo)就在于解決這些安全隱患。這個(gè)Protocol增加了安全認(rèn)證項(xiàng)目,增強(qiáng)了Protocol自身的安全功能。但是新增加的安全機(jī)制需要占用更多的系統(tǒng)和網(wǎng)絡(luò)資源,同時(shí)要升級(jí)Database和System Manggament Software,這些基于DNSSEC協(xié)議的軟件還不成熟,距離普及應(yīng)用還有較長時(shí)間。目前,常見的措施是定期升級(jí)DNS軟件和加強(qiáng)相關(guān)的安全配置,禁用不安全的端口等。本文對(duì)以偵聽為基礎(chǔ)的DNS ID欺騙(DNS ID spoofing)進(jìn)行了探討,并提出了相關(guān)的防護(hù)解決方案。
一、DNS SERVER的服務(wù)工作過程
DNS是一種實(shí)現(xiàn)Domain Name和IP Address之間轉(zhuǎn)換的系統(tǒng),它的工作原理就是在兩者間進(jìn)行相互映射,相當(dāng)于起到翻譯作用,所以稱為域名解析系統(tǒng)。DNS System分為Server和Client兩部分,Server的通用Port是53.當(dāng)Client向Server發(fā)出解析請(qǐng)求時(shí),Local DNS Server第一步查詢自身的Database是否存在需要的內(nèi)容,如果有則發(fā)送應(yīng)答數(shù)據(jù)包并給出相應(yīng)的結(jié)果;否則它將向上一層DNS Server查詢。如此不斷查詢,最終直至找到相應(yīng)的結(jié)果或者將查詢失敗的信息反饋給客戶機(jī)。如果Local DNS Server查到信息,則先將其保存在本機(jī)的高速緩存中,然后再向客戶發(fā)出應(yīng)答。日常我們上網(wǎng)是通過Browser方式來申請(qǐng)從Domain Name到IP Address的解析,即Client向DNS Server提交域名翻譯申請(qǐng),希望得到對(duì)應(yīng)的IP Address.這里以筆者所在院校為例,說明DNS的工作原理。
例如Client的Address為10.252.2.16,學(xué)校DNS Server為218.30.19.40,從此客戶機(jī)來訪問西安財(cái)經(jīng)學(xué)院網(wǎng)站。在地址欄鍵入學(xué)校網(wǎng)站的www.xaufe.edu.cn,通過DNS Server查找其對(duì)應(yīng)的IP Address.這個(gè)申請(qǐng)從10.252.2.16的一個(gè)隨機(jī)PORT發(fā)送出去,由218.30.19.40的53綁定端口接收到此申請(qǐng)并進(jìn)行翻譯,首先在218.30.19.40的高速緩存中查找www.xaufe.edu.cn的IP Address,若存在對(duì)應(yīng)的映射關(guān)系,就直接將IP Address發(fā)送給客戶機(jī),若緩存中沒有,則218.30.19.40會(huì)向上層DNS SERVER查詢,最后將查詢到的結(jié)果先發(fā)送到218.30.19.40,最后由218.30.19.40將西安財(cái)經(jīng)學(xué)院的IP Address(281.195.32.1)返回給Client 10.252.2.16.這樣10.252.2.16就可以和西安財(cái)經(jīng)學(xué)院站點(diǎn)建立連接并訪問了。
二、DNS欺騙攻擊原理
2.1 欺騙原理
Client的DNS查詢請(qǐng)求和DNS Server的應(yīng)答數(shù)據(jù)包是依靠DNS報(bào)文的ID標(biāo)識(shí)來相互對(duì)應(yīng)的。在進(jìn)行域名解析時(shí),Client首先用特定的ID號(hào)向DNS Server發(fā)送域名解析數(shù)據(jù)包,這個(gè)ID是隨機(jī)產(chǎn)生的。DNS Server找到結(jié)果后使用此ID給Client發(fā)送應(yīng)答數(shù)據(jù)包。Client接收到應(yīng)答包后,將接收到的ID與請(qǐng)求包的ID對(duì)比,如果相同則說明接收到的數(shù)據(jù)包是自己所需要的,如果不同就丟棄此應(yīng)答包。根據(jù)攻擊者的查詢和應(yīng)答原理,可使用不同方法實(shí)現(xiàn)攻擊,如:
(1)因?yàn)镈NS Message僅使用一個(gè)簡單的認(rèn)證碼來實(shí)施真實(shí)性驗(yàn)證,認(rèn)證碼是由Client程序產(chǎn)生并由DNS Server返回結(jié)果的,客戶機(jī)只是使用這個(gè)認(rèn)證碼來辨別應(yīng)答與申請(qǐng)查詢是否匹配,這就使得針對(duì)ID認(rèn)證碼的攻擊威脅成為可能。
(2)在DNS Request Message中可以增加信息,這些信息可以與客戶機(jī)所申請(qǐng)查詢的內(nèi)容沒有必然聯(lián)系,因此攻擊者就能在Request Message中根據(jù)自己的目的增加某些虛假的信息,比如增加其它Domain Server的Domain Name及其IP Address.此時(shí)Client在受到攻擊的Domain Server上的查詢申請(qǐng)均被轉(zhuǎn)向此前攻擊者在Request Message中增加的虛假Domain Server,由此DNS欺騙得以產(chǎn)生并對(duì)網(wǎng)絡(luò)構(gòu)成威脅。
(3)當(dāng)DNS Server接收到Domain Name和IP Address相互映射的數(shù)據(jù)時(shí),就將其保存在本地的Cache中。若再有Client請(qǐng)求查詢此Domain Name對(duì)應(yīng)的IP Address,Domain Server就會(huì)從Cache中將映射信息回復(fù)給Client,而無需在Database中再次查詢。如果黑客將DNS Request Message的存在周期設(shè)定較長時(shí)間,就可進(jìn)行長期欺騙。
2.2 DNS欺騙攻擊的方式
DNS欺騙技術(shù)常見的有內(nèi)應(yīng)攻擊和序列號(hào)攻擊兩種。內(nèi)應(yīng)攻擊即黑客在掌控一臺(tái)DNS Server后,對(duì)其Domain Database內(nèi)容進(jìn)行更改,將虛假IP Address指定給特定的Domain Name,當(dāng)Client請(qǐng)求查詢這個(gè)特定域名的IP時(shí),將得到偽造的IP.
聯(lián)系客服