利用IP地址欺騙突破防火牆深層技術解析

利用IP地址欺騙突破防火牆深層技術解析

防火牆技術經過深入分析研究,利用防火牆設置和實現的漏洞,能對他實施攻擊。通常情況下,有效的攻擊都是從相關的子網進行的,因爲這些網址得到了防火牆的信賴,雖說成功和否尚取決於機遇等其他因素,但對攻擊者而言非常值得一試。

突破防火牆系統最常用的方法是IP地址欺騙,他同時也是其他一系列攻擊方法的基礎。之所以使用這個方法,是因爲IP自身的缺點。IP協議依據IP頭中的目的地址項來發送IP數據包。如果目的地址是本地網絡內的地址,該IP包就被直接發送到目的地。如果目的地址不在本地網絡內,該IP包就會被髮送到網關,再由網關決定將其發送到何處。這是IP路由IP包的方法。

IP路由IP包時對IP頭中提供的IP源地址不做所有檢查,並且認爲IP頭中的IP源地址即爲發送該包的機器的IP地址。當接收到該包的目的主機要和源主機進行通訊時,他以接收到的IP包的IP頭中IP源地址作爲其發送的IP包的目的地址,來和源主機進行數據通訊。IP的這種數據通訊方式雖然非常簡單和高效,但他同時也是IP的一個安全隱患,非常多網絡安全事故都是因爲IP這個的缺點而引發的。

黑客或入侵者利用僞造的IP發送地址產生虛假的數據分組,喬裝成來自內部站的分組過濾器,這種類型的攻擊是非常危險的。關於涉及到的分組真正是內部的還是外部的分組被包裝得看起來象內部的種種跡象都已喪失殆盡。只要系統發現發送地址在其自己的範圍之內,則他就把該分組按內部通信對待並讓其通過。

通常主機A和主機B的TCP連接(中間有或無防火牆)是通過主機A向主機B提出請求建立起來的,而其間A和B的確認僅僅根據由主機A產生並經主機B驗證的初始序列號ISN。具體分三個步驟:

主機A產生他的ISN,傳送給主機B,請求建立連接;B接收到來自A的帶有SYN標誌的ISN後,將自己本身的ISN連同應答信息ACK一同返回給A;A再將B傳送來ISN及應答信息ACK返回給B。至此,正常情況,主機A和B的TCP連接就建立起來了。

1.            B ---- SYN ---->
2.             
3.            B <---- SYN+ACK ---- A  
4.             
5.            B ---- ACK ----> A 

假設C企圖攻擊A,因爲A和B是相互信任的,如果C已知道了被A信任的B,那麼就要相辦法使得B的網絡功能癱瘓,防止別的東西干擾自己的攻擊。在這裏普遍使用的是SYN flood。攻擊者向被攻擊主機發送許多TCP- SYN包。這些TCP-SYN包的源地址並不是攻擊者所在主機的IP地址,而是攻擊者自己填入的IP地址。當被攻擊主機接收到攻擊者發送來的TCP-SYN包後,會爲一個TCP連接分配一定的資源,並且會以接收到的數據包中的源地址(即攻擊者自己僞造的IP地址)爲目的地址向目的主機發送TCP-(SYN+ACK)應答包。

由於攻擊者自己僞造的IP地址一定是精心選擇的不存在的地址,所以被攻擊主機永遠也不可能收到他發送出去的TCP-(SYN+ACK)包的應答包,因而被攻擊主機的TCP狀態機會處於等待狀態。如果被攻擊主機的TCP狀態機有超時控制的話,直到超時,爲該連接分配的資源纔會被回收。因此如果攻擊者向被攻擊主機發送足夠多的TCP-SYN包,並且足夠快,被攻擊主機的TCP模塊肯定會因爲無法爲新的TCP連接分配到系統資源而處於服務拒絕狀態。並且即使被攻擊主機所在網絡的管理員監聽到了攻擊者的數據包也無法依據IP頭的源地址信息判定攻擊者是誰。

當B的網絡功能暫時癱瘓,目前C必須想方設法確定A當前的ISN。首先連向25端口,因爲SMTP是沒有安全校驗機制的,和前面類似,不過這次需要記錄A的ISN,及C到A的大致的RTT(round trip time)。這個步驟要重複多次以便求出RTT的平均值。一旦C知道了A的ISN基值和增加規律,就能計算出從C到A需要RTT/2 的時間。然後即時進入攻擊,否則在這之間有其他主機和A連接,ISN將比預料的多。

C向A發送帶有SYN標誌的數據段請求連接,只是信源IP改成了B。A向B回送SYN+ACK數據段,B已無法響應,B的TCP層只是簡單地丟棄A的回送數據段。這個時候C需要暫停一小會兒,讓A有足夠時間發送SYN+ACK,因爲C看不到這個包。然後C再次僞裝成B向A發送ACK,此時發送的數據段帶有Z預測的A的ISN+1。如果預測準確,連接建立,數據傳送開始。

問題在於即使連接建立,A仍然會向B發送數據,而不是C,C仍然無法看到A發往B的數據段,C必須蒙着頭按照協議標準假冒B向A發送命令,於是攻擊完成。如果預測不準確,A將發送一個帶有RST標誌的數據段異常終止連接,C只有從頭再來。隨着不斷地糾正預測的ISN,攻擊者最終會和目標主機建立一個會晤。通過這種方式,攻擊者以合法用戶的身份登錄到目標主機而不需進一步的確認。如果反覆試驗使得目標主機能夠接收對網絡的ROOT登錄,那麼就能完全控制整個網絡。

1.            C(B) ---- SYN ---->
2.             
3.            B <---- SYN+ACK ---- A  
4.             
5.            C(B) ---- ACK ---->
6.             
7.            C(B) ---- PSH ----> A 

IP欺騙攻擊利用了RPC服務器僅僅依賴於信源IP地址進行安全校驗的特性,攻擊最困難的地方在於預測A的ISN。攻擊難度比較大,但成功的可能性也非常大。C必須精確地預見可能從A發往B的信息,及A期待來自B的什麼應答信息,這需求攻擊者對協議本身相當熟悉。同時需要明白,這種攻擊根本不可能在交互狀態下完成,必須寫程式完成。當然在準備階段能用netxray之類的工具進行協議分析。

雖然IP欺騙攻擊有着相當難度,但我們應該清醒地意識到,這種攻擊非常廣泛,入侵往往由這裏開始。預防這種攻擊還是比較容易的。IP本身的缺陷造成的安全隱患目前是無法從根本上消除的。我們只能採取一些彌補措施來使其造成的危害減少到最小的程度。防禦這種攻擊的最最佳的方法是:每一個連接局域網的網關或路由器在決定是否允許外部的IP數據包進入局域網之前,先對來自外部的IP數據包進行檢驗。如果該IP包的IP源地址是其要進入的局域網內的IP地址,該IP包就被網關或路由器拒絕,不允許進入該局域網。

這種方法雖然能夠非常好的解決問題,不過考慮到一些以太網卡接收他們自己發出的數據包,並且在實際應用中局域網和局域網之間也常常需要有相互的信任關係以共享資源,這種方案不具有較好的實際價值。另外一種防禦這種攻擊的較爲最佳的方法是當IP數據包出局域網時檢驗其IP源地址。即每一個連接局域網的網關或路由器在決定是否允許本局域網內部的IP數據包發出局域網之前,先對來自該IP數據包的IP源地址進行檢驗。

如果該IP包的IP源地址不是其所在局域網內部的IP地址,該IP包就被網關或路由器拒絕,不允許該包離開局域網。這樣一來,攻擊者至少需要使用其所在局域網內的IP地址才能通過連接該局域網的網關或路由器。如果攻擊者要進行攻擊,根據其發出的IP數據包的IP源地址就會非常容易找到誰實施了攻擊。因此建議每一個ISP或局域網的網關路由器都對出去的IP數據包進行IP源地址的檢驗和過濾。如果每一個網關路由器都做到了這一點,IP源地址欺騙將基本上無法奏效。在當前並不是每一網關及路由器都能做到這一點的情況下,網絡系統員只能將自己管理的網絡至於儘可能嚴密的監視之下,以防備可能到來的攻擊。(T114)

利用IP地址欺騙突破防火牆深層技術的相關內容就爲大家介紹完了,希望大家多多掌握這方面的知識。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章