La demanda por tecnologías serverless y de containers ha incrementado en los últimos años. De acuerdo con una empresa de consultoría e investigación de mercados, se espera que el tamaño global del mercado de containers crezca de $1.2 mil millones de dólares a $4.98 mil millones de dólares en 2023, mientras que se proyecta que el crecimiento de las arquitecturas serverless vaya de $7.6 mil millones de dólares en 2020 a $21.1 mil millones de dólares en 2025. El incremento en la demanda se debe al hecho de que las empresas pueden depender de estas tecnologías en términos de escalabilidad, eficiencia y efectividad de costos al momento de desarrollar y desplegar aplicaciones.
Sin embargo, como con cualquier tecnología emergente, las aplicaciones serverless y basadas en containers no son inmunes a riesgos y amenazas. Es sólo cuestión de tiempo antes de que los actores maliciosos, quienes siempre están buscando alcanzar a más víctimas potenciales, comiencen a dirigirse a estas tecnologías para sus fines maliciosos. ¿Cómo pueden las empresas fortalecer la seguridad de sus aplicaciones ante estos ataques?
Este artículo destaca algunas consideraciones de seguridad que deben conocer los desarrolladores y las formas en que pueden construir las mejores defensas para aplicaciones serverless y basadas en containers a través de Runtime Application Self-Protection (también conocido como RASP), una herramienta que incorpora la seguridad a la aplicación durante su ejecución.
¿Qué es RASP?
RASP es una herramienta de seguridad que corre en un servidor y comienza a funcionar cada vez que corre una aplicación. En pocas palabras, RASP está diseñado para detectar comportamientos maliciosos en tiempo real. RASP es capaz de proteger a las aplicaciones ante ataques al analizar tanto el comportamiento de una aplicación como el contexto del mismo.
¿Cuáles son los beneficios de RASP?
En esencia, RASP ofrece protección en tiempo real para las aplicaciones. RASP puede interceptar cualquier tipo de tráfico que indique comportamiento malicioso como SQL injection, cross-site scripting (XSS), vulnerabilidades, bots y ataques desplegados a través de correo, Slack y otros tipos de mensajes.
Debido a que RASP está integrado directamente a una aplicación, es capaz de monitorear el comportamiento de la aplicación. Por lo tanto, RASP puede prevenir ataques con un alto grado de precisión ya que puede distinguir entre ataques y solicitudes legítimas, reduciendo, por lo tanto, los falsos positivos y permitiendo que los ingenieros de seguridad se enfoquen en abordar problemas más serios.
Además, RASP también ofrece mejor protección contra exploits día-cero. RASP es un arreglo de corto plazo si un parte para una aplicación no está disponible. Además, RASP no depende de ningún tipo de firma para un exploit porque la línea base para una operación correcta es la misma aplicación.
Cómo RASP protege las aplicaciones serverless
Para ilustrar cómo RASP protege las aplicaciones serverless, demostramos cómo una función de Amazon Web Services (AWS) Lambda – un servicio serverless que permite que las empresas corran código sin aprovisionamiento y mantenimiento del servidor – puede protegerse con Trend Micro Cloud One™ – Application Security.
En la investigación de Trend Micro “Securing Weak Points in Serverless Architectures: Risks and Recommendations,” Alfredo de Oliveira, un Investigador de Seguridad Senior de Trend Micro, creó una prueba de concepto que involucra una función de AWS Lambda con permisos de alto grado para destacar los riesgos de implementar código mal hecho en un sistema serverless. Bajo esta condición, los actores maliciosos podrían alterar el timeout de la función de Lambda y realizar ataques de escalamiento de privilegios y exfiltración de datos. Debe hacerse notar que para esta prueba de concepto hemos configurado los privilegios administrativos de Lambda. Por defecto, las Lambdas no cuentan con permisos además de aquellos que fueron definidos por el cliente. Con esta información, los clientes siempre deben seguir el principio del menor privilegio al momento de definir un rol de ejecución.
La figura 1 ilustra la cadena de ataque que involucra una función de AWS Lambda con permisos de alto nivel, como se describe en el párrafo de arriba. Debe notarse que las bibliotecas de Cloud One – Application Security ya están instaladas en el Sistema.
[image url=”http://blog.la.trendmicro.com/wp-content/uploads/2021/05/Captura-de-Pantalla-2021-05-12-a-las-11.01.39-300×112.png” raw=”true” alignment=”center” margin_left=”0″ margin_right=”0″ margin_top=”0″ margin_bottom=”0″ width=”300″ height=”112″]
Como se muestra en la figura 2, la consola de Cloud One – Application Security bloquea el ataque de inyección de comando.
[image url=”http://blog.la.trendmicro.com/wp-content/uploads/2021/05/Captura-de-Pantalla-2021-05-12-a-las-11.02.58-300×160.png” raw=”true” alignment=”center” margin_left=”0″ margin_right=”0″ margin_top=”0″ margin_bottom=”0″ width=”300″ height=”160″]
[image url=”http://blog.la.trendmicro.com/wp-content/uploads/2021/05/Captura-de-Pantalla-2021-05-12-a-las-11.03.44-300×284.png” raw=”true” alignment=”center” margin_left=”0″ margin_right=”0″ margin_top=”0″ margin_bottom=”0″ width=”300″ height=”284″]
El reporte anteriormente mencionado de Trend Micro también destaca la necesidad de proteger diferentes servicios en la nube involucrados con el desarrollo de aplicaciones serverless. Como se muestra en la figura 4, Trend Micro Cloud One™ Conformity bloquea roles IAM que son demasiado permisivos para ser ejecutados en el sistema.
[image url=”http://blog.la.trendmicro.com/wp-content/uploads/2021/05/Captura-de-Pantalla-2021-05-12-a-las-11.04.41-300×139.png” raw=”true” alignment=”center” margin_left=”0″ margin_right=”0″ margin_top=”0″ margin_bottom=”0″ width=”300″ height=”139″]
Cómo RASP puede proteger containers
En esta sección, demostraremos cómo proteger contra SQL injection una aplicación basada en containers corriendo en Azure Container Instances, como se detalla en este artículo de LinkedIn escrito por Chuck Losh, un Solutions Architect de Trend Micro.
Primero, se debe correr un nuevo despliegue y se debe obtener una imagen vulnerable a propósito basada en PHP de un Azure Container Registry privado. En esta prueba, las bibliotecas de Cloud One – Application Security ya están instaladas en el sistema, como se muestra en la figura 5.
[image url=”http://blog.la.trendmicro.com/wp-content/uploads/2021/05/Captura-de-Pantalla-2021-05-12-a-las-11.05.39-300×68.png” raw=”true” alignment=”center” margin_left=”0″ margin_right=”0″ margin_top=”0″ margin_bottom=”0″ width=”300″ height=”68″]
Una vez que se ejecuta el despliegue por medio del portal de Azure que se muestra en la figura 6, veremos si todo funciona como debe. El resultado debe ser que la aplicación “llame” al dashboard de Cloud One – Application Security para obtener protección en tiempo real.
[image url=”http://blog.la.trendmicro.com/wp-content/uploads/2021/05/Captura-de-Pantalla-2021-05-12-a-las-11.06.35-300×160.png” raw=”true” alignment=”center” margin_left=”0″ margin_right=”0″ margin_top=”0″ margin_bottom=”0″ width=”300″ height=”160″]
Una vez que se configuran los requerimientos, la instancia de container debería comenzar a correr. Esto también se puede verificar en las salidas del Azure Portal, como se muestra en la figura 7.
[image url=”http://blog.la.trendmicro.com/wp-content/uploads/2021/05/Captura-de-Pantalla-2021-05-12-a-las-11.07.26-300×157.png” raw=”true” alignment=”center” margin_left=”0″ margin_right=”0″ margin_top=”0″ margin_bottom=”0″ width=”300″ height=”157″]
[image url=”http://blog.la.trendmicro.com/wp-content/uploads/2021/05/Captura-de-Pantalla-2021-05-12-a-las-11.08.12-300×33.png” raw=”true” alignment=”center” margin_left=”0″ margin_right=”0″ margin_top=”0″ margin_bottom=”0″ width=”300″ height=”33″]
Ahora ya se puede acceder a la prueba web de la aplicación. Después de iniciar sesión a la aplicación web DVWA basada en container, enviaremos un ataques de SQL injection, como se muestra en la figura 9. Podremos revisar después la consola de Cloud One – Application Security para ver si se detectó el comportamiento malicioso.
[image url=”http://blog.la.trendmicro.com/wp-content/uploads/2021/05/Captura-de-Pantalla-2021-05-12-a-las-11.09.08-300×215.png” raw=”true” alignment=”center” margin_left=”0″ margin_right=”0″ margin_top=”0″ margin_bottom=”0″ width=”300″ height=”215″]
Como se muestra en la figura 10, la solicitud se vio bloqueada y detectada por la consola de Cloud One – Application Security en tiempo real.
[image url=”http://blog.la.trendmicro.com/wp-content/uploads/2021/05/Captura-de-Pantalla-2021-05-12-a-las-11.09.58-300×138.png” raw=”true” alignment=”center” margin_left=”0″ margin_right=”0″ margin_top=”0″ margin_bottom=”0″ width=”300″ height=”138″]
Cómo automatizar RASP
Automatizar RASP es un enfoque muy efectivo para la protección de aplicaciones serverless. Un template para una función de AWS Lambda (por ejemplo, CloudFormation) contiene los componentes RASP necesarios para integrar Cloud One – Application Security en AWS Lambda.
Al ofrecer estas piezas de información como un template CFN, los equipos de desarrollo pueden lanzar una función de AWS Lambda con la confianza de que la seguridad ya forma parte de la aplicación. Esto también limita el número de pasos manuales que se listaron anteriormente.
Conclusión
RASP es una herramienta que permite que las organizaciones realizan lo que se ha denominado como “shift left,” la cual es una dirección importante que permite que los desarrolladores utilicen patrones seguros para el manejo de secrets y a hacer más resiliente es sus prácticas en código.
Por otro lado, aunque algunos promuevan los beneficios que traen nuevas tecnologías de seguridad como RASP, también existen algunos escépticos que trabajan por medio de procesos tradicionales y que resisten estos cambios. Es necesario educar a estos escépticos si es que las organizaciones desean crear un ambiente de inclusión para que cada equipo o departamento pueda cerrar la brecha y puedan todos trabajar juntos para la creación de una cultura fuerte de DevSecOps. Esta cultura, a su vez, puede impulsarse por medio de la colaboración entre los equipos de desarrollo y seguridad para realizar pruebas de software, integrar la seguridad y lograr la visibilidad operacional en todo momento.
Trend Micro Cloud One
Aunque los proveedores de servicios en la nube (CSPs) ofrecen guías y características de seguridad para sus servicios, las empresas aún deben asegurarse de mejorar la seguridad de los servicios que están conectados a su ambiente de cómputo.
Adoptar el modelo de responsabilidad compartida es una parte clave para proteger estos servicios, ya que requiere que tanto el CSP y el usuario mantengan áreas de responsabilidad para mantener la seguridad de su ambiente de cómputo. En el caso de AWS Lambda, debe notarse que el rol de ejecución solamente se lanza con los permisos definidos por el usuario. Por lo tanto, los clientes deben seguir el principio del menor privilegio al momento de definir un rol de ejecución.
Las empresas pueden confiar en los servicios de la plataforma de Trend Micro Cloud One. Cloud One le ofrece visibilidad centralizada a las empresas sobre sus ambientes de nube híbrida y seguridad en tiempo real con los siguientes servicios automatizados:
- Application Security es un framework de seguridad integrada que proactivamente detecta y protege contra las amenazas en aplicaciones y APIs en containers, serverless y otras plataformas de cómputo en la nube.
- Cloud Conformity realiza cientos de revisiones automatizadas contra los estándares de cumplimiento de la industria y las mejores prácticas de la seguridad en la nube, mejorando la seguridad y postura de cumplimiento de la infraestructura de la nube.
- Container Security detecta amenazas, vulnerabilidades y datos sensibles expuestos como API keys y contraseñas que se encuentran dentro de las imágenes de container.
- Workload Security puede proteger automáticamente sistemas legacy con parcheo virtual y workloads en la nube contra amenazas en constante evolución a través de tecnología de machine learning (ML).
- File Storage Security protege los servicios de almacenamiento de archivos/objetos en la nube que se encuentran en arquitecturas de aplicaciones nativas de la nube a través de escaneo de malware e integración a workflows personalizados.
- Network Security defiende las nubes virtuales privadas bloqueando ataques y amenazas y detectando infiltraciones.
Leave a Reply