由于UDP是一種無連接協(xié)議,且可用腳本輕松生成大量UDP數(shù)據(jù)包而常被用于海量帶寬的DDoS攻擊,也就是UDP泛洪攻擊。
DNS主要采用的是UDP協(xié)議,某些情況下采用TCP協(xié)議, 而UDP/DNS協(xié)議也常被DDoS工具利用。
DNS協(xié)議是一個十分重要的網(wǎng)絡(luò)協(xié)議,所以這個協(xié)議的可用性就異常重要。為了讓DNS拒絕服務(wù),惡意攻擊者向允許遞歸的開放DNS解析器發(fā)送大量偽造的查詢請求。目前互聯(lián)網(wǎng)中存在著上百萬開放的DNS解析器,包括很多的家庭網(wǎng)關(guān)。
開放的DNS解析器會認(rèn)為這些偽造的查詢請求是真實有效的,并且會對這些請求進(jìn)行處理,在處理完成之后,便會向偽造的請求者(即,受害人)返回DNS響應(yīng)信息。如果查詢請求的數(shù)量巨大,DNS服務(wù)器很有可能會發(fā)送大量的DNS響應(yīng)信息。這也就是我們常說的放大攻擊,這種方法利用的是DNS解析器中的錯誤配置。由于DNS服務(wù)器配置錯誤,那么DNS解析器很可能會在接收到一個非常小的DNS查詢請求之后,向目標(biāo)主機返回大量的攻擊流量。在另一種類型的攻擊中,是向DNS服務(wù)器發(fā)送未經(jīng)許可或不符合規(guī)則的查詢請求來進(jìn)行攻擊。
那么我們就來介紹下如何通過Fortinet所提供的FortiDDoS解決方案中10種簡單而實用的方法來緩解DNS泛洪攻擊所帶來的影響,更好地保護(hù)DNS基礎(chǔ)設(shè)施。
不允許未經(jīng)過請求的DNS響應(yīng)
- 一個典型的DNS交換信息是由解析器到服務(wù)器的請求,以及從服務(wù)器到解析器到服務(wù)器的響應(yīng)信息組成。沒有未經(jīng)過請求的回應(yīng),同樣也沒有回應(yīng)信息也不會被回應(yīng)信息響應(yīng)。
- FortiDDos部署在DNS解析器之前,DNS解析可以是一個開放的解析器或一臺認(rèn)證服務(wù)器。
- 這是一種連接在網(wǎng)絡(luò)中的設(shè)備,其每秒可以處理數(shù)百萬次查詢請求,且將查詢信息和相應(yīng)響應(yīng)信息記錄在內(nèi)存表中。
- 當(dāng)一個回應(yīng)已經(jīng)到達(dá),但如果相應(yīng)的請求沒有通過,回應(yīng)就被丟棄。這種機制能夠有效地緩解DDos攻擊影響。

丟棄快速重傳數(shù)據(jù)包
- 即便是在數(shù)據(jù)包丟失的情況下,任何合法的DNS客戶端均不會在較短的時間間隔向同一DNS服務(wù)器發(fā)送相同的查詢請求。每個RFC均需遵守查詢重傳數(shù)據(jù)包的規(guī)則。
- 因此,如果從相同IP地址發(fā)送至同一目標(biāo)地址的相同查詢請求發(fā)送頻率過高,那么數(shù)據(jù)包可丟棄。

如果DNS服務(wù)器已經(jīng)發(fā)送了響應(yīng)信息,應(yīng)禁止服務(wù)器在較短時間間隔內(nèi)對相同的查詢請求信息進(jìn)行響應(yīng)——啟用TTL
- 一個合法的DNS客戶端如果已經(jīng)接收到了響應(yīng)信息,就不會再次發(fā)送相同的查詢請求。
- 每一個響應(yīng)信息都應(yīng)進(jìn)行緩存處理直到TTL過期。當(dāng)DNS遭遇請求泛洪時可以啟動阻斷無關(guān)的請求。

丟棄異常來源的DNS請求和響應(yīng)
通常情況下,攻擊者會利用腳本來對目標(biāo)進(jìn)行分布式拒絕服務(wù)攻擊(DDoS攻擊),而且這些腳本是有漏洞的,不符合與DNS報頭有關(guān)的RFC。在服務(wù)器中部署簡單的匿名檢測機制,在某種程度上可以限制泛洪中的數(shù)據(jù)包數(shù)量。

果斷丟棄未經(jīng)請求或突發(fā)的DNS請求
- 這類請求信息很可能是由偽造的代理服務(wù)器所發(fā)送的,或者由于調(diào)試需要客戶端配置錯誤或者是攻擊流量。以上任何一種情況下果斷丟棄數(shù)據(jù)包。
- 非泛洪攻擊 (non-flood) 時段,創(chuàng)建一個白名單,添加允許服務(wù)器處理的合法請求信息。
- 白名單可以阻斷非法的查詢請求信息以及非常見數(shù)據(jù)包。
- 這種方法可以有效地保護(hù)您的服務(wù)器不受泛洪攻擊、影子域名 (phantom-domain) 以及影子子域名 (phantom-subdomain) 的威脅。
- 除此之外,還也可以保證認(rèn)證服務(wù)器只處理合法的域名服務(wù)器只對合法的DNS查詢請求進(jìn)行處理和響應(yīng)。
啟動DNS客戶端驗證
- 偽造是DNS攻擊中常用的一種技術(shù)。
- 如果設(shè)備可以啟動客戶端驗證信任狀,便可以用于從偽造泛洪數(shù)據(jù)中篩選出非泛洪數(shù)據(jù)包。
- FortiDDoS就是通過反偽造技術(shù),例如強制TCP傳輸或重傳。
響應(yīng)緩存避免DNS服務(wù)器過載宕機
- FortiDDoS內(nèi)嵌了高性能的DNS緩存工具,使用硬件線路每秒處理百萬DNS請求
- 遇到泛洪攻擊時,如果響應(yīng)數(shù)據(jù)在緩存中,DNS查詢通過上述所有檢測后,緩存便能夠響應(yīng),。從而有效地防止服務(wù)器因過載而宕機。
使用ACL的權(quán)限
- 許多請求中包含了服務(wù)器不具有或不支持的信息,那么可以進(jìn)行簡單的阻斷設(shè)置,例如外部IP地址請求區(qū)域轉(zhuǎn)換或碎片化數(shù)據(jù)包,直接丟棄即可。
定位ACL,BCP38,及IP信譽功能的使用
- 托管DNS服務(wù)器的任何企業(yè)都有用戶軌跡的限制。。
- 當(dāng)攻擊數(shù)據(jù)包被偽造,偽造請求來自世界各地的源地址。設(shè)置一個簡單的過濾器可阻斷不需要的地理位置的IP地址請求或只允許在地理位置白名單內(nèi)的IP請求。
- 同樣,偽造是隨機的。有時,某些偽造的數(shù)據(jù)包可能來自與內(nèi)部網(wǎng)絡(luò)地址。利用BCP38通過硬件過濾也可以清除異常來源地址的請求。
- BCP38對于提供DNS解析的服務(wù)提供商也相當(dāng)有用,可以避免用戶向外發(fā)送攻擊或受到內(nèi)部地址請求的攻擊,過濾用戶并保證其數(shù)據(jù)傳輸。

余量帶寬
- 如果日常DNS流量假設(shè)是 X Gbps, 確保流量通道不止是日常的量,有一定的帶寬余量可以有利于處理大規(guī)模攻擊。
通過Fortinet FortiDDoS提供的上述10種非常簡單的方法,可以有效地幫助您緩解許多基于DNS的DDoS攻擊,并保證您所提供的服務(wù)可以滿足客戶的使用需求。