A medida que más equipos de desarrollo de aplicaciones integran la seguridad en sus flujos de trabajo, están estudiando el impacto de la seguridad en sus aplicaciones, desde una perspectiva de pipeline de aplicaciones, flujo de trabajo y rendimiento.
Debido a los requisitos de cumplimiento, la protección de aplicaciones web y API (WAAP) se implementa comúnmente en una pila de aplicaciones. Pero a medida que las organizaciones mueven sus cargas de trabajo a la nube y comienzan a integrar la seguridad en el tejido de sus aplicaciones, el papel de WAAP está evolucionando. Las organizaciones necesitan plataformas WAAP que puedan escalar y adaptarse a las cambiantes arquitecturas de nube y a las crecientes amenazas de seguridad.
En este artículo, revisaremos cómo el motor WAAP (y, más específicamente, un conjunto de reglas creado específicamente para su uso con ese motor) se puede adaptar para escalar a los flujos de trabajo en la nube y mejorar el rendimiento de su aplicación web, manteniendo al mismo tiempo una fuerte protección contra las amenazas en línea
Considere tanto el motor WAAP como su ruleset
El WAAP debe ser una parte importante de su pila de aplicaciones y programa de seguridad de red. Tradicionalmente, los WAAP se desconectaban del desarrollo de aplicaciones y se veían como una capa de seguridad que se encontraba fuera de la aplicación. Pero las arquitecturas y herramientas WAAP modernas han ayudado a SecOps a colaborar con DevOps a lo largo del proceso CI/CD, incluyendo la creación de reglas y pruebas a medida que se desarrolla una aplicación. Cuando se utiliza correctamente para analizar el tráfico que atraviesa la infraestructura de su aplicación, el motor WAAP y su conjunto de reglas juegan un papel importante en la rapidez con la que se completa el análisis y qué tan bien funcionan las decisiones de auditoría y bloque resultantes como parte de la arquitectura general de la aplicación.
Al igual que el motor, la computadora y la transmisión de un automóvil, un motor WAAP, sus conjuntos de reglas y la aplicación que protege deben diseñarse y optimizarse para que funcionen juntos. Un fabricante de automóviles no diseña un motor en una burbuja. Debe optimizarse para el resto del cuadro y los componentes del automóvil para alcanzar el máximo rendimiento y eficiencia en todos los ámbitos. Lo mismo debería ser cierto para el motor WAAP y su conjunto de reglas. Un WAAP que no tenga en cuenta estas variables puede sobrecargarse y sobrecargarse y, en última instancia, degradar el rendimiento y la experiencia de usuario de la aplicación web
Reduzca la carga de trabajo WAAP para mejorar la velocidad y effectiveness
El WAAP de Edgio utiliza una combinación de firmas de código abierto, industria y propietarias para informar su conjunto de reglas. Evaluamos cuidadosamente el impacto de cada firma en el rendimiento del conjunto de reglas generales.
A medida que diseñamos y optimizamos nuestro motor WAAP , vimos que al recopilar y consumir los conjuntos de reglas de código abierto y de la industria sin ninguna modificación, (casi) todas las reglas tendrían que ser analizadas a medida que el tráfico cruce el cable. Este modelo es bastante común entre los WAAP y hace que sea “fácil” ver lo que sucede con el tráfico. Pero también obliga a la WAAP a pasar por todas las reglas para evaluar el riesgo asociado con el tráfico. Esto pone una carga de trabajo innecesariamente pesada en el WAAP que se exacerba aún más a medida que crece el reglamento.
Por supuesto, no siempre se trata de velocidad. Un elemento clave en un WAAP es su capacidad para determinar el riesgo (compromiso) versus recompensa (transacciones exitosas) asociado con el tráfico y decidir si marcar el tráfico como malicioso, sospechoso o benigno. El WAAP enviaría una alerta al equipo (modo auditoría/alerta) y bloquearía o redirigiría el tráfico si se considera demasiado arriesgado para dejarlo pasar (modo producción/bloque).
Este análisis se convierte en un desafío mayor cuando se examinan los conjuntos de reglas de código abierto y de la industria ingeridos. Es poco probable que hayan sido creados con velocidad y eficiencia en mente para todos los motores WAAP posibles en el mercado. Esto no significa que sean malos, solo significa que se enfocan en el riesgo primero, dejando el rendimiento como una idea tardía. En otras palabras, hay espacio para mejorar.
Con conjuntos de reglas creados para la integridad y la precisión en primer lugar, muchos WAAP encuentran que no pueden manejar el tráfico que se analiza en ambos modos (auditoría y bloque), lo que obliga a los equipos de InfoSec a elegir un modo: Comenzar con el modo de auditoría y moverlo al modo de producción o ir directamente al modo de producción con poca o ninguna prueba del mundo real, lo que los deja abiertos a amenazas perdidas y falsos positivos
Cómo Edgio mejora su WAAP rulesets
El modelo OWASP ModSecurity de código abierto para conjuntos de reglas proporciona una manera estándar y consistente a través de la cual se pueden desarrollar e implementar conjuntos de reglas WAAP. Para complementar esto, OWASP ofrece un conjunto de reglas genéricas de la industria que puede ser ingerido por un WAAP que sigue este modelo.
Sin embargo, mientras nuestro equipo estaba implementando el conjunto de reglas, se dieron cuenta de que los conjuntos de reglas que se estaban ingiriendo, aunque completos y precisos, estaban de hecho frenando el motor WAAP. Por lo tanto, el equipo decidió examinar cómo se estructuran y procesan los conjuntos de reglas. Lo que encontramos, que no debería sorprender a ningún administrador de WAAP, es que muchas reglas pasan por los mismos datos una y otra vez para recorrer los controles necesarios para determinar el riesgo del tráfico que pasa a través de WAAP.
Algunas reglas de aplicación de protocolos son bastante sencillas y no tienen que “vivir” dentro del ecosistema de reglas. Para abordar esto, primero desarrollamos el conjunto de reglas que efectivamente recortó el conjunto de reglas OWASP implementándolas directamente en el motor WAAP en un formato que no es ModSecurity. Esto da como resultado una ejecución temprana y una detección más rápida.
A continuación, nos dirigimos a las reglas que analizan los cuerpos de solicitud. Construimos una capa de almacenamiento en caché que mitiga la sobrecarga de rendimiento de recalcular las mismas expresiones en las reglas. Tomando un ejemplo de cuerpos de formato XML, buscamos cuántas veces aparece la expresión “XML:/*” en el conjunto de reglas CRS de OWASP para ver cuántas veces se puede volver a calcular un XPath en el procesamiento de una sola solicitud sin una capa de almacenamiento en caché, el número es significativo.
Finalmente, donde se llevan a cabo muchas expansiones de macros/sustituciones de cadenas y búsquedas explícitas, identificamos y eliminamos esas reglas del conjunto de reglas y las implementamos en el motor con mejores algoritmos de búsqueda y búsqueda, como las búsquedas de HashMap y el operador de concordancia de frase (pm) en lugar de un operador regex (Rx) siempre que sea posible.
Al hacer las cosas de manera diferente con la estructura de los conjuntos de reglas, nuestro motor WAAP utiliza estructuras de datos más rápidas y formatos estándar abiertos como JSON, que son más fáciles de configurar y ejecutar más rápido. Esto se traduce en un mejor rendimiento, no solo en términos de velocidad, sino también en términos de precisión:
- Falsos positivos bajos: Edgio organiza y controla el conjunto de reglas de una manera que asegura que se mantenga la precisión
- Rendimiento mejorado del motor: El motor Edgio WAAP ejecuta los conjuntos de reglas de una manera que evita sobrecargar el motor
Por ejemplo, para la regla de política de lista de bloques IP de OWASP, el motor ModSecurity utiliza su propio algoritmo “msc_tree” que mira una lista de IP incorrecta. Alternativamente, el motor Edgio WAAP utiliza un algoritmo diferente que es bastante más rápido. Los siguientes resultados de las pruebas muestran cómo Edgio WAAP se desempeña contra ModSecurity. ModSecurity agrega aproximadamente 200ms a 500ms latencia al realizar un millón de consultas en grandes listas de IP. Edgio WAAP maneja alrededor de 10B solicitudes por día a través de su red. Estos números pequeños importan mucho en una escala tan grande.
Evite alertar vs. Bloquear las compensaciones
Una mejor combinación de motor WAAP y conjunto de reglas también significa que las organizaciones obtienen un rendimiento más rápido y pueden ejecutar WAAP en modo dual (tanto en modo de bloque como en modo de auditoría). Esto permite a los equipos de operaciones de seguridad experimentar con nuevas reglas contra el tráfico de producción en modo auditoría/alerta y ajustar las reglas antes de promover el conjunto de reglas al modo de bloqueo en el WAAP.
Los conjuntos de reglas Edgio altamente personalizados permiten a los administradores cortar y dar en todas partes y ejecutar los conjuntos de reglas en modo dual. Con las mismas reglas aplicadas a diferentes configuraciones, los administradores pueden ejecutarlas dos veces sin afectar el rendimiento, gracias, en parte, al motor inteligente y la implementación del conjunto de reglas.
El valor aquí se extiende más allá del equipo de gestión de WAAP. Muchos clientes de Edgio integran esta opción en su ciclo de vida de DevOps, lo que le da a la empresa, al equipo de ingeniería y al equipo de seguridad de TI la capacidad de colaborar y probar las reglas en el modo de auditoría antes de aplicarlas al modo de bloqueo de producción.
Este proceso de dos pasos permite al equipo de seguridad DE TI examinar los cambios de configuración del firewall antes de que se activen, equipando al equipo con datos para probar los cambios en el tráfico de producción real, reduciendo así los falsos positivos una vez que el conjunto de reglas se coloca en producción. Una vez que el conjunto de reglas ha sido validado, las configuraciones actualizadas se implementan en cuestión de segundos. Y los retrocesos, si es necesario, son posibles en pocos minutos. Esto hace que los ensayos de reglas significativos sean mucho más realistas, dinámicos, impactantes, efectivos y de apoyo a los objetivos de negocio.
El enfoque Edgio Dual WAF Mode también mejora aún más el rendimiento. El conjunto de reglas inteligente asegura que el tráfico malicioso conocido se bloquee rápidamente para dar algo de espacio de respiración al WAF para que pueda manejar el resto del tráfico que se está presentando constantemente. Esto, a su vez, da a los administradores más tiempo para centrarse en obtener visibilidad predictiva; en otras palabras, pueden ver cosas en las aplicaciones a través del modo de auditoría antes de ser implementadas en los sitios de producción.
Considere el motor WAAP y el diseño del conjunto de reglas si su empresa necesita una pila de aplicaciones que pueda adaptarse a cargas de trabajo impredecibles y aún así ofrecer una arquitectura altamente segura. Cuando se optimizan, estos factores pueden mejorar el rendimiento de sus aplicaciones web.
Para obtener más información sobre cómo el motor inteligente y los conjuntos de reglas de Edgio WAAP pueden proteger sus aplicaciones web con velocidad y precisión, conectémonos hoy mismo.