版權(quán)歸原作者所有,如有侵權(quán),請聯(lián)系我們

[科普中國]-泛洪

科學(xué)百科
原創(chuàng)
科學(xué)百科為用戶提供權(quán)威科普內(nèi)容,打造知識科普陣地
收藏

泛洪(Flooding)是交換機和網(wǎng)橋使用的一種數(shù)據(jù)流傳遞技術(shù),將某個接口收到的數(shù)據(jù)流從除該接口之外的所有接口發(fā)送出去。

泛洪的過程交換機根據(jù)收到數(shù)據(jù)幀中的源MAC地址建立該地址同交換機端口的映射,并將其寫 入MAC地址表中。交換機將數(shù)據(jù)幀中的目的MAC地址同已建立的MAC地址表進行比較,以決定由哪個端口進行轉(zhuǎn)發(fā)。如數(shù)據(jù)幀中的目的MAC地址不在MAC地址表中,則向所有端口轉(zhuǎn)發(fā)。1

泛洪的分類SYN泛洪攻擊SYN攻擊利用的是TCP的三次握手機制,攻擊端利用偽造的IP地址向被攻擊端發(fā)出請求,而被攻擊端發(fā)出的響應(yīng)2報文將永遠發(fā)送不到目的地,那么被攻擊端在等待關(guān)閉這個連接的過程中消耗了資源,如果有成千上萬的這種連接,主機資源將被耗盡,從而達到攻擊的目的。我們可以利用路由器的TCP攔截功能,使網(wǎng)絡(luò)上的主機受到保護(以Cisco路由器為例)。3

DHCP報文泛洪攻擊DHCP報文泛洪攻擊是指:惡意用戶利用工具偽造大量DHCP報文發(fā)送到服務(wù)器,一方面惡意耗盡了IP資源,使得合法用戶無法獲得IP資源;另一方面,如果交換機上開啟了DHCP Snooping功能,會將接收到的DHCP報文上送到CPU。因此大量的DHCP報文攻擊設(shè)備會使DHCP服務(wù)器高負荷運行,甚至?xí)?dǎo)致設(shè)備癱瘓。

ARP報文泛洪攻擊ARP報文泛洪類似DHCP泛洪,同樣是惡意用戶發(fā)出大量的ARP報文,造成L3設(shè)備的ARP表項溢出,影響正常用戶的轉(zhuǎn)發(fā)。

泛洪攻擊方法ICMP泛洪ICMP泛洪(ICMP flood)是利用ICMP報文 進行攻擊的一種方法。如果攻擊者向目標(biāo)主機發(fā) 送大量的ICMP ECHO報文,將產(chǎn)生ICMP泛洪, 目標(biāo)主機會將大量的時間和資源用于處理ICMP ECHO報文,而無法處理正常的請求或響應(yīng),從而實現(xiàn)對目標(biāo)主機的攻擊。

ICMP反射泛洪Smurf IP利用廣播地址發(fā)送ICMP包,一旦廣播出去,就會被廣播域內(nèi)的所有主機回應(yīng),當(dāng)然這些包都回應(yīng)給了偽裝的IP地址(指向被攻擊主機),偽裝IP地址可以是互聯(lián)網(wǎng)上的任何地址,不一定在本地;假如駭客不停地發(fā)送此種類型的包,就會造成DoS攻擊。

TCP SYN 泛洪對于TCP協(xié)議,當(dāng)客戶端向服務(wù)器發(fā)起連接請求并初始化時,服務(wù)器一端的協(xié)議棧會留一塊緩沖區(qū)來處理“握手”過程中的信息交換。請求建立連接時發(fā)送的數(shù)據(jù)包的包頭SYN位就表明了數(shù)據(jù)包的順序,攻擊者可以利用在短時間內(nèi)快速發(fā)起大量連接請求,以致服務(wù)器來不及響應(yīng)。同時攻擊者還可以偽造源IP地址。也就是說攻擊者發(fā)起大量連接請求,然后掛起在半連接狀態(tài),以此來占用大量服務(wù)器資源直到拒絕服務(wù)。雖然緩沖區(qū)中的數(shù)據(jù)在一段時間內(nèi)(通常是三分鐘)都沒有回應(yīng)的話,就會被丟棄,但在這段時間內(nèi),大量半連接足以耗盡服務(wù)器資源。

TCP LANDLAND攻擊利用了TCP連接建立的三次握手過程,通過向一個目標(biāo)主機發(fā)送一個用于建立請求連接的TCP SYN報文而實現(xiàn)對目標(biāo)主機的攻擊。與正常的TCP SYN報文不同的是:LAND攻擊報文的源IP地址和目的IP地址是相同的,都是目標(biāo)主機的IP地址。這樣目標(biāo)主機接在收到這個SYN 報文后,就會向該報文的源地址發(fā)送一個ACK報文,并建立一個TCP連接控制結(jié)構(gòu),而該報文的源地址就是自己。由于目的IP地址和源IP地址是相同的,都是目標(biāo)主機的IP地址,因此這個ACK 報文就發(fā)給了目標(biāo)主機本身。

UDP FLOODUDP泛洪(UDP flood)的實現(xiàn)原理與ICMP泛洪類似,攻擊者通過向目標(biāo)主機發(fā)送大量的UDP報文,導(dǎo)致目標(biāo)主機忙于處理這些UDP報文,而無法處理正常的報文請求或響應(yīng)。

死亡之ping由于在早期的階段,路由器對包的最大尺寸都有限制,許多操作系統(tǒng)對TCP/IP棧的實現(xiàn)為ICMP包上都是規(guī)定64KB,并且在對包的標(biāo)題頭進行讀取之后,要根據(jù)該標(biāo)題頭里包含的信息來為有效載荷生成緩沖區(qū),當(dāng)產(chǎn)生畸形的,聲稱自己的尺寸超過ICMP上限的包也就是加載的尺寸超過64K上限時,就會出現(xiàn)內(nèi)存分配錯誤,導(dǎo)致TCP/IP堆棧崩潰,致使接受方當(dāng)機。4

相關(guān)區(qū)別廣播幀的產(chǎn)生:網(wǎng)絡(luò)中存在有廣播幀是不可避免的,比如開啟了DHCP服務(wù)器,每次請求,都會有以”FF.FF.FF.FF.FF.FF”的幀格式出現(xiàn),它向所有端口轉(zhuǎn)發(fā),假設(shè)主機A與B在同一個網(wǎng)絡(luò)內(nèi),當(dāng)主機A要向主機B發(fā)送信息,那么需要知道主機B的IP地址和MAC地址,這里面我們假定A只知道B的IP地址,而不知道 B的MAC地址,那么這時A就需要向網(wǎng)絡(luò)中發(fā)送一個ARP請求,來獲取B的MAC地址,這個ARP請求實際上就是一個廣播包。

而泛洪和MAC列表相關(guān),在緩存中是存在的,有確定的MAC地址。只是在MAC表中找不到具體轉(zhuǎn)發(fā)的端口和MAC的配對,才開始泛洪處理,但是泛洪并不是廣播幀(FF.FF.FF.FF.FF.FF)。廣播是有一個具體的行為,它的對象是整個網(wǎng)絡(luò),在ARP時往往需要有特定的主機來響應(yīng),當(dāng)然太多的廣播對于網(wǎng)絡(luò)是有害的,容易造成廣播風(fēng)暴??偟膩碚f,主要有以下兩點區(qū)別:

泛洪操作廣播的是普通數(shù)據(jù)幀而不是廣播幀。

廣播是向同一子網(wǎng)內(nèi)所有的端口(包括自己的那個端口)發(fā)送消息;泛洪只是在所有的端口中不包括發(fā)送消息的(自己的)那個端口發(fā)送消息。

本詞條內(nèi)容貢獻者為:

李嘉騫 - 博士 - 同濟大學(xué)