In this article
Leitfaden für Cloud-Native-Sicherheit zum Entwickeln sicherer Anwendungen
Moderne Cloud-Native-Architekturen nutzen modernste Softwaretechnologien, damit Unternehmen ihre Anwendungen sicher und skalierbar bereitstellen können. Im Mittelpunkt steht dabei eine Cloud-First-Infrastruktur. Cloud-Native-Sicherheit überträgt dasselbe Paradigma auf den Schutz dieser Anwendungen: ein moderner, pragmatischer Ansatz mit Konzepten wie Zero Trust und Defense in Depth (DiD). Die Sicherheit von Cloud-Native-Anwendungen erfordert denselben Ansatz und speziell dafür entwickelte Tools und Services.
Was ist Cloud-Native-Sicherheit?
Cloud-Native-Sicherheit umfasst den Schutz cloudbasierter Plattformen, Infrastrukturen und Anwendungen. Die Sicherheit wird von Beginn des Entwicklungsprozesses an bis zur Produktion integriert. So sorgen mehrere Sicherheitsebenen und die kontinuierliche Überwachung für Schutz vor neuen Schwachstellen.

Was bedeutet Cloud Native?
Cloud Native umfasst eine Reihe von Designprinzipien, Software und Services, die sich auf den Aufbau von Systemarchitekturen konzentrieren, bei denen die Cloud als primäre Hosting-Plattform vorgesehen ist. Das übergeordnete Ziel einer Cloud-Native-Anwendung ist es, hoch skalierbar, resilient und sicher zu sein. Dafür nutzt sie die Funktionen moderner cloudbasierter Infrastruktur und setzt auf Continuous-Integration-Methoden, um Entwicklung und Bereitstellung zu beschleunigen.
Cloud Native vereinfacht außerdem den Betrieb und verringert den erheblichen Aufwand für die Verwaltung und Bereitstellung herkömmlicher Serverinfrastrukturen. Möglich wird dies durch einen hohen Automatisierungsgrad und softwaregesteuerte Infrastrukturmodelle.
Die obige Definition bietet zwar eine solide Grundlage für das allgemeine Verständnis von Cloud Native, doch Organisationen wie die Cloud Native Computing Foundation (CNCF) haben konkretere Definitionen.
In den meisten Fällen reicht es aus, Cloud Native als „Cloud First“ zu verstehen. Die CNCF legt jedoch Wert auf einen stärker herstellerunabhängigen Ansatz und fördert Projekte und Software, die sich mit minimalem zusätzlichem Konfigurationsaufwand zwischen Cloud-Anbietern portieren lassen. Ein weiterer Schwerpunkt sind Container, auf die das größte CNCF-Projekt, Kubernetes, ausgerichtet ist. Unternehmen können der allgemeinen Definition von Cloud Native entsprechen und zugleich gehostete Services nutzen, die nicht unter die CNCF-Definition fallen. Welche Definition am besten zu den jeweiligen Architekturen passt, müssen die Teams selbst entscheiden.
Was sind Cloud-Native-Anwendungen?
Cloud-Native-Anwendungen sind Softwareprogramme und Services, die im Kontext von Cloud-Native-Architekturen entwickelt und konzipiert werden. Eine Cloud-Native-App ist eine klar abgegrenzte Einheit. Sie umfasst die erforderlichen Designprinzipien, Bereitstellungsmodelle und Betriebsprozesse, um die Vorteile von Cloud Native zu nutzen.
Anders als die allgemeinen Prinzipien von Cloud Native erfordern konkrete Anwendungen bestimmte Implementierungsentscheidungen und die Auswahl von Tools und Mustern. Unveränderliche Artefakte sind ein Beispiel dafür: Sie tragen dazu bei, die Cloud-Native-Funktionalität des Gesamtsystems zu stärken.
Es gibt viele Möglichkeiten, Software zu entwickeln und bereitzustellen, die unter die Definition von Cloud Native fällt. Dennoch weisen alle Cloud-Native-Anwendungen einige allgemeine Merkmale auf.
Die meisten Cloud-Native-Anwendungen setzen in vielerlei Hinsicht stark auf Automatisierung. Dazu gehören automatisierte Tests und Builds des zentralen Anwendungscodes ebenso wie die automatisierte Bereitstellung und Skalierung der zugrunde liegenden Infrastruktur. Einige der erfolgreichsten Unternehmen führen täglich Tausende Deployments durch und nutzen dafür ein robustes, hoch automatisiertes Cloud-Native-CI/CD-System. Unser Bericht zum Stand der Cloud-Native-Sicherheit zeigt, dass Unternehmen mit einem höheren Automatisierungsgrad in Cloud-Native-Umgebungen Sicherheitstests häufiger einsetzen. Unternehmen mit vollständig automatisierten Deployment-Pipelines nutzen doppelt so häufig SAST- und SCA-Tools in ihrem SDLC, um ihre Cloud-Native-Anwendungen zu schützen.
Cloud-Native-Apps nutzen üblicherweise auch Muster der Microservice-Architektur. Dabei lassen sich lose gekoppelte Komponenten einzeln skalieren, um auf steigende Service-Anforderungen zu reagieren. Allgemeiner betrachtet sind Anwendungen, die nach DevOps-Prinzipien entwickelt werden, für ihren Erfolg fast immer implizit auf Cloud Native angewiesen.
Cloud-Native-Anwendungen lassen sich schneller entwickeln und effektiver skalieren als Anwendungen nach früheren Modellen. Das ermöglicht technologieorientierten Unternehmen schnellere Innovationen und eine kürzere Markteinführungszeit. Das Cloud-Native-Modell bringt jedoch eine grundlegende Veränderung mit sich, die alle berücksichtigen müssen, die für den Schutz und Betrieb von Cloud-Native-Anwendungen verantwortlich sind: Was früher zur Infrastruktur gehörte, ist heute Teil der Anwendung. Insbesondere in puncto Sicherheit erfordern Cloud-Native-Anwendungen ein neues Sicherheitsverständnis und eine Neudefinition der Konzepte von Anwendungssicherheit und Betrieb.
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.
Cloud-Native-Sicherheitstools und Legacy-Tools im Vergleich
Sicherheitstools und -prozesse, die ursprünglich für herkömmliche Legacy-Hosting-Infrastrukturen entwickelt wurden, verfügen nicht über die nötigen Funktionen, um mit dem dynamischen, stark exponierten und „grenzenlosen“ Modell von Cloud-Native-Architekturen angemessen umzugehen.
Kurz gesagt: Herkömmliche Sicherheitstools sind nicht für die Anforderungen der modernen Cloud ausgelegt. Viele Tools und Designmuster, die in modernen Software-Stacks selbstverständlich sind, gab es möglicherweise noch gar nicht, als manche Sicherheitstools ursprünglich entwickelt wurden.

Ein gutes Beispiel dafür ist die heute weitverbreitete Nutzung von Infrastructure-as-Code-Tools (IaC) wie Terraform. Obwohl es sich technisch gesehen um „Code“ handelt, stellen diese Tools meist domänenspezifische Sprachen (DSLs) mit einzigartigen Funktionen dar. Daher ist eine herkömmliche Validierung mit Tools wie statischer Analyse schwierig und wenig effektiv. Da IaC-Tools mit vergleichsweise geringem Aufwand große Mengen an Infrastruktur bereitstellen können, ist ihre Absicherung besonders wichtig. Die Prüfung von IaC-Code und -Konfigurationen erfordert Best Practices und Tools, die in der Geschichte der Software- und Infrastrukturentwicklung erst seit Kurzem verfügbar sind.
IaC-Tools machen zwar eine entscheidende Lücke bei Legacy-Sicherheitstools deutlich, sind jedoch nur eine von vielen Herausforderungen, wenn es darum geht, Cloud-Native-Anwendungen in großem Maßstab zu schützen. Grundsätzlich erfordert die Absicherung von Cloud-Native-Anwendungen, Konzepte aus dem Verantwortungsbereich der IT- und Betriebssicherheit in das Modell der Anwendungssicherheit zu übertragen. Der Schutz dieser Komponenten muss bei den Entwicklerinnen und Entwicklern beginnen, die die Anwendungen erstellen, statt vollständig den IT- und Betriebssicherheitsteams überlassen zu werden.
Cloud-Native-Anwendungen schützen
Cloud-Native-Sicherheit erfordert einen neuen Schwerpunkt auf Sicherheit, der mit der übergeordneten Cloud-Native-Strategie eines Unternehmens Schritt hält. Cloud-Native-Anwendungen müssen im Anwendungskontext geschützt werden. Dabei gilt es, die Veränderungen in Teams, Prozessen und Infrastrukturmodellen zu berücksichtigen, die für Entwicklung und Betrieb dieser Anwendungen verantwortlich sind. Ein zentraler Schwerpunkt der Cloud-Native-Sicherheit muss daher die Sicherheit von Cloud-Native-Anwendungen sein: Schwachstellen müssen während der Entwicklung erkannt und behoben werden. Der Ansatz muss ganzheitlich sein, und Sicherheit sollte über den gesamten Softwareentwicklungslebenszyklus hinweg integriert werden.
Eine Sicherheitsplattform sollte Entwicklerinnen und Entwickler befähigen, sich auf die Umsetzung eines Designs zu konzentrieren, das den Geschäftszielen entspricht und Cloud-Native-Prinzipien nutzt. Gleichzeitig muss ihnen bewusst sein, dass das Entwicklungsteam Verantwortung dafür übernimmt, sicheren Code zu gewährleisten, da immer mehr Infrastruktur während der Anwendungsentwicklung definiert wird. Wird die Cloud-Architektur nicht bei jeder Diskussion und Designentscheidung als wesentlicher Faktor berücksichtigt, kann das Ziel einer wirklich Cloud-Native-Anwendung verfehlt werden.
Sobald das Designfundament steht, beginnt in der Regel die Programmierung von Anwendung und Infrastruktur. In dieser Phase ist es entscheidend, so früh wie möglich im Code zu testen und den sicheren Softwareentwicklungslebenszyklus (SSDLC) einzuhalten. Wie bereits erwähnt, reicht der herkömmliche, einseitige Ansatz der statischen Analyse nicht mehr aus. Zu den verschiedenen Tests, die für Cloud-Native-Anwendungscode durchgeführt werden sollten, gehören Static Application Security Testing (SAST), Dynamic Application Security Testing (DAST), Interactive Application Security Testing (IAST) und Mobile Application Security Testing (MAST).
Cloud-Native-Infrastruktur schützen
Auch die Absicherung der Cloud-Native-Infrastruktur einer Anwendung bringt besondere Herausforderungen mit sich. IaC-Konfigurationen führen zur Bereitstellung produktiver Infrastruktur, wobei Entwicklerinnen und Entwickler häufig Infrastruktur- und Anwendungscode parallel schreiben. Dafür sind Sicherheitstools erforderlich, die diese besonderen Herausforderungen bewältigen, sich nahtlos in bestehende Workflows integrieren und Entwicklerinnen und Entwicklern direkt Einblicke und Empfehlungen zur Behebung geben. Das bedeutet in der Regel, Sicherheitsinformationen direkt in IDEs anzuzeigen und lokale Tests über CLI-Tools zu ermöglichen.
Neben Sicherheitsinformationen für die lokale Entwicklungsumgebung sollten Cloud-Native-Sicherheitstools auch in alle Phasen des Softwarelebenszyklus integriert werden. Automatisierte Scans in Quellcodeverwaltungssystemen sowie Scans abgeleiteter Artefakte wie Container-Images über CI/CD-Systeme sollten Priorität haben. Die Ergebnisse dieser Integrationsscans sollten ebenfalls Empfehlungen zur Behebung enthalten, damit Entwicklerinnen und Entwickler leichter Prioritäten setzen können.
Herkömmliche lokale Infrastruktur konnte sich oft auf einen logischen Netzwerkperimeter stützen, der unerlaubten Datenverkehr zu einer klar abgegrenzten Gruppe interner Ressourcen verhindern sollte. Für diese Ressourcen galten typischerweise nur schwache Sicherheitskontrollen. In Cloud-Native-Umgebungen verliert das Konzept eines Perimeters jeden wirklichen Nutzen. Bei den meisten Cloud-Anbietern lässt sich nahezu jede Ressource mit wenigen Konfigurationszeilen oder einer Änderung in der Benutzeroberfläche öffentlich zugänglich machen. Daten, die scheinbar zur selben logischen Domäne gehören, können mehrere Netzwerke und physische Standorte durchqueren, bevor sie ihr Ziel erreichen. Deshalb müssen Unternehmen ein Zero-Trust-Modell einführen, bei dem jede Komponente und jeder Service als potenzielles Angriffsziel gilt. Zwischen allen Knoten oder Ressourcen eines Systems wird unabhängig vom Netzwerkstandort eine Authentifizierung durchgeführt.
Auch wenn Sicherheit für Cloud-Native-Anwendungen im Entwicklungsprozess immer stärker in den Fokus rückt, werden Cloud-Native-Sicherheitslösungen auch in der produktiven Laufzeitumgebung benötigt. Bei herkömmlichen Architekturen stand meist nur eine Art von Computing-Ressource zur Verfügung: der Hardware-Server. Traditionelle Sicherheitstools schützten den Perimeter um diese Ressourcen und nutzten statische Netzwerkkonfigurationen und Firewalls, um Zugriff und Datenverkehr zu kontrollieren. Cloud-Native-Infrastruktur ist von Grund auf dynamisch ausgelegt und ermöglicht die schnelle Bereitstellung neuer Anwendungen sowie die Neukonfiguration von Ressourcen.
Was ist eine Cloud-Native-Sicherheitsarchitektur?
Eine Cloud-Native-Sicherheitsarchitektur ist eine Strategie, mit der sich Transparenz über alle in der Cloud bereitgestellten und ausgeführten Komponenten schaffen lässt. So können Sicherheitsteams Anwendungen, Infrastruktur und Plattformen in der Cloud überwachen und schützen. Erfahren Sie mehr über die Cloud-Sicherheitsarchitektur.
Cloud-Native-Anwendungen können eine Vielzahl von Computing-Ressourcen und Laufzeitumgebungen nutzen, darunter virtuelle Maschinen, Container und Serverless-Funktionen. Container sind ein weiterer Bestandteil des Cloud-Native-Ökosystems. Für ihre Überwachung und den Schutz ihrer Laufzeitumgebungen werden speziell entwickelte Sicherheitstools benötigt. Das Scannen von Artefakten und Konfigurationen zur Laufzeit ist entscheidend für eine starke Sicherheitslage in Cloud-Native-Umgebungen.
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.
Cloud-Native-Apps brauchen Cloud-Native-Sicherheitsplattformen
Auch wenn sich die Cloud ständig verändert, wird sie als Ganzes bleiben. Mit dem zunehmenden Innovationstempo müssen neue Technologien und Tools entwickelt werden, damit Unternehmen Schritt halten können. Allzu oft übertragen Unternehmen ihre bestehende On-Premises-Softwareinfrastruktur in die Cloud. Dabei übernehmen sie veraltete Abstraktionen und Sicherheitsmodelle und verpassen die Vorteile von Cloud-native-Anwendungen.
Sicherheitsmodelle und Tools aus der Zeit des On-Premises-Hostings stellen eine besonders große Gefahr dar. Die meisten dieser Tools wurden entwickelt, bevor sich die Cloud als erstklassige Hosting-Plattform durchsetzte, und bieten daher keinen ausreichenden Schutz. In einem extrem dynamischen und wettbewerbsintensiven Umfeld ist es besonders wichtig, Anwendungen skalieren und vor allem absichern zu können. Unternehmen, die im modernen Cloud-Zeitalter wettbewerbsfähig bleiben möchten, sollten sich auf die Entwicklung von Cloud-native-Anwendungen konzentrieren und Cloud-native-Sicherheitsplattformen zu ihrem Schutz einsetzen.
„Wenn Sie Software bereitstellen, müssen viele bewegliche Teile zusammenspielen“, ... „Wenn Sie alles manuell erledigen, ist das zeitaufwendig, mühsam und fehleranfällig – und Sie werden es nicht oft tun wollen. Deshalb war uns klar, dass wir alles automatisieren müssen, auch die Sicherheit – mit Snyk.“
Sichern Sie jede Komponente Ihrer Cloud-native-Apps mit Snyk auf einer einzigen Plattform.