dns重定向 DNS的4種攻擊形式和應對舉措

2021-10-11 08:01:03 字數 2068 閱讀 4266

你好,歡迎收聽極客視點。

眾所周知,dns 是一種非常基本的協議 / 服務,它讓網際網路使用者和網路裝置能發現使用人類可讀的網域名稱,而非純數字 ip 位址的**。aws 的一篇文章詳細解釋了 dns 的工作原理。如果 dns 服務受到攻擊或無法正常工作,那麼你的服務或**很有可能無法訪問。

最近,麥可·索基斯(michael soikis)詳細解釋了 dns 服務面臨的主要威脅,以及相應的緩解策略,供你參考。

1. straightforward/***** ddos

黑客使用殭屍網路建立不同端點,在同一時間段向受害者網域名稱伺服器直接傳送海量 dns 請求。

這種攻擊會在短時間內產生大量流量,利用無數請求堵塞 dns 伺服器,讓其無法響應,從而達到拒絕正常使用者訪問的目的。

緩解措施通過使用基於硬體的網路裝置或雲服務解決方案可以過濾或限制網路流量。在一場 ***** ddos 攻擊中,攻擊者不會欺騙源 ip,用於攻擊的源數量也有限制。因此,限制策略可以是攔截攻擊者使用的 ip。

2. ip 欺騙

dns 預設依賴 udp 協議,而由於 udp 本身的特性導致,只需偽造資料報的 ip 位址,便可以輕易將源 ip 換成隨機 ip。在這種情況下,攔截 ip 位址變成了無用功,我們需要求助於別的方案。

緩解措施使用 dns 快取伺服器吸收大部分的 dns 流量。

ddos 攻擊者通常會使用不存在的網域名稱以確保解析器會**請求,已存在網域名稱有可能會被儲存在快取中,這樣的請求是不會被**的。針對這種情況,建議在 dns 快取伺服器中使用以下措施限制來自不存在網域名稱的 dns 請求**率。

如果傳入請求的總數量超過閾值,則要求客戶端從 udp 切換到 tcp。切換後,由於 tcp 需要三次握手,則可以避免源 ip 欺騙。

下圖顯示了受到 imperva 保護的權威 dns 伺服器在遭到一次 ddos 攻擊時的表現:

3. 反射型 ddos

攻擊者不僅會欺騙源 ip,連目的地 ip 也不會放過。來自正常 dns 解析器的 dns 回答會被發回給受害者(被欺騙的 ip),而不是原攻擊者的 ip,從而導致受害者受到 ddos 攻擊。

這類攻擊模式會放大 ddos 的影響:黑客精心設計了能觸發大量 dns 回答的 dns 請求,從而達到擴大傷害的效果。舉例來說,「any」類請求或具有多個 dns 記錄的請求將觸發大量 dns 回答。在這種情況下,合法的 dns 伺服器反而會協助攻擊。

緩解措施限制同一 ip 位址的 dns 請求 / 回答速率。

因為 dns 解析器會使用快取,所以理論上來講,請求**率會十分低,一定的頻率限制應當會有效。

下圖顯示了一位受到 imperva 保護的客戶基礎架構,在遭到嚴重 ddos 綜合攻擊後的表現:

二者相結合,黑客成功實施了 100 gbps 的 ddos 攻擊。

在這次攻擊中,dns 應答資料報平均是 1400 bytes,使得攻擊的放大倍數為 20。通過利用 3.5 gbps 頻寬的 dns 請求,黑客設法將 dns 反射型 ddos 攻擊放大到 70 gbps。反射型攻擊方法非常普遍且強大。

4. 快取投毒

與目標在於阻塞 dns 伺服器的 ddos 攻擊不同,快取投毒的目標是將訪客從真正的**重定向到惡意**。

它有三個攻擊階段:

緩解措施使用 dnssec。dnssec 通過提供簽名過的 dns 回答來阻止這類攻擊。使用 dnssec 的 dns 解析器會驗證其從 root/top level domain (tld)/ 權威 dns 伺服器得到的簽名響應。

下面四個措施可以讓黑客更難成功:

網域名稱下Web專案重定向出現DNS網域名稱解析錯誤問題

專案使用的是阿里雲的esc,前幾天為ip位址新增了網域名稱 發現傳送正常請求時跳轉沒問題,但傳送重定向請求時,頁面就會出現dns網域名稱解析錯誤的情況 1.我在tomcat的server.xml中配置了 host name context path docbase test valve host s...

兩種輸入重定向的方法

兩種輸入重定向的方法 利用 命令prog file 上面的命令會將 file內容重定向到 stdin,prog程式內部可以直接對 stdin進行處理,如 include int main 2.利用 freopen函式 freopen的函式原型如下 file freopen const char pa...

Spring重定向的兩種方式

spring mvc重定向 兩種實現方式 1 response的重定向 response.setcontenttype text html charset utf 8 string url searchsmallmajorbyname.action?parentid parentid searchs...