摘 要:ICMP是TCP/IP協(xié)議族的一個(gè)子集,用于在IP主機(jī)、路由器之間傳遞控制消息,其中重定向是該協(xié)議的重要功能,而該功能常被黑客利用,并用于攻擊主機(jī);本文從ICMP重定報(bào)文結(jié)構(gòu)及重定向工作方式展開(kāi),簡(jiǎn)述了重定向攻擊及欺騙攻擊的原理,最后闡明了防范重定向及欺騙攻擊三種方法。
關(guān)鍵詞:ICMP;重定向攻擊;欺騙攻擊
0 引言
ICMP是(Internet Control Message Protocol)Internet控制報(bào)文協(xié)議。它是TCP/IP協(xié)議族的一個(gè)子集,用于在IP主機(jī)、路由器之間傳遞控制消息,主要控制路由是否可用、主機(jī)是否可達(dá)和網(wǎng)絡(luò)通不通等網(wǎng)絡(luò)本身的重要消息。網(wǎng)絡(luò)或者黑客攻擊者常應(yīng)用ICMP重定向功能對(duì)主機(jī)進(jìn)行攻擊。
1 ICMP重定向報(bào)文解析
ICMP重定向報(bào)文是ICMP控制報(bào)文中的一種,在一般情況下,當(dāng)路由器檢測(cè)到某臺(tái)主機(jī)使用沒(méi)有經(jīng)過(guò)優(yōu)化路由的時(shí)候,它會(huì)向該主機(jī)發(fā)送一個(gè)ICMP重定向報(bào)文,請(qǐng)求主機(jī)改變路由。路由器也會(huì)把初始數(shù)據(jù)向其他的目的主機(jī)轉(zhuǎn)發(fā),ICMP重定向報(bào)文格式如下圖所示:
lt;E:\123456\中小企業(yè)管理與科技·上旬刊201510\1-297\70-1.jpggt;
圖1 "ICMP重定向報(bào)文結(jié)構(gòu)
ICMP有四種不同類(lèi)型的重定向報(bào)文,如下表1所示。
表1 "ICMP重定向報(bào)文類(lèi)型
[代碼\amp;ICMP報(bào)文描述\amp;0
1
2
3\amp;網(wǎng)絡(luò)重定向
主機(jī)重定向
服務(wù)類(lèi)型和網(wǎng)絡(luò)重定向
服務(wù)類(lèi)型和主機(jī)重定向\amp;]
ICMP重定向報(bào)文的目的主機(jī)需要查看三種IP地址類(lèi)型:
①發(fā)送重定向報(bào)文的路由IP地址(重定向信息的IP數(shù)據(jù)報(bào)中的源地址);
②實(shí)施重定向的IP地址(ICMP重定向報(bào)文位于IP數(shù)據(jù)報(bào)首部);
③采用的路由IP地址(在ICMP報(bào)文中的4~7字節(jié))。
2 ICMP重定向工作方式
如圖2所示,假設(shè)有主機(jī)A和主機(jī)B、路由器A和路由器B,主機(jī)A的網(wǎng)關(guān)地址指向路由器A的F0/0接口,路由器A,B的F0/0端口在同一網(wǎng)段內(nèi),路由器A,B通過(guò)F0/1端口接入Internet,Internet有一臺(tái)主機(jī)B,其IP地址為10.1.1.1,正常情況下,路由器A,B到10.1.1.0/8這個(gè)網(wǎng)段都有兩條路由,分別是F0/1端口直接出去和F0/0端口通過(guò)另一臺(tái)路由出去,但經(jīng)過(guò)F0/1端口的這條路由會(huì)進(jìn)入到路由表中,主機(jī)B被主機(jī)A訪問(wèn)的時(shí)候,數(shù)據(jù)包就會(huì)被發(fā)到路由器A的F0/0端口,再經(jīng)過(guò)F0/1端口轉(zhuǎn)發(fā)出去。
當(dāng)路由器A的F0/1端口處于Down狀態(tài)時(shí),那么路由器A上另一條路由就會(huì)進(jìn)入到路由表中,到達(dá)10.1.1.0/8這個(gè)網(wǎng)絡(luò)的下一跳便是路由器A的F0/1端口。這樣,如果主機(jī)A和主機(jī)B通信,主機(jī)A就會(huì)把IP數(shù)據(jù)報(bào)發(fā)送到路由器A的F0/0端口上,路由器A查找路由表得知下一跳是路由器B的F0/0端口,這時(shí)候路由器A將會(huì)把報(bào)文從F0/0端口轉(zhuǎn)發(fā)到路由器B的F0/0端口,同時(shí)會(huì)向主機(jī)A發(fā)送一條ICMP重定向報(bào)文,用主機(jī)A在路由表上加上一條路由,目標(biāo)地址是10.1.1.1/8,下一跳是路由器B的F0/0端口,這樣主機(jī)A到主機(jī)B以后的IP數(shù)據(jù)報(bào)就會(huì)被直接發(fā)送到路由器B的F0/0端口。
3 ICMP重定向攻擊
ICMP重定向攻擊和ARP攻擊手段非常相似,只是使用的協(xié)議不同而以,ICMP重定向攻擊使用的是正常的ICMP協(xié)議發(fā)起攻擊。
黑客(Hacker)想要通過(guò)常規(guī)手段遠(yuǎn)程控制目標(biāo)主機(jī)是件困難的事情,但如果ICMP重定向功能是開(kāi)啟的時(shí)候,黑客假冒網(wǎng)關(guān)(Gateway)就變得容易多了,黑客假冒網(wǎng)關(guān),然后對(duì)目標(biāo)主機(jī)(Host)發(fā)送ICMP重定向報(bào)文,報(bào)文里填寫(xiě)虛假的、不可達(dá)的或者網(wǎng)絡(luò)不通的IP地址,這樣,目標(biāo)主機(jī)收到ICMP重定向報(bào)文后,就會(huì)對(duì)路由表進(jìn)行添加、修改,將黑客指定的目標(biāo)與目標(biāo)之間通信的網(wǎng)關(guān)IP地址設(shè)置成虛假的IP地址,從而利用ICMP重定向功能實(shí)現(xiàn)重定向攻擊,以便控制遠(yuǎn)程主機(jī)。
4 "ICMP重定向欺騙攻擊
和ARP欺騙攻擊類(lèi)似,ICMP重定向欺騙攻擊也是利用ICMP協(xié)議發(fā)起欺騙攻擊。
如果ICMP重定向功能是開(kāi)啟的,黑客在對(duì)目標(biāo)主機(jī)發(fā)送ICMP重定向報(bào)文時(shí),將在報(bào)文里的路由IP地址填寫(xiě)成自己的IP地址,目標(biāo)主一旦收到ICMP重定向報(bào)文后,就會(huì)添加或者修改自己的路由表為黑客填寫(xiě)的IP地址,以后目標(biāo)主機(jī)所發(fā)送的所有報(bào)文將發(fā)送到黑客所填寫(xiě)的IP地址主機(jī),從而利用ICMP重定向功能,實(shí)現(xiàn)欺騙攻擊,合法網(wǎng)關(guān)將無(wú)法收到目標(biāo)主機(jī)發(fā)送的報(bào)文。
5 "ICMP重定向攻擊防范方法
5.1 配置硬件防火墻以防范攻擊
為了有效的防范ICMP重定向攻擊,可加裝合適的防火墻,并配置合理的安全策略。除了出站的ICMP Source Quench報(bào)文、ICMP Echo Request報(bào)文、進(jìn)站的ICMP Destination Unreachable報(bào)文以及進(jìn)站的TTL Exceeded報(bào)文之外,所有其他的ICMP消息類(lèi)型都應(yīng)該被阻止,這樣,啟用了ICMP過(guò)濾的功能。如果沒(méi)有啟用,應(yīng)該選中“防御ICMP攻擊”、“防止別人用ping命令探測(cè)”等功能。
5.2 配置操作系統(tǒng)自帶的防火墻以防范攻擊
雖然硬件防火墻可以對(duì)PING等攻擊可以進(jìn)行很好的過(guò)濾,但加裝硬件防火墻必竟價(jià)格不菲,對(duì)很多用戶來(lái)說(shuō)是不現(xiàn)實(shí)的,所以配置操作系統(tǒng)自帶的防火墻防范攻擊也是不錯(cuò)的選擇,通??梢詫?duì)“TCP/IP篩選”及“本地安全策略”進(jìn)行相應(yīng)的配置即可。
5.3 通過(guò)修改注冊(cè)表達(dá)到防范攻擊
通過(guò)修改注冊(cè)表可以使ICMP更安全。修改注冊(cè)表主要有兩種方式:
①禁止ICMP重定向報(bào)文。
ICMP的重定向報(bào)文控制著操作系統(tǒng)是否會(huì)改變路由表,以此來(lái)響應(yīng)網(wǎng)絡(luò)設(shè)備發(fā)送給它的ICMP重定向消息,這一功能方便了用戶,卻常被黑客利用,并進(jìn)行網(wǎng)絡(luò)攻擊,通過(guò)修改注冊(cè)表可以使ICMP的重定向報(bào)文禁止響應(yīng),使網(wǎng)絡(luò)更為安全。一般來(lái)說(shuō)修改的方法是打開(kāi)注冊(cè)表編輯器,找到或者新建“HKEY_LOCAL_MachineSy-
stemCurrentControlSetServicesTCPIPParamters”中的子鍵“EnableICM-
PRedirects”(REG_DWORD型)的值修改為0,達(dá)到禁止ICMP的重定向報(bào)文的目的。
②禁止響應(yīng)ICMP路由通告報(bào)文。
“ICMP路由公告”功能可使計(jì)算機(jī)被用于流量攻擊、網(wǎng)絡(luò)連接異常、數(shù)據(jù)被竊聽(tīng)等,所以關(guān)閉“響應(yīng)ICMP路由公告功能,通常的修改注冊(cè)表中“HKEY_LOCAL_MachineSystemCurrentControlSetServic-
esTCPIPParamtersInterfaces”子鍵“PerformRouterDiscovery”的REG_
DWORD型,使之值為0,禁止響應(yīng)ICMP路由通告報(bào)文。
參考文獻(xiàn):
[1]徐國(guó)天.基于ICMP重定向的“中間人”攻擊研究[J].中國(guó)刑警學(xué)院學(xué)報(bào),2012(2):30-33.
[2]Behrouz A.Forouzan.TCP/IP協(xié)議族[M].北京:清華大學(xué)出版社,2003:360-362.
[3]蔣旭卉.骨干網(wǎng)路由器攻擊方法研究與實(shí)現(xiàn)[D].北京交通大學(xué),2007.
[4]馮德強(qiáng).浦煤網(wǎng)絡(luò)檢測(cè)與報(bào)警程序的實(shí)現(xiàn)[J].上海煤氣,2014(01):36-40+43.
[5]黃文,文春生,歐紅星.ICMP路由欺騙與ARP欺騙研究[J].湖南科技學(xué)院學(xué)報(bào),2007(12):49-51.
[6]崔智慧.網(wǎng)絡(luò)設(shè)備監(jiān)控的編程實(shí)現(xiàn)[J].計(jì)算機(jī)光盤(pán)軟件與應(yīng)用,2012(16):226-227.
[7]張超.針對(duì)ICMP攻擊的防范策略[J].現(xiàn)代企業(yè)教育,2011(24):131-132.