FavoriteLoading
0

使用多個DNS供應商以緩解DDoS攻擊

隨著不安全物聯網(IoT)設備的激增,針對域名系統(DNS)供應商的分布式拒絕服務(DDoS)攻擊在數量和規模上正在不斷增加。這些攻擊隨之影響依賴于這些供應商進行域名解析的網站。雖然DNS供應商采取了各種方法來保護自己免受此類攻擊,但網站保護自身的方法之一是使用多個DNS供應商。

2016年發生了史上最大規模之一的DDoS攻擊,這一攻擊是針對DNS供應商Dyn的。此次攻擊前后有三波,它通過已感染Mirai惡意軟件的物聯網設備組成的僵尸網絡進行攻擊。許多公司都受到此次攻擊的影響,比如Amazon、Paypal、Reddit和Github。該攻擊導致Dyn無法響應由其域名服務器解析的域名的有效DNS查詢,以至于終端用戶無法訪問相關域名。

據Dyn技術副總裁Phil Stanhope所說,此次Dyn攻擊事件還包括一個基于TCP SYN cookie的攻擊,該攻擊利用了Linux內核的一個錯誤。SYN cookie是一種用于緩解SYN flood攻擊的方法,SYN flood攻擊通過連續發送TCP SYN請求來耗盡目標系統的資源。然而,SYN cookie也有自己的問題,在Linux 3.x版本中,一個系統級別的鎖用于生成SYN cookie。由于這個級別的鎖定,無論內核實際數量多少,系統均如單核系統一樣運行,從而降低了其實際處理能力。Linux 4.x版本通過使用針對各個CPU內核的局部鎖來解決這個問題。

DNS供應商采用了各種方法來防止攻擊,比如清理(scrubbing)。清理是通過第三方來過濾所有流量。第三方以提供保護為服務,清除惡意流量,使合法流量通過并到達最終目的地。許多廠商提供這樣的服務,比如Akamai、AT&T、Verizon和Arbor Networks。

對某個網站或域名的任何HTTP(或其他協議)請求,都需進行DNS查詢,以將域名解析為一個或多個IP地址。該請求穿行于域名中各個級別的授權服務器的多個解析器。例如,對www.infoq.com的請求,首先是根服務器,然后再查詢.com的頂級域名(TLD)服務器,最后查詢infoq.com的授權服務器。整個過程中的解析器可能會緩存結果,以便更快地進行后續響應。緩存可以由DNS響應中的生存時間(TTL)值控制。針對infoq.com授權服務器的DDoS攻擊可能使得這些授權服務器無法響應有效查詢,并且最終導致整個網站無法訪問。

一般來說,DNS服務器冗余可以防止此類中斷。也就是說任何商業DNS供應商都將為一個既定域名提供多個DNS服務器。dig或drill命令可用于查看域名服務器記錄(下面以infoq.com為例)。

但是,如果某個供應商遭到DDoS攻擊,那么可能其所有的域名服務器都會受到影響。因此使用多個DNS供應商有助于解決這一問題。

要使用多個DNS供應商,必須允許編輯各個DNS供應商的域名服務器記錄,以便所有記錄都可以作為響應的一部分進行發送。另外,每個供應商都將擁有多個域名服務器,并且各供應商的所有域名服務器的順序是打亂的。這樣對一個供應商的失敗請求會引起對另一個供應商的請求,而不是一直在嘗試第一個供應商的所有其他域名服務器,因為這些服務器可能也是失效的。

確保DNS可靠性的其他方法還有Anycast,在這個方法中,多個域名服務器具有相同IP地址。進行DNS查詢時,數據包被傳送到最近的域名服務器。在失效的情況下,數據包由底層路由協議自動傳送到最近的有效域名服務器。

設置正確的TTL非常重要,這樣即使記錄由服務于響應的中間服務器進行緩存,也可以實現發生故障時切換到輔助服務器。正如Stanhope在Velocity的演講中所說,未來NetOps、DevOps、SecOps和SRE團隊之間需要更多的協作來緩解這種攻擊。

【聲明】:8090安全小組門戶(http://www.jvwkvg.tw)登載此文出于傳遞更多信息之目的,并不代表本站贊同其觀點和對其真實性負責,僅適于網絡安全技術愛好者學習研究使用,學習中請遵循國家相關法律法規。如有問題請聯系我們,聯系郵箱[email protected],我們會在最短的時間內進行處理。