DNS Tunneling 攻擊是什麼?如何防制?
2024-04-30 17:13:44

DNS Tunneling 是一種利用 DNS 協定的漏洞來進行資料傳輸的攻擊手法。攻擊者可以透過偽造 DNS 查詢來將資料封裝在 DNS 訊息中,並透過 DNS 伺服器進行傳輸。

攻擊手法

舉個例子:
攻擊者想要將「This is normal message」傳輸到遠端主機,可以將資料封裝在以下 TXT 記錄中:
example.com. 3600 IN TXT "This is normal message"
之後攻擊者利用受害者電腦發送 DNS 查詢請求(瀏覽網頁時同樣會對網站的網域 DNS 發送查詢請求)給 example.com 時,會收到:

1
2
; Response to the TXT query for example.com
example.com. 3600 IN TXT "This is normal message"

攻擊者可以從 DNS 回應中獲取資料。由於 DNS 查詢在現實中太多太雜,通常防火牆並不會真的 DNS 請求跟回應去做驗證,導致 DNS Tunneling 攻擊成功。

這邊只是簡單的例子,現實中可能透過 DNS 請求來達成帳號密碼的 leak,想像如果今天將攻擊者的帳號及密碼透過 Base64 編碼後,利用像是 <編碼後字串>.example.com 對攻擊者 DNS 進行呼叫,就可以成功達成攻擊者目的。

如何防制

  • 別亂裝東西,通常攻擊者會先誘導受害者安裝惡意程式,來建立 DNS Tunnel 通道,進而實現 DNS Tunneling 攻擊
  • 監測 DNS 請求數量及頻率,短時間過多相同或類似網域 DNS 請求將可能是 DNS Tunneling 攻擊發生的可能性

參考資料