Das Beste aus snyk test mit JSON herausholen
Tim Kadlec
29. Juni 2017
0 Min. LesezeitMit snyk test scannen Sie die Abhängigkeiten Ihrer Anwendung und prüfen, ob sie bekannte Schwachstellen enthalten. Werden Schwachstellen gefunden, gibt der Befehl einen Fehler aus und zeigt in der Konsole Informationen zur Schwachstelle und zu ihrer Behebung an.
Das funktioniert in einer CI-Umgebung hervorragend und liefert Ihnen zahlreiche umsetzbare Informationen. Manchmal möchten Sie jedoch noch einen Schritt weitergehen und die Testergebnisse auf bestimmte Weise bearbeiten oder einen lokalen Bericht erstellen, den Sie ganz einfach teilen können. Hier kommt die Option --json ins Spiel, die die Ergebnisse von snyk test als JSON ausgibt.
Wir zeigen Ihnen einige Möglichkeiten, die Ihnen snyk test --json und ein paar kostenlos verfügbare Tools bieten.
Die JSON-Option
Mit snyk test --json wird ein JSON-Objekt mit einigen grundlegenden und nützlichen Informationen zu Ihrem Projekt ausgegeben. So sieht das Objekt derzeit grundsätzlich aus:
Darüber hinaus enthält vulnerabilities detaillierte Informationen zu jeder entdeckten Schwachstelle:
All diese Informationen bieten zahlreiche Möglichkeiten, die Ergebnisse von Snyk test anzupassen.
Schwachstellen individuell sortieren
Standardmäßig meldet snyk test Schwachstellen in der Reihenfolge, in der sie im generierten Abhängigkeitsbaum gefunden werden.
Es gibt verschiedene Tools, mit denen Sie die Ergebnisse bearbeiten und neu sortieren können. Wir verwenden jq. jq ist ein JSON-Prozessor für die Befehlszeile. Damit können Sie JSON-Daten über eine Pipe einlesen, filtern und die resultierenden Daten anschließend wieder ausgeben.
Mit jq können Sie die Ergebnisse ganz nach Ihren Wünschen sortieren. Sie können die Schwachstellen zum Beispiel nach Veröffentlichungsdatum sortieren, sodass die neuesten Schwachstellen zuerst angezeigt werden.
Mit ein paar zusätzlichen Zeilen können Sie die Schwachstellen auch nach Schweregrad sortieren, damit die kritischsten zuerst aufgeführt werden.
Schweregrad von Schwachstellen anpassen
Mit jq können Sie auch den Schweregrad einer Schwachstelle ändern, wenn Sie aus irgendeinem Grund entscheiden, dass er vom Schweregrad abweichen soll, den Snyk angibt.
Vielleicht ist Ihre Website beispielsweise von einer Nokogiri-Version abhängig, die eine Schwachstelle mit hohem Schweregrad zur beliebigen Codeausführung enthält. Ihr Team ist jedoch zu dem Schluss gekommen, dass das Problem aufgrund der Verwendung von Nokogiri weniger schwerwiegend ist. Mit jq können Sie den Schweregrad der Schwachstelle in Ihren Berichten ändern.
Einen lokalen HTML-Bericht erstellen
Das Online-Dashboard Ihres Projekts enthält Details zu jeder Schwachstelle: den Schweregrad, eine Beschreibung, verwundbare Pfade und vieles mehr. Wenn Sie eine lokale Kopie auf Grundlage der Ergebnisse von snyk test erstellen möchten, können Sie unseren Open-Source-Mapper Snyk JSON to HTML Mapper verwenden.
Der Mapper verarbeitet snyk test --json und erstellt einen lokalen HTML-Bericht ohne externe Ressourcen. Zur Verwendung können Sie ihn global mit npm install -g snyk-to-html installieren. Führen Sie anschließend den Befehl test aus und leiten Sie die Ergebnisse direkt an das Modul weiter, etwa so:
Mit dem obigen Befehl erstellen Sie einen ansprechend gestalteten lokalen Bericht ohne externe Abhängigkeiten.

Wenn Sie die JSON-Ausgabe mit jq anpassen, können Sie auch die geänderten JSON-Ergebnisse weiterleiten. Der folgende Befehl erstellt beispielsweise einen lokalen HTML-Bericht, in dem die Schwachstellen nach Veröffentlichungsdatum sortiert sind.
Individuelle Berichte mit JSON
Schon der alleinige Aufruf von snyk test liefert Ihnen viele nützliche Informationen. Wenn Sie etwas mehr Flexibilität benötigen, bietet snyk test --json die passende Lösung. Mit ein paar kostenlosen Tools und etwas Kreativität können Sie Snyk-Ergebnisse genau auf Ihre Anforderungen zuschneiden.
Wenn Sie die JSON-Ausgabe für individuelle Berichte oder Funktionen verwenden, lassen Sie es uns wissen. Wir würden gerne erfahren, was Sie damit entwickelt haben!
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.