Schwachstellen mit der Snyk API finden und beheben
Josh Emerson
3. Januar 2018
0 Min. Lesezeit
Illustration von Lou Reade.
In diesem Blogbeitrag erfahren Sie, wie Sie mit der Snyk API alle Probleme eines bestimmten Projekts abrufen. Das kann aus verschiedenen Gründen hilfreich sein – insbesondere, wenn Sie die Daten in Ihre Berichte und Dashboards übernehmen möchten, damit Management und Entwicklungsteams über die Portale und Workflows, die sie bereits nutzen, Einblick in den Schwachstellenstatus erhalten.
In den folgenden Schritten verwenden wir die API, um:
die Liste der Organisationen abzurufen, auf die Sie Zugriff haben
alle Projekte einer Organisation abzurufen
die Liste der Probleme in Ihren Projekten abzurufen
Voraussetzungen
Die Snyk API ist für Kundinnen und Kunden mit einem unserer kostenpflichtigen Pläne verfügbar. Um mit der API zu beginnen, melden Sie sich an oder erstellen Sie ein Konto und rufen Sie Ihren API-Schlüssel unter https://app.snyk.io ab. Alle von der API bereitgestellten Endpunkte finden Sie unter https://snyk.docs.apiary.io.
Falls Sie noch keine Projekte angelegt haben, können Sie dies mit snyk monitor über das Snyk-Befehlszeilentool tun oder Projekte aus verschiedenen Quellen (z. B. GitHub, GitLab und Heroku) über die Website hinzufügen.
Kopieren Sie außerdem Ihren API-Schlüssel unter https://snyk.io/account und verwenden Sie ihn an allen unten angegebenen Stellen.
Organisationen abrufen
Rufen Sie zunächst den Endpunkt für Organisationen unter https://snyk.io/api/v1/orgs auf.
Dadurch wird eine Liste Ihrer Organisationen zurückgegeben.
Projekte abrufen
Verwenden Sie nun die ID der Organisation, deren Projektprobleme Sie anzeigen möchten, für den Projects-API-Endpunkt unter https://snyk.io/api/v1/org//projects (ersetzen Sie durch die ID Ihrer Organisation).
Dadurch wird eine Liste Ihrer Projekte zurückgegeben.
Projektprobleme abrufen
Nachdem Sie nun eine Liste der Projekte haben, können Sie die Probleme für jedes gewünschte Projekt abrufen, indem Sie den unten gezeigten Issues-Endpunkt aufrufen. Ersetzen Sie dabei durch die ID des Projekts, dessen Problemliste Sie anzeigen möchten:
Dadurch wird eine JSON-Antwort zurückgegeben, die ein issues-Objekt mit einem Array von Schwachstellen enthält. Wenn Lizenzen für Ihre Organisation aktiviert sind, umfasst die Antwort außerdem ein Array mit Lizenzproblemen, die beim letzten Snapshot im Projekt gefunden wurden.
Der API-Endpunkt für Projektprobleme unterstützt außerdem Filter nach Problemtyp (Schwachstelle oder Lizenzproblem), Schweregrad (hoch, mittel oder niedrig) und danach, ob ein Problem ignoriert oder behoben wurde. Wenn Sie nur Schwachstellen mit hohem Schweregrad anzeigen möchten, die weder ignoriert noch behoben wurden, können Sie folgende Anfrage senden:
Die Antwort enthält nun keine Lizenzprobleme mehr und zeigt nur Schwachstellen mit hohem Schweregrad an, die weder ignoriert noch behoben wurden.
Die Antwort verwenden
Nachdem Sie die Projektprobleme abgerufen haben, erhalten Sie eine JSON-Nutzlast wie die folgende:
Angenommen, Sie möchten den Namen der Schwachstelle, das betroffene Paket und die URL mit weiteren Informationen zu jeder Schwachstelle anzeigen. Mit jq könnten Sie beispielsweise Folgendes tun:
Das Ergebnis sieht dann so aus:
Die Reporting API
In einem Folgebeitrag zeigen wir Ihnen, wie Sie mit der Reporting API für Unternehmen über die Möglichkeiten des Endpunkts für Projektprobleme hinausgehen können. Wenn Sie Probleme im Zeitverlauf darstellen, die Zeit bis zur Behebung nachvollziehen und leistungsfähigere Filterfunktionen nutzen möchten, schreiben Sie an enterprise@snyk.io, um unsere Reporting API auszuprobieren.