複製鏈接
請複製以下鏈接發送給好友

地址欺騙攻擊

鎖定
IP地址被用來在網絡計算機之間發送以及接收信息,因此,每個信息包裏都包含了IP地址,這樣,雙方才能發送到正確的對方,對方也才能知道來源是正確的。
當IP欺騙被使用的時候,包裏面的就不再是真實的IP了,取而代之的是偽造的IP地址,這樣,看上去包就是由那個IP發出的,如果對方回覆這個信息,那麼數據將會被髮送到偽造的IP上,除非黑客決定重定向該信息到一個真實的IP上。
IP欺騙被用來從事非法活動,破壞網絡安全。
中文名稱
地址欺騙攻擊
英文名稱
false address attack
定  義
利用盜用的終端號碼進行的攻擊。
應用學科
通信科技(一級學科),網絡安全(二級學科)
中文名
地址欺騙攻擊
外文名
false address attack
定    義
利用盜用的終端號碼進行的攻擊。
應用學科
通信科技,網絡安全
IP欺騙是利用主機之間的正常信任關係,偽造他人的IP地址達到欺騙某些主機的目的。IP地址欺騙只適用於那些通過IP地址實現訪問控制的系統。實施IP欺騙攻擊就能夠有效地隱藏攻擊者的身份。IP地址的盜用行為侵害了網絡正常用户的合法權益,並且給網絡安全、網絡正常運行帶來了巨大的負面影響。

地址欺騙攻擊原理

所謂IP欺騙,就是利用主機之間的正常信任關係,偽造他人的IP地址達到欺騙某些主機的目的。IP地址欺騙只適用於那些通過IP地址實現訪問控制的系統。實施IP欺騙攻擊就能夠有效地隱藏攻擊者的身份。IP地址盜用的行為非常常見,IP地址的盜用行為侵害了網絡正常用户的合法權益,並且給網絡安全、網絡正常運行帶來了巨大的負面影響,因此研究IP地址盜用問題,找到有效的防範措施,是當前的一個緊迫課題。IP地址欺騙攻擊是指攻擊者使用未經授權的IP地址來配置網上的計算機,以達到非法使用網上資源或隱藏身份從事破壞活動的目的。TCP/IP協議早期是為了方便地實現網絡的連接,但是其本身存在一些不安全的地方,從而使一些別有用心的人可以對TCP/IP網絡進行攻擊,IP欺騙就是其中的一種。IP欺騙是利用了主機之間的正常信任關係來進行的,如Unix主機中,存在着一種特殊的信任關係。假設用户在主機A和主機B上各有一個賬號ABC,用户在主機A上登錄時要輸入A上的賬號ABC,在主機B上登錄時要輸入B上的賬號ABC,兩主機將ABC當作是互不相關的賬號,這給多服務器環境下的用户帶來了諸多的不便,為了杜絕這個問題,可以在主機A和主機B間建立起兩個賬號的相互信任關係。
IP協議是TCP/IP協議組中面向連接、非可靠傳輸的網絡協議,它不保持任何連接狀態的信息,它的工作就是在網絡中發送數據報,並且保證它的完整性,如果不能收到完整的數據報,IP會向源地址發送一個ICMP錯誤信息,期待重新發送,但是這個ICMP報文可能會丟失。IP不提供保障可靠性的任何機制,每個數據包被鬆散地發送出去,可以這樣對IP堆棧進行更改,在源地址和目的地址中放入任何滿足要求的IP地址,即提供虛假的IP地址。
正是因為IP協議自身的缺陷給IP欺騙提供了機會。但TCP協議要對IP包進行進一步地封裝,它是一種相對可靠的協議,TCP協議作為保障兩台通訊設備之間數據包順序傳輸協議,是面向連接的,它需要連接雙方確認同意才能進行數據交換。它的可靠性是由數據包中的多位控制字來提供的,如數據序列(SYN)和數據確認(ACK)。TCP向每個數據字節分配一個序列號,並向已經成功接收的,源地址所發送的數據包表示確認,在確認的同時還攜帶下一個期望獲得的數據序列號。TCP序列編號可以看作是32位的計算器從0到232—1排列,每一個TCP連接交換的數據能順序編號,通過ACK對所接收的數據進行確認,並指出下一個期待接收的數據序列號。TCP協議在雙方正式傳輸數據之前,需要用“三次握手”來建立一個穩健的連接。在實際利用TCP/IP協議進行通信時,為了提供對TCP模塊的並行訪問,TCP提供了特殊的用户接收(即端口)。端口是操作系統內核用來標示不同的網絡進程,是嚴格區分傳輸層入口的標示。TCP端口與IP地址一起提供網絡端到端的通信。在Internet上,任何一個連接都包含了源IP地址、源地址端口、目的IP地址和目的地址端口。服務器程序一般都是被綁定在標準的端口號上。如FTP服務被綁定在21號端口,WWW服務被綁定在80號端口,Telenet服務被綁定在23號端口。

地址欺騙攻擊欺騙過程

在攻擊某一主機前,首先要查找被這台主機信任的計算機。計算機用户可以通過許多命令或端口掃描確定下來,許多黑客就是利用端口掃描技術非常方便地在一個局域網絡內捕捉主機間的相互信任關係,為進一步的IP欺騙提供了機會。假設主機Z企圖入侵主機A,而主機A信任主機B。如果冒充主機B對主機A進行攻擊,簡單使用主機B的IP地址發送SYN標誌給主機A,但是當主機A收到後,並不把SYN+ACK發送到攻擊的主機上,而是發送到真正的主機B上去,而主機B根本沒有發送SYN請求,導致欺騙失敗。所以如果要冒充主機B,首先要看主機B是否關機,否則應設法讓主機B癱瘓,確保它不能收到任何有效的網絡數據。事實上有許多方法可以達到這個目的,如SYN洪水攻擊、TTN、Land等攻擊。
對目標主機A進行攻擊,必須知道主機A的數據包序列號。可以先與被攻擊主機的一個端口建立起正常連接,並記錄主機A的ISN,以及主機Z到主機A的大致的RTT(Round Trip Time)值。這個步驟需要重複多次以便得出RTT的平均值。主機Z知道了主機A的ISN的值和增加規律(例如每秒增加12800,每次連接增加64000)後,也就知道了從主機Z到主機A需要RTT/2的時間。此時必須立即進行入侵,否則在這期間有其他主機與主機A連接,ISN將比之前得到的多64000。估計出ISN的大小,就開始着手進行攻擊。當然虛假的TCP數據包進入目標主機時,如果剛才估計的序列號準確,進入的數據將放置在目標主機的緩衝區中。但是在實際攻擊過程中往往沒有這麼幸運。如果估計的序列號小於正確值,那麼將被放棄。而如果估計的序列號大於正確值,並且在緩衝區的大小之內,那麼該數據被認為是一個將來的數據,TCP模塊等待其他缺少的數據。如果估計序列號大於期待的數值且不在緩衝區之內,TCP將會放棄它並返回一個期待獲得的數據序列號。
主機Z向主機A發送帶有SYN標誌的數據段請求連接,只是源IP地址寫成主機B的IP地址,而且目的端口是TCP專用的513號端口(rlogin服務端口)。主機A向主機B回送SYNal-ACK數據段,但主機B已經無法響應,主機B的TCP層只是簡單的丟棄來自主機A的回送數據段。目標主機立刻對連接請求作出反應,發更新SYNd-ACK確認包給被信任主機,因為被信任主機B仍然處於癱瘓狀態,它當然無法收到這個包,緊接着攻擊者主機Z向目標主機A發送ACK數據包。
如果攻擊者估計正確的話,目標主機將會接收到該ACK,連接就正式建立,可以進行數據傳輸了。但是主機A仍然會向主機B發送數據,而不是向主機Z發送,主機Z仍然無法接收到主機A發往主機B的數據包,所以主機Z必須按照rlogin協議的標準假冒主機B向主機A發送類似#cat++>>~/.rhosts這樣的命令,主機A就會與主機Z建立信任關係,開始相互的數據傳送,入侵也就完成了。完成本次攻擊後,就可以不用口令直接登錄到目標主機上。
這樣,一次網站的IP欺騙就已經完成,在目標機上得到了一個Shell權限,接下來就是利用系統的溢出或錯誤配置擴大權限,當然最終目的還是要獲得服務器的root權限。 [1] 

地址欺騙攻擊防範對策

IP欺騙之所以可以實施,是因為信任服務器的基礎建立在網絡地址的驗證上,在整個攻擊過程中最難的是進行序列號的估計,估計精度的高低是欺騙成功與否的關鍵。針對這些,可採取如下的對策:

地址欺騙攻擊禁止基於IP地址的信任關係

IP欺騙的原理是冒充被信任主機的IP地址,這種信任關係是建立在基於IP地址的驗證上,如果禁止基於IP地址的信任關係,使所有的用户通過其他遠程通信手段進行遠程訪問,可徹底地防止基於IP地址的欺騙。

地址欺騙攻擊安裝過濾路由器

如果計算機用户的網絡是通過路由器接入Internet的,那麼可以利用計算機用户的路由器來進行包過濾。確信只有計算機用户的內部LAN可以使用信任關係,而內部LAN上的主機對於LAN以外的主機要慎重處理。計算機用户的路由器可以幫助用户過濾掉所有來自於外部而希望與內部建立連接的請求。通過對信息包的監控來檢查IP欺騙攻擊將是非常有效的方法,使用netlog或類似的包監控工具來檢查外接口上包的情況,如果發現包的兩個地址(即源地址和目的地址)都是本地域地址,就意味着有人要試圖攻擊系統。
[1] 

地址欺騙攻擊使用加密法

阻止IP欺騙的另一個明顯的方法是在通信時要求加密傳輸和驗證。當有多個手段並存時,加密方法最為合適。

地址欺騙攻擊使用隨機化的初始序列號

IP欺騙另一個重要的因素是初始序列號不是隨機選擇或者隨機增加的,如果能夠分割序列號空間,每一個連接將有自己獨立的序列號空間,序列號仍然按照以前的方式增加,但是在這些序列號空間中沒有明顯的關係。
在網絡普及的今天,網絡安全已經成為一個不容忽視的問題。對IP欺騙,最重要的是作好安全防範。 [1] 
參考資料