UNIVERSIDAD GERARDO BARRIOS CRU FACULTAD DE CIENCIA Y TECNOLOGIA INGENIERIA EN SISTEMAS Y REDES INFORMATICAS
Cuando uno contrata un servidor dedicado o un VPS con una empresa de alojamiento web, debe utilizar algún tipo de mecanismo para conectarse conectarse con él remotamente remotamente y poder interactuar con él como si lo tuviera al lado. Debido a la importancia de los datos que se suelen mover en este tipo de máquinas, es fundamental contar con algún protocolo de conexión que nos garantice total seguridad a la hora de Comunicarnos con el servidor. Esta seguridad nos la proporciona el protocolo SSH (Secure Shell), probablemente el sistema más utilizado actualmente para comunicarse entre equipos con sistema operativo Linux. Hasta la aparición de este protocolo, la forma que que utilizaban los usuarios para conectarse con los servidores era por medio del uso de otros protocolos como Telnet o FTP, protocolos que tienen una gran desventaja respecto al SSH, ya que en este último se encripta la sesión de conexión, impidiendo que alguien pueda capturar la contraseña no encriptada. HISTORIA DEL PROTOCOLO SSH El protocolo SSH fue desarrollado en el año 1995 por el finlandés Tatu Ylönen, quien publicó su trabajo bajo una licencia de libre uso, pero ante el éxito del programa desarrollado pronto registró la marca SSH y fundó la empresa SSH Communications Security con fines comerciales, la cual permitía el uso del protocolo gratuitamente para uso doméstico y educativo. Ante este cambio en la política de uso del protocolo, los desarrolladores del sistema operativo OpenBSD empezaron a desarrollar en el año 1999 una versión libre de este protocolo que recibió el nombre de OpenSSH. Desde la aparición de este protocolo han sido dos las versiones que han estado activas. En la primera de ellas, se ofrecía una alternativa a las sesiones interactivas mediante el uso de herramientas como TELNET, RSH o RLOGIN entre otras, sin embargo pronto se descubrió que este protocolo tenía un punto débil que permitía a los hackers introducir datos en los flujos cifrados. Ante este problema, en el año 1997 fue lanzada la versión 2, donde una serie de medidas solucionaban el problema descubierto en la primera versión. Además de corregir ese problema, esta segunda versión incorporaba el protocolo SFTP (Secure File Transfer
UNIVERSIDAD GERARDO BARRIOS CRU FACULTAD DE CIENCIA Y TECNOLOGIA INGENIERIA EN SISTEMAS Y REDES INFORMATICAS
Protocol –Protocolo seguro de transferencia de archivos) que proporciona la funcionalidad necesaria para la transferencia y manipulación de archivos de forma segura COMO FUNCIONA EL PROTOCOLO SSH
El funcionamiento de este protocolo se puede resumir en los siguientes pasos que se mencionan a continuación: 1. El cliente inicia una conexión TCP sobre el puerto 22 del servicio. Este puerto es el que utiliza por defecto el protocolo, aunque como veremos en siguientes puntos, se puede modificar. 2. El cliente y el servidor se ponen de acuerdo en la versión del protocolo a utilizar, así como el algoritmo de cifrado utilizado para el intercambio de la información. 3. El servidor, que tiene en su poder dos claves (una privada y una pública), manda su clave pública al cliente. 4. Cuando el cliente recibe la clave enviada por el servidor, la compara con la que tiene almacenada para verificar su autenticidad. El protocolo SSH exige que el cliente la confirme la primera vez. 5. Con la clave pública del servidor en su poder, el cliente genera una clave de sesión aleatoria, creando un mensaje que contiene esa clave y el algoritmo seleccionado para la encriptación de la información. Toda esa información es enviada al servidor haciendo uso de la clave pública que envió en un paso anterior de forma cifrada. 6. Si todo es correcto, el cliente queda autenticado, iniciando la sesión para comunicarse con el servidor. CARACTERISTICAS El uso del protocolo Secure Shell por parte de los usuarios, ofrece una serie de interesantes características, que lo ha llevado a convertirse en el método más utilizado por todos los usuarios que gestionan algún tipo de servidor Linux ya sea en la nube o dedicado. Algunas de estas características que podemos destacar son:
UNIVERSIDAD GERARDO BARRIOS CRU FACULTAD DE CIENCIA Y TECNOLOGIA INGENIERIA EN SISTEMAS Y REDES INFORMATICAS
1. El uso de SSH encripta la sesión de registro impidiendo que cualquier persona pueda conseguir contraseñas no encriptadas. 2. Las claves de encriptación utilizadas sólo son conocidas por quien emite la información y por quien la recibe. 3. Una sola alteración de la clave modifica el mensaje original, lo que permite que si por alguna razón un tercero descubre la clave no acceda al mensaje completo. 4. El usuario tiene la posibilidad de verificar que sigue conectado al mismo servidor que se conectó inicialmente. 5. Cuando un usuario se autentica, entre él y el servidor se crea un canal seguro cifrado por donde intercambiar la información con total garantía. 6. Los datos enviados y recibidos mediante el uso de SSH se realizan por medio de algoritmos de encriptación de 128 bits, lo que hace que sea muy complicado de descifrar y de leer. 7. El cliente tiene la posibilidad de utilizar de forma segura aplicaciones desde el intérprete de comandos del servidor, que permite administrar la máquina como si estuviera delante de ella. 8. El uso de SSH permite convertirse en un conducto para hacer seguros aquellos protocolos que no los son mediante el uso de una técnica denominada reenvío por puerto. SSH COMO TUNEL La principal utilidad que le podemos dar a un túnel SSH la detallamos a continuación: Tansolotenemosqueimaginarnosqueestamosenunlugarpúblico,comoporejemplo puedeserlacafeteríadeunaeropuerto,ynosqueremosaconectaraunapáginaweba travésdenuestronavegador.
En la cafetería del aeropuerto como podemos imaginar no estaremos solos. Comose puedeverenlaimagenhabrámultituddeusuariosconectadosalamismaredlocal(LAN) quenosotrosycomopodesimaginarestoesunproblemadeseguridadimportante.
Básicamente es un problema de seguridad importante porqué somos susceptibles de recibir multitud de ataques que nos pueden lanzar cualquiera de los usuarios que están conectados a la misma red local que nosotros. Algunos de los ataques que podemos sufrir por parte de los integrantes de la red son por ejemplo:
UNIVERSIDAD GERARDO BARRIOS CRU FACULTAD DE CIENCIA Y TECNOLOGIA INGENIERIA EN SISTEMAS Y REDES INFORMATICAS
1- Esnifar el tráfico que estamos generando: Como todos sabemos, hoy en día multitud de conexiones a Internet se realizan mediante el protocolo http. El protocolo http tiene la particular de transferir la información en texto plano sin cifrar. Por lo tanto esto implica que cualquier integrante de la red local de la cafetería, mediante Sniffers como Wireshark o Ettercap, puede . Por lo tanto con un simple sniffer el atacante podría averiguar contraseñas de servicios que tenemos contratados o usamos, como por ejemplo el servicio de , , , etc. Además el atacante podrá averiguar fácilmente a los sitios a los que nos estamos conectando. 2- Un ataque Man in the Middle (MitM):
Cualquier integrante de la red local puede de forma muy fácil realizarnos un ataque . Como se puede ver en el gráfico de este apartado, si un atacante lanza el ataque man in the Middle estará interceptando la totalidad de nuestro tráfico tanto de entrada como de salida. Una vez el atacante haya interceptado el tráfico tendrá la capacidad de leer y modificar a voluntad el tráfico que nosotros estamos generando o recibiendo. Esto es posible porqué el se coloca entre el y el . Cuando el envíe tráfico al , antes de pasar por el pasará por el . En el momento que el tráfico pase por el el atacante podrá interceptar y modificar el tráfico.
UNIVERSIDAD GERARDO BARRIOS CRU FACULTAD DE CIENCIA Y TECNOLOGIA INGENIERIA EN SISTEMAS Y REDES INFORMATICAS
3- Un ataque de envenenamiento ARP o ARP Spoofing:
En el caso que estemos en una red local con un Switch, otro tipo de ataque que cualquiera de los usuarios de la red local nos podría lanzar es el . Este ataque básicamente consiste en envenenar el cache ARP de la víctima ( para hacerle creer que el atacante ( ) es el router o puerta de enlace.
)
Nota: Como se puede ver en la imagen el cache ARP de la máquina atacada (192.168.0.15), envez detenerasociada laMACaddress delrouter(xx:xx:xx:xx:xx:01), tieneasociadalaMACaddressdelatacante(xx:xx:xx:xx:xx:40).Porlotantolamáquina víctima creerá que el router es el ordenador del atacante y es allí donde enviará la totalidaddeltráfico.
De este modo la totalidad de tráfico, tanto de entrada como de salida, generado por la víctima (192.168.0.15) estará pasando por el ordenador del atacante (192.168.0.10). En el momento que la información pase por el ordenador atacante se podrá alterar la información y nos podrán robar datos como por ejemplo contraseñas de servicios que usamos o tenemos contratados. 4- Otros tipos de ataques: Y la lista de ataques no se termina precisamente aquí. Hay multitud de ataques que nuestro atacante nos podría lanzar como por ejemplo DNS Spoofing, etc. TÚNEL SSH PARA MITIGAR LOS ATAQUES QUE ACABAMOS DE DESCRIBIR
.
UNIVERSIDAD GERARDO BARRIOS CRU FACULTAD DE CIENCIA Y TECNOLOGIA INGENIERIA EN SISTEMAS Y REDES INFORMATICAS
Básicamente mediante un túnel SSH
estableciendo nuestras comunicaciones .
Como se puede ver en el gráfico, , fuera de nuestra Red local en que la seguridad está comprometida, . Al establecer el túnel SSH lo primero que hará . Como se puede ver en la imagen, con el servidor SSH que está fuera de la red local comprometida. Una vez establecido el túnel el cliente solicitará por ejemplo visitar una página web como podría ser por ejemplo www.geekland.hol.es
: 1. 2. Nuestra petición, y l .
que hemos establecido.
Por lo tanto aunque recibamos algunos de los ataques mencionados y se intercepte nuestro tráfico dentro de la red local comprometida, nadie podrá obtener nuestras credenciales, ni modificar el contenido de la petición ni robarnos información ya que la información que obtendrán estará completamente cifrada. Por lo tanto con el túnel SSH estamos garantizando la integridad y confidencialidad del tráfico entre nuestro ordenador y el servidor SSH que está fuera de nuestra red Local en una ubicación segura y no susceptible de ataques. Una vez nuestra petición está en el servidor SSH tendrá que dirigirse al servidor web de la página que queremos conectarnos. En el último tramo la petición ya irá en texto plano y por lo tanto será susceptible de ser interceptada y modificada, pero cabe decir que la probabilidad de tener problemas de confidencialidad y de integridad de nuestros datos en este último tramo es muy baja.
UNIVERSIDAD GERARDO BARRIOS CRU FACULTAD DE CIENCIA Y TECNOLOGIA INGENIERIA EN SISTEMAS Y REDES INFORMATICAS
Nota:Laproteccióndentrodelaredlocalcomprometidaesparalatotalidaddetráfico entranteyparalatotalidaddetráficosaliente.
CONCLUSIONES SOBRE LA UTILIDAD DE TÚNEL SSH Vistas las posibles utilidades y el funcionamiento teórico de un túnel SSH podemos llegar a las siguientes conclusiones: 1. El túnel SSH . 2. La navegación a través de un túnel SSH ya que nadie podrá conocer las páginas web que estamos visitando ni que estamos haciendo. 3. La navegación a través de un túnel SSH ya que la probabilidad que alguien pueda modificar las datos que enviamos o recibimos es muy baja. 4. Los túneles SSH nos pueden servir también . 5. Los túneles SSH como por ejemplo HTTP, SMTP. FTP, Telnet, etc. 6. . En futuros post veremos cómo disponer un servidor SSH propio en apenas 10 minutos. Hoy en día las cosas hechas por uno mismo acaban siendo siempre más seguras. En Internet por supuesto que existen servicios gratuitos de VPN o proxys que se dedican a ofrecer servicios similares de forma gratuita. Con estos servicios gratuitos hay que ir con cuidado ya que para monetizar el servicio que están prestando nos pueden estar vendiendo a nosotros mismos recolectando información y vendiéndola a terceros. Nota: Existen muchas otras utilidades aparte de las comentadas. Las utilidades comentadas entiendo que son las más habituales para los usuarios comunes como somos nosotros. LIMITACIONES DE LOS TÚNELES SSH Como todos saben la seguridad absoluta no existe. El hecho de aplicar está técnica u otras descritas lo único que hará es poner las cosas más difíciles a los posibles atacantes. Ya saben que para cualquier problema un atacante siempre puede encontrar una solución. Las principales limitaciones de navegar o usar ciertas aplicaciones mediante túneles SSH son las siguientes: 1. En la comunicación entre cliente y servidor . Concretamente hablo del tramo que va del servidor SSH al servidor Web y del servidor web al Servidor SSH. En este tramo un atacante podría
UNIVERSIDAD GERARDO BARRIOS CRU FACULTAD DE CIENCIA Y TECNOLOGIA INGENIERIA EN SISTEMAS Y REDES INFORMATICAS
comprometer la integridad y la confidencialidad de los datos transmitidos. No obstante la probabilidad que esto llegue a suceder es baja. 2. Para poder navegar a hacer peticiones a través del túnel SSH . Así por ejemplo si queremos navegar de forma segura tendremos que configurar adecuadamente nuestro navegador. En el caso que queramos descargar torrents a través de nuestro túnel SSH también tendremos que configurar nuestro gestor de torrents adecuadamente y así sucesivamente. Informacion obtenida de: http://pressroom.hostalia.com geekland