TLDR:
Los ataques de día cero, que aprovechan vulnerabilidades desconocidas para los proveedores de software, suponen una importante ciberamenaza. Los tradicionales cortafuegos de aplicaciones web (WAF) a menudo se quedan cortos a la hora de prevenir estos ataques, ya que requieren parches frecuentes. La autoprotección de aplicaciones en tiempo de ejecución (RASP) adopta un enfoque diferente que no se basa en reglas escritas, sino que supervisa activamente el comportamiento de las aplicaciones a través de integraciones nativas, lo que se traduce en una mayor protección frente a los días 0.
El objetivo al construir Aikido Zen para NodeJS era permitir a los desarrolladores retro-equipar sus aplicaciones y protegerlas por defecto contra clases comunes de ataques de inyección como inyecciones SQL, inyecciones shell, path traversal y SSRF. El desarrollador no sólo debe estar protegido contra errores en su propio código, sino también contra fallos desconocidos en las bibliotecas que utiliza.
Para evaluar su eficacia, hemos comparado Zen con una serie de CVE. En este documento se explica el enfoque, se califica la eficacia y se exponen las compensaciones y limitaciones. Para este documento, el equipo ha identificado 17 vulnerabilidades de las cuales 11 fueron bloqueadas por Zen sin ningún conocimiento previo sobre el exploit específico.
Introducción
Los WAF siempre han sido una última esperanza contra los 0-days, ya que dependían de una combinación de suerte y patrones recurrentes para atrapar los 0-days durante su ventana de "ataque de día cero" (como se muestra a continuación). Sólo después de que las vulnerabilidades se hayan divulgado públicamente (t0) pueden actualizarse las reglas WAF para detener el nuevo ataque.

Un WAF examinará los datos de conexión entrantes (cabeceras, cuerpo, ..) antes de que lleguen a su aplicación. Analiza los datos en busca de patrones sospechosos (inyecciones SQL, rutas transversales) y bloquea o elimina los datos sospechosos. Aunque eficaz, tiene la tendencia a crear una gran cantidad de falsos positivos como se ha visto en la investigación realizada por System Weakness.

Si tiene 10.000 clientes, la mejor solución podría bloquear a 56 de ellos.
Aikido Zen adopta un enfoque fundamentalmente diferente de la seguridad de las aplicaciones web. En lugar de basarse únicamente en firmas y patrones conocidos, se centra en comprender y mitigar los comportamientos de ataque a un nivel más profundo de la aplicación.
El enfoque Zen del Aikido
Al centrarse en supervisar e interceptar la actividad maliciosa en el punto en el que intenta acceder o manipular recursos críticos, Aikido Zen es capaz de proporcionar una reducción significativa de los falsos positivos al adoptar una estrategia que sólo bloquea los ataques cuando interactúan con los sistemas subyacentes.
Esto se consigue implantando un sistema que examina varios tipos de interacciones con el entorno subyacente. Entre ellas figuran:
- Interacciones con bases de datos: La supervisión de las llamadas realizadas a las bibliotecas de bases de datos, tanto SQL como NoSQL, permite detectar consultas no autorizadas, intentos de exfiltración de datos o ataques de inyección. Analizando el contenido y la estructura de estas llamadas a bases de datos, se puede identificar y bloquear la actividad maliciosa antes de que cause daños.
- Llamadas externas: La supervisión de las llamadas externas realizadas a través de HTTP, HTTPS u otros protocolos puede revelar intentos de comunicación con servidores de comando y control, descarga de malware o exfiltración de datos. Inspeccionando el contenido y el destino de estas llamadas, se puede identificar y bloquear el tráfico malicioso.
- Acceso al sistema de archivos y ejecución de Shell: La supervisión del acceso al sistema de archivos puede detectar intentos de lectura, escritura o modificación de archivos confidenciales, o de ejecución de código malicioso. Analizando las rutas de acceso a los archivos, los permisos y las operaciones implicadas en estos accesos, se puede identificar y bloquear la actividad no autorizada.
- Intentos de falsificación de petición del lado del servidor (SSRF): Los ataques SSRF pueden ser devastadores, ya que permiten a los atacantes aprovechar la confianza de su servidor para acceder a recursos internos o incluso interactuar con servicios externos en su nombre. Al supervisar de cerca el destino y la naturaleza de las solicitudes internas que se originan en sus servidores, Zen puede bloquear los ataques SSRF.
Al centrarse en estos puntos críticos de interacción con los sistemas subyacentes, el enfoque Zen permite una detección y un bloqueo más precisos y eficaces de los ataques, al tiempo que minimiza el número de falsos positivos que pueden interrumpir la actividad legítima. Esta estrategia también proporciona información valiosa sobre la naturaleza y los objetivos de los ataques, que puede utilizarse para mejorar la seguridad general.
Investigación
Como esfuerzo continuo, el equipo de Aikido Zen ejecuta pruebas contra vulnerabilidades descubiertas recientemente para medir la eficacia de Aikido Zen. El equipo identifica nuevas 0 días, crea un entorno de pruebas reproducible, valida la vulnerabilidad con una inyección de carga útil exitosa y luego instala Aikido Zen para verificar que el ataque esté bloqueado.
Para este documento, el equipo ha identificado 17 vulnerabilidades, de las cuales 11 fueron bloqueadas por Zen y 6 no lo fueron por una miríada de razones.
Los resultados de nuestra investigación se pueden encontrar a continuación y todos los entornos de prueba, exploits y recursos necesarios para la reproducción han sido de código abierto.
Bloqueado
No bloqueado
Aikido investiga y amplía continuamente la protección de día cero de Aikido Zen con nuevos marcos de trabajo y algoritmos mejorados.
Un principio básico es mantener un impacto mínimo en el rendimiento (≤ 5%) para una protección continua. Si bien esto nos impide implementar de inmediato ciertos algoritmos de protección intensivos en recursos (que podrían aumentar los tiempos de solicitud entre 2 y 10 veces), estamos desarrollando activamente enfoques alternativos y eficientes.
Considere Aikido Zen como una capa *adicional* de protección, que complementa los componentes reactivos integrales de Aikido, como el escaneo de código, las pruebas de API y otras capacidades de seguridad sólidas.
Conclusión
Aikido Zen es un gran avance en la seguridad de las aplicaciones web. Ofrece una sólida protección contra los ataques de día cero sin necesidad de parches constantes, concentrándose en los comportamientos de ataque y utilizando tecnologías de vanguardia. Aikido Zen ofrece una solución potencial para garantizar la seguridad permanente de las aplicaciones web a medida que cambia el panorama de las amenazas.