Terrapin je útok na zkrácení prefixu protokolu SSH, který narušuje integritu zabezpečeného komunikačního kanálu. Pečlivou úpravou sekvenčních čísel během handshaku může útočník odstranit libovolné množství zpráv odeslaných klientem nebo serverem na začátku použití zabezpečeného kanálu, aniž by si toho jedna ze stran všimla.
Útok lze prakticky provést, což útočníkovi umožní snížit úroveň zabezpečení tím, že odstraní zprávy určené k vyjednávání rozšíření (RFC 8308) protokolu SSH. Zkrácení může vést k použití méně bezpečných algoritmů ověřování klienta a deaktivaci specifických protiopatření například proti útokům sledujícím časování stisků kláves.
K provedení útoku v praxi musí mít útočník možnost na síťové vrstvě zachytit a modifikovat provoz (MitM). Kromě toho musí být spojení zabezpečeno buď pomocí ChaCha20-Poly1305, nebo CBC s Encrypt-then-MAC. Tyto režimy jsou velmi rozšířené a Terrapin se tedy vztahuje na většinu běžných spojení uskutečněných pomocí mnoha implementací SSH.
Chyba dostala tři samostatná označení: CVE-2023–48795 popisuje problém protokolu týkající se mnoha implementací, CVE-2023–46445 a CVE-2023–46446 se pak týkají konkrétních zneužití v implementaci AsyncSSH.
Objevitelé zranitelnosti připravili jednoduchou konzolovou utilitu napsanou v jazyce Go, pomocí které lze zjistit, zda je server nebo klient SSH zranitelný. Skener se připojí k serveru nebo naslouchá příchozímu připojení klienta a zjistí, zda jsou nabízeny zranitelné režimy šifrování a zda je podporováno protiopatření striktní výměny klíčů. Utilita neprovádí plnohodnotný handshake ani samotný útok.
Pokud nechcete čekat na vydání opravy pro svou oblíbenou implementaci SSH, můžete zranitelnost obejít dočasným zakázáním dotčených algoritmů chacha20-poly1305@openssh.com
a -etm@openssh.com
MAC v konfiguraci svého serveru SSH (nebo klienta) a místo nich použít neovlivněné algoritmy, například AES-GCM. Pozor ovšem na to, že jiný zvolený algoritmus musejí podporovat obě strany, jinak se nedomluví.
(Upozornil Ondřej Caletka.)