E foi lançado o OpenSSH 9.2 com correções e algumas melhorias, e muito mais. Confira as novidades e veja com instalar no Linux.
O OpenSSH é o mais importante conjunto de utilitários de rede relacionado à segurança que provém a criptografia em sessões de comunicações em uma rede de computadores usando o protocolo SSH.
Agora, o OpenSSH 9.2 está disponível como a versão mais recente dessa implementação SSH de código aberto amplamente usada.
Novidades do OpenSSH 9.2
A nova versão corrige uma vulnerabilidade, que leva à dupla liberação de uma área de memória na etapa de pré-autenticação. A vulnerabilidade afeta apenas o lançamento do OpenSSH 9.1, nas versões anteriores o problema não aparece.
Para criar condições para a manifestação de uma vulnerabilidade, basta alterar o banner do cliente SSH para “SSH-2.0-FuTTYSH_9.1p1” para conseguir a configuração dos sinalizadores “SSH_BUG_CURVE25519PAD” e “SSH_OLD_DHGEX”, dependendo da versão do cliente SSH.
Depois de definir esses sinalizadores, a memória para o buffer “options.kex_algorithms” é liberada duas vezes: executando a função do_ssh2_kex(), que chama compat_kex_proposal(), e executando a função do_authentication2(), que chama input_userauth_request( ), mm_getpwnamallow( ), copy_set_server_options() ao longo da cadeia, ensemble_algorithms() e kex_assemble_names().
É considerado improvável criar uma exploração funcional para a vulnerabilidade, pois o processo de exploração é muito complicado: bibliotecas modernas de alocação de memória fornecem proteção contra liberação dupla de memória e o processo de pré-autenticação, no qual há um bug, é executado com redução privilégios em uma caixa de areia.
Além da vulnerabilidade mencionada, a nova versão também corrige mais dois problemas de segurança:
- Ocorreu um erro durante o processamento da configuração “PermitRemoteOpen”, que fazia com que o primeiro argumento fosse ignorado caso fosse diferente dos valores “any” e “none”. O problema aparece em versões posteriores ao OpenSSH 8.7 e faz com que a verificação seja ignorada quando apenas uma permissão é especificada.
- Um invasor controlando o servidor DNS usado para resolver nomes pode obter a substituição de caracteres especiais (por exemplo, “*”) em arquivos de hosts conhecidos se as opções CanonicalizeHostname e CanonicalizePermittedCNAMEs estiverem habilitadas na configuração e o resolvedor não verificar a correção do DNS respostas do servidor. É considerado improvável que o ataque seja bem-sucedido, pois os nomes retornados devem corresponder às condições especificadas por meio de CanonicalizePermittedCNAME.
Mudanças notáveis no OpenSSH 9.2 adicionaram uma configuração EnableEscapeCommandline a ssh_config para controlar se o processamento do lado do cliente da sequência de escape “~C” sempre que a linha de comando é habilitada.
Por padrão, o processamento “~C” agora está desabilitado para permitir um sandbox mais rígido, o que pode interromper os sistemas que usam “~C” para encaminhamento de porta em tempo de execução
Adicionada a diretiva ChannelTimeout a sshd_config para que sshd defina o tempo limite ocioso do canal (canais nos quais nenhum tráfego foi detectado pelo tempo especificado na diretiva serão fechados automaticamente).
O tráfico da sessão, X11, agente e redirecionamento podem ter tempos limite diferentes.
Das outras alterações que foram feitas nesta nova versão:
- Adicionada uma diretiva UnusedConnectionTimeout a sshd_config para sshd, que permite definir um tempo limite para encerrar conexões de clientes que não tiveram canais ativos por um determinado período de tempo.
- Adicionada a opção “-V” ao sshd para exibir uma versão semelhante à opção do cliente ssh.
- Adicionada a string “host” à saída de “ssh -G” para refletir o valor do argumento hostname.
- Adicionada a opção “-X” para scp e sftp para controlar parâmetros SFTP, como tamanho do buffer de cópia e número de solicitações pendentes.
- O ssh-keyscan permite verificar intervalos inteiros de endereços CIDR, por exemplo, “ssh-keyscan 192.168.0.0/24”.
Para saber mais sobre essa versão do OpenSSH, acesse a nota de lançamento.
Como instalar ou atualizar o OpenSSH
Para aqueles que estão interessados em poder instalar esta nova versão do OpenSSH em seus sistemas, no momento eles podem fazer isso baixando o código-fonte e fazendo a compilação em seus computadores.
Isso ocorre porque a nova versão ainda não foi incluída nos repositórios das principais distribuições Linux. Mas possivelmente, em breve estará disponível.
Portanto, se você quer instalar a versão mais recente do OpenSSH nas principais distribuições Linux, faça o seguinte:
Passo 1. Abra um terminal com privilégios de administrador (root) ou abra um terminal como usuário comum e use o ‘sudo
‘ antes dos comandos a seguir;
Passo 2. Baixe o código fonte do programa com esse comando;
wget https://cloudflare.cdn.openbsd.org/pub/OpenBSD/OpenSSH/openssh-9.2.tar.gz -O openssh.tar.gz
Passo 3. Quando terminar o download, descompacte o arquivo baixado, usando esse comando;
tar -xvf openssh.tar.gz
Passo 4. Acesse a pasta criada durante a descompactação;
cd openssh-*/
Passo 5. Use o comando abaixo para prepara o código fonte para ser compilado;
./configure --prefix=/opt --sysconfdir=/etc/ssh
Passo 6. Em seguida, use esse comando para compilar o código fonte;
make
Passo 7. Por fim, use o comando abaixo para instalar o programa no seu sistema.
make install
Pronto! O OpenSSH está instalado.
Se depois você precisar desinstalar, em um terminal (com privilégios de administrador ou seguido de ‘sudo
‘), acesse novamente a pasta criada ao descompactar e use o comando abaixo;
make uninstall