• 4

如何防範被室友惡意斷網路? [淺談arp]

開學季又要到了,不管你有沒有住宿的經驗,相信大家有時候都會遇到明明網路設備是開的可是上不了網的問題。電腦也沒什麼異狀,有裝掃毒軟體但也沒有病毒訊息,也看的到自己的IP,但是就是連不上網。
這種時候可以合理的懷疑:你被攻擊了!

首先可以看看是不是被室友使用了網路剪刀手(Netcut)等軟體把你惡意斷網,或者是區域網路中有人中了ARP病毒。這種攻擊沒有防毒軟體能夠防範,電腦也不會有異狀,唯一的症狀就是電腦有IP可是就是ping不到router,也就是你上網的連接器。
由於Netcut使用的是假造ARP封包造成目標主機ARP table記錄錯誤來達成斷線目的,最新版本的Netcut 2.0或變種ARP病毒已能快速的同時竄改目標主機與路由器(閘道器) ARP記錄,簡易的Netcut防護軟體或靜態ARP記錄已經無法解決危害,因此要徹底解決此一問題必需自Netcut工作原理著手。
首先要解釋DHCP的運作方式:在開機的時候原本電腦沒有IP(預設為0.0.0.0),當電腦要連接網路的時候,會要求DHCP分配IP,一旦取得IP以後就可以上網了(圖一)。

(圖一)DHCP發送流程

在電腦A剛開機,還沒有取得IP的時候並不會受到來自ARP的攻擊,因為要發動ARP攻擊的條件就是要取得對方的網卡卡號(MAC)和IP。所以當取得IP以後,電腦A就曝露在ARP攻擊的環境中。
ARP其實是IP位址轉換成Mac位址的一種通訊協定,當某一台電腦要傳送資料到某個IP位址時,會先傳送ARP封包詢問網路上哪台電腦的MAC Address對應到這個IP位址,當目的端的電腦接收到這個ARP封包之後便會回應給來源電腦進行資料傳送。MAC Address的範例格式如下: 00-E0-18-0E-B2-21


(圖二)電腦A廣播自己的MAC及IP以更新網域內電腦的ARP table

(圖三) Router會依據ARP表 把資料依照適合的路徑傳送到 電腦A

而Netcut工作方式就是從封包傳遞這方面下手,Netcut會經由IP掃描的方式(圖四)找尋區域網路上正在活動的IP,選定好攻擊的目標以後(假設要攻擊A),就會大量發送廣播封包,以自己或是編造的MAC搭配A的IP企圖讓網路上所有的電腦都把原本要傳給A的資料都無法送達,這樣原本正常上網的A就無法上網了(因為封包都有去無回)。(如圖四)

(圖四) 電腦B探尋網域中的電腦MAC

(圖五)Router和 電腦A收到廣播把MAC R和MAC A加進ARP表

(圖六) B電腦攻擊A ,同時對Router作干擾,並迫使Router及A更新MAC table

(圖七)Router以及電腦A的ARP table被B所發送的廣播封包給竄改,導致A網路癱瘓
想要防治受到ARP攻擊的話,需加裝VLAN Switch(在圖片範例中是把VLAN Switch取代HUB),因為VLAN Switch是把用戶端的連結在實體層做分割,徹底的隔絕才能夠避免網路遭受攻擊以後災情影響到了網域內的所有用戶。一旦以VLAN Switch做切割以後,網域內的用戶除了看到路由器以外都無法看到其他用戶,如此一來用戶端的電腦都受到保障。在稍後展示的實際操作(圖十一)中可以看到加裝VLAN以後的情形。

(圖八)經由VLAN switch,每個用戶端都不會互相看到。
並確實做好MAC綁IP即可避免ARP攻擊



以下示範使用Router(BM-1000)以及VLAN switch(EZ-800V)來防護ARP攻擊
1. 首先在BM-1000中的設定裏面確實把用戶IP與MAC做連結,這樣不但可以有效防範ARP攻擊也可以防止使用者亂改IP影響其他用戶上網的權益,也方便當遭受ARP攻擊時做為對照。

(圖九)把IP和MAC綁定以避免被竄改

2. 在沒有經過防護的區域網路環境下,惡意軟體、病毒、或是木馬很容易的找到攻擊目標。因為只要廣播封包,網域上所有的電腦都會回應你,等於把網路曝露在危險之中。

(圖十)從Netcut的掃描清單中,可以看到網路上輕易的就找到一堆開機的電腦。

3. 使用VLAN switch將區域網路確實做好實體層(Layer 2)切割,把每個分接出去電腦確實分割以避免封包可以傳送到網域所有的電腦,這樣ARP的封包就不能互相傳遞,也就能防護ARP攻擊啦!

(圖十一)裝設VLAN switch以後網路上只看的到自己的電腦和路由器的IP。

4. 其實想要徹底解決ARP攻擊、病毒、木馬、或是駭客的攻擊,最好是在規劃的時候就考慮好,而且在區網裡面每一個switch都要有VLAN的功能,只要有一台沒有VLAN功能即成為漏洞。另外最常見到的錯誤就是直接使用路由器的4個LAN埠,而使區網VLAN瓦解。建議的架設方式請參考下圖



--
以上只是避免arp攻擊的概述,有的比較難理解的地方就寫的淺顯一點,希望對想了解的朋友有些幫助,想要了解更多的話可以提出您的疑問,歡迎轉載但請附出處,有錯也請不吝指教。
2008-09-10 11:16 發佈
文章關鍵字 室友 淺談arp
felaray wrote:
開學季又要到了,不管...(恕刪)


請教一下felaray 兄,

小弟有遇到一種情形是當user的pc可能是中毒的情形下, 他會不斷的向路由器請求ip , 而路由器這邊會不斷的將IP發給該台PC, 最後導致路由器發完所有的LAN IP.

不知felaray 兄是否有遇過這是哪種病毒或是攻擊?

感謝這位大大分享資訊 圖文並茂


不好意思 稍微討教一下有關 VLAN swith hub


就我所知 即便是 Layer 2 switch hub 遇見 broadcast 封包 不是要照舊所有的 port 發送嗎?


我指的是 mac layer 的 broadcast


在這個階段, 對 switch hub 來說, 還沒有 table 可以查詢, 無法得知某特定的 slot 是屬於誰的


--------- switch
A-------- slot1
B-------- slot2
router --- slot3
x-------- slot4


當 A 第一次 broadcast 的時候, 理論上 B 與 Router 都要收到封包

(除非 Router 能對 switch 作設定 只有 Router 可以收廣播封包)

就我的認知是這樣...

可否請您對於我的疑問 作進一步解釋他的行為?




其二..

個人認為 網路拓譜 增加層次是會降低效能的

如果是為了解決上述的問題

誠如上述的疑惑, Broadcast 依舊是會廣播到每一個端點... 並沒有獲得解決 反而降低效能




小弟不才, 有賴大大指點迷津, 謝謝

感謝您的分享.
很久沒在01看到如此優質的文章的
YAWPYNG wrote:


請教一下fela...(恕刪)


VLAN Switch與Swicth Hub功能還是不一樣
您描述的的確是Switch hub的行為

VLAN則是可以透過實體網路介面或是VLAN tag來區分是否為相同網路
此時遇到broadcast封包,就必須做出選擇,而不是全數放行了
可以降低一些廣播風暴的影響
http://caf677.pixnet.net/blog

YAWPYNG wrote:


請教一下fela...(恕刪)


您提到的DHCP被佔光的問題,由於沒有太多資訊所以只能跟您說一下觀察的方法。首先你要先去抓出看看是哪台電腦在作亂。簡單又古老的方法就是拔網路線一台一台測。

當然要教你別的方法啦!首先分配幾組固定IP給已知的MAC,因為這種攻擊大部分是偽造一堆虛擬的MAC來和DHCP請求IP。所以設定了幾組固定的MAC以後,一來可以保障固有IP使用網路的權益,二來可以從DHCP裡面觀察看看是哪些是虛擬的MAC藉以分析出作亂的電腦。大部分的DHCP都有IP分配清單 (如下圖)
只能先大概和你說這些 其他的等你資訊更詳細載來討論


caf677 wrote:
...
VLAN則是可以透過實體網路介面或是VLAN tag來區分是否為相同網路
此時遇到broadcast封包,就必須做出選擇,而不是全數放行了
可以降低一些廣播風暴的影響

(恕刪)



對不起 我還是不太懂


既然是透過 實體層來作判斷


那麼 以 Ethernet 來講 最前頭的 Destination 6 byte, Source 6 byte, 2 byte type

FF-FF-FF-FF-FF-FF, xx-xx-xx-xx-xx-xx, 0806

因為只知道 對方的 ip-address , 要轉換成 MAC address 所以才使用 ARP-request 去詢問

但實體層的位址既然不知道 就只能填寫 FF-FF-FF-FF-FF-FF 廣播出去



這樣 VLAN 要怎樣知道 該把這個封包 丟到哪個 slot 去呢??


雖然說斷人家網路很沒品...

可是那種明明就是分享線路還狂養動物的那種...實在是很希望他們不會看到這篇文章啊!!!

當然...樓主的分享要給予最大的肯定及最深的感謝!!!

又讓小弟長知識了...

能不能請樓主指導一下要如何防堵那種分享線路還狂養動物的人啊!!!
好文~
正是我想充實的知識
雖然我才剛打開看不到幾句

先加分先…
Purr wrote:
對不起 我還是不太懂...(恕刪)


若是發送ARP的來源電腦與目的電腦屬於不同的VLAN
那麼來源電腦永遠找不到這台目的電腦
除非兩者隸屬於同一個VLAN
廣播就是廣播,同一個廣播網域下的都要收到
但廣播的範圍僅限於同一個廣播網域

Swicth hub基本上是具備部分交換器性能的hub
所有的Port實體上還是屬於同一個介面,共用一個MAC address,所有的Port都是同一個廣播網域
因此當hub中的某個Port有廣播封包產生時,其他的port也會收到
基本上,封包並沒有出這個實體介面,也沒有離開這個廣播網域

Swicth的每個Port是實體介面,各自擁有MAC Address,每個Port之下是一個廣播網域
當封包通過Switch時,Swicth是可以選擇是否允許封包通過並抵達另一個Port介面
Swicth的硬體要允許廣播的從某個Port到達另一個Port是可以的

Purr wrote:
--------- switch
A-------- slot1
B-------- slot2
router --- slot3
x-------- slot4


當 A 第一次 broadcast 的時候, 理論上 B 與 Router 都要收到封包

(除非 Router 能對 switch 作設定 只有 Router 可以收廣播封包)...(恕刪)


以這個問題為例,Swicth若是設定slot1 - 3屬於同一個VLAN
那麼B,Router都可以收到 A發出的廣播封包
反之,則無法得知,這也是Virtual LAN的用意
http://caf677.pixnet.net/blog
  • 4
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?