跳至內容

TCP重置攻擊

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書

TCP重置攻擊指的是使用偽造的TCP重置包干擾用戶和網站的連接[1]。這個技術可以在善意的防火牆中應用[2],但也可用於網絡審查或是攻擊,惡意中斷TCP連接,是一種旁觀者攻擊。中國大陸的防火長城會自動執行TCP重置攻擊,來阻斷不符合中國的法律法規的網站[3]

背景

[編輯]

本質上,Internet是用於單個計算機交換電子消息或IP數據包的系統。該系統包括用於承載消息的硬件(例如銅纜和光纖電纜)和用于格式化消息的形式化系統,稱為「協議」。互聯網上使用的基本協議是IP協議,通常與其他協議(例如TCP[4]UDP協議)結合使用。TCP/IP是用於電子郵件和Web瀏覽的協議集。每個協議都有一個信息塊,稱為包頭,包含在每個數據包的開頭附近。包頭含有關哪台計算機發送了數據包,哪台計算機應接收它,數據包大小等信息。

當兩台計算機之間需要雙向虛擬連接時,TCP與IP一起使用。(UDP是無連接IP協議。)兩台機器上的TCP軟件將通過交換數據包流進行通信(例如,裝有瀏覽器的電腦和Web服務器)。使用TCP連接為計算機提供了一種簡便的方法來交換對於單個數據包來說太大的數據項,例如視頻剪輯,電子郵件附件或音樂文件。儘管某些網頁對於單個數據包來說足夠小,但為方便起見,它們也是通過TCP連接發送的。

TCP重置

[編輯]

在傳輸控制協議(TCP)連接的數據包流中,每個數據包都包含一個TCP包頭。這些包頭中的每一個都包含一個稱為「復位」(RST)標誌的位。在大多數數據包中,該位設置為0,並且無效;但是,如果此位設置為1,則向接收計算機指示該計算機應立即停止使用TCP連接;它不應使用連接的標識號(端口)發送更多數據包,並丟棄接收到的帶有包頭的其他數據包,這些包頭指示它們屬於該連接。TCP重置基本上會立即終止TCP連接。

按照最初的設計,這是一個有用的工具。常見的應用是在進行TCP連接時計算機(計算機A)崩潰的情況。另一端的計算機(計算機B)將繼續發送TCP數據包,因為它不知道計算機A已崩潰。重新啟動計算機A後,它將從舊的崩潰前連接接收數據包。計算機A沒有這些數據包的上下文,也無法知道如何處理這些數據包,因此它可以向計算機B發送TCP重置。此重置使計算機B知道該連接不再起作用。計算機B上的用戶現在可以嘗試其他連接或採取其他措施。

偽造TCP重置

[編輯]

在上述情況下,TCP重置是由作為連接端點之一的計算機發送的。但操作中,第三台計算機可以監視連接上的TCP數據包,然後將包含TCP重置的「偽造」數據包發送到一個或兩個端點。偽造數據包中的報頭必須錯誤地表明它來自端點,而不是偽造者。此信息包括端點IP地址和端口號。IP和TCP包頭中的每個字段都必須設置為令人信服的偽造值,以進行偽重置,以欺騙端點關閉TCP連接。正確格式化的偽造TCP重置可能是中斷偽造者可以監視的任何TCP連接的非常有效的方法。

合理使用TCP重置注入

[編輯]

偽造的TCP重置的一個明顯的應用是在未經擁有端點的兩方同意的情況下惡意破壞TCP連接。但是,也有人設計了使用偽造TCP重置來保護網絡安全的系統。1995年被演示的一個原型「 Buster」軟件包,該軟件包會將偽造的重置發送到使用短列表中的端口號的任何TCP連接。Linux志願者在2000年提出了在Linux防火牆上實現此功能,[5]而開源的Snort早在2003年就使用TCP重置來中斷可疑連接。[6]

IETF認為,RFC3360中防火牆,負載平衡器和Web服務器進行的TCP重置是有害的。[7]

康卡斯特爭議

[編輯]

到2007年年底,康卡斯特(Comcast)開始使用偽造的TCP重置來削弱其客戶計算機上的點對點和某些群件應用程序。[8][9]這引起了爭議,隨後由Lauren Weinstein, Vint Cerf, David Farber, Craig Newmark和其他知名的互聯網開放性的創始人和倡導者成立了網絡中立性小組(NNSquad)。[10]2008年,NNSquad發布了NNSquad Network Measurement Agent,這是由John Bartas編寫的Windows應用程序,它可以檢測Comcast偽造的TCP重置並將它們與實際的端點生成的重置區分開。用於檢測重置的技術是從較早的開源「 Buster」軟件開發的,該軟件使用偽造的重置來阻止網頁中的惡意軟件和廣告。

FCC於2008年1月宣布,它將調查Comcast對偽造重置的使用,並於2008年8月21日命令Comcast終止該行為。[11]

避免

[編輯]

使用IPsec可以避免TCP重置攻擊。[12]

也有討論提出可以忽略特定TTL的TCP RST數據包(這些特定TTL信息表明了存在中間設備,例如防火長城,試圖干擾連接)來避免TCP重置攻擊。[3]

參見

[編輯]

參考資料

[編輯]
  1. ^ Wenliang,, Du,. Computer security : a hands-on approach. [Place of publication not identified]. : Chapter 13: Attacks on the TCP Protocol. ISBN 9781548367947. OCLC 1006748661. 
  2. ^ MichaelPlatts. Where do resets come from? (No, the stork does not bring them.). blogs.technet.microsoft.com. [2019-01-10]. (原始內容存檔於2019-01-10) (美國英語). 
  3. ^ 3.0 3.1 Richard Clayton, Steven J. Murdoch, and Robert N. M. Watson. Ignoring the Great Firewall of China (PDF). www.cl.cam.ac.uk. [2019-01-10]. (原始內容存檔 (PDF)於2019-06-11). 
  4. ^ TCP specification. [2020-05-19]. (原始內容存檔於2012-08-27). 
  5. ^ May 2000 Linux discussion archives. [2020-05-19]. (原始內容存檔於2016-03-03). 
  6. ^ SNORT discussion archive: TCP resets
  7. ^ Inappropriate TCP Resets Considered Harmful. [2020-05-19]. (原始內容存檔於2020-01-25). 
  8. ^ Section of Wikipedia Comcast article
  9. ^ Associated Press, Comcast Blocks Some Internet Traffic. [2020-05-19]. (原始內容存檔於2020-04-06). 
  10. ^ NNSquad home page. [2020-05-19]. (原始內容存檔於2020-05-18). 
  11. ^ Commission Orders Comcast To End Discriminatory Network Management Practices (PDF). [2020-05-19]. (原始內容存檔 (PDF)於2017-12-10). 
  12. ^ Touch <[email protected]>, Joe. Defending TCP Against Spoofing Attacks. tools.ietf.org. [2019-01-10]. (原始內容存檔於2019-01-10) (英語). 

外部連結

[編輯]