GNU/Linux >> Tutoriales Linux >  >> Panels >> Docker

Cómo usar Docker Scan para encontrar vulnerabilidades en sus imágenes

Docker ahora viene con soporte de escaneo de seguridad integrado. Puede escanear localmente las imágenes de su contenedor para identificar posibles vulnerabilidades. Esto acelera el ciclo de desarrollo al proporcionar comentarios más inmediatos en comparación con las canalizaciones de CI y los servicios en la nube.

El scan El comando está disponible de forma predeterminada en la versión 20.10 de Docker. Docker se asoció con Snyk para llevar escaneos de seguridad a su CLI. Aparecerá una solicitud de consentimiento única la primera vez que ejecute el comando. Escriba "y" y presione enter para confirmar la integración de Snyk.

Además de dar su consentimiento a Snyk, el escaneo de contenedores también requiere un inicio de sesión de Docker Hub. Ejecute docker login para proporcionar su nombre de usuario y contraseña antes de comenzar a escanear.

Intente ejecutar docker scan --version para comprobar su instalación. Verá el número de versión del scan enchufar. El resultado también nombra el proveedor de escaneo de seguridad que scan utilizará (actualmente Snyk). Se podrían agregar proveedores adicionales en el futuro.

Cómo funcionan los escaneos

docker scan acepta un nombre de imagen como parámetro. Escaneará la imagen contra la base de datos Snyk de vulnerabilidades de contenedores. Se cubre una amplia gama de problemas, que van desde imágenes base desactualizadas hasta exploits contra bibliotecas de software de código abierto que está utilizando.

Snyk puede mostrarle el Dockerfile línea que introduce una vulnerabilidad. Esto le brinda un punto de partida inmediato a medida que resuelve cada problema. Los resultados aparecerán directamente en su terminal después de que se complete el escaneo.

La base de datos de Snyk se actualiza continuamente con nuevas vulnerabilidades. No asuma que una imagen que pasa un escaneo una vez siempre obtendrá el mismo resultado en el futuro. Es una buena práctica escanear imágenes regularmente para que sus cargas de trabajo permanezcan seguras.

Escaneando una imagen

La forma más sencilla de escanear una imagen es pasar una etiqueta a docker scan :

docker scan hello-world:latest

El escaneo puede tardar unos segundos en completarse. Las imágenes más grandes necesitarán más tiempo. Los resultados se mostrarán en su terminal una vez que estén disponibles. Arriba se muestra un ejemplo de salida de un escaneo exitoso.

Si bien obtener el visto bueno puede ser reconfortante, el docker scan la salida es mucho más interesante cuando se detectan vulnerabilidades. Aquí hay un escaneo que encontró algunos problemas.

Cada problema tiene una breve descripción, una indicación de su gravedad y un enlace para obtener más información en el sitio web de Snyk.

Análisis más avanzados

docker scan tiene mucha más funcionalidad que el ejemplo básico anterior. Puede personalizar el comportamiento del análisis utilizando varias banderas.

Podría decirse que la bandera más útil es --file . Esto toma la ruta al Dockerfile de la imagen . Cuando proporciona a Snyk un Dockerfile, puede realizar un análisis más detallado en función de su contenido. Algunas funciones de escaneo, como la detección de imágenes base obsoletas, solo están disponibles cuando proporciona el Dockerfile de su imagen. .

docker scan hello-world:latest --file Dockerfile

Esto producirá un resultado similar al siguiente:

Tested 100 dependencies for known issues, found 50 issues.

According to our scan, you are currently using the most secure version of the selected base image.

La última línea indicará si su imagen base, el FROM instrucción en su Dockerfile —es seguro. Se mostrarán sugerencias de etiquetas alternativas si la imagen está desactualizada o contiene vulnerabilidades que ya se han resuelto.

A veces, es posible que desee ejecutar un análisis que ignore las vulnerabilidades en su imagen base. Pase el --exclude-base bandera para lograrlo. Esto es útil si la imagen base contiene muchos problemas de baja gravedad y no hay una ruta de actualización disponible. Excluir el ruido lo ayuda a concentrarse en los problemas que se pueden resolver dentro de las capas de su imagen.

Personalizar el resultado del escaneo

docker scan acepta algunas opciones de formato diferentes. Hasta ahora, hemos visto la salida predeterminada. Presenta problemas como una lista legible por humanos dentro de su terminal.

Pasando el --json flag indica al comando que emita el JSON sin procesar que recibe. Esto es ideal cuando usa docker scan mediante programación en scripts de CI o herramientas de terceros. Puede procesar el JSON usted mismo para extraer solo la información que necesita.

Otra opción es --dependency-tree . Esto emitirá una vista de árbol de las dependencias de su imagen encima de la lista de vulnerabilidades. Esto puede ayudarlo a visualizar cómo se obtienen los diferentes paquetes, lo que le permite identificar dónde surgen los problemas.

Finalmente, puede usar el --severity marca para filtrar vulnerabilidades no deseadas. Usar low , medium , o high para indicar la gravedad que le interesa. El comando solo informará de las vulnerabilidades clasificadas en el nivel dado o por encima de él.

Limitaciones

docker scan actualmente carece de soporte para las distribuciones Alpine Linux. Además, la versión 0.7 del complemento tiene un error grave que hace que los escaneos locales fallen con un error de "imagen no encontrada". v0.7 solo puede escanear imágenes que existen en Docker Hub y otros registros públicos. El problema se solucionó en v0.8, pero v0.7 sigue siendo la versión que se distribuye ampliamente con los lanzamientos de Docker en Linux.

Más allá de los problemas técnicos, el servicio Snyk impone estrictos límites de frecuencia en el uso de docker scan . Puede realizar 10 escaneos gratis cada mes. Si inicia sesión con Snyk, eso aumenta a 200 escaneos por mes.

Ejecute docker scan --login para obtener su URL de inicio de sesión única. Cópielo en su navegador y siga las indicaciones para autenticarse. Puede iniciar sesión con Docker Hub o con varios proveedores externos. Una vez que haya iniciado sesión, aparecerá un botón "Autenticar". Haga clic aquí para volver a su terminal. Debería ver el mensaje "Snyk ahora está listo para usarse".

Resumen

El escaneo de imágenes incorporado de Docker hace que las vulnerabilidades de los contenedores sean más fáciles de descubrir y resolver. Cualquier desarrollador con acceso a la CLI de Docker y una imagen de contenedor ahora puede buscar vulnerabilidades sin tener que ingresar a un registro.

Los escaneos regulares lo ayudan a proteger sus contenedores contra amenazas potenciales. Las imágenes base desactualizadas y las vulnerabilidades en las dependencias afectan significativamente su postura de seguridad, pero pueden pasar desapercibidas fácilmente. docker scan le brinda mayor confianza en sus contenedores al revelar problemas que de otro modo habría pasado por alto.


Docker
  1. Cómo usar BUSCAR en Linux

  2. Cómo utilizar su servidor dedicado

  3. Cómo usar un Dockerfile para crear una imagen de Docker

  4. Cómo configurar docker para usar proxy

  5. ¿Cómo usar imágenes acoplables locales con Minikube?

Cómo firmar sus imágenes Docker para aumentar la confianza

Cómo usar Docker Scan para encontrar vulnerabilidades en sus imágenes

Cómo limpiar y eliminar imágenes de Docker

Cómo crear imágenes de Docker en una canalización de GitLab CI

Cómo usar Docker Commit para cambiar imágenes de contenedores

Cómo instalar y usar Docker en su sistema Linux