El WAF con machine learning

La semana pasada estuve en la Navaja Negra Conference 2023. Rubén Garrote García y Rubén Ródenas Cebrián dieron una charla sobre cómo saltarse un WAF con payloads generados por machine learning.

Me gustó el enfoque. Gracias, chicos.

Parte de lo que usaron fue un proyecto que hicimos Sergio Daniel Fernández Atochero y yo cuando trabajábamos juntos en BBVA Innovation Labs: WAF-Brain.

El proyecto WAF-Brain

En WAF-Brain entrenamos un modelo con un montón de ataques reales de inyección SQL, los que de verdad te lanzan SQLMap y OWASP ZAP.

La pregunta era si se podían coger ataques reales de herramientas reales, entrenar un modelo con ellos y sacar un detector que sirviera. Se puede. Lo hicimos.

Después pusimos nuestra PoC al lado de ModSecurity, solo para inyección SQL, y salieron unas cuantas cosas:

  • ModSecurity detectaba peor que WAF-Brain en la mayoría de los ataques.
  • WAF-Brain era más rápido. Y su tiempo de detección era casi constante, cosa que el de ModSecurity no.
  • A nuestro modelo le quedaba trabajo con los payloads muy cortos y muy largos.

WAF-Brain estaba pensado como punto de partida para la investigación de otros, no como producto terminado.

Si quieres saber más, el repositorio tiene una sección de investigación.

El efecto mariposa

Lo que me sorprendió fue oírles decir que WAF-Brain había sido la base de varios papers de investigación. Algunos:

Se nos olvida que lo que construimos puede acabar inspirando a alguien en la otra punta del mundo.

A veces el efecto mariposa es algo bonito.