La seguridad sin servidor requiere un cambio de paradigma en la forma en que las organizaciones ven la seguridad de las aplicaciones. En lugar de crear seguridad en torno a la aplicación en sí utilizando Firewall de última generación, las organizaciones deben crear seguridad adicional en torno a las funciones dentro de las aplicaciones alojadas por proveedores de nube externos. Esta capa adicional de seguridad garantiza el refuerzo adecuado de las aplicaciones y el control de acceso con privilegios mínimos, de modo que cada función haga ni más ni menos de lo que está diseñada para hacer: ayudar a las organizaciones a mejorar su postura de seguridad y mantener el cumplimiento.
Programe una demostración Soluciones de seguridad sin servidor
La computación sin servidor se refiere a un modelo de computación en la nube en el que el proveedor de la nube ejecuta el servidor y gestiona dinámicamente la asignación de recursos de la máquina. AWS Lambda Functions, Google nube Functions y Azure Functions son marcos populares sin servidor que crean aplicaciones.
Una arquitectura sin servidor proporciona el beneficio de un escalado automatizado, casi infinito. Muy poca diferencia entre los desarrolladores y el código implementado, lo que acelera el tiempo de comercialización y facilita el mantenimiento y la prueba de funciones individuales. Finalmente, la cantidad real de recursos de la aplicación consumidos afecta el precio, lo que significa que usted paga solo por lo que usa, lo que resulta en costos más bajos.
Serverless representa un cambio adicional de responsabilidades del cliente al proveedor de la nube. Sin infraestructura involucrada, hay una disminución significativa en los gastos generales de operaciones.
Transferir la gestión de la infraestructura a su proveedor de nube le permite centrarse en el desarrollo de soluciones para servir a su organización y a sus clientes. Le ayuda a mantener el enfoque en sus ventajas competitivas únicas y, con frecuencia, resulta en ahorros de costos no solo en computación, sino también en el cambio de personas al desarrollo.
Aquí hay algunos puntos clave:
Mientras cualquier función dentro de un contenedor necesite acceso para leer desde S3, todas las funciones dentro de ese contenedor también tendrían ese privilegio. Con AWS Lambda, tiene la oportunidad de aplicar privilegios a funciones individuales y garantizar que dichos privilegios estén restringidos solo al alcance más pequeño necesario. Si hay una vulnerabilidad en una de sus funciones, un atacante solo obtendrá acceso a las capacidades limitadas de esa función, no al gran conjunto de permisos para otorgar a un contenedor.
Con la estructura cambiante de las aplicaciones sin servidor, surgen algunos nuevos desafíos.
Con una aplicación sin servidor, no hay ningún lugar donde colocar la seguridad clásica como WAF, firewall e IDS. Construir muros entre atacantes y recursos no es simple por varias razones.
Las aplicaciones sin servidor son más porosas y detalladas. Las aplicaciones sin servidor, que constan de docenas o cientos de funciones, son un pequeño microservicio con sus propias políticas, función, API, seguimiento de auditoría, etc. Esto cambia la superficie de ataque, en lugar de un pequeño número de puntos de entrada con mucha funcionalidad oculta detrás de cada uno, ahora hay más puntos de entrada, cada uno con una pequeña parte de la aplicación detrás. Defender su aplicación ahora requiere pensar en cada punto de entrada.
Varios eventos pueden desencadenar funciones, tales como:
Si bien las motivaciones de los atacantes siguen siendo las mismas, las tácticas que utilizarán con la aplicación sin servidor deben cambiar. A continuación se presentan algunas de las amenazas a la seguridad sin servidor exclusivas de esta nueva arquitectura de aplicaciones.
Con la aplicación sin servidor, tiene la oportunidad de aplicar privilegios a funciones individuales y asegurarse de que dichos privilegios estén restringidos al alcance más pequeño necesario. Esto puede permitirle minimizar significativamente su superficie de ataque, así como mitigar el impacto de cualquier ataque.
Desafortunadamente, una investigación reciente de Check Point encontró que la gran mayoría de los desarrolladores no aprovechan esta oportunidad. Nuestra investigación descubrió que el 98 por ciento de las funciones en aplicaciones sin servidor están en riesgo, y el 16 por ciento se considera "grave". Además, la mayoría de estas funciones cuentan con más permisos de los que requieren, los cuales podrían eliminarse para mejorar la seguridad de la función y la aplicación.
Al analizar funciones, Check Point asigna una puntuación de riesgo a cada función. Esto se basa en las debilidades de postura descubiertas y factores no solo en la naturaleza de la debilidad, sino también en el contexto en el que ocurre. Después de analizar decenas de miles de funciones en aplicaciones en vivo, descubrimos que la mayoría de las aplicaciones sin servidor simplemente no se implementan con la seguridad necesaria para minimizar los riesgos. Los mayores problemas de postura de seguridad que Check Point descubrió son los permisos innecesarios, mientras que el resto tiene que ver con códigos y configuraciones vulnerables.
El hecho de que las funciones sin servidor sean efímeras y de corta duración hace que sea más difícil para los atacantes persistir en su aplicación a largo plazo. Además, esta es una de las muchas ventajas de seguridad de Serverless. Sin embargo, el simple hecho de que esto haga la vida más difícil para los atacantes no significa que detendrán los ataques; simplemente cambiarán la estrategia.
La corta duración de las funciones sin servidor significa que las amenazas a la seguridad sin servidor pueden cambiar de forma. Los atacantes pueden construir un ataque mucho más corto que solo robe, por ejemplo, algunos números de tarjetas de crédito. Esta única ronda del ataque se repite continuamente en lo que denominamos el ataque del “Día de la Marmota”.
A pesar de la corta vida útil de los recursos nativos de la nube, los atacantes aún pueden encontrar formas de lograr persistencia a largo plazo en su aplicación. Una forma en que los atacantes pueden eludir la naturaleza efímera de las aplicaciones sin servidor es mediante un ataque ascendente o "envenenamiento del pozo".
Las aplicaciones nativas de la nube tienden a comprender muchos módulos y bibliotecas con código de una variedad de fuentes de terceros. Los atacantes trabajan para incluir código malicioso en proyectos comunes. Luego, después de envenenar el pozo, el código malicioso en sus aplicaciones en la nube puede llamar a casa, obtener instrucciones y causar estragos.
Si bien esto no es precisamente una “amenaza” de seguridad, es más un desafío y un posible obstáculo para sus esfuerzos por proteger su arquitectura sin servidor.
Serverless transmite el beneficio de una mayor velocidad de desarrollo de aplicaciones. Desafortunadamente, el enfoque tradicional de seguridad, donde los desarrolladores escriben código y empaquetan cargas de trabajo, y las operaciones de seguridad luego ponen controles de seguridad alrededor de esas cargas de trabajo, simplemente no funcionará para servidores sin servidor.
Si los desarrolladores deben esperar la seguridad para abrir puertos, roles de IAM o grupos de seguridad para ellos, el beneficio de una mayor velocidad se erosiona rápidamente. Con demasiada frecuencia, la solución es eliminar SecOps de la ecuación, lo que de hecho podría ser un riesgo.
Por otro lado, configurar permisos para la miríada de recursos sin servidor e interacciones entre ellos es una tarea que consume mucho tiempo. Además, “gastar” el tiempo de los desarrolladores en esa configuración de seguridad puede resultar costoso rápidamente, además de no ser el uso ideal de su tiempo. Aprovechar la automatización, como CloudGuard Platform, puede aumentar la seguridad sin servidor sin dedicar excesiva cantidad de tiempo al desarrollador.
Otro beneficio de Serverless es que solo paga por lo que realmente consume, lo que puede resultar en costos reducidos. Sin embargo, pagar exactamente por lo que usa significa que cualquier aumento en el tiempo de procesamiento aumentará los costos.
Colocar un exceso de configuración de app sec en su aplicación podría potencialmente agregar trabajo adicional a sus funciones, lo que puede aumentar los costos. Si bien agregar tiempo de procesamiento por el bien de la seguridad es una inversión sabia, requiere una implementación adecuada para evitar aumentos de costos excesivos e innecesarios.
De manera similar al aumento de tiempo para la configuración de seguridad sin servidor mencionado anteriormente, no es exactamente una amenaza, sino más bien un desafío que tendrá que afrontar mientras protege su arquitectura sin servidor.