德國波鴻魯爾大學研究人員發現了一個針對SSH協定的前綴截斷攻擊,稱作Terrapin,其涉及的漏洞包括CVE-2023-48795、CVE-2023-46445與CVE-2023-46446。Terrapin攻擊能夠破壞SSH安全通道的完整性,攔截和修改客戶端與伺服器間傳送的資料,以達到洩漏資料與冒用身分等目的。不過研究人員也指出,在網際網路流量中應用Terrapin攻擊相對困難,本地網路是較為合理的攻擊模型。

SSH(Secure Shell Protocol)是一種用於網路服務安全存取的協定,可在不安全的網路中提供安全資料通訊。這種協定在各種遠端操作中被廣泛應用,像是讓用戶可以安全地從遠端位置登入到另一臺電腦,或是在遠端伺服器安全地執行命令。而SSH也可用於檔案傳輸,或是將本地連接埠的流量轉送到遠端連接埠。

SSH運用先進加密技術,進而確保資料在傳輸過程的安全性和隱私性,而且SSH也支援多種身分驗證機制,強化存取控制的安全性。使用SSH加密的資料在傳輸到目的地時能夠保持原始狀態,免受各種形式的竄改。同時,SSH還能有效抵抗中間人攻擊,這使其成為保護資料傳輸安全的理想選擇。

不過現在研究人員發現SSH可受Terrapin攻擊,這代表SSH的安全性正受到挑戰。SSH協定的重要組成部分Binary Packet Protocol,已不再能作為安全通道的保證。在SSH框架下,所有通訊內容包括命令、檔案傳輸和資料,都是透過Binary Packet Protocol這個二進位封包協定傳輸。

SSH通道的完整性在3種被廣泛使用的加密模式下可被破壞,攻擊者透過前綴截斷攻擊,即可刪除SSH通道開頭的加密封包,但客戶端和伺服器卻不會發現。研究團隊說明了這項攻擊的實際應用,透過完全破壞SSH擴充協商(RFC 8308),攻擊者可以降級用於身分驗證的公鑰演算法,甚至是關閉OpenSSH 9.5針對擊鍵時間攻擊(Keystroke Timing Attacks)所加入的防禦機制。

同時,研究人員還發現Terrapin攻擊結合其他實作缺陷,還可進行特定攻擊,像是結合AsyncSSH內部狀態機缺陷,可讓攻擊者將受害者的登入重新定向到由攻擊者控制的命令介面。

Terrapin攻擊要能成立,首先需要存在主動的中間人攻擊者,能夠攔截並修改TCP/IP層的連線流量,此外,還需要溝通ChaCha20-Poly1305或是任意CBC密碼,並結合Encrypt-then-MAC作為連接加密模式。研究人員提到,因為Terrapin攻擊利用了SSH傳輸層協定的弱點,結合OpenSSH在10多年前所添加,並且已被廣泛採用的加密演算法和加密模式,因此幾乎所有使用者皆暴露在風險之中。

由於Terrapin攻擊需要有主動的中間人發動攻擊,這代表攻擊者必須要透過某種方式,攔截和修改客戶端與伺服器端的傳輸資料,這在實際網際網路的運作上有其困難度,因此Terrapin攻擊在本地網路更容易被執行。

不過,即便是用戶已經對SSH客戶端和伺服器端進行安全修補,也不代表SSH連接就完全安全,具體來說,OpenSSH和其他供應商實作的嚴格金鑰交換對策,需要客戶端和伺服器端雙方支援才會生效。所以當一個已修補的SSH客戶端連接到未修補的SSH伺服器,或是反之,連接都仍然處於易受攻擊的狀態。

研究人員提供了一個以Go編寫的漏洞掃描工具,該工具是一個簡單控制臺應用程式,可用於檢查SSH伺服器或是客戶端是否易受Terrapin攻擊。漏洞掃描工具會連接到SSH伺服器或是監聽傳入的用戶端連線,以偵測是否使用易受攻擊的加密模式,以及是否支援嚴格金鑰交換對策,不過該工具並不會執行正式交握,也不實際執行攻擊。該工具程式碼已經在GitHub上公開。

熱門新聞

Advertisement