miércoles, julio 26, 2017

T-Pot: Una colmena de Honeypots para atraparlos a todos

Los Honeypots son una gran herramienta para un IDS (Intrusion Detection System), ya que nos ayuda a detectar y estudiar con antelación posibles ataques a nuestra infraestructura real. Todos los que hemos sido administradores de sistemas o estamos en el mundo de la seguridad hemos tenido que trabajar alguna vez con ellos de alguna u otra forma. Existen multitud de honeypots adaptados a funcionar simulando todo tipo de entornos.

Figura 1: T-Pot: Una colmena de Honeypots para atraparlos a todos

Por ejemplo, si necesitas un honeypot para monitoriza tu red de ordenadores, puedes elegir por ejemplo Cowrie (un fork de Kippo y uno de los más utilizados) y si necesitas monitorizar los ataques a una infraestructura industrial (ICS) puedes elegir, por ejemplo, Compot (ICS/SCADA).

Cada instalación de un Honeypot requiere configurarlo y adaptarlo para que parezca lo máximo posible un entorno real (una de las claves del éxito del Honeypot). Además, una vez hemos obtenido y recopilado todos los datos de los posibles ataques, será necesario procesarlos y analizarlos para sacar conclusiones sobre los mismos. Existen muchas herramientas que ayudan a este proceso, como por ejemplo Kippo-Graph (que funciona perfectamente con Cowrie).

T-Pot: Una colmena de Honeypots para atraparlos a todos

Pero existe una solución magnífica que nos permite tener varios Honeypots (incluidos los diseñados para simular ICS) dentro de una sola máquina virtual (o física, según sea necesario) y también nos permite visualizar la información de forma espectacular utilizando ELK.

Figura 2: Dashboard de T-Pot

T-Pot es una plataforma de Honeypots que tiene como base una distribución Linux Ubuntu Server 14.04.4 LTS. Esta plataforma incluye una gran variedad de honeypots ya preparados, configurados y listos para entrar en funcionamiento. Algunos de estos honeypots y herramientas que incluye son:
Conpot: es un honeypot para ICS el cual permite simular un entorno industrial completo, capaz de hacer ver al atacante de que está accediendo a un entorno industrial. 
Cowrie: es un honeypot que simula un servidor con SSH y Telnet diseñado para monitorizar los ataques de acceso, así como la iteración con la Shell. 
Dionaea: otro honeypot de caracter general diseñado para simular vulnerabilidades de red y servicios como SMB, http, FTP, MSSQL e incluso VoIP. 
Elasticpot: es un honeypot basado en una versión simplificada de ElasticSearch. 
EMobility: otro honeypot de infraestructuras ICS que simula un centro de carga eléctrica de vehículos (incluso simula usuarios que están cargando los vehículos).
Tiene una web central de gestión desde la cual el posible atacante tendría acceso a todos los nodos de carga de la falsa infraestructura.
Glastopf: es un honeypot orietando a aplicaciones web como, por ejemplo, webmail, wikis, etc, cualquier aplicación en la que el cliente la ejecute desde su navegador web. 
Honeytrap: este honeypot se centra especialmente en observar ataques contra servicios TCP y UDP. 
Suricata: un monitor de seguridad de red para detectar intrusiones en tiempo real inspeccionando el tráfico de red. 
ELK: son tres herramientas en una, Elasticsearch (servidor de búsquedas), Logstash (administración de logs) y Kibana (visualización y gestión de los datos almacenados).
La gran ventaja de esta distribución T-Pot es que los integra todo es una misma instalación (en el mismo servidor) y todos virtualizados con Docker. Esto permite tener en ejecución varios demonios actuando sobre la misma tarjeta de red sin problemas. Además, al tener cada Honeypot su entorno dockerizado, es muy sencillo su mantenimiento (actualizaciones, por ejemplo), gestión y personalización.

Figura 3: Arquitectura de T-Pot

Los puertos que serán utilizados por los Honeypot instalados en T-Pot tendremos que redireccionarlos hacia el Honeypot desde nuestro firewall o router si fuera necesario:

Figura 4: Lista de puertos a utilizar por los diferentes servicios

La instalación de T-Pot es bastante sencilla, simplemente se puede descargar la imagen ISO y montarla en un sistema virtual o uno físico. También crear la imagen ISO desde este enlace.

Figura 5: Arranque de la ISO de T-Pot

Las recomendaciones de hardware varían en función de si quieres activar todos los Honeypots y herramientas. En esta captura puedes ver las diferentes opciones que aparecerán durante el proceso de instalación. En nuestro caso hemos optado por la opción “E” (todo) en una máquina virtual:

Figura 6: Opciones para elegir tipo de instalación

Durante el proceso de instalación (el equipo se reiniciará dos veces) no se realizan apenas preguntas más allá de la configuración del teclado y el usuario y contraseña para el acceso vía web al panel del control (el usuario para acceder al servidor Linux con T-Pot es “tsec” y la contraseña “tsec”):

Figura 7: Datos de inicio de sesión en T-Pot con el usuario "tsec"

Para acceder al Honeypot de forma segura tendremos que hacerlo desde SSH. Desde Windows podemos utilizar OpenSSH y Putty como puedes ver en este video. Desde Linux o macOS podemos abrir un terminal y ejecutar:
ssh -p 64295 -l tsec -N -L8080:127.0.0.1:64296 192.168.56.100
Ya solo tenemos que abrir el navegador utilizando http://127.0.0.1:64296

Figura 8: Dashboard de T-Pot en la primera ejecución con todos los marcadores a cero

Para comprobar el estado de los contenedores Docker podemos utilizar el plugin ya instalado “UI-For-Docker” el cual nos permite de forma fácil, controlar todos los parámetros de los contenedores como reiniciarlos, pararlos, configuración de red, puertos, etcétera:

Figura 9: Control de todos los contenedores Docker desde T-Pot, "UI-For-Docker"

Para ver el funcionamiento de T-Pot y también como organiza y muestra los resultados, vamos a realizar simular algunos intentos de acceso desde la red interna donde hemos ubicado el Honeypot (no está conectado a Internet para esta demostración) utilizando Kali Linux 2. Antes de continuar es importante decir que toda la información contenida en los Honeypot (contenedores Docker) se pierde cada vez que la aplicación falla o se produce un reinicio del servidor. Es posible activar la persistencia de esta información accediendo a la carpeta /etc/systemd y ajustar los parámetros individualmente de cada servicio para que mantenga la información.

Figura 10: Ficheros con todos los servicios de cada Honeypot para su configuración individual

Vamos a realizar un ataque por fuerza bruta utilizando Metasploit, en concreto utilizaremos el módulo ssh_login. De esta forma veremos cómo es la estructura del Honeypot una vez se ha conseguido acceso (Cowrie). Posteriormente accederemos al dashboard de T-Pot para ver cómo ha registrado el ataque:

Figura 11: Metasploit utilizando el módulo ssh_login

Figura 12: Acceso por SSH al falso servidor para ver su estructura

En el siguiente vídeo muestra la información que ha recopilado T-Pot en su Dashboard después de nuestro acceso. Hemos omitido algunos paneles que no tienen información como por ejemplo la ubicación geográfica (en este enlace puedes ver cómo sería un ejemplo real de T-Pot):

Figura 13: Dashboard de T-Pot después del ataque y los datos registrados

Para probar los Honeypot orientados a ICS, vamos a realizar un acceso al Honeypot Conpot. Este Honeypot simula un contador de consumo eléctrico modelo Kamstrup 382 con conexión Telnet y sin contraseña de acceso.

Figura 14: Acceso al honeypot Conpot (simulando un Kamstrup 382) desde Telnet

Otro ejemplo sería la web del Honeypot eMobility, que simula centros de carga para vehículos eléctricos (sólo tendríamos que poner la IP del Honeypot con el puerto 8080):

Figura 15: Acceso al Honeypot eMobility

Los Honeypot en entornos ICS y IoT (hay que empezar a crear honeypots que simulen el hardware de los ordenadores de placa simple como Raspberry Pi por ejemplo) son una herramienta imprescindible para las instalaciones industriales. En este enlace encontraréis una estupenda selección de recursos para Honeypot que podríamos añadir añadir a T-Pot. Seguro que volveremos a hablar pronto de los Honeypot como parte de la Seguridad de los sistemas de control industriales y las infraestructuras críticas.

Autor: Fran Ramirez (@cyberhadesblog) escritor de libro "Microhistorias: anécdotas y curiosidades de la historia de la informática" e investigador en ElevenPaths.

2 comentarios:

GIE dijo...

Gran contribución, gracias.

Unknown dijo...

Gracias, muy buen aporte!

Entrada destacada

10 maneras de sacarle el jugo a tu cuenta de @MyPublicInbox si eres un Perfil Público

Cuando doy una charla a algún amigo, conocido, o a un grupo de personas que quieren conocer MyPublicInbox , siempre se acaban sorprendiendo ...

Entradas populares