簡介
域名伺服器快取污染(DNS cache poisoning),又名域名伺服器快取侵害(DNS cache pollution),是指一些刻意製造或無意中製造出來的域名伺服器封包,把域名指往不正確的IP位址。一般來說,外間在網際網路上一般都有可信賴的域名伺服器,但為減免網路上的交通,一般的域名都會把外間的域名伺服器資料暫存起來,待下次有其他機器要求解析域名時,可以立即提供服務。一但有關網域的局域域名伺服器的快取受到污染,就會把網域內的電腦導引往錯誤的伺服器或伺服器的網址。
域名伺服器快取污染可能是透過域名伺服器軟體上的設計錯誤而產生,但亦可能由別有用心者透過研究開放架構的域名伺服器系統來利用當中的漏洞。透過改動Windows 2003的某些域名封包設定,可以摒除有可疑的封包。
為防止局域的域名伺服器快取污染除了要定時更新伺服器的軟體以外,可能還需要人手改動某些設定,以提高伺服器對可疑的域名封包作出篩選。
快取污染攻擊
一般來說,一部連上了網際網路的電腦都會使用網際網路服務供應商(ISP)提供的域名伺服器。這個伺服器一般只會為供應商的客戶來服務,通常都會儲蓄起部分客戶曾經請求過的域名的快取。快取污染攻擊就是針對這一種伺服器,以影響伺服器的用戶或下游服務。
防火長城的快取污染攻擊
在中國,對於所有經過防火長城的在UDP的53連線埠上的域名查詢進行IDS入侵檢測,一經發現與黑名單關鍵字相匹配的域名查詢請求,其會馬上偽裝成目標域名的解析伺服器給查詢者返回虛假結果。由於通常的域名查詢沒有任何認證機制,而且域名查詢通常基於的UDP協定是無連線不可靠的協定,查詢者只能接受最先到達的格式正確結果,並丟棄之後的結果。
對於不了解相關知識的網民來說也就是,由於系統默認使用的ISP提供的域名查詢伺服器查詢國外的權威伺服器時即被防火長城被污染,使其快取受到污染,因而默認情況下查詢ISP的伺服器就會獲得虛假IP位址;而用戶直接查詢境外域名查詢伺服器(比如 Google Public DNS)有可能會被防火長城污染,從而在沒有任何防範機制的情況下仍然不能獲得目標網站正確的IP位址。