衆所周知,DNS是一種非常基本的協議/服務,它讓互聯網用戶和網絡設備能發現使用人類可讀的域名,而非純數字IP地址的網站。AWS的這篇文章詳細解釋了DNS的工作原理。如果DNS服務受到攻擊或無法正常工作,那麼你的服務或網站很有可能無法訪問。
在本篇博文中,我會詳細解釋DNS服務面臨的主要威脅,以及相應的緩解策略。
文中使用的真實攻擊數據和相關統計均來自Imperva雲WAF保護服務。
DDoS
分佈式拒絕服務(DDoS)會在攻擊期間導致受害者服務無法訪問。根據Techradar的這篇文章,DDoS的受害者甚至包括前沿的雲服務提供商,比如亞馬遜AWS。
對DNS基礎設施上的DDoS攻擊分爲以下幾種:
1. Straightforward/Naive DDoS
黑客使用殭屍網絡創建不同端點,在同一時間段向受害者域名服務器直接發送海量DNS請求。
這種攻擊會在短時間內產生大量流量,利用無數請求堵塞DNS服務器,讓其無法響應,從而達到拒絕正常用戶訪問的目的。
緩解措施
通過使用基於硬件的網絡設備或雲服務解決方案可以過濾或限制網絡流量。在一場naive DDoS攻擊中,攻擊者不會欺騙源IP,用於攻擊的源數量也有限制。因此,限制策略可以是攔截攻擊者使用的IP。
2. IP欺騙
DNS默認依賴UDP協議,而由於UDP本身的特性導致,只需僞造數據包的IP地址,便可以輕易將源IP換成隨機IP。在這種情況下,攔截IP地址變成了無用功,我們需要求助於別的方案。
緩解措施
使用DNS緩存服務器吸收大部分的DNS流量。
DDoS攻擊者通常會使用不存在的域名以確保解析器會轉發請求,已存在域名有可能會被保存在緩存中,這樣的請求是不會被轉發的。針對這種情況,我們建議在DNS緩存服務器中使用以下措施來限制來自不存在域名的DNS請求轉發率。
如果傳入請求的總數量超過閾值,則要求客戶端從UDP切換到TCP。切換後,由於TCP需要三次握手,則可以避免源IP欺騙。
下圖顯示了受到Imperva保護的權威DNS服務器在遭到一次DDoS攻擊時的表現:
這次攻擊持續了24小時,Imperva的DNS代理通過過濾和限制傳遞到服務器的請求速率來緩解DDoS攻擊。因此,服務器收到的請求速率沒有超過配置閾值,超過這個限制的惡意流量會被攔截。
3. 反射型DDoS
攻擊者不僅會欺騙源IP,連目的地IP也不會放過。來自正常DNS解析器的DNS回答會被髮回給受害者(被欺騙的IP),而不是原攻擊者的IP,從而導致受害者受到DDoS攻擊。
這類攻擊模式會放大DDoS的影響:黑客精心設計了能觸發大量DNS回答的DNS請求,從而達到擴大傷害的效果。舉例來說,“ANY”類請求或具有多個DNS記錄的請求將觸發大量DNS回答。
在這種情況下,合法的DNS服務器反而會協助攻擊。
緩解措施
限制同一IP地址的DNS請求/回答速率。
因爲DNS解析器會使用緩存,所以理論上來講,請求轉發率會十分低,一定的頻率限制應當會有效。
下圖顯示了一位受到Imperva保護的客戶基礎架構,在遭到嚴重DDoS綜合攻擊後的表現:
在這次DDoS攻擊中,黑客使用了兩種不同方式:
- 反射並放大DNS的DDoS攻擊:70 Gbps的DNS應答數據包,圖中以黃色表示
- UDP欺騙DDoS攻擊:30 Gbps的UDP數據包,圖中以藍色表示
二者相結合,黑客成功實施了100 Gbps的DDoS攻擊。
在這次攻擊中,DNS應答數據包平均是1400 bytes,使得攻擊的放大倍數爲20。通過利用3.5 Gbps帶寬的DNS請求,黑客設法將DNS反射型DDoS攻擊放大到70 Gbps。反射型攻擊方法非常普遍且強大。
4. 緩存投毒
與目標在於阻塞DNS服務器的DDoS攻擊不同,緩存投毒的目標是將訪客從真正的網站重定向到惡意網站。
攻擊階段
- 黑客發送DNS請求到DNS解析器,解析器會轉發請求到Root/TLD/權威DNS服務器並等待回答。
- 黑客隨後發送大量包含惡意IP地址的投毒響應到DNS服務器。黑客需要搶在權威DNS回答之前用僞造響應命中正確的端口與查詢ID,這一步可以通過蠻力來提高成功機會。
- 任何正常用戶請求該DNS解析器都會得到緩存中被投毒的響應,然後被重定向到惡意網站。
緩解措施
- 使用DNSSEC。DNSSEC通過提供簽名過的DNS回答來阻止這類攻擊。使用DNSSEC的DNS解析器會驗證其從Root/Top Level Domain (TLD)/權威DNS服務器得到的簽名響應。
- 下列措施可以讓黑客更難成功:
- 對每條請求使用隨機查詢ID
- 對每條請求使用隨機源端口
- 丟棄重複的轉發請求
- 確保響應中所有區域均與請求相符合:query ID、name、class和type
詳細清單請查看這篇文章。
結論
爲確保網站的基礎功能可以正常運轉,網站管理者應確保DNS服務能正常工作,並避免受到上述攻擊。
原文地址:
https://www.imperva.com/blog/why-should-you-worry-about-dns-attacks/