Uso de la ‘ingeniería del caos’ para hacer que la computación en la nube sea menos vulnerable a los ciberataques
La computación en la nube se ha convertido en un elemento crucial de la tecnología actual, sirviendo como columna vertebral de la conectividad global. Permite a empresas, gobiernos e individuos utilizar y construir servicios basados en la nube y constituye la base de una amplia gama de sistemas que utilizamos a diario, incluidos los de telecomunicaciones, transporte, atención sanitaria, banca e incluso servicios de streaming.
Estos sistemas, al igual que cualquier hardware o software, son susceptibles a fallos y ciberataques que pueden ocurrir de manera impredecible. Los ciberdelincuentes son cada vez más determinados, y sus ataques, más sofisticados y frecuentes. Una de las tácticas que estos grupos emplean con frecuencia son los ataques de denegación de servicio distribuida (DDoS), que saturan los sistemas de las empresas con más solicitudes y tráfico del que sus sistemas de TI pueden manejar.
Esto impide el acceso de los usuarios legítimos al servicio, causando problemas significativos para las empresas, como pérdida de ingresos y disminución de la lealtad del cliente. Este problema puede generar grandes dificultades para empresas como Google y Amazon, que ofrecen servicios de computación en la nube para alojar datos, sistemas y servicios de los consumidores.
En nuestro último estudio, utilizamos varias estrategias para demostrar cómo los sistemas de computación en la nube pueden fortalecerse mediante el estrés. Empleamos algo llamado ingeniería del caos y estrategias adaptativas, que ayudan al sistema a aprender de fallos y ciberataques.
En su análisis más reciente de amenazas de ciberseguridad, la empresa de seguridad en la nube Cloudflare informó un aumento del 65% en los ataques DDoS en el tercer trimestre de 2023 en comparación con el trimestre anterior. Según su informe del segundo trimestre de 2024, hubo cuatro millones de ataques DDoS.
Además de los ataques DDoS y otros ataques deliberados, las empresas que usan software basado en la nube también son vulnerables a interrupciones causadas por problemas que van desde problemas de conexión hasta fallos de servidores físicos, algunos de los cuales también pueden ser consecuencia de ciberataques. A veces, incluso un problema menor, como un error tipográfico, puede dejar fuera de servicio los sitios web basados en la nube.
El 19 de julio, fallos en el sensor Falcon de CrowdStrike provocaron que los hosts de Windows conectados al sistema de computación en la nube de Microsoft Azure fallaran, causando una interrupción mundial de TI.
El sensor Falcon, diseñado para prevenir ataques cibernéticos, no fue comprometido por un ataque cibernético; la interrupción fue causada por un problema técnico con una actualización. El 31 de julio, un error en las defensas de DDoS de Microsoft causó una interrupción de ocho horas en Azure.
Desentrañando la fragilidad
Resolver interrupciones importantes como estas presenta desafíos significativos debido a la complejidad de la nube y sus múltiples dependencias de otros sistemas, incluidos los de ciberseguridad. Implementar soluciones confiables puede llevar desde horas hasta varios días o, en algunos casos, como el de CrowdStrike, incluso más tiempo.
Estos incidentes demuestran la fragilidad de nuestra infraestructura tecnológica en general, pero especialmente de los sistemas basados en la nube. Las soluciones actuales se centran en gestionar los efectos de estos incidentes en lugar de abordar los problemas de raíz creando sistemas en la nube más confiables y resistentes. Para prevenir fallos, un paso crucial es integrar como estándar pruebas avanzadas de software para evaluar su resiliencia y fiabilidad bajo presión.
En nuestra investigación, estamos ayudando a los consumidores de la nube a resistir estas amenazas haciendo precisamente esto, haciendo que la computación en la nube sea más capaz de resistir grandes ataques y apagones y de seguir funcionando. Quienes operan sistemas en la nube también deben adaptarse y aprender de incidentes anteriores para fortalecerlos.
Hemos estado utilizando una técnica llamada ingeniería del caos, que consiste en atacar y experimentar deliberadamente con estas aplicaciones de software basadas en la nube para observar cómo responden a tales ataques.
Uno de nuestros trabajos más recientes descubrió que podemos usar esta técnica para predecir con mayor precisión cómo reaccionará un sistema ante un ataque. La ingeniería del caos implica introducir deliberadamente fallos en un sistema y luego medir los resultados. Esta técnica ayuda a identificar y abordar posibles vulnerabilidades y debilidades en el diseño, la arquitectura y las prácticas operativas de un sistema.
Los métodos pueden incluir apagar un servicio, inyectar latencia (un retraso en la forma en que un sistema responde a un comando) y errores, simular ciberataques, terminar procesos o tareas, o simular un cambio en el entorno en el que el sistema está trabajando y en la forma en que está configurado.
En experimentos recientes, introdujimos fallos en sistemas en vivo basados en la nube para entender cómo se comportan bajo escenarios de estrés, como ataques o fallos. Al aumentar gradualmente la intensidad de estas «inyecciones de fallos», determinamos el punto máximo de estrés del sistema.
Nuestra investigación reveló una reducción en el rendimiento y la disponibilidad de los servicios como resultado. Así, estos experimentos de ingeniería del caos descubrieron problemas que las mediciones tradicionales de rendimiento no pudieron detectar.
Aprendiendo del caos
La ingeniería del caos es una gran herramienta para mejorar el rendimiento de los sistemas de software. Sin embargo, para lograr lo que describimos como «antifragilidad»—sistemas que se fortalecen en lugar de debilitarse bajo el estrés y el caos—necesitamos integrar las pruebas de caos con otras herramientas que transformen los sistemas para que sean más fuertes bajo ataque.
En nuestro último trabajo, presentamos un marco adaptativo para hacer precisamente esto. Este marco, llamado «Unfragile», utiliza la ingeniería del caos para introducir fallos de manera incremental y evaluar la respuesta del sistema bajo estas tensiones.
Luego introducimos nuevas estrategias adaptativas para eliminar las vulnerabilidades detectadas mediante la ingeniería del caos. Esto puede incluir modificar el código fuente del software para mejorar su rendimiento. Al introducir métricas sobre el rendimiento del sistema en tiempo real, el sistema puede volverse adaptativo, ya que los problemas potenciales se detectan temprano y se resuelven.
Al combinar la ingeniería del caos con estas estrategias adaptativas para alertar a los operadores sobre las vulnerabilidades en tiempo real, podemos enseñar a los sistemas en la nube no solo a soportar el estrés, sino a fortalecerse con él.
Esto garantizará que nuestra infraestructura digital crítica se vuelva más robusta, confiable y capaz de aprender del caos para enfrentar mejor los desafíos futuros.