域名服務(wù)器DNS在Internet通信中具有舉足輕重的作用,它負(fù)責(zé)對(duì)域名和IP地址進(jìn)行轉(zhuǎn)換。正是因?yàn)樗淖饔弥匾@些服務(wù)器往往具有較高的系統(tǒng)配置,通常位于高速主干網(wǎng)上,以便快速響應(yīng)大量用戶的查詢請(qǐng)求。另外,由于域名服務(wù)系統(tǒng)的分布性和開放性,域名服務(wù)器常常被安置在防火墻的外面。這些特征使其成為黑客進(jìn)行攻擊的優(yōu)選目標(biāo)。目前,黑客對(duì)DNS服務(wù)器的攻擊主要有三種方法:地址欺騙、拒絕服務(wù)和遠(yuǎn)程漏洞入侵。
地址欺騙攻擊利用了RFC標(biāo)準(zhǔn)協(xié)議中的某些不完善的地方,以達(dá)到修改域名指向的目的。當(dāng)黑客控制著一個(gè)或多個(gè)Internet上正式運(yùn)行的DNS服務(wù)器時(shí),黑客可以指定這些服務(wù)器負(fù)責(zé)解析某個(gè)區(qū)域,并且在這個(gè)區(qū)域內(nèi)加入大量偽造的數(shù)據(jù)(A記錄、NS記錄等),然后黑客使用DNS查詢工具向受害者的DNS服務(wù)器發(fā)送一個(gè)遞歸查詢請(qǐng)求,引誘受害者的 DNS服務(wù)器去查詢黑客的DNS服務(wù)器,黑客的DNS服務(wù)器在返回的查詢結(jié)果中包含了那些事先偽造的數(shù)據(jù),受害者的DNS服務(wù)器在收到查詢結(jié)果后,將此結(jié)果送回黑客的查詢工具,同時(shí)也緩存了查詢結(jié)果中的偽造數(shù)據(jù)。這樣,黑客通過修改自己的DNS服務(wù)器上的數(shù)據(jù),可以使被攻擊的DNS服務(wù)器返回任何錯(cuò)誤的地址指向。
針對(duì)DNS服務(wù)器的拒絕服務(wù)攻擊有兩種,一種攻擊針對(duì)DNS服務(wù)器軟件本身,通常利用BIND軟件程序中的漏洞,導(dǎo)致DNS服務(wù)器崩潰或拒絕服務(wù)。這種攻擊很容易對(duì)付,只要為BIND軟件安裝相應(yīng)的補(bǔ)丁程序或更新軟件即可。另一種黑客攻擊的目標(biāo)不是DNS服務(wù)器本身,而是利用DNS服務(wù)器作為中間的“攻擊放大器”,去攻擊Internet上其他的計(jì)算機(jī),導(dǎo)致被攻擊的計(jì)算機(jī)拒絕服務(wù)。黑客首先向多個(gè)DNS服務(wù)器發(fā)送大量的查詢請(qǐng)求,這些查詢請(qǐng)求數(shù)據(jù)包中的源IP地址為被攻擊主機(jī)的IP地址,DNS服務(wù)器將大量的查詢結(jié)果發(fā)送給被攻擊主機(jī),使被攻擊主機(jī)所在的網(wǎng)絡(luò)擁塞或不再對(duì)外提供服務(wù)。通過限制查詢主機(jī)的IP地址可以減輕這種攻擊的影響,但是不可能從根本上解決這個(gè)問題。
由于BIND服務(wù)器軟件的許多版本存在緩沖區(qū)溢出漏洞,黑客可以利用這些漏洞遠(yuǎn)程入侵BIND服務(wù)器所在的主機(jī),并以root身份執(zhí)行任意命令。這就是針對(duì)DNS服務(wù)器的遠(yuǎn)程漏洞入侵攻擊。這種攻擊的危害性比較嚴(yán)重,黑客不僅獲得了DNS服務(wù)器上所有授權(quán)區(qū)域內(nèi)的數(shù)據(jù)信息,甚至可以直接修改授權(quán)區(qū)域內(nèi)的任意數(shù)據(jù),同時(shí)可以利用這臺(tái)主機(jī)作為攻擊其他機(jī)器的“跳板”。
為了保護(hù)域名服務(wù)器DNS的安全,建議采取以下措施。
1.使用最新版本的DNS服務(wù)器軟件
Internet上當(dāng)前使用最廣泛的DNS服務(wù)器軟件為BIND(Berkeley Internet Name Domain),它可以運(yùn)行在各種UNIX平臺(tái)上,某些版本也支持Windows NT平臺(tái)。BIND軟件是一個(gè)免費(fèi)軟件,由Internet軟件協(xié)會(huì)(Internet Software Consortium)開發(fā)和維護(hù)。BIND軟件分為兩個(gè)系列:版本4系列和版本8系列。Internet軟件協(xié)會(huì)強(qiáng)烈建議使用BIND 8系列中的版本8.2.2+P5。最新版本的DNS服務(wù)器軟件雖然消除了大部分目前已知的漏洞,但并不意味著DNS服務(wù)器的徹底安全,因?yàn)殡S著新漏洞的發(fā)現(xiàn),“最新版本”將成為不安全的舊版本,這時(shí)必須使用更新的軟件版本或安裝相應(yīng)的補(bǔ)丁程序。Internet軟件協(xié)會(huì)網(wǎng)站的地址為http://www.isc.org,最新的BIND軟件可以從它的FTP服務(wù)器下載。
2.關(guān)閉遞歸查詢和線索查找功能
如果可能,關(guān)閉BIND服務(wù)器的遞歸查詢功能,這將使DNS服務(wù)器進(jìn)入被動(dòng)模式,即它決不會(huì)向外部的DNS發(fā)送查詢請(qǐng)求,只會(huì)回答對(duì)自己的授權(quán)域的查詢請(qǐng)求,因此不會(huì)緩存任何外部的數(shù)據(jù),所以不可能遭受地址欺騙攻擊。另外,還應(yīng)該關(guān)閉線索查找功能。通常DNS服務(wù)器在返回查詢結(jié)果時(shí),如果結(jié)果中包含NS記錄而沒有NS記錄對(duì)應(yīng)的A記錄,那么DNS服務(wù)器會(huì)去查找這個(gè)A記錄,這種情況叫線索查找。使用這個(gè)功能可能導(dǎo)致欺騙攻擊。
3.限制對(duì)DNS進(jìn)行查詢的IP地址
DNS服務(wù)器接收的查詢請(qǐng)求按照來源可分為兩類:來自外部其他DNS服務(wù)器的查詢請(qǐng)求和來自本地網(wǎng)絡(luò)主機(jī)的查詢請(qǐng)求。DNS服務(wù)器之間的查詢使用交互方式(非遞歸方式)。來自外部DNS服務(wù)器的查詢,其查詢對(duì)象常常為被查詢DNS服務(wù)器所負(fù)責(zé)管理的授權(quán)區(qū)域內(nèi)的數(shù)據(jù)。來自本地網(wǎng)絡(luò)主機(jī)的查詢一般都使用遞歸方式,其查詢對(duì)象既可以是被查詢 DNS服務(wù)器所負(fù)責(zé)的授權(quán)區(qū)域內(nèi)的數(shù)據(jù),也可以是外部的非授權(quán)區(qū)域的數(shù)據(jù)。如果查詢對(duì)象是授權(quán)區(qū)域內(nèi)的數(shù)據(jù),則DNS服務(wù)器直接將內(nèi)存或緩存中的結(jié)果返回給進(jìn)行查詢的主機(jī);如果查詢對(duì)象是外部的非授權(quán)區(qū)域的數(shù)據(jù),則DNS首先在緩存中進(jìn)行查詢,如果找到匹配的結(jié)果則返回給進(jìn)行查詢的主機(jī),否則將查詢請(qǐng)求發(fā)送給外部的DNS服務(wù)器。早期版本的BIND軟件沒有限制進(jìn)行查詢的IP地址的功能,Internet上任何主機(jī)都可以向DNS服務(wù)器發(fā)送遞歸或非遞歸查詢請(qǐng)求,DNS服務(wù)器都進(jìn)行回答。這不僅讓他人可能濫用DNS服務(wù)器,黑客還可能利用這個(gè)功能欺騙DNS服務(wù)器,因此需要限制對(duì)DNS進(jìn)行查詢的IP地址,僅允許指定IP地址網(wǎng)絡(luò)的主機(jī)查詢外部的非授權(quán)域。
4.限制對(duì)DNS進(jìn)行遞歸查詢的IP地址
如果遞歸查詢請(qǐng)求來自不允許的IP地址,則應(yīng)該將此查詢以非遞歸查詢對(duì)待。
5.限制區(qū)域傳輸
區(qū)域傳輸一般用于主DNS服務(wù)器和輔DNS服務(wù)器之間的數(shù)據(jù)同步,當(dāng)主DNS服務(wù)器對(duì)其所管理的授權(quán)區(qū)域內(nèi)的數(shù)據(jù)進(jìn)行改動(dòng)后,輔DNS服務(wù)器按照規(guī)定的時(shí)間間隔使用區(qū)域傳輸從主DNS服務(wù)器獲取改動(dòng)后的信息,然后刷新自己相應(yīng)區(qū)域內(nèi)的數(shù)據(jù)。利用區(qū)域傳輸功能,還可以獲得整個(gè)授權(quán)區(qū)域內(nèi)的所有主機(jī)信息,這正是黑客所感興趣的內(nèi)容,根據(jù)這些信息,黑客可以輕松地推測(cè)網(wǎng)絡(luò)結(jié)構(gòu),并從主機(jī)的域名信息判斷其功能或發(fā)現(xiàn)那些防范措施較弱的計(jì)算機(jī)。BIND軟件的默認(rèn)設(shè)置允許任何人進(jìn)行區(qū)域傳輸。因此,必須在配置文件中加以限制。
6.限制對(duì)BIND軟件的版本信息進(jìn)行查詢
黑客為了利用特定版本BIND軟件的漏洞,首先需要確定BIND軟件的版本號(hào),默認(rèn)情況下,BIND服務(wù)器軟件不限制對(duì)自身版本號(hào)的查詢,任何人都可以很容易地獲取BIND軟件的版本號(hào)。因此需要限制對(duì)BIND軟件的版本信息進(jìn)行查詢。
為了保證DNS服務(wù)器的安全運(yùn)行,不僅要使用可靠的服務(wù)器軟件,還要對(duì)DNS服務(wù)器進(jìn)行正確的配置。


