Close

So integrierst du Snyk und Bitbucket Cloud für DevSecOps

Foto von Simon Maple
Simon Maple

Field CTO bei Snyk

DevSecOps-Prinzipien durch die Integration von Snyk in Bitbucket Cloud und Jira umsetzen

Snyk lässt sich in mehrere Atlassian-Produkte integrieren, um die Workflows und Pipelines von DevSecOps-Teams zu verbessern. In diesem Tutorial werden Muster für den Shift-Left-Sicherheitsansatz mithilfe von Atlassian Bitbucket und Snyk beschrieben. Mit diesen Techniken kann dein Team deine anwendungs- und containerbasierten Workloads im DevSecOps-Tempo scannen. Du erfährst, wie du diese Muster verwendest, um Sicherheit in alle Pipelinephasen zu integrieren.

Uhrzeit

Lesedauer: 15 Minuten.

Zielpublikum

  • Entwickler
  • DevOps- und DevSecOps-Techniker
  • Anwendungssicherheits- und Anwendungsentwicklungsteams

Voraussetzungen

Du hast ein Snyk-Konto. (Hier verfügbar)

Du hast ein Bitbucket-Konto von Atlassian. Melde dich hier an oder lege hier los.

Schritt 1: Konfiguration deiner Umgebung

Installiere die Snyk-CLI

Die Snyk-CLI authentifiziert dein Gerät mit deinem Snyk-Konto. Das CLI-Tool hilft dir dabei, bekannte Schwachstellen in deinen Abhängigkeiten zu finden und zu beheben, sowohl manuell als auch in deiner CI/CD-Pipeline. Genaue Anweisungen zur Installation der CLI in mehreren Formaten für beliebte Betriebssysteme und Umgebungen erhältst du bei Snyk. Die CLI ist zum Beispiel über folgende Befehle für Homebrew verfügbar:

brew tap snyk/tap
brew install snyk

Sobald du die CLI installiert hast, kannst du mit dem folgenden Befehl die Authentifizierung starten:

snyk auth

Dieser Befehl öffnen einen Browsertab, über den du den Authentifizierungsprozess abschließen kannst. Du kannst nun dein Repository scannen, indem du auf die Schaltfläche "Authenticate" (Authentifizieren) klickst. Wenn die Authentifizierung abgeschlossen ist, kannst du zu deinem Terminal zurückkehren und weiterarbeiten.

Zusätzliche Laborressourcen

Die in diesem Tutorial enthaltenen Übungen beinhalten eine Kombination aus Befehlen oder Codeausschnitten, die innerhalb der angegebenen Modulseiten freigegeben werden, sowie Vorlagen und Quellcode, die in einem öffentlichen Bitbucket-Repository verfügbar sind. Sobald dein Bitbucket Cloud-Konto eingerichtet ist, musst du diese Ressourcen in dein Konto kopieren. Gehe dazu folgendermaßen vor:

Spalte das Repository ab

Klicke hier, um das Upstream-Repository in dein Bitbucket-Konto abzuspalten. Die Dokumentation von Atlassian bietet ausführliche Anweisungen zum Abspalten eines Repositorys.

Klone deine Abspaltung lokal

Sobald die Abspaltung abgeschlossen ist, musst du dein abgespaltetes Repository klonen. Bitte lies die Dokumentation von Atlassian zum Klonen eines Repositorys, um detaillierte Anweisungen zu erhalten.

Schritt 2: Snyk mit Bitbucket verbinden

In diesem Abschnitt verbinden wir Snyk mit Bitbucket, um deine Bitbucket-Anwendung auf Open-Source-Schwachstellen zu untersuchen.

Diagramm des Bitbucket-Prozesses

Was ist Software Composition Analysis (SCA)?

Software Composition Analysis (SCA) ist ein Open-Source-Tool zur Komponentenverwaltung. Es generiert einen Bericht, der alle Open-Source-Komponenten in einer Anwendung einschließlich direkter und indirekter Abhängigkeiten auflistet. Mithilfe eines SCA-Tools können Entwicklungsteams Open-Source-Komponenten, die in ein Projekt eingeführt wurden, schnell nachverfolgen und analysieren.

Open-Source-Komponenten sind zwar praktisch und weit verbreitet, aber schwierig nachzuverfolgen. Entwickler verwenden daher oft manuelle Prozesse wie E-Mails oder Tabellen, um die Situation zu verbessern. Diese manuellen Prozesse beeinträchtigen jedoch die Benutzerfreundlichkeit von Open-Source-Lösungen und stellen nur eine unvollständige Lösung dar. Besser ist die Nutzung eines SCA-Tools, das sofortige Einblicke in jede Komponente ermöglicht.

Warum solltest du ein SCA-Tool verwenden?

Open-Source-Komponenten sind praktisch in jeder Branche wichtige Bausteine in der Softwareentwicklung. Unabhängig von der Größe deines Unternehmens hilft SCA bei der Identifizierung von Open-Source-Komponenten in den Anwendungen, die für dein Unternehmen von entscheidender Bedeutung sind. SCA-Tools ermöglichen Entwicklern Folgendes:

1. Nachvollziehen von Abhängigkeiten, die in Anwendungen verwendet werden

2. Durchsetzung von Sicherheits- und Compliance-Richtlinien während des Software Development Life Cycle (SDLC)

3. Proaktive Behebung potenzieller Schwachstellen an der Wurzel

4. Verbesserung der Teameffizienz und des Sicherheitsstatus des Unternehmens

Schritt 3: Ein App-Passwort erstellen

Du musst ein App-Passwort erstellen, um Snyk zu autorisieren, auf dein Repository zuzugreifen und seine Bitbucket Cloud-Integration zu aktivieren.

So erstellst du ein App-Passwort:

1. Gehe zu deinem Profilbild und links und klicke auf "Personal settings" (Persönliche Einstellungen).

Fenster "Persönliche Einstellungen"

2. Klicke unter "Access management" (Zugriffsverwaltung) auf "App passwords" (App-Passwörter).

Zugriffsmanagementfenster

3. Klicke dann auf "Create app password" (App-Passwort erstellen).

App-Passwort-Fenster

4. Gib dem App-Passwort einen Namen, der sich auf die Anwendung, bezieht, die das Passwort verwenden soll.

App-Passwort-Fenster

5. Wähle den spezifischen Zugriff und die Berechtigungen aus, die dieses Anwendungskennwort haben soll.

  • Konto: read (lesen)
  • Teammitgliedschaft: read (lesen)
  • Projekte: read (lesen)
  • Repositorys: read and write (lesen und schreiben)
  • Pull-Anfragen: read and write (lesen und schreiben)
  • Webhooks: read and write (lesen und schreiben)

6. Kopiere das generierte Passwort und übertrage es in die Anwendung, der du Zugriff gewähren möchtest, oder füge es ein. Das Passwort wird nur dieses eine Mal angezeigt.

Schritt 4: Repository-Variablen hinzufügen

Du musst Repository-Variablen auf Repository-Ebene definieren, auf die später in deiner Pipeline verwiesen wird. Diese setzen sich wie folgt zusammen:

  • SNYK_TOKEN – Snyk-API-Token zur Authentifizierung deines Snyk-Kontos. Dies ist eine geschützte Variable.
  • IMAGE – Name des Container-Image. Dies ist keine geschützte Variable.

Die anderen Variablen werden für fortgeschrittene Pipeline-Vorgänge verwendet und sind nicht Teil dieses Tutorials.

Repository-Einstellungen

Schritt 5: Fordere dein Snyk-API-Token an

1. Fordere deinen Snyk-API-Token an.

Navigiere in der Snyk-Konsole zu Settings (Einstellungen), indem du auf das Zahnradsymbol klickst. Gib dann im Menü General (Allgemein) neben Copy (Kopieren) deine Organization ID ein.

Allgemeine Einstellungen in Snyk

Sobald du dein Token kopiert hast, kehre zur Bitbucket Cloud-UI zurück und lege die Repository-Variable SNYK_TOKEN fest.

Schritt 6: Aktiviere die Bitbucket-Integration

Navigiere von der Snyk-Konsole aus zu Integrations (Integrationen) und wähle Bitbucket Cloud aus.

Snyk-Integrationen

Gib auf der Bitbucket Cloud-Integrationsseite deinen Bitbucket-Benutzernamen in das Feld Username (Benutzername) und das Bitbucket-App-Passwort aus dem vorherigen Schritt in das Feld App password (App-Passwort) ein. Klicke dann auf Save (Speichern).

Einstellungen: Integrationsfenster

Sobald du deine Snyk- und Bitbucket-Konten erfolgreich verknüpft hast, wird dir eine Bestätigungsmeldung angezeigt und du hast die Möglichkeit, Snyk dein Bitbucket Cloud-Repository hinzuzufügen.

Bleibe auf dieser Seite, dann wirst du im nächsten Abschnitt erfahren, wie du ein Bitbucket Cloud-Repository importierst und mit Snyk scannst.

Scan und Überwachung deiner Bitbucket-Anwendung

Scan und Überwachung deiner Bitbucket-Anwendung – Miniaturansicht

Die Untersuchung deiner Anwendung auf Schwachstellen in deinen Open Source-Abhängigkeiten setzt an der Wurzel an. Im vorherigen Abschnitt haben wir die Snyk-Integration in Bitbucket aktiviert und sind nun in der Lage, unser erstes Projekt zu importieren.

Schritt 7: Bitbucket Cloud-Repositorys zu Snyk hinzufügen

Klicke im letzten Bildschirm des vorherigen Abschnitts auf Add your Bitbucket Cloud repository to Snyk (Bitbucket Cloud-Repository zu Snyk hinzufügen).

Füge Bitbucket Cloud-Repositorys zu Snyk hinzu

Suche im Modul Configure Environment (Umgebung konfigurieren) das Repository, das du abgespaltet hast. Aktiviere das Kontrollkästchen und klicke dann auf die Schaltfläche Add selected repository (Ausgewähltes Repository hinzufügen), um dein Projekt zu importieren.

Schaltfläche "Ausgewählte Repositorys hinzufügen" in der oberen rechten Ecke

Schritt 8: Überprüfe den Schwachstellenbericht

Dir sollten auf packages.json basierende Schwachstellen sowie detaillierte Informationen zu jeder Schwachstelle angezeigt werden. Klicke in das gerade gescannte Projekt und überprüfe die Ergebnisse in Snyk. Dadurch wird dir nicht nur Kontext wie der Schweregrad und die Ausgereiftheit von Exploits angezeigt, sondern auch die folgenden leistungsstarken Features:

Schwachstellenbericht
  • Fix this vulnerability (Diese Schwachstelle beheben) hilft dir dabei, Schwachstellen zu beheben, indem du entweder die direkten Abhängigkeiten aktualisierst oder Schwachstellen mit Patches korrigierst.
  • Priority Score (Prioritätsbewertung) hilft dir dabei, Problembehebungen effektiv zu priorisieren. Die Punktzahl, die zwischen 1 und 1.000 liegen kann, basiert auf einem proprietären Algorithmus, der eine Vielzahl von Faktoren verarbeitet. Dazu zählen der CVSS-Score, die Verfügbarkeit einer Behebung, bekannte Exploits oder die Tatsache, wie neu die Schwachstelle ist und ob sie erreichbar ist.
  • Jira integration (Jira-Integration) ermöglicht es dir, Vorgänge in Jira zu erstellen.
Simon Maple
Simon Maple

Simon Maple is the Field CTO at Snyk, a Java Champion since 2014, Virtual JUG founder, and London Java Community co-leader. He is an experienced speaker, with a passion for community. When not traveling, Simon enjoys spending quality time with his family, cooking and eating great food.


Diesen Artikel teilen
Nächstes Thema

Lesenswert

Füge diese Ressourcen deinen Lesezeichen hinzu, um mehr über DevOps-Teams und fortlaufende Updates zu DevOps bei Atlassian zu erfahren.

Abbildung: DevOps

DevOps-Community

Abbildung: DevOps

DevOps-Lernpfad

Abbildung: Karte

Kostenlos loslegen

Melde dich für unseren DevOps-Newsletter an

Thank you for signing up