Cliente SSH PuTTY Amplamente Utilizado É Vulnerável a Ataque de Recuperação de Chaves
16 de Abril de 2024

Os mantenedores do cliente PuTTY Secure Shell (SSH) e Telnet estão alertando os usuários de uma vulnerabilidade crítica que afeta as versões de 0.68 a 0.80, que poderia ser explorada para conseguir a recuperação completa das chaves privadas do NIST P-521 (ecdsa-sha2-nistp521).

A falha recebeu o identificador CVE de CVE-2024-31497 , com a descoberta creditada aos pesquisadores Fabian Bäumer e Marcus Brinkmann da Universidade Ruhr de Bochum.

"O efeito da vulnerabilidade é comprometer a chave privada", disse o projeto PuTTY em um aviso.

"Um atacante na posse de algumas dezenas de mensagens assinadas e a chave pública tem informações suficientes para recuperar a chave privada, e então forjar assinaturas como se fossem suas, permitindo que eles, por exemplo, façam login em quaisquer servidores que você use essa chave."

No entanto, para obter as assinaturas, um atacante terá que comprometer o servidor para o qual a chave é usada para autenticação.

Em uma mensagem postada na lista de e-mails Open Source Software Security (oss-sec), Bäumer descreveu a falha como decorrente da geração de nonces criptográficos ECDSA tendenciosos, o que poderia permitir a recuperação da chave privada.

"Os primeiros 9 bits de cada nonce ECDSA são zero", explicou Bäumer.

Isso permite a recuperação completa da chave secreta em aproximadamente 60 assinaturas usando técnicas de ponta. Essas assinaturas podem ser colhidas por um servidor malicioso (ataques do tipo man-in-the-middle não são possíveis, dado que os clientes não transmitem sua assinatura de forma clara) ou de qualquer outra fonte, por exemplo, commits git assinados através de agentes encaminhados.

Além de impactar o PuTTY, isso também afeta outros produtos que incorporam uma versão vulnerável do software:

FileZilla (3.24.1 - 3.66.5)
WinSCP (5.9.5 - 6.3.2)
TortoiseGit (2.4.0.2 - 2.15.0)
TortoiseSVN (1.10.0 - 1.14.6)

Após a divulgação responsável, o problema foi corrigido no PuTTY 0.81, FileZilla 3.67.0, WinSCP 6.3.3 e TortoiseGit 2.15.0.1.

Recomenda-se que os usuários do TortoiseSVN usem o Plink da última versão do PuTTY 0.81 ao acessar um repositório SVN via SSH até que um patch esteja disponível.

Especificamente, isso foi resolvido ao mudar para a técnica RFC 6979 para todos os tipos de chave DSA e ECDSA, abandonando seu método anterior de derivar o nonce usando uma abordagem determinística que, embora evitasse a necessidade de uma fonte de aleatoriedade de alta qualidade, estava suscetível a nonces tendenciosos quando usando P-521.

Além disso, chaves ECDSA NIST-P521 usadas com qualquer um dos componentes vulneráveis devem ser consideradas comprometidas e, consequentemente, revogadas removendo-as de arquivos authorized_keys e seus equivalentes em outros servidores SSH.

Publicidade

Curso gratuito de Python

O curso Python Básico da Solyd oferece uma rápida aproximação à linguagem Python com diversos projetos práticos. Indo do zero absoluto até a construção de suas primeiras ferramentas. Tenha também suporte e certificado gratuitos. Saiba mais...