Terrapin: una vulnerabilità nel protocollo SSH che consente di ridurre la sicurezza della connessione

Un gruppo di ricercatori dell'Università della Ruhr di Bochum (Germania) ha presentato una nuova tecnica di attacco MITM a SSH - Terrapin, che sfrutta una vulnerabilità (CVE-2023-48795) nel protocollo. Un utente malintenzionato in grado di organizzare un attacco MITM ha la capacità, durante il processo di negoziazione della connessione, di bloccare l'invio di un messaggio configurando estensioni del protocollo per ridurre il livello di sicurezza della connessione. Un prototipo del toolkit di attacco è stato pubblicato su GitHub.

Nel contesto di OpenSSH, la vulnerabilità, ad esempio, consente di ripristinare la connessione per utilizzare algoritmi di autenticazione meno sicuri e disattivare la protezione contro gli attacchi side-channel che ricreano l'input analizzando i ritardi tra la pressione dei tasti sulla tastiera. Nella libreria Python AsyncSSH, in combinazione con una vulnerabilità (CVE-2023-46446) nell'implementazione della macchina a stati interna, l'attacco Terrapin ci permette di incastrarci in una sessione SSH.

La vulnerabilità colpisce tutte le implementazioni SSH che supportano le crittografie in modalità ChaCha20-Poly1305 o CBC in combinazione con la modalità ETM (Encrypt-then-MAC). Ad esempio, funzionalità simili sono disponibili in OpenSSH da più di 10 anni. La vulnerabilità è stata risolta nella versione odierna di OpenSSH 9.6, così come negli aggiornamenti a PuTTY 0.80, libssh 0.10.6/0.9.8 e AsyncSSH 2.14.2. In Dropbear SSH la correzione è già stata aggiunta al codice, ma non è stata ancora generata una nuova versione.

La vulnerabilità è causata dal fatto che un utente malintenzionato che controlla il traffico della connessione (ad esempio, il proprietario di un punto wireless dannoso) può modificare i numeri di sequenza dei pacchetti durante il processo di negoziazione della connessione e ottenere la cancellazione silenziosa di un numero arbitrario di messaggi del servizio SSH inviato dal client o dal server. Un utente malintenzionato può tra l'altro eliminare i messaggi SSH_MSG_EXT_INFO utilizzati per configurare le estensioni di protocollo utilizzate. Per impedire all'altra parte di rilevare una perdita di pacchetti dovuta a una lacuna nei numeri di sequenza, l'aggressore inizia a inviare un pacchetto fittizio con lo stesso numero di sequenza del pacchetto remoto per spostare il numero di sequenza. Il pacchetto fittizio contiene un messaggio con il flag SSH_MSG_IGNORE, che viene ignorato durante l'elaborazione.

Terrapin: una vulnerabilità nel protocollo SSH che consente di ridurre la sicurezza della connessione

L'attacco non può essere effettuato utilizzando codici a flusso e CTR, poiché la violazione dell'integrità verrà rilevata a livello di applicazione. In pratica, solo il cifrario ChaCha20-Poly1305 è suscettibile di attacco ([email protected]), in cui lo stato viene tracciato solo tramite numeri di sequenza del messaggio e una combinazione della modalità Encrypt-Then-MAC (*[email protected]) e cifrari CBC.

In OpenSSH 9.6 e altre implementazioni, per bloccare l'attacco, viene implementata un'estensione del protocollo "strict KEX", che viene abilitato automaticamente se c'è supporto sul lato server e client. L'estensione termina la connessione alla ricezione di eventuali messaggi anomali o non necessari (ad esempio, con il flag SSH_MSG_IGNORE o SSH2_MSG_DEBUG) ricevuti durante il processo di negoziazione della connessione e reimposta inoltre il contatore MAC (Message Authentication Code) dopo il completamento di ogni scambio di chiavi.

Fonte: opennet.ru

Aggiungi un commento