基于Linux/BSD 防范局域網(wǎng)內(nèi)ARP欺騙
發(fā)表時(shí)間:2023-07-16 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]本文對(duì)于ARP欺騙, 提出幾點(diǎn)加強(qiáng)安全防范的措施。 環(huán)境是主機(jī)或者網(wǎng)關(guān)是基于Linux/BSD的。 一、理論前提 本著“不冤枉好人, 不放過(guò)一個(gè)壞人...
本文對(duì)于ARP欺騙, 提出幾點(diǎn)加強(qiáng)安全防范的措施。 環(huán)境是主機(jī)或者網(wǎng)關(guān)是基于Linux/BSD的。
一、理論前提
本著“不冤枉好人, 不放過(guò)一個(gè)壞人的原則”, 先說(shuō)說(shuō)我的一些想法和理論依據(jù)。 首先, 大家肯定發(fā)送ARP欺騙包肯定是一個(gè)惡毒的程序自動(dòng)發(fā)送的, 正常的TCP/IP網(wǎng)絡(luò)是不會(huì)有這樣的錯(cuò)誤包發(fā)送的。 這就假設(shè), 如果犯罪嫌疑人沒(méi)有啟動(dòng)這個(gè)破壞程序的時(shí)候, 網(wǎng)絡(luò)環(huán)境是正常的, 或者說(shuō)網(wǎng)絡(luò)的ARP環(huán)境是正常的, 如果我們能在犯罪嫌疑人啟動(dòng)這個(gè)犯罪程序的第一時(shí)間, 一開(kāi)始就發(fā)現(xiàn)了他的犯罪活動(dòng), 那么就是人贓俱在, 不可抵賴了, 因?yàn)閯偛盘岬剑?前面網(wǎng)絡(luò)正常的時(shí)候證據(jù)是可信和可依靠的。 好, 接下來(lái)我們談?wù)撊绾卧诘谝粫r(shí)間發(fā)現(xiàn)他的犯罪活動(dòng)。
ARP欺騙的原理如下:
假設(shè)這樣一個(gè)網(wǎng)絡(luò), 一個(gè)Hub接了3臺(tái)機(jī)器
HostA HostB HostC 其中
A的地址為:IP:192.168.10.1 MAC: AA-AA-AA-AA-AA-AA
B的地址為:IP:192.168.10.2 MAC: BB-BB-BB-BB-BB-BB
C的地址為:IP:192.168.10.3 MAC: CC-CC-CC-CC-CC-CC
正常情況下 C:\arp -a
Interface: 192.168.10.1 on Interface 0x1000003
Internet Address Physical Address Type
192.168.10.3 CC-CC-CC-CC-CC-CC dynamic
現(xiàn)在假設(shè)HostB開(kāi)始了罪惡的ARP欺騙:
B向A發(fā)送一個(gè)自己偽造的ARP應(yīng)答, 而這個(gè)應(yīng)答中的數(shù)據(jù)為發(fā)送方IP地址是192.168.10.3(C的IP地址), MAC地址是DD-DD-DD-DD-DD-DD(C的MAC地址本來(lái)應(yīng)該是CC-CC-CC-CC-CC-CC, 這里被偽造了)。 當(dāng)A接收到B偽造的ARP應(yīng)答, 就會(huì)更新本地的ARP緩存(A可不知道被偽造了)。 而且A不知道其實(shí)是從B發(fā)送過(guò)來(lái)的, A這里只有192.168.10.3(C的IP地址)和無(wú)效的DD-DD-DD-DD-DD-DD mac地址, 沒(méi)有和犯罪分子B相關(guān)的證據(jù), 哈哈, 這樣犯罪分子豈不樂(lè)死了。
現(xiàn)在A機(jī)器的ARP緩存更新了:
C:\>arp -a
Interface: 192.168.10.1 on Interface 0x1000003
Internet Address Physical Address Type
192.168.10.3 DD-DD-DD-DD-DD-DD dynamic
這可不是小事。 局域網(wǎng)的網(wǎng)絡(luò)流通可不是根據(jù)IP地址進(jìn)行, 而是按照MAC地址進(jìn)行傳輸。 現(xiàn)在192.168.10.3的MAC地址在A上被改變成一個(gè)本不存在的MAC地址。 現(xiàn)在A開(kāi)始Ping 192.168.10.3, 網(wǎng)卡遞交的MAC地址是DD-DD-DD-DD-DD-DD, 結(jié)果是什么呢?網(wǎng)絡(luò)不通, A根本不能Ping通C!!
所以, 局域網(wǎng)中一臺(tái)機(jī)器, 反復(fù)向其他機(jī)器, 特別是向網(wǎng)關(guān), 發(fā)送這樣無(wú)效假冒的ARP應(yīng)答信息包, NND, 嚴(yán)重的網(wǎng)絡(luò)堵塞就開(kāi)始了!網(wǎng)吧管理員的噩夢(mèng)開(kāi)始了。 我的目標(biāo)和任務(wù), 就是第一時(shí)間, 抓住他。 不過(guò)從剛才的表述好像犯罪分子完美的利用了以太網(wǎng)的缺陷, 掩蓋了自己的罪行。 但其實(shí), 以上方法也有留下了蛛絲馬跡。 盡管, ARP數(shù)據(jù)包沒(méi)有留下HostB的地址, 但是, 承載這個(gè)ARP包的ethernet幀卻包含了HostB的源地址。 而且, 正常情況下ethernet數(shù)據(jù)幀中, 幀頭中的MAC源地址/目標(biāo)地址應(yīng)該和幀數(shù)據(jù)包中ARP信息配對(duì), 這樣的ARP包才算是正確的。 如果不正確, 肯定是假冒的包, 可以提醒!但如果匹配的話, 也不一定代表正確, 說(shuō)不定偽造者也考慮到了這一步, 而偽造出符合格式要求, 但內(nèi)容假冒的ARP數(shù)據(jù)包。 不過(guò)這樣也沒(méi)關(guān)系, 只要網(wǎng)關(guān)這里擁有本網(wǎng)段所有MAC地址的網(wǎng)卡數(shù)據(jù)庫(kù), 如果和Mac數(shù)據(jù)庫(kù)中數(shù)據(jù)不匹配也是假冒的ARP數(shù)據(jù)包。 也能提醒犯罪分子動(dòng)手了。
二、防范措施
1. 建立DHCP服務(wù)器(建議建在網(wǎng)關(guān)上, 因?yàn)镈HCP不占用多少CPU, 而且ARP欺騙攻擊一般總是先攻擊網(wǎng)關(guān), 我們就是要讓他先攻擊網(wǎng)關(guān), 因?yàn)榫W(wǎng)關(guān)這里有監(jiān)控程序的, 網(wǎng)關(guān)地址建議選擇192.168.10.2 , 把192.168.10.1留空, 如果犯罪程序愚蠢的話讓他去攻擊空地址吧), 另外所有客戶機(jī)的IP地址及其相關(guān)主機(jī)信息, 只能由網(wǎng)關(guān)這里取得, 網(wǎng)關(guān)這里開(kāi)通DHCP服務(wù), 但是要給每個(gè)網(wǎng)卡, 綁定固定唯一IP地址。 一定要保持網(wǎng)內(nèi)的機(jī)器IP/MAC一一對(duì)應(yīng)的關(guān)系。 這樣客戶機(jī)雖然是DHCP取地址, 但每次開(kāi)機(jī)的IP地址都是一樣的。
2. 建立MAC數(shù)據(jù)庫(kù), 把網(wǎng)吧內(nèi)所有網(wǎng)卡的MAC地址記錄下來(lái), 每個(gè)MAC和IP、地理位置統(tǒng)統(tǒng)裝入數(shù)據(jù)庫(kù), 以便及時(shí)查詢備案。
3. 網(wǎng)關(guān)機(jī)器關(guān)閉ARP動(dòng)態(tài)刷新的過(guò)程, 使用靜態(tài)路郵, 這樣的話, 即使犯罪嫌疑人使用ARP欺騙攻擊網(wǎng)關(guān)的話, 這樣對(duì)網(wǎng)關(guān)也是沒(méi)有用的, 確保主機(jī)安全。
網(wǎng)關(guān)建立靜態(tài)IP/MAC捆綁的方法是:建立/etc/ethers文件, 其中包含正確的IP/MAC對(duì)應(yīng)關(guān)系, 格式如下:
192.168.2.32 08:00:4E:B0:24:47
然后再/etc/rc.d/rc.local最后添加:
arp -f 生效即可
4. 網(wǎng)關(guān)監(jiān)聽(tīng)網(wǎng)絡(luò)安全。 網(wǎng)關(guān)上面使用TCPDUMP程序截取每個(gè)ARP程序包, 弄一個(gè)腳本分析軟件分析這些ARP協(xié)議。 ARP欺騙攻擊的包一般有以下兩個(gè)特點(diǎn), 滿足之一可視為攻擊包報(bào)警:第一以太網(wǎng)數(shù)據(jù)包頭的源地址、目標(biāo)地址和ARP數(shù)據(jù)包的協(xié)議地址不匹配。 或者, ARP數(shù)據(jù)包的發(fā)送和目標(biāo)地址不在自己網(wǎng)絡(luò)網(wǎng)卡MAC數(shù)據(jù)庫(kù)內(nèi), 或者與自己網(wǎng)絡(luò)MAC數(shù)據(jù)庫(kù) MAC/IP 不匹配。 這些統(tǒng)統(tǒng)第一時(shí)間報(bào)警, 查這些數(shù)據(jù)包(以太網(wǎng)數(shù)據(jù)包)的源地址(也有可能偽造), 就大致知道那臺(tái)機(jī)器在發(fā)起攻擊了。
5. 偷偷摸摸的走到那臺(tái)機(jī)器, 看看使用人是否故意, 還是被任放了什么木馬程序陷害的。 如果后者, 不聲不響的找個(gè)借口支開(kāi)他, 拔掉網(wǎng)線(不關(guān)機(jī),特別要看看Win98里的計(jì)劃任務(wù)), 看看機(jī)器的當(dāng)前使用記錄和運(yùn)行情況, 確定是否是在攻擊。
上面是電腦上網(wǎng)安全的一些基礎(chǔ)常識(shí),學(xué)習(xí)了安全知識(shí),幾乎可以讓你免費(fèi)電腦中毒的煩擾。