honeypots

Overview

Como en muchas otras ocasiones, dentro del ámbito de la seguridad, la palabra honeypot proviene del argot militar. En el mundo del espionaje se podían usar “trampas de miel”, relaciones románticas para obtener información.

En el campo de la ciberseguridad, los honeypots son aplicaciones o sistemas diseñados para engañar a nuestros atacantes, “enemigos”, y así poder obtener información de sus técnicas para prevenir de forma más acertada sus intentos de intrusión.

Existe mucha variedad y dependiendo del objetivo que tengamos, escogeremos una u otra opción. La estrategia es exponer un servicio que parezca lícito al alcance del atacante, para que éste intente acceder y nosotros podamos:

. Ser alertados del intento de intrusión.
. Monitorizar sus técnicas de ataque.
. Entretener al atacante.
. Proporcionar información falsa.

Por lo que los honeypots nos están proporcionando al menos dos informaciones interesantes, la primera, una alerta temprana y la segunda, información sobre las habilidades del atacante.

Como dice Sun Tzu en el arte de la guerra, “Conoce a tu enemigo y conócete a ti mismo, y saldrás victorioso en mil batallas.”

Para dar cumplimento a la frase de Sun Tzu, primero te has de conocer a ti mismo. Has de tomar conciencia de tus debilidades y fortalezas, o las de tus sistemas en el caso de la seguridad IT. Para ello, una vez definidos nuestros sistemas, los someteremos a auditorias, pruebas de penetración, escaneos de vulnerabilidades y entrenamientos de phishing a nuestros empleados. De esta manera obtendremos una imagen del estado de nuestros sistemas. Así, nos conoceremos a nosotros mismos.

Para conocer a nuestro enemigo tendremos que monitorizar, detectar los intentos de intrusión, el tipo de ataques a los que nuestros sistemas son sometidos, analizar los incidentes que ocurran. Así, conoceremos a nuestro enemigo.

Y es en este punto donde el hacer uso de los honeypots nos puede dar una ventaja, por un lado, estimulando el ataque de nuestros “enemigos” a un servicio sin valor, haciendo que éste pierda su tiempo. Por otro lado, monitorizando que, como y cuando nos están atacando y usando esta información para tomar decisiones en cuestiones de protección de nuestros sistemas.

Tipos de honeypot

Los honeypots se clasifican según la interacción que proveen, alta, baja o media.

Interacción alta: Es un servidor que posee servicios como cualquier otro servidor. Es el entorno más difícil de detectar por parte del atacante, pero tenemos que estar seguros de que el servidor esté completamente aislado de nuestra infraestructura real.

Interacción media: Es capaz de emular uno o varios servicios, devolverá respuestas preestablecidas al atacante y le permitirá acceder a algunos archivos de configuración simulando un entorno real.

Interacción baja: Simula únicamente algún servicio de red básico. La información ofrecida en sus respuestas será muy básica. Un atacante experimentado se dará cuenta fácilmente.

En función de nuestras necesidades, disponemos de infinidad de honeypots que nos pueden ayudar en la tarea de proteger nuestros sistemas ante un posible atacante.

Los más simples son específicos, emulan un servicio o aplicación concreta. Una base de datos, una página web o un puerto ssh.

Se puede obtener algunos ejemplos en el siguiente GitHub.

Los más complejos pueden emular más de un servicio o disponer de agentes que proporcionaran la información recabada a un sistema central.

No es el fin de este post recomendar el uso de uno u otro, según el caso puede ser conveniente hacer uso de uno u otro tipo.

Analicemos algún ejemplo.

Cowrie

Cowrie es un honeypot de servicio, pudiendo emular SSH, TELNET y SMTP. Se despliega con suma facilidad ya que está dockerizado. Con el siguiente comando lo pondremos en marcha.

1
2
~:$ docker run -p 2222:2222 cowrie/cowrie:latest 

En este caso estaremos exponiendo un servicio SSH en el puerto 2222. Creará un entorno virtual, que, aceptando conexiones con cualquier contraseña, proporcionará al atacante la falsa sensación de haber comprometido un sistema.

Permitiéndole ejecutar comandos y obteniendo información de configuraciones standard mientras se registran todos sus pasos tal y como se puede observar en la siguiente imagen.

Para esta prueba se ha ejecutado con la configuración por defecto, pero disponemos de opciones para crear entornos aún más realistas, proporcionando información que pueda simular a la real de nuestra compañía o añadiendo archivos de configuración de aplicaciones concretas.

Otra opción muy interesante es la de configurarse como SSH proxy con monitorización. Podemos preparar un sistema real y con cowrie monitorizar como éste es atacado.

Podemos obtener información más detallada de todas sus opciones en su GitHub.

T-Pot

T-Pot es un honeypot de alta interacción, es un servidor completo que dispone de más de veinte servicios “honeypots” dockerizados y un panel de control basado en kibana para que obtenga los datos de todos ellos.

Se pueden ver las distintas opciones y su instalación en su GitHub.

También podremos observar el detalle de los logs que colecta para analizar el detalle de los ataques que éste ha recibido, como se puede observar en la siguiente imagen.

Aunque lo ideal sea siempre crearse una solución personalizada, tpot es un honeypot muy completo, que podremos ajustar a nuestras necesidades y que con su panel de control realizado con kibana nos ofrecerá muchísima información y bien organizada.

Hellpot

Para finalizar he querido incluir Hellpot, que no cumple estrictamente los objetivos de un honeypot standard, ya que éste no engañará a un atacante, lo que busca es entretener a bots o herramientas automatizadas emulando un servicio web, que una vez contactado, devuelve información random hasta que la sesión muere.

Como el resto de honeypots, éste registra también todas las peticiones que recibe.

En este caso informando del tipo de navegador “user-agent”, la ip orígen y el tiempo que ha entretenido al atacante.

Podemos obtener información más detallada en su GitHub

Un proyecto divertido que nos ofrece un punto de vista distinto al uso de los honeypot tradicionales.

Conclusiones

Los honeypot son herramientas geniales, que debemos tener en nuestro arsenal de defensa. Nos pueden proporcionar información valiosa y entretener a nuestros atacantes con señuelos.

Es importante que se realice una buena configuración, aislando el honeypot de la infraestructura de producción, no vayamos a convertir el honeypot en una entrada real a nuestros sistemas.

Hasta aquí el post de hoy. Espero haya sido de vuestro interés.
No dudéis en contactar mediante el formulario para hacerme llegar vuestros comentarios.