Skip to main content

Snyk CLI-Spickzettel

Artikel von
Blog Headers cli cheat sheet

26. November 2020

0 Min. Lesezeit

Letzte Aktualisierung: April 2022

Haben Sie eine ältere Version des Snyk-CLI-Spickzettels? Laden Sie unten die aktuelle Version herunter.

Die Snyk CLI ist ein leistungsstarkes Tool, mit dem Sie Ihre Anwendungen, Container und Infrastructure-as-Code-Konfigurationen auf Sicherheitslücken scannen können. In diesem Spickzettel stellen wir Ihnen die leistungsstärksten Funktionen unserer CLI vor. Sie können die CLI zum Scannen und Überwachen auf Ihrem lokalen Rechner einsetzen oder in Ihre Pipeline integrieren. Ganz gleich, wie Sie sie verwenden: Die Snyk CLI ist das Tool der Wahl, um bekannte Sicherheitslücken in Ihren Anwendungen zu testen, zu überwachen und zu beheben.

Wir verbessern unsere CLI kontinuierlich. Sie bietet weit mehr Funktionen, als wir in einem einzelnen Spickzettel behandeln können. Eine ausführlichere Übersicht über unsere CLI finden Sie in unserer Snyk CLI-Dokumentation. Wenn Sie erfahren möchten, was die CLI für eine bestimmte Programmiersprache oder ein bestimmtes Build-System leisten kann, sehen Sie sich unsere Seite zur Sprachunterstützung an:

Snyk CLI-Spickzettel mit nummerierten Abschnitten zu Installation, Authentifizierung, Projektscans, Monitoring, Code- und Container-Scans sowie Dokumentation.
Cheat Sheet herunterladen

Installation

Beginnen wir ganz am Anfang. Wenn Sie die Snyk CLI noch nicht installiert haben, sollten Sie das zuerst nachholen. Derzeit können Sie die Snyk CLI mit npm, Homebrew oder Scoop installieren oder eine bestimmte Binärdatei von GitHub herunterladen.

npm

npm install snyk -g

Homebrew

brew tap snyk/tap && brew install snyk

Scoop

scoop bucket add snyk https://github.com/snyk/scoop-snyk
scoop install snyk

Manuelle Installation

Ein manueller Installer steht auf der GitHub-Seite von Snyk zur Verfügung.

Authentifizierung

Nach der Installation der CLI müssen Sie sich mit Ihrem Snyk-Konto authentifizieren. Dafür gibt es mehrere Möglichkeiten.

Wenn Sie snyk auth ausführen, werden Sie im Browser zur Registrierungs- oder Anmeldeseite weitergeleitet, wo Sie sich authentifizieren oder registrieren können.

Alternativ können Sie snyk auth [api-token] ausführen und dabei ein Snyk-API-Token als Argument angeben. Dieses finden Sie auf Ihrer Kontoseite.

Die letzte Option, die wir insbesondere für CI-Tests empfehlen, ist das Erstellen einer Umgebungsvariablen namens SNYK_TOKEN. Alle Snyk-CLI-Befehle verwenden diese, ohne dass Sie ausdrücklich snyk auth ausführen müssen.

Profi-Tipp:Aktualisieren und installieren Sie die CLI regelmäßig neu. Wir beheben Fehler und veröffentlichen sehr häufig neue CLI-Versionen. So verpassen Sie keine neuen und verbesserten Funktionen.

CLI-Befehle

Die Snyk CLI nimmt einen Befehl entgegen, auf den mehrere Optionen folgen können. Achten Sie darauf, die CLI-Befehle im Projektordner auszuführen. Sehen wir uns an, was die einzelnen Befehle bewirken.

Snyk test

Der Befehl snyk test prüft ein lokales Projekt auf bekannte Sicherheitslücken. Er liefert Informationen zu den Sicherheitslücken, ihrem Schweregrad, Typ und ihrer Beschreibung, zur Anzahl der betroffenen Pfade, zu Behebungsmaßnahmen und mehr. Die Snyk CLI erkennt Ihre Manifestdateien automatisch und prüft die erste gefundene Datei. Snyk sucht nach lokalen Abhängigkeiten, um sie auf Sicherheitslücken zu prüfen. Daher müssen Sie vor dem Ausführen von snyk test die erforderlichen Schritte zum Herunterladen des Abhängigkeitsbaums ausführen, zum Beispiel npm install, mvn install, dotnet restore oder dep ensure.

Snyk test ist auch in einer CI-Pipeline nützlich. Wenn Sie beim Erstellen der Binärdatei snyk test ausführen, sehen Sie direkt, ob Ihr Projekt Sicherheitslücken enthält. Sie können Ihre Pipeline bei Bedarf sogar abbrechen und den Prozess vollständig stoppen. Wenn Sie snyk test in einem Skript ausführen, müssen Sie lediglich den Exit-Code prüfen. Ist der Exit-Code 0, ist alles in Ordnung und es wurden keine Sicherheitslücken gefunden. Bei einem anderen Wert gibt es vermutlich noch etwas zu tun.

Wenn Ihr Projekt mehrere Manifestdateien enthält, können Sie eine bestimmte Datei testen. Geben Sie mit dem Flag --file an, welche Datei gescannt werden soll.

$ snyk [cmd] --file=package.json

Mit dem Flag --package-manager können Sie auch den Paketmanager angeben. Das ist nützlich, wenn Snyk den Paketmanager ausnahmsweise nicht automatisch erkennt.

$ snyk test --file=req.txt --package-manager=pip

Wenn Sie alle Projekte in einem Ordner testen möchten, verwenden Sie das Flag --all-projects. Damit wird das aktuelle Verzeichnis automatisch durchsucht und alle gefundenen Manifestdateien werden getestet. Standardmäßig scannt Snyk das aktuelle Verzeichnis sowie drei weitere Verzeichnisebenen. Um die Suchtiefe zu ändern, fügen Sie einfach die Option --detection-depth hinzu.

$ snyk test --all-projects --detection-depth=4

Snyk testet Ihre Entwicklungsabhängigkeiten standardmäßig nicht, da viele sie im Vergleich zu Sicherheitslücken in der Produktion als unnötiges Rauschen betrachten. Wenn Snyk Ihre Entwicklungsabhängigkeiten ebenfalls einbeziehen soll, verwenden Sie das Flag --dev.

$ snyk test --dev

Ein weiteres nützliches Flag, das Sie mit dem Testbefehl und anderen Snyk-Befehlen verwenden können, ist --org. Damit ordnen Sie einen Test oder einen beliebigen Snyk-Befehl einer bestimmten Organisation zu. Organisationen dienen als Container, in denen Sie Projekte gruppieren und denen mehrere Benutzer zugeordnet sein können. Das ist besonders nützlich, wenn Sie im Team arbeiten und mit snyk monitor Snapshots erstellen. Wenn Sie keine Organisation angeben, werden Ihre Ergebnisse Ihrer Standardorganisation zugeordnet.

$ snyk [cmd] --org=<org_id>

Auch öffentliche Repositories können Sie direkt über die Befehlszeile testen. Geben Sie dazu einfach die URL des öffentlichen Repositorys in den Befehl ein. Das funktioniert nur mit npm-Repositories, in denen eine package-lock.json vorhanden ist. Probieren Sie es aus:

$ snyk test https://github.com/snyk/goof

Sie können npm-Pakete auch remote testen, indem Sie nur den Paketnamen angeben, um die neueste Version zu testen, oder indem Sie Paketname und Version vollständig angeben.

$ snyk test lodash
$ snyk test ionic@1.6.5
Terminalbericht zu Sicherheitslücken mit aktualisierbaren, behebbaren und ungelösten Problemen, einschließlich Schweregraden und Paketversionen.

Nach dem Ausführen von snyk test für ein Projekt werden die Ergebnisse in drei Abschnitten angezeigt.

  • Probleme, die sich durch ein Upgrade beheben lassen:Wenn Sie die Bibliothek wie vorgeschlagen aktualisieren, werden eine oder mehrere in Ihrem Projekt gefundene Sicherheitslücken behoben.

  • Behebbares Problem:Es ist kein Update verfügbar, das das Problem behebt. Snyk hat jedoch einen Patch zur Behebung der Sicherheitslücke erstellt.

  • Probleme ohne direktes Upgrade oder Patch:Für die von Ihnen importierte Abhängigkeit ist kein Update verfügbar. Die Sicherheitslücke kann sich tatsächlich in einer der transitiven Abhängigkeiten befinden. Wenn bereits eine neuere Version der transitiven Abhängigkeit verfügbar ist, in der die Sicherheitslücke behoben wurde, zeigen wir Ihnen auch diese an. In einigen Ökosystemen können Sie transitive Abhängigkeiten manuell ersetzen. Daher sind diese Informationen hilfreich.

Für jede Sicherheitslücke, die die CLI in einem der drei Abschnitte anzeigt, finden Sie eine Beschreibung, den Schweregrad und einen Link mit weiteren Informationen zur jeweiligen Sicherheitslücke.

Wenn Sie die CLI-Ausgabe lieber im JSON-Format erhalten möchten, können Sie das Flag --json verwenden. Mit der JSON-Ausgabe können Sie die Ergebnisse ganz nach Ihren Wünschen formatieren.

$ snyk test --json

Noch einfacher speichern Sie die Scan-Ausgabe in einer JSON-Datei. Mit dem Flag --json-file-output flag können Sie das Ergebnis direkt unter dem gewünschten Dateinamen speichern und später überprüfen. Gleichzeitig erhalten Sie in der Konsole die lesbare Ausgabe wie oben gezeigt. Das ist eine ideale Lösung für CI-Pipelines, wenn Sie beispielsweise die Ergebnisse eines bestimmten Builds in einem Dashboard anzeigen möchten. Probieren Sie es einfach aus:

$ snyk test --json-file-output=vuln.json

Beachten Sie außerdem, dass wir einen Snyk-JSON-zu-HTML-Mapper anbieten, mit dem Sie Ihre Ergebnisse in einem ansprechenden HTML-Bericht formatieren können, den Sie Ihrer Führungskraft zeigen können.

Mit dem Flag --severity-threshold können Sie die CLI-Ausgabe nach Schweregrad filtern. Wenn Sie sich nicht für Sicherheitslücken mit mittlerem oder niedrigem Schweregrad interessieren, können Sie diese wie folgt ausblenden:

$ snyk [cmd] --severity-threshold=high

Snyk monitor

Der Befehl snyk monitor erstellt einen Snapshot Ihres Projekts und lädt die Ergebnisse auf die Snyk-Website hoch. Obwohl snyk monitor im Hintergrund snyk test verwendet, ist der Befehl kein Ersatz dafür: Snyk monitor erstellt einen Snapshot und überwacht ihn im Zeitverlauf. Sobald neue Sicherheitslücken oder neue Behebungsmöglichkeiten gefunden werden, von denen Ihr Projekt profitiert, erhalten Sie eine Benachrichtigung über Ihren ausgewählten Kommunikationskanal.

In einer CI-Umgebung führen Sie in der Regel zuerst snyk test aus, um zu prüfen, ob zu diesem Zeitpunkt Sicherheitslücken vorhanden sind. Falls ja, können Sie je nach Anwendungsfall den Build abbrechen. Wenn Sie fortfahren, wird üblicherweise snyk monitor verwendet, um einen Snapshot dieser Version zu erstellen und sie im Zeitverlauf zu überwachen. Ein guter Zeitpunkt dafür ist unmittelbar vor dem Produktivbetrieb. Wenn Sie mit einem bestimmten Ausmaß an Sicherheitslücken leben können, hilft Ihnen snyk monitor, zu verhindern, dass sich die Situation mit der Zeit verschlechtert.

Wenn Sie snyk monitor ausführen, müssen Sie genügend Informationen angeben, damit Ihr Snapshot am erwarteten Speicherort landet. Wenn Sie Mitglied mehrerer Organisationen sind, geben Sie mit dem Flag --org an, an welche Organisation Ihr Snapshot gesendet werden soll. Bei ähnlichen Projektnamen können Sie den von Snyk vergebenen Standardnamen überschreiben, indem Sie mit dem Flag --project-name Ihren gewünschten Namen angeben.

$ snyk monitor --file=package.json --project-name=myapp --org=myorg

Snyk ignore

Angenommen, Ihre Anwendung enthält eine Sicherheitslücke, für die kein Patch oder Update zur Behebung verfügbar ist, oder eine Sicherheitslücke, die Ihrer Ansicht nach in Ihrer Anwendung derzeit nicht ausnutzbar ist. In diesem Fall können Sie Snyk anweisen, die Sicherheitslücke für einen bestimmten Zeitraum zu ignorieren. Führen Sie dazu zunächst den Befehl snyk test aus und ermitteln Sie die Sicherheitslücken-ID in der CLI-Ausgabe. Anschließend können Sie die Sicherheitslücke mit folgendem Befehl ignorieren:

$ snyk ignore --id=npm:tough-cookie:20160722 --expiry=2019-04-30 --reason='Not currently exploitable'

Die Flags --expiry und --reason sind optional. Standardmäßig wird die Sicherheitslücke 30 Tage lang ignoriert.

Hinweis: Der Befehl snyk ignore erstellt eine Datei namens .snyk, in der Informationen zu dem Sicherheitsproblem gespeichert werden, das Sie ignorieren.

Snyk Container

Snyk Container ist eine CLI-Funktion zum Scannen von Container-Images wie Docker-Images. Zuvor ließ sich diese Funktion über das Flag --docker in der CLI aufrufen.

Wie beim Scannen und Überwachen Ihrer Anwendung können Sie auch Ihre Docker-Images mit Snyk scannen.

Wenn Sie Images von Docker Hub herunterladen, können Sie sie folgendermaßen scannen und überwachen:

$ snyk container test <image>:<tag>
$ snyk container monitor <image>:<tag>

Wenn Sie einem dieser Befehle eine Dockerfile hinzufügen, gibt Snyk Ihnen unter anderem Empfehlungen zur Behebung für das verwendete Basis-Image. Falls für das von Ihnen erstellte Image andere Basis-Images verfügbar sind, weisen wir Sie auf diese Alternativen hin.

Snyk Container unterstützt nicht nur Docker-Container, sondern auch Distroless-Images. Diese lassen sich wie folgt scannen:

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

Mit den Container-Funktionen von Snyk können auch Container-Archive gescannt und überwacht werden. Das Scannen funktioniert sowohl für Docker-Container-Archive als auch für Open-Container-Initiative-Images (OCI).

$ snyk container test docker-archive:container.tar
$ snyk container test oci-archive:container.tar

Wie beim Scannen Ihrer Anwendungen stehen die Flags --json und --json-file-output für eine nahtlose Integration in Ihre eigenen Systeme zur Verfügung.

Mehr zur Snyk CLI für Container

Snyk Infrastructure as Code (Snyk IaC)

Mit den Scan-Funktionen von Snyk Infrastructure as Code können Entwickler Fehlkonfigurationen finden und beheben, die zu Sicherheitsproblemen führen können. Mit dem Befehl snyk iac können Sie diese Funktion auch über die Snyk CLI auf Ihrem lokalen Rechner oder in Ihrer CI-Umgebung nutzen. So erhalten Sie möglichst früh in Ihrem Entwicklungszyklus Feedback. Snyk IaC unterstützt Kubernetes, Helm Charts und Terraform-AWS-Ressourcen.

Wenn Sie eine Kubernetes- oder Terraform-Datei scannen möchten, können Sie Folgendes ausprobieren:

$ snyk iac test /path/to/Kubernetes.yaml
$ snyk iac test /path/to/terraform_file.tf

Ähnlich wie bei snyk test enthalten die von snyk iac gefundenen Probleme eine Beschreibung und einen Schweregrad. Wenn Sie diese Ausgabe im JSON-Format benötigen, um sie in Ihr System zu integrieren, stehen Ihnen auch hier die Flags --json und --json-file-output zur Verfügung:

$ snyk iac test /path/to/Kubernetes.yaml --json

Mit Snyk IaC können Sie außerdem Infrastrukturabweichungen und nicht verwaltete Ressourcen erkennen, nachverfolgen und sich darüber benachrichtigen lassen:

$ snyk iac describe <OPTIONS>

Mehr zu Snyk CLI IaC

Fehlerbehebung

Wenn Sie nicht sicher sind, welchen Befehl Sie verwenden sollen oder wie ein bestimmtes Flag funktioniert, können Sie jederzeit die Option --help oder den Befehl snyk help. verwenden.

$ snyk auth --help
$ snyk container --help

Debugging

Wenn etwas nicht funktioniert, können Sie die CLI mit dem Flag -d anweisen, Debug-Protokolle auszugeben. Wenn Sie sich an unser großartiges Support-Team wenden, werden Sie wahrscheinlich ebenfalls darum gebeten:

$ snyk [cmd] -d

Gehen Ihnen die Tests für ein Open-Source-Projekt aus?

Snyk-Scans sind für die Open-Source-Entwicklung kostenlos und unbegrenzt. Allerdings erkennen wir nicht immer, ob es sich um ein Open-Source-Projekt handelt. Wenn Sie in der CLI-Ausgabe darauf hingewiesen werden, dass Ihnen die Tests ausgehen, können Sie mit den folgenden Schritten nachweisen, dass Ihr Projekt tatsächlich Open Source ist.

  1. Führen Sie snyk monitor aus.

  2. Rufen Sie Ihre Anwendung im Browser auf. (Die direkte URL finden Sie in der CLI-Ausgabe.)

  3. Klicken Sie im Menü auf Einstellungen.

  4. Geben Sie die URL Ihres Open-Source-Repositorys in das Feld „Git Remote URI“ ein.

Open-Source-Formular mit Anweisungen, Eingabefeld für eine Git-Remote-URI und einer Schaltfläche „Speichern“

Unerwartete Testergebnisse?

Die besten Ergebnisse erzielen Sie, wenn Sie Ihr gesamtes Projekt neu erstellen, bevor Sie einen der CLI-Befehle ausführen. Wenn die Ausgabe von snyk test oder snyk monitor nicht Ihren Erwartungen entspricht, führen Sie Ihr Build-Tool aus, um alle Abhängigkeiten herunterzuladen und zu installieren.

Zum Beispiel:

$ npm install
$ mvn install
$ dotnet restore
$ dep ensure

API-Schlüssel und Konfiguration entfernen

Wenn Sie Ihre CLI mit snyk auth authentifiziert haben, können Sie Ihr Token mit folgendem Befehl aus der Konfiguration entfernen:

$ snyk config unset api

Weitere Informationen zu anderen Konfigurationseinstellungen erhalten Sie mit:

$ snyk help config

Version prüfen

Verwenden Sie immer die neueste Version unserer CLI. Wir veröffentlichen mehrmals pro Woche eine neue Version, manchmal sogar noch häufiger.

Installieren Sie die neueste Version (oder führen Sie eine Neuinstallation durch), indem Sie wie im ersten Abschnitt beschrieben Ihren Paketmanager verwenden. Alternativ finden Sie den neuesten Build in unserem GitHub-Repository.

Führen Sie einfach Folgendes aus, um Ihre aktuelle Version zu prüfen:

$ snyk --version

Dokumentation konsultieren

Für bestimmte Projekte und Ökosysteme gelten besondere Anforderungen. In der CLI-Dokumentation und der Dokumentation zur Sprachunterstützung finden Sie Hilfe zu spezifischeren Anwendungsfällen.

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.

Weiterlesen

Blog

Frontier-Modelle fanden die Schwachstellen. Nur der Angreifer fand die Angriffsketten.

Die statische Analyse fand die Schwachstellen, doch erst Live-Angriffstests bewiesen, wie sie sich zu Angriffen verketten lassen. Ein Vergleich von Evo COS, Claude Security und Claude Code Security.

feature insights context
Blog

Autonome Angriffe sind bereits Realität. Die Verteidigung muss Schritt halten.

Autonome Angreifer verkürzen das Zeitfenster für die Verteidigung. Erfahren Sie, wie kontinuierliches Erkennen, Beheben, Validieren und Verhindern Sicherheitsteams helfen kann, Schritt zu halten.

Blog

Warum KI-Coding-Agenten immer wieder fehlerhafte Zugriffskontrollen schreiben

KI-Coding-Agenten können Autorisierungslogik erzeugen, die kompiliert und die Prüfung besteht, dabei aber die Daten eines Mandanten für einen anderen offenlegt. Erfahren Sie, warum fehlerhafte Zugriffskontrollen schwer zu erkennen sind und wie Sie sie verhindern.