Wegweisend für Cloud-Native-Application-Security
21. Dezember 2020
0 Min. Lesezeit2020 war für uns alle ein unglaublich schwieriges Jahr. Doch da der Beginn eines neuen Jahres kurz bevorsteht, ist jetzt eine gute Gelegenheit, kurz innezuhalten und die Arbeit unserer Engineering- und Produktteams zu würdigen. Diese Arbeit wurde unter schwierigen und belastenden Bedingungen geleistet und hat dazu beigetragen, Snyk als führende, entwicklerorientierte Cloud-Native-Application-Security-Lösung auf dem Markt zu positionieren.
Was ist Cloud-Native-Application-Security?
Die Softwareentwicklung, wie wir sie bis vor wenigen Jahren kannten, hat sich verändert.
Die Prozesse für die Entwicklung und Bereitstellung von Anwendungen haben sich verändert, um schnellere und häufigere Deployments zu ermöglichen. Auch der Code, aus dem Anwendungen bestehen, hat sich verändert: Er setzt sich zunehmend aus Open-Source-Code, proprietärem Code, Containern und Infrastructure as Code zusammen.
Aus Sicht der Application Security stellen diese Veränderungen eine einzigartige Herausforderung dar, die eine einzigartige Lösung erfordert. Auf der SnykCon haben wir dieses Jahr unsere Cloud-Native-Application-Security-Plattform angekündigt – einzigartig in der Branche als einzige entwicklerorientierte Lösung, mit der sich die gesamte Cloud-native-Anwendung in einer DevOps-Umgebung schnell und sicher entwickeln lässt.
Beginnen wir also mit unserem Rückblick.
1. Frühzeitige Integration über den gesamten SDLC hinweg
Der erste Schritt im Schwachstellenmanagement besteht darin, überhaupt erst ein Problem zu erkennen. 2020 haben wir viel dafür getan, dass Snyk einfach in den verschiedenen Phasen des Anwendungslebenszyklus implementiert werden kann. Dazu gehörten neue IDE-Plugins, Verbesserungen an unseren GitHub- und Bitbucket-Integrationen sowie neue Integrationen mit privaten Registries und Container-Registries.
IDEs
Die Integration von Sicherheitstests in die lokale Entwicklungsumgebung von Entwicklern ist ein entscheidender Bestandteil davon, Sicherheit nach links zu verlagern. So können Entwickler Probleme möglichst früh finden und beheben, bevor ihre Behebung zu kostspielig wird. 2020 hat Snyk die bestehende Unterstützung für Eclipse und IntelliJ ausgebaut und die Unterstützung auf ALLE wichtigen JetBrains-IDEs erweitert – WebStorm, PyCharm, PhpStorm, GoLand und weitere.

Snyk CLI
Mit der Integration von Snyk Container und Snyk IaC kann die Snyk CLI mehr als je zuvor. Dafür waren einige Aktualisierungen an der Funktionsweise der CLI nötig, um bestehende und künftige Funktionen zu unterstützen. Das Ergebnis: ein verbesserter Workflow und neue Möglichkeiten.
Snyk Container test
Der bisherige Befehl snyk test --docker wurde durch den neuen Befehl snyk container test und den zugehörigen Unterbefehl monitor ersetzt. Neben der CLI-Syntax bietet der neue Befehl container auch einige Verbesserungen unter der Oberfläche:
Wie die geänderte Bezeichnung bereits vermuten lässt, können wir mehr als nur Docker-Container scannen. Snyk funktioniert mit allen OCI-Containern, auch wenn keine Docker-Engine ausgeführt wird. Wenn Sie podman verwenden oder Tools wie jib für Ihre Java-Apps nutzen, kann Snyk diese scannen.
Wenn Sie ein Archiv der Dateien aus einem Container-Image extrahiert haben und dieses statt des Images selbst scannen möchten, unterstützt Snyk Container jetzt auch das.
Wenn Sie außerdem Distroless-Images verwenden, um Schwachstellen in Ihrem Basis-Image zu reduzieren, scannt die neue Snyk CLI auch diese ordnungsgemäß.
Da es jetzt Unterbefehle für
containerundiacgibt, wurde außerdem das integrierte Hilfesystem vereinfacht und verbessert. So erhalten Sie kontextbezogene Hilfe, wenn Sie sie benötigen.
Snyk IaC test
Snyk Infrastructure as Code (IaC) war unsere dritte große Produktveröffentlichung im vergangenen Jahr – mehr dazu weiter unten. Anfänglich unterstützte Snyk IaC nur Scans aus Git-Repositories. Da immer mehr Kunden ihre Tests als Teil ihrer CI-Pipelines automatisieren wollten, haben wir diese Tests auch in der Snyk CLI verfügbar gemacht. Mit dem Befehl snyk iac test können Sie Kubernetes- und Terraform-Dateien scannen.
Git-basierte Workflows
Dieses Jahr haben wir uns außerdem darauf konzentriert, unsere bestehenden Integrationen mit verschiedenen Git-basierten Quellcodeverwaltungssystemen zu verbessern, sie entwicklerfreundlicher zu gestalten und ihren Nutzern ein stärker integriertes Erlebnis zu bieten.
GitHub
Wie Sie vermutlich erwarten, ist unsere GitHub-Integration der beliebteste Integrationspunkt für Snyk. Deshalb führen wir kontinuierlich neue Funktionen ein, um die Nutzung so reibungslos wie möglich zu gestalten.
Zunächst haben wir die Möglichkeit hinzugefügt, das GitHub-Konto festzulegen, in dessen Namen Snyks Fix- und Upgrade-PRs eröffnet werden. Außerdem lassen sich diese PRs jetzt bestimmten Mitwirkenden im Repository zuweisen. Darüber hinaus können Mitwirkende nun beantragen, einen fehlgeschlagenen Snyk-Test zu überspringen.

GitHub-Sicherheitsintegration
GitHub hat im Oktober Funktionen für Sicherheitsintegrationen von Drittanbietern eingeführt. Dadurch können wir Ergebnisse von Snyk Container und Snyk IaC direkt auf der Registerkarte „Security“ von GitHub für Ihre Repositories bereitstellen. GitHub Actions unterstützen wir schon seit einiger Zeit. Mit dieser neuen Funktion erhalten Entwickler, die GitHub bereits intensiv nutzen, ihre detaillierten Sicherheitsberichte direkt in der GitHub-Benutzeroberfläche.

Dockerfile-Scans aus SCM
Container bieten viele Vorteile, doch einer der Nebeneffekte ist, dass die Images separat von den Dockerfiles gespeichert werden, mit denen sie erstellt wurden. Aus Sicherheitssicht bedeutet das: Sie wissen erst, ob Ihr Container sicher ist, nachdem Sie ihn erstellt und mit einem Scanner überprüft haben.
Das ist jetzt anders. Snyk lässt sich bereits in Ihre bevorzugten SCM-Tools integrieren. Da Ihr Dockerfile wahrscheinlich zusammen mit Ihrem Code gespeichert ist, können wir Dockerfiles jetzt direkt aus einem Repository erkennen und scannen. Anschließend prüfen wir, welches Basis-Image Sie ausgewählt haben, und melden die darin vorhandenen Schwachstellen. So können Sie ganz einfach mit dem Container-Scanning beginnen und erhalten sofort Ergebnisse, denn gerade zu Beginn ist das Basis-Image häufig die Ursache für die meisten Schwachstellen.
Ein zusätzlicher Vorteil: Die erkannten Dockerfile-Container-Images lassen sich jetzt den von Ihnen durchgeführten Tests zuordnen. In Snyk Container konnten diese beiden Objekte schon immer verknüpft werden. Der Prozess ist jetzt jedoch einfacher: Sie müssen nicht mehr in Git-Repositories nach Ihrem Dockerfile suchen und sehen leicht, welche Images mit bestimmten Dockerfiles verknüpft sind.
Bitbucket
Nutzer von Bitbucket Cloud freuten sich über die Nachricht, dass Snyk Code Insights unterstützt. Dadurch können sie Probleme direkt in der Bitbucket-Benutzeroberfläche einsehen. Außerdem haben wir die Snyk Pipe verbessert, die Schwachstellen als Teil der CI/CD-Pipelines von Bitbucket scannt, und ebenfalls Code Insights integriert.
Azure Repos
Außerdem haben wir Azure Repos Server integriert und damit unsere Unterstützung im gesamten Microsoft-Azure-Ökosystem ergänzt: von Azure Repos (cloudbasiert und jetzt auch lokal) über Azure Pipelines bis hin zu Azure Container Registry und Azure Functions.
2. Unterstützung des Ökosystems erweitern
2020 haben wir auch die Abdeckung bestehender Programmiersprachen verbessert und die Sicherheitstests von Snyk auf weitere Paketmanager und Ökosysteme ausgeweitet.
Java
Wir haben die Sicherheitsscans von Java-Gradle-Projekten verbessert, die aus Git-Repositories (GitHub/GitLab/Bitbucket/Azure Repos) importiert werden, indem wir die Unterstützung für gradle.lockfile-Dateien erweitert haben. Die Verwendung von Lockfiles bietet verschiedene Vorteile. Für die Sicherheitstests von Snyk sorgt sie vor allem für genauere und vollständigere Ergebnisse. Weitere Informationen finden Sie hier.
Python
Die Beliebtheit dieses Ökosystems spiegelt sich im stetigen Anstieg der Python-Projekte wider, die von Snyk-Nutzern getestet werden. Deshalb haben wir dieses Jahr einige Verbesserungen eingeführt, mit denen Unternehmen ihren Python-Code besser schützen können. Wir haben Poetry-Unterstützung hinzugefügt. Nutzer dieses aufstrebenden Python-Paket- und Projektmanagers können ihre Projekte nun über die Snyk CLI testen und überwachen. Außerdem haben wir Pipenv-Unterstützung in unsere SCM-Integrationen aufgenommen. Um das Beheben von Python-Schwachstellen zu vereinfachen, haben wir automatisierte Remediation-Workflows für Python hinzugefügt.

Ein Poetry-Projekt mit der Snyk CLI scannen
Golang
Golang ist in den vergangenen Jahren exponentiell gewachsen und auch bei Snyk-Nutzern sehr beliebt. 2020 haben wir in die Verbesserung der Leistung und Abdeckung für diese Sprache investiert. Der Wechsel zu depGraphs hat das Scannen von Go-Projekten deutlich verbessert und ermöglicht extrem schnelle Scans großer Projekte wie Kubernetes! Die Unterstützung von Go-Modules-Projekten, die für CLI-Scans bereits verfügbar war, wurde auf unsere Git-basierten SCM-Integrationen ausgeweitet. Außerdem haben wir daran gearbeitet, die Erkennung von Schwachstellen in Go-Containern zu ermöglichen.

Kubernetes und Terraform
2020 hat Snyk sein drittes offizielles Produkt veröffentlicht: Snyk Infrastructure as Code (Snyk IaC). Damit können Sie Ihre Deployment-Konfigurationen bereits im Code scannen und wissen so vor dem Deployment, dass die von Ihnen erstellten Ressourcen korrekt konfiguriert sind. Da immer mehr Anwendungen und Cloud-Infrastruktur mithilfe deklarativer Manifeste definiert werden, müssen immer mehr Entwickler sicherstellen, dass ihre Anwendungen und Services sicher sind. Änderungen können mit jedem Commit vorgenommen werden. Deshalb ist der einzige Weg, Sicherheit in großem Maßstab zu gewährleisten, sie in die Pipeline zu integrieren und Probleme vor dem Deployment zu erkennen und zu beheben.

3. Schwachstellen-Backlogs priorisieren
Schwachstellen-Backlogs wachsen schnell auf Tausende von Problemen an. Es ist unmöglich und meist auch unnötig, jedes einzelne davon zu beheben. Doch wo fängt man an?
Deshalb haben wir uns dieses Jahr intensiv darauf konzentriert, Entwicklungs- und Sicherheitsteams dabei zu unterstützen, die Maßnahmen mit dem größten Einfluss auf die Sicherheit zu ermitteln. Zu diesem Zweck haben wir zahlreiche entwicklerorientierte Funktionen zur Priorisierung eingeführt. Sie bieten diesen Teams die erforderlichen Sicherheitstools und den nötigen Kontext, um ihre Probleme zu sichten und Korrekturen effektiv zu priorisieren.
Prioritätsbewertung
Der brandneue Priority Score von Snyk ist ein fortschrittliches, integriertes Bewertungssystem, das auf einem proprietären Algorithmus basiert. Dieser berücksichtigt zahlreiche Faktoren, darunter den CVSS-Score, die Verfügbarkeit eines Fixes, bekannte Exploits, das Alter der Schwachstelle und die Frage, ob sie erreichbar ist. Der resultierende Score wird auf den einzelnen Problemkarten in der Snyk-Benutzeroberfläche angezeigt und erleichtert das Filtern und Sortieren des Backlogs.

Erreichbare Schwachstellen
Reachable Vulnerabilities ist ein fortschrittliches Analysetool, das Schwachstellen in den Kontext der Anwendung setzt und Ihnen dabei hilft festzustellen, ob eine anfällige Funktion im Ausführungspfad der Anwendung erreichbar ist. Snyk-Nutzer verwenden Reachable Vulnerabilities bereits, um Entscheidungen über die Behebung von Schwachstellen in ihren Java-Maven- und Gradle-Projekten zu treffen. Im kommenden Jahr werden wir die Unterstützung auf weitere Ökosysteme ausweiten.

Exploit-Reife und relative Bedeutung von Linux-Schwachstellen
Die Funktion zur Prioritätsbewertung funktioniert auch mit Snyk Container und berücksichtigt zusätzliche, containerspezifische Details. Hat eine Schwachstelle beispielsweise einen ausgereiften Exploit und wird sie aktiv in einem Kubernetes-Cluster ausgenutzt, steigt der Priority Score. Ist der Kubernetes-Pod so konfiguriert, dass sich das Risiko erhöht – etwa weil der Container als Root ausgeführt wird –, fließt auch das in den Priority Score ein.
Außerdem hängt die Bewertung von Schwachstellen in Linux-Paketen manchmal von der jeweiligen Linux-Distribution ab, die Sie für Ihre Container-Images auswählen. Eine Schwachstelle in einem Linux-Paket, die zunächst als hochriskant eingestuft wird, kann in einer bestimmten Distribution wie Debian oder Ubuntu als wenig schwerwiegend gelten. Snyk berücksichtigt beide Bewertungen, betrachtet jedoch die Maintainer der Distribution als maßgebliche Quelle und übernimmt daher die Bewertung der Distribution für die Schwachstelle (in diesem Beispiel „niedrig“).

Snyk Container mit distributionsspezifischen Sicherheitsdetails
4. Mehr Probleme einfacher und mit größerer Sicherheit beheben
Es gibt zahlreiche Tools, die Ihren Code auf Probleme untersuchen. Sie dabei zu unterstützen, Maßnahmen zu ergreifen und diese Probleme zu beheben, ist eine ganz andere Sache. Automatisierte, umsetzbare Behebungen sind ein zentraler Bestandteil der Snyk-Plattform und standen daher in diesem Jahr ganz natürlich im Fokus der Produkt- und Entwicklungsteams von Snyk.
Abhängigkeiten aktuell halten
Im März gaben wir eine Partnerschaft zwischen Snyk und Neighbourhoodie Software, den Machern von Greenkeeper, bekannt. Diese Partnerschaft ermöglichte die Einführung von automatischen Dependency-Upgrades von Snyk. Dabei werden automatisch umsetzbare Pull Requests mit umfassendem Kontext erstellt, sobald neue Versionen von Abhängigkeiten erkannt werden. So bleiben Projekte gesünder und sicherer.
Änderungen mit Sicherheit zusammenführen
Damit Entwickler:innen die Fehlerbehebungs-PRs von Snyk mit größerer Sicherheit zusammenführen können, haben wir Merge Advice eingeführt – ein neues Badge für Pull Requests, das anzeigt, ob die Fehlerbehebung wahrscheinlich zu Breaking Changes führt. So erhalten Entwickler:innen die nötigen Informationen, um über das Zusammenführen zu entscheiden.

Snyk-PR-Tests überspringen
Snyk führt automatisch Sicherheits- und Lizenztests für jeden neuen Pull Request aus, den Sie oder andere Mitwirkende in einem GitHub-Repository eröffnen. Um den Entwicklungsworkflow so wenig wie möglich zu stören, haben wir eine Funktion ergänzt, mit der Entwickler:innen die vollständigen Details dazu einsehen können, warum ihr Pull Request fehlgeschlagen ist, und anschließend die Administrator:innen bitten können, den Test zu überspringen und den Pull Request „zwangsweise zu bestehen“.
Anleitung zu Infrastructure as Code
Snyk IaC bietet eine einzigartige Benutzeroberfläche, die IaC-Probleme darstellt und erklärt, wie sie behoben werden können. In Gesprächen mit Kund:innen haben wir festgestellt, dass sich viele Unternehmen bei IaC noch in der frühen Phase der Formalisierung befinden. Die Kenntnisse sind unterschiedlich ausgeprägt, und gerade bei Sicherheitsproblemen benötigen viele Nutzer:innen zusätzliche Anleitungen. Außerdem handelt es sich bei IaC-Problemen nicht immer um Schwachstellen im klassischen Sinn. Selbst wenn Sie Zeit für die Recherche hätten, können Sie nicht immer auf eine Quelle wie die NVD zurückgreifen, um ein Problem und zugehörige Referenzen nachzuschlagen. Deshalb haben wir Snyk IaC um zusätzliche Anleitungen ergänzt, die Kontext und Auswirkungsanalysen zu den erkannten Problemen bereitstellen.

5. Sicherheit und Compliance in großem Maßstab verwalten
Unternehmen, die Anwendungssicherheitsprogramme für Tausende von Anwendungen und Projekten verwalten, benötigen Möglichkeiten, Effizienz und Produktivität zu maximieren. Daher investierte Snyk 2020 in die Unterstützung von Governance in großem Maßstab und führte mehrere wichtige Funktionen für Snyk Open Source, Snyk Container und Snyk IaC ein.
Sicherheits- und Lizenzrichtlinien
Damit Unternehmen Sicherheit und Compliance in ihren verschiedenen Projekten und Teams einfacher steuern können, führte Snyk eine neue Policy-Engine ein. Sie ermöglicht die Definition und Anpassung von Lizenz- und Sicherheitsrichtlinien sowie deren Anwendung.
Mit Lizenzrichtlinien können Unternehmen zulässige rechtliche Rahmenbedingungen festlegen und durchgängig durchsetzen. Außerdem können Verantwortliche in den Lizenzrichtlinien von Snyk konkrete rechtliche Anweisungen hinterlegen, an denen sich Entwickler:innen bei bestimmten Lizenzproblemen orientieren können.
Mit Sicherheitsrichtlinien können Sie Regeln festlegen, um Schwachstellen automatisch höher oder niedriger zu priorisieren. Jede Richtlinie enthält eine oder mehrere Regeln, die genau festlegen, wie mit Schwachstellen umzugehen ist. Regeln lösen Aktionen anhand bestimmter Bedingungen aus. Derzeit können sie den Schweregrad von Schwachstellen je nach Typ (dafür verwenden wir CWE, einen gängigen Standard zur Kategorisierung von Schwachstellen anhand gemeinsamer Merkmale) und Exploit-Reifegrad ändern. Eine Richtlinie kann beispielsweise eine Regel enthalten, die den Schweregrad aller Schwachstellen vom Typ XSS (Cross-Site-Scripting) mit ausgereiften Exploits erhöht, und eine weitere, die den Schweregrad von RCE-Schwachstellen (Remote Code Execution) senkt.

Projektverwaltung
Bei der Verwaltung Tausender unterschiedlicher Projekte mit jeweils Tausenden von Sicherheitsproblemen kann man leicht den Überblick verlieren. Schon die Suche nach einem Projekt kann schwierig sein – ganz zu schweigen davon, herauszufinden, ob es zu den Projekten gehört, die dringend Ihre Aufmerksamkeit erfordern.
Mit den Projektattributen und Projekt-Tags von Snyk können Sie Ihre Snyk-Projekte (Snyk Open Source, Snyk Container und Snyk IaC) standardisiert organisieren, indem Sie ihnen Metadaten zu Geschäftsauswirkungen und Technologie-Stacks zuordnen. So lassen sich Projekte leichter suchen und finden. Außerdem können Sie Ihre Maßnahmen gezielt auf Projekte ausrichten – etwa anhand ihrer Deployment-Umgebung, ihrer Lebenszyklusphase, ihres Prioritätswerts oder anderer für Ihr Unternehmen relevanter Merkmale.
Backlog-Verwaltung
Die Backlog-Verwaltung, die erst vor wenigen Monaten auf der SnykCon angekündigt wurde, erstellt gezielte Pull Requests zur Behebung von Schwachstellen in Ihrem Backlog – basierend auf deren Prioritätswert. So können Sie den Schwachstellen-Backlog in einem besser zu bewältigenden Tempo abbauen.
Verwaltung der Lizenz-Compliance
Open-Source-Abhängigkeiten, die Sie in Ihre Projekte einbinden, bergen sowohl Sicherheits- ALS AUCH Rechtsrisiken. In diesem Jahr haben wir die auf Entwickler:innen ausgerichteten Funktionen von Snyk zur Verwaltung der Lizenz-Compliance angekündigt. Damit können Sie die Einhaltung der von Ihnen verwendeten Open-Source-Lizenzen einfacher verwalten.
Snyk deckt die Lizenz-Compliance umfassend ab: durch die Integration in den gesamten SDLC (CLI, IDE, SCM, CI/CD) und die Möglichkeit, Lizenzen sowohl in direkten als auch in transitiven Abhängigkeiten zu erkennen. Unterstützt werden alle gängigen Programmiersprachen, darunter – natürlich ohne bestimmte Reihenfolge – Java, JavaScript, Scala, Go, Python, Ruby, PHP, Swift, Objective-C und .NET.
Markierte Lizenzprobleme werden mit dem vollständigen Kontext angezeigt, den Entwickler:innen benötigen, um den Umfang des Problems einzuschätzen und Maßnahmen zu ergreifen. Dazu gehören detaillierte rechtliche Anweisungen zu den nächsten Schritten, die zur Einhaltung der Unternehmensrichtlinien erforderlich sind. Verschiedene Dashboard- und Berichtsfunktionen ermöglichen es Verantwortlichen, detaillierte Listen der verwendeten Lizenzen einzusehen und weiterzugeben. Dazu zählt auch ein BoM-Bericht, der alle Open-Source-Komponenten und Lizenzen samt Copyright-Informationen auflistet.
Ein Ausblick auf 2021 (Spoiler-Alarm!)
2020 war bereits vollgepackt mit Produktneuheiten von Snyk – doch warten Sie erst einmal ab, was wir für 2021 geplant haben!
Die zentralen Schwerpunkte von Snyk – Benutzerfreundlichkeit für Entwickler:innen, automatisierte und umsetzbare Behebungen sowie tiefgreifende Sicherheit – werden auch bei den kommenden Ankündigungen eine wichtige Rolle spielen. Wir werden ein bedeutendes Ökosystem unterstützen und einige der einzigartigen Funktionen weiter stärken, die Snyk zur führenden Lösung für Cloud-native Anwendungssicherheit auf dem Markt machen.
Wir wünschen uns allen ein frohes und gesundes neues Jahr!