¿Son seguros su contenedor y su imagen Docker?
Averigüémoslo
Los piratas informáticos se han vuelto muy activos en los últimos años. Incluso grandes organizaciones como Facebook, Google y Yahoo han sido víctimas de ataques en los que han perdido millones de dólares. Por eso la seguridad de una aplicación es lo más importante hoy en día en cualquier organización.
Hoy en día, muchas de estas aplicaciones se ejecutan dentro de contenedores, ya que son fácilmente escalables, rentables, de despliegue más rápido, ocupan menos espacio de almacenamiento y utilizan los recursos mucho mejor que las máquinas virtuales. Por lo tanto, el factor de seguridad de estos contenedores es muy crucial. Una imagen de contenedor se compone de capas, y para conocer realmente la postura de vulnerabilidad de una imagen, es necesario acceder a cada capa. Las imágenes de contenedor más pequeñas tienen menos posibilidades de quedar expuestas a posibles vulnerabilidades.
La contenedorización es una de las etapas centrales del proceso DevOps en la que la seguridad debe considerarse seriamente. Una imagen de contenedor puede tener muchos errores y vulnerabilidades de seguridad, lo que da una buena oportunidad a los piratas informáticos de acceder a la aplicación o a los datos presentes en el contenedor, con un coste millonario para la empresa.
De ahí que sea crucial escanear y auditar las imágenes y los contenedores con regularidad. DevSecOps desempeña un papel importante a la hora de añadir seguridad a los procesos DevOps, incluido el escaneado de imágenes y contenedores en busca de errores y vulnerabilidades.
Un escáner de seguridad de contenedores le ayudará a encontrar todas las vulnerabilidades dentro de sus contenedores y a monitorizarlos regularmente contra cualquier ataque, problema o un nuevo fallo.
Exploremos las opciones disponibles.
Clair
Clair es un proyecto de código abierto que ofrece seguridad estática y escaneo de vulnerabilidades para contenedores docker y de aplicaciones (appc).
Se trata de un motor de análisis basado en API que busca fallos de seguridad en los contenedores capa por capa. Puede construir servicios utilizando Clair, que puede monitorizar sus contenedores continuamente en busca de cualquier vulnerabilidad en los contenedores. Le notifica sobre una amenaza potencial en el contenedor. Le notifica sobre una amenaza potencial en el contenedor basándose en la base de datos de Vulnerabilidades y Exposiciones Comunes (CVE) y bases de datos similares.
Si identifica alguna amenaza o problema que ya esté en la Base de Datos Nacional de Vulnerabilidades (NVD), recuperará los detalles y los proporcionará en el informe.
Características de Clair:
- Analiza las vulnerabilidades existentes y evita que se introduzcan en el futuro.
- Proporciona una API REST para la integración con otras herramientas
- Envía una notificación cuando identifica alguna vulnerabilidad
- Proporciona un informe en formato HTML con todos los detalles del escaneado
- Actualiza los metadatos a intervalos regulares
Anchore
Anchore es un proyecto de código abierto para el análisis en profundidad de imágenes Docker.
También certifica una imagen Docker indicando si es segura o no. El motor Anchore puede ejecutarse como independiente o en plataformas de orquestación como Kubernetes, Rancher, Amazon ECS, Docker Swarm. Anchore también está disponible en plugins de Jenkins para explorar la tubería CI/CD.
Si sólo necesita un escáner de Kubernetes, eche un vistazo a estas herramientas para encontrar fallos de seguridad en Kubernetes.
Necesita enviar una imagen docker a anchore, que analizará y le proporcionará los detalles si tiene alguna vulnerabilidad. También puede utilizar su política de seguridad personalizada para evaluar una imagen en anchore.
Puede acceder al motor anchore a través de CLI o REST APIs.
Características de anchore:
- Proporciona una inspección profunda de imágenes de contenedores, paquetes de SO y artefactos de software como archivos jar
- Se integra a la perfección con su canalización CI/CD para encontrar brechas de seguridad
- Define y aplica políticas para evitar la construcción y el despliegue de imágenes peligrosas
- Compruebe que sólo hay imágenes certificadas y seguras antes de desplegarlas en una plataforma de orquestación.
- Personalice las comprobaciones de vulnerabilidades, archivos de configuración, secretos de imagen, puertos expuestos, etc.
Dagda
Dagda es una herramienta de código abierto para el análisis estático de vulnerabilidades conocidas como troyanos, malware, virus, etc. en imágenes Docker y contenedores. Utiliza el motor antivirus ClamAV para detectar dichas vulnerabilidades.
Primero importa todas las vulnerabilidades conocidas de CVE, Red Hat Security Advisories (RHSA), Red Hat Bug Advisories (RHBA), Bugtraq IDs (BID) y la base de datos Offensive Security a una MongoDB. A continuación, se analizan las imágenes y los contenedores correspondientes a las vulnerabilidades importadas.
Características de Dagda:
- Soporta múltiples imágenes Linux (CentOS, Ubuntu, OpenSUSE, Alpine, etc.)
- Analiza las dependencias de java, python node js, javascript, ruby, PHP
- Se integra con Falco para monitorizar los contenedores en ejecución
- Almacena cada informe de análisis en MongoDB para mantener el historial de cada imagen Docker o contenedor
Falco
Falco es un proyecto de código abierto y un motor de detección de amenazas para Kubernetes. Es una herramienta de seguridad en tiempo de ejecución para detectar actividades anómalas en hosts y contenedores que se ejecutan en Kubernetes. Detecta cualquier comportamiento inesperado en su aplicación y le alerta sobre las amenazas en tiempo de ejecución.
Utiliza una sintaxis similar a la de tcpdump para construir las reglas y aprovecha librerías como libscap y libinsp que tienen la capacidad de entrar y extraer datos de su servidor API Kubernetes o de su entorno en tiempo de ejecución de contenedores.
Después, puede utilizar esos metadatos para obtener información sobre pods y etiquetas y espacios de nombres para ir realmente y crear reglas específicas para un espacio de nombres concreto o una imagen de contenedor concreta. Las reglas se centran en las llamadas al sistema y qué llamadas al sistema están permitidas y no permitidas en el sistema.
Seguridad Aqua
AquaSecurity protege las aplicaciones que se construyen utilizando tecnologías nativas de la nube como los contenedores. Proporciona escaneado de vulnerabilidades y gestión para orquestadores como Kubernetes.
Es una plataforma de seguridad integral para garantizar que las aplicaciones que se ejecutan en los contenedores son seguras y se ejecutan en un entorno seguro.
A medida que los desarrolladores construyen imágenes, disponen de un conjunto de tecnologías y bibliotecas para construir sus imágenes. Aqua security les permite escanear esas imágenes para garantizar que están limpias, que no tienen ninguna vulnerabilidad conocida en ellas, que no tienen contraseñas o secretos conocidos, y ningún tipo de amenaza a la seguridad que pueda hacer que esa imagen sea vulnerable.
Si se encuentra alguna vulnerabilidad, aqua security informa de ello al desarrollador y le recomienda lo que debe hacer para corregir esas imágenes vulnerables.
Aqua Security también dispone de tecnologías para garantizar que no sea atacado o penetrado con ninguna amenaza de seguridad una vez que el contenedor se ejecute en producción.
Banco Docker
Docker Bench Security es un script con múltiples pruebas automatizadas para comprobar las mejores prácticas para desplegar contenedores en producción.
Para ejecutar docker bench security, necesita tener Docker 1.13.0 o posterior.
Necesita ejecutar el siguiente comando para ejecutar docker bench security.
docker run -it --net host --pid host --userns host --cap-add audit_control \
-e DOCKER_CONTENT_TRUST=$DOCKER_CONTENT_TRUST \
-v /var/lib:/var/lib \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /usr/lib/systemd:/usr/lib/systemd \
-v /etc:/etc --label docker_bench_security \
docker/docker-bench-security
Después de esto, el script se ejecutará, y compartirá los detalles de INFO
, WARN
, PASS
. Después de ejecutar el script, puede comprobar todos los mensajes de advertencia y hacer las correcciones.
Harbor
Harbor es un registro nativo en la nube de confianza y de código abierto que proporciona políticas de seguridad y control de acceso basado en roles (RBAC). Almacena, firma y escanea las imágenes Docker en busca de vulnerabilidades. Puede instalarse en un clúster Kubernetes o en cualquier otro sistema que admita Docker.
Características del puerto:
- Fácilmente desplegable mediante Docker Compose
- Proporciona seguridad y análisis de vulnerabilidades
- Firma y validación de contenidos multi-tenant
- Integración de identidades y control de acceso basado en roles
- API e interfaz de usuario extensibles
- Replicación de imágenes entre instancias
- Admite LDAP/AD y OIDC para la gestión de usuarios y la autenticación de usuarios
JFrog Xray
JFrog Xray es una herramienta de análisis de artefactos universal y de seguridad continua de código abierto.
Con JFrog Xray, puede analizar continuamente sus artefactos y dependencias en busca de vulnerabilidades de seguridad y problemas de cumplimiento de licencias.
Como solución universal de análisis de artefactos, Xray identifica proactivamente las vulnerabilidades de seguridad y los riesgos de licencia. Antes de manifestarse en producción, Xray se integra de forma nativa con JFrog Artifactory proporcionando visibilidad en todos los metadatos del artefacto, incluido el estado de seguridad en una única pantalla.
La base de datos de nuevas vulnerabilidades y tecnologías de JFrog Xray se amplía constantemente, lo que le permite hacer mejores juicios técnicos con menos concesiones. Comprueba todos sus componentes con su creciente base de datos de nuevas vulnerabilidades y le alerta de nuevos problemas incluso después de la publicación.
Admite todos los tipos de paquetes y utiliza un escaneado recursivo profundo para revisar todas las capas y dependencias subrayadas, incluso las empaquetadas en imágenes Docker y archivos zip. JFrog Xray también crea un gráfico de la estructura de sus artefactos y dependencias y un análisis del impacto de las vulnerabilidades y problemas de licencia descubiertos
Qualys
Qualyscontainer security es una herramienta utilizada para descubrir, rastrear y proteger continuamente los entornos de contenedores. Explora en busca de vulnerabilidades dentro de imágenes o contenedores en la tubería DevOps y despliegues en entornos en la nube o locales.
Qualys proporciona una versión gratuita de la aplicación de seguridad de contenedores para dar a los usuarios una idea de lo que puede ofrecer. Le ofrece una vista de las imágenes y los contenedores que se ejecutan en el entorno. Si desea analizarlos, deberá contratar su suscripción de pago.
También proporciona seguridad en tiempo de ejecución para los contenedores mediante un cortafuegos a nivel de función para los contenedores. Proporciona una visibilidad en profundidad del comportamiento de los contenedores y protege la imagen y los contenedores en ejecución mediante la capa Qualys CRS (seguridad en tiempo de ejecución de contenedores).
Docker Scan
Aún en fase beta, Docker Scan aprovecha el motor Synk y es capaz de escanear el archivo Dockerfile local, las imágenes y sus dependencias para encontrar vulnerabilidades conocidas. Puede ejecutar Docker
Scan desde Docker Desktop.
docker scan mydockerimage
Grype
En estos días, la seguridad de los contenedores es un tema popular. El escáner para explorar la seguridad de los contenedores es una de las muchas herramientas que puede utilizar para ayudar a asegurar sus contenedores. Grype es un escáner de seguridad para contenedores utilizado para identificar vulnerabilidades en contenedores que operan en cualquier plataforma.
Se puede encontrar en GitHub y es de código abierto. Tanto una aplicación web como una herramienta de línea de comandos están disponibles para Grype.
Esta herramienta de escáner de vulnerabilidades de contenedores de código abierto ayuda a los equipos de DevOps a encontrar y resolver fallos de seguridad en sus entornos de ejecución e imágenes de contenedores.
Comprueba los contenedores en ejecución en busca de posibles fallos de seguridad y escanea las imágenes Docker públicas y privadas en busca de vulnerabilidades. Grype puede utilizarse solo o como complemento de conocidos instrumentos de DevOps como Jenkins, CircleCI y Travis CI.
Características principales
- Compatible con todos los sistemas operativos populares, incluidos Redhat, Oracle, Ubuntu, CentOS, etc.
- Instalación sencilla y compatibilidad con varios lenguajes, como Java, Ruby, PHP y DotNet
- Acepta los formatos de entrada Syft, SPDX y CycloneDX SBOM
- Su formato de salida puede definirse mediante plantillas Go
- Admite varias fuentes para crear bases de datos de vulnerabilidades con el fin de aumentar la fiabilidad del cotejo de vulnerabilidades.
Grype está ganando popularidad porque es fácil de instalar y puede utilizarse en cualquier plataforma que admita contenedores.
Dado que existen numerosas formas de atacar un contenedor, contar con un sólido escáner de seguridad es esencial. De ahí que un nuevo escáner de seguridad de contenedores, Grype, pueda utilizarse para encontrar vulnerabilidades en los contenedores y prevenir ataques.
Conclusión
Ahora ya sabe que existen escáneres de seguridad de contenedores, así que no tiene excusa. Siga adelante y pruebe a ver cómo pueden ayudarle a mantener su aplicación en contenedores segura y protegida.