跳到主要內容區塊

計資中心電子報C&INC E-paper

技術論壇

如何避免DNS主機被當成攻擊跳板
  • 卷期:v0028
  • 出版日期:2014-03-20

如何避免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攻擊。

 

Art editor Img
 

您管理的主機可能被利用當成跳板的原因
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)

Art editor Img
圖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查詢服務

Art editor Img
圖2.此IP未提供DNS查詢服務或有設定recursive query存取權限

 

Art editor Img
圖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 的服務。