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 sus aplicaciones web seguras al tiempo que minimizan los costos de contratación de especialistas en seguridad dedicados o servicios gestionados por terceros. Con los nuevos vectores de ataque que están surgiendo constantemente, la seguridad de las aplicaciones web es cada vez 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 y la entrega de registros en tiempo real 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 crear soluciones personalizadas para su aplicación web sin incurrir en ningún costo de soporte adicional.

Si eres nuevo en este espacio y aún no has trabajado con el Edgio WAF, 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 para el que desea analizar el tráfico web. (Nota: Si ya has realizado algunas reglas de ajuste antes, asegúrate 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 ID de regla principales activados por este tráfico. Los ID de reglas son una excelente manera de filtrar el tráfico más lejos y observar las cargas útiles para varios eventos WAF. Dicho esto, comience a filtrar el tráfico por estos ID de regla uno por uno para un análisis posterior.

Figura 2: Las 10 reglas principales que fueron disparadas por los eventos de la WAF.

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

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

4. Analizar 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.

  • 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 en el servidor, como .ini. El Edgecast WAF bloquea esta y muchas otras extensiones críticas del sistema de archivos por defecto.³‍
  • Guiones entre sitios: http://testsite.test/<guión>Alerta (“PRUEBA”);</script>⁴ <img src=”http://url.to.file.which/not.exist” onerror=alert(document.cookie);>⁵‍
  • Inyección SQL: SELECCIONE * DE 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’));¹⁰

Si todavía no está seguro de si la carga útil era maliciosa, una gran manera de averiguarla es mirando la lista de IP de clientes que iniciaron las solicitudes con la carga útil correspondiente. Si las IP 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 IP de los clientes 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 consultar el paso 3 y elegir este valor coincidente– {“iata”:[“TGZ”, “MEX”]} y utilizarlo 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 de clientes que enviaron 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 lo convierte en un buen candidato para un falso positivo.

Una vez que se identifica 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 de coincidencia 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”]}.

7. Una buena regla de oro es filtrar estas coincidencias específicas en los campos que contienen la carga útil falso-positivo y luego verificar que no hay ninguna otra solicitud con este parámetro coincidente que lleve una carga útil maliciosa real. En otras palabras, la carga útil en el campo correspondiente en particular 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 útil 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 notar todas las reglas (ID de reglas) que fueron activadas 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 activó la carga útil.

Figura 10: La pestaña Excepciones en la configuración de la regla administrada.

11. Adelante y crea esa condición. Dentro de los 30 segundos de guardar la regla administrada, podrás 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. Acaba de personalizar la solución WAF para su tráfico.

Algunos consejos finales

Si está utilizando el Edgio WAF por primera vez, le recomendamos realizar 2-3 rondas de este ejercicio antes de encender 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 existentes 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 al valor óptimo de 5. Esto asegura que usted está constantemente curando 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 utilizar el modo de auditoría para todas sus actualizaciones recurrentes y ajustes precisos del conjunto de reglas sin preocuparse por dejar caer tráfico legítimo.

Conéctese con nosotros hoy mismo para obtener más información sobre todas nuestras tecnologías de seguridad que mantienen seguras sus aplicaciones web.

Recursos:

¹⁻² OWASP, “Sendero de la travesía,” 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 (ejecución) de código remoto,” netsparker.com, netsparker.com/blog/web-security/remote-code-evaluation-execution/.

⁹⁻¹⁰ Ashraff, Ahmad, “Ataques basados en el tiempo en aplicaciones web,” owasp.org, owasp.org/www-pdf-archive/2018-02-05-AhmadAshraff.pdf.