發新話題

[資訊安全] 防止DNS放大攻擊的若干措施

[資訊安全] 防止DNS放大攻擊的若干措施

在過去的18個月裏,互聯網上的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伺服器(大多數DNS伺服器都有這種設置)。由於支援迴圈查詢,攻擊者可以向一台DNS伺服器發送一個查詢,這臺DNS伺服器隨後把這個查詢(以迴圈的方式)發送給攻擊者選擇的一台DNS伺服器。接下來,攻擊者向這些伺服器發送一個DNS記錄查詢,這個記錄是攻擊者在自己的DNS伺服器上控制的。由於這些伺服器被設置為迴圈查詢,這些第三方伺服器就向攻擊者發回這些請求。攻擊者在DNS伺服器上存儲了一個4000個字節的文本用於進行這種DNS放大攻擊。

  現在,由於攻擊者已經向第三方DNS伺服器的緩存中加入了大量的記錄,攻擊者接下來向這些伺服器發送DNS查詢資訊(帶有啟用大量回復的EDNS選項),並採取欺騙手段讓那些DNS伺服器認為這個查詢資訊是從攻擊者希望攻擊的那個IP地址發出來的。這些第三方DNS伺服器於是就用這個4000個字節的文本記錄進行回復,用大量的UDP數據包淹沒受害者。攻擊者向第三方DNS伺服器發出數百萬小的和欺騙性的查詢資訊,這些DNS伺服器將用大量的DNS回複數據包淹沒那個受害者。

  如何防禦這種大規模攻擊呢?首先,保證你擁有足夠的帶寬承受小規模的洪水般的攻擊。一個單一的T1線路對於重要的互聯網連接是不夠的,因為任何惡意的腳本少年都可以消耗掉你的帶寬。如果你的連接不是執行重要任務的,一條T1線路就夠了。否則,你就需要更多的帶寬以便承受小規模的洪水般的攻擊。不過,幾乎任何人都無法承受每秒鐘數GB的DNS放大攻擊。

  因此,你要保證手邊有能夠與你的ISP隨時取得聯繫的應急電話號碼。這樣,一旦發生這種攻擊,你可以馬上與ISP聯繫,讓他們在上游過濾掉這種攻擊。要識別這種攻擊,你要查看包含DNS回復的大量通訊(源UDP端口53),特別是要查看那些擁有大量DNS記錄的端口。一些ISP已經在其整個網路上部署了感測器以便檢測各種類型的早期大量通訊。這樣,你的ISP很可能在你發現這種攻擊之前就發現和避免了這種攻擊。你要問一下你的ISP是否擁有這個能力。

  最後,為了幫助阻止惡意人員使用你的DNS伺服器作為一個實施這種DNS放大攻擊的代理,你要保證你的可以從外部訪問的DNS伺服器僅為你自己的網路執行迴圈查詢,不為任何互聯網上的地址進行這種查詢。大多數主要DNS伺服器擁有限制迴圈查詢的能力,因此,它們僅接受某些網路的查詢,比如你自己的網路。通過阻止壞蛋利用迴圈查詢裝載大型有害的DNS記錄,你就可以防止你的DNS伺服器成為這個問題的一部分

TOP

♡ ♡

TOP

發新話題

本站所有圖文均屬網友發表,僅代表作者的觀點與本站無關,如有侵權請通知版主會盡快刪除。