Dopo sei mesi di sviluppo, è stato rilasciato OpenSSH 8.9, un'implementazione open source del client e del server per il protocollo SSH 2.0 e SFTP. Nella nuova versione, è stata corretta una vulnerabilità in sshd che poteva consentire accessi non autorizzati. Questo problema era causato da un'overflow di interi nel codice di autenticazione, ma la sua sfruttabilità era possibile solo in combinazione con altri errori logici nel codice.
Nella situazione attuale, la vulnerabilità non è sfruttabile se viene attivata la modalità di separazione dei privilegi, poiché la sua manifestazione viene bloccata da controlli specifici eseguiti nel codice di tracciamento della separazione dei privilegi. La modalità di separazione dei privilegi è stata attivata per impostazione predefinita nel 2002, a partire da OpenSSH 3.2.2, ed è diventata obbligatoria a partire dalla versione OpenSSH 7.5, pubblicata nel 2017. Inoltre, nelle versioni portabili di OpenSSH a partire dalla versione 6.5 (2014), la vulnerabilità è bloccata dalla compilazione con l'attivazione dei flag di protezione contro gli overflow di interi.
Altre modifiche:
- Nella versione portatile di OpenSSH, il supporto integrato per la crittografia delle password utilizzando l'algoritmo MD5 è stato rimosso (è consentito il collegamento a librerie esterne, come libxcrypt).
- In ssh, sshd, ssh-add e ssh-agent è stato implementato un sottosistema per limitare il trasferimento e l'uso delle chiavi aggiunte a ssh-agent. Questo sottosistema consente di definire regole che stabiliscono come e dove possono essere utilizzate le chiavi in ssh-agent. Ad esempio, per aggiungere una chiave che può essere utilizzata solo per l'autenticazione durante la connessione di qualsiasi utente all'host scylla.example.org, l'utente perseus all'host cetus.example.org e l'utente medea all'host charybdis.example.org con reindirizzamento tramite l'host intermedio scylla.example.org, è possibile utilizzare il seguente comando: $ ssh-add -h "perseus@cetus.example.org" \ -h "scylla.example.org" \ -h "scylla.example.org>medea@charybdis.example.org" \ ~/ .ssh/id_ed25519
- In ssh and sshd, the KexAlgorithms list, which defines the order of key exchange methods, has been updated to include the hybrid algorithm "sntrup761x25519-sha512@openssh.com" (ECDH/x25519 + NTRU Prime) by default, making it resistant to quantum computer attacks. In OpenSSH 8.9, this negotiation method has been added between ECDH and DH methods, but it is planned to be enabled by default in the next release.
- In ssh-keygen, ssh, and ssh-agent, the handling of FIDO token keys for device verification has been improved, including keys for biometric authentication.
- In ssh-keygen, the command "ssh-keygen -Y match-principals" has been added to verify user names in the allowed names list file.
- In ssh-add and ssh-agent, it is now possible to add FIDO keys protected by a PIN to the ssh-agent (the PIN request is prompted during authentication).
- In ssh-keygen, the choice of hashing algorithm (sha512 or sha256) is permitted during signature generation.
- In ssh and sshd, to enhance performance, network data is read directly into the incoming packet buffer, bypassing intermediate buffering in the stack. Similarly, direct placement of received data into the channel buffer has been implemented.
- Nel comando ssh, la direttiva PubkeyAuthentication ha ampliato l'elenco dei parametri supportati (yes|no|unbound|host-bound) per fornire la possibilità di scegliere l'estensione del protocollo da utilizzare.
In una delle prossime versioni, si prevede di impostare di default l'utilizzo dell'utilità scp per impiegare SFTP invece del protocollo obsoleto SCP/RCP. In SFTP vengono utilizzati metodi di gestione dei nomi più prevedibili e non si impiega la gestione dei glob nelle denominazioni dei file attraverso il shell sul lato dell'altro host, che crea problemi di sicurezza. In particolare, quando si utilizza SCP e RCP, il server decide quali file e directory inviare al client, mentre il client verifica solo la correttezza dei nomi degli oggetti restituiti, il che, in assenza di adeguati controlli sul lato del client, consente di trasferire nomi di file diversi da quelli richiesti. server Il protocollo SFTP è privo di questi problemi, ma non supporta l'espansione dei percorsi speciali come «~/». Per risolvere questa differenza, nella precedente versione di OpenSSH è stata proposta una nuova estensione del protocollo SFTP per l'espansione dei percorsi ~/ e ~user/.
Fonte: opennet.ru
