Skip to main content

La CLI Snyk Container, nouvelle et améliorée

Écrit par
container scans

29 octobre 2020

0 minutes de lecture

Alors que vous êtes de plus en plus nombreux à adopter les conteneurs pour empaqueter vos applications, il devient essentiel d’y détecter les vulnérabilités avant leur déploiement.

Depuis plus d’un an, Snyk vous permet de tester vos images Docker à l’aide de notre CLI. Avec sa dernière version, nous améliorons l’expérience des utilisateurs qui travaillent avec des conteneurs et ajoutons quelques fonctionnalités utiles pour les utilisateurs avancés.

Une nouvelle sous-commande dédiée aux conteneurs

Jusqu’à présent, pour tester des images de conteneurs, vous utilisiez l’option --docker avec snyk test ou snyk monitor. Cette méthode fonctionne très bien pour de nombreux utilisateurs, et nous ne la supprimerons pas. Elle présente toutefois quelques inconvénients, notamment lors de la consultation de l’aide intégrée.

Si vous souhaitez simplement tester vos images de conteneurs, vous devez parcourir de nombreuses options pour déterminer lesquelles s’appliquent. Nous introduisons donc une nouvelle sous-commande pour snyk. Vous pouvez désormais tester vos images de conteneurs à la recherche de vulnérabilités avec la commande suivante :

snyk container test <your-image>

Pour transmettre ces informations à Snyk afin que nous puissions les afficher et vous avertir si de nouvelles vulnérabilités sont détectées, vous pouvez également utiliser la commande monitor.

snyk container monitor <your-image>

Snyk vous permet de tester facilement vos images, où qu’elles se trouvent. Si l’image se trouve uniquement dans votre daemon Docker local, nous la testerons à cet endroit. Si elle est disponible dans un registre distant, nous la téléchargerons pour la tester. Docker n’est pas installé sur la machine utilisée pour les tests ? Aucun problème. Snyk s’adapte facilement aux différents workflows liés aux conteneurs et vous permet de tester vos images comme vous le souhaitez.

Rappel : l’option précédente --docker sera conservée et fera simplement office d’alias pour la nouvelle commande, avec ses nouvelles fonctionnalités. Nous prenons la rétrocompatibilité au sérieux et ne voulons pas perturber les automatisations que vous avez peut-être mises en place avec nos outils CLI.

Une aide spécifique aux conteneurs

Avec la nouvelle sous-commande container, vous pouvez consulter directement dans la CLI une aide spécifique aux conteneurs. Vous voyez ainsi immédiatement comment utiliser la CLI : spécifier un Dockerfile utilisé pour créer l’image, exclure les vulnérabilités détectées dans l’image de base ou ne signaler que les vulnérabilités de gravité élevée.

$ 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

De nouvelles fonctionnalités

La nouvelle sous-commande snyk container apporte également de nouvelles fonctionnalités aux utilisateurs expérimentés.

Si vous travaillez directement avec des archives de conteneurs plutôt qu’avec des images, vous pouvez désormais les tester avec Snyk pour détecter les vulnérabilités.

Par exemple, vous pouvez enregistrer une archive depuis Docker, puis tester le fichier d’archive obtenu comme ceci :

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

Si vous travaillez directement avec des images OCI standard (Open Container Initiative), vous pouvez également les tester.

snyk container test oci-archive:ubuntu.tar

Enfin, Snyk prend désormais en charge le test des images Distroless. Distroless est un projet intéressant de Google qui produit des images de base de conteneurs à partir de paquets Debian, sans shell ni gestionnaire de paquets, afin d’améliorer la sécurité. Vous pouvez donc désormais tester avec Snyk, comme d’habitude, les images de base Distroless ou les images que vous avez créées à partir de celles-ci.

$ 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

Pour aller plus loin

Nous cherchons constamment à améliorer l’expérience utilisateur de Snyk, que ce soit dans notre outil CLI, le service Snyk, notre API ou nos différentes intégrations aux outils de développement. La nouvelle commande snyk container devrait faciliter l’utilisation de Snyk lorsque vous travaillez avec des conteneurs. D’autres fonctionnalités intéressantes et utiles viendront bientôt enrichir cette interface.

Lancez-vous dans les compétitions Capture The Flag

Apprenez à résoudre des défis Capture The Flag en regardant à la demande notre atelier virtuel d’initiation.