Skip to main content

Sichern Sie Ihren Build-Workflow in Bitbucket Pipes mit Snyk

Artikel von
Headshot of Noa Korem

Noa Korem

Finding open source vulnerabilities within the Bitbucket workflow tumb

5. März 2019

0 Min. Lesezeit

Wir freuen uns, bekannt zu geben, dass Snyk jetzt in Bitbucket Pipes integriert ist. Damit können Bitbucket-Nutzer ihren CI/CD-Workflow (Continuous Integration/Continuous Delivery) absichern, indem sie Open-Source-Schwachstellen in den Abhängigkeiten ihrer Anwendungen oder Docker-Images finden, beheben und überwachen. Mit dieser Veröffentlichung ist Snyk stolz darauf, Launch-Partner von Bitbucket Pipes zu sein.

Letzte Woche hat Atlassian Bitbucket Pipes eingeführt. Damit können Nutzer einen CI/CD-Workflow mithilfe einer Gruppe sofort einsatzbereiter Aufgaben anpassen und automatisieren. Die Pipeline lässt sich mit vordefinierten Aktionen einrichten, die sich wiederholt in den Workflow integrieren lassen. Um Ihrem Workflow eine Pipe hinzuzufügen, kopieren Sie einfach die passende Pipe und fügen Sie sie wie in der Abbildung unten in die Pipeline ein:

YAML-Editor für Bitbucket Pipelines im Master-Branch mit Node.js-Build-Schritten und Snyk-Scan-Konfiguration sowie einer Liste verfügbarer Deployment-Pipes.

Open-Source-Schwachstellen in Ihrer Anwendung finden, beheben und überwachen.

Sobald die Snyk Pipe in den Bitbucket-Pipeline-Workflow integriert ist, scannt sie im Rahmen des CI/CD-Workflows Ihre Abhängigkeiten auf Open-Source-Schwachstellen. Werden Schwachstellen gefunden, blockiert die Snyk Pipe den Prozess entsprechend der vom Nutzer festgelegten Konfiguration. So lassen sich beispielsweise schwerwiegende Schwachstellen vom Build ausschließen, wie in der Abbildung unten gezeigt:

Bitbucket-Pipelines-Dashboard mit Pipeline-Ausführungen, Erfolgs- und Fehlerstatus, Startzeiten, Laufzeiten, Commits und Details zum master-Branch

Für gefundene Schwachstellen enthält die Snyk Pipe ein Patch-Modul, das sie mithilfe der präzisen Patches von Snyk beheben kann. Diese Patches werden in Zusammenarbeit mit den Paketverantwortlichen entwickelt und rigoros getestet. Snyk portiert die ursprüngliche Fehlerbehebung auf alle relevanten älteren Versionen zurück, ohne den Code zu beschädigen.

Nach erfolgreichem Test überwacht Snyk den bereitgestellten Code auf neue Schwachstellen. Wird eine neue relevante Schwachstelle entdeckt, benachrichtigt Snyk die Nutzer, um das Zeitfenster für mögliche Angriffe zu minimieren. Die Schwachstellendatenbank von Snyk wird laufend um neue Schwachstellen ergänzt, damit unsere Nutzer bestmöglich geschützt sind.

Sichern Sie Ihre Docker-Images

Die Snyk Pipe kann Docker-Images auch auf Schwachstellen im Betriebssystem scannen. Snyk untersucht das Basis-Image und die zusätzlichen Ebenen und erkennt Schwachstellen, die den einzelnen Ebenen und dem Basis-Image zugeordnet sind. Snyk gibt Empfehlungen zur Behebung und verweist auf die sicherste Alternative für das Basis-Image. Dadurch lässt sich eine große Zahl von Schwachstellen beseitigen und das Risiko von Codefehlern minimieren.

Sichern Sie Ihren gesamten Bitbucket-Workflow

Snyk bietet eine umfassende Sicherheitslösung für die verschiedenen Bitbucket-Lösungen entlang des Entwicklungs-Workflows:

  1. Beginnend bei der Verwaltung des Quellcodes: Jeder Pull Request wird gescannt und es werden Pull Requests mit empfohlenen Upgrades erstellt.

  2. In der Pipeline verhindert Snyk dank CI/CD-Integration die Bereitstellung anfälliger Anwendungen.

  3. Nach der Bereitstellung speichert Snyk einen Snapshot der Abhängigkeiten der bereitgestellten Anwendung, überwacht sie und sendet Benachrichtigungen zu neuen Problemen.

Snyk nimmt am bevorstehenden Atlassian Summit (9.–11. April in Las Vegas) teil und präsentiert seine umfassende Lösung für Bitbucket. Besuchen Sie uns an Stand 102 oder buchen Sie hier einen Termin.

So fügen Sie eine Snyk Pipe hinzu

Damit Snyk Ihre Abhängigkeiten auf Schwachstellen scannen kann, fügen Sie die Snyk Pipe in Ihre bitbucket-pipelines.yml ein. Geben Sie dabei ein Snyk API-Token (in Ihren Kontoeinstellungen) und den Paketmanager bzw. die Programmiersprache an (zum Beispiel „npm“). Unten sehen Sie den Ausschnitt für die Snyk Pipe:

Snyk-Scan auf einer Bitbucket-Pipeline-Seite mit YAML-Konfiguration zum Scannen von Anwendungsabhängigkeiten und Docker-Images.

Das folgende Beispiel zeigt die Snyk Pipe mit npm als Paketmanager:

script:
 – npm install
 – npm test
 – pipe: snyk/snyk-scan:0.2.0
   variables:
     SNYK_TOKEN: $SNYK_TOKEN
     LANGUAGE: “npm”
– npm publish

Nach der Integration in Ihre Pipes sucht Snyk nach Manifestdateien (package.json, package-lock.json) und führt den Scan durch.

Hinweis: Fügen Sie die Snyk Pipe immer als Schritt nach allen Installations- und Build-Schritten hinzu, zum Beispiel nach `npm install`, `dotnet restore` oder `docker build`.

Außerdem können Sie der Pipe zwei zusätzliche Funktionen hinzufügen:

  • PROTECT – wendet Snyk-Patches auf Grundlage der.snyk-Richtliniendatei an, die zuvor mit dem Assistenten erstellt wurde.

  • MONITOR – Wenn der Test erfolgreich war, wird ein Snapshot der Abhängigkeiten der Anwendung auf snyk.io gespeichert. So können Sie den Zustand Ihres bereitgestellten Codes einsehen, ihn überwachen und Benachrichtigungen erhalten, wenn neue Schwachstellen im Code gefunden werden.

Und was ist mit Docker?

Snyk bietet auch Docker-Image-Scans, mit denen Sie Ihre Images auf Schwachstellen prüfen können:

Um Docker-Images zu scannen, legen Sie den Parameter IMAGE_NAME fest.

Mit TARGET_FILE: “Dockerfile” erhalten Sie Empfehlungen zur Behebung für das Image.

Wenn Sie diese Befehle hinzufügen, sieht die Pipe etwa so aus:

script:
 – docker build -t $IMAGE_NAME .
 – pipe: snyk/snyk-scan:0.2.0
   variables:
     SNYK_TOKEN: $SNYK_TOKEN
     LANGUAGE: “docker”
     IMAGE_NAME: $IMAGE_NAME
     TARGET_FILE: “Dockerfile”
 – docker push $IMAGE_NAME

Zu den wichtigen optionalen Variablen gehören:

  • SEVERITY_THRESHOLD – beschränkt die Snyk-Berichte auf Schwachstellen mit höherem Schweregrad

  • DONT_BREAK_BUILD – weist Snyk an, den Build trotz der gefundenen Schwachstellen fortzusetzen.

Weitere Dokumente finden Sie hier.