Nei client SSH OpenSSH e PuTTY ( in PuTTY e in OpenSSH), che porta a una perdita di informazioni nell'algoritmo di negoziazione della connessione. Questa vulnerabilità consente a un attaccante, in grado di intercettare il traffico del client (ad esempio, nel caso di una connessione di un utente tramite un punto di accesso wireless controllato dall'attaccante), di determinare il tentativo di connessione iniziale del client a un host, mentre la chiave host non è ancora stata memorizzata nella cache dal client.
Sapendo che il cliente sta cercando di connettersi per la prima volta e non ha ancora una chiave host dalla propria parte, un attaccante può trasmettere la connessione attraverso di sé (MITM) e fornire al cliente la propria chiave host, che il client SSH considererà la chiave dell'host di destinazione, se non esegue la verifica dell'impronta della chiave. In questo modo, l'attaccante può orchestrare un attacco MITM senza suscitare sospetti nell'utente e ignorare le sessioni in cui il client ha già chiavi host memorizzate in cache, il cui tentativo di sostituzione comporterebbe un avviso sul cambiamento della chiave host. L'attacco si basa sulla distrazione degli utenti che non eseguono la verifica manuale dell'impronta della chiave host al primo collegamento. Coloro che controllano le impronte delle chiavi sono protetti da tali attacchi.
Un segno per identificare il primo tentativo di connessione è la modifica dell'ordine di elencazione degli algoritmi di chiavi host supportati. In caso di prima connessione, il client trasmette un elenco di algoritmi predefiniti, mentre se la chiave host è già presente nella cache, l'algoritmo associato viene posto al primo posto (gli algoritmi vengono ordinati in base alla preferenza).
Il problema si manifesta nelle versioni di OpenSSH dalla 5.7 all'8.3 e in PuTTY dalla 0.68 alla 0.73. Il problema in rilascio attraverso l'aggiunta di un'opzione per disabilitare la costruzione dinamica dell'elenco degli algoritmi di gestione delle chiavi host a favore di un'elencazione degli algoritmi in ordine fisso.
Il progetto OpenSSH non prevede di modificare il comportamento del client SSH, poiché se non viene specificato l'algoritmo della chiave esistente al primo posto, ci sarà un tentativo di applicare un algoritmo non corrispondente alla chiave memorizzata, con un'avvertenza riguardo a una chiave sconosciuta. In altre parole, si pone una scelta: o una fuga di informazioni (OpenSSH e PuTTY), oppure un avviso sul cambio della chiave (Dropbear SSH) se la chiave salvata non corrisponde al primo algoritmo nell'elenco predefinito.
Per garantire la sicurezza in OpenSSH, si propone di utilizzare metodi alternativi per la verifica della chiave host tramite record SSHFP in DNSSEC e certificati host (PKI). È anche possibile disabilitare la selezione adattiva degli algoritmi delle chiavi host tramite l'opzione HostKeyAlgorithms e utilizzare l'opzione UpdateHostKeys per ottenere chiavi host aggiuntive da parte del client dopo l'autenticazione.
Fonte: opennet.ru
