Michael Landl, director sénior de seguridad de Dynatrace, explica cómo los servicios en la nube y las prácticas de desarrollo modernas han roto los enfoques existentes para la seguridad de las aplicaciones y destaca por qué se necesita un nuevo enfoque:
¿Cómo han roto las arquitecturas nativas de la nube los enfoques existentes para la seguridad de las aplicaciones?
A medida que más organizaciones avancen hacia arquitecturas de aplicaciones nativas de la nube, basadas en microservicios, contenedores y plataformas como Kubernetes, será más difícil identificar vulnerabilidades y garantizar una seguridad sólida de las aplicaciones. Esto se debe a que estos entornos son muy dinámicos, donde el cambio es la única constante. Nuestra investigación ha encontrado que el 61 por ciento de las organizaciones dice que su entorno cambia una vez cada minuto o menos, y casi un tercio dice que cambia al menos una vez por segundo.
Esto expone a las organizaciones a miles de vulnerabilidades que nunca ven, porque nunca están en el mismo estado durante el tiempo suficiente. Los enfoques tradicionales para la gestión de vulnerabilidades solo ofrecen una vista estática en un único momento en el tiempo, lo que los hace ineficaces en entornos dinámicos. Las organizaciones necesitan la capacidad de detectar vulnerabilidades tan pronto como aparezcan; de lo contrario, corren el riesgo de quedar expuestas.
¿Cómo define un «entorno dinámico»?
Un entorno dinámico es simplemente una forma sencilla de describir la forma en que se crean y ejecutan las aplicaciones actuales. Los entornos de aplicaciones se están volviendo mucho más dinámicos, cambiando con mayor frecuencia, debido al uso creciente de arquitecturas impulsadas por API, Kubernetes, microservicios y computación sin servidor en ecosistemas de múltiples nubes. Estas arquitecturas se definen por estar en un estado de movimiento constante, donde el cambio ocurre en cuestión de segundos, o incluso milisegundos, en lugar de horas o días.
En lugar de aplicaciones e infraestructura de TI que siempre están en ejecución, nos estamos moviendo a entornos donde los microservicios están girando constantemente hacia arriba y hacia abajo, y la infraestructura emerge para respaldarlos en tiempo real, a medida que los clientes y empleados usan servicios digitales. Esta es una forma mucho más eficiente de ejecutar aplicaciones en la nube, por lo que estos enfoques se han vuelto tan populares, pero también es mucho más difícil monitorear y administrar las vulnerabilidades de seguridad y salvaguardar la experiencia del usuario.
¿Qué impacto tienen las prácticas de desarrollo modernas en la forma en que las organizaciones identifican las vulnerabilidades de seguridad?
Además de utilizar arquitecturas de aplicaciones e infraestructura más dinámicas, las organizaciones también han cambiado a enfoques más dinámicos para la entrega y la orquestación de software. Las metodologías ágiles como DevSecOps y los procesos de entrega continua han llevado al lanzamiento de nuevas funciones de aplicaciones y actualizaciones de software en sprints rápidos que se completan en cuestión de días o incluso minutos, en lugar de semanas o meses.
Sin embargo, estos procesos modernos han transferido la responsabilidad a los desarrolladores para garantizar que el código no tenga vulnerabilidades antes de que entre en funcionamiento. A pesar de las inversiones en múltiples herramientas de seguridad, esto a menudo da como resultado más puntos ciegos y lagunas, ya que los desarrolladores tienen poco tiempo y no pueden dedicar los ciclos para buscar vulnerabilidades manualmente. A veces, también es difícil para los escaneos de preproducción replicar las condiciones en entornos de producción en vivo. Como tal, incluso las vulnerabilidades más comunes y bien documentadas pueden pasar desapercibidas y pasar de los entornos de preproducción a los entornos de producción en vivo, donde están abiertas para que los piratas informáticos las exploten.
¿Puede señalar ejemplos de vulnerabilidades o incidentes que hayan ocurrido debido a esto?
IDC predice que para 2022, el 90% de las nuevas aplicaciones empresariales se implementarán como nativas de la nube, utilizando metodologías y arquitecturas ágiles, por lo que este problema es enorme y solo crecerá en el futuro.
Hay dos ejemplos notables de vulnerabilidades o incidentes que han sido influenciados por el uso de entornos dinámicos en la nube. La primera es la violación de Equifax en 2021, en la que se robaron los datos personales de cientos de millones de personas. Los atacantes pudieron acceder a los sistemas de Equifax a través de un portal web de quejas de consumidores, utilizando una vulnerabilidad ampliamente conocida de la biblioteca Apache Struts. Esta vulnerabilidad todavía existe en innumerables aplicaciones web en todo el mundo, pero a medida que más organizaciones se trasladen a arquitecturas nativas de la nube, será cada vez más difícil de identificar, lo que la convierte en un problema creciente.
Otro ejemplo notable es la vulnerabilidad Ghostcat, que afectó a todas las versiones en vivo de Apache Tomcat. Como uno de los servidores de aplicaciones web Java más populares, Tomcat está ampliamente presente en entornos nativos de la nube, se ejecuta en más de un millón de servidores y se utiliza tanto para aplicaciones públicas como internas. La vulnerabilidad de Ghostcat brinda a los atacantes la capacidad de leer cualquier archivo almacenado en el servidor web y, en el peor de los casos, les permite ejecutar código de forma remota para hacerse cargo del servidor, por lo que representa una amenaza significativa.
¿Cómo debería responder la industria? ¿Qué se debe hacer de manera diferente?
A pesar de haber invertido en más herramientas a lo largo de los años, la dependencia continua de los procesos manuales y los análisis de vulnerabilidades puntuales significa que muchos equipos de DevSecOps están continuamente abrumados por alertas, muchas de las cuales son de baja prioridad o falsos positivos. Sin el contexto completo detrás de cómo una vulnerabilidad en particular impacta en toda la pila de aplicaciones y qué sistemas y datos pone en riesgo, es muy difícil para los equipos de DevSecOps priorizar sus acciones de manera efectiva para impulsar ciclos de lanzamiento más rápidos y seguros.
Esta es la razón por la que se necesita un nuevo enfoque para la seguridad de las aplicaciones, uno que utilice la IA, la automatización y la observabilidad juntas para identificar, resolver y prevenir vulnerabilidades en tiempo de ejecución en entornos de producción y preproducción. Este enfoque permite a los equipos de DevSecOps analizar continuamente todo su entorno nativo de la nube, incluidas las aplicaciones, bibliotecas y código, para identificar cambios, priorizar alertas y eliminar falsos positivos. Con la ayuda de la IA, pueden comprender la fuente, la naturaleza y la gravedad precisas de cualquier vulnerabilidad en tiempo de ejecución e identificar los vectores de ataque posteriores a la implementación, lo que les permite gestionar esas situaciones de manera más eficaz.