TOP↑
TWNIC最新消息國內外網路動態網路統計網路專欄前期電子報回首頁 2004.05第29期  
 
 
DNS 系統安全之探討
  約一年多前,Root DNS 遭受大量的分散式拒絕服務存取(DDOS)的攻擊,13 部的 Root DNS 有九部巳到無法服務的情形,若 Root DNS 無法發揮其功能,基本上整個 Internet 的所有服務也會跟著失效。

  前言

愈上層之 DNS 伺服器,其地位及重要性也就愈高,您可以想像若 TWNIC 所管理之 .tw您現之 DNS 失效,會使台灣在 Internet 的環境上消失,同理可證,若一般的 xxx.com.tw 之網域名稱失效,基本上這家公司即消失在 Internet 上. 故 DNS 的安全性不可言喻,但也常讓很多人疏忽.。

如何建構一個安全的 DNS—

版本(Version)

基本上現行的各種網路服務多數皆會在連線的開始秀出一些資訊(Banner),如 Mail/ FTP/WWW 等皆會顯示平台及版本資訊等。而 DNS 服務是少數不會顯示的,不過若想知道 DNS 的版本資訊還是有方法的(Windows DNS 無法查詢到版本資訊)。ISC BIND DNS 允許您修改 它,讓查詢版本者得不到正確的資訊或知道您有所防備)。一般的入侵工具也會先做這樣的一個動作,再針對版本決定對映的入侵程序。在 Window 平台上無此困擾,但使用 ISC BIND者使用 version 來設定版本名稱。此外,若您使用 ISC BIND 的 DNS 程式,建議您更改至 8.3.1 或 9.2.2 以上的版本,在此以下的版本皆有資安的風險存在。


修改方法
options { version “What are you doing”;
其他略 …};

SPOF(Single Point of Failure)之問題

SPOF 即是只有一部 DNS 之問題,這種狀況其實不符合 InterNIC 的規定,以 TWNIC 而言,做 DNS 指定時,都要您填寫兩部以上之資料,其原因:

容  錯: 若您僅有一部 DNS 主機時,相信很多人都有經驗的是該主機失效後,網路的眾多功能也會跟著失效(Web/Mail…),但若您有兩部以上的 DNS 主機則大大降低了這樣的可能性。若您的 DNS 分佈在不同的 ISP 網段,更可降低網路斷線所造成的眾多問題。
負載平衡: 若您設定了兩部以上的 DNS 主機,當有人連接您的網站前,其接受 DNS 查詢乃是兩台主機輪流運作(輪詢,Round-Robin)。在這樣的運作機制下讓您的系統可以更穩定。
系統安全: 目前網路上有著許多可以針對 DNS 作攻擊的程式,若您擁有兩台以上的主機,可降低許多來自於攻擊的危險(至少增加了一倍的安全性,其中不同的主機尚可運作不同的作業系統)。因為?大多數的 DNS 查詢或攻擊皆是使用 UDP 協定(User Datagram Protocol),在攻擊發生時較不容易被查覺。

SPOF 問題最有名案例即是 2001 年時,微軟的四部 DNS 主機皆擺在同一個 LAN 之下,而當這個 LAN 對外的 Router 被攻垮後,所有的 DNS 即失去作用。進而,對許多人而言,微軟好像從網路上消失一般。所以,若您的單位對安全議題較重視,不能忽略失去 DNS 對您網路的影響。

轄區傳送( zone transfer )

有的平台會稱為「區間轉送」、「區域轉送」。一般會縮寫成 AXFR 來表示。這個項目的功能在於若您有一部以上的 DNS 伺服器,讓您的 master DNS 與 slave DNS 間的資料可以保持一致與同步。

其中 Slave 主機根據 twnic.net.tw 這個網域名稱所定義的一些數據 (即SOA 資訊),定時的向 Master 要求網域名稱下所有的資料(稱為轄區檔案, Zone file)。所以只要 Master 上的資料有所改變時,Slave 在一定的時間內也會跟著更新。

功能立意雖好,但多數的使用者卻不知如何設定或使用。且因為其預設值是不限制任何的來源向 Master 做 AXFR 請求,故可能造成了一些網域名稱下的資訊外流。不論您是否有 Slave 機器的需求,AXFR 皆應限制來源條件。

Window: 在網域名稱上按右鍵,選內容後請找區間轉送項目,並修正為「只允許某些 IP」(有Slave需求下)或全部禁止(無 Slave )
ISC BIND: 在設定檔中加入:
Options { allow-transfer { IP;};

其中IP可寫成如
211.72.211.0 /
255.255.255.0
=> subnet表示一個網路範圍
211.72.211/24 => CIDR表示一個網路範圍
None => 表示無,即全部皆不允許 AXFR
Any => 表示全部,即預設值

 

系統記錄(syslog)

在 ISC BIND 可讓使用者自訂 DNS 各種類別的事件記錄到不同的檔案中(也可以到同一個檔案中)。如使用者可定義有查詢( queries )時,將來源及其所查詢的位置記錄下來。也可以定義系統安全( security )事件記錄到那一個檔案中,而詳細的分類則是管理的第一步。ISC BIND 有關系統記錄的設定可由指令man named.conf 查得或參考 Oreilly 出版設之 「DNS and BIND」一書中 7.4 節。

Windows 平台即皆會記錄在事件檢視中,其 GUI 介面即可做一相當好的分類。

不論您系統記錄做的再詳細、再好,最重要的是要常去看,檢查是否有異常,以了解是否有人向你的機器 AXFR 或查詢版本,是否瞬間流量暴增等事件。

執行時的身份

在 Window 的平台上您無法控制其 DNS 執行者的身份。而在 ISC BIND 上則可以 root 來啟動DNS ,但讓 DNS 改變為非系統管理者的身份。這樣的好處在於當 DNS 被入侵時,駭客取得的將不會是最高權限,相對的對系統的危害也跟著降低。不過若您系統漏洞百出,這樣做的意義也就不大了。


ISC BIND 之方法: named –u named

減少不必要的服務

在系統上有些服務其實是不會用到的,常發生的狀況是預設啟動的問題,如 Windows SNMP 或 Unix-base 的 sshd 等諸多服務是有問題的。但因為預設值為啟動,管理者反倒是會忽略掉,間接地影響了您的 DNS 的安全性。如非必要,請將不必要的服務關掉。

備援的 DNS 主機

在 TWNIC 的註冊功能上我們都會要求您至少填寫兩部以上的 DNS 主機,但不少人第二部都是不存在的。其意義為兩部輪流服務 DNS 的查詢,若有一部失效時,至少您的網路還可以正常,並有足夠時間處理問題,相信這對您網路的容錯及穩定會有不少的幫助。若在環境允許下建議您兩部皆設定正常,並以 Master/Slave 的架構來做資料同步。

其他—最重要的還是系統管理者要善盡職責,備份,檢查,更新等工作,需維持在一定的頻率,並對所使用的作業平台所衍生的安全問題有相當的了解。而 Registry/Registrar 等註冊單位善盡職責及內部控管(其可影響 DNS 的運作),如此方可確保 DNS 的正常運作及系統的安全。

DNS 系統遭入侵的結果

若您的 DNS 不安全,最有可能的會造成下列的問題

DNS 失常

這是最常見的情況,使用者會感覺到 DNS 失去作用。此時除了重新啟動,還需去了解為什麼 DNS 會失效。

假造網頁

透過中介 ( man in the middle ) 的手法,很容易的騙出使用者名和密碼,或者其他敏感資料。其方法如原來您的 Web 主機在 IP1,駭客DNS入侵成功後將 Web 指向 IP2,此時使用者以 www.yourdoma- in.com.tw 來連線時,將指向 IP2,駭客再以映射手法( mirror)讓使用者覺得網頁是正常的,造成使用者的錯覺。此時即可能騙出使用者登錄時的重要資訊,這種狀況下將損及使用者權益及公司信譽。之前國內曾發生過多起這樣的案例。

複製郵件

所有的信件到達你的服務器之前可以被拷貝,修改或者刪除。入侵者只要了解郵件伺服器與 DNS 的運作原理輕易即可達成此一目的,而其也可以偽造成您的信件寄出,這些都是可以透過 DNS 完成,而您不會感覺到很明顯的異常。其手法同上一段所述。

授權問題

某些與信任有關服務 (如 mail,firewall,proxy等等) 若涉及DNS域名信任時將會無效。如您的防水牆信任 xxx.com.tw 網域可自由通過,在 DNS 被入侵後防火牆將完全失效。因為入侵者可在您的 DNS 中潻加他機器為 any.com.tw 網域機器的資訊。

系統權限

因為部份的 DNS 是以系統管理者權限在運行,當駭客從 DNS 入侵後(指遠端溢位攻擊,remote buffer overflow ) ,通常亦直接取得系統權限,即使以非系統權限的身分執行,但依然會有潛在的風險。

資訊洩漏

DNS設定不正確或不完整,可能造成資訊洩漏的問題,最常見的就是Zone Transfer。


※註 此篇文章已刊載於網路資訊雜誌四月號

  技術組 楊禎葆工程師
 

2004年第四期
更多歷史檔案
檢索:
 


財團法人台灣網路資訊中心
臺北市羅斯福路二段9號4樓之2 Website:www.twnic.net.tw
Tel:+886-2-2341-1313 Fax:+886-2-2396-8832
版權聲明,禁止未經授權轉貼節錄