Visualización gráfica trafico de red con AfterGlow. configurando color.properties. Modelando gráficas.

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. vimos en el último artículo sobre Afterglow: Visualización gráfica de alertas Snort con Aferglow.

Visualización gráfica de ficheros .pcap con AfterGlow. configurando color.properties. Breve Guía.

En esta ocasión vamos a aprender a configurar y modelar los resultados de la representación gráfica de tráfico de red desde el archivo de configuración de propiedades de color, formas, condicionales, etc de Afterglow.

El archivo color.properties.

En forma esquemática paso a explicar brevemente los componentes de un archivo color.properties de Afterglow para la representación de los nodos. Para cada caso necesitaremos un archivo de propiedades diferentes.

Los nodos pueden ser, básicamente, ya veremos más adelante que hay más:

  • source nodo de origen
  • target nodo de destino
  • event nodo de evento

Si queremos representar gráficamente una captura que incluye los siguientes campos de representación: ip origen -> ip destino ->  puerto tco destino ,en este orden, entonces quedaría: source -> target -> event.

Cuando creamos un fichero .dot o .csv,

  • tshark -r captura_ejemplo.pcap -T fields -E separator=, -e ip.scr -e ip.dst, tcp.dstport | perl afterglow.pl -c color.properties -t > grafica.dot  

este fichero continene unos campos separados por comas (,).

Por ejemplo (para el artículo de alertas snort):

archivo csv alertas snort para afterglow

Atendiendo a esto, tenemos lo siguiente :

Campos.

$fields[0]  para el primer campo de .dot o .csv
$fields[1]  para el segundo campo de .dot o .csv
$fields[2]  para el tercer campo de .dot o .csv

Colores

color.source=»yellow» para nodos origen
color.target=»blue» para nodos destino
color.event=»red» para nodos eventos

color.[source,target,event]=»invisible» para que no parezcan determinados datos.

Las formas

shape.source=»forma«
shape.target=»forma«
shape.event=»forma«

que pueden ser ellipse, box, triangle, circle.

Condicionando…

Podemos usar if para condicionar la representación de eventos, source y target usando, además, expresiones perl y/o regulares.

Y como siempre, para entenderlo mejor, los ejemplos.

Ejemplo 1.

Queremos representar gráficamente al actividad FTP entre cliente y servidor. Como evento queremos representar los ftp.requests.

Lo primero es leer con tshark el archivo de captura, extraer lo datos necesarios yvolcarlos, por ejemplo, a un archivo .csv:

> tshark -nn -r ftp_actividad.pcap -T fields -E separator=, -e ip.src -e ftp.request.command -e ip.dst | sort -u > grafica0.csv

Como véis extraemos:

  • ip.scr  ip origen   source
  • ftp.request.command comandos ftp request  event
  • ip.dst  ip destino  target

Ahora creamos nuestro fichero de propiedades de color. yo ya tengo uno casi preparado llamado color.http y lo modifico según necesidades:

color.source=»yellow» if ($fields[0]=~/^192\.168\..*/);
color.source=»lightblue» if ($fields[0]=!~/^192\.168\..*/);
color.source=»invisible»
shape.source=»ellipse»;

color.event=»green» if ($fields[1] =~ /PASS/);
color.event=»palegreen»;
shape.event=»box»;

color.target=»red» if ($fields[2]=~/^192\.168\..*/);
color.target=»red»;
shape.target=»circle»;

color.edge=»blue»;

color.source para nodos origen:

  • indicamos amarillo para la expresión, del campo 1, del archivo .csv para toda IP 192.168.xxx.xxx
  • indicamos azul claro para las que sean distintas a la anterior
  • para el resto que no aparezca
  • la forma de la etiqueta será un elipse.

color.event para nodos origen:

  • indicamos verde para el segundo campo del archivo .csv si cumple la condición de que el comando ftp request sea PASS (password)
  • para el resto, otra variedad de verde.
  • la forma de la etiqueta será una caja.

color.target para nodos de destino:

  • indicamos rojo para la condición y mismo color para el resto.
  • la forma de la etiqueta será un cículo.

color.edge. para las líneas y flechas.

  • serán de color azul. color.edge=»blue»;

Ahora pasamos los datos del archivo .csv al script de perl para parsear y crear el archivo .dot:

> cat grafica0.csv | perl afterglow.pl -c color.http > grafica.dot

Creamos el archivo de la gráfica tipo dot en formato .png:

> dot -Tpng -o grafica0.png ./grafica.dot

El resultado:

afterglow representacion gráfica trafico red ftp

como véis queda marcado el comando ftp request PASS. Tenemos el origen cliente en amarillo, los comandos en verdes y destino o servidor ftp en rojo en forma de cículo.

Ejemplo 2.

Queremos representar ahora la actividad http para etiquetar los request http: http.request.uri. Es decir; la petición URI (Identificador Uniforme de Recursos). Lo vimos aquí: Wireshark / Tshark. Filtros HTTP. Parte 2

Seguimos los mismo pasos que con el ejemplo anterior pero modificando según lo que necesitamos:

> tshark -nn -r actividad_http1.pcap -R «http» -T fields -E separator=, –e ip.src -e http.request.urie ip.dst > grafica_http.csv

Aquí el source sería ip.src, http.request.uri y target ip.dst.

Seguimos con el resto. el archivo de propiedades de color color.http1:

color.source=»yellow» if ($fields[0]=~/^192\.168\..*/);
color.source=»lightblue» if ($fields[0]=!~/^192\.168\..*/);
color.source=»invisible»;
shape.source=»ellipse»;

color.event=»green» if ($fields[1] =~ /dabo/);
color.event=»palegreen»;
shape.event=»box»;

color.target=»red»;
shape.target=»circle»;

color.edge=»blue»;

En este caso las propiedades con parecidas, solo cambia una condición. Cambia de color si la URI contiene la palabra dabo.

Seguimos con el resto:

cat grafica_http.csv | perl afterglow.pl -c color.http1 > grafica_http.dot

usaremos aquí un tipo de gráfico neato

neato -Tpng -o grafica_http.png ./grafica_http.dot

Las etiquetas que represntan los valores de http.request.uri son, en algunos casos bastante largas. En tal caso se pueden recortar. En ewte ejemplo no lo hago para qe veáis como queda en «bruto»:

afterglow tshark representación trafico http

Tenemos en amarillo la IP origen. En circulo rojo las IP destino y en dos variedades de verde las URI de los requests.

Ejemplo 3.

Queremos visualizar de forma gráfica la actividad http respecto a:

  • http.host
  • http.user_agent
  • ip.dst

Vamos ya de seguido….:

Archivo color.http2:

color.source=»yellow»;
shape.source=»box»;

color.event=»green»;
shape.event=»box»;

color.target=»salmon»;
shape.target=»circle»;

color.edge=»blue»;

Extraemos, parseamos y generamos gráfica:

> tshark -nn -r actividad_http1.pcap -R «http» -T fields -E separator=, -e http.host -e http.user_agent -e ip.dst > grafica_http_1.csv

>cat grafica_http_1.csv | perl afterglow.pl -c color.http2 > grafica_http_1.dot

> neato -Tpng -o grafica_http_1.png ./grafica_http_1.dot

El resultado en gráfica grafica_http_1.png con zoom:

afterglow representacion actividad http con host user_agent e ip destino.

En verde el user_agent. En amarillo el http.host.

.

A partir de aquí, el límite.. la imaginación.

.

Enlaces relacionados:

===========

Y hasta aquí por hoy. Hasta la próxima.

Esta entrada fue publicada en AfterGlow., Seguridad y redes, Visualización Gráfica Tráfico red.. Guarda el enlace permanente.

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s