|
網(wǎng)絡(luò)技術(shù)是從1990年代中期發(fā)展起來的新技術(shù),它把互聯(lián)網(wǎng)上分散的資源融為有機整體,實現(xiàn)資源的全面共享和有機協(xié)作,使人們能夠透明地使用資源的整體能力并按需獲取信息。資源包括高性能計算機、存儲資源、數(shù)據(jù)資源、信息資源、知識資源、專家資源、大型數(shù)據(jù)庫、網(wǎng)絡(luò)、傳感器等。 當(dāng)前的互聯(lián)網(wǎng)只限于信息共享,網(wǎng)絡(luò)則被認為是互聯(lián)網(wǎng)發(fā)展的第三階段。 什么是ARP?如何防范ARP欺騙技術(shù)? 什么是ARP?如何防范ARP欺騙技術(shù)? 首先說一下什么是ARP。如果你在UNIX Shell下輸入 arp -a (9x下也是),你的輸出看起來應(yīng)該是這樣的: Interface: xxx.xxx.xxx.xxx Internet Address Physical Address Type xxx.xxx.xxx.xxx 00-00-93-64-48-d2 dynamic xxx.xxx.xxx.xxx 00-00-b4-52-43-10 dynamic ...... ......... .... 這里第一列顯示的是ip地址,第二列顯示的是和ip地址對應(yīng)的網(wǎng)絡(luò)接口卡的硬件地址(MAC),第三列是該ip和mac的對應(yīng)關(guān)系類型。 可見,arp是一種將ip轉(zhuǎn)化成以ip對應(yīng)的網(wǎng)卡的物理地址的一種協(xié)議,或者說ARP協(xié)議是一種將ip地址轉(zhuǎn)化成MAC地址的一種協(xié)議。它靠維持在內(nèi)存中保存的一張表來使ip得以在網(wǎng)絡(luò)上被目標機器應(yīng)答。 為什么要將ip轉(zhuǎn)化成mac呢?簡單的說,這是因為在tcp網(wǎng)絡(luò)環(huán)境下,一個ip包走到哪里,要怎么走是靠路由表定義。但是,當(dāng)ip包到達該網(wǎng)絡(luò)后,哪臺機器響應(yīng)這個ip包卻是靠該ip包中所包含的mac地址來識別。也就是說,只有機器的mac地址和該ip包中的mac地址相同的機器才會應(yīng)答這個ip包。因為在網(wǎng)絡(luò)中,每一臺主機都會有發(fā)送ip包的時候。所以,在每臺主機的內(nèi)存中,都有一個 arp--> mac 的轉(zhuǎn)換表。通常是動態(tài)的轉(zhuǎn)換表(注意在路由中,該arp表可以被設(shè)置成靜態(tài))。也就是說,該對應(yīng)表會被主機在需要的時候刷新。這是由于以太網(wǎng)在子網(wǎng)層上的傳輸是靠48位的mac地址而決定的。 通常主機在發(fā)送一個ip包之前,它要到該轉(zhuǎn)換表中尋找和ip包對應(yīng)的mac地址。如果沒有找到,該主機就發(fā)送一個ARP廣播包,看起來象這樣子: "我是主機xxx.xxx.xxx.xxx , mac是xxxxxxxxxxx ,ip為xxx.xxx.xxx.xx1的主機請告之你的mac來" ip為xxx.xxx.xxx.xx1的主機響應(yīng)這個廣播,應(yīng)答ARP廣播為: "我是xxx.xxx.xxx.xx1,我的mac為xxxxxxxxxx2" 于是,主機刷新自己的ARP緩存,然后發(fā)出該ip包。 了解這些常識后,現(xiàn)在就可以談在網(wǎng)絡(luò)中如何實現(xiàn)ARP欺騙了,可以看看這樣一個例子: 一個入侵者想非法進入某臺主機,他知道這臺主機的防火墻只對192.0.0.3(假設(shè))這個ip開放23口(telnet),而他必須要使用telnet來進入這臺主機,所以他要這么做: 1、他先研究192.0.0.3這臺主機,發(fā)現(xiàn)這臺95的機器使用一個oob就可以讓他死掉。 2、于是,他送一個洪水包給192.0.0.3的139口,于是,該機器應(yīng)包而死。 3、這時,主機發(fā)到192.0.0.3的ip包將無法被機器應(yīng)答,系統(tǒng)開始更新自己的arp對應(yīng)表。將192.0.0.3的項目搽去。 4、這段時間里,入侵者把自己的ip改成192.0.0.3 5、他發(fā)一個ping(icmp 0)給主機,要求主機更新主機的arp轉(zhuǎn)換表。 6、主機找到該ip,然后在arp表中加入新的ip-->mac對應(yīng)關(guān)系。 7、防火墻失效了,入侵的ip變成合法的mac地址,可以telnet了。 現(xiàn)在,假如該主機不只提供telnet,它還提供r命令(rsh,rcopy,rlogin等)那么,所有的安全約定將無效,入侵者可以放心的使用這臺主機的資源而不用擔(dān)心被記錄什么。 有人也許會說,這其實就是冒用ip嘛。是冒用了ip,但決不是ip欺騙,ip欺騙的原理比這要復(fù)雜的多,實現(xiàn)的機理也完全不一樣。 上面就是一個ARP的欺騙過程,這是在同網(wǎng)段發(fā)生的情況。但是,提醒注意的是,利用交換集線器或網(wǎng)橋是無法阻止ARP欺騙的,只有路由分段是有效的阻止手段。(也就是ip包必須經(jīng)過路由轉(zhuǎn)發(fā)。在有路由轉(zhuǎn)發(fā)的情況下,ARP欺騙如配合ICMP欺騙將對網(wǎng)絡(luò)造成極大的危害。從某種角度講,入侵者可以跨過路由監(jiān)聽網(wǎng)絡(luò)中任何兩點的通訊,如果設(shè)置防火墻,請注意防火墻有沒有提示過類似“某某IP是局域IP但從某某路由來”等這樣的信息。 在有路由轉(zhuǎn)發(fā)的情況下,發(fā)送到達路由的ip的主機其arp對應(yīng)表中,ip的對應(yīng)值是路由的mac。 比如: 我ping www.xxxx.com后,那么在我主機中,www. xxxx.com的IP對應(yīng)項不是xxxx的mac,而是我路由的mac,其ip也是我路由的IP。(有些網(wǎng)絡(luò)軟件通過交換路由ARP可以得到遠程IP的MAC)。 假設(shè)這個入侵者突然想到:我要經(jīng)過一個路由才可以走到那臺有防火墻的主機!! 于是這個入侵者開始思考: 1、我的機器可以進入那個網(wǎng)段,但是,不是用192.0.0.3的IP。 2、如果我用那個IP,就算那臺正版192.0.0.3的機器死了,那個網(wǎng)絡(luò)里的機器也不會把ip包丟到路由傳給我。 3、所以,我要騙主機把ip包丟到路由。 通過多種欺騙手法可以達到這個目的。所以他開始這樣做: 1、為了使自己發(fā)出的非法ip包能在網(wǎng)絡(luò)上活久一點,開始修改ttl為下面的過程中可能帶來的問題做準備。他把ttl改成255。 (ttl定義一個ip包如果在網(wǎng)絡(luò)上到不了主機后在網(wǎng)絡(luò)上能存活的時間,改長一點在本例中有利于做充足的廣播) 2、他掏出一張軟盤,這張軟盤中有他以前用sniffer時保存的各種ip包類型。 3、他用一個合法的ip進入網(wǎng)絡(luò),然后和上面一樣,發(fā)個洪水包讓正版的192.0.0.3死掉,然后他用192.0.0.3進入網(wǎng)絡(luò)。 4、在該網(wǎng)絡(luò)的主機找不到原來的192.0.0.3的mac后,將更新自己的ARP對應(yīng)表。于是他趕緊修改軟盤中的有關(guān)ARP廣播包的數(shù)據(jù),然后對網(wǎng)絡(luò)廣播說"能響應(yīng)ip為192.0.0.3的mac是我"。 5、好了,現(xiàn)在每臺主機都知道了,一個新的MAC地址對應(yīng)ip 192.0.0.3,一個ARP欺騙完成了,但是,每臺主機都只會在局域網(wǎng)中找這個地址而根本就不會把發(fā)送給192.0.0.3的ip包丟給路由。于是他還得構(gòu)造一個ICMP的重定向廣播。 6、他開始再修改軟盤中的有關(guān)ICMP廣播包的數(shù)據(jù),然后發(fā)送這個包,告訴網(wǎng)絡(luò)中的主機:"到192.0.0.3的路由最短路徑不是局域網(wǎng),而是路由。請主機重定向你們的路由路徑,把所有到192.0.0.3的ip包丟給路由哦。" 7、主機接受這個合理的ICMP重定向,于是修改自己的路由路徑,把對192.0.0.3 的ip通訊都丟給路由器。 8、入侵者終于可以在路由外收到來自路由內(nèi)的主機的ip包了,他可以開始telnet到主機的23口,用ip 192.0.0.3。 注意,這只是一個典型的例子,在實際操作中要考慮的問題還不只這些。 現(xiàn)在想想,如果他要用的是sniffer會怎樣? 可見,利用ARP欺騙,一個入侵者可以: 1、利用基于ip的安全性不足,冒用一個合法ip來進入主機。 2、逃過基于ip的許多程序的安全檢查,如NSF,R系列命令等。 他甚至可以栽賬嫁禍給某人,讓他跳到黃河洗不清,永世不得超生! 那么,如何防止ARP欺騙呢? 1、不要把你的網(wǎng)絡(luò)安全信任關(guān)系建立在ip基礎(chǔ)上或mac基礎(chǔ)上,(rarp同樣存在欺騙的問題),理想的關(guān)系應(yīng)該建立在ip+mac基礎(chǔ)上。 2、設(shè)置靜態(tài)的mac-->ip對應(yīng)表,不要讓主機刷新你設(shè)定好的轉(zhuǎn)換表。 3、除非很有必要,否則停止使用ARP,將ARP做為永久條目保存在對應(yīng)表中。 4、使用ARP服務(wù)器。通過該服務(wù)器查找自己的ARP轉(zhuǎn)換表來響應(yīng)其他機器的ARP廣播。確保這臺ARP服務(wù)器不被黑。 5、使用"proxy"代理ip的傳輸。 6、使用硬件屏蔽主機。設(shè)置好你的路由,確保ip地址能到達合法的路徑。(靜態(tài)配置路由ARP條目),注意,使用交換集線器和網(wǎng)橋無法阻止ARP欺騙。 7、管理員定期用響應(yīng)的ip包中獲得一個rarp請求,然后檢查ARP響應(yīng)的真實性。 8、管理員定期輪詢,檢查主機上的ARP緩存。 9、使用防火墻連續(xù)監(jiān)控網(wǎng)絡(luò)。注意有使用SNMP的情況下,ARP的欺騙有可能導(dǎo)致陷阱包丟失。 ARP的緩存記錄格式: 每一行為: IF Index:Physical Address:IP Address:Type 其中: IF Index 為: 1 以太網(wǎng) 2 實驗以太網(wǎng) 3 X.25 4 Proteon ProNET (Token Ring) 5 混雜方式 6 IEEE802.X 7 ARC網(wǎng) ARP廣播申請和應(yīng)答結(jié)構(gòu) 硬件類型:協(xié)議類型:協(xié)議地址長:硬件地址長:操作碼:發(fā)送機硬件地址: 發(fā)送機IP地址:接受機硬件地址:接受機IP地址。 其中:協(xié)議類型為: 512 XEROX PUP 513 PUP 地址轉(zhuǎn)換 1536 XEROX NS IDP 2048 Internet 協(xié)議 (IP) 2049 X.752050NBS 2051 ECMA 2053 X.25第3層 2054 ARP 2055 XNS 4096 伯克利追蹤者 21000 BBS Simnet 24577 DEC MOP 轉(zhuǎn)儲/裝載 24578 DEC MOP 遠程控制臺 24579 DEC 網(wǎng) IV 段 24580 DEC LAT 24582 DEC 32773 HP 探示器 32821 RARP 32823 Apple Talk 32824 DEC 局域網(wǎng)橋 如果你用過NetXRay,那么這些可以幫助你了解在細節(jié)上的ARP欺騙如何配合ICMP欺騙而讓一個某種類型的廣播包流入一個. 網(wǎng)絡(luò)的神奇作用吸引著越來越多的用戶加入其中,正因如此,網(wǎng)絡(luò)的承受能力也面臨著越來越嚴峻的考驗―從硬件上、軟件上、所用標準上......,各項技術(shù)都需要適時應(yīng)勢,對應(yīng)發(fā)展,這正是網(wǎng)絡(luò)迅速走向進步的催化劑。 |
溫馨提示:喜歡本站的話,請收藏一下本站!