攻擊防范-網(wǎng)絡(luò)運(yùn)維
2020-05-01 17:15 作者:艾銻無限 瀏覽量:
大家好,我是一枚從事IT外包的網(wǎng)絡(luò)運(yùn)維工程師,在當(dāng)今網(wǎng)絡(luò)中,存在著大量攻擊,那么攻擊防范有多么的重要可想而知。
定義
攻擊防范是一種重要的網(wǎng)絡(luò)安全特性。它通過分析上送CPU處理的報(bào)文的內(nèi)容和行為,判斷報(bào)文是否具有攻擊特性,并配置對具有攻擊特性的報(bào)文執(zhí)行一定的防范措施。
攻擊防范主要分為畸形報(bào)文攻擊防范、分片報(bào)文攻擊防范和泛洪攻擊防范。
目的
目前,網(wǎng)絡(luò)的攻擊日益增多,而通信協(xié)議本身的缺陷以及網(wǎng)絡(luò)部署問題,導(dǎo)致網(wǎng)絡(luò)攻擊造成的影響越來越大。特別是對網(wǎng)絡(luò)設(shè)備的攻擊,將會導(dǎo)致設(shè)備或者網(wǎng)絡(luò)癱瘓等嚴(yán)重后果。
攻擊防范針對上送CPU的不同類型攻擊報(bào)文,采用丟棄或者限速的手段,以保障設(shè)備不受攻擊的影響,使業(yè)務(wù)正常運(yùn)行。
攻擊防范原理描述
1、畸形報(bào)文攻擊防范
畸形報(bào)文攻擊是通過向目標(biāo)設(shè)備發(fā)送有缺陷的IP報(bào)文,使得目標(biāo)設(shè)備在處理這樣的IP報(bào)文時(shí)出錯(cuò)和崩潰,給目標(biāo)設(shè)備帶來損失。畸形報(bào)文攻擊防范是指設(shè)備實(shí)時(shí)檢測出畸形報(bào)文并予以丟棄,實(shí)現(xiàn)對本設(shè)備的保護(hù)。
畸形報(bào)文攻擊主要分為以下幾類:
沒有
如果IP報(bào)文只有20字節(jié)的IP報(bào)文頭,沒有數(shù)據(jù)部分,就認(rèn)為是沒有IP載荷的報(bào)文。攻擊者經(jīng)常構(gòu)造只有IP頭部,沒有攜帶任何高層數(shù)據(jù)的IP報(bào)文,目標(biāo)設(shè)備在處理這些沒有IP載荷的報(bào)文時(shí)會出錯(cuò)和崩潰,給設(shè)備帶來損失。
啟用畸形報(bào)文攻擊防范后,設(shè)備在接收到?jīng)]有載荷的IP報(bào)文時(shí),直接將其丟棄。
IGMP空報(bào)文
IGMP報(bào)文是20字節(jié)的IP頭加上8字節(jié)的IGMP報(bào)文體,總長度小于28字節(jié)的IGMP報(bào)文稱為IGMP空報(bào)文。設(shè)備在處理IGMP空報(bào)文時(shí)會出錯(cuò)和崩潰,給目標(biāo)設(shè)備帶來損失。
啟用畸形報(bào)文攻擊防范后,設(shè)備在接收到IGMP空報(bào)文時(shí),直接將其丟棄。
LAND攻擊
LAND攻擊是攻擊者利用TCP連接三次握手機(jī)制中的缺陷,向目標(biāo)主機(jī)發(fā)送一個(gè)源地址和目的地址均為目標(biāo)主機(jī)、源端口和目的端口相同的SYN報(bào)文,目標(biāo)主機(jī)接收到該報(bào)文后,將創(chuàng)建一個(gè)源地址和目的地址均為自己的TCP空連接,直至連接超時(shí)。在這種攻擊方式下,目標(biāo)主機(jī)將會創(chuàng)建大量無用的TCP空連接,耗費(fèi)大量資源,直至設(shè)備癱瘓。
啟用畸形報(bào)文攻擊防范后,設(shè)備采用檢測TCP SYN報(bào)文的源地址和目的地址的方法來避免LAND攻擊。如果TCP SYN報(bào)文中的源地址和目的地址一致,則認(rèn)為是畸形報(bào)文攻擊,丟棄該報(bào)文。
Smurf攻擊
Smurf攻擊是指攻擊者向目標(biāo)網(wǎng)絡(luò)發(fā)送源地址為目標(biāo)主機(jī)地址、目的地址為目標(biāo)網(wǎng)絡(luò)廣播地址的ICMP請求報(bào)文,目標(biāo)網(wǎng)絡(luò)中的所有主機(jī)接收到該報(bào)文后,都會向目標(biāo)主機(jī)發(fā)送ICMP響應(yīng)報(bào)文,導(dǎo)致目標(biāo)主機(jī)收到過多報(bào)文而消耗大量資源,甚至導(dǎo)致設(shè)備癱瘓或網(wǎng)絡(luò)阻塞。
啟用畸形報(bào)文攻擊防范后,設(shè)備通過檢測ICMP請求報(bào)文的目標(biāo)地址是否是廣播地址或子網(wǎng)廣播地址來避免Smurf攻擊。如果檢測到此類報(bào)文,直接將其丟棄。
TCP標(biāo)志位非法攻擊
TCP報(bào)文包含6個(gè)標(biāo)志位:URG、ACK、PSH、RST、SYN、FIN,不同的系統(tǒng)對這些標(biāo)志位組合的應(yīng)答是不同的:
· 6個(gè)標(biāo)志位全部為1,就是圣誕樹攻擊。設(shè)備在受到圣誕樹攻擊時(shí),會造成系統(tǒng)崩潰。
· SYN和FIN同時(shí)為1,如果端口是關(guān)閉的,會使接收方應(yīng)答一個(gè)RST | ACK消息;如果端口是打開的,會使接收方應(yīng)答一個(gè)SYN | ACK消息,這可用于主機(jī)探測(主機(jī)在線或者下線)和端口探測(端口打開或者關(guān)閉)。
· 6個(gè)標(biāo)志位全部為0,如果端口是關(guān)閉的,會使接收方應(yīng)答一個(gè)RST | ACK消息,這可以用于探測主機(jī);如果端口是開放的,Linux和UNIX系統(tǒng)不會應(yīng)答,而Windows系統(tǒng)將回答RST | ACK消息,這可以探測操作系統(tǒng)類型(Windows系統(tǒng),
Linux和UNIX系統(tǒng)等)。
啟用畸形報(bào)文攻擊防范后,設(shè)備采用檢查TCP的各個(gè)標(biāo)志位避免TCP標(biāo)志位非法攻擊,如果符合下面條件之一,則將該TCP報(bào)文丟棄:
· 6個(gè)標(biāo)志位全部為1;
· SYN和FIN位同時(shí)為1;
· 6個(gè)標(biāo)志位全部為0。
2、分片報(bào)文攻擊防范
分片報(bào)文攻擊是通過向目標(biāo)設(shè)備發(fā)送分片出錯(cuò)的報(bào)文,使得目標(biāo)設(shè)備在處理分片錯(cuò)誤的報(bào)文時(shí)崩潰、重啟或消耗大量的CPU資源,給目標(biāo)設(shè)備帶來損失。分片報(bào)文攻擊防范是指設(shè)備實(shí)時(shí)檢測出分片報(bào)文并予以丟棄或者限速處理,實(shí)現(xiàn)對本設(shè)備的保護(hù)。
分片報(bào)文攻擊主要分為以下幾類:
分片數(shù)量巨大攻擊
IP報(bào)文中的偏移量是以8字節(jié)為單位的。正常情況下,IP報(bào)文的頭部有20個(gè)字節(jié),IP報(bào)文的最大載荷為65515。對這些數(shù)據(jù)進(jìn)行分片,分片個(gè)數(shù)最大可以達(dá)到8189片,對于超過8189的分片報(bào)文,設(shè)備在重組這些分片報(bào)文時(shí)會消耗大量的CPU資源。
啟用分片報(bào)文攻擊防范后,針對分片數(shù)量巨大攻擊,如果同一報(bào)文的分片數(shù)目超過8189個(gè),則設(shè)備認(rèn)為是惡意報(bào)文,丟棄該報(bào)文的所有分片。
巨大Offset攻擊
攻擊者向目標(biāo)設(shè)備發(fā)送一個(gè)Offset值超大的分片報(bào)文,從而導(dǎo)致目標(biāo)設(shè)備分配巨大的內(nèi)存空間來存放所有分片報(bào)文,消耗大量資源。
Offset字段的最大取值為65528,但是在正常情況下,Offset值不會超過8190(如果offset=8189*8,IP頭部長度為20,最后一片報(bào)文最多只有3個(gè)字節(jié)IP載荷,所以正常Offset的最大值是8189),所以如果Offset值超過8190,則這種報(bào)文即為惡意攻擊報(bào)文,設(shè)備直接丟棄。
啟用分片報(bào)文攻擊防范后,設(shè)備在收到分片報(bào)文時(shí)判斷Offset*8是否大于65528,如果大于就當(dāng)作惡意分片報(bào)文直接丟棄。
重復(fù)分片攻擊
重復(fù)分片攻擊就是把同樣的分片報(bào)文多次向目標(biāo)主機(jī)發(fā)送,存在兩種情況:
· 多次發(fā)送的分片完全相同,這樣會造成目標(biāo)主機(jī)的CPU和內(nèi)存使用不正常;
· 多次發(fā)送的分片報(bào)文不相同,但Offset相同,目標(biāo)主機(jī)就會處于無法處理的狀態(tài):哪一個(gè)分片應(yīng)該保留,哪一個(gè)分片應(yīng)該丟棄,還是都丟棄。這樣就會造成目標(biāo)主機(jī)的CPU和內(nèi)存使用不正常。
啟用分片報(bào)文攻擊防范后,對于重復(fù)分片類報(bào)文的攻擊,設(shè)備實(shí)現(xiàn)對分片報(bào)文進(jìn)行CAR(Committed Access Rate)限速,保留首片,丟棄其余所有相同的重復(fù)分片,保證不對CPU造成攻擊。
Tear Drop攻擊
Tear Drop攻擊是最著名的IP分片攻擊,原理是IP分片錯(cuò)誤,第二片包含在第一片之中。即數(shù)據(jù)包中第二片IP包的偏移量小于第一片結(jié)束的位移,而且算上第二片IP包的Data,也未超過第一片的尾部。
如圖1所示:
· 第一個(gè)分片IP載荷為36字節(jié),總長度為56字節(jié),protocol為UDP,UDP檢驗(yàn)和為0(沒有檢驗(yàn));
· 第二片IP載荷為4字節(jié),總長度為24字節(jié),protocol為UDP,Offset=24(錯(cuò)誤,正確應(yīng)該為36)。
圖 Tear Drop攻擊分片示意圖
Tear Drop攻擊會導(dǎo)致系統(tǒng)崩潰或重啟。啟用分片報(bào)文攻擊防范后,對于Tear Drop攻擊,設(shè)備會直接丟棄所有分片報(bào)文。
Syndrop攻擊
Syndrop攻擊原理和Tear Drop原理一致,區(qū)別在于Syndrop攻擊使用了TCP協(xié)議,F(xiàn)lag為SYN,而且?guī)в休d荷。
如圖2所示:
· 第一片IP載荷為28字節(jié),IP頭部20字節(jié);
· 第二片IP載荷為4字節(jié),IP頭部20字節(jié),Offset=24(錯(cuò)誤,正確應(yīng)該是28)。
圖2 Syndrop攻擊分片示意圖
Syndrop攻擊會導(dǎo)致系統(tǒng)崩潰或重啟。啟用分片報(bào)文攻擊防范后,對于Syndrop攻擊,設(shè)備會直接丟棄所有分片報(bào)文。
NewTear攻擊
NewTear攻擊是分片錯(cuò)誤的攻擊。如圖3所示,protocol使用UDP。
· 第一片IP載荷28字節(jié)(包含UDP頭部,UDP檢驗(yàn)和為0);
· 第二片IP載荷4字節(jié),offset=24(錯(cuò)誤,正確應(yīng)該是28)。
圖3 NewTear攻擊分片示意圖
NewTear攻擊會導(dǎo)致系統(tǒng)崩潰或重啟。啟用分片報(bào)文攻擊防范后,對于NewTear攻擊,設(shè)備會直接丟棄所有分片報(bào)文。
Bonk攻擊
Bonk攻擊是分片錯(cuò)誤的攻擊。如圖4所示,protocol使用UDP。
· 第一片IP載荷為36字節(jié)(包含UDP頭部,UDP檢驗(yàn)和為0);
· 第二片IP載荷為4字節(jié),offset=32(錯(cuò)誤,正確應(yīng)該是36)。
圖9-4 Bonk攻擊分片示意圖
Bonk攻擊會導(dǎo)致系統(tǒng)崩潰或重啟。啟用分片報(bào)文攻擊防范后,對于Bonk攻擊,設(shè)備會直接丟棄所有分片報(bào)文。
Nesta攻擊
Nesta攻擊是分片錯(cuò)誤的攻擊。如圖5所示:
· 第一片IP載荷為18,protocol為UDP,檢驗(yàn)和為0;
· 第二片offset為48,IP載荷為116字節(jié);
· 第三片offset為0,more frag為1,也就是還有分片,40字節(jié)的IP option,都是EOL,IP載荷為224字節(jié)。
圖5 Nesta攻擊分片示意圖
Nesta攻擊會導(dǎo)致系統(tǒng)崩潰或重啟。啟用分片報(bào)文攻擊防范后,對于Nesta攻擊,設(shè)備會直接丟棄所有分片報(bào)文。
Rose攻擊
IP protocol可以是UDP或TCP,可以選擇。
如圖6所示:
如果IP protocol是TCP:
· 第一片IP載荷為48字節(jié)(包含TCP頭部),IP頭部20字節(jié);
· 第二片IP報(bào)文的載荷為32字節(jié),但是offset=65408,more frag=0,即最后一片。
如果IP protocol是UDP:
· 第一片載荷長度40字節(jié)(包含UDP頭部,UDP校驗(yàn)和為0),IP頭部20字節(jié);
· 第二片IP報(bào)文的載荷為32字節(jié),但是offset=65408,more frag=0,即最后一片。
圖6 Rose攻擊分片示意圖
Rose攻擊會導(dǎo)致系統(tǒng)崩潰或重啟。啟用分片報(bào)文攻擊防范后,對于Rose攻擊,設(shè)備會直接丟棄所有分片報(bào)文。
Fawx攻擊
Fawx攻擊是一種分片錯(cuò)誤的IGMP報(bào)文。如圖7,F(xiàn)awx攻擊的特征是:發(fā)送IGMP報(bào)文分片,一共兩片,第一片9個(gè)字節(jié),第二個(gè)分片offset=8,載荷長度為16字節(jié),沒有結(jié)束分片。
圖7 Fawx攻擊分片示意圖
Fawx攻擊會導(dǎo)致系統(tǒng)崩潰或重啟。啟用分片報(bào)文攻擊防范后,對于Fawx攻擊,設(shè)備會直接丟棄所有分片報(bào)文。
Ping of Death攻擊
Ping of Death攻擊原理是攻擊者發(fā)送一些尺寸較大(數(shù)據(jù)部分長度超過65507字節(jié))的ICMP報(bào)文對設(shè)備進(jìn)行攻擊。設(shè)備在收到這樣一個(gè)尺寸較大的ICMP報(bào)文后,如果處理不當(dāng),會造成協(xié)議棧崩潰。
啟用分片報(bào)文攻擊防范后,設(shè)備在收到這種攻擊報(bào)文后,直接丟棄該報(bào)文。
Jolt攻擊
Jolt攻擊是攻擊者發(fā)送總長度大于65535字節(jié)的報(bào)文對設(shè)備進(jìn)行攻擊。Jolt攻擊報(bào)文一共173個(gè)分片,每個(gè)分片報(bào)文的IP載荷為380字節(jié),因此總長度為:173*380+20=65760,遠(yuǎn)遠(yuǎn)超過65535。設(shè)備在收到這樣的報(bào)文時(shí),如果處理不當(dāng),會造成設(shè)備崩潰、死機(jī)或重啟。
啟用分片報(bào)文攻擊防范后,設(shè)備在收到Jolt攻擊報(bào)文后,直接丟棄該報(bào)文。
3、泛洪攻擊防范
泛洪攻擊是指攻擊者在短時(shí)間內(nèi)向目標(biāo)設(shè)備發(fā)送大量的虛假報(bào)文,導(dǎo)致目標(biāo)設(shè)備忙于應(yīng)付無用報(bào)文,而無法為用戶提供正常服務(wù)。
泛洪攻擊防范是指設(shè)備實(shí)時(shí)檢測出泛洪報(bào)文并予以丟棄或者限速處理,實(shí)現(xiàn)對本設(shè)備的保護(hù)。
泛洪攻擊主要分為TCP SYN泛洪攻擊、UDP泛洪攻擊和ICMP泛洪攻擊。
TCP SYN泛洪攻擊
TCP SYN攻擊利用了TCP三次握手的漏洞。在TCP的3次握手期間,當(dāng)接收端收到來自發(fā)送端的初始SYN報(bào)文時(shí),向發(fā)送端返回一個(gè)SYN+ACK報(bào)文。接收端在等待發(fā)送端的最終ACK報(bào)文時(shí),該連接一直處于半連接狀態(tài)。如果接收端最終沒有收到ACK報(bào)文包,則重新發(fā)送一個(gè)SYN+ACK到發(fā)送端。如果經(jīng)過多次重試,發(fā)送端始終沒有返回ACK報(bào)文,則接收端關(guān)閉會話并從內(nèi)存中刷新會話,從傳輸?shù)谝粋€(gè)SYN+ACK到會話關(guān)閉大約需要30秒。
在這段時(shí)間內(nèi),攻擊者可能將數(shù)十萬個(gè)SYN報(bào)文發(fā)送到開放的端口,并且不回應(yīng)接收端的SYN+ACK報(bào)文。接收端內(nèi)存很快就會超過負(fù)荷,且無法再接受任何新的連接,并將現(xiàn)有的連接斷開。
設(shè)備對TCP SYN攻擊處理的方法是在使能了TCP SYN泛洪攻擊防范后對TCP SYN報(bào)文進(jìn)行速率限制,保證受到攻擊時(shí)設(shè)備資源不被耗盡。
UDP泛洪攻擊
UDP泛洪攻擊是指攻擊者在短時(shí)間內(nèi)向目標(biāo)設(shè)備發(fā)送大量的UDP報(bào)文,導(dǎo)致目標(biāo)設(shè)備負(fù)擔(dān)過重而不能處理正常的業(yè)務(wù)。UDP泛洪攻擊分為以下兩類:
· Fraggle攻擊
Fraggle攻擊的原理是攻擊者發(fā)送源地址為目標(biāo)主機(jī)地址,目的地址為廣播地址,目的端口號為7的UDP報(bào)文。如果該廣播網(wǎng)絡(luò)中有很多主機(jī)都起用了UDP響應(yīng)請求服務(wù),目的主機(jī)將收到很多回復(fù)報(bào)文,造成系統(tǒng)繁忙,達(dá)到攻擊效果。
使能泛洪攻擊防范功能后,設(shè)備默認(rèn)UDP端口號為7的報(bào)文是攻擊報(bào)文,直接將其丟棄。
· UDP診斷端口攻擊
攻擊者對UDP診斷端口(7-echo,13-daytime,19-Chargen等UDP端口)發(fā)送報(bào)文,如果同時(shí)發(fā)送的數(shù)據(jù)包數(shù)量很大,造成泛洪,可能影響網(wǎng)絡(luò)設(shè)備的正常工作。
使能泛洪攻擊防范功能后,設(shè)備將UDP端口為7、13和19的報(bào)文認(rèn)為是攻擊報(bào)文,直接丟棄。
ICMP泛洪攻擊
通常情況下,網(wǎng)絡(luò)管理員會用Ping程序?qū)W(wǎng)絡(luò)進(jìn)行監(jiān)控和故障排除,大概過程如下:
1. 源設(shè)備向接收設(shè)備發(fā)出ICMP響應(yīng)請求報(bào)文;
2. 接收設(shè)備接收到ICMP響應(yīng)請求報(bào)文后,會向源設(shè)備回應(yīng)一個(gè)ICMP應(yīng)答報(bào)文。
如果攻擊者向目標(biāo)設(shè)備發(fā)送大量的ICMP響應(yīng)請求報(bào)文,則目標(biāo)設(shè)備會忙于處理這些請求,而無法繼續(xù)處理其他的數(shù)據(jù)報(bào)文,造成對正常業(yè)務(wù)的沖擊。
設(shè)備針對ICMP泛洪攻擊進(jìn)行CAR(Committed Access Rate)限速,保證CPU不被攻擊,保證網(wǎng)絡(luò)的正常運(yùn)行。
艾銻無限科技專業(yè):IT外包、
企業(yè)外包、
北京IT外包、桌面運(yùn)維、
弱電工程、網(wǎng)站開發(fā)、wifi覆蓋方案,
網(wǎng)絡(luò)外包,網(wǎng)絡(luò)管理服務(wù),
網(wǎng)管外包,綜合布線,服務(wù)器運(yùn)維服務(wù),
中小企業(yè)it外包服務(wù),服務(wù)器維保公司,硬件運(yùn)維,網(wǎng)站運(yùn)維服務(wù)
以上文章由北京艾銻無限科技發(fā)展有限公司整理