|
論壇說明 |
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
|
主題工具 | 顯示模式 |
2003-11-15, 02:57 AM | #1 |
榮譽會員
|
攻擊者如何利用IP位址欺騙突破防火牆系統?
一般的訪問控制主要在防火牆中進行設定,制定一些安全原則:
如內部區域網路的資源不允許外部網上的用戶使用;不設防區(又稱非軍事區)可以為內部或外部區域網路,其中的資源允許外部網的用戶有限度地使用;可以使外部用戶訪問非軍事區(DMZ區)的WEB伺服器等等。 深入分析研究防火牆技術,利用防火牆配置和實現 的漏洞,可以對它實施攻擊。通常情況下,有效的攻擊都是從相關的子網進行的, 因為這些網址得到了防火牆的信賴,雖說成功與否尚取決於機遇等其他因素,但對攻擊者而言很值得一試。 突破防火牆系統最常用的方法是IP位址欺騙,它同時也是其他一系列攻擊方法的基礎。之所以使用這個方法,是因為IP自身的缺點。 IP傳輸協定依據IP頭中的目的位址項來傳送IP資料包。 如果目的位址是本機網路內的位址,該IP包就被直接傳送到目的地。如果目的位址不在本機網路內,該IP包就會被傳送到網關,再由網關決定將其傳送到何處。 這是IP路由IP包的方法。 IP路由IP包時對IP頭中提供的IP源位址不做任何檢查,並且認為IP頭中的IP源位址即為傳送該包的機器的IP位址。 當接收到該包的目的主機要與源主機進行通訊時,它以接收到的IP包的IP頭中IP源位址作為其傳送的IP包的目的位址,來與源主機進行資料通訊。I P的這種資料通訊方式雖然非常簡單和高效,但它同時也是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連接就建立起來了。 B ---- SYN ----> A B <---- SYN+ACK ---- A 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登入,那麼就可以完全控制整個網路。 C(B) ---- SYN ----> A B <---- SYN+ACK ---- A C(B) ---- ACK ----> A 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源位址欺騙將基本上無法奏效。 在當前並不是每一網關及路由器都能做到這一點的情況下,網路系統員只能將自己管理的網路至於盡可能嚴密的監視之下,以防備可能到來的攻擊。 文章來源:yesky |
送花文章: 3,
|