¿Qué es la seguridad de contenedores?

La seguridad de contenedores implica proteger las aplicaciones en contenedores y su infraestructura a lo largo de todo su ciclo de vida, desde el desarrollo hasta la implementación y el tiempo de ejecución. Abarca la exploración de vulnerabilidades, la administración de la configuración, el control de acceso, la segmentación de la red y la supervisión. La seguridad de contenedores tiene como objetivo maximizar los beneficios intrínsecos del aislamiento de aplicaciones al tiempo que minimiza los riesgos asociados al uso compartido de recursos y la superficie de ataque potencial. Al adherirse a las mejores prácticas y utilizar herramientas de seguridad especializadas, las organizaciones pueden salvaguardar su entorno de contenedores frente a accesos no autorizados y violaciones de datos , al tiempo que mantienen el cumplimiento de las normativas del sector.

 

Explicación de la seguridad de contenedores

Los contenedores nos dan la capacidad de aprovechar las arquitecturas de microservicios y operar con mayor velocidad y mayor portabilidad. Los contenedores también introducen ventajas de seguridad intrínsecas. El aislamiento de la carga de trabajo , la abstracción de las aplicaciones y la naturaleza inmutable de los contenedores son, de hecho, factores determinantes para su adopción.

Kubernetes, también, proporciona funciones de seguridad integradas. Los administradores pueden definir políticas de control de acceso basadas en roles (RBAC) para ayudar a protegerse contra el acceso no autorizado a los recursos del cluster. Pueden configurar las políticas de seguridad de los pods y las políticas de red para evitar ciertos tipos de abusos en los pods y en la red que los conecta. Los administradores pueden imponer cuotas de recursos para mitigar la interrupción causada por un atacante que compromete una parte de un cluster. Con cuotas de recursos en su lugar, por ejemplo, un atacante no podrá ejecutar un ataque de denegación de servicio privando al resto del clúster de los recursos necesarios para funcionar.

Pero como habrá adivinado, ninguna tecnología es inmune a las actividades maliciosas. La seguridad de contenedores, las tecnologías y prácticas implementadas para proteger no sólo sus aplicaciones sino también su entorno en contenedores -desde hosts, tiempos de ejecución y registros hasta plataformas de orquestación y sistemas subyacentes- es vital.

Vídeo: Detecte vulnerabilidades en las imágenes de contenedores y garantice la seguridad y el cumplimiento durante todo el ciclo de vida de desarrollo con el escaneado de contenedores.

Antecedentes

La seguridad de contenedores refleja la naturaleza cambiante de la arquitectura de TI. El auge de la computación en la nube ha alterado radicalmente nuestra forma de crear aplicaciones. Seguir el ritmo de la tecnología exige que adaptemos nuestro enfoque a la hora de protegerlos.

En el pasado, la ciberseguridad significaba proteger un único perímetro. Los contenedores dejan obsoleto este concepto, al haber añadido múltiples capas de abstracción que requieren herramientas especializadas para interpretar, supervisar y proteger nuestros entornos en contenedores.

El ecosistema de los contenedores puede ser difícil de entender, dada la plétora de herramientas y los problemas únicos que resuelven en comparación con las plataformas tradicionales. Al mismo tiempo, la adopción generalizada de las tecnologías de contenedores nos brinda la oportunidad de cambiar a la izquierda: asegurar los contenedores desde las primeras etapas en el canal de CI/CD hasta la implementación y el tiempo de ejecución.

Pero antes de sumergirse en los detalles de la seguridad de contenedores, es necesario comprender las plataformas utilizadas para su administración. Nos centraremos en una de las plataformas más grandes y conocidas, Kubernetes.

¿Qué es Kubernetes?

Kubernetes es una de las principales plataformas de orquestación que ayuda a optimizar e implementar una infraestructura basada en contenedores. Más concretamente, se trata de una plataforma de código abierto utilizada para gestionar cargas de trabajo en contenedores mediante la automatización de procesos como el desarrollo, la implementación y la administración de aplicaciones.

Como plataforma de código abierto ampliamente adoptada, asegurar Kubernetes es crucial para las organizaciones que implementan aplicaciones en contenedores. Las organizaciones deben establecer un entorno seguro, sobre todo cuando incorporan código de fuente abierta en aplicaciones de terceros. Kubernetes, con su amplio ecosistema y sus numerosas integraciones para la administración de contenedores, permite la creación de procesos automatizados y sistemáticos que integran la seguridad en el núcleo de su canal de construcción e implementación. Al aprovechar las funciones nativas de Kubernetes, como RBAC, las políticas de seguridad de pods y las políticas de red, las organizaciones pueden crear y mantener una postura de seguridad sólida con una infraestructura de orquestación de contenedores resistente.

Ventajas de los contenedores

En pocas palabras, los contenedores hacen que crear, implementar y escalar aplicaciones nativas de la nube sea más fácil que nunca. Para los desarrolladores de aplicaciones nativas de la nube, las principales ventajas de los contenedores son:

  1. Eliminación de la fricción: Los desarrolladores evitan gran parte de la fricción asociada al traslado del código de la aplicación desde las pruebas hasta la producción, ya que el código de la aplicación empaquetado como contenedores puede ejecutarse en cualquier lugar.
  2. Una única fuente de verdad para el desarrollo de aplicaciones: Todas las dependencias asociadas a la aplicación se incluyen dentro del contenedor. Esto permite que la aplicación se ejecute de forma sencilla e idéntica en máquinas virtuales, servidores bare metal y la nube pública.
  3. Tiempos de construcción más rápidos: La flexibilidad y portabilidad de los contenedores permite a los desarrolladores obtener ganancias de productividad antes inalcanzables.
  4. Confianza para los desarrolladores: Los desarrolladores pueden implementar sus aplicaciones con confianza, sabiendo que su aplicación o plataforma funcionará igual en todos los sistemas operativos.
  5. Colaboración reforzada: Múltiples equipos que utilizan contenedores pueden trabajar en partes individuales de una aplicación o servicio sin interrumpir el código empaquetado en otros contenedores.

Como cualquier arquitectura de TI, las aplicaciones nativas de la nube requieren seguridad. Los entornos de contenedores traen consigo una serie de desafíos de ciberseguridad dirigidos a sus imágenes, contenedores, hosts, tiempos de ejecución, registros y plataformas de orquestación, todos los cuales deben abordarse.

 

Comprender la superficie de ataque

Considere el extenso marco multicapa de Kubernetes. Cada capa -desde el código y los contenedores hasta los clústeres y los servicios en la nube de terceros- plantea un conjunto distinto de retos de seguridad.

La seguridad de las implementaciones de Kubernetes requiere asegurar la infraestructura subyacente (nodos, equilibradores de carga, etc.), los componentes configurables y las aplicaciones que se ejecutan en el clúster, lo que incluye mantener la postura de los nodos subyacentes y controlar el acceso a la API y a Kubelet. También es importante evitar que las cargas de trabajo maliciosas se ejecuten en el clúster y aislar la comunicación de las cargas de trabajo mediante estrictos controles de red.

Los tiempos de ejecución de los contenedores pueden estar sujetos a fallos de codificación que permitan la escalada de privilegios dentro de un contenedor. El servidor API de Kubernetes podría estar mal configurado, lo que daría a los atacantes la oportunidad de acceder a recursos que se supone que están bloqueados. Las vulnerabilidades que permiten ataques de escalada de privilegios podrían existir dentro de una aplicación en contenedores o dentro de los sistemas operativos que se ejecutan en los nodos Kubernetes.

Anatomía de la superficie de ataque del contenedor

Figura 1: Anatomía de la superficie de ataque del contenedor

En este sistema, un problema en una capa se amplifica cuando otra capa tiene un problema de seguridad.

Y los contenedores pueden, por supuesto, albergar vulnerabilidades. Al mismo tiempo, los contenedores pueden impedir la visibilidad. Imagine una única imagen insegura instanciada numerosas veces como contenedores independientes en ejecución. Lo que había sido una única grieta es ahora una vasta red de fisuras en la fortaleza.

El imperativo de mantener la visibilidad de las operaciones y la seguridad del sistema a medida que se implementan cada vez más contenedores resulta cada vez más difícil. Y eso es sólo mantener la visibilidad, uno de los innumerables objetivos.

La Figura 1, con detalles ampliados en la Tabla 1, ofrece un punto de partida para comprender la superficie de ataque de las aplicaciones en contenedores.

Es importante señalar que la representación está simplificada. En realidad, los atacantes tienen numerosos caminos que explorar en sus intentos de explotar las vulnerabilidades de las aplicaciones en contenedores. Defender esta pila tecnológica no es necesariamente más desalentador que asegurar otros entornos y tecnologías. La contenedorización simplemente presenta consideraciones de seguridad únicas que las organizaciones deben abordar para disponer de una infraestructura segura y resistente.

Superficie de ataque Vector de ataque Descripción Ejemplo
A través de la red Tráfico de red malicioso Explotar las vulnerabilidades de la red o errores de configuración para obtener acceso al entorno del contenedor. Escanear en busca de puertos abiertos y explotar errores de configuración para obtener acceso a los nodos de los trabajadores.
Configuración del host Sistema anfitrión mal configurado Aprovechamiento de errores de configuración en el sistema operativo anfitrión para obtener acceso al entorno del contenedor. Descubrir permisos de archivos inseguros para acceder a archivos sensibles, como archivos de configuración de contenedores.
Vulnerabilidades del host Vulnerabilidades de host sin parches Explotar vulnerabilidades en el sistema operativo anfitrión para obtener acceso al entorno del contenedor. Identificación y explotación de vulnerabilidades del kernel no parcheadas para obtener privilegios de root en los nodos trabajadores.
Vulnerabilidades de las aplicaciones host Vulnerabilidades de aplicaciones de host sin parchear Explotar las vulnerabilidades de las aplicaciones huésped para acceder al entorno del contenedor. Dirigirse a versiones antiguas de Docker con vulnerabilidades para obtener privilegios de root en los nodos trabajadores.
Vulnerabilidades y errores de orquestación de contenedores Orquestación de contenedores mal configurada Aprovechamiento de errores de configuración en el sistema de orquestación de contenedores para obtener acceso al entorno de contenedores. Aprovechamiento de políticas de control de acceso inseguras en clústeres Kubernetes para acceder a pods y servicios.
Imágenes de contenedor comprometidas Un atacante obtiene acceso al proceso de creación de imágenes de contenedores Comprometer el proceso de creación de imágenes de contenedor para inyectar código malicioso en las imágenes de contenedor. Aprovechamiento de vulnerabilidades en canales de CI/CD para inyectar código malicioso durante el proceso de construcción de la imagen de contenedor.
Vulnerabilidades y errores de configuración de los contenedores Vulnerabilidades de contenedores sin parches Explotar vulnerabilidades en el propio contenedor para obtener acceso al entorno del contenedor. Apuntando a vulnerabilidades no parcheadas en aplicaciones populares que se ejecutan dentro de contenedores para obtener acceso.
Escape de contenedores El atacante obtiene acceso privilegiado al contenedor Romper el aislamiento del contenedor y obtener acceso al sistema anfitrión. Explotar vulnerabilidades en el tiempo de ejecución del contenedor o abusar de errores de configuración del sistema anfitrión para obtener privilegios de root en el sistema anfitrión.

Tabla 1: Desglose de la superficie de ataque de los contenedores

Afortunadamente, cada capa de la superficie de ataque puede fortificarse mediante consideraciones de diseño y proceso, así como opciones de seguridad nativas y de terceros para reducir el riesgo de cargas de trabajo comprometidas. Necesitará una estrategia polifacética, pero nuestro objetivo en esta sección de la guía es proporcionarle precisamente eso.

Figura 2: La seguridad de contenedores abarca todo el ciclo de vida de desarrollo del software

Figura 2: La seguridad de contenedores abarca todo el ciclo de vida de desarrollo del software

 

Cómo proteger los contenedores

Los usuarios de contenedores necesitan asegurarse de que disponen de una seguridad full-stack diseñada específicamente para abordar la administración de vulnerabilidades, el cumplimiento de las normativas, la Protección en tiempo de ejecución y los requisitos de seguridad de la red de sus aplicaciones en contenedores.

Seguridad de la red de contenedores

Las aplicaciones en contenedores se enfrentan a los mismos riesgos que las aplicaciones de metal desnudo y las basadas en máquinas virtuales, como el criptojacking, el ransomware y el BotNet C2. La seguridad de la red de contenedores restringe de forma proactiva la comunicación no deseada y evita que las amenazas ataquen sus aplicaciones a través de multitud de estrategias. Los componentes clave de la seguridad de la red implican microsegmentación, control de acceso, cifrado y políticas para mantener un entorno seguro y resistente. La supervisión continua, el registro y las auditorías periódicas ayudan a identificar y rectificar las posibles brechas de seguridad, al igual que la aplicación oportuna de parches para mantener actualizadas sus plataformas e infraestructuras.

Mientras que las herramientas de seguridad por turnos ofrecen protección en tiempo de implementación contra las vulnerabilidades conocidas, los firewalls de nueva generación en contenedores protegen contra las vulnerabilidades desconocidas y sin parches. Al realizar una inspección profunda de paquetes de Capa 7 y escanear todo el tráfico permitido, identifican y evitan que el malware entre y se propague dentro del clúster y bloquean las conexiones salientes maliciosas utilizadas para la exfiltración de datos y los ataques de comando y control (C2). La microsegmentación basada en la identidad ayuda a restringir la comunicación entre aplicaciones en las capas 3 y 4.

Seguridad de contenedores en tiempo de ejecución

La seguridad en tiempo de ejecución nativa de la nube es el proceso de identificar nuevas vulnerabilidades en los contenedores en ejecución y asegurar la aplicación contra ellas. Las organizaciones que utilizan contenedores deben aprovechar la Protección en tiempo de ejecución mejorada para establecer las líneas de base de comportamiento en las que se basa la detección de anomalías. La seguridad en tiempo de ejecución puede identificar y bloquear procesos, archivos y comportamientos de red maliciosos que se desvíen de una línea de base.

Utilizando una estrategia de defensa en profundidad para prevenir los ataques de capa 7, como la OWASP Top 10, las organizaciones deberían implementar la protección en tiempo de ejecución con seguridad de aplicaciones web y API además de la seguridad de la red de contenedores mediante firewalls de nueva generación en contenedores.

Seguridad de registro de contenedores

Introducir la seguridad en la fase de construcción de los contenedores significa desplazarse hacia la izquierda en lugar de hacerlo de forma reactiva en el momento de la ejecución. La seguridad de la fase de construcción debe centrarse en eliminar las vulnerabilidades, el malware y el código inseguro. Dado que los contenedores se componen de bibliotecas, binarios y código de aplicación, es fundamental asegurar los registros de sus contenedores.

El primer paso para la seguridad de registro de contenedores es establecer un registro oficial de contenedores para su organización. Sin duda, ya existen uno o varios registros. Es tarea del equipo de seguridad encontrarlos y asegurarse de que están bien protegidos, lo que incluye establecer normas y protocolos de seguridad. El objetivo general de las normas de seguridad de registro de contenedores debe centrarse en la creación de imágenes de confianza. Para ello, DevOps y los equipos de seguridad deben alinearse en políticas que, ante todo, impidan que los contenedores se implementen desde registros que no sean de confianza.

Las intrusiones o vulnerabilidades en el registro proporcionan una apertura fácil para comprometer las aplicaciones en ejecución. La supervisión continua de los registros para detectar cambios en el estado de las vulnerabilidades sigue siendo un requisito básico de seguridad. Otros requisitos incluyen el bloqueo del servidor que aloja el registro y el uso de políticas de acceso seguro.

Seguridad de la orquestación de contenedores

La seguridad de la orquestación de contenedores es el proceso de promulgar medidas adecuadas de control de acceso para prevenir los riesgos derivados de las cuentas con privilegios excesivos, los ataques a través de la red y los movimientos laterales no deseados. Aprovechando la gestión de acceso a la identidad (IAM) y el acceso de privilegios mínimos, donde la actividad de Docker y Kubernetes está explícitamente en la lista blanca, los equipos de seguridad e infraestructura pueden garantizar que los usuarios solo ejecuten comandos basados en los roles adecuados.

Además, las organizaciones necesitan proteger las comunicaciones de pod a pod, limitar los daños impidiendo que los atacantes se desplacen lateralmente por su entorno y asegurar cualquier servicio frontend frente a los ataques.

Seguridad del sistema operativo (SO) del host

La seguridad del sistema operativo es la práctica de proteger su sistema operativo (SO) de un ciberataque. A medida que crece la tecnología de desarrollo de aplicaciones nativas de la nube, también lo hace la necesidad de seguridad del host.

El sistema operativo que aloja su entorno de contenedores es quizá la capa más importante en lo que respecta a la seguridad. Un ataque que comprometa el entorno del host podría dar a los intrusos acceso a todas las demás áreas de su pila. Por eso es necesario escanear los hosts en busca de vulnerabilidades, endurecerlos para que cumplan los puntos de referencia del CIS y protegerlos contra controles de acceso débiles (comandos Docker, comandos SSH, comandos sudo, etc.).

 

Soluciones de seguridad de contenedores

La seguridad de su entorno en contenedores requiere un enfoque multicapa para hacer frente a las vulnerabilidades y amenazas potenciales. En los últimos años, las soluciones de seguridad de contenedores en las que pueden confiar las organizaciones para salvaguardar sus aplicaciones e infraestructuras en contenedores a lo largo de las fases de desarrollo, implementación y tiempo de ejecución han adquirido mayor sofisticación y capacidades. Las herramientas de seguridad modernas minimizan eficazmente los riesgos de brechas y fugas de datos, fomentando el cumplimiento y manteniendo entornos seguros al tiempo que aceleran la adopción de DevSecOps .

Supervisión de contenedores

La capacidad de monitorear su registro en busca de vulnerabilidades es esencial para mantener la seguridad de contenedores. Dado que los desarrolladores están continuamente arrancando y sustituyendo contenedores, las herramientas de supervisión que permiten a los equipos de seguridad aplicar sellos de series temporales a los contenedores son fundamentales cuando se trata de determinar qué ha ocurrido en un entorno de contenedores.

Entre las herramientas más populares para la supervisión de contenedores se encuentran Prometheus, Grafana, Sumo Logic y Prisma Cloud. Prisma Cloud ofrece detección de amenazas en tiempo de ejecución y análisis de anomalías tanto para aplicaciones nativas de la nube como tradicionales. Aprovecha el aprendizaje automático y el análisis del comportamiento para identificar actividades sospechosas a lo largo de todo el ciclo de vida del contenedor, desde la creación hasta el tiempo de ejecución.

Herramientas de exploración de contenedores

Es necesario analizar continuamente los contenedores en busca de vulnerabilidades, tanto antes de implementarlos en un entorno de producción como después de haberlos sustituido. Es demasiado fácil para los desarrolladores incluir por error una biblioteca en un contenedor que tiene vulnerabilidades conocidas. También es importante recordar que casi a diario se descubren nuevas vulnerabilidades. Eso significa que lo que hoy puede parecer una imagen de contenedor perfectamente segura, mañana puede acabar siendo el vehículo a través del cual se distribuya todo tipo de malware. Por eso, mantener la confianza en la imagen de contenedor es un componente central de las herramientas de exploración de contenedores.

Entre las herramientas de escaneado de contenedores se encuentran Aqua Security, Anchore, Clair y Prisma Cloud. Prisma Cloud proporciona un escaneado de vulnerabilidades de capa profunda para imágenes de contenedor en registros y durante canales de CI/CD. Detecta vulnerabilidades conocidas, errores de configuración y malware, ayudándole a construir contenedores seguros desde el principio.

Herramientas de seguridad de la red de contenedores

Una vez implementados, los contenedores deben protegerse de los constantes intentos de robo de datos propios o de recursos informáticos. Los firewall de nueva generación en contenedores, la seguridad de aplicaciones web y API (WAAS)y las herramientas de microsegmentación inspeccionan y protegen todo el tráfico que entra y sale de los contenedores (de norte a sur y de este a oeste), garantizando una visibilidad y un control totales de la capa 7 sobre el entorno Kubernetes. Además, los firewalls para contenedores se adaptan dinámicamente a los rápidos cambios de tamaño y exigencias de la infraestructura de contenedores, garantizando la seguridad y el ancho de banda para las operaciones empresariales.

Las herramientas de seguridad de la red incluyen Calico, Flannel, plugins CNI (por ejemplo, Istio, Cilium), Kubernetes NetworkPolicy y Prisma Cloud. Prisma Cloud se integra con plataformas de orquestación de contenedores como Kubernetes para proporcionar detección de amenazas en la red. Asegura el tráfico este-oeste entre contenedores e impide el movimiento lateral no autorizado dentro de su entorno.

Motores políticos

Las herramientas modernas hacen posible que los equipos de seguridad en la nube definan políticas que determinen esencialmente a quién y a qué se permite acceder a cualquier microservicio dado. Las organizaciones necesitan un marco para definir esas políticas y asegurarse de que se mantienen de forma coherente en un entorno de aplicaciones de contenedores altamente distribuido.

Entre los motores de políticas más populares se encuentran Cilium, OPA Gatekeeper, Neutrino, Kubernetes Network Policy API y Prisma Cloud. Prisma Cloud aplica políticas de seguridad en todas sus implementaciones de contenedores, incluido el control de acceso a la red, la limitación de recursos y la firma de imágenes. Esto garantiza una postura de seguridad coherente y el cumplimiento de las normas de su organización.

Elegir las soluciones adecuadas

A la hora de seleccionar una solución para proteger su entorno de contenedores, tenga en cuenta las necesidades de su organización y las áreas de riesgo. ¿Necesita una detección de amenazas avanzada, una administración de vulnerabilidades o una aplicación estricta de las políticas? Evalúe la integración con sus herramientas e infraestructuras existentes. La integración perfecta con los conductos de desarrollo, las plataformas de orquestación y los sistemas SIEM está cambiando las reglas del juego.

Recuerde que una seguridad de contenedores eficaz va más allá de las herramientas individuales. La implementación de un enfoque por capas con supervisión continua, escaneado proactivo, políticas sólidas y seguridad de la red fiable mejorará significativamente la resistencia de su entorno en contenedores frente a las amenazas.

 

Preguntas frecuentes sobre la seguridad de contenedores

Un motor de políticas es un componente de software que permite a los equipos de DevSecOps definir, administrar y hacer cumplir las políticas que rigen el acceso y el uso de recursos, como aplicaciones, redes y datos. 

Los motores de políticas evalúan las solicitudes entrantes en función de reglas y condiciones predefinidas, tomando decisiones basadas en dichas políticas. Ayudan a garantizar el cumplimiento, mejorar la seguridad y mantener el control sobre los recursos. En el contexto de los entornos en contenedores, los motores de políticas desempeñan un papel crucial en el mantenimiento coherente de las políticas de acceso y seguridad en las aplicaciones distribuidas y los microservicios, ayudando a administrar y automatizar la aplicación de políticas en infraestructuras complejas y dinámicas.

Vulnerabilidades y Exposiciones Comunes (CVE) se refiere a un sistema estandarizado para identificar, catalogar y compartir información sobre vulnerabilidades y exposiciones de ciberseguridad conocidas públicamente. Las entradas CVE constan de un identificador único, una descripción y una puntuación de gravedad. El sistema, mantenido por la Corporación MITRE, tiene como objetivo facilitar el seguimiento, la administración y la comunicación de las vulnerabilidades a través de diferentes bases de datos, herramientas y organizaciones. Al proporcionar una referencia común para las vulnerabilidades, CVE ayuda a los profesionales de la seguridad, investigadores y desarrolladores a comprender mejor los riesgos potenciales, priorizar los esfuerzos de corrección y mejorar la postura general de seguridad del software y los sistemas.

La matriz ATT&CK de MITRE es una base de conocimientos exhaustiva y accesible a nivel mundial sobre las tácticas y técnicas de los ciberadversarios. Está desarrollado y mantenido por MITRE, una organización sin ánimo de lucro que gestiona centros de investigación y desarrollo patrocinados por el gobierno estadounidense. ATT&CK son las siglas en inglés de Tácticas, Técnicas y Conocimientos Comunes Adversarios.

La matriz sirve de marco para comprender, categorizar y documentar los distintos métodos que utilizan los ciberadversarios para comprometer sistemas, redes y aplicaciones. Está diseñado para ayudar a los equipos de seguridad, investigadores y organizaciones en las distintas fases del ciclo de vida de la ciberseguridad, incluidas la detección de amenazas, la prevención, la respuesta y la mitigación.

La matriz ATT&CK de MITRE está organizada en un conjunto de categorías, denominadas tácticas, que representan las diferentes etapas del ciclo de vida de un ataque de un adversario. Cada táctica contiene múltiples técnicas que los adversarios utilizan para lograr sus objetivos durante esa fase. Las técnicas se dividen a su vez en subtécnicas, que proporcionan información más detallada sobre métodos y herramientas específicos utilizados en los ciberataques.

Un contexto de seguridad es un conjunto de atributos o propiedades relacionados con la configuración de seguridad de un proceso, usuario u objeto dentro de un sistema informático. En el contexto de los entornos en contenedores, un contexto de seguridad define las configuraciones de seguridad y control de acceso para contenedores y pods, como los permisos de usuario y grupo, el acceso al sistema de archivos, los niveles de privilegio y otras configuraciones relacionadas con la seguridad.

Kubernetes le permite establecer contextos de seguridad a nivel de pod o a nivel de contenedor. Al configurar los contextos de seguridad, puede controlar los ajustes y restricciones de seguridad de sus aplicaciones en contenedores, garantizando que se ejecuten con los permisos adecuados y de forma segura.

Algunos de los atributos clave que pueden definirse dentro de un contexto de seguridad incluyen:

  • ID de usuario (UID) e ID de grupo (GID): Estas configuraciones determinan el usuario y el grupo con el que se ejecutará un contenedor o pod, controlando así el acceso a los recursos y las capacidades del sistema.
  • Control de la escalada de privilegios: Este ajuste determina si un proceso dentro de un contenedor puede obtener privilegios adicionales, como ejecutarse como usuario root. Al desactivar la escalada de privilegios, puede limitar el impacto potencial de un contenedor comprometido.
  • Acceso al sistema de archivos: Los contextos de seguridad le permiten definir cómo pueden acceder los contenedores al sistema de archivos, incluido el acceso de sólo lectura o el montaje de volúmenes con permisos específicos.
  • Capacidades de Linux: Estas configuraciones controlan las capacidades específicas que puede utilizar un contenedor, como los enlaces de red, la configuración de la hora del sistema o las tareas de administración.
  • Contexto SELinux: Los contextos de seguridad pueden utilizarse para definir el contexto SELinux para un contenedor o pod, aplicando políticas de control de acceso obligatorias y aislando aún más el contenedor del sistema anfitrión.

Configurando adecuadamente los contextos de seguridad en Kubernetes, puede mejorar la seguridad de sus aplicaciones en contenedores, aplicar el principio del menor privilegio y proteger su sistema en general de posibles riesgos de seguridad.

La seguridad del código se refiere a las prácticas y procesos implementados para garantizar que el código del software se escribe y mantiene de forma segura. Esto incluye identificar y mitigar las vulnerabilidades potenciales y seguir las mejores prácticas de codificación segura para prevenir los riesgos de seguridad. La seguridad del código abarca varios aspectos, como:

  • Pruebas estáticas de seguridad de las aplicaciones (SAST): Analizar el código fuente, el código byte o el código binario para identificar posibles vulnerabilidades de seguridad sin ejecutar el código.
  • Pruebas de seguridad de aplicaciones dinámicas (DAST): Probar aplicaciones en ejecución para identificar vulnerabilidades de seguridad simulando ataques y analizando el comportamiento de la aplicación.
  • Análisis de la composición del software: Escaneo y supervisión de las dependencias (bibliotecas, marcos de trabajo, etc.) utilizadas en su código para identificar vulnerabilidades conocidas y asegurarse de que están actualizadas.
  • Prácticas de codificación seguras: Siguiendo las directrices y las mejores prácticas (por ejemplo, el proyecto OWASP Top Ten) para escribir código seguro y evitar la introducción de vulnerabilidades.

Las políticas son normas y directrices de seguridad específicas que se utilizan para hacer cumplir los requisitos de seguridad dentro de un entorno Kubernetes, mientras que IaC es una práctica más amplia para la administración y el aprovisionamiento de recursos de infraestructura mediante código. Ambos pueden utilizarse juntos para mejorar la seguridad, la coherencia y la automatización dentro de su entorno Kubernetes. 

Con IaC, puede definir y administrar configuraciones de seguridad como políticas de red, reglas de firewall y controles de acceso como parte de las definiciones de su infraestructura. Por ejemplo, puede incluir políticas de red de Kubernetes, configuraciones de entrada y salida y políticas de control de acceso basado en roles (RBAC) en sus manifiestos de Kubernetes, que luego se administran como infraestructura como código.

Herramientas como Terraform, CloudFormation y los manifiestos de Kubernetes le permiten administrar los recursos de infraestructura y las configuraciones de seguridad de forma coherente y automatizada. Al incorporar medidas de seguridad en sus definiciones de IaC, puede mejorar la seguridad general de su entorno de contenedores y Kubernetes y garantizar el cumplimiento de las mejores prácticas y los requisitos de conformidad.

La política como código (PaC) consiste en codificar y administrar las políticas de infraestructura, el cumplimiento y las normas de seguridad como código dentro de un sistema controlado por versiones. PaC permite a las organizaciones automatizar la aplicación y auditoría de sus políticas, garantizando que su infraestructura se construye y mantiene de acuerdo con los requisitos exigidos. Al integrar estas políticas en el proceso "policy as code" o como parte de la creación de la infraestructura, las organizaciones pueden garantizar que sus herramientas se ajustan a las normas y mejores prácticas necesarias.

La disposición de las alertas es un método para especificar sus preferencias sobre cuándo desea que se le notifique una alerta o una anomalía. Los ajustes incluyen conservador, moderado y agresivo. Las preferencias se basan en la gravedad de los problemas: baja, media, alta. 

  • El conservador genera alertas de alta gravedad.
  • Moderada genera alertas de gravedad alta y media.
  • Agresivo genera alertas de gravedad alta, media y baja.
A través de la personalización de la configuración de anomalías, puede controlar el criterio en el que se generan las alertas para las políticas de anomalías. Los usuarios pueden modificar la configuración de anomalías para cambiar el umbral de entrenamiento del modelo, personalizar la disposición de las alertas y añadir listas de confianza de anomalías para suprimir las alertas procedentes de recursos de confianza.
Los umbrales del modelo de entrenamiento de anomalías se refieren a un método para definir diferentes umbrales para el entrenamiento de los modelos de detección de anomalías para UEBA y anomalías de red. Puede fijar el umbral del modelo de entrenamiento en bajo, medio o alto. Estos umbrales se utilizan para determinar el volumen (por ejemplo, un mínimo de 100 eventos de usuario) y la duración de los datos utilizados (por ejemplo, 30 días) para el entrenamiento de los modelos.
Una lista de confianza de anomalías es un método para suprimir recursos específicos para los que no desea generar alertas. Por ejemplo, si hay direcciones IP que utiliza para realizar pruebas de penetración, puede añadirlas a una lista de confianza para suprimir sus alertas.
Evento de auditoría se refiere a un conjunto de políticas basadas en RQL que supervisa los eventos de auditoría en su entorno en busca de posibles violaciones de las políticas. Usted crea políticas de auditoría para señalar eventos delicados como actividades de root o cambios de configuración que puedan poner potencialmente en riesgo su entorno de nube.
Las políticas de anomalías de red son políticas de anomalías que supervisan continuamente los registros de red en busca de tráfico de red malicioso mediante aprendizaje automático, además de cotejar las IP con AutoFocus. Las políticas de anomalías de la red pueden detectar diversas amenazas como ataques de botnet, ransomware y gusanos.
La autorización consiste en conceder a los usuarios autentificados acceso a los recursos o a las funciones del sistema basándose en políticas predefinidas. En Kubernetes, este concepto se conoce como control de acceso basado en roles (RBAC). RBAC concede a los grupos de usuarios, como los desarrolladores, permiso para interactuar con recursos o funciones específicos según los requisitos de su trabajo. La implementación de políticas de autorización de usuarios sólidas y coherentes garantiza que los usuarios sólo tengan los privilegios mínimos necesarios, lo que reduce el riesgo de acceso no autorizado y la escalada de privilegios.

El almacenamiento seguro de identidades hace referencia a soluciones y mecanismos diseñados para almacenar de forma segura información confidencial, como contraseñas, claves criptográficas, tokens de API y otros secretos, de forma altamente protegida y encriptada. Las cámaras acorazadas secretas y los módulos de seguridad de hardware (HSM) son dos ejemplos comunes de almacenamiento seguro de identidades.

Las cámaras acorazadas secretas son sistemas de almacenamiento seguros basados en software y diseñados para administrar, almacenar y proteger datos confidenciales. Emplean mecanismos de encriptación y control de acceso para garantizar que sólo los usuarios o aplicaciones autorizados puedan acceder a los secretos almacenados. Algunos ejemplos de bóvedas secretas son HashiCorp Vault, Azure Key Vault y AWS Secrets Manager. 

Características de la bóveda secreta

  • Cifrado en reposo y en tránsito
  • Control de acceso de grano fino
  • Registro de auditoría y supervisión
  • Rotación y versionado de claves
  • Integración con los sistemas existentes de administración de identidades y accesos (IAM)

Los módulos de seguridad de hardware (HSM) son dispositivos físicos dedicados, a prueba de manipulaciones y altamente seguros que salvaguardan y administran claves criptográficas, realizan operaciones de cifrado y descifrado y proporcionan un entorno seguro para ejecutar funciones criptográficas sensibles. Los HSM están diseñados para proteger contra ataques tanto físicos como lógicos, garantizando la integridad y confidencialidad de las claves almacenadas. Algunos ejemplos de HSM son SafeNet Luna HSM, nCipher nShield y AWS CloudHSM.

Características principales de los HSM

  • Certificación FIPS 140-2 de nivel 3 o superior (una norma del gobierno estadounidense para módulos criptográficos)
  • Generación, almacenamiento y administración seguros de claves
  • Generación de números aleatorios basada en hardware
  • Detección y protección contra manipulaciones
  • Compatibilidad con una amplia gama de algoritmos criptográficos

Tanto las cámaras acorazadas secretas como los HSM tienen como objetivo proporcionar una solución segura de almacenamiento de identidades, reduciendo el riesgo de accesos no autorizados, violaciones de datos y otros incidentes de seguridad. Elegir entre ellos depende de factores como los requisitos de seguridad, el presupuesto y las necesidades de integración.

UEBA hace referencia a un conjunto de políticas de anomalías para identificar la actividad desviada de los usuarios, como el inicio de sesión de un usuario desde una ubicación desconocida, los intentos sucesivos de inicio de sesión desde ubicaciones geográficas distantes y la creación de un número habitualmente elevado de recursos informáticos.