Tierney - stock.adobe.com
Cloud-Sicherheit: Die PaaS-Nutzung richtig absichern
Bei PaaS-Anbietern können die APIs, die unterstützten Sprachen sowie die Security-Funktionen variieren. Diese fünf Best Practises für die Sicherheit helfen in jedem PaaS-Szenario.
PaaS (Platform as a Service) ist ein Cloud-Modell, bei dem Service-Provider eine Umgebung bereitstellen, in der Kunden Anwendungen entwickeln, ausführen und verwalten können. Da PaaS-Anbieter die Hard- und Software auf ihrer Infrastruktur hosten, müssen sich die Kunden nicht selbst darum kümmern.
Das klingt prinzipiell recht einfach, wenn es allerdings um die Security geht, kann die Situation durchaus ein wenig komplex werden. Die Nutzung von PaaS ist meist Teil einer umfassenderen Entwicklung von Unternehmensanwendungen. Unternehmen nutzen PaaS, um die Entwicklung von RESTful-APIs, Anwendungsdiensten und Komponenten, die Geschäftslogik bereitstellen, effektiv zu gestalten.
Während einige Definitionen traditionelles Web-Hosting – oder Elemente davon – in den PaaS-Bereich einbeziehen, ist die Absicherung der PaaS-Nutzung aus praktischer, sicherheitsorientierter Sicht eng mit der Absicherung der zugrunde liegenden, von PaaS unterstützten Anwendungen verbunden.
Ganz oben auf einer PaaS-Security-Checkliste sollten die Vertragsverhandlungen mit den Anbietern sowie die Überprüfung und Validierung der Anbieterumgebungen und -prozesse beinhalten. Dies sollte auch die Identifizierung der verwendeten Sicherheitsmodelle und der dem Kunden zur Verfügung stehenden sicherheitsrelevanten Tools beinhalten.
Es gilt zu beachten, dass andere Cloud-Nutzungsmodelle ähnliche Sicherheitsvorkehrungen beinhalten. Die nachfolgenden Maßnahmen sind nicht PaaS vorbehalten. Darüber hinaus müssen sich die Security-Teams jedoch in gleichem Maße auf die Anwendung selbst konzentrieren. Das macht die Absicherung von PaaS so viel schwieriger, als dies bei den anderen Cloud-Modellen der Fall ist.
PaaS-Security-Strategien können je nach Unternehmensumgebung, Geschäftskontext und Brancheneinsatz variieren. Es gibt jedoch fünf bewährte Vorgehensweisen für die PaaS-Sicherheit, die sich fast in jeder Situation anwenden lassen. Die Umsetzung der folgenden fünf Schritte kann dazu beitragen, dass Anwendungen mit relativ geringen Investitionen sicher erstellt und betrieben werden können.
Die Bedrohungsmodellierung sollte am Anfang stehen
Anwendungssicherheit, ob PaaS oder nicht, sollte mit der Bedrohungsmodellierung beginnen. Dieser systematische Prozess zerlegt ein Anwendungsdesign in seine Bestandteile und analysiert, wie diese Teile aus der Sicht eines Angreifers zusammenwirken. Bei der Bewertung der Anwendungskomponenten und der damit verbundenen Risiken können die Bedrohungsmodellierer Schritte zur Behebung der aufgedeckten Schwachstellen skizzieren.
Unabhängig davon, welcher PaaS-Anbieter im Einsatz ist oder für welchen Zweck das Angebot genutzt wird, bringt die Erstellung eines systematischen Bedrohungsmodells einen Mehrwert. Bei Bedarf können Security-Teams die Testmethoden für die Anwendungssicherheit aktualisieren, um das Bedrohungsmodell auf Microservices und Mesh-Architekturen zu erweitern.
Gespeicherte Daten und Daten bei der Übertragung verschlüsseln
Die meisten PaaS-Angebote ermöglichen oder erfordern, dass der Kunde die Daten während der Übertragung verschlüsselt – aus gutem Grund. REST-APIs, die über HTTPS als Transport kommunizieren, sind heute der architektonische Goldstandard in der Anwendungsentwicklung, insbesondere im Cloud-Kontext.
Das Thema gespeicherte Daten wird hingegen weniger häufig angesprochen. Wenn möglich, sollten auch gespeicherte Daten verschlüsselt werden. Unabhängig davon, ob es sich um Kundendaten, Konfigurations- oder Session-Informationen handelt. In einem PaaS-Kontext kann die Verschlüsselung von Daten im Ruhezustand erfordern, dass Sicherheitsteams spezielle Tools für die APIs der PaaS-Anbieter einsetzen.
Wenn gespeicherte Daten und die Daten bei der Übertragung verschlüsselt werden, gilt es auf die Verwaltung der Geheimnisse zu achten. Dies gilt für die Schlüssel, die zur Implementierung der Verschlüsselung im Ruhezustand erstellt und verwendet werden, sowie für Passwörter, API-Tokens und andere Elemente, die sicher aufbewahrt werden müssen.
Abbildung und Test von Interaktionen über den gesamten Ablauf
Die Nutzung mehrerer Cloud-Anbieter ist nicht mehr die Ausnahme, sondern die Regel. Dies gilt für PaaS ebenso wie für andere Cloud-Anwendungsfälle. Ein Unternehmen könnte beispielsweise Serverless am Edge für A/B-Tests, AWS Lambda für die Implementierung von Geschäftslogik, Heroku für die Bereitstellung der Benutzeroberfläche und weitere für andere Aufgaben einsetzen.
Daher ist die Erstellung – und konsequente Aktualisierung – eines umfassenden Diagramms der Interaktionen entscheidend. Dieser Prozess kann auch die oben an erster Stelle geschilderte Sicherheitspraxis unterstützen, da die Bedrohungsmodellierung die Erstellung eines Datenflussdiagramms beinhaltet. um darzustellen, wie Komponenten interagieren.
Um sicherzustellen, dass alle Elemente während der Penetrationstests vollständig abgedeckt werden, sollten Security-Teams jedes Element systematisch ganzheitlich und isoliert testen. Die Verwendung des OWASP-Web-Security-Testing-Guide kann Teams bei diesem Prozess helfen.
Portabilität berücksichtigen, um Lock-in zu vermeiden
Eine besondere Herausforderung bei PaaS besteht darin, dass die unterstützten Funktionen, wie zum Beispiel die zugrunde liegenden APIs, Security-Dienste und sogar Wahl der Sprache, vom jeweiligen PaaS-Anbieter abhängen können. So kann die Situation eintreten, dass ein PaaS-Anbieter beispielsweise Java und Python unterstützt, während ein anderer Support für Go, C# und JavaScript bietet.
PaaS-Kunden sind aufgrund der zugrunde liegenden Plattform-APIs nur selten in der Lage, mal eben die Plattform zu wechseln. Daher ist es wichtig, eine Sprache zu wählen, die von verschiedenen Anbietern unterstützt wird.
Dies hilft, die Portabilität zu verbessern und die Abhängigkeit zu verringern. Dies gilt insbesondere dann, wenn man kleinere, eher nischenorientierte Anbieter in Betracht zieht. Häufig verwendete Sprachen wie C#, Python und Java werden in der Regel von allen Anbietern unterstützt. Erstellen Sie Wrapper um Nischen-APIs, um eine Abstraktionsebene zwischen einer Anwendung oder einem Dienst und den zugrunde liegenden Nischen-APIs zu implementieren. Dies bedeutet, dass bei einem Anbieterwechsel nur eine Änderung vorgenommen werden muss und nicht Hunderte oder gar Tausende.
Plattformspezifische Security-Funktionen nutzen
So wie sich PaaS-Angebote bei den unterstützten Sprachen und den zugrundeliegenden APIs unterscheiden, so existieren auch Unterschiede bei den gebotenen Security-Funktionen. Meist obliegt es dem Anwender zu verstehen, welche Optionen zur Verfügung stehen und diese, wenn möglich, zu aktivieren.
Einige Plattformen bieten möglicherweise eine Web Application Firewall (WAF) oder ein Application Gateway, das zum besseren Schutz von Anwendungen und Diensten aktiviert werden kann. Andere bieten vielleicht erweiterte Protokollierungs- und Überwachungsfunktionen. Security-Teams müssen ermitteln, welches Angebot welche Funktionen in Sachen Sicherheit anbietet, und diese dann nutzen.
Wichtig ist darüber hinaus eine solide Verwaltung der Identitäten und Zugangsdaten. Implementieren Sie die vom Paas-Anbieter gebotenen Modelle in Sachen IAM, sowie Autorisierungs- sowie Authentifizierungsmodelle. Achten Sie darauf, diese in Backend-Prozesse für die Verwaltung oder den Entwicklerzugriff sowie in die Anwendung selbst zu integrieren.