如何被推薦?昨天上午百度(Baidu.com)受到攻擊的事情在網上鬧得沸沸揚揚,Baidu.com 域名被 DNS 解析到了一個錯誤 IP,導致訪問者實際打開了另一個網站。一般來說,黑客是如何做到通過 DNS 來攻擊一個網站呢?
首先我們簡單了解一下互聯網上頂級域名(如 .com)的 DNS 工作方式:
對于每一臺客戶端而言,我們都知道網卡上需要設置“DNS 服務器(DNS Server)”,這個 “DNS 服務器”通常是指定 ISP(Internet Service Provider,因特網服務提供商)的 DNS 服務器。ISP 的 DNS 服務器上肯定不會有全球所有域名的DNS條目,當它接收到客戶端的查詢不在它的本地緩存中,無法作解析時,它會向它的 “權威 DNS 服務器(Authoritative Name Server)” 查詢。通過這種由下向上的遞歸式查詢,全球所有的請求最終將由13臺 “根 DNS 服務器(Root Name Server)” 作出解答。
這13 臺根服務器由 VeriSign、ICANN(Internet Corporation for Assigned Names and Numbers)等組織維護。它們授權給全球各國的域名服務提供商,讓他們出售域名。任何單位或個人網站運營者向域名服務商購買域名之后,會得到一個賬號,通過這個賬號就有權修改 DNS 服務器中的自己域名的條目,指定其解析到特定的 IP 地址。
通過以上的描述,我們不難發現,只要能夠想辦法篡改 DNS 服務器中的資料或是冒充 DNS 服務器,都會導致網站域名被導向到錯誤的IP。而這兩種狀況正好對應了兩類 DNS 的攻擊方式:DNS 篡改和 DNS 欺騙。
下面我們就談談這兩種方式,
請注意:
1. 我們只針對發生在網絡和DNS服務器端的篡改和欺騙進行介紹,至于客戶端DNS錯誤解析(如被惡意軟件感染)等攻擊性問題,不再進行說明;
2. 欺騙(Spoofing)、重定向(Redirection)、劫持(Hijacking)等術語少數情況下會被用來表達同一含義,在這里我們按照被攻擊對象、位置和特點進行區分描述;
一、DNS 篡改(DNS Hijacking or DNS Redirection)
DNS 篡改通常是指直接修改根服務器中的 DNS 條目,當然這種篡改更有可能發生在域名注冊商的存放客戶注冊配置信息的服務器中, 從而導致相應的域名在全球范圍內都解析錯誤。(有些情況下,也有可能只是在中層的 DNS 服務器作篡改,這樣僅僅劫持某部份的域名解析,只會影響部分地區 。)
這種攻擊方式的特點如下:
全球性。因為根服務器條目被更改,在下游 DNS 緩存時間過后,被篡改條目必然會更新到所有下游服務器,從而影響到所有用戶。
通常所說的“技術性”并非必需。在多數情況下,這種攻擊方式在DNS攻擊階段甚至不需要涉及技術性,可以借助社會工程學等手段,攻擊者通常已經擁有了足夠的修改DNS條目的權限。雖然不排除黑客能夠通過技術手段入侵根DNS服務器或者域名服務商,在這種情況下,黑客就可以指哪兒打哪兒無法無天了。但相信這種天下大亂的情況我們不一定能有幸見到。更可能的情況是,某個網站運營商的域名的賬號密碼被竊取了,黑客拿到賬號密碼之后,就能像網站管理員一樣冠冕堂皇地登陸域名提供商網站,修改相應的IP地址。
二、DNS 欺騙 (DNS Spoofing)
一種 DNS 欺騙方式是利用漏洞,去年上半年,DNS 協議被發現存在嚴重漏洞,攻擊者可以欺騙下游服務器,使其相信一臺假冒的服務器是它的權威服務器。這樣攻擊者就可以通過在假冒服務器上添加虛假的 DNS 信息來欺騙下游服務器,最終欺騙客戶端。在 Windows 系統中,這個漏洞已經在稍早的安全布丁發布獲得中解決:http://www.microsoft.com/china/technet/security/bulletin/ms08-037.mspx
其他操作系統中也可以查詢到相應的漏洞。還有一種 DNS欺騙思路,借助其他欺騙達到DNS欺騙的目的,例如先在目標客戶端或DNS服務器的同一局域網網段作ARP欺騙,使受攻擊的計算機向ARP攻擊的發起者作DNS查詢。但是這種攻擊方式必須先攻破與目標主機同網段的另一臺計算機,而互聯網中的DNS服務器通常在ISP的控制之下,滲透進ISP網絡的難度不小。攻擊根服務器的難度就更別提了。
DNS 欺騙攻擊方式的特點如下:
區域性。因為這種攻擊只能攻擊下游服務器,因此攻擊的有效范圍必然有限,只會影響到此臺服務器下層的服務器和客戶端。
漏洞利用。要實現 MS08-037 攻擊必然需要利用 DNS 協議的漏洞(MS08-037 或者其他可能存在的漏洞)。如果 DNS 服務器上的漏洞已經修復,那么這種攻擊就無法成功。
技巧性。不論利用漏洞還是利用 ARP 的設計缺陷,這類攻擊方式在 DNS 攻擊階段都需要一定的技術手段。
希望以上對 DNS 攻擊的簡單介紹能夠讓大家了解個大概。
Dennis Song
微軟安全支持專家
原文轉自:http://www.anti-gravitydesign.com