對TCP/IP協(xié)議你一定非常熟悉,但是對ICMP協(xié)議你可能就一無所知了。ICMP協(xié)議是一個(gè)非常重要的協(xié)議,它對于網(wǎng)絡(luò)安全具有極其重要的意義。下面我們就來談?wù)処CMP協(xié)議。 什 么是ICMP協(xié)議 ICMP是“Internet Control Message Protocol”(Internet控制消息協(xié)議)的縮寫。它是TCP/IP協(xié)議族的一個(gè)子協(xié)議,用于在IP主機(jī)、路由器之間傳遞控制消息。控制消息是 指網(wǎng)絡(luò)通不通、主機(jī)是否可達(dá)、路由是否可用等網(wǎng)絡(luò)本身的消息。這些控制消息雖然并不傳輸用戶數(shù)據(jù),但是對于用戶數(shù)據(jù)的傳遞起著重要的作用。 我們在網(wǎng)絡(luò)中經(jīng)常會(huì)使用到ICMP協(xié)議,只不過我們覺察不到而已。比如我們經(jīng)常使用的用于檢查網(wǎng)絡(luò)通不通的Ping命令,這個(gè)“Ping”的過程實(shí)際上就是ICMP協(xié)議工作的過程。還有其他的網(wǎng)絡(luò)命令如跟蹤路由的Tracert命令也是基于ICMP協(xié)議的。
ICMP的重要性
ICMP協(xié)議對于網(wǎng)絡(luò)安全具有極其重要的意義。ICMP協(xié)議本身的特點(diǎn)決定了它非常容易被用 于攻擊網(wǎng)絡(luò)上的路由器和主機(jī)。例如,在1999年8月海信集團(tuán)“懸賞”50萬元人民幣測試防火墻的過程中,其防火墻遭受到的ICMP攻擊達(dá)334050次 之多,占整個(gè)攻擊總數(shù)的90%以上!可見,ICMP的重要性絕不可以忽視! 比如,可以利用操作系統(tǒng)規(guī)定的ICMP數(shù)據(jù)包最大尺寸不超過64KB這一規(guī)定,向主機(jī)發(fā)起 “Ping of Death”(死亡之Ping)攻擊。“Ping of Death” 攻擊的原理是:如果ICMP數(shù)據(jù)包的尺寸超過64KB上限時(shí),主機(jī)就會(huì)出現(xiàn)內(nèi)存分配錯(cuò)誤,導(dǎo)致TCP/IP堆棧崩潰,致使主機(jī)死機(jī)。 此外,向目標(biāo)主機(jī)長時(shí)間、連續(xù)、大量地發(fā)送ICMP數(shù)據(jù)包,也會(huì)最終使系統(tǒng)癱瘓。大量的ICMP數(shù)據(jù)包會(huì)形成“ICMP風(fēng)暴”,使得目標(biāo)主機(jī)耗費(fèi)大量的CPU資源處理,疲于奔命。
應(yīng)對ICMP攻擊
雖然ICMP協(xié)議給黑客以可乘之機(jī),但是ICMP攻擊也并非無藥可醫(yī)。只要在日常網(wǎng)絡(luò)管理中未雨綢繆,提前做好準(zhǔn)備,就可以有效地避免ICMP攻擊造成的損失。 對于“Ping of Death”攻擊,可以采取兩種方法進(jìn)行防范:第一種方法是在路由器上對ICMP數(shù)據(jù)包進(jìn)行帶寬限制,將ICMP占用的帶寬控制在一定的范圍內(nèi),這樣即使 有ICMP攻擊,它所占用的帶寬也是非常有限的,對整個(gè)網(wǎng)絡(luò)的影響非常少;第二種方法就是在主機(jī)上設(shè)置ICMP數(shù)據(jù)包的處理規(guī)則,最好是設(shè)定拒絕所有的 ICMP數(shù)據(jù)包。 設(shè)置ICMP數(shù)據(jù)包處理規(guī)則的方法也有兩種,一種是在操作系統(tǒng)上設(shè)置包過濾,另一種是在主機(jī)上安裝防火墻。具體設(shè)置如下: 1.在Windows 2000 Server中設(shè)置ICMP過濾 Windows 2000 Server提供了“路由與遠(yuǎn)程訪問”服務(wù),但是默認(rèn)情況下是沒有啟動(dòng)的,因此首先要啟動(dòng)它:點(diǎn)擊“管理工具”中的“路由與遠(yuǎn)程訪問”,啟動(dòng)設(shè)置向?qū)АT?其中選擇“手動(dòng)配置服務(wù)器”項(xiàng),點(diǎn)擊[下一步]按鈕。稍等片刻后,系統(tǒng)會(huì)提示“路由和遠(yuǎn)程訪問服務(wù)現(xiàn)在已被安裝。要開始服務(wù)嗎?”,點(diǎn)擊[是]按鈕啟動(dòng)服 務(wù)。 服務(wù)啟動(dòng)后,在計(jì)算機(jī)名稱的分支下會(huì)出現(xiàn)一個(gè)“IP路由選擇”,點(diǎn)擊它展開分支,再點(diǎn)擊“常規(guī)”,會(huì)在右邊出現(xiàn)服務(wù)器中的網(wǎng)絡(luò)連接(即網(wǎng)卡)。用鼠標(biāo)右鍵點(diǎn)擊你要配置的網(wǎng)絡(luò)連接,在彈出的菜單中點(diǎn)擊“屬性”,會(huì)彈出一個(gè)網(wǎng)絡(luò)連接屬性的窗口,如圖1所示。
圖1
圖1中有兩個(gè)按鈕,一個(gè)是“輸入篩選器”(指對此服務(wù)器接受的數(shù)據(jù)包進(jìn)行篩選),另一個(gè)是“輸出篩選器”(指對此服務(wù)器發(fā)送的數(shù)據(jù)包進(jìn)行篩選),這里應(yīng)該點(diǎn)擊[輸入篩選器] 按鈕,會(huì)彈出一個(gè)“添加篩選器”窗口,再點(diǎn)擊[添加]按鈕,表示要增加一個(gè)篩選條件。 在“協(xié)議”右邊的下拉列表中選擇“ICMP”,在隨后出現(xiàn)的“ICMP類型”和“ICMP編 碼”中均輸入“255”,代表所有的ICMP類型及其編碼。ICMP有許多不同的類型(Ping就是一種類型),每種類型也有許多不同的狀態(tài),用不同的 “編碼”來表示。因?yàn)槠漕愋秃途幋a很復(fù)雜,這里不再敘述。 點(diǎn)擊[確定]按鈕返回“輸入篩選器”窗口,此時(shí)會(huì)發(fā)現(xiàn)“篩選器”列表中多了一項(xiàng)內(nèi)容(如圖2所示)。點(diǎn)擊[確定]按鈕返回“本地連接”窗口,再點(diǎn)擊[確定]按鈕,此時(shí)篩選器就生效了,從其他計(jì)算機(jī)上Ping這臺(tái)主機(jī)就不會(huì)成功了。
圖2
用防火墻設(shè)置ICMP過濾 現(xiàn)在許多防火墻在默認(rèn)情況下都啟用了ICMP過濾的功能。如果沒有啟用,只要選中“防御ICMP攻擊”、“防止別人用ping命令探測”就可以了,如圖3所示。圖3 通過以上講解,你現(xiàn)在知道ICMP的重要性了吧?趕緊給你的服務(wù)器設(shè)置ICMP過濾吧。