DNS 查詢是否總是通過 UDP 傳輸?
我花了一些時間研究這個主題,似乎找不到確切的答案,所以我相當有信心它不是重複的,雖然我的問題是基於安全需要,但我認為它仍然是安全的在這裡問,但如果我需要將其移至安全社區,請告訴我。
本質上,DNS 查詢是否曾經使用過 TCP(如果是,會發生什麼情況)?同樣,我只是在談論查詢。他們有可能通過 TCP 傳輸嗎?如果域的最大長度只能是 253 字節,而 UDP 數據包可以大到 512 字節,那麼查詢不會總是以 UDP 形式發出嗎?我不認為可解析的查詢可能大到需要使用 TCP。如果 DNS 伺服器曾經收到對大於 253 字節的域的請求,伺服器會丟棄它/不嘗試解決它嗎?我敢肯定我在這裡做了一些錯誤的假設。
在某些情況下,我正在與安全組合作,將 DNS 查詢載入他們的安全監控工具,出於各種原因,我們決定通過 DNS 伺服器和域控制器上的標準數據包擷取來擷取此流量。核心要求是擷取所有 DNS 查詢,以便他們可以辨識客戶端嘗試解析任何給定域。基於此要求,我們不關心擷取 DNS 響應或其他流量(如區域傳輸),這也是由於我們需要盡可能限制日誌量這一事實驅動的。因此,我們計劃僅擷取發往 DNS 伺服器並通過 UDP 發送的 DNS 查詢。對於更多上下文(這裡的問題範圍蔓延),現在已經提出我們可能需要擴展安全性’ s 可見性,因此他們可以監控活動,例如在 DNS 上執行的隱蔽通道(這也需要擷取 DNS 響應,以及隨後的 TCP 流量)。但即使在那種情況下,我認為任何出站 DNS 流量都將以查找/查詢的形式出現,並且這些流量總是通過 UDP 傳輸,即使來自惡意來源(因為我在第一段中的推理)。所以這帶來了一些額外的問題:
- 我們至少會用我概述的方法擷取一半的對話嗎?或者客戶端是否會發送非查詢形式的 DNS 流量?(可能像是對 DNS 伺服器響應的某種回复,可能最終會通過 TCP 發送出去)
- 是否可以修改 DNS 查詢以使用 TCP?DNS 伺服器會接受並響應來自 TCP 的 DNS 查詢嗎?
不確定它是否相關,但我們確實將 DNS 請求限制在授權的 DNS 伺服器上,並阻止所有其他通過埠 53 出站的流量。我絕對是新手,如果我的問題不符合要求,我很抱歉,請告訴我我應該如何修改。
正常的 DNS 查詢使用 UDP 埠 53,但較長的查詢(> 512 個八位字節)將收到“截斷”回复,這會導致 TCP 53 對話以方便發送/接收整個查詢。此外,DNS 伺服器綁定到埠 53,但查詢本身源自發送到埠 53 的隨機高編號埠(49152 或更高版本)。響應將從埠 53 返回到同一埠。
因此,如果您計劃對來自網路的 DNS 查詢進行一些安全窺探,則需要考慮上述情況。
至於非查找流量,請考慮 DNS 還使用區域傳輸(查詢類型 AXFR)來使用新記錄更新其他 DNS 伺服器。中間人攻擊可以從這樣的轉移開始,DDOS 攻擊主名稱伺服器,使其忙於響應請求更新記錄的輔助名稱伺服器。然後,黑客欺騙同一個主節點,將“中毒”記錄提供給輔助節點,從而將流行的 DNS 域重定向到受感染的主機。
因此,您的安全審核應密切關注查詢類型 AXFR,並且您的 DNS 系統應僅接受來自特定 IP 地址的 AXFR 交換。