1 引言
  對“IP位址盜用”的解決方案絕大多數都是採取MAC與IP位址綁定策略,這種做法是十分危險的,本文將就這個問題進行探討。在這裡需要聲明的是,本文是處於對對MAC與IP位址綁定策略安全的憂慮,不帶有任何駭客性質。
  1.1 為什麼要綁定MAC與IP 位址
  影響網路安全的因素很多,IP位址盜用或位址欺騙就是其中一個常見且危害極大的因素。現實中,許多網路應用是基於IP的,比如流量統計、帳號控制等都將 IP位址作為標誌使用者的一個重要的參數。如果有人盜用了合法位址並偽裝成合法使用者,網路上傳輸的資料就可能被破壞、竊聽,甚至盜用,造成無法彌補的損失。
  盜用外部網路的IP位址比較困難,因為路由器等網路互連設備一般都會設置通過各個埠的IP位址範圍,不屬於該IP位址範圍的報文將無法通過這些互連設備。但如果盜用的是Ethernet內部合法使用者的IP位址,這種網路互連設備顯然無能為力了。“道高一尺,魔高一丈”,對於Ethernet內部的IP 位址被盜用,當然也有相應的解決辦法。綁定MAC位址與IP位址就是防止內部IP盜用的一個常用的、簡單的、有效的措施。
  1.2 MAC與IP 位址綁定原理
  IP位址的修改非常容易,而MAC位址存儲在網卡的EEPROM中,而且網卡的MAC位址是唯一確定的。因此,為了防止內部人員進行非法IP盜用(例如盜用許可權更高人員的IP位址,以獲得許可權外的資訊),可以將內部網路的IP位址與MAC位址綁定,盜用者即使修改了IP位址,也因MAC位址不匹配而盜用失敗:而且由於網卡MAC位址的唯一確定性,可以根據MAC位址查出使用該MAC位址的網卡,進而查出非法盜用者。
  目前,很多單位的內部網路,尤其是學校校園網都採用了MAC位址與IP位址的綁定技術。許多防火牆(硬體防火牆和軟體防火牆)為了防止網路內部的IP位址被盜用,也都內置了MAC位址與IP位址的綁定功能。
  從表面上看來,綁定MAC位址和IP位址可以防止內部IP位址被盜用,但實際上由於各層協定以及網卡驅動等實現技術,MAC位址與IP位址的綁定存在很大的缺陷,並不能真正防止內部IP位址被盜用。
  2 破解MAC與IP位址綁定策略
  2.1 IP位址和MAC位址簡介
  現行的TCP/IP網路是一個四層協定結構,從下往上依次為鏈路層、網路層、傳輸層和應用層。
  Ethernet協定是鏈路層協定,使用的位址是MAC位址。MAC位址是Ethernet網卡在Ethernet中的硬體標誌,網卡生產時將其存于網卡的EEPROM中。網卡的MAC位址各不相同,MAC位址可以唯一標誌一塊網卡。在Ethernet上傳輸的每個報文都含有發送該報文的網卡的MAC位址。
  Ethernet根據Ethernet報文頭中的源MAC位址和目的MAC來識別報文的發送端和接收端。IP協定應用於網路層,使用的位址為IP位址。使用IP協定進行通訊,每個IP報文頭中必須含有源IP和目的IP位址,用以標誌該IP報文的發送端和接收端。在Ethernet上使用IP協定傳輸報文時,IP報文作為Ethernet報文的資料。IP位址對於Ethernet交換機或處理器是透明的。使用者可以根據實際網路的需要為網卡配置一個或多個IP位址。MAC位址和IP位址之間並不存在一一對應的關係。
  MAC位址存儲在網卡的EEPROM中並且唯一確定,但網卡驅動在發送Ethernet報文時,並不從EEPROM中讀取MAC位址,而是在記憶體中來建立一塊緩存區,Ethernet報文從中讀取源MAC位址。而且,使用者可以通過作業系統修改實際發送的Ethernet報文中的源MAC位址。既然MAC位址可以修改,那麼MAC位址與IP位址的綁定也就失去了它原有的意義。
  2.2 破解方案
  下圖是破解試驗的結構示意圖。其內部伺服器和外部伺服器都提供Web服務,防火牆中實現了MAC位址和IP位址的綁定。報文中的源MAC位址與1P位址對如果無法與防火牆中設置的MAC位址與1P位址對匹配,將無法通過防火牆。主機2和內部伺服器都是內部網路中的合法機器;主機1是為了做實驗而新加入的機器。安裝的作業系統是W2000企業版,網卡是3Com的。
  試驗需要修改主機1中網卡的 MAC和IP位址為被盜用設備的MAC和IP位址。首先,在控制台中選擇“網路和撥號連線”,選中對應的網卡並點擊滑鼠右鍵,選擇屬性,在屬性頁的“常規”頁中點擊“配置”按鈕。在配置屬性頁中選擇“高級”,再在“屬性”欄中選擇“Network Address”,在“值”欄中選中輸人框,然後在輸人框中輸人被盜用設備的MAC位址,MAC位址就修改成功了。
  然後再將IP位址配置成被盜用設備的IP位址。盜用內部客戶機IP位址:將主機1的MAC位址和IP位址分別修改為主機2的MAC位址和IP位址。主機1可以訪問外部伺服器,能夠順利地通過防火牆,存取權限與主機2沒有分別。而且,與此同時主機2也可以正常地訪問外部伺服器,完全不受主機1的影響。無論是主機2還是防火牆都察覺不到主機1的存在。主機1如果訪問內部伺服器,根本無需通過防火牆,更是暢通無阻了。
  盜用內部伺服器IP位址:將主機1的MAC位址和U位址修改為內部伺服器的MAC位址和IP位址。主機1也提供Web服務。為了使效果更明顯,主機1上提供的Web服務內容與內部伺服器提供的內容不同。
  因為在實際的實驗中主機1與主機2連在同一個HUB上,主機2的訪問請求總是先被主機1回應,主機2期望訪問的是內部伺服器,得到的卻總是主機1提供的內容。更一般地,主機2如果試圖訪問內部伺服器,獲得的到底是主機1提供的內容還是內部伺服器提供的內容具有隨機性,要看它的訪問請求首先被誰回應,在後面的分析中我們將進一步對此進行闡述。
  盜用伺服器的MAC和IP危害可能更大,如果主機1提供的Web內容和內部伺服器中的內容一樣,那麼主機2將無法識別它訪問的到底是哪個機器;如果Web內容中要求輸人帳號、密碼等資訊,那麼這些資訊對於主機1來說則是一覽無遺了。


3 破解成功的原因


  上面的實驗驗證了綁定MAC位址與IP位址的確存在很大的缺陷,無法有效地防止內部IP位址被盜用。接下來,將從理論上對該缺陷進行詳細的分析。


  缺陷存在的前提是網卡的混雜接收模式,所謂混雜接收模式是指網卡可以接收網路上傳輸的所有報文,無論其目的MAC位址是否為該網卡的MAC位址。正是由於網卡支援混雜模式,才使網路卡驅動程式支援MAC位址的修改成為可能;否則,就算修改了MAC位址,但是網卡根本無法接收相應位址的報文,該網卡就變得只能發送,無法接收,通信也就無法正常進行了。


  MAC位址可以被盜用的直接原因是網路卡驅動程式發送Ethernet報文的實現機制。Ethernet報文中的源MAC位址是驅動程式負責填寫的,但驅動程式並不從網卡的EEPROM中讀取MAC,而是在記憶體中建立一個MAC位址緩存區。網卡初始化的時候將EEPROM中的內容讀入到該緩存區。如果將該緩存區中的內容修改為使用者設置的MAC位址,以後發出去的Ethernet報文的源位址就是修改後的MAC位址了。


  如果僅僅是修改MAC位址,位址盜用並不見得能夠得逞。Ethernet是基於廣播的,Ethernet網卡都能監聽到局域網中傳輸的所有報文,但是網卡只接收那些目的位址與自己的MAC位址相匹配的Ethernet報文。如果有兩台具有相同MAC位址的主機分別發出訪問請求,而這兩個訪問請求的回應報文對於這兩台主機都是匹配的,那麼這兩台主機就不只接收到自己需要的內容,而且還會接收到目的為另外一台同MAC主機的內容。


  按理說,兩台主機因為接收了多餘的報文後,都應該無法正常工作,盜用馬上就會被察覺,盜用也就無法繼續了;但是,在實驗中位址被盜用之後,各台實驗設備都可以互不幹擾的正常工作。這又是什麼原因呢?答案應該歸結于上層使用的協定。


 目前,網路中最常用的協定是TCP/IP協定,網路應用程式一般都是運行在TCP或者UDP之上。例如,實驗中Web伺服器採用的HTTP協定就是基於TCP的。在TCP或者UDP中,標誌通信雙方的不僅僅是IP位址,還包括埠號。在一般的應用中,使用者端的埠號並不是預先設置的,而是協定根據一定的規則生成的,具有隨機性。像上面利用IE來訪問Web伺服器就是這樣。UDP或者TCP的埠號為16位二進位數字,兩個16位的亂數字相等的幾率非常小,恰好相等又談何容易?兩台主機雖然MAC位址和IP位址相同,但是應用埠號不同,接收到的多餘資料由於在TCP/UDP層找不到匹配的埠號,被當成無用的資料簡單地丟棄了,而TCP/UDP層的處理對於使用者層來說是透明的;所以使用者可以“正確無誤”地正常使用相應的服務,而不受位址盜用的干擾。


  當然,某些應用程式的使用者埠號可能是使用者或者應用程式自己設置的,而不是交給協定來隨機的生成。那麼,結果又會如何呢?例如,在兩台MAC位址和IP位址都相同的主機上,啟動了兩個埠相同的應用程式,這兩個應用是不是就無法正常工作了呢?其實不儘然。


  如果下層使用的是UDP協定,兩個應用將互相干擾無法正常工作。如果使用的是TCP協定,結果就不一樣了。因為TCP是連線導向的,為了實現重發機制,保證資料的正確傳輸,TCP引入了報文序號和接收視窗的概念。在上述的埠號匹配的報文中,只有那些序號的偏差屬於接收視窗之內的報文才會被接收,否則,會被認為是過期報文而丟棄。TCP協定中的報文的序號有32位,每個應用程式發送的第一個報文的序號是嚴格按照隨機的原則產生的,以後每個報文的序號依次加1。


  視窗的大小有16位,也就是說視窗最大可以是216,而序號的範圍是232,主機期望接收的TCP資料的序號正好也處於對方的接收範圍之內的概率為1/216,可謂小之又小。 TCP的序號本來是為了實現報文的正確傳輸,現在卻成了位址盜用的幫兇。

 

4 解決MAC與IP位址綁定被破解的方法


  解決MAC與IP位址綁定被破解的方法很多,主要以下幾種。


  交換機埠、MAC位址和IP位址三者綁定的方法;代理服務與防火牆相結合的方法;用PPPoE協定進行使用者認證的方法;基於目錄服務策略的方法;統一身份認證與計費軟體相結合的方法等(這些方法的實現原理和過程可以參考拙作《校園網IP位址盜用解決方案》)。在這裡筆者尤其推薦最後一種方法,這種方法是將校園網辦公自動化系統和網路計費軟體結合在一起而實現的,這在校園網資訊化建設的今天具有很強的實踐性。

arrow
arrow
    全站熱搜

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