¿Oscuridad o seguridad? Una historia con linterna

Oscuridad vs seguridad

Cuando diseñé el modelo de seguridad de los canales digitales de i-DE, me tocó una de esas reuniones en las que el PowerPoint se queda corto y toca tirar de metáforas.

¿Y esto para qué sirve?

Muchas veces los equipos de negocio no entienden lo que hacemos en seguridad. Y no es por mala fe, es que usamos un lenguaje que suena a película de espías.

Me explico: en una de esas charlas con negocio, salió el tema de la “seguridad por oscuridad”. Al decirlo vi caras raras. Así que improvisé un ejemplo muy gráfico (o más bien oscuro 😉):

Imagina que tienes una habitación con un tesoro dentro. La habitación está completamente a oscuras. Nadie sabe que el tesoro está ahí, pero… la puerta está abierta.

Si alguien entra con una linterna, se lo lleva. Eso es la seguridad por oscuridad: no hay seguridad, solo ignorancia.

Ahora imagina la misma habitación, pero esta vez con una puerta cerrada con llave. Todo el mundo sabe que hay un tesoro, pero nadie puede entrar. Eso sí es seguridad.

Explicar lo técnico sin tecnicismos

Esta anécdota me recuerda algo importante: muchas veces, más que diseñar sistemas, estamos vendiendo ideas. Y para vender, hay que traducir.

Traducir jerga a metáforas. Riesgos a historias. Seguridad a cerraduras de toda la vida.

Y sí, cuesta. Pero si no lo haces, no te dan el OK. Y sin OK, no hay funcionalidad. Y sin funcionalidad, no hay mejora.

Moraleja

Convencer es tan importante como configurar. Que lo técnico no tape el mensaje.


Podemos seguir la conversación en LinkedIn

Este artículo ha sido Diseñado en la cabeza de Iñigo, made in ChatGPT … pero la linterna le llevaba yo.

Riesgos de seguridad en los contenedores Docker

En esta ocasión os quiero hablar de una cosa que normalmente se nos suele pasar por alto a la mayoría de nosotros cuando trabajamos con los contenedores Docker.

Y es el sistema operativo sobre el que se ejecutan los contenedores, no tanto sobre el que se ejecuta el motor de contenedores, sino sobre el sistema operativo sobre el que se ejecuta nuestro contenedor.

Sobre el contenedor que nos basamos a la hora de crear la imagen.

Los contenedores Docker

Esto de los contenedores está muy bien porque realmente nos proporcionan un servidor que no tenemos que configurar, ya está configurado y simplemente nosotros metemos nuestra aplicación.

Con lo cual como desarrolladores esto lógicamente es una funcionalidad muy interesante.

Sí que es cierto que normalmente los desarrolladores solemos tener una cierta tendencia a no preocuparnos de estas cosas de infraestructura.

Pero realmente esa aplicación que nosotros estamos corriendo sobre un servidor de aplicaciones, típicamente por ejemplo un JBoss eap o un Wildfly etcétera, tienen por debajo unas librerías de un sistema operativo.

Contenedores seguros

La cuestión es que ese sistema operativo nos puede afectar. Ya que tenemos que tener en cuenta que ese sistema operativo tiene bugs y tiene normalmente parches de seguridad que van saliendo.

Con lo cual si nosotros no nos preocupamos de mantener actualizado el sistema operativo sobre el que está ejecutándose en nuestro contenedor podemos tener unos problemas de seguridad.

Se puede ver un ejemplo en las imágenes que están en el Docker Hub, que es el repositorio más popular de imágenes de contenedores. La mayor parte de las imágenes tienen serios problemas de librerías.

Quizás normalmente la última versión es la que puede tener los parches más actualizados.

Lógicamente porque normalmente se han generado hace poco tiempo con lo cual se basa en un sistema operativo que ya tiene corregido todas las vulnerabilidades.

Pero realmente las versiones un poquito más viejas podemos ver que realmente suelen tener bastantes problemas.

Para verlo simplemente tenemos que entrar en el hub de docker. Loguearnos. Ir a la imagen que estemos utilizando, que queramos utilizar y ver cuál es el estado de la  seguridad.

Lógicamente si somos mínimamente exigentes con la seguridad de nuestra infraestructura estas  imágenes no las podríamos utilizar en producción.

En el resto internos sí que se pueden utilizar pero no en producción.

Mantener actualizado los contenedores

Cuando queramos utilizar contenedores tenemos que tener la seguridad de que tenemos un soporte sobre el sistema operativo sobre el que se están ejecutando esos contenedores. Y en general de toda la infraestructura que está por debajo de nuestra aplicación.

Podemos encargarnos nosotros o utilizar un proveedor que nos proporcione esta base actualizada.

Más sobre contenedores

Si queréis pues ampliar conocimientos sobre el tema de los contenedores podéis echar un vistazo a mis cursos sobre contenedores y sobre openshift.

OpenShift es un poco la evolución de los contenedores más orientados a entornos empresariales. Por qué sí que es cierto que un contenedor lo podemos utilizar en nuestro portátil para hacer unas pruebas a nuestro desarrollo. Pero cuando ya entramos en lo que es el uso en entornos empresariales, entornos grandes pues los contenedores se nos quedan un poquito cortos y necesitamos herramientas como openshift

Os dejo el video en el que comentos más sobre este tema

https://youtu.be/VwqERlo64Yw