如何避免DNS主機被當成攻擊跳板作者:郭幸香 / 臺灣大學計算機及資訊網路中心網路組研究助理
近期校園內出現大量對外的DNS response流量,經分析後發現為最近熱門的DDoS攻擊「DNS放大(反射)攻擊」。校園內的電腦或伺服器由於設定不良,導致被利用當成跳板來攻擊網際網路上的其它主機,本文將介紹如何檢測與設定DNS服務,以防止被利用來當成跳板來攻擊網際網路上的其它主機,提高資訊安全。
緣由
近期校園內出現大量對外的DNS response流量,經分析後發現為DDoS攻擊「DNS放大(反射)攻擊」。校園內的電腦或伺服器由於設定不良,導致被利用當成跳板來攻擊網際網路上的其它主機。
DNS放大(反射)攻擊簡介
攻擊者(Attacker or Zombie)將DNS查詢封包中的Source IP偽造成Victim IP,向設定不良之Open DNS server送出大量查詢封包(small packet size),DNS server則會將大量查詢結果(big packet size)傳到Victim IP,以DDoS的方式癱瘓受害者的網路資源與主機資源。2013年三月歐洲反垃圾郵件組織Spamhaus即是遭此DDoS攻擊,攻擊流量高達300Gbps,成為目前為止最嚴重的一次DDoS攻擊。
您管理的主機可能被利用當成跳板的原因
1. 您的主機安裝的某個套件軟體有開啟DNS服務。
2. 該主機為貴單位授權的DNS伺服器,但未設定良好的存取權限。
3. 您的主機可能已被入侵,並安裝惡意軟體與開啟DNS服務。
如何檢測您管理的主機是否有開啟DNS服務
1. 在待查主機的本機使用netstat指令檢測
I. 在Linux環境下
● 開啟Terminal
● 在游標處輸入netstat -an
● 觀察主機是否有開啟UDP 53 port(請參考圖1)
II. 在Windows環境下
● 滑鼠左鍵點選桌面左下角「開始」
● 滑鼠左鍵點選「所有程式」
● 滑鼠左鍵點選「附屬應用程式」
● 滑鼠左鍵點選「開啟命令提示字元」
● 在游標處輸入netstat –an
● 觀察主機是否有開啟UDP 53 port(請參考圖1)
圖1.Netstat查詢範例
2. 從其它主機使用nslookup指令對待查主機做查詢
I. 在Linux環境下
● 開啟Terminal
● 在游標處輸入nslookup
● 在游標處輸入server 待查主機IP,暫時將DNS查詢主機轉至待查主機
● 在游標處輸入欲查詢的網域,例如:www.google.com
● 察待查主機是否有回應該網域的資訊
圖2.表示此IP未提供DNS查詢服務或有設定recursive query存取權限
圖3.表示此IP有提供DNS查詢服務
II. 在Windows環境下
● 滑鼠左鍵點選桌面左下角「開始」
● 滑鼠左鍵點選「所有程式」
● 滑鼠左鍵點選「附屬應用程式」
● 滑鼠左鍵點選「開啟命令提示字元」
● 在游標處輸入nslookup
● 在游標處輸入server 待查主機IP,暫時將DNS查詢主機轉至待查主機
● 在游標處輸入欲查詢的網域,例如:www.google.com
● 觀察待查主機是否有回應該網域的資訊
圖2.表示此IP未提供DNS查詢服務或有設定recursive query存取權限
圖3.表示此IP有提供DNS查詢服務
圖2.此IP未提供DNS查詢服務或有設定recursive query存取權限
圖3. 此IP有提供DNS查詢服務
以BIND為例設定DNS存取權限
1. Berkeley Internet Name Domain (BIND),最初由加州大學柏克萊分校發展出的DNS伺服器軟體,由於它可提供穩定且強大的名稱服務,因此被廣泛使用,目前由ISC組織負責維護與發展。
2. 在BIND版本9.5之前,recursion的功能是預設開啟的,故管理者必須自行關閉此功能或設定適當的存取權限。
3. 以下為BIND的組態設定檔name.conf的建議設定
// 定義一個ACL,設定能存取DNS服務的IP範圍
// 此例為台大的網段140.112.0.0/16,可自行調整為貴單位的
// 網段
Acl "allowed-IP"{
140.112.0.0/16;
};
// 僅允許符合ACL設定的網段進行recursive query
Options {
……
Allow-recursion { allowed-IP; };
……
};
//提供貴單位管轄下的網域給其它DNS查詢
zone "貴單位網域.ntu.edu.tw" in {
……
allow-query { any; };
……
};
4. 更多詳細的設定步驟可參考 BIND 9.5 Administrator Reference Manual
結語
1. 建議各系所網管檢查並關閉不必要的DNS服務。
2. 建議各系所可將其DNS服務轉移至計中由專人管理,網管們可以在計中的DNS伺服器上管理各自的網域。
3. 如各系所的DNS服務仍需要獨立運作,請在貴單位DNS伺服器上設定 ACL,僅讓授權的網域能使用貴單位的 DNS recursive query 的服務。