Configuración de sesiones espejo (mirror) en AWS para el monitoreo de tráfico de red

En esta entrada veremos el proceso de configuración e implementación de un sensor de red dentro de AWS con el fin de monitorerar e investigar el tráfico de red de un VPC.

Para el escenario tenemos 4 instancias en un VPC de AWS, en este caso todas las instancias están dentro de la misma subnet. Nuestro objetivo es poder monitorear el tráfico entrante y saliente de las instancias de EC2 y enviar ese tráfico a un sensor a través de la configuración de espejo (mirroring) que provee aws.

Requisitos

  • Para poder configurar el monitoreo de tráfico a través de la opción de Traffic Mirroring, las instancias de EC2 deben ser de tipo nitro, para más información sobre las instancias tipo nitro ver la documentación oficial

En mi caso convertí las instancias t2.micro a t3.micro las cuales forman parte de las instancias nitro. El sensor el cuál recibirá el tráfico tambien debe ser una instancia de tipo nitro.

  • La instancia que hará de sensor debe permitir el tráfico UDP a través del puerto 4789, esta configuración se debe ajustar en una regla inbound del security group de la instancia sensor.

Creación de Filtro

Una vez identificadas las instancias que queremos monitorear y el sensor que recibirá el tráfico, nos ubicamos en la sección VCP.

En la sección Mirror Filters, creamos un traffic mirror filter

Asignamos un nombre al filtro y una descripción, adicionalmente agregamos reglas de entrada y de salida según nuestras necesidades, en este caso puntual voy a capturar todo el tráfico que entre o salga de mis instancias.

Guardamos la configuración y el filtro estará creado

Asignación de los Objetivos (Target)

El objetivo o target corresponde a la instancia en la cual vamos ejecutar las capturas de tráfico (sensor)

Recomiendo tener una pestaña adicional del navegador web abierta para ver la información de las instancias, en este caso selecciono la instancia llamada Sensor y copio el valor del id de la tarjeta de red que recibirá el tráfico de las demás instancias a monitorear

Asignamos un nombre que permita identificar la instancia que vamos a monitorear y asignamos la interfaz de red del sensor.

Asignación de Sesión

En la sección Mirror Sessions, creamos una sesión.

Asignamos el nombre a la sesión. En Mirror source asignamos la interfaz de la máquina orige, en este caso el controlador de dominio y en Mirror Target seleccionamos el target creado en el paso anterior. Para obtener el valor de la interfaz, nuevamente vamos a las instancias y copiamos el valor correspondiente

Asignamos un nombre que permita identificar la sesión, en mirror source colocamos el ID de la interfaz del servidor origen en este caso el controlador de dominio y en mirror target asiganamos el target creado en el paso anterior.

Asignamos el número de sesión, cualquier valor entre 1 y 32766. En la sección Filter agregamos el filtro asignado en la primera sección.

Verificación

En el sensor ejecutamos tcpdump sobre la interfaz de red y ya podemos ver todo el tráfico entrante o saliente del servidor windows

Para capturar el tráfico de las demás instancias simplemente debemos crear sesiones para cada instancia utilizando los filtros y el target creados previamente.

Para este laboratorio he creado 4 sesiones espejo, todas las sesiones apuntando al mismo objetivo o sensor.

Últimos Pasos

Se recomienda ajustar los filtros para rechazar cierto tipo de tráfico, en mi caso he creado una regla de entrada (inbound) para que el tráfico SSH no sea enviado al sensor.

También se pueden crear reglas de salida (outbound) para filtrar el tráfico que no sea de nuestro interés.

Deja un comentario