DNS放大攻擊(DNS amplification attacks)是一種數據包的大量變體能夠產生針對一個目標的大量的虛假的通訊。這種虛假通訊的數量有多大?每秒鐘達數GB,足以阻止任何人進入互聯網。 與老式的“smurf attacks”攻擊非常相似,DNS放大攻擊使用針對無辜的第三方的欺騙性的數據包來放大通訊量,其目的是耗盡受害者的全部帶寬。但是,“smurf attacks”攻擊是向一個網絡廣播地址發送數據包以達到放大通訊的目的。DNS放大攻擊不包括廣播地址。相反,這種攻擊向互聯網上的一系列無辜的第三方DNS服務器發送小的和欺騙性的詢問信息。這些DNS服務器隨后將向表面上是提出查詢的那臺服務器發回大量的回復,導致通訊量的放大并且最終把攻擊目標淹沒。因為DNS是以無狀態的UDP數據包為基礎的,采取這種欺騙方式是司空見慣的。 在2005年之前,這種攻擊主要依靠對DNS實施60個字節左右的查詢,回復最多可達512個字節,從而使通訊量放大8.5倍。這對于攻擊者來說是不錯的,但是,仍沒有達到攻擊者希望得到了淹沒的水平。最近,攻擊者采用了一些更新的技術把目前的DNS放大攻擊提高了好幾倍。 當前許多DNS服務器支持EDNS。EDNS是DNS的一套擴大機制,RFC 2671對次有介紹。一些選擇能夠讓DNS回復超過512字節并且仍然使用UDP,如果要求者指出它能夠處理這樣大的DNS查詢的話。攻擊者已經利用這種方法產生了大量的通訊。通過發送一個60個字節的查詢來獲取一個大約4000個字節的記錄,攻擊者能夠把通訊量放大66倍。一些這種性質的攻擊已經產生了每秒鐘許多GB的通訊量,對于某些目標的攻擊甚至超過了每秒鐘10GB的通訊量。 要實現這種攻擊,攻擊者首先要找到幾臺代表互聯網上的某個人實施循環查詢工作的第三方DNS服務器 (帶有啟用大量回復的EDNS選項),并采取欺騙手段讓那些DNS服務器認為這個查詢信息是從攻擊者希望攻擊的那個IP地址發出來的。這些第三方DNS服務器于是就用這個4000個字節的文本記錄進行回復,用大量的UDP數據包淹沒受害者。攻擊者向第三方DNS服務器發出數百萬小的和欺騙性的查詢信息,這些DNS服務器將用大量的DNS回復數據包淹沒那個受害者。 如何防御這種大規模攻擊呢?首先,保證你擁有足夠的帶寬承受小規模的洪水般的攻擊。一個單一的T1線路對于重要的互聯網連接是不夠的,因為任何惡意的腳本少年都可以消耗掉你的帶寬。如果你的連接不是執行重要任務的,一條T1線路就夠了。否則,你就需要更多的帶寬以便承受小規模的洪水般的攻擊。不過,幾乎任何人都無法承受每秒鐘數GB的DNS放大攻擊。 因此,你要保證手邊有能夠與你的ISP隨時取得聯系的應急電話號碼。這樣,一旦發生這種攻擊,你可以馬上與ISP聯系,讓他們在上游過濾掉這種攻擊。要識別這種攻擊,你要查看包含DNS回復的大量通訊 最后,為了幫助阻止惡意人員使用你的DNS服務器作為一個實施這種DNS放大攻擊的代理,你要保證你的可以從外部訪問的DNS服務器僅為你自己的網絡執行循環查詢,不為任何互聯網上的地址進行這種查詢。大多數主要DNS服務器擁有限制循環查詢的能力,因此,它們僅接受某些網絡的查詢,比如你自己的網絡。通過阻止壞蛋利用循環查詢裝載大型有害的DNS記錄,你就可以防止你的DNS服務器成為這個問題的一部分。 |
新聞熱點
疑難解答