RASP, también conocido como Autoprotección de aplicaciones en tiempo de ejecución, es una de las tecnologías más modernas que protegen las aplicaciones en ejecución. En comparación con el enfoque perimetral WAF, un RASP protege las aplicaciones desde el interior. Esto significa que un RASP tiene una visibilidad mucho mejor del flujo de datos y las consecuencias de cada entrada que recibe la aplicación.
Con la popularidad de lenguajes dinámicos y ágiles como Python, node.JS y Java, los desarrolladores de aplicaciones han estado dominando los principios de DevOps de colaboración y ciclo de vida de desarrollo de software (SDLC). Con ciclos de desarrollo rápidos y cortos, necesitamos asegurar la producción en tiempo de ejecución.
Etiquetadas como el nuevo camino a seguir, las herramientas de software RASP de autoprotección de aplicaciones en tiempo de ejecución funcionan para defender y proteger las aplicaciones móviles y web de los ataques. La seguridad de las aplicaciones RASP supervisa las aplicaciones en ejecución y detecta los ataques a las aplicaciones en tiempo real.
Esta publicación describirá qué es y cómo funciona un RASP, las ventajas clave, cómo se compara con las defensas perimetrales (WAF, firewalls de aplicaciones web) y también cómo pueden aprovecharlo los equipos clave involucrados en el ciclo de vida del desarrollo de software.
Indice
¿Qué es RASP?
RASP, Autoprotección de aplicaciones en tiempo de ejecución, es una tecnología moderna de seguridad de aplicaciones que protege las aplicaciones web de ataques durante el tiempo de ejecución. Su objetivo es evitar que los actores malintencionados pongan en peligro las aplicaciones de Internet y las API mediante el abuso de vulnerabilidades de codificación como la inyección de SQL, la deserialización insegura, XSS, etc.
Además, los mejores RASP del mercado también ofrecen protección contra fallas de diseño (manipulación de parámetros, abuso del flujo de trabajo, etc.), también conocidas como fallas de lógica empresarial.
Los RASP son un complemento eficaz y una actualización de los productos WAF, una tecnología de protección convencional que no se adapta bien a los nuevos enfoques de desarrollo, como las implementaciones en la nube y las metodologías DevOps. Se recomiendan particularmente para sistemas donde la seguridad es primordial porque un RASP brinda seguridad en profundidad y reduce drásticamente las posibilidades de violaciones de seguridad.
Los sistemas RASP generalmente proporcionan diferentes modos de operación: el modo de «bloqueo» detiene las solicitudes maliciosas a los puntos vulnerables, y el modo de «monitorización» registra y notifica los ataques a los puntos vulnerables, pero no bloquea las solicitudes.
¿Cómo funciona?
La filosofía de protección RASP se basa en técnicas modernas de ingeniería de software, como instrumentación, enlaces dinámicos y SDK seguros. En general, funciona insertando sensores en el código de la aplicación existente para monitorizar y controlar ciertos puntos críticos de ejecución, en tiempo real. Por medio de esas técnicas, los RASP se convierten en parte del sistema para que las aplicaciones permanezcan protegidas dondequiera que vayan. Como indica el acrónimo, un RASP permite que las aplicaciones se protejan.
Una de las principales ventajas de la tecnología RASP es su punto de vista privilegiado para realizar análisis de seguridad. Este punto de vista combina una visibilidad completa de los detalles de la arquitectura interna de las aplicaciones y una visibilidad completa del flujo de ejecución durante el tiempo de ejecución. Esto significa que un RASP puede tomar decisiones muy inteligentes sobre qué es un ataque y qué no.
Una consecuencia positiva de esta arquitectura es que un RASP solo intervendrá si una carga útil llega a un punto verdaderamente vulnerable de la aplicación, lo que se traduce en un mejor rendimiento y sin falsos positivos.
Muchos riesgos graves de OWASP Top 10, como la deserialización insegura y la entidad externa XML solo pueden protegerse eficazmente mediante un RASP, debido a su combinación de punto de vista estático y dinámico.
La seguridad de la aplicación RASP funciona en 2 modos operativos:
Modo de diagnóstico
En este modo de monitorización / diagnóstico, el software RASP detecta comportamientos de aplicación de riesgo, llamadas a API y amenazas, obteniendo información contextual del software. El software RASP, en modo de diagnóstico, generará alertas cuando se detecten ataques (no bloquea un ataque, en este modo) y enviará información sobre vulnerabilidades a un tablero.
Modo de autoprotección
En este modo de autoprotección de la aplicación preprogramada, en el proceso de detección de problemas de seguridad, las soluciones RASP detienen la ejecución de solicitudes en tiempo de ejecución, lo que podría desencadenar vulnerabilidades de la aplicación en el código.
Beneficios
Los principales beneficios de RASP son:
Reducción espectacular de falsos positivos
Los RASP evitan los falsos positivos porque toman decisiones informadas gracias a la rica información de la arquitectura de la aplicación (vista estática) y la ejecución en tiempo de ejecución (vista dinámica). Esto significa que tienen razón en la inmensa mayoría de los casos, lo cual es fundamental para preservar la experiencia del usuario final.
Esto se compara con WAF, una tecnología de protección perimetral convencional que se analiza en detalle más adelante en este documento, que experimenta falsos positivos con mucha más frecuencia. De hecho, el 3% de los encuestados indica que sus WAF están en «modo de detección / alerta solamente» debido a los frecuentes falsos positivos.
Protección sólida, incluidos los días cero
Los RASP protegen de muchos tipos de riesgos de seguridad más allá de las inyecciones, incluidos varios de los 10 principales riesgos de OWASP, como deserialización insegura, IDOR, aleatoriedad débil, CSRF / SSRF y actividad de clientes que no son de confianza. ¿Por qué es esto importante?
Según una encuesta de usuarios de WAF, el 65% de los encuestados dice que los ataques están pasando por alto el WAF. Peor aún, solo el 9% de los encuestados indica que sus WAF nunca han sido violados. Muchos de estos riesgos solo pueden protegerse mediante un enfoque RASP.
Fácil mantenimiento
Con frecuencia, los RASP son complementos para «configurar y olvidar». No hay reglas de tráfico que configurar, procesos de aprendizaje ni listas negras. Los equipos de operaciones adoran esta confiabilidad y los CISO aprecian el ahorro de recursos. Las aplicaciones se autoprotegen y permanecen protegidas dondequiera que vayan.
Adaptabilidad a nuevos estándares
Los RASP se adaptan fácilmente a arquitecturas de aplicaciones que no dependen de estándares HTML como JSON y SOAP. Los RASP pueden incluso proteger estándares no web como XML o RPC.
Soporte en la nube
Las aplicaciones autoprotegidas significan que el código está protegido dondequiera que vaya. La configuración de una herramienta RASP se puede incorporar en los scripts de compilación que generan y contienen una aplicación, por lo que permanecerá protegida en cualquier lugar donde se implemente. No es necesario actualizar las reglas de la red y del firewall.
La protección como código significa que las aplicaciones pueden escalar sin esfuerzo.
Soporte de DevSecOps
En realidad, los desarrolladores carecen de consejos útiles sobre la seguridad de su código para adoptar por completo las prácticas de empujar a la izquierda. Los RASP cierran esta brecha al proporcionar información de seguridad procesable (incluido el archivo, la línea, el tipo y la gravedad) al desarrollador para que las vulnerabilidades se puedan solucionar rápidamente. La mayoría de los RASP se integran de forma nativa con herramientas de seguimiento de errores (Jira, Asana), CI / CD (Jenkins), SIEMS y otras herramientas de gestión de operaciones (Syslog).
Desventajas
Después de revisar las principales ventajas que aportan las tecnologías RASP, existen algunas reservas en la comunidad con respecto a las soluciones RASP.
El primer problema es que, a diferencia de muchas otras opciones de seguridad cibernética que ofrecen una cobertura de protección a la infraestructura de software de una empresa, las soluciones RASP requieren que cada aplicación se trate por separado, lo que agrega más trabajo para los equipos de seguridad e ingeniería de la organización.
La ventaja de RASP como herramienta dinámica y ágil también podría presentar un desafío al afectar el rendimiento; esto queda por verse a medida que evolucionen las ofertas de RASP.
Otra preocupación se centra en el hecho de que con RASP, las organizaciones están protegiendo el código imperfecto con una solución externa que podría no cubrir todas las vulnerabilidades del software. Esto significa que RASP no puede compensar otras herramientas de seguridad de aplicaciones o herramientas de gestión de seguridad de código abierto. Por estas razones, los expertos en seguridad consideran a RASP como una capa adicional de protección.
WAF frente a RASP
Web Application Firewall (WAF) es una tecnología de protección web convencional que ha disfrutado de una amplia penetración en el mercado durante la última década. El enfoque de protección WAF se basa en definir un perímetro controlado por un cuello de botella que monitoriza y analiza todo el tráfico web entrante, buscando patrones de datos predecibles asociados con ataques conocidos. Esta técnica de protección se denomina validación de entrada y los patrones de datos, reglas de protección WAF.
Un WAF no es consciente de las verdaderas debilidades de la aplicación, por lo que debe validar todas las entradas antes de que llegue a la propia aplicación. Del mismo modo, un WAF no puede ver las consecuencias de una carga útil.
Por ejemplo, una consecuencia muy peligrosa de una carga útil SQLi sería tener dos sentencias SQL, en lugar de una. Para evitar esta falta de contexto, algunos WAF implementan sistemas de aprendizaje automático para detectar anomalías en el tráfico que podrían indicar ataques. Requieren un proceso de formación para que se pueda identificar el tráfico legítimo. Todo esto introduce retrasos y aumenta las posibilidades de bloquear accidentalmente el tráfico legítimo, lo que daña la experiencia del usuario.
Al ser externos e independientes de la tecnología (es decir, el lenguaje de programación de la plataforma protegida es irrelevante), los WAF son relativamente fáciles de conectar a cualquier aplicación web. Sin embargo, las mismas características generan una cobertura insuficiente, un rendimiento deficiente, una administración compleja y costosa y la falta de soporte nativo en la nube.
Diferencias clave entre WAF y RASP
- Un WAF protege las aplicaciones web. RASP puede proteger cualquier tipo de aplicación de software, no solo un sitio web o una aplicación que se ejecute en Internet.
- Es más difícil monitorizar y detectar nuevos tipos de ataques con un Cortafuegos de aplicaciones web porque WAF requiere que una organización sepa qué vulnerabilidades existen para poder construir su defensa contra ellas. La detección de RASP se realiza mediante la supervisión del comportamiento de la aplicación en tiempo de ejecución en lugar de mirar las firmas de código que se han identificado previamente como maliciosas.
- Un RASP proporciona protección contra nuevas vulnerabilidades de aplicaciones que no están presentes en un WAF. Un WAF es más reactivo, mientras que una Autoprotección de aplicaciones en tiempo de ejecución puede ser proactiva para identificar y mitigar los riesgos de un ataque a aplicaciones heredadas o aquellas que se han desarrollado para sistemas operativos distintos de Windows.
¿Necesito RASP si ya tengo una solución de firewall de primera línea?
El alto porcentaje de ciberataques a las capas de aplicaciones debido a la seguridad descuidada, junto con la necesidad de procesos de trabajo ágiles, exige que los equipos de software implementen métodos de protección de aplicaciones en tiempo de ejecución.
RASP está integrado en los códigos de la aplicación: las funciones de seguridad de supervisión, detección y protección se agregan a los servidores en los que se ejecuta la aplicación. Las llamadas al servidor son interceptadas por RASP para comprobar su seguridad y realizar las medidas de protección necesarias. Luego, las solicitudes de datos se validan directamente en la aplicación, sin afectar su diseño. Las capacidades pueden incluir cobertura, rendimiento, integración y alertas en tiempo real, según el modelo de implementación de RASP.
Aunque algunos de estos métodos de protección pueden parecer similares a las soluciones de seguridad de firewall avanzadas, existen algunas diferencias importantes entre estos métodos de protección.
Los cortafuegos protegen el software del «exterior»: esto significa que se establecen alrededor de un perímetro predefinido. Si bien pueden hacer un buen trabajo al inspeccionar el tráfico y el contenido, finalizarlos o validarlos dentro del perímetro, son incapaces de monitorizar los datos y los procesos dentro de las aplicaciones. Además, los cortafuegos carecen de contexto aplicativo como validar el comportamiento del usuario.
Los equipos de seguridad e ingeniería se están centrando en soluciones de seguridad de la capa de aplicación y están buscando una mejor integración de herramientas de seguridad, junto con la capacidad de automatizar la seguridad, la capacidad de realizar pruebas en preproducción y la capacidad para que los productos de seguridad identifiquen dónde se detectan problemas en el código. Para estos equipos, las herramientas de seguridad deben ser tan ágiles como sus procesos de desarrollo. Esta es una ventaja que los firewalls no pueden ofrecer.
¿De qué tipo de riesgos protege RASP?
La autoprotección de aplicaciones en tiempo de ejecución protege contra amenazas, vulnerabilidades y exploits web comunes que afectan tanto al software como a firmware. Esto incluye:
Ataques web
RASP bloquea automáticamente virus, malware y ataques de día cero mediante el uso de un motor de parcheo virtual para brindar protección sin interrumpir la experiencia del usuario. También proporciona beneficios adicionales como la reducción de falsos positivos de las soluciones antivirus o sandbox tradicionales mediante el aprendizaje de firmas. Es capaz de detectar ataques cibernéticos previamente desconocidos sin necesidad de actualizaciones, ya que ocurren en tiempo real.
Infecciones de malware
Los atacantes pueden tomar el control de un dispositivo explotando vulnerabilidades en el sistema operativo y las aplicaciones. RASP detecta malware que supera la seguridad antivirus tradicional, pero también evita que se produzcan exploits porque nunca se permite que ocurran, por diseño.
Rootkits
RASP se defiende contra ataques de rootkit al monitorizar modificaciones no autorizadas a archivos críticos en servidores o terminales de escritorio. Si se detectara un ataque de este tipo, RASP restauraría esos sistemas a su estado original sin que el atacante obtuviera acceso.
La aplicación se bloquea / congela
Si bien algunos problemas de estabilidad de la aplicación están relacionados con prácticas de codificación deficientes, otros pueden deberse a errores introducidos a través de la inyección de código malicioso. Para protegerse contra este tipo de amenazas, RASP puede reiniciar automáticamente la aplicación y proporcionar detalles sobre qué causó su falla.
¿Quién debería usar la autoprotección de aplicaciones en tiempo de ejecución?
RASP debería usarse por:
Desarrolladores
Los desarrolladores usan RASP para validar que su código no contiene ninguna vulnerabilidad.
Además, los desarrolladores pueden utilizar la autoprotección de aplicaciones en tiempo de ejecución con fines de desarrollo y prueba, lo que les ayuda a mejorar la calidad general de sus aplicaciones, antes de lanzarlas a entornos de producción.
Equipos de operaciones
Los equipos de operaciones utilizan la autoprotección de aplicaciones en tiempo de ejecución para lograr el cumplimiento de la seguridad.
También usan RASP en entornos de producción, así como durante las actividades de integración y compilación de aplicaciones. Esto se hace para monitorizar el estado de las aplicaciones una vez que se han implementado en un entorno de producción o si se están integrando con otros productos.
Administradores de servidores
Los administradores de servidores utilizan la autoprotección de aplicaciones en tiempo de ejecución para proteger los servidores y las redes de posibles vulnerabilidades en las aplicaciones. También monitorizan la aplicación en tiempo de ejecución para detectar errores, fallas u otras interrupciones que puedan interrumpir la disponibilidad del servicio.
Usuarios finales
Los usuarios finales utilizan la autoprotección de aplicaciones en tiempo de ejecución para proteger sus aplicaciones. Lo usan para monitorizar la aplicación en tiempo de ejecución en busca de errores, fallas u otras interrupciones que puedan interrumpir su trabajo.
Los usuarios de servicios de TI a menudo tienen una variedad de aplicaciones ejecutándose en sus dispositivos y necesitan protección en caso de que una se vea comprometida por malware. También pueden querer saber qué aplicaciones consumen ancho de banda, para poder tomar decisiones inteligentes sobre qué velocidades de datos son apropiadas para las diferentes necesidades de las aplicaciones.
Cómo implementar RASP
La mayoría de los sistemas de autoprotección de aplicaciones en tiempo de ejecución se implementan en la capa de red, lo que significa que se interponen entre clientes y servidores. Por lo general, esto se realiza mediante la implementación de un dispositivo de hardware en la red o como complemento de otro producto de seguridad, como un firewall.
Problemas de seguridad que deben abordarse antes de implementar un RASP
Al implementar un sistema de autoprotección de aplicaciones en tiempo de ejecución, es importante tener en cuenta estas preocupaciones de seguridad:
- Los sistemas RASP son más eficaces contra las vulnerabilidades conocidas y el malware. Como tal, el valor de un sistema RASP puede reducirse si no existe un mecanismo para identificar nuevas amenazas o si la empresa no tiene una buena visibilidad de su panorama de aplicaciones.
- Un atacante que encuentre una vulnerabilidad que eluda las protecciones ofrecidas por un RASP podría usar esto como punto de apoyo en su entorno. Ahora será necesario implementar más medidas de mitigación antes de que pueda recuperar el control sobre este posible punto de intrusión. Esto incluiría la implementación de herramientas de detección adicionales (incluido el análisis de comportamiento) para identificar futuros intentos de evasión de atacantes que aprovechan las debilidades del sistema, o agregar nuevos mecanismos de protección, como listas blancas de aplicaciones y segmentación de red, que se adaptan a aplicaciones específicas que se ejecutan en la misma máquina con confianza diferente. niveles asignados.
Importancia de RASP
Es importante tener autoprotección de aplicaciones en tiempo de ejecución porque protegerá tu aplicación de intrusiones. El sistema de autoprotección de aplicaciones en tiempo de ejecución supervisa el estado del entorno de tiempo de ejecución de una aplicación y responde automáticamente tomando medidas correctivas si se produce una infracción de seguridad o un intento de infracción.
Al igual que con cualquier tipo de tecnología, RASP conlleva tanto beneficios como riesgos: uno de los posibles inconvenientes que puedes enfrentar al usar esta solución es la instalación de nuevo software en dispositivos que podrían causar problemas de compatibilidad para las aplicaciones existentes que se ejecutan en tu infraestructura. Además, dependiendo de cuán minucioso quieras ser con tu proceso de implementación (por ejemplo, bloquear aplicaciones no autorizadas), inevitablemente será necesario aplicar cierto grado de trabajo manual para que funcione correctamente como una solución que mejora la seguridad / privacidad.
¿Cómo decidir si RASP es adecuado para tu aplicación?
Primero, debes comprender lo que hace tu aplicación. Luego, debes averiguar si es necesario que esa aplicación en particular tenga un nivel de seguridad y protección cuando está en uso. Esto dependería de la sensibilidad de los datos procesados o transmitidos por dicha aplicación. Si es así, RASP podría ser una opción que valga la pena considerar como parte de la arquitectura de tu solución porque ofrecerá la protección suficiente sin agregar demasiada sobrecarga / complejidad (porque no todas las aplicaciones requieren este tipo de protecciones).
Si tu aplicación no es confidencial y no procesa ni transmite datos que podrían considerarse sensibles, es posible que RASP no sea necesario.
Soluciones alternativas
Existen algunas alternativas que pueden usarse en lugar de RASP, sin embargo, tienen sus propios inconvenientes específicos. Por ejemplo:
- La protección contra la inyección de código malicioso es posible mediante una combinación de espacio aislado y coincidencia de expresiones regulares en las cadenas de entrada de la solicitud. Sin embargo, esta estrategia no funciona bien cuando se trata de vulnerabilidades que permiten a los atacantes acceder dentro de un modo privilegiado.
- La emulación de código en tiempo de ejecución proporciona otra opción viable para proteger las aplicaciones de los ataques de corrupción de memoria mediante la ejecución de programas dentro de un entorno aislado y manteniéndolos separados de otros procesos que se ejecutan en el sistema informático en un momento dado. Este enfoque se ha realizado con éxito antes, pero a menudo tiene el inconveniente de que no funciona bien para aplicaciones de alto rendimiento.