SSH (Secure Shell) es un protocolo esencial en la comunicación de redes, que garantiza la transmisión segura y cifrada entre dos sistemas. Este protocolo no solo es fundamental para el acceso remoto a sistemas operativos GNU/Linux, sino también para una variedad de aplicaciones, incluyendo la gestión de dispositivos de hardware y productos relacionados con el Internet de las Cosas (IoT).
Métodos de autenticación en SSH
SSH admite varios métodos de autenticación para asegurar la identidad del usuario. Los más comunes son la autenticación basada en contraseña y la autenticación mediante claves pública/privada. Sin embargo, se ha descubierto una vulnerabilidad en las claves SSH privadas debido a errores de cálculo.
El ataque Terrapin, descubierto por investigadores de la Ruhr University en Bochum, Alemania, explota debilidades en la capa de transporte de SSH. Este ataque manipula los números de secuencia durante el proceso de handshake, comprometiendo así la integridad de la conexión SSH. Las modalidades criptográficas más afectadas son ChaCha20-Poly1305 y CBC con Encrypt-then-MAC.
El proceso de handshake en SSH
El handshake en SSH es un conjunto de intercambios de mensajes al inicio de la conexión, estableciendo los parámetros y claves criptográficas para proteger las comunicaciones siguientes. Los números de secuencia asignan un orden único a cada mensaje intercambiado, protegiendo la conexión contra alteraciones no autorizadas.
Funcionamiento del ataque Terrapin
El ataque Terrapin permite a los atacantes comprometer el canal SSH manipulando los números de secuencia, resultando en la truncación de mensajes críticos de negociación sin ser detectados por el cliente o el servidor. Esto puede llevar a un downgrade en los algoritmos de clave asimétrica usados para la autenticación, debilitando significativamente la seguridad de la conexión SSH.
Medidas de mitigación
Los desarrolladores están adoptando medidas de mitigación, como el uso de intercambios de claves más rigurosos, que previenen la inyección de paquetes durante el handshake. Sin embargo, esta medida es efectiva solo si se implementa tanto en el cliente como en el servidor.
El significado del nombre "Terrapin"
El nombre del ataque, "Terrapin" (tortuga en español), hace una analogía con la "shell" o caparazón de una tortuga. En informática, "shell" se refiere a la interfaz que permite a los usuarios interactuar con el sistema operativo, en este caso, la shell SSH.
Recomendaciones para administradores de sistemas
Ante la prevalencia de estas vulnerabilidades en más del 77% de los servidores SSH en Internet, es crucial que los administradores actúen. Una solución temporal es deshabilitar las modalidades criptográficas vulnerables, como ChaCha20-Poly1305 y cualquier cifrado CBC combinado con Encrypt-then-MAC. El uso de algoritmos alternativos como AES-GCM puede evitar estos riesgos.
Herramienta de detección de vulnerabilidades
Los investigadores han desarrollado una herramienta en Go que permite verificar si un cliente o servidor SSH es vulnerable. Esta aplicación, que funciona desde la línea de comandos, identifica si se ofrecen modalidades criptográficas vulnerables y si el intercambio de claves es adecuado.
El ataque Terrapin subraya la importancia de mantener actualizadas y seguras las implementaciones de SSH, especialmente en un entorno donde las amenazas cibernéticas evolucionan constantemente. La colaboración entre desarrolladores y administradores de sistemas es crucial para proteger la infraestructura de red vital en este ámbito digital en constante cambio.