Escolar Documentos
Profissional Documentos
Cultura Documentos
En esta ocasin vamos a iniciar una serie de artculos dedicados a Bro, un sistema de deteccin
de intrusiones para UNIX/Linux Open Source que analiza el trfico de red en busca de actividad
sospechosa. su carcterstica principal es que sus reglas de deteccin estn basados en scricd en
lenguaje nativo que suponen polticas (policies) que son las encargadas de detectar, generar logs
o eventos y acciones a nivel de sistema operativo.
Este artculo est especialmente dedicado a mi bro Dabo (@daboblog).
Qu es Bro.
Bro es un sistema de deteccin de intrusiones para UNIX/Linux Open Source que analiza el trfico
de red en busca de actividad sospechosa.
Analiza la actividad a nivel de aplicacin y por comparacin con patrones considerados
sospechosos, es decir, por caractersticas del trfico y contenido. Algunas caractersticas
importantes de Bro son la gran capacidad de anlisis a nivel de protocolo y las polticas
especializadas y configurables y la capacidad de ser una herramienta de anlisis
forense.Tambin es importante destacar el elevado rendimiento y capacidad de gestionar gran
volumen de trfico.
Las alertas pueden ser configuradas de tal forma que puedan generar eventos de log, alertas en
tiempo real y hasta ejecucin de comandos de sistema.
Bro dispone de una serie de scripts o Policies escritos en un lenguaje nativo de Bro. Estas
polticas describenqu tipo de actividades se consideran sospechosas. En base a esto, disponemos
de una gran cantidad de polticas para la deteccin de las actividades sospechosas ms comunes.
Estas policies suponen una especie de capa ms en la estructura de Bro. Estos policies generarn,
dado el caso, cientos de eventos depndiendo del tipo de protocolo / script.
Las polticas o policies, adems de generar logs por actividad sospechosa, puede generar logs de
actividad normal.
Mediante el uso del lenguaje de scripts de polticas o policies, podemos crear polticas especficas
para nuestro entorno de red o un actividad concreta que deseemos detectar.
Podemos ejecutar Bro para deteccin en tiempo real usando una determinada interface de red o
leyendo un fichero .pcap.
ncurses-dev
libssl-dev
python2.6-dev
Comenzamos:
wget http://www.bro-ids.org/download/bro-1.5.3.tar.gz
tar xzf bro-1.5.3.tar.gz
cd bro-1.5.3
./configure
make
make install-broctl
Configuramos Bro.
Ejecutando Bro.
Dada la complejidad de Bro, iremos estudiando sus caractersticas poco a poco y sus variadas
fomas de funcionamiento. Toda basado en la prctica.
De momento vamos con lo ms simple para inr entendiendo Bro.
Un uso bsico puede ser el siguiente:
> /usr/local/bro/bin$ sudo ./bro -f "tcp" -r captura_smtp.pcap smtp
Se trata de un anlisis offline, le decimos a Bro que lea el archivo archivo.pcap, aadimos un
filtro BPF para tcp y que aplique la policy o script de poltica smtp.bro que se encuentra
en: /usr/local/bro/share/bro
La ejecucin de esta lnea de bro con la poltica smtp.bro, genera los siguientes alrchivos .log:
conn.log
notice.log
smtp.log
alarm.log
conn.log
http.log est a 0
notice.log
smtp.log est a 0
Esiste, en la carpeta que hemos descomprimido para instalar Bro, una serie de scrips para
configuracin y otras utilidades.
En este caso nos interesa bro_config para la creacin de un fichero de configuracin bro.cfg.
Ejecutamos el script:
alfon@alfonubuntu:~/bro-1.5.3/scripts$ sudo ./bro_config
broctl.cfg
node.cfg
networks.cfg
podemos ejecutar broctl para desplegar un centro de contro para la configuracin de bro. Esta
es la mejor manera de configurar bro y la que est ahora en uso sustituyendo al sistema antiguo
broccolite.
La manera de ejecutar broctl es:
alfon@alfonubuntu:/usr/local/bro/bin$ sudo ./broctl
Tenemos una consola (BroControl).
Usando broctl vemos que obtenemos de este log mayor informacin. Vreemos su formato en el
prximo captulo.
Editamos weird.log:
Observamos claramente el tipo de informacin de este tipo de log.
1300884922.499851 192.168.1.5/2268 > 192.168.1.106/ssh: bad_TCP_checksum
1300884937.763084 192.168.1.5/49635 > 192.168.1.106/ssh: bad_TCP_checksum
1300884937.890885 192.168.1.106/58844 > 192.168.1.245/dns: bad_UDP_checksum
1300884937.963542 192.168.1.5/49826 > 192.168.1.106/ssh: bad_TCP_checksum
1300884938.070815 192.168.1.5/49827 > 192.168.1.106/ssh: bad_TCP_checksum
1300884938.178196 192.168.1.5/49828 > 192.168.1.106/ssh: bad_TCP_checksum
1300884938.292406 192.168.1.5/49829 > 192.168.1.106/ssh: bad_TCP_checksum
1300884938.400810 192.168.1.5/49830 > 192.168.1.106/ssh: bad_TCP_checksum
1300884938.508303 192.168.1.5/49831 > 192.168.1.106/ssh: bad_TCP_checksum
1300884938.630239 192.168.1.5/49838 > 192.168.1.106/ssh: bad_TCP_checksum
1300884938.701615 192.168.1.5/49841 > 192.168.1.106/ssh: baroque_SYN
1300884938.701627 192.168.1.5/49841 > 192.168.1.106/ssh: bad_TCP_checksum
1300884938.787513 192.168.1.106/1 > 192.168.1.5/49844: spontaneous_RST
1300884938.823629 192.168.1.5/49845 > 192.168.1.106/1: spontaneous_FIN
1300885009.275644 192.168.1.5/2268 > 192.168.1.106/ssh: bad_TCP_checksum
1300885009.542581 192.168.1.5/2268 > 192.168.1.106/ssh: bad_TCP_checksum
1300885009.726829 192.168.1.5/2268 > 192.168.1.106/ssh: bad_TCP_checksum
1300885009.890607 192.168.1.5/2268 > 192.168.1.106/ssh: bad_TCP_checksum
1300885010.063698 192.168.1.5/2268 > 192.168.1.106/ssh: bad_TCP_checksum
1300885010.103528 192.168.1.5/2268 > 192.168.1.106/ssh: bad_TCP_checksum
1300885010.127833 192.168.1.5/2268 > 192.168.1.106/ssh: bad_TCP_checksum
1300885010.699427 192.168.1.5/2268 > 192.168.1.106/ssh: bad_TCP_checksum
-------Queda an mucho que ver para entender y comenzar a sacar partido a Bro-IDS. Nos vemos
pues en el siguiente artculo.
Y como siempre.. hasta aqu por hoy. Hasta la prxima.