SAD DNS:替代DNS緩存中的偽造數據的攻擊

一群人 清華大學和加州大學河濱分校的研究人員開發了一種新型攻擊允許替換DNS服務器緩存中的錯誤數據, 可以用來欺騙任意域的IP地址,並將對該域的調用重定向到攻擊者的服務器。

攻擊繞過了對DNS服務器的增強保護 來阻止Dan Kaminsky在2008年提出的經典DNS緩存中毒方法。

卡明斯基方法 操縱DNS查詢ID字段的大小可忽略不計, 只有16位要找到欺騙主機名所需的正確標識符,只需發送大約7.000個請求並模擬大約140.000個虛假響應即可。

攻擊歸結為發送大量偽造的IP綁定數據包 到具有不同DNS事務ID的DNS解析器。 為了防止第一個響應被緩存,在每個偽響應中都指定了一個稍微修改的域名。

防止此類攻擊,DNS服務器製造商 實現了網絡端口號的隨機分配 從中發送解析請求的源,該請求補償了不足的較大標識符大小(要發送虛擬響應,除了選擇16位標識符之外,還必須從64 2個端口中選擇一個,這增加了選項以選擇32 ^ XNUMX)。

進攻 SAD DNS大大簡化了端口識別 通過利用網絡端口上的篩選活動。 該問題在所有操作系統中均得到體現。 (Linux,Windows,macOS和FreeBSD)以及使用不同的DNS服務器(BIND,Unbound,dnsmasq)時。

據稱,所有開放式求解器中有34%被攻擊, 以及經過測試的12個頂級DNS服務中的14個,包括8.8.8.8(Google),9.9.9.9(Quad9)和1.1.1.1(CloudFlare)服務,以及來自信譽良好的供應商的4個經過測試的路由器中的6個。

問題是由於ICMP響應數據包形成的特殊性,允許您確定對活動網絡端口的訪問 而不是通過UDP使用。 此功能使您可以非常快速地掃描打開的UDP端口並基於源網絡端口的隨機選擇有效地繞過保護,從而將暴力選項的數量從2 ^ 16減少到2 ^ 16 + 2 ^ 32。

問題的根源是限制運輸強度的機制 網絡堆棧上使用可預測的計數器值的ICMP數據包的數量,從此開始正向節流。 此計數器是所有流量所共有的,包括來自攻擊者的虛假流量和實際流量。 默認, 在Linux上,ICMP響應被限制為每秒1000個數據包。 對於到達封閉網絡端口的每個請求,網絡堆棧都會將計數器加1,並從不可達端口發送帶有數據的ICMP數據包。

因此,如果您將1000個數據包發送到其他網絡端口, 所有這些都已關閉,服務器將限制發送ICMP響應 一秒鐘,攻擊者就可以確定搜索到的1000個端口中沒有開放的端口。 如果將數據包發送到開放端口,則服務器將不會返回ICMP響應 並且計數器的值不會改變,即發送1000個數據包後,將不會達到響應速率限制。

由於偽造的數據包是從偽造的IP執行的,因此攻擊者無法接收ICMP響應,但是由於有了總計數器,每1000個偽造數據包,他就可以從真實IP向不存在的端口發送請求並評估該IP地址。答案的到來; 如果答案來了,則使用1000個軟件包中的一個。 攻擊者每秒可以將1000個偽造的數據包發送到不同的端口,并快速確定打開的端口位於哪個塊中,然後縮小選擇範圍並確定特定的端口。

Linux內核通過隨機化參數的補丁解決了該問題 限制發送ICMP數據包的強度,這會引入噪聲並最大程度地減少通過邊信道洩漏的數據。

來源: https://www.saddns.net/


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責資料:AB Internet Networks 2008 SL
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。