[NSX Advanced security series 3] Probando NSX Distributed IDS/IPS
[NSX Advanced security series 3] Probando NSX Distributed IDS/IPS
En esta tercera serie de NSX Advanced Security Series, llegó el turno del Distributed IDS/IPS.
El distributed IDS/IPS actúa utilizando las firmas de VMware en colaboración con Lastline para detectar y prevenir posibles ataques en nuestro entorno. La gran ventaja añadida de este IDS/IPS respecto a otros es la flexibilidad para trabajar tanto en el Norte-Sur (A nivel de T1) como en el Este-Oeste, permitiéndonos un control total de todos los flujos de tráfico de manera similar a la microsegmentación, pues el IDS/IPS queda topológicamente instalado a nivel de vmnic.
Prerequisitos
- NSX-T 3.x o NSX 4.x
- Para utilizarlo en el Gateway Firewall, EDGEs con factor de forma Large
- Una licencia válida
Paso 1. Activando Distributed IDS/IPS
En primer lugar deberemos ir a nuestro manager de NSX, Security > Policy Management > IDS/IPS & Malware Prevention > Settings > Shared y habilitamos IDS/IPS tanto para el E-O en todos los clusters o hosts que necesitemos, así como en todos los T1 donde queramos activarlo para el N-S.
En mi caso, para este post, solo lo habilitaré para el Este-Oeste, pues es suficiente para mostrar el funcionamiento de Distributed IDS/IPS.
Si pulsamos en la pestaña IDS/IPS, podremos configurar el auto-update de las firmas o bien subirlas a mano:
Paso 2. Creando reglas de IDS/IPS
El siguiente paso será crear nuestras reglas de IDS/IPS y escoger aquellas VMs sobre las que queremos que se apliquen, la interfaz es muy similar a la del NSX Distributed Firewall, por lo que si estamos familiarizados con éste no nos resultará complicado en absoluto.
En primer lugar iremos a Security > Policy Management > IDS/IPS & Malware Prevention > Profiles, y pulsaremos en «Add Profile» para crear un perfil con aquellas firmas que queramos incluir dentro de nuestra política de IDS/IPS
Una vez creado nuestro perfil, iremos a Distributed Rules si queremos crear reglas a nivel de DIDS, o a Gateway Rules si queremos crearlas a nivel de T1
En mi caso, iré a Distributed Rules
Y añadiré una política para IDS/IPS, a continuación añadiré la siguiente regla para la protección total de todas mis VMs críticas:
- Source: Any
- Destination: Any
- Services: Any
- Security Profiles: El perfil creado en el paso anterior
- Applied To: El grupo de VMs donde queremos que apliquen las políticas
- Mode:
- Detect Only: Sólamente detectará y notificará de los intentos de intrusión
- Detect & Prevent: Bloqueará los intentos de intrusión
Debemos de tener cuidado si decidimos aplicar un perfil IDS/IPS a todo el Distributed Firewall, pues ocasionará una carga de procesos alta a nivel de los hypervisores y podría hacer nuestra plataforma inestable.
Paso 3. Probando Distributed IDS/IPS
Topología y descripción del ataque
¡Hora de divertirnos!
Pongamos a prueba el Distributed IDS/IPS, para ello comenzaremos con un modo Detect Only.
Para ello hemos desplegado en el mismo segmento (para mostrar la funcionalidad de este producto en el Este-Oeste) Una máquina Virtual ParrotSec que será el atacante y una máquina virtual Ubuntu con Confluence 7.18.1 instalado.
Confluence 7.18.1 es vulnerable a un exploit de Remote-Code Execution (RCE) documentado en la CVE-2022-26134
Por otro lado, Tengo mi distribución ParrotSec, con un exploit del CVE-2022-26134 que he encontrado en Github (Link)
Detect Only
¡Vamos alla! Lancemos el exploit y veamos que sucede, recordemos que nuestro IDS está en «Detect Only»
# python3 CVE-2022-26134.py -u 172.16.240.50:8090 -c pwd
Como podéis ver, el exploit ha funcionado y hemos sido capaz de ejecutar el código remoto sin necesidad de autenticación.
Ahora vayamos a nuestro IDS/IPS (Security > Threat Event Monitoring > IDS/IPS)
¡Aquí está! Podemos ver los detalles del ataque:
- Severidad
- Fecha de última detección
- Detalles del ataque
- Workloads (VMs) afectadas
- Detalles del CVE – Con link directo al mitre
- CVSS
- Origen y destino
- Información sobre si ha sido detectado únicamente o detectado y prevenido
Detect & Prevent
A continuación, iremos a Security > Policy Management > IDS/IPS & Malware Prevention y cambiaremos nuestra política a «Detect & Prevent» y pulsaremos en «Publish»
E intentaremos nuevamente el ataque:
# python3 CVE-2022-26134.py -u 172.16.240.50:8090 -c pwd
En este caso el ataque ha sido rechazado, si pulsamos sobre «View Full event history» en el panel de control de NSX podremos ver que esta vez el ataque ha sido detectado y rechazado.
Y así es como hemos conseguido parchear la CVE-2022-26134 de nuestro servidor Confluence sin necesidad de parar la produción de manera urgente para actualizar el producto, sin ningún tipo de corte y de manera absolutamente transparente para nuestros usuarios.
Como siempre ¡Espero que hayais disfrutado del post y os haya sido útil para descubrir las bondades del IDS/IPS que VMware nos ofrece como complemento a NSX! Espero que tengáis una feliz navidad y un genial comienzo del próximo año.
¡Nos leemos nuevamente pronto!