viernes, 27 de octubre de 2017

LiLaS: Little Latch Snitch o cómo bloquear protocolos de red a través de Latch e IoC’s


La semana pasada tuvo lugar una nueva edición del ya famoso hackathon. Una de las ideas interesante; la posibilidad de bloquear el uso de ciertos protocolos en una red usando Latch, nuestro pestillo universal.

¿Cómo los podemos bloquear? Lo vemos claro, Latch nos ayuda a poder bloquear y gestionar de forma sencilla el uso de estos protocolos en la red. Por otro lado existe la posibilidad de introducir una serie de reglas con las que pudiéramos activar ciertos bloqueos en función de los IoC's (Indicadores de compromiso) a definir. Así nació el germen del proyecto LiLaS: Little Latch Snitch.


Montando la base

El elemento elegido para detectar el tráfico y los tipos de protocolos que pasan por el sniffer o detector de tráfico era una Raspberry Pi 3. Esta RPi3 se configura para hacer de punto de acceso WiFi y mediante unas reglas básicas de iptables se hace que el tráfico que llega por la wlan0, gracias a hostapd, pasen a la cola de NFQUEUE - algo ya integrado tiempo atrás con Latch -.


Figura 2: Los IoCs definidos para la PoC de LiLaS

Una vez se detecta un nuevo protocolo de red que circula entre la interfaz de red wlan0, es decir, la del punto de acceso y la de eth0 (en el cable), se añade al servicio de Latch usando Operaciones dinámicas. En ese instante el administrador podría decidir si quiere dejar pasar el tráfico de dicho protocolo o no por el punto de acceso, pudiendo bloquear el tráfico de cualquier usuario de la red por el protocolo. Esto es algo potente, pero se quiere aprovechar esta potencia para mejorarla con los indicadores de compromiso.


Objetivo: Potenciar con IoC’s

¿Y si con los indicadores de compromiso pudieran activar automáticamente el bloqueo de un protocolo usando la API de Latch? Esto mejoraría la experiencia de uso del administrador y le dotaría de un “mini-sistema” de monitorización y alerta temprana en el instante que se detecta el posible compromiso.

Para ejemplificar esto, podríamos pensar en un malware que se comunican mediante dominios conocidos como sospechosos o una herramienta que utiliza dominios con subdominios con formatos largos y extraños, por ejemplo, [hash largo].dominio.com, dónde el [hash largo] identifica datos que se están exfiltrando hacia el exterior. En el momento que esto es detectado, seremos capaces de identificarlo y bloquear el protocolo que se está utilizando para la actividad sospechosa.

Figura 3: Las operaciones que se crean automáticamente en el Latch de LiLaS

Todo esto se presenta en una intuitiva interfaz web dónde podemos manejar los diferentes pestillos que identificaban a cada protocolo conocido y ver el estado. Además, podemos ver si se ha activado algún indicador de compromiso y los diferentes mensajes que nos llegaban y cómo se está actuando en consecuencia.


Conclusiones sobre el hack y el proyecto

Este proyecto proporciona una herramienta para que el administrador tenga el control sobre el tráfico que circula a través de la red a nivel de protocolo. Esto hace posible que los protocolos de una red puedan ser bloqueados, en este caso, a través del uso de una herramienta sencilla como es Latch. Para implementar la solución, se analizan todos los paquetes de red que llegan, ya que, como punto de acceso a la red, podemos analizarlos todos.

El administrador puede ver toda esta información a través de un panel web o a través de la aplicación móvil de Latch. El usuario puede decidir si desea bloquear el tráfico correspondiente a cada protocolo. Esto podría ser útil en casos de ataques de malware en la red, dónde éste se propaga a través de un protocolo concreto, ya que se puede bloquear fácilmente. LiLaS incorpora también la funcionalidad que permite desviar el tráfico a un sistema experto basado en reglas para inspeccionar, a través del uso de una cola ActiveMQ, la captura de red. Esta cola ofrece una gran posibilidad para encolar millones de flujos de datos sin que el rendimiento disminuya.

El sistema experto está basado en reglas de IoC para evaluar cuando se da una situación o ésta se repite de manera alarmante y poder activar los pestillos de los diferentes protocolos que cumplan la regla o lanzar alertas a un administrador. LiLaS demostró gran velocidad y flexibilidad.

Figura 4: Latch WebHooks

Por último, tenemos una lista de tecnologías utilizadas para el proyecto o hack:
• Scapy, para la administración de red. 
• Webhooks de Latch. 
• Flask, para la interfaz web. 
• Cola de ActiveMQ, dónde los paquetes de protocolo son puestos en cola por un proceso productor y luego son consumidos por el script que analiza ese tráfico encolado. Admite millones de flujos de datos sin disminuir el rendimiento. 
• Nodo TOR, para obtener una dirección IP pública. 
• Hostapd e iptables para hacer de punto de acceso WiFi.


Figura 5: PoC del proyecto LiLaS presentado en Equinox