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