DNS Tunneling 攻擊是什麼?如何防制?
2024-08-27 06:47:45
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 | ; Response to the TXT query for example.com |
攻擊者可以從 DNS 回應中獲取資料。由於 DNS 查詢在現實中太多太雜,通常防火牆並不會真的 DNS 請求跟回應去做驗證,導致 DNS Tunneling 攻擊成功。
這邊只是簡單的例子,現實中可能透過 DNS 請求來達成帳號密碼的 leak,想像如果今天將攻擊者的帳號及密碼透過 Base64 編碼後,利用像是 <編碼後字串>.example.com 對攻擊者 DNS 進行呼叫,就可以成功達成攻擊者目的。
如何防制
- 別亂裝東西,通常攻擊者會先誘導受害者安裝惡意程式,來建立 DNS Tunnel 通道,進而實現 DNS Tunneling 攻擊
- 監測 DNS 請求數量及頻率,短時間過多相同或類似網域 DNS 請求將可能是 DNS Tunneling 攻擊發生的可能性