Español | English
rss facebook linkedin Twitter

Capturas de red remotas para laboratorios de tráfico

Cuando empezamos a introducirnos en el mundo SCADA, recuerdo una frase que se repetía constantemente: "necesito una captura de tráfico real". Defecto o virtud, cuando se es muy visual uno necesita hacerse a la idea de lo que está tratando, de ahí la necesidad de ‘ver’ lo que estaba pasando por una red de estas características. El hecho de que la frase se repitiera tantas veces, viene dado a la dificultad para obtener una captura ‘útil’. Ahora que tenemos el laboratorio en marcha nosotros estamos en la misma situación en la que les poníamos a aquellos a quienes pedimos alguna vez una captura de tráfico, y por eso hemos tratado de evitar la misma situación con la que nos encontramos.

Segmentación de la red

Evidentemente, el software de captura no es problema, a día de hoy existen varias alternativas, todas igual de válidas. La complejidad de obtener una captura útil viene dada principalmente por la segmentación de la red. La operativa de una red SCADA hace el resto, ya que una captura ‘útil’ debe llevar todo el tráfico de una “operación” en la que intervienen varios equipos de la infraestructura, mediante varios hilos de comunicación realmente activos. Todo esto pasa en varias VLANs al mismo tiempo, separadas por uno o hasta dos firewalls.
En nuestro caso, cada equipo del laboratorio cumple una función específica en lugar de aglutinar varias funcionalidades, lo que nos permite visualizar la comunicación entre todos los componentes, una ventaja para el análisis y casi un problema en ocasiones como esta, en la que queremos disponer de todo el tráfico transmitido. Necesitamos registrar en cada VLAN, y luego hacer un merge de los archivos de captura.

Interfaz de captura remota

Esta es una de esas joyas que pasan desapercibidas y que un día sin querer, descubres. Lo más curioso para mí es que no existe en libpcap, pero si en su versión Windows (Winpcap). Se trata del archivo rpcapd(.exe) que permite conectar Wireshark/Ethereal/Otros a interfaces de captura de un equipo remoto. Dicho de otro modo, desde mi ordenador en mi mesa de la oficina, puedo capturar tráfico del CPD, sin tener que conectarme para ejecutar el software de captura, o sin tener que enviarme el archivo de captura una vez finalizada.
Una vez que hemos preparado un entorno de captura adecuado, obtener volcados en tiempo real es mucho más sencillo y dinámico, ya que consiste en arrancar el programa y capturar, sin necesidad de conexiones adicionales ni envíos de archivos.


Fig.1 – Wireshark capturando tráfico utilizando un interfaz de captura remota: rpcap://

Pros y contras de un interfaz de captura remota

Obviando el hecho de se trata de un nuevo servicio, que puede incorporar nuevas amenazas en la infraestructura, me voy a centrar en los pros y contras operativos de disponer de un interfaz de captura remota.

Pros
En primer lugar, adiós temp1.cap, ya no nos olvidaremos archivos de capturas temporales en un equipo de la red, ya que no capturaremos en ningún equipo que no sea el nuestro. Actualmente disponemos de una captura de todo el tráfico de forma automática para análisis y posibles consultas de eventos pasados, pero en caso de que queramos obtener una captura específica, podemos hacerlo mucho más fácil sin necesidad de acceder al repositorio de capturas, desde nuestro propio equipo.
Adiós al idle de cuentas root, o al tráfico SSH innecesario. Ahora que ya no necesitamos conectarnos al equipo de captura para ejecutar el programa, ya no quedaran conexiones abiertas en los equipos del laboratorio.
Otro de los problemas que hemos debido solventar es la inestabilidad presentada en el interfaz de captura cuando varios programas intentan modificar el estado del driver. Ahora solo existe un programa de captura local, que gestiona todo lo necesario para que el interfaz esté en modo promiscuo siempre que es necesario. Ahora ya no es posible detener sin querer el programa de captura que no era, porque no habrá ninguno.
Rpcapd ofrece suficientes controles de acceso para impedir el abuso del servicio. Uno de los controles ofrecidos en la posibilidad de limitar el acceso a una lista blanca de ‘equipos’, y la otra es la solicitud de credenciales de acceso, que deben corresponden con un usuario y contraseña válidos.



Fig.2 – opciones de configuración de wireshark para utilizar un interfaz de captura remota.

Contras
Bueno, contras como tal solo hay uno: conseguir hacer funcionar el programa en Linux, con libpcap. A pesar de que ‘supuestamente’ el programa debería funcionar per-sé, tal y como está no lo hace (comprobado), y es necesario realizar alguna modificación en varios archivos para conseguir un grado de estabilidad aceptable. Una de las primeras diferencias que aparecen es el interfaz loopback, que en Windows no existe, y el propio programa no sabe cómo gestionar cuando se ejecuta en un entorno Linux.
Otra consideración importante es la replicación del tráfico (ahora el tráfico se enviará desde el equipo de captura hasta nuestro sniffer), pero en realidad es un falso contra, ya que si quisiéramos obtener una captura al viejo estilo, acabaríamos enviándonos el archivo de captura, es decir, exactamente lo mismo pero en modo offline.

Conclusión

La inclusión de este interfaz de captura en el laboratorio SCADA viene dada por la necesidad de acceder en tiempo real al tráfico existente por parte de varios investigadores a la vez. Pero no es el único caso aplicable. Existen otros grupos de interés que se encuentran en la misma situación, por ejemplo, el laboratorio de análisis de tráfico que realiza investigaciones sobre malware, o el propio equipo de malware que dispone de redes en las que los bichos operan libremente. Utilizando un interfaz de captura remota ya no nos molestaremos los unos a los otros.

2 comentarios:

Ignacio dijo...

e testado wireshark y ettercap en ubuntu hardy y me a funcionado perfectamente

a menos que te estés refiriendo a otra funcionalidad

Elías González dijo...

Hola. Estoy intentando utilizar la opción de captura remota con winpcap, pero algo estoy haciendo mal y aún no lo sé. Tengo un servidor en otro segmento de red. Tenemos dominio windows. Debo establecer usuario y contraseña de dominio, o una cuenta local en el server? Además, ¿el puerto es obligatorio o no?


(+34 902 222 521)


24 horas / 7 días a la semana



© Copyright S21sec 2013 - Todos los derechos reservados


login