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