Novedades

Honeypots:

trampas para el adversario

El día a día, las empresas reciben cientos o miles de ataques automatizados en busca de posibles nuevas víctimas. Miles de robots, scrappers (recolectores), crawlers (orugas) y scripts se dedican a escanear rangos de direcciones IPs y/o dominios buscando servicios expuestos que sean inseguros, antiguos o estén mal configurados, para múltiples fines, como agrandar su red de bots (botnet), minar criptomonedas, exfiltrar información, y mucho más. Esto plantea un panorama difícil para los defensores, donde siempre tienen que conocer al 100% de sus servicios expuestos, versiones, infraestructura, y todo hecho correctamente sin ningún fallo de seguridad. Una estrategia interesante es utilizar una de las principales técnicas de Ciberdefensa Activa, que son los Honeypots para intentar averiguar qué buscan, qué explotan, y cuál es el patrón que siguen los atacantes.

¿Qué es un Honeypot?

Un honeypot, del inglés “tarro de miel”, es un sistema trampa o señuelo que tiene como objetivo atraer atacantes, para de esta forma proteger los sistemas informáticos reales de una organización. Algunas de sus funciones son recolectar información de los atacantes y sus ataques, alertar de posibles ataques, ralentizarlos o distraerlos. Están diseñados para simular ser un sistema legítimo, pero con servicios mal configurados, con vulnerabilidades conocidas, ¡simulando ser el paraíso de cualquier atacante!

En este post crearemos uno para recolectar información sobre los atacantes y sus técnicas. Al igual ocurre con todo en el mundo de la ciberseguridad, la creación y utilización de uno de estos artefactos, conlleva un gran riesgo que debemos contemplar. Como este honeypot es solamente para investigar, no lo queremos cerca de la red de nuestra organización, por lo que utilizamos un proveedor de nube (Google Cloud, AWS, Azure, Digital Ocean).

Creando un honeypot

Para la creación y despliegue de nuestro honeypot, nos basaremos en el proyecto “T-Pot” con más de 8 años de actualizaciones y mantenimiento, que dispone de una suite de más de 20 honeypots, como por ejemplo Cowrie (Honeypot simula ser un servicio SSH y TELNET), y Dionaea (Simula ser un servicio FTP, MySQL, SMB, entre otros) y hasta cuenta con el Elastic Stack para la visualización de los ataques, logs, peticiones, etc. Dado que T-Pot utiliza Docker para crear todos los servicios, nuestra servidor virtual debe de tener suficiente memoria RAM para la versión por defecto, si deshabilitamos algunos honeypots es posible que el consumo de memoria disminuya. En este caso nosotros utilizamos un droplet con Debian 11, de 8GB de RAM y 80GB de disco.

Una vez hayamos creado nuestro droplet, el despliegue de T-Pot es bastante sencillo y automatizado, dentro de su repositorio tienen un tutorial el cual explica en detalle todas sus configuraciones, pero si queremos dejar todo por defecto, sería tan simple como ejecutar lo siguiente:

Esto nos guiará durante el período de instalación. Una vez hayamos configurado e instalado todo, nuestro servidor se reiniciará, y algo importante a tener en cuenta son los puertos donde escuchan los servicios de manejo de T-Pot:

  • Puerto 64294 TCP → Acceso a Cockpit.
  • Puerto 64295 TCP → Servicio SSH real para el manejo del servidor.
  • Puerto 64297 TCP → Proxy reverso de NGINX para utilizar Kibana y otras utilidades.

Mayormente utilizamos el puerto 64297, para el panel de control creado en Kibana. Si todo se creó y está en ejecución correctamente, al ingresar al puerto de Kibana, nos pedirá unas credenciales, las cuales configuramos en el momento de la instalación.

Estas serían las utilidades de T-Pot. Si nos dirigimos a Kibana, podremos ver qué información recolectó cada Honeypot, y a su vez tenemos un panel más general que nos muestra el total de interacciones con cada servicio.

Podemos observar que el honeypot de “Cowrie” ya recibió más de 130 conexiones, mayormente dirigidas hacia el puerto 23/TCP (Telnet) y podemos ver que una gran parte de estas peticiones provienen de los Estados Unidos, esto no quiere decir que todas las IPs de origen sean IPs de atacantes o C2, también es posible que sean dispositivos que fueron vulnerados previamente y los utilizan para encontrar nuevas posibles víctimas. Si bajamos un poco más en este panel, podemos ver algunas de las combinaciones utilizadas para ingresar en el servicio SSH y/o telnet. Algunas de ellas son contraseñas que vienen configuradas por defecto en sistemas o servicios reales.

Un detalle interesante es que las imágenes anteriores fueron tomadas dentro de los 20 minutos posteriores a la instalación completa de la plataforma de honeypots. En ese tiempo ya estamos recibiendo ataques, viendo cómo actúan, y qué servicios buscan mayormente. Esta información es relevante para posteriores análisis y sobre todo para saber contra qué nos estamos enfrentando como defensores.

Los ataques continúan

Pasada una hora desde el despliegue total de la plataforma de honeypots, seguimos viendo los números que aumentan sin parar, por lo cual formulamos algunas hipótesis en base a los ataques que corroboramos con el tiempo:

  • Los servicios que reciben mayores peticiones son los más comúnmente explotados: SSH (22/tcp), Telnet (23/tcp), Páginas web (80-443/tcp), SMB (445/tcp).
  • Varios ataques intentan minar criptomonedas con nuestros recursos.
  • Buscan recolectar la mayor información posible de nuestro sistema y/o servicios.
  • Explotan vulnerabilidades conocidas públicamente.

Viendo nuevamente nuestro panel de control, vemos lo que se intenta realizar contra una de nuestras aplicaciones web, un blog construido con Wordpress.

Aquí vemos intentos de explotar vulnerabilidades del tipo Cross Site Scripting (XSS), a su vez peticiones de “index”, que si nos fijamos los logs, realmente son peticiones con distintas rutas, buscando rutas conocidas o ejecutando exploits conocidos.

Investigando un poco más en profundidad, la primera petición de la captura de pantalla anterior, busca explotar una vulnerabilidad en el servicio Fortinet FortiOS para versiones antiguas (5.6.3 - 5.6.7 / 6.0.0 - 6.0.4) que posibilita la lectura de credenciales en texto plano. Esta vulnerabilidad ya es conocida, posee su CVE ( CVE-2018-13379 ) y un exploit público.

Conclusiones

El uso de honeypots es una de las tácticas más efectivas dentro de la defensa activa, analizar el comportamiento del atacante, engañarlo, influir en su accionar, son cosas que podemos realizar con este enfoque para la ciberseguridad defensiva. Como ya hemos mencionado en anteriores posts, jugamos el juego del gato y el ratón, donde éste casi siempre logra escapar, pero con este enfoque buscamos nivelar las cosas y dejar de estar en tanta desventaja técnica los defensores. En próximos posts estaremos hablando más sobre este tema, analizando ataques, comprobando nuestras hipótesis y planteando nuevas. Por ahora, dejemos que los atacantes caigan en nuestras trampas.