SSH es el nombre de uno de los protocolos que nos permiten establecer conexiones seguras entre un cliente y un servidor, generalmente para controlar de forma remota y desde un terminal un equipo o servidor. Este tipo de conexiones también son utilizadas conectar dispositivos y plataformas entre sí, proteger la transferencia de archivos a través de la implementación SFTP o gestionar las claves seguras para no tener que escribirlas una y otra vez cada vez que vamos a establecer una conexión segura.
Aunque por lo general las conexiones SSH son seguras y privadas, es posible que por diversas causas esto no sea así, por lo que debemos tener en cuenta los problemas que supone hacer uso de las conexiones inseguras y buscar la mejor forma de protegerlas. Por ello, el NIST ha publicado un informe sobre estas conexiones seguras y las principales vulnerabilidades y peligros que pueden aparecer al hacer un uso no adecuado de este tipo de conexiones, peligros que pueden llegar incluso a hacer que las conexiones dejen de ser totalmente seguras y se pueda comprometer la información que se transmite a través de estas conexiones. Conoce el cliente SFTP en Windows.
Según este informe, las principales vulnerabilidades con las que nos podemos encontrar a la hora de utilizar claves SSH seguras son:
- Una implementación del cliente o del servidor que utilice una versión vulnerable.
- Mala configuración de los permisos y controles de acceso.
- Claves de usuario robadas, filtradas e incluso calculadas debido a vulnerabilidades.
- Puertas traseras.
- Uso de claves desatendidas.
- Falta de conocimiento y errores humanos.
Cómo proteger las claves SSH según el NIST
El informe incluye las principales recomendaciones que debemos seguir para hacer uso de estas conexiones de la mejor forma posible y garantizar así la mayor seguridad posible al conectarnos de forma segura a través de conexiones SSH.
Lo primero que se debe hacer es configurar correctamente tanto los ciclos de vida como los permisos de todas las claves, tanto de cara a los usuarios como para las conexiones automáticas. Se debe estudiar cada una de las conexiones de forma individual y elegir el ciclo de vida que tendrá cada clave y los permisos de cara al servidor, evitando así que cualquier clave pueda acceder a más elementos del servidor de los que debería o estar vigente durante más tiempo del debido.
Se debe mantener un proceso de seguimiento y auditoría continuos. Durante estos procesos se deben controlar la generación de claves y asegurarse de que los ciclos de vida y revocación de cada una de ellas se cumplen adecuadamente. De esta manera se podrán detectar mucho más fácilmente las claves SSH no autorizadas.
Si se van a conectar varios clientes a un mismo servidor SSH es recomendable llevar la cuenta de todos ellos. Por ello, se debe mantener siempre una lista de todos los servidores seguros existentes (en el caso de que haya más de uno), así como de todas las llaves de cada usuario y el nivel de confianza o los permisos de todos ellos. De esta manera podremos saber rápidamente quién tiene acceso a qué y podremos solucionar cualquier vulnerabilidad fácilmente.
Se debe formar sobre el uso de las claves SSH a todo aquel usuario que vaya a hacer uso de ellas, tanto dentro de una empresa (a los directivos, por ejemplo) como a nivel de usuario. De esta manera, si los usuarios son conscientes de la importancia de mantener estas claves de forma privada se mejorará la privacidad de las conexiones y se evitarán posibles vulnerabilidades que puedan ocurrir por un uso indebido de estas.
¿Haces uso a menudo de conexiones SSH? ¿Cómo las proteges?