網站運營中令我們頭疼的事情之一就是域名污染,它與域名被墻不同,DNS污染是直接讓域名無法訪問。PING一下我們的站點,會有很多節點解析到非我們服務器的IP地址。接下來分享域名污染是什么意思?域名污染的解決辦法有哪些?
一、域名污染是什么意思
域名污染又稱域名DNS服務器緩存污染(DNS cache pollution),簡單來說,當我們打開某個域名,電腦會向域名服務器發送域名查詢的請求,然后域名服務器把回應發送給你的電腦,這個過程有一個時間差。攻擊者會利用域名服務器的DNS應答還沒有到達你的電腦之前,先偽造一個錯誤的DNS應答發給你電腦。那么你的電腦收到的就是錯誤的信息,并得到一個錯誤的IP地址。
一般來說,在互聯網上都有可信賴的域名服務器,但為減低網絡上的流量壓力,一般的域名服務器都會把從上游的域名服務器獲得的解析記錄暫存起來,待下次有其他機器要求解析域名時,可以立即提供服務。攻擊者利用了這一特性,通過攻擊域名解析服務器(DNS),或偽造域名解析服務器(DNS)的方法,把目標網站域名解析到錯誤的地址而達到無法訪問目標網站的目的。
二、域名污染的原理解析
由于DNS污染的數據包并不是在網絡數據包經過的路由器上,而是在其旁路產生的。所以DNS污染并無法阻止正確的DNS解析結果返回,但由于旁路產生的數據包發回的速度較國外DNS服務器發回的快,系統認為第一個收到的數據包就是返回結果,從而忽略其后收到的數據包,從而使得DNS污染得逞。
以下模擬被污染的DNS請求過程:
假設A為用戶端,B為DNS服務器,C為A到B鏈路的一個節點的網絡設備(路由器,交換機,網關等等)。A向B構建UDP連接,然后,A向B發送查詢請求,查詢請求內容通常是:“A baidu.com”,這一個數據包經過節點設備C繼續前往DNS服務器B;然而在這個過程中,C通過對數據包進行特征分析(遠程通訊端口為DNS服務器端口,激發內容關鍵字檢查,檢查特定的域名如上述的“baidu.com",以及查詢的記錄類型"A記錄"),從而立刻返回一個錯誤的解析結果(如返回了"A 123.123.123.123"),眾所周知,作為鏈路上的一個節點,C機器的這個結果必定會先于真正的域名服務器的返回結果到達用戶機器A,而我們的DNS解析機制有一個重要的原則,就是只認第一,因此C節點所返回的查詢結果就被A機器當作了最終返回結果,用于構建鏈接。
三、域名污染與域名被墻的區別
域名被墻簡單講是被我國的防火墻屏蔽了,多半是網站有敏感內容,不符合國內法律法規,域名被墻的表現為域名解析正常,但國內無法正常訪問。而域名污染是被利用了DNS協議中存在的漏洞,將IP地址錯誤指向,即輸A網絡地址,打開的卻是B網絡頁面。
四、域名污染的解決辦法
1、替換DNS解析服務器:一般域名注冊服務商都有提供免費的DNS解析服務,在域名管理面板將已指向的其它DNS地址替換為服務商的DNS地址即可。
2、第三方DNS解析服務:現在有許多第三方平臺提供DNS解析服務,有免費也有付費,將自己域名的DNS改為第三方平臺的DNS地址,同時重新添加域名解析。
3、自建DNS解析服務器:這個需要具備一定的技術知識,也可以請人搭建,有能力的朋友可以嘗試。