Mejora de un sinkhole con Honeytrap (I)

Un sinkhole es un sistema por el que determinadas peticiones DNS se resuelven de forma diferente para, normalmente, desviar el tráfico a otro destino controlado (bien sea localhost o una IP determinada). Se utiliza de forma que evitemos que se contacte con el servidor malicioso, combatiendo bastante activamente botnets y virus/downloaders. Bien, el otro día estuve pensando una manera de capturar el tráfico que estaría bloqueando el sinkhole para analizarlo y tratar de actuar contra el software malicioso o, al menos, identificarlo mejor. En esta entrada voy a mostrar una forma de completar ese sistema de Sinkhole con Honeytrap y OpenFPC.

Honeytrap es un tipo de honeypot, desarrollado por Tillmann Werner, cuya principal característica es que no ofrece unos servicios vulnerables concretos sino que simula cualquier servicio, al continuar con la negociación TCP en cualquier puerto y esperar la petición del atacante para registrarla. Esto permite detectar ataques desconocidos (siempre pensando en la máxima de que todo tráfico que cae en una honey es malicioso/sospechoso). También cuenta con un número de respuestas prefijadas para algunos servicios concretos (HTTP, POP3, FTP…).

Entrando un poco más en detalle sobre su funcionamiento, lo que hace es capturar con iptables las peticiones SYN que entran en el sistema y enviarlas a Honeytrap, quien continuará con el establecimiento de la conexión (SYN/ACK). Se dice que es un honeypot de baja interacción porque una vez que se establece la conexión TCP, queda a la espera de la petición del atacante y, en algunos casos, devuelve una respuesta prefijada sin tener en cuenta la petición. De esta forma podremos capturar, al menos, la primera petición en cualquier puerto, sin tener un servicio escuchando en los 2^16 puertos TCP y otros tantos UDP que hay.

Por otro lado, para registrar todo el tráfico de una forma eficiente y poder analizarlo cómodamente más adelante utilizaremos OpenFPC. OpenFPC es un magnífico sistema de captura del tráfico de red que puede ser utilizado en tareas forenses. Encabezado por Leon Ward (@leonward), está basado en Daemonlogger y tshark (principalmente) y básicamente es un sistema para capturar el tráfico, clasificarlo en conversaciones/sesiones (mediante cxtracker), y descargarlo en formato PCAP. Almacena las sesiones en MySQL y ofrece una interfaz de consola y web con la que obtener los paquetes mediante filtros de búsqueda.

El esquema del diseño propuesto podría ser algo así:

Vemos cómo desde la red interna se envían las peticiones al servidor DNS, en este caso ubicado en una DMZ. En función de si el dominio está en una lista negra o no, se resolverá con la IP real (hacia Internet) o hacia nuestro Honeytrap.

Delante de Honeytrap hemos preparado una máquina con iptables y OpenFPC que registrará todo el tráfico que pase por ella con el objeto de analizar el tráfico. Tendremos que configurarlo para evitar que salga tráfico hacia Internet desde dicha máquina y evitar que el malware actúe.

En la siguiente entrega, veremos cómo montar el sistema y capturar tráfico malicioso de un sencillo bot corriendo en una máquina interna que desviaremos hacia nuestro honeypot para analizarlo.

Comments

  1. Buenas.

    Muy útil la información. Orta nueva utilidad para temas forenses que tiene un aspecto interesante. Esperando la siguiente entrega para ver ejemplos concretos de funcionamiento.

    Saludos

Trackbacks

  1. […] Un sinkhole es un sistema por el que determinadas peticiones DNS se resuelven de forma diferente para, normalmente, desviar el tráfico a otro destino controlado (bien sea localhost o una IP determi…  […]

  2. […] Un sinkhole es un sistema por el que determinadas peticiones DNS se resuelven de forma diferente para, normalmente, desviar el tráfico a otro destino controlado (bien sea localhost o una IP determi…  […]