由于UDP是一種無連接協(xié)議,且可用腳本輕松生成大量UDP數(shù)據(jù)包而常被用于海量帶寬的DDoS攻擊,也就是UDP泛洪攻擊。
DNS主要采用的是UDP協(xié)議,某些情況下采用TCP協(xié)議, 而UDP/DNS協(xié)議也常被DDoS工具利用。
DNS協(xié)議是一個(gè)十分重要的網(wǎng)絡(luò)協(xié)議,所以這個(gè)協(xié)議的可用性就異常重要。為了讓DNS拒絕服務(wù),惡意攻擊者向允許遞歸的開放DNS解析器發(fā)送大量偽造的查詢請求。目前互聯(lián)網(wǎng)中存在著上百萬開放的DNS解析器,包括很多的家庭網(wǎng)關(guān)。
開放的DNS解析器會認(rèn)為這些偽造的查詢請求是真實(shí)有效的,并且會對這些請求進(jìn)行處理,在處理完成之后,便會向偽造的請求者(即,受害人)返回DNS響應(yīng)信息。如果查詢請求的數(shù)量巨大,DNS服務(wù)器很有可能會發(fā)送大量的DNS響應(yīng)信息。這也就是我們常說的放大攻擊,這種方法利用的是DNS解析器中的錯(cuò)誤配置。由于DNS服務(wù)器配置錯(cuò)誤,那么DNS解析器很可能會在接收到一個(gè)非常小的DNS查詢請求之后,向目標(biāo)主機(jī)返回大量的攻擊流量。在另一種類型的攻擊中,是向DNS服務(wù)器發(fā)送未經(jīng)許可或不符合規(guī)則的查詢請求來進(jìn)行攻擊。
那么我們就來介紹下如何通過Fortinet所提供的FortiDDoS解決方案中10招簡單實(shí)用的方法介紹10種簡單而實(shí)用的方法來緩解DNS泛洪攻擊所帶來的影響,更好地保護(hù)DNS基礎(chǔ)設(shè)施。
不允許未經(jīng)過請求的DNS響應(yīng)
"一個(gè)典型的DNS交換信息是由解析器到服務(wù)器的請求,以及從服務(wù)器到解析器到服務(wù)器的響應(yīng)信息組成。 沒有未經(jīng)過請求的回應(yīng),同樣也沒有回應(yīng)信息也不會被回應(yīng)信息響應(yīng)。
"FortiDDos部署在DNS解析器之前,DNS解析可以是一個(gè)開放的解析器或一臺認(rèn)證服務(wù)器。
"這是一種連接在網(wǎng)絡(luò)中的設(shè)備,其每秒可以處理數(shù)百萬次查詢請求,且將查詢信息和相應(yīng)響應(yīng)信息記錄在內(nèi)存表中。
"當(dāng)一個(gè)回應(yīng)已經(jīng)到達(dá),但如果相應(yīng)的請求沒有通過, 回應(yīng)就被丟棄。這種機(jī)制能夠有效地緩解DDos攻擊影響。
丟棄快速重傳數(shù)據(jù)包
"即便是在數(shù)據(jù)包丟失的情況下,任何合法的DNS客戶端均不會在較短的時(shí)間間隔向同一DNS服務(wù)器發(fā)送相同的查詢請求。每個(gè)RFC均需遵守查詢重傳數(shù)據(jù)包的規(guī)則。
"因此,如果從相同IP地址發(fā)送至同一目標(biāo)地址的相同查詢請求發(fā)送頻率過高,那么數(shù)據(jù)包可丟棄。
如果DNS服務(wù)器已經(jīng)發(fā)送了響應(yīng)信息,應(yīng)禁止服務(wù)器在較短時(shí)間間隔內(nèi)對相同的查詢請求信息進(jìn)行響應(yīng)--啟用TTL
"一個(gè)合法的DNS客戶端如果已經(jīng)接收到了響應(yīng)信息,就不會再次發(fā)送相同的查詢請求。
"每一個(gè)響應(yīng)信息都應(yīng)進(jìn)行緩存處理直到TTL過期。當(dāng)DNS遭遇請求泛洪時(shí)可以啟動(dòng)阻斷無關(guān)的請求。
丟棄異常來源的DNS請求和響應(yīng)
通常情況下,攻擊者會利用腳本來對目標(biāo)進(jìn)行分布式拒絕服務(wù)攻擊(DDoS攻擊),而且這些腳本是有漏洞的,不符合與DNS報(bào)頭有關(guān)的RFC。在服務(wù)器中部署簡單的匿名檢測機(jī)制,在某種程度上可以限制泛洪中的數(shù)據(jù)包數(shù)量。
果斷丟棄未經(jīng)請求或突發(fā)的DNS請求
"這類請求信息很可能是由偽造的代理服務(wù)器所發(fā)送的,或者由于調(diào)試需要客戶端配置錯(cuò)誤或者是攻擊流量。以上任何一種情況下果斷丟棄數(shù)據(jù)包。
"非泛洪攻擊 (non-flood) 時(shí)段,創(chuàng)建一個(gè)白名單,添加允許服務(wù)器處理的合法請求信息。
"白名單可以阻斷非法的查詢請求信息以及非常見數(shù)據(jù)包。
"這種方法可以有效地保護(hù)您的服務(wù)器不受泛洪攻擊、影子域名 (phantom-domain) 以及影子子域名 (phantom-subdomain) 的威脅。
"除此之外,還也可以保證認(rèn)證服務(wù)器只處理合法的域名服務(wù)器只對合法的DNS查詢請求進(jìn)行處理和響應(yīng)。
啟動(dòng)DNS客戶端驗(yàn)證
"偽造是DNS攻擊中常用的一種技術(shù)。
"如果設(shè)備可以啟動(dòng)客戶端驗(yàn)證信任狀,便可以用于從偽造泛洪數(shù)據(jù)中篩選出非泛洪數(shù)據(jù)包。
"FortiDDoS就是通過反偽造技術(shù),例如強(qiáng)制TCP傳輸或重傳。
響應(yīng)緩存避免DNS服務(wù)器過載宕機(jī)
"FortiDDoS內(nèi)嵌了高性能的DNS緩存工具,使用硬件線路每秒處理百萬DNS請求
"遇到泛洪攻擊時(shí),如果響應(yīng)數(shù)據(jù)在緩存中,DNS查詢通過上述所有檢測后,緩存便能夠響應(yīng),。從而有效地防止服務(wù)器因過載而宕機(jī)。
使用ACL的權(quán)限
"許多請求中包含了服務(wù)器不具有或不支持的信息,那么可以進(jìn)行簡單的阻斷設(shè)置,例如外部IP地址請求區(qū)域轉(zhuǎn)換或碎片化數(shù)據(jù)包,直接丟棄即可。
定位ACL,BCP38,及IP信譽(yù)功能的使用
"托管DNS服務(wù)器的任何企業(yè)都有用戶軌跡的限制。。
"當(dāng)攻擊數(shù)據(jù)包被偽造,偽造請求來自世界各地的源地址。設(shè)置一個(gè)簡單的過濾器可阻斷不需要的地理位置的IP地址請求或只允許在地理位置白名單內(nèi)的IP請求。
"同樣,偽造是隨機(jī)的。有時(shí),某些偽造的數(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ù)可以滿足客戶的使用需求。