Skip to main content

Mit Snyk durchgängiges DevSecOps auf Microsoft Azure umsetzen

Artikel von

26. Mai 2020

0 Min. Lesezeit

Wir freuen uns, die Unterstützung für Azure Repos Server bekannt zu geben. Damit können Entwickler, die Azure DevOps lokal nutzen, Sicherheitslücken und Lizenzprobleme in Open-Source-Abhängigkeiten erkennen und beheben.

Die neue Integration ergänzt unsere Unterstützung im gesamten Microsoft-Azure-Ökosystem – von Azure Repos (cloudbasiert und jetzt auch lokal) über Azure Pipelines bis hin zu Azure Container Registry und Azure Functions. So können Azure-Nutzer DevSecOps während des gesamten Softwareentwicklungszyklus umsetzen.

Azure Repos Server ist Teil von Azure DevOps Server, früher bekannt als Team Foundation Server (TFS) – einer lokal gehosteten Suite für die kollaborative Softwareentwicklung. Damit können Entwickler ihren Git-Entwicklungsworkflow lokal verwalten, einschließlich Pull Requests und erweiterter Dateiverwaltung.

Mit der neuen Integration können Entwickler, die Azure Repos Server nutzen:

  • Vorhandene Sicherheitslücken in Projekten erkennen, die in Azure Repos Server verwaltet werden. Zu jeder Sicherheitslücke werden umsetzbare, kontextbezogene Informationen angezeigt, etwa der genaue Abhängigkeitspfad, über den das Problem eingeführt wurde. So lässt sich die Priorisierung beschleunigen.

  • Das Einführen neuer Sicherheitslücken verhindern, indem neue Pull Requests gescannt werden. Jeder neue Pull Request wird vor dem Merge in Azure Repos Server gescannt, um sicherzustellen, dass er keine neuen Sicherheitslücken einführt.

  • Erkannte Probleme beheben. Snyk ermittelt die erforderliche Korrektur für direkte und transitive Abhängigkeiten und erstellt automatisch einen Pull Request mit den nötigen Upgrades oder Patches – direkt im Azure-Repos-Server-Workflow.

  • Kontinuierlich nach neuen Sicherheitslücken suchen. Snyk überwacht importierte Projekte täglich und benachrichtigt Entwickler, sobald neue Sicherheitslücken bekannt werden. Richtlinien ermöglichen es, den Schweregrad festzulegen, ab dem ein Merge fehlschlägt.

Sehen wir uns das genauer an.

Snyk mit Azure Repos Server integrieren

Für die Einrichtung der Integration benötigen wir zunächst zwei Angaben aus Azure: die URL unserer Azure-Repos-Server-Organisation und ein Zugriffstoken.

Beim Erstellen des Snyk-Zugriffstokens müssen wir Custom defined auswählen und dann ein möglichst weit in der Zukunft liegendes Ablaufdatum festlegen. Außerdem müssen wir unter Scopes | Code, die Option Read & write auswählen.

Azure-DevOps-Dialog zum Erstellen eines persönlichen Zugriffstokens mit ausgewähltem benutzerdefiniertem Ablaufdatum und Lese- und Schreibberechtigungen für Code

Mit diesen beiden Angaben öffnen wir in Snyk die Seite „Integrations“ und wählen Azure Repos aus.

Snyk-Integrationsseite mit Azure Repos unter den Quellcodeverwaltungsintegrationen; GitHub ist als konfiguriert gekennzeichnet.

Nun geben wir die URL unserer Azure-Repos-Server-Organisation und das zuvor erstellte Token ein.

Azure-Repos-Integrationseinstellungen mit Feldern für Kontodaten, einem ausgeblendeten persönlichen Zugriffstoken, einer Schaltfläche „Speichern“ und Anweisungen zum Erstellen eines Tokens.

Nach einem Klick auf die Schaltfläche Save erscheint eine Erfolgsmeldung, die bestätigt, dass Snyk erfolgreich mit Azure Repos Server integriert wurde.

Snyk Azure-Repos-Integrationseinstellungen mit erfolgreicher Aktualisierung und verbundenen Repository-Zugangsdaten.

Jetzt müssen wir nur noch auf Add your Azure Repos repositories to Snyk klicken und die Repositorys auswählen, die wir mit Snyk schützen möchten.

Snyk-Importbildschirm für Azure Repos zur Auswahl von Repositorys, zum Hinzufügen benutzerdefinierter Dateipfade und zum Ausschließen von Ordnern aus Scans.

Snyk importiert unser Projekt und führt einen ersten Scan auf Sicherheitslücken und Lizenzprobleme durch. Wie in diesem Beispiel zu sehen ist, weist unser Node.js-Demoprojekt mehrere Sicherheitslücken unterschiedlichen Schweregrads auf.

Snyk-Projekt-Dashboard mit einem importierten Azure-Repos-Projekt namens Demo/Demo mit package.json und der Anzahl der Schwachstellen.

Sicherheitslücken beheben

Nachdem wir die Integration eingerichtet haben, können wir mit Snyk Sicherheitslücken finden und beheben.

Wenn wir das Projekt öffnen, sehen wir alle Probleme, die Snyk in unserem Azure-Repos-Server-Repository erkannt hat: 66 Sicherheitslücken und 2 Lizenzprobleme, die durch die Open-Source-Abhängigkeiten des Projekts eingeführt wurden.

Snyk-Projektübersicht für Demo/package.json mit Sicherheitslücken, Abhängigkeiten und Azure Repos als Quelle

Snyk bietet konkrete Empfehlungen zur Behebung, damit wir Probleme schnell lösen können. Dazu gehören der vollständige Abhängigkeitspfad, über den das Problem eingeführt wurde, ein Hinweis darauf, ob die Sicherheitslücke ausnutzbar ist, und das erforderliche Upgrade zur Behebung.

Bericht zu Sicherheitslücken mit einem ausgereiften Exploit, der betroffenen adm-zip-Version 0.4.7 und der Empfehlung, auf Version 0.4.11 zu aktualisieren

Ein Klick auf Fix this vulnerability erstellt automatisch einen Pull Request in Azure Repos Server, der das erforderliche Upgrade enthält.

Azure-DevOps-Pull-Request mit dem Titel „[Snyk] Sicherheitsupdate für adm-zip von 0.4.7 auf 0.4.11“, ohne Merge-Konflikte und mit Details zur Behebung der Sicherheitslücken.

Kontinuierliche Sicherheit

Snyk sorgt dafür, dass unsere Azure-Repos-Server-Repositorys sicher bleiben, indem kontinuierlich nach neuen Sicherheitslücken gesucht wird.

Erstens benachrichtigt uns Snyk, wenn eine neue Sicherheitslücke bekannt wird und in unseren Projekten erkannt wird. Dabei erhalten wir alle erforderlichen Informationen, um die Sicherheitslücke schnell zu beheben.

Zweitens stellt Snyk sicher, dass Codeänderungen keine neuen Sicherheitslücken einführen. Bei jedem neuen Pull Request in Azure Repos Server scannt Snyk diesen automatisch auf Sicherheitslücken und Lizenzprobleme, damit die Probleme vor dem Merge behoben werden.

DevSecOps im gesamten Azure-SDLC unterstützen

Diese Integration ist die jüngste einer Reihe nativer Integrationen, die Snyk Microsoft-Azure-Nutzern bereitstellt. Sie helfen Entwicklern, ihre Anwendungen während des gesamten SDLC zu schützen – von der Codeentwicklung über CI/CD bis hin zur Laufzeit.

Wenn Sie mit einer dieser Integrationen loslegen möchten, besuchen Sie die Integrationsseite in Snyk oder erfahren Sie mehr in unserer Dokumentation zur Azure-Repos-Integration.

Bitte beachten Sie: Die Integration unterstützt TFS v2018 Update 2 und höher und ist nur in unseren Pro- und Enterprise-Tarifen verfügbar.

Bleiben Sie sicher!