You are here

En un Honeypot, ¿emular o recolectar?

Este es uno de los principales problemas con los que me he encontrado (un poco tarde por cierto) a la hora de crear un honeypot VoIP. Y el problema ya hecho que ahora llege a un punto muerto, la idea inicial de emular un proxy SIP (stateless) queda corto de cara a la multitud de soluciones VoIP existentes en el mercado actual. Sería interesante también un Honeypot que emulara el comportamiento de una PBX como Asterisk, o un completo proxy SIP del nivel de Kamailio. Pero la realidad me ha demostrado que nadie emula el software original como el propio software en sí. Algo que de entrada ya puede parecer obvio, y que tal vez debería haber contemplado desde un inicio.

Es decir, por muchos intentos de emular el comportamiento de Asterisk en un honeypot (o reduciéndolo a la idea inicial en un falso proxy SIP que hace a su vez funciones de PBX), tendiendo en cuenta que la única finalidad es atraer un atacante, resulta lógico que nada se parecerá más a un sistema Asterisk que el propio software de Asterisk.

De un buen principio se partía de un proxy SIP diferente a todo lo existente en el mercado (lo que se conoce como honeypot de baja interacción), pero uno se da cuenta de la baja credibilidad del sistema ya que podría ser fácilmente identificado, con lo cual perdería toda su utilidad. A medio camino entre un honeypot de baja y otro de alta interacción está la posibilidad de emular varios sistemas (aunque este sería el más largo y costoso camino) estando siempre pendiente de los cambios y del comportamiento del software emulado. Otra posibilidad es instalar un sistema real completamente "desconfigurado" (o configurado a tal efecto), que se comporta como un Asterisk en todos sus aspectos y al que podemos acceder usando los mismos passwords por defecto, creando un sistema altamente vulnerable y atractivo para un atacante.

Es por ello que actualmente resulta importante replantear el desarrollo del proyecto, el pequeño proxy SIP tiene su utilidad y es posible jugar al ataque pero dista mucho del aspecto real de un Kamailio, sipX o un Asterisk.

No obstante el core de desarrollo por ahora he dividido en 3 grandes módulos: recolecta de información, análisis y display de eventos continua siendo válido independientemente de la dirección que se quiera tomar.

Usemos un stateless (fake) proxy server "inventado" o un sistema Asterisk desconfigurado, siempre será necesario que nuestro honeypot sea capaz de extraer el máximo de información de las transacciones que se están realizando en este falso sistema (recolecta), una vez recolectada la información debe ser capaz de analizarla con la finalidad de extraer información relevante sobre el atacante y las técnicas usadas (análisis), y después nos la muestre de forma amigable, resumida y facilmente "digerible" por nuestro querido sysadmin.

Es posible obtener gran cantidad de información a partir de los logs de Asterisk y de otros sistemas, aunque para obtener información altamente relevante deberíamos introducirnos hasta el fondo del sistema ya sea vía plugins para dicho software o vía parches que modifiquen su comportamiento esencial. Esto puede resultar más sencillo en sistemas conocidos como Asterisk, mientras se va complicando para sistemas más complejos o desconocidos.

Después de pensar detenidamente en ello, actualmente creo que el planteamiento inicial de crear un nuevo proxy SIP es un tanto obsoleta. Ya que a medida que el proyecto crezca y sea mínimamente conocido sería muy sencillo distinguir si estamos ante un sistema Asterisk real o ante un "bytecoders honeypot" que huele mal. Indeciso

Por lo tanto considero que es mucho mejor recolectar que emular, aunque si alguien tiene una opinión diferente estaré realmente encantado y agradecido que exponga el motivo dejando un comentario al respecto.

Asterisk: 
Qué te parece: