Skip to main content

Conversaciones sobre cómo mejorar la seguridad mediante la ingeniería del caos

Escrito por
blog feature fuzzing tools

3 de agosto de 2023

0 minutos de lectura

Cuando dependes de una herramienta para ayudarte en una situación intensa, probablemente quieras tener la certeza de que se probó en condiciones extremas. Por ejemplo, si estás a punto de hacer paracaidismo, querrías saber que el paracaídas que llevas sujeto a la espalda se sometió a pruebas rigurosas y funcionará cuando más lo necesites.

Lo mismo ocurre con los sistemas que respaldan nuestras iniciativas de seguridad. ¿Qué pasa cuando esos sistemas se encuentran bajo una gran presión durante una emergencia? 

La ingeniería del caos responde esta pregunta al llevar los sistemas al límite mediante pruebas controladas y sistemáticas. Al realizar experimentos específicos, los equipos determinan si sus sistemas están preparados para soportar situaciones de gran presión o si necesitan ajustes para lograrlo.

¿Qué es la ingeniería del caos?

La ingeniería del caos se basa en la teoría del caos: la idea de que podemos identificar patrones en eventos aparentemente aleatorios e inesperados. Al realizar experimentos estratégicos para ver cómo responde un sistema ante estos eventos, los equipos pueden estar mejor preparados si esas circunstancias excepcionales se presentan en la vida real. 

La ingeniería del caos aplicada a la seguridad se centra específicamente en probar los sistemas de ciberseguridad que serían los “primeros en responder” ante emergencias como las filtraciones de datos o los ataques. Los equipos introducen estos posibles eventos en el sistema y luego observan cómo se comporta.

Aaron Rinehart, CTO y cofundador de Verica, conversó con Guy Podjarny, fundador y presidente de Snyk, sobre la ingeniería del caos en el episodio #67 del pódcast The Secure Developer. Resumió la ingeniería del caos aplicada a la seguridad como “introducir de forma proactiva las condiciones que esperas que activen o pongan en marcha tu seguridad”.

Kelly Shortridge, VP de estrategia de producto en Capsule8, también conversó con Guy en el episodio #63. Hablaron sobre cómo la ingeniería del caos aplicada a la seguridad pone a prueba los límites de un sistema y nos recuerda que los programas de seguridad en la vida real no existen en el vacío. Según Kelly: “La ingeniería del caos aplicada a la seguridad básicamente dice: ‘No, así no funciona el mundo. Necesitas… tener un modelo realmente honesto desde el punto de vista intelectual, en el que aceptes cualquier información que te dé el fracaso y simplemente la veas como una oportunidad para aprender’”.

¿Por qué es necesaria la ingeniería del caos para la seguridad?

La ingeniería del caos es fundamental para la seguridad porque demuestra que tus controles pueden soportar lo inesperado y lo impredecible. En última instancia, estos experimentos dan como resultado un producto más resiliente. 

Aaron mencionó algunas razones por las que la ingeniería del caos aplicada a la seguridad es invaluable para los equipos de desarrollo y seguridad. Por un lado, fortalece de forma proactiva los sistemas ante eventos inesperados y genera confianza en que el sistema funcionará según lo previsto, pase lo que pase. Por otro, permite que los equipos de seguridad encuentren problemas en el sistema antes de que se hagan públicos. 

Lo compara con una quema controlada: “Crecí en una granja en Misuri, así que es algo parecido a cuando hacíamos una quema controlada en un campo. No enciendes un fósforo y te pones a quemar sin más. Avisas al condado, llamas a los paramédicos y al departamento de bomberos: todos están ahí por si pasa algo, ¿verdad? Eso es lo que haces con la ingeniería del caos… no entras en pánico, porque durante [las interrupciones reales] la gente sí entra en pánico. Su capacidad mental está ocupada pensando: ‘Esto podría ser una filtración. El CEO está al teléfono diciéndome que tengo que volver a poner esto en marcha; alguien va a perder su trabajo por esto’”.

Cómo empezar a aplicar la ingeniería del caos a la seguridad en tu organización

Si tu equipo de seguridad está pensando en realizar experimentos de ingeniería del caos, Aaron y Kelly tienen algunos consejos:

Concéntrate en los errores de ingeniería

Empieza con experimentos específicos que permitan descubrir errores de ingeniería manuales. Por ejemplo, un experimento de ingeniería del caos aplicada a la seguridad podría centrarse en aprovechar un puerto mal configurado o una cuenta con permisos excesivos: dos problemas comunes causados por errores humanos.

Pero Aaron nos recuerda que “[estos errores humanos] no son culpa de ningún ingeniero; el problema es que, por el tamaño, la escala, la complejidad y la velocidad con que construimos las cosas hoy, a los seres humanos se nos hace muy difícil representarlas mentalmente”.

No intentes “hervir el océano”

Aaron también advierte que no hay que intentar lograr demasiado en un solo experimento (lo que se conoce como “hervir el océano”). Los experimentos de ingeniería del caos deben centrarse en introducir una sola falla de manera específica y sistemática. Estas introducciones estratégicas se diferencian de las simulaciones de ataques porque se enfocan en probar un problema a la vez.

Aaron dijo: “Cuando empiezas a probar varios puntos de ataque y a enviar muchos datos al sistema, es muy difícil revisar esos datos: qué falló, qué no, qué funcionó, qué no… Pierdes visibilidad por todo el ruido”.

Prepárate para el fracaso

Al empezar a experimentar, también es importante no desanimarte si tu sistema no supera la prueba. El fracaso es una de las herramientas más importantes de la ingeniería del caos. Kelly dijo: “Es un cambio filosófico necesario para la seguridad: aceptar que el fracaso es inevitable y que puede ser realmente poderoso”.

El futuro de la ingeniería del caos

A medida que las empresas sigan apostando por la transformación a la nube y sus sistemas se vuelvan más complejos, será más importante que nunca que los equipos usen la ingeniería del caos. Aaron explica que la transformación a la nube no debería ser un requisito previo para la ingeniería del caos. Debería ser al revés: la ingeniería del caos prepara a las organizaciones para la transformación a la nube. Al probar desde el principio la eficacia de sus nuevas capacidades en la nube, los equipos están mejor preparados para mantenerlas en el futuro. En palabras de Aaron: “La única forma de entender un sistema complejo es interactuar con él”.

¿Quieres profundizar en la ingeniería del caos aplicada a la seguridad y aprender más sobre cómo podría funcionar para ti y tu empresa? Escucha los episodios del pódcast con Aaron y Kelly:

  • Episodio 63: Seguridad de contenedores, microservicios e ingeniería del caos con Kelly Shortridge

  • Episodio 67: Ingeniería del caos aplicada a la seguridad: ¿qué es y por qué debería importarte? Con Aaron Rinehart

Y si quieres más contenido sobre seguridad para desarrolladores, AppSec y DevSecOps, suscríbete hoy a The Secure Developer.