Honey pots; descubre qué son, monitorízalos y caza al cazador
Hoy en día la mayoría de los ataques informáticos proceden de individuos que intentan tomar el control o dañar diferentes sistemas. Consiguen realizar estos ataques al encontrar vulnerabilidades en los dispositivos, por lo que para evitar estos sucesos la mejor defensa que existe es la instalación de honeypots en nuestra red.
¿Qué son los honey pots?
En español decimos que “se capturan más moscas con una gota de miel que con un tazón de hiel”, y precisamente se trata de atraer la mayor cantidad de solicitudes para analizar sus intenciones. Tal vez nos preguntemos: “¿Quién me va a atacar si pertenezco a una pequeña empresa, una mota de polvo en Internet?”. Pero la verdad es que han pasado muchos años desde que los hackers se dedicaban a navegar por el ciberespacio pescando víctimas. Las amenazas actuales estriban en ataques por medio de programas automatizados, tomando el control de miles de dispositivos en línea (cámaras web, refrigeradores, televisores, enrutadores, etcétera), para llegar a tener un ejército de clones preparados y a la escucha del comando de su amo. Por ejemplo, para atacar de manera masiva a un dominio web -lo que se conoce como una ataque de denegación de servicios “Denial-of-Service” o “DoS”- o mantener a esta tropa ocupada en su tiempo libre poniéndola a fisgonear todo lo que se atraviese en su camino.
Aquí hablaremos de esto último: no importa si vuestra dirección IP fija se ha difundido o que vuestro proveedor de Internet os haya asignado una dirección IP dinámica (que cambia con el tiempo). Puedes ser atacado sin misericordia, tal como descubrió este experto al monitorizar su propio módem suministrado por su proveedor de Internet. Aquí él ilustra lo que sucedería si un atacante se hiciera cargo por la fuerza de nuestro enrutador: es por ello que la mejor defensa es un buen ataque y de allí la razón de tener honey pots. Podemos definir un honeypots como: “un recurso sistemático de información cuyo valor descansa en el uso ilícito o no autorizado de esos recursos” (según “SecurityFocus™”).
¿Cómo se comportan los honeypots?
Los honeypots a primera vista parecen desprotegidos, corderos en medio del campo a merced de los lobos merodeadores que pululan por la red. Graba toda acción e interacción con esos usuarios, y debido a que no ofrecen ningún servicio legítimo toda esa actividad está desautorizada y por lo tanto posiblemente sea maliciosa. Es así que, por ejemplo, la apertura de un puerto comúnmente usado para las bases de datos MySQL podría ofrecer respuestas parecidas a este sistema de gestión de bases de datos, sin tener dicho software instalado. Así es posible observar el comportamiento del atacante pudiendo finalizar en cualquier momento la conexión con cualquier excusa como “server is shutting down”, cuando se haya alcanzado el objetivo programado. Monitorizar un honeypots pasa por comprender primero cuáles son los peligros existentes y cómo funciona cada uno de ellos. Este artículo pretende ser un destello de luz sobre la materia e incluimos enlaces para todo aquel que desee profundizar en su estudio.
Los honeypots no son una solución
Es una advertencia que debemos aclarar, por si las dudas: los honeypots son herramientas que usaremos dependiendo de nuestros objetivos, no están orientados a dar soluciones. Un caso pragmático puede ser el de colocar una copia de nuestro servidor de base de datos pero lleno de datos inventados, con el fin de realizar seguimientos.
¿Abrumado o abrumada con la información? Tomad un café -y una bocanada de aire- porque ahora llega lo bueno.
Tipos de honeypots
En el párrafo anterior colocamos un ejemplo específico de lo que son los honey pots de baja interacción: queremos investigar cómo afectaría un ataque a nuestro servidor de base de datos con datos ficticios llamados “token honeypot”, los cuales luego pueden ser rastreados. Aquí se incluyen los honeypots en producción para casos muy puntuales.
El otro tipo de honeypot es el de alta interacción: permitirle al atacante que interactúe con el sistema operativo para conocer sus destrezas globales y capturar esa información. Es muy utilizado en labores de investigación, pero, ¿qué diablos tiene esto que ver con la monitorización?
Monitorización de honeypots
¡Ningún dato ha de ser guardado en nuestros honeypots! Precisamente si el atacante pudiera tener acceso a ellos, podría revertirlos en nuestra contra. La monitorización de los honey pots debe hacerse en tiempo real sacando los datos inmediatamente. Así existen varias maneras de hacerlo.
Si nuestro honeypot es una máquina virtual podemos crear un disco duro virtual externo con el que podamos respaldar cada cierto tiempo con la configuración que hayamos decidido guardar allí. Otra opción: si nuestro honeypot es una máquina real, podríamos tener otra máquina real (servidor recolector) en la misma red de área local y crear solicitudes de datos cada cierto tiempo; lo importante sería que el servidor recolector no pueda recibir solicitudes de conexión del honeypot (en el supuesto de que el atacante se haya hecho con el control total del honeypot). De más está decir que los datos recolectados serán aislados unos de otros para su posterior análisis y descartar en cierto punto los que haya podido contaminar el atacante.
Como las combinaciones son prácticamente infinitas, hagamos un caso práctico.
Ejemplo práctico con “Artillery”
“Artillery” es una bifurcación “fork” del código creado por TrustedSec, llevado ahora por BinaryDefense y está basado en una licencia BSD de código abierto. Además, incluye las instrucciones de instalación en un servidor Ubuntu que puedes descubrir en este enlace.
Está escrita en lenguaje Python y se centra en los siguientes aspectos:
- Abre múltiples puertos comunes utilizados por una gran variedad de aplicaciones e incluye la dirección IP del atacante en una lista de negación ubicada en “/var/artillery/banlist.txt” (Ya tenemos listo nuestro primer archivo a monitorizar: descargar con un guion escrito en bash con una frecuencia de 5 minutos y renombrarlo agregando hora y fecha al nombre del fichero).
- Por defecto, “Artillery” monitorea los directorios “/var/www” (donde se guardaría una página web si tuviéramos instalado el servidor web “Apache”) y “/etc” (crucial para todo servidor GNU/Linux). Existe un archivo de configuración donde podremos agregar otras carpetas que sea de nuestro interés el monitorear.
- “Artillery” monitorea SSH y busca intentos de acceso por la fuerza bruta.
- También tiene la opción de enviar un correo electrónico cuando ocurra un ataque y permite conocer en qué consistió el ataque (una forma de monitoreo integrada por defecto).
- Para configurar esto debemos acceder a “/var/artillery/config” y establecer allí nuestras preferencias.
- Es importante que nos agreguemos a una lista de direcciones IP permitidas, para evitar que el honeypots nos bloquee todo el acceso, en el caso de que, por ejemplo, metamos mal la contraseña por SSH. De ser necesario “desbloquear” alguna dirección IP existe el módulo “remove_ban.py” diseñado especialmente a tal efecto.
- Funciona en GNU/Linux y en Windows; en este último sistema operativo se necesitan ciertos detalles en la instalación, pero lo curioso del asunto es que nuestros atacantes siempre pensarán que están lidiando ¡con un equipo Linux!
Otras soluciones utilizadas para crear honey pots
Desde hace años, en el mercado hay herramientas venerables que pueden servir para adentrarse en este campo, teniendo en cuenta que ya deben estar previstas por los atacantes (más adelante las ventajas y desventajas de un honeypots). Algunas de ellas son:
- Honeyd: creada por Niels Provos y, aunque es un solo honey pot en GNU/Linux o Windows, el atacante verá múltiples servidores panales. ¿Cuál es el truco? Honeyd crea direcciones IP virtuales, cada una con los puertos y servicios que deseemos emular. Para ayudar a comprender el concepto, imaginemos un aparato enrutador conectado por un módem a Internet y con un disco duro conectado con varias máquinas virtuales corriendo, cada una con diferentes puertos y servicios abiertos.
- HoneyBOT: está hecha para Microsoft Windows y tiene su interfaz gráfica integrada, lo cual la convierte en una sabia elección para todos aquellos que se inicien en el mundo de los honey pots. Se caracteriza por su nivel de detalle, guarda incluso todo byte recibido del atacante. Incluye interesantes gráficos que permiten ver los ataques más relevantes en un solo vistazo. Es un software privado (existe una versión académica) y pertenece a “Atomic Software Solutions”.
- Specter: es más poderoso, ya que tiene perfiles preconfigurados de varios sistemas operativos, inyecta datos codificados al atacante que permiten ser usados luego como prueba. Abre perfiles personalizados y acumulativos de cada intruso. A este programa no lo vamos a monitorizar nosotros mismos, sino que tiene informes predefinidos con datos a salvaguarda de la casa de software y desconocemos cómo los cuida porque es de código cerrado.
- Kippo: está escrito en Python y está alojado en GitHub con licencia libre. Se describe como un honeypot de interacción mediana, una categoría intermedia a las que describimos previamente, ya que se enfoca en SSH.
Ventajas y desventajas de los honey pots
Ventajas:
- Trabajan en entornos aislados.
- Debido a que utilizan servicios no legítimos producen muy pocos falsos positivos.
- Los datos son concisos y específicos de actividad no legítima.
Desventajas:
- Potencialmente pueden ser descubiertos por el atacante y ser usados en nuestra contra.
- Pueden ser utilizados por el atacante contra otros sistemas distintos al nuestro (ver punto anterior).
- Solo detectan ataques directos al honeypot, no detectan el entorno de la red de área local (excepto Honeyd que crea su propia red privada virtual). Sin embargo, trataremos una solución aproximada a este problema.
Redes y granjas de honey pots
Ambas agrupan conjuntos de honeypots y están diferenciados por la administración centralizada. La idea es desviar la atención de un potencial objetivo real para el atacante y encauzarlo hacia otro honey pot especializado en la tarea asignada (luego veremos las diferentes aplicaciones que son deseables de monitorizar).
Honeypots ocultos
Por medio de un ordenador GNU/Linux que ejecute debidamente iptables, podremos establecer unas reglas donde cualquier solicitud no relacionada con nuestro entorno de trabajo sea redirigida a un honeypot. Cualquier otro administrador de sistemas simplemente negaría el tráfico y listo, pero siempre se debe estar abierto a cómo evoluciona el mundo.
Un modelo muy personalizado de honey pots
¿Qué tal si nos modernizamos y hacemos totalmente públicas las intrusiones a nuestro honey pots por medio de Twitter e incluso guardar nuestra monitorización en Dropbox?
Bienvenidos al siglo XXI; esto es posible gracias al Profesor Sam Bowne del “City College San Francisco”, en Estados Unidos. Su proyecto consiste en crear en Ubuntu un servidor web Apache e instalar tcpdump, para enviar esa gran cantidad de tráfico de red a Dropbox y grabar todos los comandos del “shell” a un “syslog” por medio de un guion creado por él. Una tarea programada se encarga de subir los datos en 50 trozos de 10 mega bytes de manera regular y constante.
También utiliza tripwire para llevar un registro pormenorizado de los ficheros modificados (atención, se debe arrancar con un sistema “limpio” antes de exponerlo a fin de comenzar con una buena base) y un cliente llamado speedtest-cli escrito en Python que mide la velocidad del Internet.
En otro servidor que monitoriza los archivos almacenados en Dropbox extrae las palabras claves y por medio de un guion escrito en PHP las publica en Twitter, lo cual no es una buena idea porque le da pistas a los atacantes sobre lo que hacen (allí aparece la dirección IP asociada al ataque). Luego modificó el guión PHP para enviar mensajes directos en Twitter, lejos de la vista pública (uno puede configurar para que los mensajes directos también sean enviados a nuestro correo electrónico ¡mejor monitorización imposible!).
Programador desde 1993 en KS7000.net.ve (desde 2014 soluciones en software libre para farmacias comerciales en Venezuela). Escribe regularmente para Pandora FMS y ofrece consejos en el foro. También colaborador entusiasta en Wikipedia y Wikidata. Machacador de hierros en gimnasios y cuando puede se ejercita en ciclismo también. Fanático de la ciencia ficción. Programmer since 1993 in KS7000.net.ve (since 2014 free software solutions for commercial pharmacies in Venezuela). He writes regularly for Pandora FMS and offers advice in the forum. Also an enthusiastic contributor to Wikipedia and Wikidata. Crusher of irons in gyms and when he can he exercises in cycling as well. Science fiction fan.