Una de las partes fundamentales en el análisis dinámico de códigos maliciosos es la obtención de información a partir de una captura de tráfico. Para conseguir este objetivo además de las opciones para hacer gráficos, casi todos hacemos uso de los filtros en Wireshark para detectar actividad maliciosa, esta suele ser una de las alternativas más utilizada.
Pero esta no es la única herramienta que existe actualmente para realizar dicha tarea. Por suerte tenemos una gran variedad de opciones, por ejemplo, Malcom nos permite examinar estructuras de redes maliciosas facilitándonos el análisis de las relaciones entre las diversas direcciones IP, dominios y servidores DNS que toman parte en una comunicación C&C, permitiendo procesar rápidamente los datos recolectados y creando gráficos intuitivos que ponen en evidencia las conexiones entre equipos en red.
Por otra parte también tenemos otra utilidad para analizar archivos pcap llamada CapTipper y desarrollada en Python. Posee una variedad de características que facilita la lectura de este tipo de archivos, permitiendo ahorrar tiempo y optimizando todo el trabajo de la auditoría.
Pero como habéis podido deducir por título del post la herramienta de la que os voy a hablar hoy se llama Bro, y es una utilidad que pertenece a la familia de herramientas de todas estas utilidades que comentábamos anteriormente.
Pensado como un sistema de detección de intrusiones (IDS) que corre en plataformas UNIX/Linux y cuyo principal objetivo es permitir el análisis del tráfico de red en busca de actividad sospechosa.
Dado que es una herramienta bastante útil y que por su facilidad para hacer scripts resulta bastante flexible y adaptable, sobre todo para el análisis forense de una gran cantidad de datos. Vamos a exponer en este artículo algunas ideas que podrían resultar relevantes.
Por donde debemos empezar
Esta herramienta nos permite analizar la actividad de red a nivel de aplicación para ir comparando este comportamiento con patrones que pudieran ser considerados sospechosos ya sea por el tipo de paquetes que se intercambien o las características de su contenido.
Para iniciar nuestros análisis solo debemos ejecutar el comando para copiar el repositorio directamente desde GitHub. Con esto además de asegurarnos que tenemos la última versión se nos facilitará su actualización:
git clone --recursive git://git.bro.org/org
Una vez tengamos el repositorio en nuestra máquina, solo nos queda instalar algunas dependencias y ejecutar la instalación. Esta herramienta es conocida por sus funcionalidades de IDS, pero en este caso nos va interesar darle una mirada a las características para extraer información de las capturas de tráfico.
Una de las características que vale la pena resaltar es la capacidad para analizar grandes volúmenes de tráfico. El funcionamiento de la utilidad como ya hemos mencionado se hace a través de scripts, con los cuales se realiza la extracción de información que se esté buscando.
Como resultado de aplicar Bro sobre un archivo pcap resultan varios archivos con información más específica y organizada de acuerdo a las características de cada script. Utilizando la opción más básica de Bro podemos obtener una gran cantidad de información discriminada por protocolos:
bro –r [ruta_archivo_pcap]
Ahora tenemos varios archivos con la información organizada de diferentes manera. Por ejemplo en el archivo http.log podemos encontrar filtradas las peticiones HTTP de la captura de tráfico. Como se puede ver en la siguiente imagen, algo que nos puede llamar la atención durante un análisis es la descarga de un archivo ejecutable:
El string que está resaltado en amarillo, nos va a permitir hacer seguimiento de este evento en particular a través de los demás archivos generados por la herramienta. Por ejemplo si vamos al archivo conn.log y buscamos esta cadena de caracteres vamos a obtener más información sobre la conexión como el momento en que se llega el primer paquete, las ip y puertos utilizados, la duración de la conexión, el origen de la conexión, entre otra información que nos podría resultar interesante para el análisis:
Hasta este punto con el manejo de Bro podremos obtener información similar a la que podríamos encontrar en otras herramientas como Wireshark o CapTipper, solo que organizada de una manera diferente.