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