關於DNS污染

 

DNS污染的數據包並不是在網絡數據包經過的路由器上,而是在其旁路產生的。所以DNS污染並無法阻止正確的DNS解析結果返回,但由於旁路產生的數據包發回的速度較國外DNS服務器發回的快,操作系統認爲第一個收到的數據包就是返回結果,從而忽略其後收到的數據包,從而使得DNS污染得逞。而某些國家的DNS污染在一段時期內的污染IP卻是固定不變的,從而可以忽略返回結果是這些IP地址的數據包,直接解決DNS污染的問題。


wiki上的解釋:

域名服務器緩存中毒(DNS cache poisoning),又名域名服務器高速緩存污染(DNS cache pollution),是指一些刻意製造或無意中製造出來的域名服務器分組,把域名指往不正確的IP地址。一般來說,外間在互聯網上一般都有可信賴的域名服務器,但爲減免網絡上的交通,一般的域名都會把外間的域名服務器數據暫存起來,待下次有其他機器要求解析域名時,可以立即提供服務。一但有關網域的局域域名服務器的緩存受到污染,就會把網域內的電腦導引往錯誤的服務器或服務器的網址。
域名服務器緩存污染可能是通過域名服務器軟件上的設計錯誤而產生,但亦可能由別有用心者通過研究開放架構的域名服務器系統來利用當中的漏洞。


你有過被DNS污染的情況嗎?也許你並不清楚,但你現在可以學着瞭解一下。


windows下有個命令nslookup(linux系統也可用或者用dig)

  1. nslookup NAME1 NAME2

這句命令的意思是查詢NAME1的主機或域名,但用NAME2做提交查詢服務器,NAME2在這裏相當於一臺域名服務器!比如:

  1. nslookup bbs.cpcfan.com 142.13.35.233

當然這裏只是做個例子,國內的服務器還不至於被自家的DNS污染了。而142開頭IP是假設的,但在實際使用時,你可以隨便起個非可用的IP,請注意避開特殊IP段!
因爲使用的是不存在的IP,理論上我們是得不到有效的迴應的,但如果返回了一個錯誤IP,那麼恭喜你!你要訪問的域名已經被DNS污染了!

在微軟的幫助與支持文檔中,它對DNS污染的解決是這樣說的:

在遇到域名系統 (DNS)“欺騙”時,可能會出現 DNS 緩存污染。術語“欺騙”指的是在響應 DNS 查詢時發送不安全的數據。該數據可能用於將查詢重定向到一個惡意 DNS 服務器,也可能本身就是惡意的。 

注意:如果 DNS 服務器已配置爲將解析請求轉發給另一個服務器,且建立了父子關係,那麼在父 DNS 服務器受到 DNS 緩存污染攻擊而又未執行 DNS 緩存污染保護的情況下,該子 DNS 服務器也可能會受到攻擊。默認情況下,使用 Windows 2000 Service Pack 3 或更高版本而且在父子關係中用作父服務器的 Microsoft DNS 服務器將能夠充分執行緩存污染保護。因此,要確保組織中的所有 DNS 服務器都已啓用了 DNS 緩存污染保護。



這是在域名服務器上設置的,所以作爲客戶端的我們不必太在意!詳情請見:http://support.microsoft.com/kb/241352

不過如果我們想要對付DNS污染能做的只有使用VPN,或者代理服務器!當然,借於域名解析的原理,域名解析順序-->本機高速DNS緩存-->host文件-->主域名服務器
所以我們可以在host文件中添加對已被污染的域名的解析,比如在host誰的空白處添加:

  1. bbs.csdn.com 203.93.106.21

,這樣可以優先訪問正確的IP地址。但還有一點,請別忘了,host文件之前還有本機的高速DNS緩存,你可以在CMD下輸入命令

  1. ipconfig /flushdns

 

清除本機的高速DNS緩存。
好了,這樣只能解決一部分問題,因爲除了DNS污染,如果網絡在防火牆或者本地ISP出口處設置了IP封鎖,IP過濾等,那麼我們就無能爲力了。但通用的方法就是使用VPN或者代理服務器!

以上爲個人看法,如有錯漏,請指出,不吝賜教!

 

2010-08-11

發佈了23 篇原創文章 · 獲贊 1 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章