駭客可以利用TCPIP發動哪些攻擊?

TCP/IP是網路最基本的通訊協議,任何廠家生產的計算機系統,只要遵守該協議,就能與因特網互聯互通。但是,TCP/IP存在的一些缺陷,常常被不法分子利用,成為他們發動攻擊的一種手段。

2020年初,駭客對著名程式碼託管平臺GitHub發動攻擊,GitHub和旗下很多子站點均被提示有資訊保安問題,大批訪問使用者被擋在網站之外。

這樣的例子還有很多,14年微軟賬號系統被入侵事件,16年美國網路癱瘓事件等等等等。

今天,我們一起來看看TCP/IP常見的3種攻擊手段。

SYN Flood

要建立一個TCP連線,需要經過三次握手,過程如下:

1。客戶端向伺服器傳送SYN包,並進入SYN_SENT狀態,等待伺服器確認;

2。伺服器收到SYN包並進行確認,同時向客戶端傳送SYN包,即SYN+ACK包。此時伺服器進入SYN_RECV狀態。

3。客戶端收到伺服器的SYN+ACK包後,向伺服器傳送確認包ACK,傳送完畢後,TCP連線成功,完成三次握手。

駭客可以利用TCP/IP發動哪些攻擊?

為了保證三次握手TCP連線的順利建立,TCP協議在三次握手過程中,設定了一些異常處理機制。

第三步客戶端傳送確認包ACK後,如果伺服器沒有收到,會一直處於第二步的SYN_RECV狀態,並將客戶端IP加入等待列表,重發SYN+ACK報文試圖重試。

重發一般會進行3-5次,大約30秒左右輪詢一次等待列表重試所有客戶端。

SYN_RECV狀態如果一直存在,超過了伺服器承受上限後,新的SYN報文將不再被接收,也就會拒絕新的TCP連線的建立。

SYN Flood正是利用了這一設定來攻擊目標,攻擊者偽裝大量的IP地址給伺服器傳送SYN報文,由於IP地址不存在,客戶端不會給伺服器傳送最終確認包ACK,使伺服器要維持一個龐大的 等待列表,不斷重試傳送SYN+ACK報文,SYN_RECV佇列被佔滿後,伺服器也就徹底崩潰了。

駭客可以利用TCP/IP發動哪些攻擊?

怎麼防SYN Flood呢?最簡單的方法是使用DDoS雲清洗。DDoS不僅能清洗SYN Flood攻擊,對其他型別的DDoS攻擊也有效,例如UDP Flood、CC等。

CDN也有緩解這類攻擊的作用,前提是攻擊量沒有達到CDN最大承受能力,否則就會直接穿透到達源站,很快源站也會失守,徹底淪陷。如果網站/APP經常遭受DDoS攻擊,最好使用DDoS雲清洗。

IP欺騙

我們知道,IP是識別身份的重要資訊,所以它自然也成了駭客們極力想利用的物件。

駭客可以利用TCP/IP發動哪些攻擊?

假設一個使用者,已經和伺服器建立正常的TCP連線,攻擊者會透過構造TCP資料,將自己的IP偽裝為與這名使用者相同的IP,並向伺服器傳送一個帶有RSI位的TCP資料段。

伺服器收到這一資料後,會認為從使用者傳送的連線有錯誤,將清空緩衝區中建立好的連線。

這樣一來,這名使用者再發送資料時,伺服器已經沒有連線,無法響應,使用者必須從新建立連線。

駭客會偽造大量的IP地址,向目標傳送RST資料,使伺服器無法對正常使用者服務,這就是IP欺騙攻擊。

TCP重置攻擊

TCP連線有一個特別的設定,如果客戶端發現到達的報文段,對於相關連線而言是不正確的,TCP會發送一個重置報文段斷開連線,防止連線被用來進一步交換資訊。

攻擊者正是利用了這一機制,透過向通訊的一方或者雙方傳送偽造的重置報文段,讓通訊方提前關閉TCP連線。雖然伺服器仍然可以建立一個新的TCP連線恢復通訊,但還是很可能會被攻擊者重置。

TCP重置攻擊有兩種。

一種是攻擊者截獲了通訊雙方的交換資訊,讀取資料包上的序列號和確認應答號後,得出偽裝的TCP重置報文段的序列號。

另一種是攻擊者無法擷取交換資訊,無法確定重置報文段的序列號,但透過批次發出不同序列號的重置報文,盲猜序列號,一旦猜中,攻擊目的便達成了。