一、中間人攻擊案例類比4906953268997053514  

  




  如上圖,是一個簡單的網路架構圖。有三台終端同時連接到同一個工作組交換器中。(實際情況可能會有更多的終端,為了簡單起見,筆者以三個終端為例)。此時如果主機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檢測功能的時候,需要考慮到這個問題。如當連接到某個介面的終端出現網路故障,而其他介面運作正常時,就需要考慮到是否是這個原因所造成的。
arrow
arrow
    全站熱搜

    戮克 發表在 痞客邦 留言(0) 人氣()