Snyk fix: Automatische Behebung von Sicherheitslücken über die Snyk CLI
7. Oktober 2021
0 Min. LesezeitWir freuen uns, die offene Betaphase eines ganz neuen Befehls in der Snyk CLI anzukündigen, mit dem Sie Sicherheitslücken noch einfacher finden und beheben können als bisher: den Befehl snyk fix!
Die Snyk CLI ist bereits ein äußerst vielseitiges und leistungsstarkes Tool, mit dem Entwickler:innen Sicherheitslücken in ihren Projekten finden und beheben können – manuell in ihrer lokalen Entwicklungsumgebung oder automatisiert als Teil einer CI/CD-Pipeline.
Mit snyk test können Snyk-Nutzer:innen ihr Projekt scannen und eine Liste aller gefundenen Sicherheitslücken erhalten. Gibt es für eine Abhängigkeit einen Upgrade-Pfad, der die Sicherheitslücke behebt, zeigt die Snyk CLI entsprechende Empfehlungen sowie alle nötigen Informationen zum Upgrade-Pfad und zur Behebung der Sicherheitslücke an.
Der neue Befehl snyk fix geht noch einen Schritt weiter und setzt diese Empfehlungen automatisch um. Das ist besonders hilfreich für Entwickler:innen, die im Rahmen ihres lokalen Entwicklungs-Workflows schnell Korrekturen anwenden möchten, oder für alle, die die Behebung als Teil ihrer CI/CD-Prozesse automatisieren wollen.
Bevor wir uns das genauer ansehen, hier einige Hinweise zur Verfügbarkeit und zu den unterstützten Ökosystemen:
Der Befehl
snyk fixbefindet sich in der offenen Betaphase. Bei der Nutzung können daher Probleme auftreten.Derzeit werden nur Python-Projekte unterstützt, die Pip, Pipenv oder Poetry verwenden. Weitere Informationen finden Sie in der
snyk fix-Dokumentation.
Legen wir los!
Snyk CLI einrichten
Als Erstes sollten Sie sicherstellen, dass die Snyk CLI installiert ist. Wenn Sie die Snyk CLI bereits kennen und installiert haben, prüfen Sie, ob Sie Version v1.715.0 oder höher verwenden.
Die Einrichtung der Snyk CLI ist ganz einfach. Sie können sie schnell mit npm oder Homebrew installieren. Anschließend müssen Sie sich nur noch mit Ihrem Snyk-Konto authentifizieren. Falls Sie noch kein Konto haben, können Sie sich hier kostenlos registrieren:
Ihr Browser öffnet sich mit einer Aufforderung, die CLI zu authentifizieren. Führen Sie die Authentifizierung durch. Nun können Sie mit der Snyk CLI Ihre Projekte auf Sicherheitslücken scannen.
Führen wir die Snyk CLI zum ersten Mal aus und starten einen Test. Als Beispiel verwende ich diesen Fork des PyGoat-Projekts:

Wie die obigen Testergebnisse zeigen, hat die Snyk CLI 8 Sicherheitslücken identifiziert und Upgrade-Empfehlungen zu deren Behebung ausgegeben.
Wie geht es nun weiter? Am Ende der Testergebnisse empfiehlt die Snyk CLI, den brandneuen Befehl snyk fix zu aktivieren. Damit kommen wir zum nächsten Schritt!
snyk fix aktivieren
Wie eingangs erwähnt, befindet sich der neue Befehl snyk fix derzeit in der offenen Betaphase. Um ihn zu nutzen, müssen Sie die Funktion zunächst aktivieren. Das geht über Snyk Preview – einen eigenen Bereich in der Snyk-Benutzeroberfläche, über den Nutzer:innen auf neue Funktionen zugreifen können, die sich noch in der Entwicklung befinden.
Wechseln Sie in Snyk zu Einstellungen und anschließend zu Snyk Preview. Aktivieren Sie unter „Empfohlene Korrekturen automatisch in der CLI anwenden“ die Option snyk fix (1) und klicken Sie dann auf die Schaltfläche Änderungen speichern (2), um die Änderung zu übernehmen.

Sicherheitslücken in Ihrer lokalen Umgebung beheben
Nachdem wir den neuen Befehl aktiviert haben, probieren wir ihn aus. Geben Sie in der CLI Folgendes ein:
Die Snyk CLI wendet automatisch die empfohlenen Versions-Upgrades an, die zur Behebung der gefundenen Sicherheitslücken erforderlich sind, sofern dies möglich ist, und gibt eine Zusammenfassung der Ergebnisse aus:

In unserer PyGoat-Anwendung wurden 6 von 8 Sicherheitslücken behoben. Ein weiterer Scan zeigt, dass zwei Probleme übrig sind: eine Sicherheitslücke mittleren Schweregrads im Paket Jinja2 und eine LGPLv3.0-Lizenz im Paket psycopg2.
Als nächsten Schritt können Sie die Snyk CLI Ihr Projekt kontinuierlich überwachen lassen. Sie werden benachrichtigt, sobald eine Korrektur für die verbleibende Sicherheitslücke verfügbar ist oder neue Sicherheitslücken in diesen Abhängigkeiten entdeckt werden. Verwenden Sie dazu:
Sicherheitslücken als Teil Ihrer CI/CD-Prozesse beheben
Der neue Befehl snyk fix lässt sich auch verwenden, um die Behebung von Sicherheitslücken als Teil Ihrer CI/CD-Pipelines zu automatisieren. Sehen wir uns dazu ein Beispiel mit GitHub Actions an.
GitHub hat GitHub Actions eingeführt, damit Entwickler:innen ihre Workflows rund um Continuous Integration automatisieren können. Mit den GitHub Actions von Snyk lässt sich Snyk ganz einfach in diese Workflows integrieren und Sie können Ihre Projekte auf Sicherheitslücken prüfen – als Teil Ihres automatisierten CI/CD-Workflows und direkt in GitHub. Jetzt können Sie Sicherheitslücken auch im Rahmen dieses Workflows beheben.
Wir verwenden dazu diese Action, die den folgenden Workflow ausführt:
Init – Um schrittweise Versions-Upgrades zu vermeiden, prüft der Workflow zunächst die letzte Commit-Nachricht. So wird
snyk fixnicht erneut ausgeführt, wenn der letzte Commit bereits eine automatisierte Korrektur enthielt.Security – Der Workflow führt
snyk fixaus, um nach Sicherheitslücken zu suchen, und erstellt einen PR, wenn ein Upgrade-Pfad gefunden wird.
Die Action ist ganz einfach zu verwenden.
Die GitHub Actions von Snyk verwenden eine Umgebungsvariable namens SNYK_TOKEN. Dabei handelt es sich um Ihr Snyk-API-Token. Rufen Sie es ab, bevor Sie die GitHub Action konfigurieren. Sie finden es in der Snyk-Benutzeroberfläche auf der Seite „Einstellungen“.

Sobald Sie das Token haben, hinterlegen Sie es in den Repository-Einstellungen unter Einstellungen | Secrets als Secret:

Nun können Sie die Snyk Action konfigurieren. Öffnen Sie in Ihrem GitHub-Repository den Tab „Actions“ und klicken Sie oben links auf die Schaltfläche New workflow.
GitHub stellt Ihnen einige Workflow-Vorlagen bereit, die auf der Programmiersprache des Repositorys basieren. Um die Snyk GitHub Action zu konfigurieren, klicken Sie oben auf der Seite auf set up a workflow yourself:

Ersetzen Sie den Beispielcode durch diesen Code. Achten Sie darauf, die Namen Ihrer Branches in den entsprechenden Konfigurationsbereichen einzutragen:
Das war’s. Wenn Sie die neue Datei committen, wird ein neuer PR erstellt, der den Workflow auslöst und die automatisierte Behebung mit dem Befehl snyk fix simuliert. Sehen Sie sich diesen Workflow an, der alle Schritte veranschaulicht:

Wie im Workflow festgelegt, wird ein neuer PR mit den empfohlenen Korrekturen erstellt:

Probieren Sie snyk fix aus!
Einer der Gründe für die Einführung von Snyk Preview war, Nutzer:innen frühzeitig Zugriff auf Funktionen zu geben, die sich noch in der Entwicklung oder Betaphase befinden. snyk fix ist ein gutes Beispiel für eine neue Funktion, zu der wir gerne vor der offiziellen Veröffentlichung Rückmeldungen aus der Community erhalten möchten. Probieren Sie sie also aus und teilen Sie uns Ihre Meinung mit: snyk-fix-feedback@snyk.io
Weitere Informationen zur Verwendung des neuen Befehls sowie dazu, was unterstützt wird und was nicht, finden Sie in unserer snyk fix-Dokumentation.
Viel Erfolg beim Beheben!
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.