在最近一連串由于關閉文件共享網(wǎng)站Megaupload而引發(fā)的報復性攻擊之后,Anonymous的拒絕服務“大炮”已經(jīng)大大減少了后期發(fā)射炮彈的數(shù)量。
雖然Anonymous組織的成員打算在2月28日攻破國際刑警組織的網(wǎng)站(主要是通過使用網(wǎng)絡版的“低軌道離子炮”拒絕服務工具),并且已經(jīng)破壞了一些脆弱的網(wǎng)站(包括最近大多數(shù)隸屬于Panda Security的網(wǎng)站),要攻擊更大目標的威脅并未能實現(xiàn)。有人認為該組織最大膽的計劃——試圖令互聯(lián)網(wǎng)整個的域名系統(tǒng)(DNS)癱瘓——現(xiàn)在被該組織成員稱為“巨人”。
但這并不意味著更有針對性的基于DNS攻擊的拒絕服務攻擊的威脅消失了。由于對當前的拒絕服務工具頗為失望,Anonymous的成員正在開發(fā)下一代的攻擊工具,出了其他選項之外,它將把DNS本身當成一種武器。
放大器
一種擴大和隱蔽性的技術,叫作DNS放大,它是Anonymous的主要手段。DNS放大劫持互聯(lián)網(wǎng)全球地址簿的一個組成部門,把一個從攻擊機發(fā)送的相對較小的請求轉變成大量數(shù)據(jù)發(fā)送到目標機器上,可能造成每秒幾十或幾百G的網(wǎng)絡擁堵,且不會暴露攻擊源頭。它之所能夠如此,全是因為使用一種在至少2002年就已被得知的脆弱的DNS服務造成的。
DNS系統(tǒng)是有層次組織起來的。在層次結構的頂部是“根”域名服務器。這些服務器包含了可以找到下一層次域名服務器的所有信息,如“.com”,“.org”和“.uk”之類的。按順序,這些域名服務器包括了下一層的信息,因此“.com”域名服務器提供了可以找到“arstechnica”域名服務器的信息。之后“arstechnica”域名服務器就可以提供實際的從一個描述性的名字到一個以數(shù)字表示的IP地址的映射。
做一次DNS查詢需要訪問所有這些不同的層次。有兩種DNS解析的方式(一種軟件查找DNS條目,它可以是一臺客戶機上的獨立存在,也可以成為DNS服務器的一部分)可行:迭代模式和遞歸模式。在迭代模式下,解析器首先在根域名服務器下查詢頂級域名服務器,然后在頂級域名服務器下查詢二級域名服務器,等等。解析器直接與不同的域名服務器聯(lián)系,一個接一個,直到它要么找到了它需要的應答,要么因為應答不存在而放棄。
在遞歸模式中,解析器的工作是非常簡單的:它詢問一個域名解析服務器的全稱,然后把它交給服務器,代表它來執(zhí)行所有必要的要求(無論是遞歸或迭代)。
所有牽涉其中的服務器都有廣泛緩存;許多請求都由存儲在緩存中的信息受理,而不必每次在一個機器想知道比如“google.com”時都要查詢其它服務器。
通常情況下,DNS解析器內(nèi)建于客戶操作系統(tǒng)中,讓域名服務器(通常由互聯(lián)網(wǎng)服務提供商提供)代表它們來進行遞歸查詢。在這些服務器完成查詢之后,再來滿足通常地迭代請求。
這里就是問題所在。對于一個DNS查詢的回應可以大大超過查詢本身。在最好(或最壞)情況下,只有十幾個字節(jié)的查詢可以請求一個域名內(nèi)的每個名字,并收到成百上千字節(jié)的回應。發(fā)送到DNS服務器每個請求都有一個源地址——一個回應要發(fā)送到這的IP地址——但是這些源地址可以被偽造。那樣的話,從一個IP地址發(fā)來的請求卻被DNS服務器當成是由另一個不同地址發(fā)送來的。
利用這兩種方式——小的請求卻返回大量數(shù)據(jù)的遞歸查詢,和偽造源地址——攻擊將得以實現(xiàn)。攻擊者首先找到一個被配置成遞歸查詢的服務器,然后他向服務器發(fā)送大量請求,偽造源地址,另服務器認為受害目標計算機正在發(fā)送請求。這些請求中的每一個都會被選中,因此它將產(chǎn)生大量回應,遠遠大于查詢自身。之后,服務器將把這些大量回應發(fā)送給受害計算機,使之被大量數(shù)據(jù)癱瘓。請求和回應之間的大小差距是這些攻擊被稱為“放大”攻擊的原因。
雖然共識是公開訪問的DNS服務器應該關閉遞歸查詢,這是為了避免類似問題,但現(xiàn)實是,不是所有服務器都這樣做。有了足夠的使用遞歸的服務器,大量的數(shù)據(jù)擁堵就會被這些相對輕微數(shù)量的查詢制造出來。
[page]
攻擊者的好處
一份由貝勒大學的Randal Vaughan和以色列安全顧問Gadi Evron于2006年DefCon安全大會上提交的論文(PDF)列舉了2005年末和2006年初一系列的DNS放大攻擊——包括一起對互聯(lián)網(wǎng)服務提供商Sharktech,收到“高達10Gbps并且使用了140,000個有漏洞的域名服務器”的海量攻擊。根據(jù)目標服務器的數(shù)量和網(wǎng)絡容量, 假設Anonymous的攻擊可以數(shù)倍于那個數(shù)量是合理的。
正如Vaughan和Evron所寫,“一個包含60字節(jié)請求的DNS查詢可以得到超過4000字節(jié)的應答,回應數(shù)據(jù)包被放大了60倍。”
在一個被SecureWorks的Don Jackson描述的攻擊變種中,查詢簡單地向服務器請求“root hint”:域名服務器中“.”域名的地址,互聯(lián)網(wǎng)根DNS服務器的源頭。因為有數(shù)量眾多的根域名服務器,還因為實施了DNS-SEC為根域名服務器加入驗證數(shù)據(jù),每次請求返回的數(shù)據(jù)比查詢包大出約20倍。
由于通過偽造報頭采用UDP攻擊隱藏源頭是可能的,還因為它在攻擊端需要相對較少的帶寬,因此DNS放大攻擊對像Anonymous這樣的組織來說有明顯的好處。雖然攻擊者們不能使用Tor anonymizing網(wǎng)絡(Tor不會造成UDP擁堵),他們?nèi)阅苁褂酶鞣NVPN來為安全造成隱患。
除了一次DNS放大攻擊可以產(chǎn)生的大量數(shù)據(jù)外,攻擊者還能從技術上獲得其他好處。DNS放大攻擊依賴于UDP,一種“無連接的”協(xié)議,數(shù)據(jù)包通過它發(fā)送到目的地不需要進行“握手”甚至是任何保險。因為沒有所謂的協(xié)調(也由于DNS數(shù)據(jù)通常不是由應用程序防火墻或其他系統(tǒng)過濾的),這不是一種很容易預防的攻擊。
有什么能做的嗎?
重新使用Smurf
在某些方面,DNS放大攻擊類似于“smurf”拒絕服務攻擊,在上世紀90年代更常見。“Smurf”攻擊用偽造地址的封包——帶有互聯(lián)網(wǎng)控制報文協(xié)議(ICMP)廣播ping請求。但是“smurf”攻擊可以通過設置路由器和電腦系統(tǒng)而停止。只要把它們設置成不應答廣播或ping請求即可,并且不要這些發(fā)送給其他系統(tǒng)。
但是DNS放大攻擊更狡猾。在與Ars的電子郵件采訪時,Vaughan說,偽造的報頭在可預見的未來仍是一個問題。互聯(lián)網(wǎng)工程任務組提出一個方法,用來“入口過濾”數(shù)據(jù)包,被稱為BCP 38,它將阻止像DNS放大攻擊這樣的偽造流量。但這一提議自2000年首次提出以來一直沒有進展。
“BCP 38在未來十年不會實施”,Vaughan說,“除非其他壓力導致緊急情況采取這項措施。”
對付DNS放大的最佳措施是需要在DNS服務器端著手——但那通常在目標控制之外。DNS服務器可以被設置成不回應“.”查詢或者作出簡短回應,兩者都能減少或消除放大問題。DNS服務器的管理員也可以嘗試限制授權用戶的DNS請求,或者限制他們通過UDP接收請求的數(shù)量。但在性能上有取舍,而且做這些事情是域名服務器管理員工作之外的事。
操作全球巨人
考慮到最近由在巴基斯坦自稱為Anonymous成員的一人發(fā)布的一個文檔之后,DNS放大攻擊的浮現(xiàn)。文檔中揚言“Operation Global Blackout”,一項對互聯(lián)網(wǎng)根DNS服務器發(fā)起的攻擊。攻擊的計劃是對一個預先備好的清單上的遞歸DNS服務器使用大量DNS請求,用“偽造的”IP地址使之看上去好像它們是由根服務器發(fā)出的;這次攻擊被描述為針對整個DNS體系,讓整個網(wǎng)絡徹底癱瘓。
這其中的原因之一是“任播法”——一種路由修改方法,允許同一DNS服務器上的多個版本表面上駐留在相同的IP地址上,使流量路由到最近的系統(tǒng)。由于攻擊者只關注每個根服務器的IP地址,它們將被路由到由初始機器開始跳轉最少的服務器上。更重要的是,根域名服
務器的可用帶寬是巨大的,減少任何對根服務器DoS攻擊的可能性將嚴重影響他們的行動。即使那樣,根服務器也必須在受到ISP的DNS服務器停運影響前脫機幾天。
在攻擊文檔發(fā)出后不久,Anonymous的成員否認這是一個出于善意的行動。有人稱其為“巨人”,說公布的實施攻擊的工具不是真的,或者說它的目的為收集使用者身份信息的(就像去年黑客TheJester制作的臭名昭著的Anonymous的DHN攻擊工具一樣)。在二月底,一批
Anonymous IRC管理員進入#opglobalblackout聊天室并把它關閉了,重新定向到一個叫#opglobalnig---out的聊天室。
正在籌備中
不過,這并不意味著Anonymous對DNS放大攻擊不感興趣。雖然該組織正在推動一個30天的抵制版權內(nèi)容的行動,作為部分成員所稱的黑色三月行動的一部分,但仍有沉重打擊內(nèi)容提供商的意愿。但推動這種類型的攻擊需要的復雜程度超出了一般的Anonymous的“積極分子”的能力,它們一般就是依靠可下載的一些相對簡單的工具用于攻擊。
這些攻擊者是有用的,因為Anonymous需要大量的參與者。讓這些缺乏經(jīng)驗的人來安裝虛擬機軟件和如Backtrack的滲透工具Linux需要一定的技術支持,即使是最有耐心的專家志愿者也不能提供。Windows自己的網(wǎng)絡驅動不允許偽造要發(fā)送的數(shù)據(jù)包,所以做任何像是DNS放大這種的偽造報頭的攻擊都需要一個特制的操縱網(wǎng)絡流量的驅動(如WinPcap數(shù)據(jù)包捕獲庫)。而且,軟件通常用于這類攻擊,比如Hping封包分析工具,往往是面向命令行操作的。
考慮到Anonymous目前大多數(shù)用戶的DDoS工具經(jīng)常對他們自己拒絕服務甚于他們的目標。“人們似乎無法理解任何事情”,在一次IRC對話時,一個Anon對Ars談到,關于組織成員試圖在TOR網(wǎng)絡使用高軌道離子炮而之后又抱怨它如何之慢。
一些Anonymous成員正打算用一種新的工具,那“非常好使(由于我們一些使用者的情況)”,一個成員告訴Ars。這個想法是制作一些像LOIC工具的東西——但沒有LOIC的缺陷。新的工具(如果成功的話)將結合WinPcap庫和“hive mind”遠程控制(一個通過給客戶端
傳送配置信息和協(xié)調攻擊的用于Anonymous成員的系統(tǒng)),帶有一套攻擊,包括DNS放大,使用偽造地址的IP洪水攻擊和一種像是用于Slowloris的那種“慢發(fā)送”攻擊。
現(xiàn)在,這個工具仍然只是一個概念。截至2月中旬,Anonymous成員才開始真正為它編寫的代碼。而且代碼現(xiàn)在寫沒寫好還不好說,因為該項目的一個開發(fā)者是黑客Avunit,原LulzSec成員,他最近告訴Ars他要離開Anonymous。同時,Anonymous更復雜的攻擊可能被局限于更精明的成員所能處理的問題上,而大家都放棄了方便執(zhí)行的HOIC攻擊。