泛洪(Flooding)是交換機(jī)和網(wǎng)橋使用的一種數(shù)據(jù)流傳遞技術(shù),將某個(gè)接口收到的數(shù)據(jù)流從除該接口之外的所有接口發(fā)送出去。
泛洪的過(guò)程交換機(jī)根據(jù)收到數(shù)據(jù)幀中的源MAC地址建立該地址同交換機(jī)端口的映射,并將其寫(xiě) 入MAC地址表中。交換機(jī)將數(shù)據(jù)幀中的目的MAC地址同已建立的MAC地址表進(jìn)行比較,以決定由哪個(gè)端口進(jìn)行轉(zhuǎn)發(fā)。如數(shù)據(jù)幀中的目的MAC地址不在MAC地址表中,則向所有端口轉(zhuǎn)發(fā)。1
泛洪的分類(lèi)SYN泛洪攻擊SYN攻擊利用的是TCP的三次握手機(jī)制,攻擊端利用偽造的IP地址向被攻擊端發(fā)出請(qǐng)求,而被攻擊端發(fā)出的響應(yīng)2報(bào)文將永遠(yuǎn)發(fā)送不到目的地,那么被攻擊端在等待關(guān)閉這個(gè)連接的過(guò)程中消耗了資源,如果有成千上萬(wàn)的這種連接,主機(jī)資源將被耗盡,從而達(dá)到攻擊的目的。我們可以利用路由器的TCP攔截功能,使網(wǎng)絡(luò)上的主機(jī)受到保護(hù)(以Cisco路由器為例)。3
DHCP報(bào)文泛洪攻擊DHCP報(bào)文泛洪攻擊是指:惡意用戶(hù)利用工具偽造大量DHCP報(bào)文發(fā)送到服務(wù)器,一方面惡意耗盡了IP資源,使得合法用戶(hù)無(wú)法獲得IP資源;另一方面,如果交換機(jī)上開(kāi)啟了DHCP Snooping功能,會(huì)將接收到的DHCP報(bào)文上送到CPU。因此大量的DHCP報(bào)文攻擊設(shè)備會(huì)使DHCP服務(wù)器高負(fù)荷運(yùn)行,甚至?xí)?dǎo)致設(shè)備癱瘓。
ARP報(bào)文泛洪攻擊ARP報(bào)文泛洪類(lèi)似DHCP泛洪,同樣是惡意用戶(hù)發(fā)出大量的ARP報(bào)文,造成L3設(shè)備的ARP表項(xiàng)溢出,影響正常用戶(hù)的轉(zhuǎn)發(fā)。
泛洪攻擊方法ICMP泛洪ICMP泛洪(ICMP flood)是利用ICMP報(bào)文 進(jìn)行攻擊的一種方法。如果攻擊者向目標(biāo)主機(jī)發(fā) 送大量的ICMP ECHO報(bào)文,將產(chǎn)生ICMP泛洪, 目標(biāo)主機(jī)會(huì)將大量的時(shí)間和資源用于處理ICMP ECHO報(bào)文,而無(wú)法處理正常的請(qǐng)求或響應(yīng),從而實(shí)現(xiàn)對(duì)目標(biāo)主機(jī)的攻擊。
ICMP反射泛洪Smurf IP利用廣播地址發(fā)送ICMP包,一旦廣播出去,就會(huì)被廣播域內(nèi)的所有主機(jī)回應(yīng),當(dāng)然這些包都回應(yīng)給了偽裝的IP地址(指向被攻擊主機(jī)),偽裝IP地址可以是互聯(lián)網(wǎng)上的任何地址,不一定在本地;假如駭客不停地發(fā)送此種類(lèi)型的包,就會(huì)造成DoS攻擊。
TCP SYN 泛洪對(duì)于TCP協(xié)議,當(dāng)客戶(hù)端向服務(wù)器發(fā)起連接請(qǐng)求并初始化時(shí),服務(wù)器一端的協(xié)議棧會(huì)留一塊緩沖區(qū)來(lái)處理“握手”過(guò)程中的信息交換。請(qǐng)求建立連接時(shí)發(fā)送的數(shù)據(jù)包的包頭SYN位就表明了數(shù)據(jù)包的順序,攻擊者可以利用在短時(shí)間內(nèi)快速發(fā)起大量連接請(qǐng)求,以致服務(wù)器來(lái)不及響應(yīng)。同時(shí)攻擊者還可以偽造源IP地址。也就是說(shuō)攻擊者發(fā)起大量連接請(qǐng)求,然后掛起在半連接狀態(tài),以此來(lái)占用大量服務(wù)器資源直到拒絕服務(wù)。雖然緩沖區(qū)中的數(shù)據(jù)在一段時(shí)間內(nèi)(通常是三分鐘)都沒(méi)有回應(yīng)的話,就會(huì)被丟棄,但在這段時(shí)間內(nèi),大量半連接足以耗盡服務(wù)器資源。
TCP LANDLAND攻擊利用了TCP連接建立的三次握手過(guò)程,通過(guò)向一個(gè)目標(biāo)主機(jī)發(fā)送一個(gè)用于建立請(qǐng)求連接的TCP SYN報(bào)文而實(shí)現(xiàn)對(duì)目標(biāo)主機(jī)的攻擊。與正常的TCP SYN報(bào)文不同的是:LAND攻擊報(bào)文的源IP地址和目的IP地址是相同的,都是目標(biāo)主機(jī)的IP地址。這樣目標(biāo)主機(jī)接在收到這個(gè)SYN 報(bào)文后,就會(huì)向該報(bào)文的源地址發(fā)送一個(gè)ACK報(bào)文,并建立一個(gè)TCP連接控制結(jié)構(gòu),而該報(bào)文的源地址就是自己。由于目的IP地址和源IP地址是相同的,都是目標(biāo)主機(jī)的IP地址,因此這個(gè)ACK 報(bào)文就發(fā)給了目標(biāo)主機(jī)本身。
UDP FLOODUDP泛洪(UDP flood)的實(shí)現(xiàn)原理與ICMP泛洪類(lèi)似,攻擊者通過(guò)向目標(biāo)主機(jī)發(fā)送大量的UDP報(bào)文,導(dǎo)致目標(biāo)主機(jī)忙于處理這些UDP報(bào)文,而無(wú)法處理正常的報(bào)文請(qǐng)求或響應(yīng)。
死亡之ping由于在早期的階段,路由器對(duì)包的最大尺寸都有限制,許多操作系統(tǒng)對(duì)TCP/IP棧的實(shí)現(xiàn)為ICMP包上都是規(guī)定64KB,并且在對(duì)包的標(biāo)題頭進(jìn)行讀取之后,要根據(jù)該標(biāo)題頭里包含的信息來(lái)為有效載荷生成緩沖區(qū),當(dāng)產(chǎn)生畸形的,聲稱(chēng)自己的尺寸超過(guò)ICMP上限的包也就是加載的尺寸超過(guò)64K上限時(shí),就會(huì)出現(xiàn)內(nèi)存分配錯(cuò)誤,導(dǎo)致TCP/IP堆棧崩潰,致使接受方當(dāng)機(jī)。4
相關(guān)區(qū)別廣播幀的產(chǎn)生:網(wǎng)絡(luò)中存在有廣播幀是不可避免的,比如開(kāi)啟了DHCP服務(wù)器,每次請(qǐng)求,都會(huì)有以”FF.FF.FF.FF.FF.FF”的幀格式出現(xiàn),它向所有端口轉(zhuǎn)發(fā),假設(shè)主機(jī)A與B在同一個(gè)網(wǎng)絡(luò)內(nèi),當(dāng)主機(jī)A要向主機(jī)B發(fā)送信息,那么需要知道主機(jī)B的IP地址和MAC地址,這里面我們假定A只知道B的IP地址,而不知道 B的MAC地址,那么這時(shí)A就需要向網(wǎng)絡(luò)中發(fā)送一個(gè)ARP請(qǐng)求,來(lái)獲取B的MAC地址,這個(gè)ARP請(qǐng)求實(shí)際上就是一個(gè)廣播包。
而泛洪和MAC列表相關(guān),在緩存中是存在的,有確定的MAC地址。只是在MAC表中找不到具體轉(zhuǎn)發(fā)的端口和MAC的配對(duì),才開(kāi)始泛洪處理,但是泛洪并不是廣播幀(FF.FF.FF.FF.FF.FF)。廣播是有一個(gè)具體的行為,它的對(duì)象是整個(gè)網(wǎng)絡(luò),在ARP時(shí)往往需要有特定的主機(jī)來(lái)響應(yīng),當(dāng)然太多的廣播對(duì)于網(wǎng)絡(luò)是有害的,容易造成廣播風(fēng)暴??偟膩?lái)說(shuō),主要有以下兩點(diǎn)區(qū)別:
泛洪操作廣播的是普通數(shù)據(jù)幀而不是廣播幀。
廣播是向同一子網(wǎng)內(nèi)所有的端口(包括自己的那個(gè)端口)發(fā)送消息;泛洪只是在所有的端口中不包括發(fā)送消息的(自己的)那個(gè)端口發(fā)送消息。
本詞條內(nèi)容貢獻(xiàn)者為:
李嘉騫 - 博士 - 同濟(jì)大學(xué)