2008年10月8日 星期三

區網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攻擊,以下示範使用[FONT="Arial Black"]Router[/FONT](BM-1000)以及<b>VLAN switch</b>(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攻擊防禦的解決方案 


作者:蘇士傑 

一、 前言 
二、 何謂ARP、RARP? 
三、 何謂ARP欺騙攻擊? 
四、 ARP欺騙被使用的目的為何? 它攻擊的特色為何? 
五、 ARP攻擊分類、手法;為何IPS難以辨識及防禦ARP的攻擊 ? 
六、 ARP攻擊的防禦需要依賴安全交換器 – 介紹NBADswitch、 NBADsensor 
七、 結語 

Appendix 
補充資料 

一、 前言 

在廣大無疆的網際網路世界裡,潛藏了許許多多的危機,但也由於資安設備技術進步有效的阻隔了大多數外在攻擊,而雖然如此,由於IT使用習慣的改變及入侵與病毒的傳播技術日新月異,近年來的資訊及網路安全威脅開始來自於企業infrastrunture內部。2007 舊金山 RSA conference 正說明了這一點,會中一致的共識說明「單純的單點防禦,或是築起一道堅固的資訊防禦外牆,已經逐漸不能滿足企業(機関)在資訊安全上的需求,取而代之的,未來企業(機関)越來越需要整體內部網路與系統的協同防禦機制。」本章節以技術角度說明ARP 欺騙攻擊對企業(機関)內部使用者造成的資訊安全問題,為何ARP欺騙攻擊是現階段病毒攻擊網路最喜歡的攻擊工具,也是現階段駭客最喜歡使用的入侵工具之一,有了這些了解後,網路管理者將可更有效佈署或整合適當的網路與資訊安全設備,檢測出網路與資訊威脅來源。 


二、 何謂ARP、RARP? 

位置解析協定( Address Resolution Protocol –簡稱ARP)是位址轉換協定,RARP被稱為反向位址轉換協議,他們負責把IP位址和MAC位址進行相互轉換對應。ARP主要被設計用於以OSI model 第三層位址(IP address)求得第二層位址(MAC 位址),這是由於IP資料包常通過乙太網傳送,而乙太網設備本身並不識別第三層32個位元的IP位址,而是以第二層48個位元的乙太網位址(MAC位址)傳輸乙太網資料包的。因此,必須把IP目的地址轉換成乙太網地目的地址。在這兩種位址之間存在著某種靜態的映射,這是就是所為的ARP表。 

ARP封包只會在同一個子網路(subnet)內傳送,它很少透過路由器(router)傳送至不同的網路。主機的作業系統會依照封包目地IP位址與本機之子網路遮罩(subnet mask)的值進行運算,以判斷封包目地IP是否與本機同屬於一個子網路,如果封包的源IP位址與目的IP位址不屬於同一子網路則封包必然須要傳送至路由器,而ARP則正可以讓本機獲得路由器乙太網設備網卡MAC位址,而讓封包可以透過本機乙太網設備網卡傳送至路由器。ARP、RARP是一個非常重要且使用頻繁的協定,在任何一個TCP/IP的連線被建立之前,都必需經由位置解析協定(Address Resolution Protocol)取得目地主機的實體網路位址(MAC),在區域網路(Local area network)中,兩部電腦要彼此互相通訊,首先必須彼此知道彼此網卡的MAC地址才能將封包送往對方;例如: 如果某ㄧ電腦 (ip1/ mac1) 得到另一台電腦 (ip2/mac2) 錯誤的 MAC地址 ( ip2/mac3), 那麼這台電腦 (ip1/mac1) 將無法傳送數據包到 Ip2 電腦。 


三、 何謂ARP欺騙 ? 

ARP Spoofing (ARP欺騙) 攻擊的根本原理是因為Windows電腦中維護著一個 ARP 快取記憶體(讓你可以使用 arp 命令來查看你自己的ARP快取記憶體),並且這個ARP 快取記憶體是隨著電腦不斷的發出ARP請求和收到ARP回應而不斷的更新的, ARP 快取記憶體的目的是把機器的IP位址和MAC位址相互映射,使得IP資料包在乙太網內得順利而正確找到目的MAC位址,然後正確無誤的傳送。 如果你可以藉由發出標準的ARP請求或ARP回應來擾亂或竄改某電腦或路由器內正常的ARP表,而導致該電腦(或路由器)發出的資料包誤傳目的地,或使OSI的第二層乙太網和第三層無法連接,進而癱瘓網路,我們就稱你使用了ARP欺騙攻擊。 
舉例說明: 現在有三部機器分別是機器A:IP1/MAC1、機器B:IP2/MAC2、機器C:IP3/MAC3 。現在機器B上的用戶是位駭客企圖干擾機器A或是監視SNIFFER機器A與C之間的通訊,首先他向機器A發出一個 ARP Reply,其中的目的IP位址為IP1,目的(Destination) MAC 位址為MAC1,而源(Source)IP地址為IP3,源MAC地址為 MAC2 。好了, 現在機器A更新了他的 ARP快取記憶體,並相信了IP3地址的機器的MAC地址是 MAC2 。當機器A上的管理員發出一條FTP命令時---ftp IP3,資料包被送到了Switch,Switch查看資料包中的目的地址,發現MAC為 MAC2 ,於是,他把資料包發到了機器B上,因此成功攻擊機器A。現在如果不想影響A和C之間的通信該怎麼辦?僅是sniffer監視兩者之間的通訊,你可以同時欺騙他們雙方,使用 man-in-middle攻擊,便可以達到效果 。 

總之本機在傳送資料包之前,會送出一個關於查詢目的IP位址的MAC乙太網廣播包。正常情況下,只有對應目的IP的主機會以一個自己的48位元MAC主機位址unicast包來做回應,並且將該IP與MAC位址對應更新本機內ARP快取記憶體,以節約不必要的ARP通信。如果有一個中毒的電腦或是網內合法授權進行非法活動的駭客,他們是對本地網路具有寫訪問許可權,極可能這樣一台機器就會發佈虛假的ARP請求或回應通訊,欺騙其他電腦或路由器將所有通信都轉向它自己,然後它就可以扮演某些機器,或對資料流程進行修改。這樣就造成arp欺騙攻擊,影響正常的主機通信。 


四、 ARP欺騙被使用的目的為何? 它攻擊的特色為何? 

不管是中毒無特定目標的攻擊或是駭客進行特定標的非法監聽、竊取活動,ARP欺騙是主要攻擊的一種手法也是目的。事實上很多的知名的駭客使用的工具就是使用ARP欺騙為手法的。最有名駭客攻擊的手法如中間人攻擊(Man-in-the-Middle attack) 與連線劫奪(Session Hijacking) 就是採取ARP spoofing等攻擊手法達到欺騙主機、反追蹤或是避開交換器訪問安全存取的安全機制的防護。連線劫奪(Session Hijacking) 利用ARP欺騙將使用者正常的連線搶過來;中間人攻擊則利用ARP同時欺騙使用者(Client)與服務器(Server)兩邊使所有兩邊的交談都要透過入侵人的轉述,達到欺騙、側錄、竄改資料的目的。 

另外中毒的電腦發送ARP欺騙封包,或是市面上也有些軟體如網路剪刀手(NetCut),利用製造ARP欺騙封包,它則是以攻擊為目的,使得特定或不特定的目標癱瘓,並嫁禍於人。網路剪刀手(NetCut)它的原理是負責假造ARP封包,提供給目標主機假的實體網路位址(MAC)資訊,通訊閘道(Gateway)收到後,將錯誤的實體網路位址(MAC)記到ARP 表內,伺服端(Client)的返回封包就無法送達,也就無法上網,達到攻擊的目的。 

ARP欺騙手法最大的特色是隱密難以偵測,和過去駭客或中毒攻擊手法 – DsS攻擊或洪水攻擊(Flooding)不同,DoS或洪水攻擊所造成的網路危害明顯,但是容易被查覺;而ARP欺騙則是以欺騙為目的,並且為了維持持續的欺騙效果,必須持續發送ARP欺騙包,這些ARP欺騙包長度短但是為數可能頗多,因此造成的網路危害不僅是可能的資料側錄、竊取,也可以是對網路特定目標的攻擊,甚至大量ARP廣播包也可造成整個或部份網路的癱瘓。 


五、 ARP攻擊分類、手法;為何IPS難以辨識及防禦ARP的攻擊 ? 

ARP欺騙攻擊分類基本上可以分為刻意的特定目標攻擊,及因為中毒無意的攻擎。這二種的攻擊本意有所不同,(一)通常是利用網路下載的工具、例如網路翦刀手netcut程式 然後惡意攻擊他人並將攻擊封包偽裝以駕禍於他人,其危害常是少數特定目標,但是由於攻擊者以Unicast 包方式傳送且善於偽裝,因此網路管理員極難找出問題所在,也由於此類型程式下載容易操作簡單,近期於網路中快速擴散,造成網路管理人員極大負擔,也由於目前尚無完整機制快速偵測出此類型規則來源,因此常會使管理人員處理此類問題時疲於奔命,處理耗費時間同時效果不彰,過程中也讓網路管理人員專業能力受到極大的質疑。〈二〉通常是使用者中毒後中毒軟體發送ARP欺騙封包以誤導其他人將封包送往錯誤的路徑,導致變像的攻擊使閘道受害或某用戶的遭炴,其主要的目的是造成部份或整體網路的危害 

位置解析協定(Address Resolution Protocol)在區域網路中極其重要,他是屬於區域網路同ㄧ子網段內部主機對主機的傳輸或主機與路由器之間傳輸重要的協定。如果局域網內是屬於中大型網路具有多個子網路,那麼防火牆/IPS入侵偵測設備通常被設置在核心路由交換器之後根本沒有機會接觸ARP封包,因此對ARP攻擊束手無策。即使局域網內只有一個網段,防火牆/IPS入侵偵測設備兼具路由器功能也僅能偵測部分ARP廣播包,且大部分的產品如使用作業系統(如Linux)的TCP/IP Socket就難以偵測ARP數據包,因此目前的防火牆/IPS入侵偵測設備幾乎不具有即時防止「欺騙位置解析協定攻擊(ARP Spoofing Attack)」的功能,就算有也僅止於出口控制無法由網路底層第一時間阻隔此類攻擊。 


六、 ARP攻擊的防禦需要依賴安全交換器 – 介紹NBADswitch、 NBADsensor 

既然ARP欺騙攻擊是屬於區域網路內部的攻擊手法,而且又是許多病毒、蠕虫、駭客攻擊(如Session Hijacking連線劫奪、Man-in-The-Middle中間人攻擊)經常使用的基本工具。因此,如果是可以由二層交換器來偵測及阻擋防禦最為恰當,一方面可以不需要支付昂貴的IPS入侵偵測器的成本,而且可從網路最底層從事非法ARP的偵測及阻擋防禦,根本解決ARP衍伸的負面攻擊。 

NBAD switch是目前筆者了解市面上具備有ARP攻擊防衛較完整的解決方案。NBAD switch設計上是屬於二層的交換器,主要應用在區域網路底層的佈署,一方面提供正常網路封包的基本交換功能,另ㄧ方面也同時解決網路攻擊或流量異常的偵測,以即時反應邊際端的異常狀況,並減輕負荷、保護企業核心網路。NBAD switch基本上提供了ARP掃描偵測 (xarp scan detection)、ARP異常偵測 (xarp anomaly detection) 及ARP攻擊偵測 (xarp attack detection)三種防護裝置。. ARP掃描偵測- 主要目的是偵測LAN內部arp掃描行為,ARP異常偵測- 則是偵測LAN內部哪些用戶送一些不合法封包,ARP攻擊偵測- 主要目的是偵測出哪些用戶遭受攻擊,並找出攻擊來源。藉由利用這些偵測(detection), NBAD switch 可以檢測出PC開始攻擊前的異常行為,並送出通知讓PC了解可能是因為中毒正準備蓄意對外攻擊。如果該PC正式對外攻擊,NBAD switch會立即偵測到並通知管理者攻擊者、被攻擊者是誰,因此可以採取快速反應的動作。 

NBAD sensor設計的目的、佈署的方式與NBAD switch不同,NBAD switch 主要佈署於新建或者是全面更新的區域網路上,而NBAD sensor則是佈署於暨有已存在的區域網路上側聽的偵測器,主要目的除了可以映射(mirror)方式側聽(sniffer)網路上是否有異常ARP 欺騙攻擊的封包之外,也可收集、偵測、防禦MAC/IP綁定的管理,有效解決區域網路內IP衝突與病毒攻擊問題。 


七、 結語 

ARP Spoofing Attack確實在區域網路(Local area network)中具有極大的威脅,而且ARP攻擊的手法也越來越精湛,由broadcast 轉向Unicast 使得一般的偵測器或防火牆無法做出有效而廣泛的偵測,而如果想要掃描整體網路ARP的攻擊顯然就必須要依賴交換器基礎的解決方案,在區域網路(Local area network)建立的時候,依賴交換器主動偵測是否又異常ARP訊息,經由內建晶片過濾一旦發現異常ARP封包便可自動封鎖並通知網路管理者,有效處理「欺騙位置解析協定攻擊(ARP Spoofing Attack)」癱瘓區域網路這一個棘手的問題。


(※以上文章均來自資安論壇,為求通順,內容稍作修改,欲轉載請註明出處)



  • 留言者: Felaray
  • Email:
  • 網址:
  • 日期: 2009-09-24 08:18:27
前段文章怎麼感覺好熟悉XD 這次就算了~下次請記得註明出處哦!

版主回覆:(09/24/2008 03:59:33 AM)


哈哈哈,當初的工作場合正好遇上ARP攻擊,只記得資安論壇找到的文章,所以只有註明來自資安論壇,謝謝你^^

沒有留言:

張貼留言