Skip to main content

360° Anwendungssicherheit mit Snyk

Artikel von
Headshot of Soumen Mukherjee

Soumen Mukherjee

ambassadors program

24. April 2024

0 Min. Lesezeit

Die Anwendungsentwicklung ist ein mehrstufiger Prozess. Eine App durchläuft verschiedene Phasen, die jeweils einen eigenen Schwerpunkt haben. Anwendungssicherheit, auch AppSec genannt, ist jedoch in allen Phasen durchgehend wichtig.

Wenn Entwickler beispielsweise Code schreiben, wird erwartet, dass dieser sicher ist. Ebenso müssen die Artefakte, an denen gearbeitet wird oder die als Ergebnis der jeweiligen Phasen entstehen, sicher sein.

Für Unternehmen wird es zum Albtraum, wenn sie mit einer Vielzahl von Tools und Plattformen umgehen müssen, die jeweils eine bestimmte Funktion als Teil der Sicherheitskontrollen einer Phase erfüllen. Viele unterschiedliche Tools sind nicht nur unverhältnismäßig teuer, sondern stellen auch das IT-Team vor Herausforderungen bei der Verwaltung und Governance der Assets. Außerdem bedeuten mehrere Tools mehrere Integrationen in der Build-Pipeline, was den Build-Prozess zusätzlich verlangsamt oder verlängert. Auch die Entwickler-Community ist von einer solchen Situation wenig begeistert: Mehrere Tools bedeuten, mit verschiedenen Fenstern zu arbeiten, und jedes Tool bringt eine eigene Lernkurve sowie Probleme beim Zugriff und bei der Zusammenarbeit mit sich.

Doch für all das gibt es eine Lösung. Eine Plattform, die alle erforderlichen Sicherheitskontrollen für die einzelnen Phasen des sicheren Software-Entwicklungslebenszyklus bereitstellt, löst die oben beschriebenen Probleme. Heute werfen wir deshalb einen kurzen Blick auf die verschiedenen Funktionen der Snyk-Plattform und darauf, wie sie umfassende Anwendungssicherheit bietet.

Kreisförmiges Snyk-Workflow-Diagramm mit den verbundenen Bereichen Programmierung, Schwachstellenmanagement, Container, Infrastructure as Code und Bereitstellung

Programmierung

Als Security Architect beginnen Sie bei der Entwicklung einer Toolchain für sicheres Programmieren damit, sicherzustellen, dass die Entwickler die Standards für sicheres Programmieren kennen. Anschließend folgt ein schrittweiser Prozess, der Zeit und wiederholtes Eingreifen von Menschen erfordert. Mit Snyk Code können Sie den Sicherheitsprozess nach links verlagern: Entwickler nutzen die Snyk-Erweiterung für Ihre IDE und erhalten direkt Informationen zu den Schwachstellen, die sie durch Fehler und Versäumnisse beim Programmieren möglicherweise einbauen. Die Snyk-Erweiterung wird von allen gängigen IDEs unterstützt.

Weitere Informationen zum Einstieg mit der Snyk-Erweiterung in Ihrer IDE finden Sie in der Snyk Extension Documentation.

Alternativ können Sie als weitere Kontrollinstanz für den Code Ihr Code-Repository direkt mit Snyk integrieren. Snyk scannt Ihr Repository regelmäßig auf Änderungen seit dem letzten Scan und weist auf dabei entdeckten anfälligen Code hin. Snyk lässt sich in alle gängigen On-Premises- und Cloud-Lösungen für Code-Repositories integrieren.

Wie Sie schnell loslegen können, erfahren Sie in der Snyk Code documentation.

Management von Schwachstellenrisiken

Ein Großteil der heutigen Software basiert auf zahlreichen eingebundenen Frameworks von Drittanbietern. Dieses Modell bietet Unternehmen viele Vorteile. Wiederverwendbare Codebausteine können die Anwendungsentwicklung beschleunigen und den Funktionsumfang erweitern. Sie haben jedoch auch eine Kehrseite: Sie können Schwachstellen oder schädlichen Code enthalten, der schwerwiegende Sicherheitsvorfälle bei den Nutzern verursachen kann. Als Security Architect können Sie mit Snyk technische Kontrollen im Sinne der Shift-Left-Strategie einführen und Entwickler stärken: Die Snyk-Erweiterung für IDEs scannt Open-Source-Pakete während der Entwicklung auf Schwachstellen.

Da Schwachstellen in Paketen von Drittanbietern jederzeit neu auftreten können, liefert die Integration von Snyk in Code-Repositories dem AppSec-Team die Informationen, die es benötigt, um den Schweregrad neuer Schwachstellen einzuschätzen. Außerdem kann das Team spontan einen PR für das zuständige Entwicklungsteam erstellen, damit es die Schwachstelle behebt und die Änderung in den Main-Branch übernimmt.

Wie Snyk-Fix-PRs und Merge Requests funktionieren, erfahren Sie in der Snyk documentation.

Management von Container-Schwachstellen

Containerbasierte Entwicklung ist heute der Standard. Container sind nicht auf Cloud-Umgebungen beschränkt, sondern ein wesentlicher Bestandteil von On-Premises-Bereitstellungen in Unternehmen. Auch in eingebetteten Systemen kommen sie häufig zum Einsatz: in Appliances oder Geräten mit einer stark angepassten Linux-Version als Betriebssystem und einem minimalen Footprint, der für das Hosten der Container in einer abgeschotteten und sicheren Umgebung erforderlich ist.

Das alles ist zwar von Vorteil, bietet jedoch keinen Schutz vor der Ausnutzung von Container-Schwachstellen, die durch fehlerhaften Code oder Pakete von Drittanbietern in der Anwendung entstehen – oder durch Pakete von Drittanbietern und native Pakete in den jeweiligen Basis-Images der Container.

Schwachstellen in Container-Images entstehen in der Regel durch unsichere Bibliotheken oder andere Abhängigkeiten, die in ein Container-Image eingebunden sind. Images können auch schädlichen Code enthalten, der bei einem Software-Supply-Chain-Angriff oder einem ähnlichen Einbruch in die Entwicklungsumgebung eingeschleust wurde.

Viele dieser Probleme lassen sich früh im Entwicklungszyklus mit Snyk Container erkennen. Sie können Snyk in verschiedene Container-Repositories integrieren oder Container über die Build-Pipelines anbinden. Wichtig ist auch, dass Sie die Funktionen der Snyk-Erweiterung für IDEs nutzen können, um Probleme durch fehlerhaft geschriebene Docker-Dateien oder schädliche Images als Basisartefakte zu erkennen.

Alle Funktionen von Snyk Container finden Sie in der Snyk documentation.

Sicherheit von Infrastructure as Code

Mit dem Aufkommen von DevOps gewann Infrastructure as Code an Bedeutung. Studien zeigen jedoch, dass die meisten Sicherheitslücken in Cloud-Anwendungen auf Fehlkonfigurationen von Sicherheitseinstellungen zurückzuführen sind.

Infrastructure-as-Code-Sicherheit (IaC-Sicherheit) ist ein Ansatz für Cloud-Sicherheit, bei dem konsistente Sicherheitskontrollen für die Cloud in den gesamten Software-Entwicklungslebenszyklus integriert werden. Dadurch lassen sich Fehlkonfigurationen frühzeitig erkennen und Schwachstellen zur Laufzeit verhindern. IaC-Sicherheit kann in Code-Repositories, CI/CD-Tools oder bereits in der IDE der Entwickler durchgesetzt werden.

Bei IaC-Sicherheit geht es darum, Konfigurationsprobleme in IaC zu beheben, statt in bereits bereitgestellten Cloud-Ressourcen. Dazu gehören:

  • Fehlkonfigurationen erkennen: IaC scannen, um Variablen mit fehlenden oder falschen Einstellungen zu identifizieren.

  • Sicherheitsrichtlinien definieren: Mit IaC lassen sich Sicherheitsrichtlinien definieren und bei Änderungen an der Infrastruktur durchsetzen.


Dank der Integrationen mit Code-Repositories und Build-Automatisierungslösungen bieten die Snyk CLI und die Snyk-Erweiterungen für IDEs die nötigen Tools, um die Shift-Left-Sicherheit während des gesamten Entwicklungslebenszyklus durchzusetzen.

Weitere Informationen zu Snyk Infrastructure as Code finden Sie in der Snyk documentation.

Management von Schwachstellenrisiken nach der Bereitstellung

Die Verantwortung für die Anwendungssicherheit endet nicht mit der sicheren und erfolgreichen Bereitstellung einer Anwendung. Sie umfasst auch die kontinuierliche Überwachung der bereitgestellten Assets in der Infrastruktur auf neue Schwachstellen, die immer wieder in den zahlreichen Paketen und Komponenten von Drittanbietern auftreten, die moderne Lösungen verwenden.

Es ist auch wichtig, das Ökosystem zu verstehen, in dem moderne Lösungen bereitgestellt werden. Kubernetes, auch K8S genannt, ist die beliebteste und bevorzugte Umgebung für die Bereitstellung von Anwendungen. Die Herausforderung besteht jedoch darin, laufende Pods und Cluster auf Schwachstellen zu überwachen und die zuständigen Stakeholder zu informieren, damit sie potenzielle Bedrohungen für die Umgebung erkennen können. Hinzu kommt die zusätzliche Herausforderung durch mehrere Cloud-Anbieter.

Die Snyk-Plattform bietet eine einzigartige Lösung: Snyk lässt sich bei allen großen Cloud-Server-Anbietern in Kubernetes integrieren. So können Sie laufende Workloads importieren und scannen. Dadurch erkennen Sie Schwachstellen in den zugehörigen Images und Konfigurationen, die die Sicherheit dieser Workloads beeinträchtigen können. Nach dem Import überwacht Snyk die Workloads kontinuierlich und erkennt weitere Sicherheitsprobleme, wenn neue Images bereitgestellt werden oder sich die Workload-Konfiguration ändert. Mit dem Snyk Controller erhalten Sie nach der Installation im jeweiligen Cluster nahezu in Echtzeit Einblick in den Schwachstellenstatus der laufenden Workloads.

Weitere Informationen zur Kubernetes-Integration von Snyk finden Sie in der Snyk documentation.