作者 |吳延占 上海控安可信軟件創新研究院研發工程師
來源 |鑒源實驗室
引言:隨著計算機、控制與網絡技術的飛速發展,信息化時代已經到來。TCP協議作為可靠性傳輸協議,在工業自動化、軌道交通、新能源等領域的數據傳輸方面得到了廣泛使用。在使用TCP協議做數據傳輸的的同時,TCP協議網絡安全問題也不容忽視。在介紹TCP協議網絡安全攻擊之前,首先要了解TCP協議的概念、主要功能、主要特點、報文格式以及相應的工作方式,才能進一步了解到TCP協議網絡安全攻擊,更好地防范TCP攻擊。
01TCP協議
傳輸控制協議(TCP,Transmission Control Protocol)是一種面向連接的、可靠的、基于字節流的傳輸層通信協議,由IETF的RFC 793 [1] 定義。
TCP位于OSI(Open System Interconnection)七層模型中的傳輸層。不同于傳輸層其它協議,TCP具有獨立的、可對數據流進行分片成適當長度的報文字段、傳輸可靠的優點。當收到上層應用層數據流后,根據數據鏈路層的最大傳輸單元(MTU)對數據流進行分割處理,然后依次進入網絡層、數據鏈路層對數據封裝處理,進而發送到相應的接收端。
TCP協議工作流程如下圖如下:
圖 1 TCP協議工作流程圖
由上圖可以看出,TCP協議需要三次握手建立連接并且包含相應的序列號、確認號,當斷開連接時需要四次揮手才能正常斷開,屬于安全、可靠性連接。
02TCP攻擊與防御
TCP攻擊是指利用TCP協議的設計缺陷或漏洞,對目標主機或網絡進行攻擊的行為。TCP攻擊包括TCP SYN泛洪攻擊[2]、TCP SYN掃描攻擊、TCP FIN掃描、TCP LAND攻擊[3]、TCP中間人攻擊[4]和TCP連接重置攻擊等。本文主要針對以上幾種攻擊做詳細介紹。
另外,TCP防御策略[5]也是多種多樣,本文也是在每種攻擊介紹完畢之后,簡單介紹相應的防御策略。
2.1 TCP SYN泛洪攻擊
(1)攻擊實現
TCP SYN泛洪攻擊,英文為“TCP SYN Flood Attack”。此攻擊是利用TCP三次握手過程存在的漏洞,達到一種DOS(Denial of Service)攻擊目的。
當攻擊者發送此攻擊時,被攻擊主機會在短時間內接收到大量的TCP SYN請求連接,如果被攻擊對象沒有相應防御策略,短時間內可能會占用大量的主機資源,或者進一步將主機資源耗盡,從而拒絕其它應該正常連接的設備進行正常連接,最終達到了使被攻擊主機拒絕服務的目的。
具體實現如下圖所示:
圖2 TCP SYN泛洪攻擊
由上圖可知,攻擊者利用TCP協議中的三次握手過程中存在的漏洞,向目標主機發送大量偽造的TCP SYN連接請求,目標主機在接收到這些請求后會向攻擊者回復TCP SYN-ACK包,然后等待攻擊者響應TCP ACK包,完成TCP連接的建立。但攻擊者并不會回復TCP ACK包,而是會忽略目標主機發來的TCP SYN-ACK包并持續發送TCP SYN連接請求,從而導致目標主機長時間等待TCP連接的建立,占用大量資源,最終導致目標主機無法正常工作。
(2)防御策略
TCP SYN泛洪攻擊是一種常見的DoS攻擊手段,可以通過以下幾種方式進行防范:
安裝防火墻:可以利用防火墻的過濾功能,從而間接地過濾掉一部分可能存在的惡意的TCP數據包,從而保護目標主機。
用TCP SYN Cookie機制:TCP SYN Cookie是一種防止TCP SYN泛洪攻擊的機制,它可以在不存儲連接信息的情況下,使被攻擊主機正確處理TCP連接請求。
限制TCP連接數:通過限制TCP連接數,可以減少TCP SYN泛洪攻擊的危害。
更新系統和應用程序:根據已經檢測到的或者公眾已經熟知的漏洞,及時更新系統和應用程序,從而提高系統的安全性(此防御策略對后面其他攻擊也同樣適用)。
2.2 TCP SYN掃描攻擊
TCP SYN掃描攻擊,英文“TCP SYN Scan Attack”。此攻擊可以掃描到被攻擊主機所支持的TCP開放端口,從而可以進一步發現被攻擊主機的一些其他信息。
(1)攻擊實現
具體實現如下圖所示:
圖3 TCP SYN掃描攻擊
由上圖可以看出,TCP SYN掃描攻擊是利用TCP協議的三次握手過程中實現的,這個也是TCP三次握手存在的漏洞。實現可以分為三步,當攻擊者向被攻擊主機某個端口發送第一次握手連接(即TCP SYN連接請求),如果被攻擊主機此端口在TCP監聽狀態,則會向攻擊者發送第二次握手包(即TCP SYN-ACK包,作為第一次握手的響應包)。
根據TCP協議連接時三次握手規范,此時被攻擊主機在等待攻擊者發送第三次握手包(即TCP ACK包,作為第二次握手的響應包)。但此時攻擊者并不會響應第三次握手,而是會迅速發送TCP RST包,也會避免被及對方記錄連接信息。以一種無痕跡的方式獲取到了目標主機的開放端口。
當攻擊者獲取到某一個端口狀態時,繼續切換到下一端口,按照以上步驟再次發送TCP SYN掃描攻擊,直到所有端口掃描完畢。
(2)防御策略
針對TCP SYN掃描攻擊,也可以制定一些相應的方法進行防御,主要實現手段有以下幾種:
安裝防火墻:可以利用防火墻的過濾功能,從而間接地過濾掉一部分可能存在的惡意的TCP數據包,從而保護目標主機。
關閉不經常使用服務:關閉不經常使用的一些服務,不允許隨意安裝APP,也可以減少系統的漏洞,使系統的安全性進一步提高。
使用IDS/IDS(入侵檢測系統、入侵防御系統)防御設備:入侵檢測、防御系統也可以有針對性地、及時地發現攻擊者是否在進行TCP SYN掃描,使得目標機系統安全得到提升。
2.3 TCP FIN掃描攻擊
TCP FIN掃描攻擊,英文“TCP FIN Scan Attack”。TCP FIN掃描攻擊屬于TCP協議存在的一種漏洞,TCP FIN 掃描攻擊與TCP SYN掃描攻擊實現的目的一致,都是為了獲得目標主機開放的端口,從而獲取目標主機的一些其他信息。
(1)攻擊實現
TCP FIN掃描攻擊與TCP SYN掃描攻擊不同的地方,是TCP FIN掃描攻擊是利用TCP協議斷開連接時的四次握手機制,即攻擊者向被攻擊對象發送TCP FIN包,如果被攻擊對象此時對應的端口是開放的,被攻擊主機會及時相應TCP SRT的數據包。相反,如果被攻擊主機此端口沒有開放,則攻擊主機不會收到TCP RST數據包。
具體實現如下圖所示:
圖4 TCP FIN掃描攻擊
由上圖可以看出,TCP FIN掃描攻擊是一種無痕跡掃描,攻擊掃描期間并不會與對方建立連接。因此也不會被對方記錄連接信息。
當攻擊者獲取到某一個端口狀態時,可以繼續切換到下一端口,按照以上步驟再次發送TCP FIN掃描攻擊,直到所有端口掃描完畢。
(2)防御策略
針對TCP FIN掃描攻擊,也可以制定一些相應的方法進行防御。通用的防御方法如2.2章節的防御策略,針對TCP FIN掃描也是適用的。
另外實現TCP FIN掃描攻擊的防御,也可以通過以下方式:
安裝TCP Wrapper:TCP Wrapper也是網絡安全中常用的一種安全工具,其實現方式與iptables相似,可以根據IP地址、主機名、服務名等來控制網絡連接,從而提高系統的安全性。
2.4 TCP LAND攻擊
TCP Land攻擊,英文為“TCP local area network denial attack”,TCP Land攻擊是一種利用TCP協議中的漏洞進行的攻擊。
它的主要原理是偽造一個TCP數據包,并在該數據包的源IP地址和目標IP地址中都填寫相同的IP地址,從而使目標主機陷入死循環,無法與其他主機通信。
(1)攻擊實現
具體實現如下圖所示:
圖5 TCP LAND攻擊
由上圖可以看出,TCP LAND攻擊利用了TCP協議中的SYN標志位。攻擊者發送一個偽造的TCP SYN數據包(SYN標志位被設置為1)給目標主機,并且源IP地址和目標IP地址都被設置為目標主機的IP地址。當目標主機接收到這個數據包時,它會認為這是一個新的TCP連接請求,并嘗試發送一個SYN ACK數據包作為響應。但是,由于源IP地址和目標IP地址都為目標主機本身,目標主機會一直向自己發送數據,最終導致系統崩潰或網絡擁堵。
(2)防御策略
TCP LAND攻擊是一種常見的DoS攻擊手段,在以上其他章節介紹的入侵檢測防御系統、對操作系統升級等通用防御策略基礎上,還可以通過以下幾種方式進行防御:
配置防火墻:防火墻可以進行配置,限制TCP的源地址是本地地址的情況下,存在TCP SYN的數據流,從而避免惡意的TCP LAND攻擊。
配置網絡流量監控系統:實時檢測網絡中的流量信息,當發現異常流量時及時上報提醒,防止TCP LAND攻擊等類型的拒絕服務攻擊。
2.5 TCP 中間人攻擊
TCP中間人攻擊,包括TCP會話劫持和TCP連接重置兩種實現方式,本文以TCP會話劫持為例進行講解。
TCP會話劫持(TCP session hijacking),是指攻擊者通過監聽或者篡改網絡流量,獲取到合法用戶的TCP會話信息,然后利用這些信息來冒充合法用戶與服務器或其他合法用戶進行通信的一種攻擊行為。攻擊者利用TCP會話劫持可以實施多種攻擊,如竊取用戶信息、篡改用戶數據、劫持會話等。
(1)攻擊實現
以攻擊者冒充客戶端為例,其實現如下圖所示:
圖6 中間人攻擊
由上圖可以看出,TCP中間人攻擊是攻擊者在網絡中對傳輸的數據進行監聽和分析,當攻擊者獲取到客戶端的TCP會話序列號及確認號后,就可以偽造TCP數據包來冒充客戶端與服務器進行通信。攻擊者通過這種方式可以繞過服務器的認證和授權機制,進而實現各種攻擊目的。
(2)防御策略
通過以上關于TCP 中間人攻擊實現原理,可以通過以下幾種方式進行防范:
使用加密協議:可以使用TLS、SSH等,對數據傳輸過程中加密、對原始數據進行加密,從而避免數據被攻擊者竊取。
對服務器和應用程序進行安全加固,如關閉不必要的服務和端口、限制訪問權限、采用安全認證機制等,提高系統的安全性。
03小 結
TCP攻擊不同的方式各具有不同的特點,但都會導致目標主機或網絡的服務中斷或降級。為了防范TCP攻擊,主機必須有相應的安全防御策略。尤其是在網絡信息化的今天,一些對數據保密性要求較高、又需要網絡傳輸的的數據,數據安全可以說是重于泰山,安全防御策略必不可少,更是需要防范TCP攻擊。
-
通信協議
+關注
關注
28文章
915瀏覽量
40442 -
計算機
+關注
關注
19文章
7540瀏覽量
88644 -
網絡安全
+關注
關注
10文章
3193瀏覽量
60208 -
TCP
+關注
關注
8文章
1378瀏覽量
79305
發布評論請先 登錄
相關推薦
評論