Servidor panal de Sam (más bien un tarro de miel) cuenta Twitter https://twitter.com/sams_honeypot

Servidor panal y su monitorización .

Hoy en día la mayoría de los ataques en Internet proceden de robots o dispositivos con vulnerabilidades explotadas por crackers en aras de levantar gigantescas redes de exploración de forma masiva: nuestra mejor defensa ante esto es la instalación de un servidor panal en nuestra red. Un servidor panal, llamado así por su nombre en idioma inglés “honeypot” – “tarro de miel” en referencia a los glotones osos que usufructúan y destruyen el laborioso trabajo de los demás-, recibirá de manera ex profesa todos los “visitantes” que vengan con buenas o malas intenciones y la razón de ser de este artículo es lograr un registro o informe de tales acontecimientos, en especial los aviesos intentos.

Un ejemplo gráfico de un servidor panal pudiera ser el siguiente, tomado de la Wikipedia en inglés:

Esquema gráfico de un servidor panal, tomado de wikipedia.
Esquema gráfico de un servidor panal, tomado de Wikipedia.

¿Qué es un servidor panal?

En castellano 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 somos una pequeña empresa, una mota de polvo en Internet?” pero es que ya son muy lejanos los días en que un cracker o hacker (con malas intenciones el primero y al menos neutras el segundo) estaba en su computadora navegando por el ciberespacio y pescando uno a uno sus víctimas. Las amenazas actuales estriban en que ellos, por medio de programas automatizados, toman control de miles de dispositivos en línea (cámaras web, refrigeradores, televisores, enrutadores, etcétera) para tener un ejército de clones prestos y a la escucha del comando de su amo: por ejemplo 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.

Acá hablaremos de esto último: no importa si vuestra dirección IP fija se haya difundido o que vuestro proveedor de Internet nos asigne una dirección IP dinámica (qie cambia con el tiempo), igual seremos atacados sin misericordia tal como descubrió este experto al monitorizar su propio módem suministrado por su proveedor de Internet. Acá él ilustra lo que sucedería si un atacante se hiciera cargo por la fuerza de nuestro enrutador:

Red de área local inyectada con un DNS maligno.
Red de área local inyectada con un DNS maligno.

Es por ello que la mejor defensa es el ataque y de allí la razón de ser del servidor panal, el cual ahora definiremos de la siguiente manera: “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 comporta un servidor panal?

Un servidor panal se disfraza como desprotegido, un corderito 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 es no autorizada y posiblemente maliciosa. Es así que, por ejemplo, aperturen un puerto comúnmente usado para las bases de datos MySQL sin realmente tener dicho software instalado. Incluso podría ofrecer respuestas parecidas al MySQL pintando un panorama para el ahora atacante y observar su comportamiento sucesivo 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 servidor panal pasa por comprender primero cuáles son los tipos existen y cómo funcionan, a manera general, cada uno de ellos. Este artículo pretende ser apenas un destello de luz sobre la materia e incluimos enlaces para todo aquel que desee profundizar en su estudio.

Un servidor panal no es una solución a nada.

Es una advertencia que debemos aclarar, por si las dudas: un servidor panal es una herramienta que usaremos dependiendo de nuestros objetivos, no una solución. Un caso pragmático pudiera ser colocar una copia de nuestro servidor de base de datos pero lleno con unos cuantos datos por nosotros inventados y únicos, a fin de que se diseminen y hacerle seguimiento. Tal vez una empresa que fue cliente nuestro y quebró en una fecha exacta: podemos llenar de ventas ficticias con fechas posteriores a nuestro servidor panal con extensa información de artículos también inventados, ese proceder tiene nombre y lo explicaremos más adelante ¿abrumado o abrumada con la información? Tomad un café -y una bocanada de aire-porque esto ahora es que se pone bueno:

Representación gráfica de un servidor panal siendo atacado
Representación gráfica de un servidor panal siendo atacado.

Tipos de servidor panal.

En el párrafo anterior colocamos un ejemplo específico de lo que es un servidor panal de baja interacción: queremos investigar solo 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. Acá se incluyen los servidores panal en producción para casos muy puntuales en las empresas.

El otro tipo de servidor panal 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 ¿y qué diablos tiene esto que ver con la monitorización?

Monitorización de servidor panal.

¡Ningún dato ha de ser guardado en nuestro servidor panal! Precisamente el atacante pudiera teenr acceso a ellos y revertirlos en nuestra contra. La monitorización de un servidor panal debe hacerse en tiempo real sacándo los datos inmediatamente de allí y hay varias maneras de hacerlo.

Si nuestro servidor panal es una máquina virtual bien pudiéramos crear un disco duro virtual externo que podremos respaldar cada cierto tiempo con la configuración que hallamos decidido guardar allí. Otra opción: si nuestro servidor panal es una máquina real es tener otra máquina real (servidor recolector) en la misma red de área local y crear solicitudes de datos cada cierto tiempo pero que el servidor recolector no pueda recibir solicitudes de conexión del servidor panal (en el supuesto de que el atacante se halla hecho con el control total del servidor panal). Demá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 y puntual.

Ejemplo práctico con “Artillery”.

“Artillery” es una bifurcación “fork” del código creado por TrustedSec y llevado ahora por BinaryDefense y es basado en una licencia BSD de código abierto que incluye, además, un abrazo de 5 segundos y una cerveza en caso de toparnos en un bar con el autor de este software (cierta condiciones aplican ?). Las instrucciones de instalación en un servidor Ubuntu las pueden seguir en este enlace.

Por favor, lea también   Huso horario en Lubuntu 18

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, por ejemplo y renombrarlo agregrando 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 sean 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 concoer 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.

  • Una cosa importante es agregarnos nosotros mismos a una lista de direcciones IP permitidas, dado el caso que por nuestro error metamos mal la contraseña por SSH y el servidor panal nos bloquee todo acceso, pendientes de no ser “cazadores cazados”. 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 un servidor panal.

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 servidor panal). Algunas de ellas son:

Honeyd
Honeyd
  • Honeyd creada por Niels Provos y aunque es un solo servidor panal 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. Un tutorial básico sobre cómo instalar y comenzar a usar Honeyd lo podemos leer en este enlace.

  • HoneyBOT servidor panal.
    HoneyBOT servidor panal.

    HoneyBOT esta hecha para Microsoft Windows y tiene su interfaz gráfica integrada lo cual la constituye como una sabia elección para todos aquellos se se inicien en el mundo de los servidores panales. Se caracteriza por su nivel de detalle, guarda incluso todo byte recibido del atacante. Incluye interesantes gráficos que permiten en un solo golpe de vista ver los ataques más relevantes. Es software privativo (existe una versión académica) y pertenece a “Atomic Software Solutions”.

  • Specter servidor panal
    Specter servidor panal
  • Specter es más poderoso ya que tiene perfiles preconfigurados de varios sistemas oeprativos, inyecta datos codificados al atacante que permiten ser usados luego como prueba y le abre un perfil personalizado y acumulativo a 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 servidor panal de interacción mediana, una categoría intermedia a las que describimos previamente ya que se enfoca en SSH. Una guía para instalarlo está disponible en este enlace ¡y hasta se atreven a instalar un servidor MySQL para guardar los eventos en vez de lidiar con ficheros de texto!

    Ventajas y desventajas de un servidor panal.

    Ventajas:

    • Trabaja en entornos ailsados.
    • Debido a que utiliza servicios no legítmos produce muy pocos falsos positivos.
    • Los datos son concisos y específicos de actividad no legítima.

    Desventajas:

    • Potencialmente puede ser descubierto por el atacante y ser usado en nuestra contra.
    • Puede ser utilizada por el atacente contra otros sistemas distintos al nuestro (ver punto anterior).

    • Solo detecta ataques directos al servidor panal, no detecta el entorno de la red de area local (excepto Honeyd que crea su propia red privada virtual). Sin embargo luego trataremos una solución aproximada a este problema.

Redes de servidores panal y granjas de servidores panal.

Red de servidor panal.
Red de servidor panal.

Ambas agrupan un conjuntos de servidores panal y la diferencia es la administarción centralizada. El concepto es desviar la atención de un potencial objetivo real para el ataqcante y encausarlo hacia otro servidor panal especializado en la tarea asignad (luego veremos las diferentes aplicaciones que son deseables de monitorizar).

Servidor panal oculto.

Servidor panal oculto.
Servidor panal oculto.

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 servidor panal. Cualquier otro administrador de sistemas simplemente negaría el tráfico y listo pero siempre se debe estar abierto a como evoluciona el mundo y las nuevas amenazas.

Un modelo muy personalizado de servidor panal.

Servidor panal de Sam (más bien un tarro de miel) cuenta Twitter https://twitter.com/sams_honeypot
Servidor panal de Sam (más bien un tarro de miel) cuenta Twitter https://twitter.com/sams_honeypot

¿Qué tal el modernizarnos y hacer totalmente público las intrusiones a nuestro servidor panal por medio de Twitter e incluso guardar nuestra monitorización en Dropbox? Bienvenidos al siglo XXI y 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 por él creado. Una tarea programada se encarga de subir los datos en 50 trozos de 10 megabytes 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 guión 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 guion 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!).

Conclusiones.

Hay muchas otras cosa que no llegamos a tratar tales como un servidor panal para correo electrónico (como oficina postal libre) a fin de recolectar a los productores de correo basura “spamers” o un servidor panal de base de datos que permite inyecciones de código SQL y sus posterior análisis en cuanto a técnicas nuevas en el ambiente “in the wild” pero cumplimos con una breve introducción a esta tecnología combinada de defensa y ataque que tiene mucho terreno fértil para la investigación y desarrollo.