Terrapin - en sårbarhet i SSH-protokollet som gör att du kan minska anslutningssäkerheten

En grupp forskare från Ruhr-universitetet i Bochum (Tyskland) presenterade en ny MITM-attackteknik på SSH - Terrapin, som utnyttjar en sårbarhet (CVE-2023-48795) i protokollet. En angripare som kan organisera en MITM-attack har förmågan, under anslutningsförhandlingsprocessen, att blockera sändningen av ett meddelande genom att konfigurera protokolltillägg för att minska anslutningssäkerhetsnivån. En prototyp av attackverktygslådan har publicerats på GitHub.

I OpenSSH-sammanhang låter sårbarheten dig till exempel återställa anslutningen för att använda mindre säkra autentiseringsalgoritmer och inaktivera skydd mot sidokanalattacker som återskapar input genom att analysera fördröjningarna mellan tangenttryckningar på tangentbordet. I Python-biblioteket AsyncSSH, i kombination med en sårbarhet (CVE-2023-46446) i implementeringen av den interna tillståndsmaskinen, tillåter Terrapin-attacken oss att kila in oss i en SSH-session.

Sårbarheten påverkar alla SSH-implementeringar som stöder ChaCha20-Poly1305 eller CBC-läges chiffer i kombination med ETM-läge (Encrypt-then-MAC). Till exempel har liknande funktioner varit tillgängliga i OpenSSH i mer än 10 år. Sårbarheten är åtgärdad i dagens version av OpenSSH 9.6, samt uppdateringar till PuTTY 0.80, libssh 0.10.6/0.9.8 och AsyncSSH 2.14.2. I Dropbear SSH har fixen redan lagts till i koden, men en ny version har ännu inte genererats.

Sårbarheten orsakas av det faktum att en angripare som kontrollerar anslutningstrafiken (till exempel ägaren av en skadlig trådlös punkt) kan justera paketsekvensnumren under anslutningsförhandlingsprocessen och uppnå tyst radering av ett godtyckligt antal SSH-tjänstmeddelanden skickas av klienten eller servern. Bland annat kan en angripare ta bort SSH_MSG_EXT_INFO-meddelanden som används för att konfigurera protokolltilläggen som används. För att förhindra att den andra parten upptäcker en paketförlust på grund av en lucka i sekvensnumren, initierar angriparen att skicka ett dummypaket med samma sekvensnummer som fjärrpaketet för att flytta sekvensnumret. Dummypaketet innehåller ett meddelande med flaggan SSH_MSG_IGNORE, som ignoreras under bearbetning.

Terrapin - en sårbarhet i SSH-protokollet som gör att du kan minska anslutningssäkerheten

Attacken kan inte utföras med strömchiffer och CTR, eftersom integritetsintrånget kommer att upptäckas på applikationsnivå. I praktiken är endast ChaCha20-Poly1305-chifferet känsligt för attack ([e-postskyddad]), där tillståndet spåras endast av meddelandesekvensnummer, och en kombination från läget Encrypt-Then-MAC (*[e-postskyddad]) och CBC-chiffer.

I OpenSSH 9.6 och andra implementeringar implementeras en förlängning av det "strikta KEX"-protokollet för att blockera attacken, som automatiskt aktiveras om det finns stöd på server- och klientsidan. Anknytningen avslutar anslutningen vid mottagande av alla onormala eller onödiga meddelanden (till exempel med flaggan SSH_MSG_IGNORE eller SSH2_MSG_DEBUG) som tagits emot under anslutningsförhandlingsprocessen, och återställer även MAC-räknaren (Message Authentication Code) efter slutförandet av varje nyckelutbyte.

Källa: opennet.ru

Lägg en kommentar