2007年7月27日

區域網路ARP攻擊與防禦的解決方案

註:以下文章非本人撰寫為網路轉載文章。

來源:未知 (如有網友知道請告知)

作者:蘇士傑

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

##CONTINUE##

一、 前言
在廣大無疆的網際網路世界裡,潛藏了許許多多的危機,但也由於資安設備技術進步有效的阻隔了大多數外在攻擊,而雖然如此,由於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)」癱瘓區域網路這一個棘手的問題。