Home Blogs WAF Tuning hecho fácil
Applications

About The Author

Outline

Las pequeñas y nuevas empresas se enfrentan a un desafío crítico de seguridad. Necesitan una solución de seguridad sofisticada para mantener seguras sus aplicaciones web y minimizar los costos de contratar especialistas en seguridad dedicados o servicios administrados por terceros. Con nuevos vectores de ataque emergentes constantemente, la seguridad de las aplicaciones web se está volviendo más crucial y desafiante que nunca. El Edgecast, ahora Edgio, WAF es la solución. Ofrece una solución robusta y sofisticada que simplifica la gestión. Los paneles de control en tiempo real y la entrega de registros proporcionan una visibilidad actualizada para que los administradores puedan identificar rápidamente las amenazas y tomar medidas. En este blog, nos centraremos en cómo las empresas pueden identificar y eliminar falsos positivos y construir soluciones personalizadas para su aplicación web sin incurrir en costos de soporte adicionales. Si eres nuevo en este espacio y aún tienes que trabajar con el Edgio WAF, por favor mira este breve tutorial para entender la interfaz de usuario y cómo funciona. Si ya tienes una cuenta, siéntete libre de hacer este ejercicio conmigo. 1. Comencemos dirigiéndonos al panel de control en tiempo real y filtrando los eventos WAF por tiempo. Este es el período de tiempo durante el cual desea analizar el tráfico web. (Nota: Si ya ha realizado algunas afinaciones de reglas antes, asegúrese de elegir un marco de tiempo después de la última afinación).

Figura 1: Eventos WAF que ocurrieron en las últimas 6 horas.

2. Mire los 10 principales ID de reglas activados por este tráfico. Los ID de reglas son una excelente manera de filtrar el tráfico aún más y observar las cargas útiles para varios eventos WAF. Dicho esto, comience a filtrar el tráfico por estos ID de reglas uno por uno para un análisis más profundo.

Figura 2: Top 10 reglas que fueron disparadas por los eventos WAF.

3. A continuación, revise los valores de carga útil que desencadenaron esta regla mirando el campo Valor coincidente.

Figura 3: Valores de carga útil bajo la columna Valor coincidente.

4. Analice los valores de carga útil para identificar si son maliciosos. ¿No está seguro de cómo se ven? Aquí hay algunos valores maliciosos potenciales que puede encontrar en la carga útil.

  • Trayecto de recorrido: http://some_site.com.br/../../../../some dir/algunos file¹ http://testsite.com/get.asp?f=/etc/passwd²‍
  • Vulnerabilidades LFI: Un atacante está intentando acceder a archivos sensibles del servidor, como .ini. El WAF de Edgecast bloquea esta y muchas otras extensiones críticas del sistema de archivos de forma predeterminada.³‍
  • Scripting entre sitios: http://testsite.test/<guion>Alert(“TEST”);</script>⁴ <img src=”http://url.to.file.which/not.exist” onerror=alert(document.cookie);>⁵‍
  • Inyección SQL: SELECCIONE * DE los elementos DONDE ‘a’=’a’;⁶ SELECCIONE 1;⁷‍
  • Ejecución remota de código: eval(“\$$USER = ‘$regdate’);⁸‍
  • Ataques basados en el tiempo: Seleccione 1 y Sleep(2);⁹ seleccione BENCHMARK(2000000,MD5(‘A’);¹⁰

5. Si aún no está seguro de si la carga útil fue maliciosa, una gran manera de averiguarla es mirando la lista de IP de cliente que iniciaron las solicitudes con la carga útil correspondiente. Si las IPs del cliente se distribuyen, es decir, variadas, hay una buena probabilidad de que la carga útil sea un falso positivo. Sin embargo, si todas las IPs del cliente tienen el mismo valor, eso indicaría un ataque volumétrico potencial, clasificándolo así como una carga útil maliciosa. Para demostrar esto, vamos a referirnos al paso 3 y elegir este valor coincidente – {“iata”:[“TGZ”,”MEX”]} y usarlo como ejemplo. Para averiguar la lista de IP de cliente que enviaron esta carga útil, agregue el valor coincidente como un filtro de la siguiente manera:

Figura 5: IP del cliente que envió el valor de carga útil: {“iata”:[“tgz”,”mex”]}.

En este caso, dada la variedad de direcciones IP que hacen esta solicitud, hay una alta probabilidad de que estas solicitudes se originen de usuarios reales, lo que hace que esto sea un buen candidato para un falso positivo.

Una vez identificado un falso positivo, puede crear una excepción para él en la sección Reglas administradas, pero antes de hacerlo, debe averiguar dónde se encontró esta carga útil: Cadena de consulta, encabezado de solicitud, URL u otra ubicación. Esto se hace fácilmente mirando la columna On emparejado en la misma página del paso 5. En este caso de uso, la carga útil se encontró en el argumento de consulta “data”, como se muestra a continuación:

Figura 6: Ubicación del valor de carga útil: {“iata”:[“tgz”,”mex”]}.

Una buena regla general es filtrar estos parámetros específicos coincidentes en los campos que contienen la carga útil falsa positiva y luego verificar que no hay ninguna otra solicitud con este parámetro coincidente que lleva una carga útil maliciosa real. En otras palabras, la carga útil en el campo particular coincidido nunca es maliciosa. Esto se logra añadiendo un filtro en el campo coincidente en cuestión. Mirando nuestro caso de uso, podemos confirmar que no hay ninguna carga maliciosa encontrada en este argumento de consulta:

Figura 7: Todos los valores de carga útil enviados en el argumento de consulta: Datos.

8. El paso final antes de crear una excepción es encontrar los ID de regla activados por el campo On coincidente. Estamos tratando de anotar todas las reglas (ID de reglas) que fueron desencadenadas por este falso positivo. Según nuestro caso de uso, esta información está disponible en la misma página del paso 5.

Figura 8: La lista de reglas activadas por el valor de carga útil: {“iata”: [“TGZ”,”MEX”]}.

9. Es hora de crear la excepción. Vaya a la sección Reglas administradas y haga clic en la regla administrada a la que desea agregar estas excepciones.

Figura 9: Reglas administradas existentes creadas para la configuración WAF.

10. Vaya a la pestaña Excepciones y haga clic en Agregar nueva condición. Elija el tipo de coincidencia en el campo, como args, request_cookies o URL donde se encontró la carga útil. A continuación, introduzca el nombre del parámetro, como la consulta o la cookie. Finalmente, ingrese la lista de todos los ID de regla que el payload activó.

Figura 10: La pestaña Excepciones bajo la configuración de la regla administrada. 11. Adelante y crea esa condición. Dentro de los 30 segundos de guardar la regla administrada, usted será capaz de ver este falso positivo pasando a través del WAF en el futuro Ahora que ya sabes cómo funciona esto, vuelve al paso 3, filtra el tráfico por otro ID de regla, y repite este proceso para eliminar tantos falsos positivos como sea posible. Lo hiciste. Acabas de personalizar la solución WAF para tu tráfico.

Algunos consejos finales

Si usas el Edgio WAF por primera vez, te recomendamos realizar 2-3 rondas de este ejercicio antes de activar el modo de bloqueo. Y en función de su volumen de tráfico, puede repetir este ejercicio cada 2-7 días. Para los clientes actuales de Edgio WAF, recomendamos realizar este ejercicio de ajuste cada 3-4 semanas. Una cosa más que debe considerar es reducir el valor umbral de su regla administrada a menos de 10, haciendo gradualmente su camino hacia el valor óptimo de 5. Esto asegura que estés curando constantemente un conjunto de reglas más preciso y nítido. Recuerde, el Edgio WAF ofrece WAF dual, un entorno de preparación real (el modo de auditoría) para su tráfico en tiempo real. Puede usar el modo de auditoría para todas sus actualizaciones recurrentes y ajustes finos al conjunto de reglas sin preocuparse por dejar caer tráfico legítimo. Por favor, conéctese con nosotros hoy para obtener más información sobre todas nuestras tecnologías de seguridad que mantienen seguras sus aplicaciones web.
Recursos: ¹⁻² OWASP, “Path Traversal,” owasp.org, owasp.org/www-community/attacks/Path_Traversal. ³ Seguridad ofensiva, “ Vulnerabilidades de inclusión de archivos,” offensive-security.com, offensive-security.com/metasploit-unleashed/file-inclusion-vulnerabilities/. ⁴⁻⁵ OWASP, “Cross site scripting,” owasp.org, owasp.org/www-community/attacks/xss/. ⁶⁻⁷OWASP, “ inyección SQL ,” owasp.org, owasp.org/www-community/attacks/SQL_Injection. ⁸ Netsparker, “ Vulnerabilidad de evaluación remota de código (ejecución) ,” netsparker.com, netsparker.com/blog/web-security/remote-code-evaluation-execution/. ⁹⁻¹⁰ Ashraff, Ahmad, “ Ataques basados en tiempo en aplicaciones web ,” owasp.org, owasp.org/www-pdf-archive/2018-02-05-AhmadAshraff.pdf.