Con la serie de dedicada a la visualización gráfica de capturas de tráfico de red, hemos estudiado algunas técnicas y herramientas con TNV, InetVis, Afterglow, NetGrok, etc. También hemos visto:
- Argus. Auditando el tráfico de red. Parte 4. Generación de gráficas con AfterGlow.
- NetGrok, InetVis, Scapy y Nmap. Detección y visualización scan de puertos. Parte I
En esta ocasión, vamos a aplicar lo estudiado con Afterglow para visualizar, de forma gráfica, las alertas de snort.
Visualización gráfica de alertas Snort con Afterglow.
Para ello usaremos el formato de alerta por defecto de Snort que en Windows se vuelca en alert.ids y en Linux en alert. El formato es el siguiente:
[**] [1:384:5] ICMP PING [**]
[Classification: Misc activity] [Priority: 3]
12/13-14:57:48.818307 0:4:75:ED:89:DF -> 0:15:C5:89:85:5B type:0x800 len:0x4A
192.168.1.5 -> 192.168.1.239 ICMP TTL:32 TOS:0x0 ID:10640 IpLen:20 DgmLen:60
Type:8 Code:0 ID:1280 Seq:6400 ECHO
Pues bien, de aquí extaeremos información de:
- IP origen que para nosotros será sip
- Descripción o nombre de la alerta. Para nosotros name
- IP destino. Para nosotros dip.
Además, para el etiquetado de nodos y colores usaremos un archivo tipo color.properties que lo llamaremos color.snort. Lo configuraremos de esta forma:
color.source=»lightblue»;
shape.source=»ellipse»;color.event=»red»;
shape.event=»box»;color.target=»salmon»;
shape.target=»ellipse»;color.edge=»blue»;
- color.source es el color para las IP origen o sip, que además estarán enmarcadas en una elipse.
- color.event será las descripciones de las alertas. Enmarcadas en una caja para name.
- color.target las Ip destino en color salmón para dip.
- color.edge son las flechas.
AfterGlow dispone de un script de perl para parsear los datos pasados a esté desde un archivo alert de Snort y convertirlo en un formato csv. Este formato, como si de un .dot (que ya hermos visto) se tratase, lo convertimos a una fichero gráfico.
El procedimiento es el siguiente:
alfon@alfonubuntu:~/afterglow/src/perl/graph$ sudo cat /var/log/snort/alert | perl snortalert2csv.pl «sip name dip» | sort | uniq > snort.csv
Ya tenemos el .csv que es el siguiente:
Ya solo nos resta converterir el .csva un fichero gráfico:
alfon@alfonubuntu:~/afterglow/src/perl/graph$ cat snort.csv | perl afterglow.pl -c color.snort | neato -Tgif -o snort.gif
El resultado (haciendo algo de zoom):
La verdad es que con el color rojo… vamos a cambiar nuestro fichero color.snort para dejarlo de esta forma:
color.source=»lightblue»;
shape.source=»ellipse»;
color.event=»green»;
shape.event=»box»;
color.target=»yellow»;
shape.target=»ellipse»;
color.edge=»blue»;
Repetimos las operaciones anteriores y el resultado, ya completo, parece que es más elegante:
En color verde las etiquetas con las descripción de las alertas.
Relacionado con este artículo y para ampliar conocimientos:
Sobre formato de alertas Snort, interpretación, tipos, etc, ya hos hable aquí de forma bastante completa:
Sobre Afterglow, como realizar las gráficas, etc, etc, tanto para Linux como para Windows:
- Visualización gráfica de ficheros .pcap con AfterGlow.
- Visualización gráfica de ficheros .pcap con AfterGlow… para Windows.
====
Esto es todo por hoy. Hasta la próxima.
Pingback: Representación gráfica Apache access.log con apache2dot y Graphviz | Seguridad y Redes