DNS緩存中毒攻擊
什么是DNS緩存中毒
DNS緩存中毒是一種網絡攻擊,它使您的計算機誤以為它會到達正確的地址,但事實并非如此。攻擊者使用DNS緩存中毒來劫持互聯網流量并竊取用戶憑據或個人數據。DNS緩存中毒攻擊也稱為DNS欺騙,它試圖誘騙用戶將其私人數據輸入不安全的網站。
什么是DNS緩存
在討論攻擊之前,我們需要重新了解DNS和DNS緩存。DNS是IP地址和域名的全球目錄。DNS緩存是將這些地址存儲在世界各地的DNS服務器中的系統。
為了保持您的DNS請求快速,原始開發人員創建了一個分布式DNS系統。每個服務器都存儲一個它知道的DNS記錄列表–這稱為緩存。如果離您最近的DNS服務器不知道您需要的IP地址,它將詢問其他DNS服務器,直到找到您要訪問的網站的IP地址。然后,您的DNS服務器將該新條目保存到緩存中。
DNS緩存中毒攻擊如何工作
DNS緩存中毒通過欺騙DNS服務器保存偽造的DNS條目來起作用。偽造的DNS條目的流量流向選擇竊取數據的攻擊者的服務器。
- 攻擊者植入假的地址到DNS;
- 服務器緩存假地址;
- 流量被牽引到攻擊者服務器。
常用技術手段如下:
(1) Birthday Attack
DNS不會驗證對遞歸查詢的響應,因此第一個響應存儲在緩存中。攻擊者使用“Birthday Attack”來嘗試預測偽造的響應并將其發送給請求者。BirthdayAttack使用數學和概率論進行猜測。在這種情況下,攻擊者試圖猜測您的DNS請求的事務ID,因此帶有偽造的DNS條目的偽造響應會在真正響應之前到達您。
Birthday Attack不一定能成功,但最終,攻擊者會將偽造的響應偷偷溜進緩存。一旦攻擊確實成功,攻擊者將看到來自偽造的DNS條目的流量,直到生存時間(TTL)到期為止。
(2) Kaminsky漏洞
Kaminsky漏洞利用是BlackHat 2008上提出的Birthday Attack的一種變體。首先,攻擊者向目標解析器發送不存在域的DNS查詢,例如“fake.dingxinsec.com.cn”。然后,解析程序將查詢轉發到權威名稱服務器,以獲取錯誤子域的IP地址。此時,攻擊者向解析器注入了大量偽造的響應,希望這些偽造之一與原始查詢的事務ID相匹配。
如果攻擊成功,則攻擊者已使用dingxinsec.com.cn的偽造IP地址毒害了目標解析器的DNS緩存。直到TTL為止,請求dingxinsec.com.cn的人都將獲得偽造的IP地址。
(3) 竊聽
攻擊者如果有足夠的網絡訪問權限,就可以監視本地DNS流量并使用多種技術手段破壞緩存。
如何檢測DNS緩存中毒
那么,如何檢測DNS緩存中毒攻擊?監視DNS服務器以獲取可能的攻擊指示,將數據安全分析應用于您的DNS監視,以識別正常的DNS行為免受攻擊。
- 來自單個來源的有關單個域的DNS活動突然增加表示潛在的Birthday Attack。
- 從單一來源查詢DNS服務器以獲取多個域名而不進行遞歸的DNS活動的增加表示嘗試查找用于中毒的條目。
除了監視DNS之外,還監視Active Directory事件和文件系統行為是否存在異?;顒印I踔粮玫氖?,使用分析來關聯所有三個媒介之間的活動,從而為您的網絡安全策略添加有價值的環境。
如何防止
除了監視和分析之外,您還可以在DNS服務器上進行配置更改。
- 限制遞歸查詢以防止潛在的有針對性的中毒攻擊
- 僅存儲與請求域相關的數據
- 限制響應以僅提供有關請求域的響應
- 強制客戶端使用HTTPS
請確保您使用的是BIND和DNS軟件的最新版本,以便您具有最新的安全修復程序。
最后,DNSSEC是一種新的DNS協議,可對DNS請求進行加密以防止偽造。該協議尚未得到廣泛采用,因為它確實會減慢DNS進程。HTTPS上的DNS(DoH)是下一版本DNS的競爭規范,可以在不犧牲DNSSEC之類的速度的情況下確保DNS請求的安全。