呂方興
(菏澤學院計算機與信息工程系 山東 菏澤 274015)
TCP/IP協(xié)議是目前使用最廣泛的協(xié)議,但是由于在設計時,考慮更多的是協(xié)議的高效性,而忽視了對安全性的設計,因此,利用TCP/IP協(xié)議進行的攻擊在整個計算機犯罪中不在少數(shù)。
網(wǎng)絡中結點的IP地址不是固定不變的,是一個公共的數(shù)據(jù),因此攻擊者可以直接修改結點的IP地址,冒充某個可信的結點IP地址,再進行攻擊。因此IP地址不能作為可信任的唯一認證方式。
源地址欺騙主要由兩種形式。
(1)主機A是攻擊主機,它冒充B主機(信任主機)與主機C進行對話。A主機在發(fā)出數(shù)據(jù)包后,攻擊者通過技術手段將數(shù)據(jù)包的源地址更改為B主機的地址,此時C主機的數(shù)據(jù)仍會發(fā)送給B。就是說,A主機不能得到C主機返回的數(shù)據(jù)信息,不過在一般情況下,攻擊者不需要知道返回數(shù)據(jù)是什么也可以實現(xiàn)攻擊,他們可以用預測返回數(shù)據(jù)包的方法來實施攻擊。
(2)另一種攻擊稱為“中間人”攻擊。攻擊者會截獲目標主機返回給真實主機的數(shù)據(jù)包,從而與被攻擊主機建立完整的對話,這時入侵者可以看到入侵的結果。為達到這一目的,攻擊主機必須潛入目標主機和真實主機之間的路徑上,這在路徑的末端是很容易實現(xiàn)的,在路徑中間是很復雜的。因為根據(jù)IP網(wǎng)絡的特點,中間的路徑變化是很大的。在計算機之間改變路徑,從而引導攻擊計算機,這取決于網(wǎng)絡的拓撲結構以及網(wǎng)絡和網(wǎng)絡之間使用的路由系統(tǒng)。這一操作可能很容易,也可能很復雜。
與路由器源路由攻擊一樣,在TCP/IP協(xié)議中,為測試目的,IP數(shù)據(jù)包設置了一個選項——IP Source Routing,該選項可以直接指明到達結點的路由。攻擊者可以利用這一特點進行欺騙,以進行非法連接。攻擊者可以冒充某個可信結點的IP地址,構造一個通向某服務器的直接路徑和返回路徑,利用可信用戶作為服務器的路由中的最后一站,就可以向服務器發(fā)出請求,進行攻擊了。在TCP/IP協(xié)議的兩個傳輸層協(xié)議TCP和UDP中,由于UDP是面向無連接的,因而沒有初始化的連接建立過程,所以相對而言,UDP更容易被欺騙。
RIP協(xié)議用來在局域網(wǎng)中發(fā)布動態(tài)路由信息,它是為了在局域網(wǎng)的結點提供一致路由選擇和可達性信息而設計的。但各結點對收到的信息是不檢查其真實性的,TCP/IP協(xié)議本身也沒有提供這一功能。因此攻擊者可以在網(wǎng)絡中發(fā)布假的路由信息,利用ICMP的重定向信息欺騙路由器或主機,將正常的路由器定義為失效的路由器,從而達到非法存取的目的。
TCP/IP協(xié)議只能從IP地址上鑒別通信,而不能對結點上的用戶進行有效的身份驗證,因此服務器不能有效地鑒別登錄用戶的合法性。目前對用戶身份的鑒別主要依靠服務器軟件提供的用戶控制機制,如用戶登錄用戶名和密碼,雖然密碼是被加密存放在服務器上的,而且多為單向加密算法(如MD5),但由于密碼是靜態(tài)的,所以無法抵御暴力的破解,如果用戶密碼不復雜,則很容易被黑客破解。攻擊者獲得有效用戶名和密碼后,就可以進一步攻擊了。
雖然TCP協(xié)議在連接時使用了序列號來鑒別數(shù)據(jù)包的有效性,當接收到與預測序列號不一樣的序列號的數(shù)據(jù)包,該包將被視為無效。但由于TCP的序列號是有一定規(guī)律的,經(jīng)過分析是可預測的,因此攻擊者可以構造一個TCP序列,從而對網(wǎng)絡上的可信結點實施攻擊。
TCP是一個面向連接的協(xié)議,是可靠的傳輸層協(xié)議。通信雙方必須經(jīng)過一個三次“握手”才能建立一條有效的通信連接。假設主機A要和主機B通信,正常的TCP連接要求使用三次“握手”:
(1)主機A發(fā)送一個SYN數(shù)據(jù)包給B。
(2)主機B回答一個SYN+ACK的數(shù)據(jù)包給A,以表示確認第一個數(shù)據(jù)包,并繼續(xù)確認。
(3)主機A最后發(fā)送一個ACK數(shù)據(jù)包給B,以表示確認握手,通信建立。
在上述過程中,當主機B接收到一個SYN請求時,就會分配一塊內(nèi)存給它。對于一個給定的服務,建立的TCP連接是有限的,當達到這一限度時,服務器將拒絕其他服務請求。假設攻擊者利用地址欺騙的方式構造一個不可到達的主機,那么這時正常的三次握手將不可完成,由于目標主機要考慮到網(wǎng)絡產(chǎn)生的延誤等情況,因此會保留連接資源到一定的超時時間后才恢復。到此期間內(nèi),目標主機的資源不會主動釋放。
攻擊者利用虛假的主機向目標主機發(fā)送多個SYN請求包,由于給定的地址是無效的,因此目標主機返回的數(shù)據(jù)包將無法正確到達,這樣目標主機就會占用資源來處理等待請求,直到所有可用資源全部用完,目標主機將拒絕一切的服務請求,即使是合法的。攻擊者如持續(xù)進行這樣的攻擊,將導致目標主機資源全部耗盡,正常服務全部中斷。這就是SYN攻擊的原理。
當然,在以上的攻擊中,攻擊成功的關鍵在于構造的主機地址應是不可到達的,如果可到達,則主機接受到目標主機發(fā)送的不明來歷的回應包,將立即發(fā)送RST數(shù)據(jù)包,中斷連接,則目標主機就會中斷連接、釋放資源。
TCP/IP協(xié)議由于其高效性,稱為了事實上的國際標準,它是目前最常用的一種通用網(wǎng)絡協(xié)議。但是TCP/IP協(xié)議卻存在一些安全問題,這些安全問題可能導致多種類型的網(wǎng)絡攻擊。
[1]牛少彰.信息安全導論[M].國防工業(yè)出版社,2010.
[2]薛質(zhì),蘇波,李建華.信息安全技術基礎和安全策略[M].北京:清華大學出版社,2007.
[3]斯托林斯.網(wǎng)絡安全基礎:應用與標準[M].4 版.白國強,譯.北京:清華大學出版社,2011.