barra de menu

miércoles, 4 de diciembre de 2019

A10 - ADC - WAF

WAF (Web Application Firewall) filtra las comunicaciones entre los usuarios y las aplicaciones web. Protege  a los servidores y a los sitios de accesos no autorizados y de programas maliciosos. WAF añade una capa más de seguridad al examinar las peticiones de los usuarios y las respuestas de los servidores.

El 75% de las vulnerabilidades del tráfico en Internet es a nivel de la capa de aplicación (Layer 7)

En los equipos A10, se configura con una plantilla aplicada a los Virtual Ports de HTTP/HTTPS.



Amenazas de Seguridad Web más comunes

El proyecto OWASP es una iniciativa para registrar y tratar por la comunidad este tipo de ataques.

  • SQL Injection 
    • Envía comandos SQL a la base de datos del sitio web
    • Expone datos sensibles
    • Altera o destruye la base de datos SQL
  • XSS (Cross Site Scripting)
    • Usa comandos Javascript
    • Modifica el contenido web y obtiene propiedades ocultas del sitio
  • Exposición de datos
    • Expone datos en texto plano
    • Manipulación de la funcionalidad del sitio , como por ejemplo, modificar cookies.
  • Inconsistencias de campos de formularios
    • Secuestra formularios para inyectar código malicioso
    • Eleva los privilegios del atacante
  • URLs con privilegios
    • Algunas direcciones URL no deben ser accesibles a los usuarios
    • Se deben configurar Black List y White List para permitir o denegar el acceso
  • Fuga de datos sensibles (Leaks)
    • Datos del tipo de Tarjetas de Crédito o Números de Seguridad Social deben estar bloqueados para los usuarios
  • Sniffing de Respuestas
    • En las cabeceras de las respuestas de los servidores puede haber información que los atacantes pueden aprovechar
  • Buffer Overflows
    • Si los "buffers" se llenan, esto puede causar problemas graves como acceso con privilegios o que el propio servidor no pueda dar servicio
  • Comprobación de Bots
    • Se inserta spam en el servidor para recoger información y otros problemas


Modos de operación de WAF

  • Apendizaje: se usa cuando arrancamos el WAF por primera vez para que compruebe la configuración por defecto de los umbrales basados en los patrones de tráfico conocidos. Este modo no debe ser usado nunca en producción.
  • Pasivo: aplica las comprobaciones WAF sin hacer acciones de filtrado de tráfico. Es útil para identificar falsos positivos. 
  • Activo: es el modo estándar. Se descarta el tráfico en base a las políticas configuradas.
Nota: si cambiamos la plantilla de modo activo a modo aprendizaje, perderemos todas las políticas configuradas. A10 recomienda configurar una nueva plantilla para el modo aprendizaje mientras se establece una base para las nuevas aplicaciones que se quieren comprobar

El típico escenario cuando desplegamos un WAF por primera vez es:


La configuración en modo aprendizaje no tiene nada especificado:



MITIGACIÓN DE ATAQUES

Archivos de definición

Tenemos archivos predefinidos para las políticas de WAF que nos protegen de las amenazas más comunes. Aunque vienen definidos por defecto, tenemos que marcarlos para habilitarlos. Estos archivos no pueden ser borrados, editados o renombrados. Sin embargo, podemos crear nuestros propios archivos.

Imagen


Configuración de Plantilla para la Mitigación

Para configurarla debemos ir a loa GUI en WAF-Config Mode-Security-WAF-Template-WAF

Imagen

Si lo hacemos a través del CLI:

  • (config)#slb template waf -  creamos la plantilla
  • (config-waf)#deploy-mode [learning | passive | active] - configuramos el modo
  • (config-waf)#template logging - configuramos el registro


Después hay que configurar los archivos de definición.

  • (config-waf)#sqlia-check reject - así configuraríamos el archivo por defecto para las amenazas de inyección de SQL. Si tuviéramos uno creado, pondríamos el nombre de este después de la palabra "reject"
  • (config-waf)#ccn-mask - así configuraríamos el archivo por defecto para las amenazas de inyección de tarjetas de crédito
Nota: usar el símbolo interrogación para ver las diferentes opciones


Comprobaciones de Seguridad

Desde los equipos A10 podemos hacer que se comprueben detalles de seguridad tanto en las peticiones como en las respuestas

En Peticiones
  • Métodos HTTP Permitidos: se especifica que se permite (GET, POST, PUT, HEad, etc)
  • Comprobación SQLIA: comprueba las líneas de SQL para evitar una inyección
  • Comprobación de Bot: comprueba que el usario no sea un bot
  • Comprobación CSRF: etiqueta cada campo de formulario web con un número único y protege contra CSRF (Cross-Site Request Forgery)
  • Comprobación de URL: solo se accede a las URL que se permitan
  • Comprobación HTTP: comprueba que las peticiones se hacen con el protocolo correcto
  • Comprobación de Consistencia de Formulario: asegura que los usuario introducen los datos par alos que los campos están pensados.
  • Comprobación XSS: comprueba que no haya scripts de HTTP
  • Buffer Overflow: protege de intentos de dejar llenar un buffer en el servidor. Tiene valores por defecto definidos. Establece un máximo de longitud de la petición HTTP (entre 0 y 65535 bytes). Los valores que podemos configurar son Max Cookie (0-63), Max Headers (0-63), Max data to Parse, Max URL Length, Max Post Size, HTML Parameters, Max Request Query Length y Max Line Length.
  • Comprobación Referer: comprueba que que el "referer" de la cabecera venga de una dirección interna y no de un sitio externo. Esto protege contra ataques CSRF y XSRF.
  • Deny Action: describe el tipo de acción que toma el WAF cunado deniega la petición de un cliente. Las respuestas genéricas son "request denied mesasges, http-redirects, connection resets"
  • URI Blacklist: especifica los criterios de exclusión para la peticiones bloqueándolas si se cumple alguna de las reglas
  • URI Whitelist: se aceptan las peticiones si cumple con los criterios aquí creados.
  • URL Options: múltiples opciones del Encoder

Nota: la Blacklist tiene prioridad sobre la Whitelist, es decir, que si una URI cumple con una regla de la Blacklist esta será denegada incluso si tienen una regla que la permite en la Whitelist.


En Respuestas

  • CCN Mask: examina las líneas de las respuestas desde el servidor web que tengan patrones numéricos. Reemplaza con una "X" los patrones que se parezcan a los números de tarjetas de crédito.
  • SSN Mask: examina las líneas de las respuestas desde el servidor web que tengan patrones numéricos. Reemplaza con una "X" los patrones que se parezcan a los números de la seguridad social.
  • Filter Response Headers: elimina las cabeceras de identificación del servidor web
  • Hide Reponse Codes: encubre las respuestas 4xx y 5xx del servidor web. Esta asociado con la política WAF "allowed_resp_codes" donde configuramos qué códigos permitimos.
  • PCRE Mask: reemplaza los carácteres de PCRE (Pearl Compatible Regular Expressions) con una "X" o con el caracter que definamos nosotros.
  • Cookie Encryption: protege contra la manipulación de cookies. Usa una clave entre cliente y servidor para encriptar y desencriptar cookies.


Registro de Eventos

El WAF registra de 2 maneras:

  • Eventos de Configuración: registra los cambios de configuración
  • Eventos de Datos: registra el tráfico de datos

Por defecto, en el buffer local solo se registran los eventos de configuración. Debido a la gran cantidad de evento de datos que se registran, se debe configurar un servidor de registros externos.

El registro de datos se activa asociando una plantilla de log al Virtual Port.




No hay comentarios:

Publicar un comentario