arquitecturas serverless

Seguridad y Auditorías en Arquitecturas Serverless

En el contexto dinámico de la evolución tecnológica, las arquitecturas serverless han surgido como una solución ágil y eficiente para el desarrollo y despliegue de aplicaciones. Este nuevo paradigma de computación elimina la gestión tradicional de servidores, permitiendo a los desarrolladores centrarse en la lógica de la aplicación sin preocuparse por la infraestructura subyacente. Sin embargo, a medida que las organizaciones adoptan estas arquitecturas sin servidores, la seguridad emerge como un componente crítico que demanda atención especial.

La seguridad en arquitecturas serverless no solo implica la protección de datos y sistemas, sino también la comprensión de la nueva superficie de ataque y la gestión eficiente de la identidad y el acceso. Además, la naturaleza efímera de las funciones serverless y la gestión descentralizada de recursos presentan desafíos únicos que requieren estrategias de seguridad específicas.

Introducción a las arquitecturas serverless

Las arquitecturas serverless representan un enfoque revolucionario en el diseño de sistemas informáticos, eliminando la necesidad de gestionar y mantener servidores de manera directa. Este paradigma se centra en permitir a los desarrolladores centrarse exclusivamente en el código y la lógica de la aplicación, mientras la infraestructura subyacente es gestionada de manera automática por el proveedor de servicios en la nube.

A diferencia de los modelos tradicionales, donde las aplicaciones se ejecutan en servidores que deben ser provisionados y escalados manualmente, las arquitecturas serverless permiten a los desarrolladores escribir funciones o piezas individuales de código que son ejecutadas en respuesta a eventos específicos. Estos eventos pueden ser desencadenados por diversas fuentes, como peticiones HTTP, cambios en bases de datos, subida de archivos, entre otros. Las características clave de las arquitecturas serverless incluyen:

  • Escalabilidad automática. Como cualquier servicio en la nube, tenemos esa flexibilidad para escalar de acuerdo a la demanda. Con arquitecturas serverless, la aplicación escala de forma automática y mantiene un equilibrio en cuanto al uso de recursos, lo cual indica que se adapta rápidamente a las necesidades de los usuarios.
  • Pago por uso. Los usuarios pagan únicamente por el tiempo de ejecución de las funciones y los recursos consumidos durante ese tiempo. No hay costos asociados con la infraestructura subyacente inactiva.
  • Sin mantenimiento de servidores. La gestión de servidores, incluyendo el aprovisionamiento, escalado y mantenimiento, es responsabilidad del proveedor de servicios en la nube. Esto permite a los desarrolladores centrarse en la lógica de la aplicación y acelerar el ciclo de desarrollo.
  • Alta disponibilidad y tolerancia a fallos. Los proveedores serverless ofrecen alta disponibilidad y tolerancia a fallas de forma predeterminada.
  • Arquitectura dirigidas por eventos (Event-Driven). Este modelo puede ser utilizado para aplicaciones orientadas a la gestión de eventos de bases de datos, servicios de colas de mensajes, alertas y notificaciones, eventos programados o aquellas funcionalidades que se ejecutan de forma periódica.
  • Funciones como servicio: Este tipo de arquitecturas lo que hacen es ejecutar Funciones como servicio utilizando los principales proveedores cloud y es ideal para aquellas cargas de trabajo que facturan únicamente por el tiempo de ejecución de la función.
  • Microservicios: Las arquitecturas serverless favorecen la construcción de aplicaciones basadas en microservicios, donde cada función puede representar un servicio independiente que realiza una tarea específica.

Ejemplos de servicios serverless incluyen AWS Lambda [1], Azure Functions [2], Google Cloud Functions [3], CloudFlare workers[4], entre otros. Estos servicios permiten a los desarrolladores aprovechar la flexibilidad y la eficiencia de las arquitecturas serverless para construir aplicaciones escalables y rentables. En el caso de Cloudflare Workers, se trata de una plataforma de computación en la nube que se ejecuta en la red global de Cloudflare. Una de la ventajas de este servicio es que los workers se despliegan y ejecutan desde la red de Cloudflare, y son una buena opción para aplicaciones que requieren una alta velocidad y escalabilidad.

A continuación, analizamos las consideraciones de seguridad, monitorización y gestión de recursos asociadas con este enfoque para aprovechar al máximo sus beneficios.

Seguridad en arquitecturas serverless

La principal guía que pretende clasificar los principales riesgos y vectores de ataque en arquitecturas serverless es el OWASP Serverless Top 10 [5]. La mayoría de los riesgos y vectores de ataque de la clasificación Serverless Architectures Security (SAS) son diferentes de los que se encuentran en las aplicaciones tradicionales en la nube [6,7]. Entre los nuevos vectores de ataque introducidos en las arquitecturas serverless podemos destacar:

  • Inyección de datos de eventos. Los atacantes pueden inyectar código malicioso en las funciones serverless, lo que podría provocar la ejecución de código arbitrario o la exfiltración de datos.
  • Mayor superficie de ataque. El aumento y la complejidad de la superficie de ataque están relacionados con que las funciones serverless consumen datos de múltiples fuentes de eventos, como API HTTP, colas de mensajes, almacenamiento en la nube y comunicaciones de dispositivos IoT [8].
  • Manipulación de la ejecución del flujo de funciones serverless. Se refiere a la capacidad de influir y controlar el camino que sigue la ejecución de las funciones serverless.
  • Denegación de servicio y agotamiento de recursos financieros. Los atacantes pueden atacar la infraestructura subyacente que ejecuta las funciones serverless, lo que podría provocar la interrupción del servicio o el agotamiento de los recursos financieros. Por ejemplo, los ataques Denial of Wallet, tienen como objetivo las finanzas de la organización que despliega la aplicación, en lugar de la disponibilidad de la aplicación (DoS). Estos ataques aprovechan las características de disponibilidad y escalabilidad automatizadas inherentes de las arquitecturas serverless para consumir grandes cantidades de recursos, lo que puede resultar en el aumento de la factura de los servicios que se están consumiendo en el proveedor.
  • Manejo inadecuado de excepciones y mensajes de error. Cuando no se gestiona adecuadamente el manejo de errores, los detalles internos del sistema pueden exponerse, proporcionando información sensible a posibles atacantes.

Como vemos en la imagen anterior, la seguridad en arquitecturas serverless no sólo implica la protección de datos y sistemas, sino también la comprensión de la nueva superficie de ataque y la gestión eficiente de la identidad y el acceso. Además, la naturaleza efímera de las funciones serverless y la gestión descentralizada de recursos presentan desafíos únicos que requieren estrategias de seguridad específicas.

Auditorías en arquitecturas serverless

Las auditorías en arquitecturas serverless son fundamentales para evaluar la seguridad, el rendimiento y el cumplimiento normativo de las aplicaciones y servicios desplegados en entornos serverless. Estas auditorías permiten identificar posibles vulnerabilidades, validar la correcta implementación de políticas de seguridad y garantizar que la infraestructura y las aplicaciones cumplan con los estándares establecidos. Entre los principales puntos a considerar al realizar auditorías en arquitecturas serverless podemos destacar:

  • Políticas de identidad y acceso: Es importante revisar las políticas de gestión de identidad y acceso (IAM) para garantizar que las funciones serverless tengan los permisos mínimos necesarios y su implementación siga el principio de mínimo privilegio.
  • Monitorización: Examinar los registros y las métricas generadas por las funciones serverless para identificar patrones de comportamiento anómalos.
  • Seguridad de los datos: Además de comprobar la correcta configuración de políticas de gestión de claves y certificados, es importante evaluar las medidas de cifrado utilizadas para datos en reposo y en tránsito.
  • Pruebas de pentesting: Nuestro equipo de desarrollo debería realizar pruebas de penetración para identificar y corregir posibles vulnerabilidades en las funciones serverless y sus dependencias. Además, es importante evaluar la resistencia de las funciones a ataques comunes, como inyecciones de código.
  • Gestión de configuración: En este punto es importante verificar la configuración de las funciones y servicios serverless para asegurar que estén alineados con las mejores prácticas de seguridad.

Al abordar estas áreas durante las auditorías en arquitecturas serverless, las organizaciones pueden mejorar la seguridad y la confiabilidad de sus aplicaciones, garantizando que estén alineadas con las mejores prácticas y los estándares de seguridad.

Conclusiones

Tras analizar los riesgos y vectores de ataque que tenemos en las arquitecturas en la nube, podemos concluir que la mayoría de los riesgos siguen presentes en las arquitecturas serverless, solo que algunos se presentan de forma diferente. Las aplicaciones serverless podrían aumentar en complejidad principalmente porque implica la creación de flujos de trabajo mediante la combinación de múltiples servicios en la nube, funciones, disparadores y eventos.

Las arquitecturas serverless también tienen la capacidad de reducir el impacto de los ataques de denegación de servicio (DoS) porque las funciones son apátridas, efímeras y no persistentes. Más peligroso y con mayor impacto es el ataque de denegación de cartera (DoW) en el que el atacante no intenta interrumpir el servicio, sino aumentar la factura.

Tras realizar este análisis de seguridad y sus implicaciones que puede tener en una aplicación desplegada en un entorno serverless, podríamos concluir que ciertas amenazas como DoW cobran mayor relevancia al conectar aplicaciones serverless con dispositivos IoT debido a la cantidad de eventos procedentes de diferentes fuentes que podrían llevar a la ejecución de funciones de forma descontrolada. Dadas las peculiaridades de las arquitecturas serverless y el número de eventos que deben manejar, en ocasiones podríamos perder el control de la generación de eventos por peticiones realizadas desde dispositivos IoT y en consecuencia tener un ataque DOW.

En este sentido, dentro de las arquitecturas serverless se está observando una evolución en cuanto a ataques. Aunque parte de la seguridad es gestionada por la propia plataforma cloud, también sería importante asegurar la parte correspondiente a la aplicación donde la generación de eventos de distinta naturaleza podría provocar otros riesgos de seguridad. Desde el punto de vista del desarrollador, se hace más importante seguir las mejores prácticas de diseño y desarrollo de software seguro. En este punto, hacer un buen diseño de la arquitectura y las funciones se vuelve más relevante [9].

Referencias:

[1] https://aws.amazon.com/lambda

[2] https://azure.microsoft.com/en-us/services/functions

[3] https://cloud.google.com/functions

[4] https://workers.cloudflare.com

[5] https://owasp.org/www-pdf-archive/OWASP-Top-10-Serverless-Interpretation-en.pdf

[6] https://github.com/puresec/sas-top-10

[7] Candel, J.M.O., Elouali, A., Gimeno, F.J.M., Mora, H. (2023). Cloud vs Serverless Computing: A Security Point of View. In: Bravo, J., Ochoa, S., Favela, J. (eds) Proceedings of the International Conference on Ubiquitous Computing & Ambient Intelligence (UCAmI 2022). UCAmI 2022. Lecture Notes in Networks and Systems, vol 594. Springer, Cham. https://doi.org/10.1007/978-3-031-21333-5_109

[8] Candel, J.M.O., Gimeno, F.J.M., Mora Mora, H. (2023). Serverless Security Analysis for IoT Applications. In: Bravo, J., Ochoa, S., Favela, J. (eds) Proceedings of the International Conference on Ubiquitous Computing & Ambient Intelligence (UCAmI 2022). UCAmI 2022. Lecture Notes in Networks and Systems, vol 594. Springer, Cham. https://doi.org/10.1007/978-3-031-21333-5_39

[9] https://12factor.net/es

 

LinkedIn
Twitter
Facebook
WhatsApp
0 0 votos
Calificación del artículo
Suscribir
Notificar de
guest
0 Comentarios
Comentarios en línea
Ver todos los comentarios
Metafrase
Contacto

© 2024, Metafrase SLU

0
Me encantaría conocer tu opinión, por favor comenta.x
()
x