🧠 El blog está dedicado al tema de VPN y seguridad, privacidad de datos en Internet. Hablamos de tendencias actuales y noticias relacionadas con la protección.

Los contenedores están en todas partes: ¿cómo los protege?

18

Los contenedores aumentan en número cada día y parecen estar en todas partes, ya que las organizaciones están ansiosas por aprovechar los muchos beneficios que ofrecen, como el desarrollo ágil de aplicaciones y la implementación en todas las plataformas.

Muchos también creen que el uso de contenedores puede ayudarlos a minimizar las restricciones de seguridad debido a su naturaleza de vida corta. ¿Es esto cierto o simplemente otra percepción errónea?

Aunque los contenedores no tienen inseguridades inherentes, a menudo se implementan de manera no segura, lo que genera numerosos desafíos de seguridad.

Desafíos de seguridad al implementar contenedores

La gran cantidad, la versatilidad y el estado efímero de los contenedores desplegados, además del hecho de que los contenedores deben comunicarse con otras entidades, hacen que las organizaciones no tengan la capacidad de poseer una visibilidad adecuada del tráfico entre contenedores.

Gracias a esta falta de visibilidad, los contenedores a menudo se olvidan y las medidas de prevención de intrusiones y los controles de seguridad se vuelven ineficaces, lo que aumenta la superficie de ataque y, por lo tanto, el riesgo comercial general. Además, la escasez de visibilidad puede resultar en una escasez de responsabilidad ya que los contenedores atraviesan diferentes entornos desde el desarrollo hasta la producción.

Otro desafío de seguridad relacionado con los contenedores es la mala gestión de vulnerabilidades. Por ejemplo, al clonar imágenes existentes para crear nuevos contenedores, sus vulnerabilidades también se replicarán.

Esto destaca la necesidad de que la seguridad sea una parte integral de la estrategia de contenedores de la organización. De lo contrario, los errores de configuración y los parches faltantes pueden ser la razón por la que se implementan y ejecutan imágenes no autorizadas en entornos de producción, lo que genera una mayor superficie de ataque y ataques más exitosos.

Finalmente, dado que los contenedores usan un kernel de sistema operativo compartido, un compromiso del kernel del sistema operativo del host por parte de un contenedor deshonesto puede conducir a una pérdida de acceso a todos o a cualquiera de los contenedores en ejecución en el host, así como potencialmente a otros hosts en la red.

Cómo asegurar sus contenedores

Quizás la mejor práctica para proteger su entorno en contenedores es reconocer la necesidad de hacerlo. Excepto por este concepto fundamental, hay algunos buenos consejos a seguir para asegurar sus contenedores de manera efectiva.

Tenga visibilidad de sus contenedores

Antes de implementar un contenedor, asegúrese de comprender sus dependencias y lo que se incluye en él. Para asegurarse de que las imágenes de su contenedor sean impecables, debe ganar visibilidad en cada etapa, desde el desarrollo hasta la producción.

No confiar en el software de un contenedor es un excelente punto de partida. Debe verificarlo muy a fondo para comprender "de dónde vienen, cómo se produjeron y sus fuentes correspondientes", como señaló Dirk Hohndel, vicepresidente de VMware, en la Cumbre de Liderazgo de Código Abierto de 2019.

En pocas palabras, verifique dos veces el contenido de sus contenedores antes de implementarlos y nunca ejecute un contenedor con software desconocido u obsoleto. El hecho de que una imagen de contenedor afirme contener los mejores y más recientes programas y bibliotecas no significa que realmente los contenga.

Una forma de mitigar este problema es utilizar aplicaciones que puedan ayudarte a limpiar tus contenedores. Aunque no me gusta reinventar la rueda, tal vez el mejor enfoque sea dejar de usar las imágenes contenedoras de otras personas.

Si, al igual que Hércules, toma el camino más difícil de la virtud y comienza a crear sus propias imágenes de contenedores, comprenderá mucho mejor lo que sucede dentro de los contenedores, lo que tiene beneficios más allá de la seguridad.

Controlar el acceso raíz

La mayoría de los contenedores están construidos con acceso de root por defecto. Sin embargo, esta es una práctica cuestionable. Aunque es más fácil para los desarrolladores ejecutar contenedores como root, existen enormes riesgos con el acceso de root.

Hay varios enfoques para manejar este problema. Una forma es determinar una política corporativa que establezca que nunca se permite que los contenedores se ejecuten como raíz. Una forma alternativa es ejercer el principio de privilegio mínimo. Puede especificar un usuario no root dentro del Dockerfile, cuando crea una imagen de contenedor, para ejecutar el contenedor como ese usuario específico con el acceso mínimo requerido al sistema.

Finalmente, también puede usar el espacio de nombres de usuario cuando ejecuta procesos de contenedores privilegiados para ayudar a proteger los contenedores. Con este método, el UID para ejecutar estos procesos dentro del contenedor es cero (que es la raíz), pero fuera del contenedor, el UID es el 1000 sin privilegios.

Comprobar el tiempo de ejecución del contenedor

La » Guía de seguridad de contenedores de aplicaciones " SP 800-190 del Instituto Nacional de Estándares y Tecnología (NIST) señala que los tiempos de ejecución de contenedores también son vulnerables a los ataques. Si bien esta no es una brecha de seguridad común, el NIST señala que las vulnerabilidades de seguridad del tiempo de ejecución del contenedor pueden ser " particularmente peligrosas " si permiten escenarios en los que el software malicioso puede atacar los recursos en otros contenedores y el propio sistema operativo host.

Un atacante también puede aprovechar las vulnerabilidades para comprometer el propio software de tiempo de ejecución y luego alterar ese software para que le permita al atacante acceder a otros contenedores, monitorear las comunicaciones de contenedor a contenedor, etc.

Los problemas de seguridad son mucho más comunes con las configuraciones de tiempo de ejecución. Los tiempos de ejecución de contenedores suelen exponer muchas opciones configurables. Configurarlos incorrectamente puede reducir la seguridad relativa del sistema.

Por ejemplo, en los hosts de contenedores de Linux, el conjunto de llamadas al sistema permitidas a menudo se limita de forma predeterminada a solo las necesarias para el funcionamiento seguro de los contenedores. Si esta lista se amplía, puede exponer los contenedores y el sistema operativo host a un mayor riesgo de un contenedor comprometido.

De manera similar, si un contenedor se ejecuta en modo privilegiado, tiene acceso a todos los dispositivos del host, lo que le permite actuar esencialmente como parte del sistema operativo del host e impactar a todos los demás contenedores que se ejecutan en él.

Otro ejemplo de una configuración de tiempo de ejecución insegura es permitir que los contenedores monten directorios confidenciales en el host. Si un contenedor comprometido puede realizar cambios en estas rutas, podría usarse para elevar los privilegios y atacar al propio host, así como a otros contenedores que se ejecutan en el host.

Fortalecer el sistema operativo

NIST también recomienda ejecutar un sistema operativo específico del contenedor porque las amenazas suelen ser mínimas, ya que los sistemas operativos están diseñados específicamente para albergar contenedores y tienen otros servicios y funcionalidades deshabilitados.

Además, debido a que estos sistemas operativos optimizados están diseñados específicamente para albergar contenedores, por lo general cuentan con sistemas de archivos de solo lectura y emplean otras prácticas de refuerzo de manera predeterminada. Siempre que sea posible, las organizaciones deben usar estos sistemas operativos minimalistas para reducir sus superficies de ataque y mitigar los riesgos típicos y las actividades de fortalecimiento asociadas con los sistemas operativos de propósito general.

Las organizaciones que no pueden usar un sistema operativo específico del contenedor deben seguir la guía de NIST SP 800-123, Guía para la seguridad general del servidor para reducir la superficie de ataque de sus hosts tanto como sea posible.

Por ejemplo, los hosts que ejecutan contenedores solo deben ejecutar contenedores y no ejecutar otras aplicaciones, como un servidor web o una base de datos, fuera de los contenedores. El sistema operativo host no debe ejecutar servicios de sistema innecesarios, como un administrador de trabajos de impresión, que aumenta su superficie de ataque.

Finalmente, los hosts deben escanearse continuamente en busca de vulnerabilidades y las actualizaciones deben aplicarse rápidamente, no solo al tiempo de ejecución del contenedor, sino también a los componentes de nivel inferior, como el kernel del que dependen los contenedores para una operación segura y compartimentada.

La seguridad de los contenedores es una prioridad

Con más y más empresas que adoptan e implementan contenedores, su seguridad se está convirtiendo en una de las principales prioridades comerciales. Según una encuesta reciente, el 94% de los encuestados ha experimentado un incidente de seguridad en sus entornos de contenedores. Esto solo resalta lo importante que es obtener los derechos de seguridad de los contenedores para proteger su negocio y sus clientes.

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. AcceptRead More