Skip to main content

La nueva y mejorada CLI de Snyk Container

Escrito por
container scans

29 de octubre de 2020

0 minutos de lectura

Cada vez más personas usan contenedores para empaquetar sus aplicaciones, por lo que es cada vez más importante identificar las vulnerabilidades antes de ponerlas en producción.

Desde hace más de un año, Snyk permite analizar tus imágenes de Docker con nuestra CLI. Con la versión más reciente, mejoramos la experiencia de uso para quienes trabajan con contenedores y agregamos funciones útiles para usuarios avanzados.

Un nuevo subcomando para contenedores

Actualmente, puedes analizar imágenes de contenedores con la opción --docker en snyk test o snyk monitor. Esto funciona muy bien para muchos usuarios y no vamos a cambiar ese comportamiento. Sin embargo, también tiene algunas desventajas, sobre todo al consultar la ayuda en línea.

Si solo te interesa analizar tus imágenes de contenedores, tienes que revisar muchas opciones para determinar cuáles se aplican. Por eso, incorporamos un nuevo subcomando a snyk. Ahora puedes analizar tus imágenes de contenedores en busca de vulnerabilidades con:

snyk container test <your-image>

Si quieres enviar esa información a Snyk para que podamos mostrarla y avisarte si se encuentran nuevas vulnerabilidades, también está disponible el comando monitor.

snyk container monitor <your-image>

Snyk facilita el análisis de tus imágenes, estén donde estén. Si la imagen solo está en tu daemon local de Docker, la analizaremos allí. Si está disponible en un registro remoto, la descargaremos y la analizaremos. ¿No tienes Docker instalado en la máquina donde haces el análisis? No hay problema. Hay muchos flujos de trabajo distintos para los contenedores, y Snyk facilita el análisis de tus imágenes, sea cual sea tu forma de trabajar.

Lo reiteramos: la opción anterior --docker seguirá disponible y funcionará como alias del nuevo comando, incluida la nueva funcionalidad. Nos tomamos muy en serio la compatibilidad con versiones anteriores y no queremos interrumpir ninguna automatización que tengas con nuestras herramientas de CLI.

Ayuda específica para contenedores

Con el nuevo subcomando container, la CLI incluye información de ayuda específica para Snyk Container. Así puedes ver fácilmente cómo usar la CLI: desde especificar un Dockerfile utilizado para crear la imagen hasta excluir las vulnerabilidades detectadas en la imagen base o informar solo sobre vulnerabilidades de alta gravedad.

$ snyk container --help
Usage:

  $ snyk container [command] [options] [image]

Find vulnerabilities in your container images.

Commands:

  test ............... Test for any known vulnerabilities.
  monitor ............ Record the state of dependencies and any
                       vulnerabilities on snyk.io.

Options:

  --exclude-base-image-vulns .............. Exclude from display base image vulnerabilities.
  --file=<string> ......................... Include the path to the image's Dockerfile for more detailed advice.
  -h, --help
  --platform=<string> ..................... For multi-architecture images, specify the platform to test. Options are:
                                            [linux/amd64, linux/arm64, linux/riscv64, linux/ppc64le, linux/s390x,
                                            linux/386, linux/arm/v7 orlinux/arm/v6]
  --json  .................................. Return results in JSON format.
  --json-file-output=<string>
                       (test command only)
                       Save test output in JSON format directly to the specified file, regardless of whether or not you use the `--json` option.
                       This is especially useful if you want to display the human-readable test output via stdout and at the same time save the JSON format output to a file.
  --sarif ................................. Return results in SARIF format.
  --sarif-file-output=<string>
                       (test command only)
                       Save test output in SARIF format directly to the specified file, regardless of whether or not you use the `--sarif` option.
                       This is especially useful if you want to display the human-readable test output via stdout and at the same time save the SARIF format output to a file.
  --print-deps ............................ Print the dependency tree before sending it for analysis.
  --project-name=<string> ................. Specify a custom Snyk project name.
  --policy-path=<path> .................... Manually pass a path to a snyk policy file.
  --severity-threshold=<low|medium|high>... Only report vulnerabilities of provided level or higher.

Examples:

  $ snyk container test alpine
  $ snyk container test --platform=linux/arm64 debian
  $ snyk container monitor alpine
  $ snyk container test docker-archive:archive.tar
  $ snyk container test oci-archive:archive.tar

Pro tip: use `snyk container test --file=Dockerfile` for more detailed advice.

For more information see https://snyk.io

Pro tip: use `snyk container test --file=Dockerfile` for more detailed advice.

For more information see https://snyk.io

Nuevas funcionalidades

El nuevo subcomando snyk container también incluye algunas funciones nuevas para usuarios avanzados.

Si trabajas directamente con archivos de contenedores, en lugar de imágenes, ahora puedes analizarlos con Snyk para detectar vulnerabilidades.

Por ejemplo, puedes guardar un archivo desde Docker y analizar el archivo resultante de esta manera:

docker save ubuntu:18.04 -o ubuntu.tar
snyk container test docker-archive:ubuntu.tar

Si trabajas directamente con imágenes OCI estándar (Open Container Initiative), también puedes analizarlas.

snyk container test oci-archive:ubuntu.tar

Por último, Snyk ahora permite analizar imágenes Distroless. Distroless es un proyecto interesante de Google que produce imágenes base de contenedores basadas en paquetes de Debian, pero sin shell ni administrador de paquetes instalado, para mejorar la seguridad. Así que ahora puedes analizar con Snyk las imágenes base Distroless o las imágenes que hayas creado con ellas, como de costumbre.

$ snyk container test gcr.io/distroless/base | head                                                                                                           
Testing gcr.io/distroless/base...

✗ Low severity vulnerability found in openssl/libssl1.1
  Description: Cryptographic Issues
  Info: https://snyk.io/vuln/SNYK-DEBIAN9-OPENSSL-374708
  Introduced through: openssl/libssl1.1@1.1.0l-1~deb9u1, openssl@1.1.0l-1~deb9u1
  From: openssl/libssl1.1@1.1.0l-1~deb9u1
  From: openssl@1.1.0l-1~deb9u1 > openssl/libssl1.1@1.1.0l-1~deb9u1
  From: openssl@1.1.0l-1~deb9u

Próximos pasos

Siempre trabajamos para mejorar la experiencia de uso de Snyk, ya sea en nuestra herramienta de CLI, el servicio de Snyk, nuestra API o nuestras distintas integraciones con herramientas para desarrolladores. El nuevo comando snyk container debería facilitar el uso de Snyk cuando te enfocas en los contenedores, y pronto incorporaremos más funciones útiles e interesantes a esta interfaz.

Empieza con Capture the Flag

Aprende a resolver desafíos de Capture the Flag viendo nuestro taller virtual introductorio a pedido.