N.World
bosonit-ciberseguirdad

El principio de inmutabilidad

El otro día escribía sobre los problemas que nos generan las imágenes para el control de ciberseguridad y una persona de esta red me escribió en privado para decir que no era un problema que se actualizan como el resto de los sistemas y listo. Bueno no estoy de acuerdo con su punto de vista y por eso voy a intentar explicarme.

Una de las grandes ventajas que nos prestan los contenedores es el principio de inmutabilidad. Antes era muy común que los desarrolladores generaran su código en un entorno de desarrollo con unas características determinadas, lo pasaban a pre-producción que no era exactamente igual a desarrollo y por último llegaban a producción que también tenía una configuración distinta, todo este proceso llevaba a que los desarrolladores tuvieran que “retocar” su código en cada uno de las fases.

Con la llegada de los contenedores esto se soluciono, ya que una imagen es igual desde el inicio hasta el fin que crea el microservicio. El desarrollador se baja la imagen con unas características determinadas, si tiene entorno de desarrollo la aloja en él, sino en su propia máquina. Cuando lo tiene preparado sube la imagen a pre-producción donde se realizan las pruebas y se verifica que hace sus función y pasa a producción, todo muy sencillo y la magia es que desde principio a fin el desarrollo ha estado en un mismo entorno. Este sería el principio de inmutabilidad. (nota: los desarrolladores no deberían instalar nada distinto de lo que viene en la imagen, aunque os lo supliquen debéis decir que no 😉

Si actualizamos en producción (esto sería bastante kamikaze) o en pre-producción una imagen, nos encontraremos con los viejos problemas, es posible que haya que retocar el código, y si la imagen con la que trabaja el desarrollador no era segura desde el principio el problema se va heredando.

Así que lo que intentaba transmitir es que, en un entorno ideal, las empresas deberían de tener un repositorio de imágenes aprobados y certificados, con un ciclo de vida de actualización de las imágenes que les permita llegar a producción con un nivel de seguridad optimo. Esto nos llevaría a que cada vez que un código o servicio se actualiza llegaría una nueva imagen a producción ya parcheada, ya que el desarrollador estaría obligado siempre a realizar la nueva versión sobre la última imagen del repositorio. Los desarrollos suelen estar vivos y mejoran/crecen en el tiempo, por este motivo se plantea este ciclo de vida.

No hay texto alternativo para esta imagen

Esto es en el mundo ideal, que esperemos que dentro de poco no sea tan ideal y si más real.

José María Pulgar

José María Pulgar

CISO & Cibersecurity Tech leader at Bosonit

Te puede interesar

Da el salto
tecnológico.

Contacta con nosotros.