作者:邵喻美/臺灣大學計算機及資訊網路中心資訊網路組程式設計師
隨著行動裝置在工作及家庭環境的使用越來越普及,可以讓多個裝置共用上網、且便宜又簡單好用的IP分享器也到處可見。但是,計資中心網路組在校園網路中發現,校內許多使用者自行裝設的無線IP分享器在就近提供網路服務時,卻也同時對整個網際網路提供DNS網域名稱查詢服務,因而間接成為DNS放大攻擊的幫兇!此問題是如何產生,又該如何避免呢?
IP分享器可能形成的問題
無論是辦公室、研究室、學生宿舍,或甚至家中,為了讓多個設備共用IP位址上網,我們經常會安裝一個小型的有線或無線IP分享器(寬頻分享器、路由器),讓筆電、手機等上網裝置能夠很方便地共用網路。IP分享器不貴、方便好用,而且很容易安裝,買來設定一下就可以使用,因此相當普遍。但是,計資中心網路組在校園網路中發現,校內許多使用者自行裝設的無線IP分享器在就近提供網路服務時,卻也同時對整個網際網路提供DNS網域名稱查詢服務,也就是所謂的「開放式DNS遞迴解析伺服器」(Open DNS Recursive Resolver)!
開放式DNS解析伺服器與DNS放大攻擊
「開放式DNS遞迴解析伺服器」是甚麼意思呢?顧名思義,就是開放讓大家查詢的DNS解析伺服器,原則上這是大型網路服務業者才會提供的服務,例如中華電信的168.95.1.1、Google的8.8.8.8、以及近來推出的公共DNS服務1.1.1.1。這些DNS解析伺服器具備分散式網路及大量伺服器支撐,足以提供大規模DNS查詢服務。反之,一般組織自行架設維運的DNS解析伺服器則以提供自身網域及內部使用者之DNS解析查詢為目的。例如臺大計中架設的DNS解析伺服器,會對整個網際網路提供對臺大ntu.edu.tw網域之名稱解析查詢,以及僅向臺大內部提供對所有網域之名稱解析查詢這兩項服務。也就是,臺大的DNS伺服器也不會對全網際網路提供對所有網域的名稱解析服務。
近年來多次造成網際網路上重要組織服務中斷的DNS放大/反射攻擊(DNS Amplification/Reflection Attacks),已引起大家注意,網路上也可以找到許多有關DNS放大攻擊原理的詳盡說明。簡單來說,DNS放大/反射攻擊主要原理是攻擊端假冒他人名義(通常就是受攻擊端)向多個分散於網際網路上的開放式DNS解析伺服器發送DNS查詢請求,而且通常是ANY查詢,讓這些DNS伺服器的DNS回應流量往受害端傳送,造成受攻擊端網路頻寬滿載,導致服務中斷。在此種攻擊的受害端,會收到從許多不同IP送來的DNS回應,由於這些幫兇IP經常來源各異且不斷改變,也就是分散式阻斷攻擊(Distributed Deny of Service, DDoS)的特性,所以受害端難以一一阻攔。
網際網路上發生數次重大DNS放大攻擊事件後,大家注意到開放式DNS解析伺服器在此種攻擊中扮演的角色,學術網路也沸沸揚揚地調查因設定不當而形成的開放式DNS解析伺服器,以及宣導DNS伺服器的正確設定觀念及方式,建議管理者應檢視單位DNS需求,如無對外開放之必要,可將DNS限制只允許單位內部查詢使用,否則除了浪費伺服器的網路頻寬及運算資源,還可能被利用來發動DNS放大攻擊。
然而,為什麼無線IP分享器或寬頻分享器/路由器這類個人用戶端的設備,也會跟DNS放大攻擊扯上關係呢?原因不外乎,原本此類設備只需對內網連線的用戶端電腦提供DNS查詢(如圖一),但有些設備卻設計為預設開放接受來自外網的DNS查詢,如果未予以特別調整設定,那麼這臺IP分享器就成為開放DNS解析伺服器(如圖二)!
圖一、IP分享器為內網連線的用戶端電腦提供DNS查詢
圖二、設定不當的IP分享器為網際網路上任何人提供DNS查詢
偵測存在於校園網路的開放DNS解析伺服器
網路管理者偵測校園網路上提供開放DNS解析服務者的方法有幾種:
1. 從網路路由器的流向記錄(netflow),查詢自校內IP的UDP port 53向校外IP的流向,此即為對外部提供開放式DNS服務的候選名單,再從校外IP對這些候選名單進行DNS解析查詢測試。此方式看不到查詢內容,必須另外排除合法的授權DNS解析伺服器(Authoritative DNS server)。
2. 在校園連外網路上聽取由校內IP UDP port 53往校外送的網路封包,利用DPI(Deep Packet Inspection)工具呈現DNS查詢內容,便可針對回覆非臺大網域之DNS查詢回應,更精準地鎖定開放DNS解析伺服器候選名單。
3. 從提供DNS解析服務之伺服器上的用戶端查詢記錄,可快速地過濾出校內可疑的DNS查詢來源,例如校內許多IP向DNS伺服器提出對某些網域名稱的ANY查詢,其中最明顯的異常查詢就是詢問整個網域系統最上層根網域(Root)的ANY查詢,通常發出此種查詢的來源IP,本身提供開放DNS解析服務的可能性極高。此方法只能偵測向轄下管理之DNS伺服器查詢的來源端,若設定外部DNS伺服器者便偵測不到。
使用者如何檢測自己的IP分享器或電腦/伺服器是否為開放DNS解析伺服器呢,網路上已有現成的檢測網站,例如http://openresolver.com/ 網站可讓使用者自行輸入IP位址,檢測結果如果是【Open recursive resolver detected on x.x.x.x】(如圖三),表示x.x.x.x這個IP可回應任何來源的DNS查詢。
圖三、開放DNS解析伺服器檢測
IP分享器漏洞實際範例
計中網路組透過上述第3種方法,從現成的DNS查詢記錄快速發現校內發出對Root ANY查詢的數十個IP,全數為開放DNS解析伺服器,而且幾乎都是放置在辦公室、實驗室、或宿舍房間內的IP分享器!以下舉幾個因設定不當造成開放DNS解析伺服器的實際範例:
【D-Link DIR-513A】
D-Link DIR-513A無線路由器:當選擇「Router模式」時,此裝置預設會對網際網路開啟DNS解析服務,將收到的DNS解析查詢送到裝置上設定的外部DNS伺服器,並將傳回的DNS解析回應送給查詢者,因此間接成為開放DNS解析伺服器。當選擇「AP模式」時,便不會出現此種行為,如圖四所示。
圖四、D-Link DIR-513A設定畫面
【Ruckus 7372】
根據Ruckus設備商的解釋,Ruckus 7372 Multimedia Hotzone Wireless AP的設計理念是用於虛擬IP環境,因此一旦在設備上手動設定了外部DNS伺服器,就會將收到的DNS解析查詢(無論來自內部或外部)一律代為向外部DNS伺服器查詢並回覆,由於預設是位於虛擬IP環境,因此也就沒有成為網際網路上開放DNS解析伺服器的風險。但是校園網路並非虛擬IP環境,因此必須避免此設定方式,將IPv4 DNS Mode設定為【Auto】模式,如圖五所示。
圖五、Ruckus 7372設定畫面
【具備防火牆功能的無線路由器】
有些無線路由器內建防火牆功能,即可用簡單的過濾設定防止來自外界的DNS解析查詢,例如SAPIDO RB-3001無線分享器,預設也是會回覆來自外部的DNS解析查詢,由於此設備內建防火牆功能,可透過設定連接埠過濾,封鎖來自網際網路的TCP及UDP 53埠,如圖六所示。
圖六、Sapido RB-3001防火牆功能設定畫面
【參考文獻】
1. 認識DNS反射式攻擊,http://www.nchc.org.tw/tw/e_paper/e_paper_content.php?SN=126&SUB_SUBJECT_ID=372&cat=industry
2. DNS放大攻擊與防制,http://www.cc.ntu.edu.tw/chinese/epaper/0028/20140320_2808.html
3. 臺灣大學計資中心網路組北區學術資訊安全維運中心資訊安全分析報告—DNS amplification attack 分析報告,http://cert.ntu.edu.tw/Document/TechDoc/DNS_Amplification_Attack.pdf