The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

小心網域名稱伺服器快取毒害(DNS cache poisoning)攻擊

DNS (Domain Name System) 是一個年代久遠且相當重要的網路服務之一,詳細的運作行細節我不談,請自行到 域名服務器(Wikipedia) 學習相關知識。簡單的說,DNS 通常都會實做快取(Cache)功能,若 DNS 收到來自惡意假造的 DNS 封包,導致將錯誤的 Domain Name v.s. IP 對應資料快取在 DNS Server 中,就會讓使用這台 DNS Server 的使用者連結到錯誤的 IP,這將會是個十分嚴重的安全性漏洞!而這樣的安全性漏洞就稱之為 DNS cache poisoning

你可能很難想像,一台具有高度 DNS cache poisoning 漏洞風險的 DNS 主機,只要幾秒鐘就可以被置入一個假的 DNS 紀錄,而快取的時間有可能會超過 1 天。不相信嗎?請看看 這個影片 有清楚、詳細的動畫說明攻擊的原理,以及 這個影片 有示範如何成功發動攻擊。

IANA – Internet Assigned Numbers  Authority 提供了一個線上檢測工具,各位可以上去測看看你的 DNS Server 或你 ISP 的 DNS Server 是否有 DNS cache poisoning 漏洞:

Cross-Pollination Check
http://recursive.iana.org/

這個檢測工具會回應三種安全警示:

  1. Highly vulnerable - 極易受傷的 ( 高度風險 ) ( 紅色底 )
  2. Vulnerable - 易受傷的( 低度風險, 但還是有風險 ) ( 棕色底 )
  3. Safe - 安全等級 ( 綠色底 )

我們公司的 DNS Server 已經架了好多年了,作業系統是 Fedora Core 3,我自己用這個線上檢測工具測試過後發現竟然是 Highly vulnerable 等級,讓我嚇了一跳,緊急在上週將 Bind 8 升級到 Bind 9 最新版修復了這個問題。

我也測試了好多個知名的 ISP 提供的 DNS Server,發現全台灣最多人用的 HiNet DNS 伺服器 ( 168.95.1.1 ) 竟然是 Vulnerable 等級 ( 可以用 hinet.net 進行檢測 ),感覺有點糟就是了,以後不敢再用這台了。另外像是 sparq.com.tw 是屬於 Highly vulnerable 等級,還有 seed.net.tw , apol.com.tw 是 Vulnerable 等級,最後好險測到我最我常用的 so-net.net.tw 是 Safe 等級。

最後奉勸各位,若你有任何 DNS Server 超過 1 ~ 2 年沒更新的,幾乎都有 DNS cache poisoning 弱點存在,不管是哪個平台的 DNS Server,因為這是 DNS 設計上的瑕疵,目前大部分知名的 DNS Server 軟體新的版本都已經修正此問題,或已提供更新,或有解決方案了,上網找一下就有了,底下我列出一些相關連結供各位參考。

相關連結