OpenSSH 8.3 lançado com uma nova proteção contra ataques scp

E foi lançado o OpenSSH 8.3 com uma nova proteção contra ataques scp e outras melhorias. 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.

OpenSSH 8.3 lançado com uma nova proteção contra ataques scp
OpenSSH 8.3 lançado com uma nova proteção contra ataques scp

Agora, o OpenSSH 8.3 foi lançado com importantes melhorias e correções.

Novidades do OpenSSH 8.3

Após três meses de desenvolvimento, foi apresentado o lançamento da nova versão do OpenSSH 8.3, que destaca uma nova proteção adicional contra ataques scp, que permite ao servidor transferir outros nomes de arquivos diferentes dos solicitados (ao contrário da vulnerabilidade anterior, o ataque não permite alterar o diretório selecionado pelo usuário ou pela máscara global).

No SCP, o servidor decide quais arquivos e diretórios devem ser enviados ao cliente e o cliente apenas verifica a precisão dos nomes dos objetos retornados.

A essência do problema identificado é que, se a chamada do sistema falhar, o conteúdo do arquivo será interpretado como metadado do arquivo.

Quando conectada a um servidor controlado por invasor, essa função pode ser usada para armazenar outros nomes de arquivos e outro conteúdo no FS do usuário ao copiar usando scp em configurações que causam falhas de tempo.

Por exemplo, quando os horários são desativados pela política do SELinux ou pelo filtro de chamadas do sistema.
 
A probabilidade de ataques reais é estimada como mínima, pois em configurações típicas a chamada de tempo não falha. Além disso, o ataque não passa despercebido: quando o scp é chamado, um erro de transmissão de dados é exibido.

Adeus ao SHA-1

Além disso, os desenvolvedores do OpenSSH também alertaram mais uma vez sobre a próxima transferência para a categoria de algoritmos desatualizados usando hashes SHA-1, devido ao aumento da eficiência de ataques de colisão com um determinado prefixo (o custo de selecionar a colisão é estimada em cerca de US $ 45 mil).
 
Em um dos seguintes problemas, eles planejam desativar por padrão a capacidade de usar o algoritmo de assinatura digital de chave pública ssh-rsa, mencionado na RFC original para o protocolo SSH e ainda é amplamente difundido na prática.

Possíveis candidatos

Para facilitar a transição para novos algoritmos no OpenSSH em uma das próximas versões, a configuração UpdateHostKeys será ativada por padrão, o que alternará automaticamente os clientes para algoritmos mais confiáveis.

Os algoritmos de migração recomendados incluem: rsa-sha2-256 / 512 baseado no RFC8332 RSA SHA-2 (compatível com o OpenSSH 7.2 e usado por padrão), ssh-ed25519 (compatível com o OpenSSH 6.5) e ecdsa-sha2-nistp256/384/521 com base no RFC5656 ECDSA (compatível com OpenSSH 5.7).

Outras mudanças

Desde a última edição, “ssh-rsa” e “diffie-hellman-group14-sha1” foram removidos da lista CASignatureAlgorithms, que define algoritmos válidos para assinatura digital de novos certificados, desde o uso do SHA-1 em certificados, já que o uso do SHA-1 em certificados acarreta um risco adicional, pois o invasor tem tempo ilimitado para procurar colisões por um certificado existente, enquanto o tempo de ataque nas chaves do host é limitado pelo tempo de espera de conexão (LoginGraceTime).

Das outras mudanças que se destacam nesta nova versão destacam-se os seguintes itens:

  • No sftp, o processamento “-1” para, semelhante ao ssh e scp, que foi aceito anteriormente, mas ignorado.
  • No sshd ao usar o IgnoreRhosts, agora são fornecidas três opções: “yes” para ignorar rhosts/shosts, “no” para considerar rhosts/shosts e “shosts-only”, que deve permitir “.shosts”, mas desativar “.rhosts” .
  • No ssh, o processamento da substituição% TOKEN é fornecido na configuração LocalFoward e RemoteForward usada para redirecionar soquetes Unix.
  • É permitido baixar chaves públicas de um arquivo não criptografado com uma chave privada, se não houver um arquivo separado com uma chave pública.
  • Se o sistema possui libcrypto no ssh e no sshd, agora ele usa a implementação do algoritmo chacha20 dessa biblioteca, em vez da implementação portátil incorporada, que tem desempenho inferior.
  • A capacidade de despejar o conteúdo da lista binária de certificados revogados foi implementada executando o comando “ssh-keygen -lQf / path”.
  • A versão portátil implementa definições de sistema nas quais os sinais com a opção SA_RESTART interrompem a seleção;
  • Problemas de compilação resolvidos nos sistemas HP/UX e AIX.
  • Corrigidos problemas de compilação para o sandbox seccomp em algumas configurações do Linux.
  • A definição da biblioteca libfido2 foi aprimorada e os problemas de compilação foram resolvidos com a opção --with-security-key-builtin.

Para saber mais sobre essa versão do OpenSSH, acesse a nota de lançamento.

Como instalar ou atualizar o OpenSSH 8.3

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-8.3.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

O que está sendo falado no blog

PinLinkedIn
Sobre o Edivaldo Brito

Edivaldo Brito é analista de sistemas, gestor de TI, blogueiro e também um grande fã de sistemas operacionais, banco de dados, software livre, redes, programação, dispositivos móveis e tudo mais que envolve tecnologia.