Docker® tiene muchas partes en movimiento, y protegerlo es más complejo que proteger tecnologías más antiguas de implementación. Requiere de un enfoque holístico - desde los firewalls para las aplicaciones y las redes, hasta la defensa del container en runtime, hasta la protección del host.
Seguridad de Containers Docker
Proteger un container de Docker no es muy diferente de la protección de otros containers. Requiere un enfoque todo-incluido, que proteja todo desde el host hasta la red y cualquier cosa en medio. Debido a las partes en movimiento, asegurar la protección de los containers es difícil para muchas organizaciones, y requiere de más que de un nivel rudimentario de vigilancia.
Cosas para considerar
Estas son algunas cosas para considerar al momento de proteger sus containers Docker:
Use cuotas de recursos
El uso de cuotas de recursos le da la capacidad de limitar el uso de la memoria y del CPU para un container. Configurar cuotas de recursos en cada containers no solamente ayuda a incrementar la eficiencia del ambiente, pero también puede prevenir un desbalance de recursos a lo largo de todos los containers en su entorno.
Esto permitirá que sus containers se desempeñen a la velocidad que usted espera y, más importante, mejoren su seguridad. Si un container se llegara a infectar con contenido malicioso, no podría dejar entrar una gran cantidad de recursos, ya que la cuota lo “cortaría”—minimizando el impacto del ataque. Esta es una táctica sencilla de seguridad que usted puede aprovechar usando alertas de línea de comando.
Los containers de Docker no se deben correr como raíz
Al momento de desarrollar una aplicación, es la mejor práctica adherirse al principio del menor privilegio. Esto significa limitar el acceso de la aplicación a solamente los recursos que necesita para funcionar. Esta es una de las mejores formas de proteger sus containers contra accesos no autorizados.
Cuando se trata de la seguridad de sus containers de Docker, esto se vuelve crucial y la razón por la que las configuraciones por defecto no están hechas para correr containers como raíz. Por ejemplo, si su aplicación contenerizada es vulnerable frente a un exploit, y está corriendo con el usuario raíz, esto expande la superficie de ataque y crea un camino sencillo para que los atacantes obtengan accesos privilegiados y puedan escalar fácilmente.
Asegure la protección de sus registros de container de Docker
Los registros de container, en particular aquellos en containers de Docker, son lo que hacen que los containers sean una plataforma tan fuerte. Con los registros, puede crear un repositorio central de imágenes que se pueden descargar fácil y rápidamente. Sin embargo, aún con toda su gloria, sí existen riesgos de seguridad en caso de que no se utilice un registro sobre el que ha investigado en Docker Trusted Registry. Con el registro de Docker, este se instala detrás del firewall ya implementado en su infraestructura de TI para aliviar los riesgos que presenta el internet, pero aún entonces, debe evitar que usuarios suban o descarguen desde el registro.
Aunque puede parecer tentador evitar todo este trabajo y abrir los accesos, esta pequeña inconveniencia puede prevenir una brecha de gran tamaño en el registro. Una táctica que puede ayudar a evitar esta tentación es implementar control de accesos basado en roles, dándole así la capacidad de controlar exactamente quién puede acceder a qué, en términos de registros.
Use una fuente confiable
Ahora que ha protegido el registro de containers, no quiere que se infecte con imágenes de container obtenidas de una fuente no confiable. Puede parecer conveniente simplemente descargar imágenes de containers disponibles para el público; sin embargo, es extremadamente importante asegurarse de que la fuente de la descarga es confiable o que está verificada.
Para evitar incidentes, es mejor evitar los registros públicos de containers y apegarse a lo que ofrece Docker, como Docker Hub. Para tomar ese paso extra para la protección de sus containers, debe de usar herramientas de escaneo de imágenes para sacar a la luz las vulnerabilidades en Docker y protegerlas.
Vaya a la fuente del código
Como se discutió arriba, es importante obtener imágenes confiables para sus containers. Sin embargo, también es buena práctica investigar el código dentro de la imagen para asegurarse de que no contiene código infectado—aún si esa imagen vino de un registro confiable. Las imágenes de Docker tienen una combinación de código original y paquetes de fuentes externas, los cuales pueden no provenir de fuentes confiables.
En este escenario, es mejor hacer uso de las herramientas de análisis de código fuente. Una vez que tiene sus imágenes, puede escanear los paquetes para determinar de dónde viene el código al descargar la fuentes de todos los paquetes dentro de sus imágenes en Docker. Esto le permitirá revelar si cualquiera de las imágenes tienen vulnerabilidades de seguridad conocidas, manteniéndolo seguro desde el primer desarrollo.
Diseñe APIs y redes con la seguridad en mente
Para que los containers en Docker puedan comunicarse entre ellos, estos usan APIs (application programming interfaces) y redes. Esa comunicación es esencial para que los containers puedan correr adecuadamente, pero requiere de seguridad y monitoreo adecuados. Aunque las APIs y la red no son parte del container de Docker, son recursos que se usan junto con Docker, y estos aún representan un riesgo para la seguridad del container. Con esto en mente, para poder tener la capacidad de detener rápidamente una intrusión, necesita diseñar sus APIs y redes para que puedan monitorearse fácilmente, y con la seguridad en mente.
Uniendo los puntos
La protección de los containers de Docker no es tan sencilla como parece, pero los beneficios son mayores que las inconveniencias. Es necesario tener un enfoque holístico que refuerce el ambiente del container en todos los niveles. Y aunque puede que parezca que las mejores prácticas descritas arriba piden demasiado, le ahorrarán una enorme cantidad de tiempo en el futuro y le protegerán contra riesgos importantes de seguridad.
Investigaciones Relacionadas
Artículos Relacionados