Snyk CLI-Spickzettel
26. November 2020
0 Min. LesezeitLetzte 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:
JavaScript (npm, yarn)
Java und Kotlin (maven | Gradle)
.Net (Nuget, Paket)
Python (Pip, Poetry)
PHP (composer)
Ruby (Bundler)
Go (dep, govendor)

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
Homebrew
Scoop
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.
Mit dem Flag --package-manager können Sie auch den Paketmanager angeben. Das ist nützlich, wenn Snyk den Paketmanager ausnahmsweise nicht automatisch erkennt.
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 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.
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.
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:
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.

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.
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:
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 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 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:
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:
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:
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).
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:
Ä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:
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>
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.
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:
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.
Führen Sie
snyk monitoraus.Rufen Sie Ihre Anwendung im Browser auf. (Die direkte URL finden Sie in der CLI-Ausgabe.)
Klicken Sie im Menü auf Einstellungen.
Geben Sie die URL Ihres Open-Source-Repositorys in das Feld „Git Remote URI“ ein.

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:
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:
Weitere Informationen zu anderen Konfigurationseinstellungen erhalten Sie mit:
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:
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.



