.
Uma vulnerabilidade no protocolo SSH pode ser explorada por um adversário bem posicionado para enfraquecer a segurança das ligações das pessoas, se as condições forem adequadas.
Em um ataque man-in-the-middle bem-sucedido, o adversário pode forçar os clientes SSH a usar métodos de autenticação mais fracos e desabilitar alguns mecanismos de defesa. No momento, é difícil definir o verdadeiro impacto realista da falha porque tudo depende das configurações individuais do cliente-servidor, das implementações do protocolo e de outras variáveis. SSH é usado principalmente para conectar-se a sistemas remotos para usá-los ou administrá-los por meio de uma interface de linha de comando.
A técnica, apelidada de Ataque Terrapin, é descrita em um artigo técnico compartilhado esta semana por Fabian Bäumer, Marcus Brinkmann e Jörg Schwenk, cientistas da computação da Universidade Ruhr Bochum, na Alemanha. Em outubro, depois de descobrir a vulnerabilidade, eles divulgaram os detalhes de forma privada para que os desenvolvedores de clientes e servidores SSH os abordassem. Agora é tudo público, com patches e informações sendo divulgadas.
O trio lançou scripts de prova de conceito e outros materiais no GitHub se você estiver interessado nos detalhes de baixo nível. Há também uma ferramenta de código aberto que pode ser usada para determinar se o seu cliente ou servidor SSH é vulnerável ao Terrapin.
Como resultado das descobertas deste estudo, as atualizações de software SSH devem estar chegando aos usuários e, enquanto isso, há mitigações disponíveis. Não é motivo de pânico, porque alguém precisará fazer um man-in-the-middle (MITM) em sua conexão vulnerável, em vez de atacar diretamente seu servidor; é principalmente um ataque de downgrade, e não um problema de descriptografia ou injeção de comando; e existem maneiras de se proteger imediatamente contra ataques de tartarugas marinhas.
Há três questões a serem observadas: CVE-2023-48795, que é a vulnerabilidade SSH genérica explorável em nível de protocolo; e CVE-2023-46445 e CVE-2023-46446 específicos para o cliente Python SSH AsyncSSH, que tem cerca de 60.000 downloads diários.
No caso do AsyncSSH, descobriu-se que o código-fonte aberto tinha erros de implementação específicos para aquele cliente que poderiam ser explorados com um ataque estilo Terrapin para, por exemplo, fazer com que a vítima fizesse login inadvertidamente em uma conta shell controlada pelo invasor, em vez de na sua própria conta. . É um exemplo de como diferentes clientes e servidores podem ser vulneráveis ao Terrapin de diferentes maneiras. O AsyncSSH foi corrigido para endereçar CVE-2023-46445 e CVE-2023-46446 na versão 2.14.1, e o genérico CVE-2023-48795 na 2.14.2.
Como funciona o ataque de tartaruga de água doce
Terrapin (CVE-2023-48795) é um ataque de truncamento de prefixo e permite que um invasor MITM faça downgrade da segurança de uma conexão SSHv2 durante a negociação de extensão.
É semelhante a um problema detectado no TLS 1.3 por Cédric Fournet em 2015 e corrigido na fase de rascunho.
Como disse o trio universitário esta semana, um ataque Terrapin bem-sucedido pode “levar ao uso de algoritmos de autenticação de cliente menos seguros e à desativação de contramedidas específicas contra ataques de temporização de pressionamento de tecla no OpenSSH 9.5”. Em algumas circunstâncias muito específicas, ele pode ser usado para descriptografar alguns segredos, como a senha de um usuário ou partes dela durante o login, mas isso não é trivial e praticamente falhará em termos práticos.
Vamos ao que interessa. Vamos manter as coisas simples; para obter os detalhes completos, consulte o artigo. Quando um cliente SSH se conecta a um servidor SSH, antes de estabelecer um canal seguro e criptografado, eles realizarão um handshake no qual trocarão informações entre si em texto simples. Cada lado possui dois contadores de sequência: um para mensagens recebidas e outro para mensagens enviadas. Sempre que uma mensagem é enviada ou recebida, o contador de sequência relevante é incrementado; os contadores mantêm, portanto, um registro contínuo do número de mensagens enviadas e recebidas para cada lado.
Como um ataque MITM, o Terrapin envolve a injeção de uma mensagem ‘ignorar’ em texto simples na conexão pré-segura, durante o handshake, para que o cliente pense que veio do servidor e aumente seu contador de sequência para mensagens recebidas. Caso contrário, a mensagem será ignorada. Então, uma vez estabelecido o canal seguro, o invasor MITM impede o servidor de enviar uma mensagem ao cliente sobre defesas adicionais. Não importa que a mensagem esteja criptografada: o invasor apenas impede que ela chegue e o cliente nunca a vê nem age de acordo.
Como uma mensagem de ignorar em texto simples foi inserida anteriormente, o cliente ainda tem o número esperado de mensagens recebidas e o servidor pensa que enviou o número correto de mensagens.
Mesmo que uma mensagem tenha sido interceptada e bloqueada pelo invasor MITM durante a inicialização, os contadores de sequência de envio e recebimento parecem corretos em ambos os lados, o que é vital porque essas contagens são posteriormente usadas para verificar a integridade do processo de handshake. Se as contagens estiverem corretas, a conexão poderá continuar. É por isso que a mensagem ‘ignorar’ é inserida, para que quando a mensagem de extensão for bloqueada no canal seguro, o cliente e o servidor não percebam.
Isso é representado no diagrama a seguir do artigo Terrapin – os números de sequência estão em negrito no ponto em que são verificados:

Números arbitrários de mensagens ‘ignorar’ podem ser inseridos para eliminar mensagens do servidor para o cliente durante o estabelecimento da conexão. Como você pode ver no artigo técnico, você pode ser um pouco complicado com a ordem das mensagens injetadas e bloqueadas para realizar ataques mais complexos. Com isso, é possível mexer na configuração da conexão, fazer downgrade da segurança usada, desabilitar extensões e potencialmente explorar fraquezas mais profundas em implementações específicas de clientes ou servidores.
Dito isto, o algoritmo de criptografia usado para o canal seguro é crucial para saber se uma conexão SSH pode ser atacada com sucesso ou não.
ChaCha20-Poly1305 é considerado “vulnerável e perfeitamente explorável” pela Terrapin devido à forma como os números de sequência são usados na derivação de chaves. Não há nenhuma fraqueza criptográfica neste algoritmo, apenas na forma como é usado para SSH.
CBC-Encrypt-then-MAC (CBC-EtM) também é vulnerável e “probabilisticamente” explorável, disseram-nos, embora dependendo da implementação, o ataque possa falhar. O algoritmo CTR-Encrypt-then-MAC é vulnerável, mas não é praticamente explorável.
Mais de três quartos (77 por cento) dos servidores SSH públicos suportam “pelo menos um modo que pode ser explorado na prática”, disse o trio universitário, e 57 por cento deles definiram um algoritmo explorável como a escolha preferida.
Para corrigir ou mitigar?
Os especialistas foram rápidos em dizer que esta não é uma falha que exige que as pessoas abandonem as ferramentas e a tratem como prioridade.
“O ataque requer um atacante man-in-the-middle ativo que possa interceptar e modificar o tráfego da conexão na camada TCP/IP”, disseram eles. “Além disso, exigimos a negociação de ChaCha20-Poly1305 ou qualquer cifra CBC em combinação com Encrypt-then-MAC como modo de criptografia da conexão.”
Ficar atento a patches ou atualizações é uma boa aposta, e instalá-los quando possível: se você estiver no Linux, por exemplo, eles devem vir através do método usual de atualização da distribuição.
O OpenSSH 9.6 foi lançado na segunda-feira, que entre outras coisas abordou o Terrapin com um protocolo estrito de troca de chaves que, se tanto o servidor quanto o cliente suportarem, devem impedir esses ataques.
“Conectar um cliente vulnerável a um servidor corrigido, e vice-versa, ainda resulta em uma conexão vulnerável”, observaram os acadêmicos.
Enquanto isso, o Putty 0.8 foi lançado esta semana para abordar o Terrapin. libssh 0.10.6 e libssh 0.9.8 também foram emitidos para defesa contra a técnica. Imaginamos que haverá outros.
Além de instalar atualizações, os administradores podem mitigar ataques desativando os modos de criptografia afetados na configuração de seus servidores SSH e, em vez disso, usando algoritmos não vulneráveis, como AES-GCM.
Existe o risco de que se o servidor estiver configurado incorretamente ou o cliente não suportar a configuração, o acesso ao servidor possa ser perdido, alertaram os pesquisadores. Versões mais antigas do OpenSSH (6.2 e 6.3) também são vulneráveis a um buffer overflow ao usar AES-GCM, então fique atento.
“O Terrapin não é um simples bug de software que pode ser corrigido com uma atualização de uma única biblioteca ou componente”, concluiu o trio. “Em vez disso, os clientes e servidores precisam ser atualizados para proteger a conexão contra ataques de truncamento de prefixo. Isso significa que precisamos aumentar a conscientização sobre o problema em todas as implementações de clientes e servidores SSH, o que é um esforço considerável”. ®
.








