Production Perig - stock.adobe.c
Platform as a Service (PaaS) ist ein Cloud-Modell, bei dem Service-Anbieter eine Umgebung bereitstellen, in der Kunden Anwendungen entwickeln, ausführen und verwalten können. Da PaaS-Anbieter die Hardware und Software auf ihrer Infrastruktur hosten, müssen die Kunden dies nicht selbst tun.
Das hört sich einfach an, aber wenn es um die Sicherheit geht, können die Dinge ein wenig komplex werden.
Sehen wir uns die wichtigsten PaaS-Sicherheitsherausforderungen und -bedrohungen an, zusammen mit den wichtigsten Best Practices, um sie zu überwinden.
PaaS-Sicherheitsherausforderungen
Eine Hauptursache für die Komplexität ist, dass PaaS häufig Teil einer umfassenderen Anwendungsentwicklung ist, entweder zur Unterstützung interner Geschäftsanwendungen oder von Software und Dienstleistungen, die Unternehmen Kunden oder Partnern anbieten. Unternehmen können PaaS zum Beispiel für Folgendes nutzen:
- Zur Rationalisierung der Entwicklung von RESTful APIs.
- Zur Bereitstellung von Anwendungsdiensten.
- Als architektonische Methode, um die Logik näher an den Endbenutzer zu bringen.
- Zur Implementierung häufig genutzter Dienste, zum Beispiel relationaler Datenbanken, auf eine implementierungsunabhängige Weise.
Die Praktiken der Lieferkette – und die damit verbundenen Sicherheitsherausforderungen –gelten für PaaS in gleichem Maße wie für andere Software und Dienste. Dazu gehören Vertragsverhandlungen mit Anbietern, die Überprüfung und Validierung von Anbieterumgebungen und -prozessen sowie die Überprüfung ihrer Vertrauenswürdigkeit, zum Beispiel die Zertifizierung nach ISO 27001, die Aufnahme in das CSA STAR-Register, SOC 2 oder Ähnliches. Dies kann auch die Identifizierung der verwendeten Sicherheitsmodelle und die dem Kunden zur Verfügung stehenden sicherheitsrelevanten Tools umfassen.
Im Gegensatz zu anderen Cloud-Modellen sind bestimmte Sicherheitsmaßnahmen speziell für PaaS besonders nützlich – zum Beispiel in Bereichen, in denen sich Sicherheitsteams auf die Anwendung selbst konzentrieren müssen. Dies macht die Absicherung von PaaS deutlich schwieriger als bei anderen Cloud-Modellen – erstens, weil die Anwendungssicherheit in der Vergangenheit nicht besonders gut abgeschnitten hat, und zweitens, weil spezifische Maßnahmen nicht von der Stange sind, sondern auf den jeweiligen Anwendungsfall abgestimmt werden müssen.
PaaS-Sicherheitsbedrohungen
PaaS ist mit vielen der gleichen Sicherheitsbedrohungen konfrontiert wie andere Cloud-Umgebungen, einschließlich System- und Ressourcenisolierung, Berechtigungen auf Benutzerebene, Verwaltung des Benutzerzugriffs und Schutz vor gängigen Cloud-Angriffen wie Malware und Ransomware.
Aus Sicht der Bedrohungen – und der Bedrohungsabwehr – gibt es bei PaaS jedoch auch einige Unterschiede.
In erster Linie sind hier die zahlreichen sicherheitsrelevanten Konfigurationseinstellungen und -optionen zu nennen, deren Bedeutung die Sicherheitsteams kennen und verstehen müssen, wie sie miteinander und mit der Anwendung interagieren. Die Teams müssen verstehen, auf welches Risikoprofil sie abzielen und wie die von ihnen gewählten Einstellungen dieses Risikoprofil entweder unterstützen oder beeinträchtigen. Es ist nicht ungewöhnlich, dass einige Einstellungen weniger intuitiv sind als erwartet. In einigen Fällen kann dies zu einer Schwächung der Sicherheitslage führen. Darüber hinaus müssen die Sicherheitsteams über Änderungen am Dienst auf dem Laufenden bleiben – einschließlich veralteter Funktionen, Änderungen an der Implementierung und Benachrichtigungen des Dienstanbieters. Jede dieser Änderungen kann sich auf die Sicherheit auswirken, also sollten Sie darauf achten.
Zweitens haben die Teams in den meisten PaaS-Situationen weniger Gelegenheit, Sicherheitsaspekte auf den unteren Ebenen des Stacks zu berücksichtigen. Bei einer Anwendung, die auf einem direkt von einem Unternehmen kontrollierten Host eingesetzt wird – zum Beispiel eine virtuelle Arbeitslast bei Infrastructure as a Service (IaaS) – können die Teams auf niedrigere Ebenen des Stacks abzielen, um Probleme auf höheren Ebenen auszugleichen. Da das Unternehmen bei PaaS keine Kontrolle über die unteren Ebenen des Stacks hat, ist die Möglichkeit, diese Lücken zu schließen, nicht mehr gegeben.
Drittens ist PaaS Software, und jede Software kann Schwachstellen haben. Es ist eine Art Kompromiss: PaaS-Implementierungen bedeuten, dass Unternehmen sich nicht um den administrativen Aufwand kümmern müssen, der mit Patches und Sicherheits-Updates verbunden ist, aber Unternehmen verwenden jetzt eine ganze Reihe neuer Dienste, die PaaS implementieren und die Softwareprobleme haben können.
Schließlich wird PaaS, wie bereits erwähnt, häufig zur direkten Unterstützung der Anwendungsentwicklung eingesetzt. Dies bedeutet, dass eine Reihe von Design-, Logik-, Kodierungs- und Implementierungsproblemen auftreten können. Diese sind spezifisch für die zu erstellende Anwendung – und würden unabhängig davon auftreten, auf welchem Stack die Anwendung erstellt wird.
5 Best Practices für PaaS-Sicherheit
PaaS-Sicherheitsstrategien variieren je nach Unternehmensumgebung, Geschäftskontext und Brancheneinsatz. Es gibt jedoch fünf bewährte PaaS-Sicherheitspraktiken, die in fast jeder Situation angewendet werden können. Durch die Umsetzung der folgenden fünf Schritte kann gewährleistet werden, dass Anwendungen mit geringen Investitionen sicher erstellt und ausgeführt werden.
1. Mit der Bedrohungsmodellierung beginnen
Die Anwendungssicherheit, ob PaaS oder nicht, sollte mit einer Bedrohungsmodellierung beginnen. Bei diesem systematischen Prozess wird ein Anwendungsdesign in seine Bestandteile zerlegt und das Zusammenspiel dieser Bestandteile aus der Sicht eines Angreifers analysiert. Die Bewertung der Anwendungskomponenten und der damit verbundenen Risiken ermöglicht es den Bedrohungsmodellierern, Maßnahmen zur Behebung der aufgedeckten Schwachstellen zu skizzieren.
Unabhängig davon, welche PaaS-Anbieter genutzt werden und zu welchem Zweck, bringt die Erstellung eines systematischen Bedrohungsmodells einen Mehrwert. Falls erforderlich, können Infosec-Teams die Testmethoden für die Anwendungssicherheit aktualisieren, um das Bedrohungsmodell auf Microservices und Mesh-Architekturen auszuweiten.
2. Daten im Ruhezustand und bei der Übertragung verschlüsseln
Die meisten PaaS-Angebote ermöglichen oder verlangen von den Kunden, dass sie ihre Daten während der Übertragung verschlüsseln. Und das aus gutem Grund. REST APIs, die über HTTPS kommunizieren, sind heute der Standard in der Anwendungsentwicklung, vor allem in einem Cloud-Kontext.
Gespeicherte Daten werden dagegen weniger häufig angesprochen. Je nach zu entwickelnder Anwendung und ihrem Risikoprofil sollten die Teams die Datenexposition so weit wie möglich über die Präventionsmaßnahmen der Mitarbeiter des Dienstanbieters, die den Dienst verwalten, hinaus verhindern. Dies trägt dazu bei, dass die Daten auch im Falle einer Kompromittierung des zugrunde liegenden Dienstanbieters geschützt sind.
Eine Möglichkeit, diese Ziele zu unterstützen, ist der Einsatz von Verschlüsselung. Wo immer möglich, sollten Sie gespeicherte Daten verschlüsseln – egal ob es sich um Kundendaten, Konfigurations- oder Sitzungsinformationen handelt. In einem PaaS-Kontext könnte die Verschlüsselung von Daten im Ruhezustand erfordern, dass Sicherheitsteams spezielle Tools für die APIs der PaaS-Anbieter einsetzen.
Nach der Verschlüsselung von Daten im Ruhezustand und bei der Übertragung ist auf die Verwaltung von Geheimnissen 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 Artefakte, die sicher aufbewahrt werden müssen.
3. Interaktionen im gesamten Geschäftsablauf abbilden und testen
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. So kann ein Unternehmen beispielsweise Serverless am Rand 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. Die Erstellung und konsistente Aktualisierung eines umfassenden Diagramms der Interaktionen ist entscheidend. Dieser Prozess unterstützt auch die bewährte Praxis aus Schritt 1, da die Bedrohungsmodellierung die Erstellung eines Datenflussdiagramms umfasst, um darzustellen, wie Komponenten interagieren.
Um sicherzustellen, dass bei Penetrationstests alle Elemente vollständig abgedeckt werden, sollten Infosec-Teams jedes Element systematisch ganzheitlich und isoliert testen. Die Verwendung des OWASP-Leitfadens für Web-Sicherheitstests kann bei diesem Prozess helfen.
4. Portabilität berücksichtigen, um Lock-in zu vermeiden
Eine besondere Herausforderung bei PaaS besteht darin, dass die unterstützten Funktionen, zum Beispiel die zugrunde liegenden APIs, Sicherheitsdienste und sogar die Wahl der Sprache, von der jeweiligen PaaS abhängen. So kann ein PaaS-Anbieter Java und Python unterstützen, ein anderer hingegen Go, C# und JavaScript.
PaaS-Kunden können nur selten von einer PaaS zu einer konkurrierenden Plattform wechseln, was zum Teil an den zugrunde liegenden Plattform-APIs liegt. Es ist wichtig, eine Sprache zu verwenden, die von verschiedenen Anbietern allgemein unterstützt wird. Dies trägt dazu bei, die Portabilität zu maximieren und die Abhängigkeit zu minimieren. Dies gilt insbesondere, wenn man kleinere Nischenanbieter in Betracht zieht. Häufig verwendete Sprachen wie C#, Python und Java werden in der Regel von allen Anbietern unterstützt. Erstellen Sie Wrapper für Nischen-APIs, um eine Abstraktionsebene zwischen einer Anwendung oder einem Dienst und den zugrunde liegenden Nischen-APIs zu implementieren. Dies bedeutet, dass bei einem Wechsel des Anbieters nur eine Änderung vorgenommen werden muss und nicht Hunderte oder Tausende.
5. Vorteile plattformspezifischer Sicherheitsfunktionen ausnutzen
So wie sich PaaS-Angebote in der Wahl der Sprache und der zugrunde liegenden APIs unterscheiden, so unterscheiden sie sich auch in den Sicherheitsfunktionen, die sie bieten. Die Kunden müssen wissen, welche Optionen zur Verfügung stehen, und diese, wenn möglich, aktivieren. Einige Plattformen bieten beispielsweise eine Web Application Firewall (WAF) oder ein Application Gateway, das zum besseren Schutz von Anwendungen und Diensten aktiviert werden kann. Andere bieten möglicherweise erweiterte Protokollierungs- und Überwachungsfunktionen. Infosec-Verantwortliche müssen herausfinden, welche Sicherheitsoptionen angeboten werden, und diese nutzen.
Außerdem ist es wichtig, eine Strategie für das Identitäts- und Anmeldemanagement zu entwickeln. Implementieren Sie die vom PaaS-Anbieter angebotenen Cloud-Identitäts- und Zugriffsmanagement-, Autorisierungs- und Authentifizierungsmodelle. Achten Sie darauf, dass sie in Backend-Prozesse für die Verwaltung oder den Entwicklerzugriff sowie in die Anwendung selbst integriert werden.