如何通過動態ARP檢測中間人攻擊 |
發布時間: 2012/9/19 17:07:13 |
中間人攻擊對于企業來說是一種相當頭疼的攻擊方式,通過截獲和偽裝企業之間的通訊數據,可以達到偽裝成數據發送方的目的。其間很多企業的敏感數據都面臨著被泄露的危機,那么ARP協議作為一柄雙刃劍,我們就利用其優勢方面,通過動態ARP檢測和防止中間人攻擊。 一、中間人攻擊案例模擬 有三臺終端同時連接到同一個工作組交換機中。(實際情況可能會有更多的終端,為了簡單起見,筆者以三個終端為例)。此時如果主機A需要訪問主機B(第一次訪問時只知道對方的IP地址而不知道MAC地址),就需要先發送一個ARP請求。向各臺主機詢問,IP地址為多少的主機其MAC地址為多少,并會附上主機A的MAC地址。這個ARP請求會以廣播的形式在網絡中傳播,即網絡中的每一臺客戶端都將受到這個信息。正常情況下,除了B以外的不相關的主機都會丟棄這個數據包。而只有主機B接收到這個請求后,才會進行響應。主機B首先會在自己的ARP緩存中創建主機A IP地址與MAC地址的相關記錄(如果已經存在這個IP地址,則會進行更新),并向主機A發送ARP響應。此時的ARP響應是一個單播數據包,即直接發送給主機A,而不是以廣播的形式發送。 以上是一個比較正常的ARP處理流程。但是在這個處理的過程中,如果沒有采取恰當的安全措施,則很可能會引發中間人攻擊。如上圖所示,如果終端設備C在收到主機A發送的ARP請求之后,沒有拋棄這個數據包,而是發送了偽造的ARP響應(將自己的MAC地址替代主機B的MAC地址),其就可以發起中間人攻擊。在接收到主機C的ARP響應之后,主機A將不能夠擁有主機B的正確MAC地址與IP地址。對于主機A來說,它就會錯誤的認為主機C就是其要發送數據的對象。從而將數據直接發送給主機C。此時對于主機A和主機B之間的任何通信,就會被發送到主機C上。然后主機C在獲取相關的內容之后,可能進行流量的重定向。在這個過程中,主機C就被稱為中間人。這個過程就被稱為中間人攻擊。 二、通過動態ARP檢測來防止中間人攻擊 為了有效防止中間人攻擊,在思科的網絡產品中設計了動態ARP檢測。其原理比較簡單,就是交換機的相關端口會自動檢測ARP數據包來自于正確的端口,并且沒有被攻擊者所更改或者欺騙。這個原理說起來簡單,其實要實現起來需要經過許多的技術處理。通常情況下,通過DHCP監聽綁定表,交換機能夠確定正確的端口。如果交換機能夠數據來自錯誤的端口,則會自動拋棄這個數據包,并會將相關的信息記錄在案。而且還會將違規端口設置為err-disable狀態,攻擊者將不能夠對網絡進行進一步的破壞工作。 如果要在這個環境中啟用動態ARP檢測技術,需要執行如下幾個步驟。 第一步是需要在各個交換機端口上啟用DHCP監聽。如上所示,動態ARP檢測需要判斷數據的端口是否來自合法的端口。而要檢測這個內容的話,必須要有DHCP監聽綁定表。而這個表則是有DHCP監聽程序創建的。這里需要注意,要在交換機所有的接口上啟用這個監聽服務。否則的話,就可能會出現問題。 第二步是比較關鍵,是需要將交換機間的連接配置為DAI(動態ARP檢測)信任端口。在上面舉例子的時候,筆者為了簡單起見,只畫了一個工作組交換機。而在實際工作中,企業往往是有多個交換機共同組成一個網絡。此時如果讓多個交換機之間也能夠啟用動態ARP檢測功能呢?其需要做的配置,就是將交換機之間的鏈路配置為DAI信任端口。可以使用命令ip arp inspection trust來實現。 當啟用了動態ARP檢測功能,如果再發生中間人攻擊事件的話,交換機會如何應對呢?如上圖所示,當攻擊者C連接到工作組交換機,并且試圖發送虛假的ARP響應時,交換機會根據DHCP監聽綁定表檢測到這種攻擊行為,并會丟棄這個ARP數據包。然后交換機會將這個攻擊者C所連接的端口設置為err-disable狀態,并向管理員發出警報。 當啟用了動態ARP檢測的時候,需要注意其誤診斷的情況。如上圖所示,如果中間人C其不是直接連接在工作組交換機上。而是連接在一個集線器上。然后再通過這個集線器連接到交換機。此時當其發出中間者攻擊時,交換機會將這個接口關閉掉。此時連接在這個接口上的所有主機都將無法與網絡進行通信。這個“一人有罪,全家受罰”的辦法,往往會涉及到無辜。網絡管理員在啟用這個功能時,需要考慮到這個負面作用。在后續排除故障的時候,也會有參考的價值。 三、動態ARP檢測在其他方面的作用 ARP動態檢測功能在防止中間人攻擊方面有比較特殊的表現。但是其功能還遠遠不止這個方面。如ARP動態檢測功能還可以實現ARP抑制。即限制入站ARP數據包的速率。如果當ARP數據包的速率達到一個指定的數值之后,此時可能網絡中存在著ARP攻擊。在這種情況下,交換機會自動將這個接口設置為disable狀態。要啟用ARP抑制功能,需要在交換機中進行額外的配置。如可以通過如下命令來實現:ip arp inspection limit rate (ARP數據包速率)。執行這個配置并不難,其難點在于如何確定這個速率。如果速率設置的比較高,那么起不到ARP抑制的功能。相反,如果設置的比較低的話,又可能會影響到網絡的正常使用。 四、動態ARP檢測需要使用的相關技術 從以上的分析中可以看出,動態ARP檢測并不是一門獨立的技術,其必須要有其他的技術的幫助才能夠實現。故筆者更喜歡將其稱為一個技術的組合。如需要啟用DHCP監聽程序才能夠幫助交換機判斷數據來源接口的合法性等等。當啟用ARP檢測技術的時候,交換機會自動判斷是否啟用了一些必須的輔助技術。如果沒有啟用的話,交換機會報錯,并終止用戶的請求。所以在配置這個功能的時候,網絡管理員還需要了解其他與之關聯的技術。特別是需要了解其實現的一些前提條件,即需要先啟用哪些技術。 在實際工作中,如像用戶介紹或者培訓過程中,筆者將動態ARP檢測技術當作一個安全的解決方案(幾種技術的組合),而不是一門單獨的技術。這無論是在學習還是在配置中都需要引起重視。筆者再強調一次,動態ARP檢測是一種結合DHCP監聽技術、IPSG技術等等的安全方案,其主要用來解決跟ARP攻擊相關的安全問題。它能夠有效保護多層交換網絡中接入層的ARP攻擊,如ARP中間人攻擊、ARP欺騙、ARP擴散攻擊,實現ARP抑制等等。當然在實現的過程中,也會存在一些負面作用。其最大的負面影響就是會使得連接在同一個接口上的其他無辜用戶遭受到損失。在設計與部署動態ARP檢測功能的時候,需要考慮到這個問題。如當連接到某個接口的終端出現網絡故障,而其他接口運作正常時,就需要考慮到是否是這個原因所造成的。 本文出自:億恩科技【www.vbseamall.com】 |