前言
愈上層之 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。
※註 此篇文章已刊載於網路資訊雜誌四月號 |