Skip to content

NeuVector Security Policy Overview

Para detectar violaciones del comportamiento normal, NeuVector mantiene una Política de Seguridad que puede ser gestionada desde la interfaz gráfica (GUI), la línea de comandos (CLI), CRD o API REST.

Groups

Esto proporciona la vista principal de los Grupos de Servicio y Grupos personalizados para establecer el modo (Descubrir, Monitorear, Proteger) para cada servicio y gestionar las reglas. Los grupos son creados automáticamente por NeuVector, pero se pueden agregar grupos personalizados. Las reglas para cada Grupo son creadas automáticamente por NeuVector cuando los contenedores comienzan a ejecutarse.

Puede ingresar a la consola web de NeuVector, por medio de Rancher Manager Server para visualizar los Grupos existentes: NeuVector Luego visualizar los Grupos existentes. NeuVector

Network Rules

Los Network Rules son una lista de reglas que NeuVector debe aplicar. NeuVector puede descubrir automáticamente y crear un conjunto de reglas de lista blanca mientras está en modo Discover. Las reglas se pueden agregar manualmente si lo desea.

NeuVector crea automáticamente reglas de lista blanca de Capa 7 (capa de aplicación) cuando está en modo Discover, observando las conexiones de red y creando reglas que hacen cumplir los protocolos de aplicación.

NeuVector también tiene detección de ataques de red incorporada que está habilitada todo el tiempo, independientemente del modo (Discover, Monitor, protect). Las amenazas de red detectadas incluyen ataques DDoS, tunelización e inyección SQL.

El módulo NeuVector Violation Detection tiene tres modos de operar: Discover, Monitor, and Protect. En cualquier momento, cualquier grupo (que comience con 'nv' o el grupo 'Nodos') puede estar en cualquiera de estos modos.

En las siguientes pantallas, puede verificar los Groups creados hasta el momento y revisar en donde se cambia el Modo (No haga ningún cambio en este momento) NeuVector NeuVector

Estos Network Rules pueden observarse en la siguiente pantalla: NeuVector

WAF Sensors

Los sensores WAF representan la inspección del tráfico de red hacia/desde un Pod/Contenedor. Estos sensores se pueden aplicar a cualquier grupo aplicable, incluso grupos personalizados (por ejemplo, grupos de Namespace). El tráfico entrante a TODOS los contenedores dentro del grupo será inspeccionado para detectar la regla WAF. Además, se inspeccionarán todas las conexiones de salida (salida) externas al clúster.

Esto significa que, si bien esta función se denomina WAF, es útil y aplicable a cualquier tráfico de red, no solo al tráfico de aplicaciones web, y por lo tanto proporciona protecciones más amplias que los simples WAF. Por ejemplo, la seguridad de API se puede aplicar en conexiones salientes a un servicio de API externo, permitiendo solo solicitudes GET y bloqueando POST.

NeuVector

A continuación se llevará a cabo un ejercicio de laboratorio para ejemplificar los WAF Sensors

Ejercicio de Laboratorio sobre WAF Sensors

  1. En la línea de comandos del servidor proporcionado ejecuta el siguiente comando para la instalación de unzip

    sudo zypper install unzip -y
    
    Espera que el comando anterior finalice sin inconvenenientes.

  2. Ahora procedemos a llevar a cabo la descarga de un script para simular un ataque Descargar script de prueba de WAF:

    wget https://open-docs.neuvector.com/assets/files/waf_test-b54bc5fa9530dc205ac4c3b7e6e7e82f.zip
    
    El script que se ha descargado, creará un recurso tipo Deployment de un servicio Web al cual se le estará realizando el ataque simulado, creará algunos WAF Sensors y finalmente atacará nuestro servicio Web.

  3. Cuando lo hayas descargado, puedes descomprimirlo ejecutando el siguiente comando:

    unzip waf_test-b54bc5fa9530dc205ac4c3b7e6e7e82f.zip 
    

  4. El archivo descomprimido creará un directorio llamado waf_test al cual debes ingresar para ejecutar los siguientes comandos:

    cd waf_test
    
    cp http_backend.yml http_backend.yaml
    
    Lo anterior es una corrección al script para que ejecute el archivo correctamente.

  5. Posteriormente debes hacer login al cluster de Kubernetes por medio de la opción KUBECONFIG:

    export KUBECONFIG=/home/student/rke2_conn/cluster1/cluster1_kubeconfig.yaml
    

  6. Ejecuta el script para crear los recursos necesarios y simular un ataque de la siguiente manera:
    ./setup_waf_test.sh
    
    Debes obtener una salida similar a la siguiente:
    namespace/httpdtest created
    service/httpdtest-service created
    deployment.apps/httpd-deployment created
    10.43.164.122:80
    nvwafsecurityrule.neuvector.com/sensor.traversal created
    nvwafsecurityrule.neuvector.com/sensor.injection created
    nvwafsecurityrule.neuvector.com/sensor.cross created
    nvwafsecurityrule.neuvector.com/sensor.execution created
    nvsecurityrule.neuvector.com/httpdtest-group created
    ===>TEST Log4j
    ===>TEST CCBill
    ===>TEST formmail
    ===>TEST SQLSleepFunction
    ===>TEST WebcenterFatWireSatellite
    ===>TEST HyperSeek
    ===>TEST autohtml.php
    ===>TEST anaconda
    ===>TEST webplus
    ===>TEST LinuxFileServerRequestForgery
    ===>TEST mailman
    ===>TEST ApacheTomcatServlet
    
  7. Puedes comprobar el despliegue del servicio Web con el siguiente comando:
    kubectl get pods -n httpdtest
    
    Debes obtener una salida similar a la siguiente:
    NAME                                READY   STATUS    RESTARTS   AGE
    httpd-deployment-5fcbcd9667-4vlcb   1/1     Running   0          63s
    
  8. Ejecuta el script para simular un ataque de la siguiente manera (Nuevamente, ejecutarlo varias ocasiones para que se pueda realizar las validaciones de una mejor manera):

    ./setup_waf_test.sh
    
    Nota: Es normal al ejecutar el script nuevamente obtener el siguiente mensaje: Error from server (AlreadyExists): namespaces "httpdtest" already exists

  9. Ingresa a la consola web de NeuVector para visualizar en primer lugar los Grupos creados automaticamente:

NeuVector

Puedes verificar que existen nuevos WAF Sensors

  1. Puedes verificar los Network Rules creados en base a la actividad de red detectada: NeuVector
  2. Verificar los Security Events y verificar que efectivamente existen alertas ocasionadas por el intento de explotar vulnerabilidades: NeuVector
  3. Posteriormente en Network Activity revisa los eventos registrados, trata de ubicar las conexiones desde el o lost Hosts lab-X-node{1,2} hacia httpd-deployment...: NeuVector
  4. A continuación dar click sobre la línea amarilla que marca la conexión entre los componentes, revisar la regla y darle clieck en el botón Review Rule: NeuVector
  5. En la siguiente pantalla, crear una nueva regla con polílica Deny como se muestra en la siguiente pantalla y dar click en el botón Deploy: NeuVector
  6. Regresar a la pantalla de visualización de Network Rules, y ubicar la regla creada manualmente y la regla creada automaticamente, como se muestra en la siguiente imagen. Además debes eliminar la regla creada automaticamente cuya política es Allow: NeuVector La eliminación se realiza posicionando el curso sobre el menú de los tres puntos y seleccionando el ícono de la papelera. Asegurarse de dar click en el botón de confirmación Ok, luego en el botón Save, y nuevamente Ok NeuVector
  7. Regresar a la línea de comandos y ejecuta el script para crear los recursos necesarios y simular un ataque nuevamente:

    ./setup_waf_test.sh
    
    Debes obtener una salida similar a la siguiente:
    Error from server (AlreadyExists): namespaces "httpdtest" already exists
    service/httpdtest-service unchanged
    deployment.apps/httpd-deployment unchanged
    10.43.164.122:80
    nvwafsecurityrule.neuvector.com/sensor.traversal unchanged
    nvwafsecurityrule.neuvector.com/sensor.injection unchanged
    nvwafsecurityrule.neuvector.com/sensor.cross unchanged
    nvwafsecurityrule.neuvector.com/sensor.execution unchanged
    nvsecurityrule.neuvector.com/httpdtest-group unchanged
    ===>TEST Log4j
    ===>TEST CCBill
    ===>TEST formmail
    ===>TEST SQLSleepFunction
    ===>TEST WebcenterFatWireSatellite
    ===>TEST HyperSeek
    ===>TEST autohtml.php
    ===>TEST anaconda
    ===>TEST webplus
    ===>TEST LinuxFileServerRequestForgery
    ===>TEST mailman
    ===>TEST ApacheTomcatServlet
    
    Ejecutarlo varias ocasiones para contar con la data para analizar.

  8. Posteriormente en Network Activity revisa los eventos registrados, trata de ubicar las conexiones desde el Host lab-X-node{1,2} hacia httpd-deployment... y se podrá observar como se ha generado una violación de la política y una alerta. Otra cosa importante que puedes observar es que la línea de conexión a cambiado a color Rojo: NeuVector

Limpieza del ambiente

  1. Asegurarse de estar ubicado en el siguiente directorio:
    cd /home/student/waf_test
    
  2. Ejecutar el siguiente script para eliminar los recursos creados durante el laboratorio
    ./rm_waf_test.sh
    
  3. Eliminar el Namespace creado para este laboratorio
    kubectl delete ns httpdtest
    

📝 ELIMINE NEUVECTOR DE CLUSTER1