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 <touch@isi.edu>, Joe. Defending TCP Against Spoofing Attacks. tools.ietf.org. [2019-01-10]. (原始內容存檔於2019-01-10) (英語). 

外部連結

編輯