Skip to main content

Die neue und verbesserte Snyk Container CLI

Artikel von
container scans

29. Oktober 2020

0 Min. Lesezeit

Da immer mehr von Ihnen Container zum Verpacken Ihrer Anwendungen nutzen, wird es immer wichtiger, Schwachstellen darin zu erkennen, bevor Sie sie ausliefern.

Seit über einem Jahr können Sie Ihre Docker-Images mit unserer CLI testen. Mit der neuesten CLI-Version verbessern wir die Nutzererfahrung für Container-Nutzer und ergänzen weitere nützliche Funktionen für fortgeschrittene Nutzer.

Ein neuer Container-Unterbefehl

Derzeit testen Sie Container-Images mit dem Flag --docker entweder bei snyk test oder bei snyk monitor. Für viele Nutzer funktioniert das hervorragend, und wir werden dieses Verhalten nicht ändern. Es hat jedoch auch einige Nachteile, insbesondere bei der Anzeige der Inline-Hilfe.

Wenn Sie lediglich Ihre Container-Images testen möchten, müssen Sie sich durch zahlreiche Optionen arbeiten, um herauszufinden, welche davon relevant sind. Deshalb führen wir einen neuen Unterbefehl für snyk ein. Ab sofort können Sie Ihre Container-Images mit diesem Befehl auf Schwachstellen testen:

snyk container test <your-image>

Wenn Sie diese Informationen an Snyk senden möchten, damit wir sie anzeigen und Sie künftig benachrichtigen können, falls neue Schwachstellen gefunden werden, steht Ihnen auch der Befehl monitor zur Verfügung.

snyk container monitor <your-image>

Mit Snyk können Sie Ihre Images ganz einfach testen, unabhängig davon, wo sie sich befinden. Befindet sich das Image nur in Ihrem lokalen Docker-Daemon, testen wir es dort. Ist es in einer Remote-Registry verfügbar, laden wir es herunter und testen es. Docker ist nicht auf dem Rechner installiert, auf dem Sie testen? Kein Problem. Für Container gibt es viele verschiedene Workflows – mit Snyk können Sie Ihre Images ganz einfach auf die für Sie passende Weise testen.

Noch einmal zur Klarstellung: Das bisherige Flag --docker bleibt erhalten und fungiert einfach als Alias für den neuen Befehl – einschließlich der neuen Funktionen. Abwärtskompatibilität ist uns wichtig. Wir möchten keine Automatisierungen beeinträchtigen, die Sie möglicherweise mit unseren CLI-Tools eingerichtet haben.

Spezifische Hilfe zu Containern

Mit dem neuen Unterbefehl container stehen Ihnen direkt in der CLI spezifische Hilfeinformationen zu Containern zur Verfügung. So sehen Sie auf einen Blick, wie Sie die CLI verwenden können – etwa, um eine Dockerfile anzugeben, mit der das Image erstellt wurde, Schwachstellen aus dem Basis-Image auszuschließen oder nur Schwachstellen mit hohem Schweregrad zu melden.

$ 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

Einige neue Funktionen

Der neue Unterbefehl snyk container bietet auch einige neue Funktionen für Power-User.

Wenn Sie direkt mit Container-Archiven statt mit Images arbeiten, können Sie diese jetzt mit Snyk auf Schwachstellen testen.

Sie können beispielsweise ein Archiv aus Docker speichern und die resultierende Archivdatei folgendermaßen testen:

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

Wenn Sie direkt mit OCI-Images ( Open Container Initiative) arbeiten, können Sie auch diese testen.

snyk container test oci-archive:ubuntu.tar

Und nicht zuletzt unterstützt Snyk jetzt auch das Testen von Distroless-Images. Distroless ist ein interessantes Projekt von Google, das Container-Basis-Images auf Grundlage von Debian-Paketen erstellt – jedoch ohne Shell und Paketmanager, um die Sicherheit zu erhöhen. Sie können jetzt also Distroless-Basis-Images und damit erstellte Images wie gewohnt mit Snyk testen.

$ 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

Nächste Schritte

Wir arbeiten kontinuierlich daran, die Nutzererfahrung mit Snyk zu verbessern – ob in unserem CLI-Tool, dem Snyk-Service, unserer API oder unseren verschiedenen Integrationen für Entwickler-Tools. Der neue Befehl snyk container erleichtert Ihnen die Nutzung von Snyk, wenn Sie sich auf Container konzentrieren. Schon bald werden wir diese Schnittstelle um weitere interessante und nützliche Funktionen ergänzen.

Starten Sie mit Capture the Flag

Erfahren Sie in unserem virtuellen On-Demand-Workshop für Einsteiger, wie Sie Capture-the-Flag-Herausforderungen lösen.