Jakub Jirsák - stock.adobe.com
Tipps zum Umsetzen von Security by Design in der Cloud
Das Anwenden von Security by Design in der Cloud mag als sehr schwieriges Unterfangen erscheinen. Mit folgenden Maßnahmen lassen sich von Grund auf sichere Anwendungen umsetzen.
Das Security-by-Design-Konzept erfordert von Programmierern unter anderem, dass sie sich bei jeder Stufe der Entwicklung und dem Ausrollen einer Anwendung an bewährte Best Practices zur Software-Entwicklung halten.
Das Planen und Entwickeln einer Software nach dem Security-by-Design-Prinzip bedeutet darüber hinaus, dass Programmierer und andere Beteiligte aus den Bereichen IT-Sicherheit, Risikomanagement und IT Operations zusammenarbeiten müssen, um potentielle Bedrohungen und Schwachstellen durch geeignete Maßnahmen zu minimieren.
Jetzt, wo sich immer mehr Unternehmen mit der Cloud beschäftigen, ist der ideale Zeitpunkt, um sich mit den Security-by-Design-Prinzipien beim Entwickeln und Betreiben von Cloud-Lösungen auseinanderzusetzen.
Wie sich Security-by-Design in der Cloud umsetzen lässt
Es gibt drei Bereiche in der Cloud, bei denen Unternehmen die Prinzipien des Security-by-Design-Konzepts einbringen können.
Bei der Infrastruktur der Cloud-Provider
Entwickler und andere Mitarbeiter sollten sich an das Shared-Responsibility-Modell (Prinzip der geteilten Verantwortung) halten. Es besagt, dass sie sich einen Teil der Verantwortung mit dem Cloud Provider teilen müssen. Sie sollten die vom Anbieter bereitgestellten Möglichkeiten zur Absicherung ihrer Cloud-Umgebungen daher auch wirklich nutzen.
Zu diesen vom Provider eingebauten Sicherheitskontrollen gehören etwa:
- Gehärtete und speziell gesicherte Hypervisor-Techniken,
- geschützte APIs (Application Programming Interfaces), die regelmäßig getestet und validiert werden,
- Zugriffsbeschränkungen zwischen mehreren Kunden (Tenants) und
- administrative Möglichkeiten zur Virtualisierung und zur Netzwerksegmentierung.
Die Google Cloud zum Beispiel kennt mehrere Möglichkeiten, um den von ihr verwendeten Kernel-basierten VM-Hypervisor zu härten. Dazu gehören unter anderem die gezielte Suche nach Schwachstellen, eine Verringerung der Angriffsfläche sowie das Tracking des verwendeten Quellcodes.
Bei der DevOps-Pipeline
Die zweite Chance zum Aufbau einer auf Security-by-Design basierenden Cloud-Infrastruktur liegt in der DevOps-Pipeline. Angesichts des Aufbaus heutiger Software-definierter Infrastrukturen und der Art wie sie ausgerollt werden gibt es viele Möglichkeiten, um Sicherheitsmaßnahmen direkt in die Cloud-Anwendungen zu implementieren.
Insbesondere sollten sich die beteiligten DevOps- und Security-Teams mit Threat Modeling beschäftigen. Mit dieser Technik lässt sich sicherstellen, dass alle Teilnehmer das Design der zu entwickelnden und anzuwendenden Software kennen und verstehen. Zu diesem Bereich gehören die zur Verfügung stehenden Sicherheitsmaßnahmen und die Technologien, die sie einsetzen wollen, aber auch die möglichen Angriffsvektoren. Threat Modeling ermöglicht es den Unternehmen Design-Entscheidungen mit einem Fokus auf Security zu treffen, bevor sie neue Anwendungen oder Komponenten entwickeln und einsetzen.
Darüber hinaus sollte die DevOps-Pipeline um die folgenden Security-by-Design-Prinzipien ergänzt werden:
- Automatisch durchgeführte statische Analysen des Codes, wann immer er neu ins System eingebracht wird. Dabei sollten auch Schwellen für Schwachstellen und Risiken definiert werden. Sie bestimmen, welcher Code zugelassen, welcher abgelehnt wird und was noch geändert werden muss.
- Ein Einsatz sicherer Container und Workload-Images, die auf bekannte Package- und Komponenten-Schwachstellen geprüft wurden. Das funktioniert ähnlich wie bei den Quellcodescans. Ein minimaler Level von Risiken sollte aber auch festgelegt werden, damit die Teams ihre Arbeit fortsetzen können.
- Außerdem sollten IaC-Templates (Infrastructure as Code) eingeführt werden, die Sicherheitskontrollen für Cloud-basierte Zugriffskontrollen sowie Richtlinien zum Identitätsmanagement und Vorgaben für Berechtigungen enthalten. Sie bestimmen dann zum Beispiel, wie die vom Provider bereitgestellten Sicherheitsservices und seine Best Practices am besten umgesetzt werden können.
Bei den operativen Vorgaben für den IT-Betrieb
Unternehmen sollten ihre Security-by-Design-Prinzipien zudem mit den operativen Vorgaben des Cloud-Anbieters verbinden. Die möglichen Maßnahmen reichen von einer sicheren Konfiguration der Cloud (ein Beispiel dafür ist das Entfernen der root-Rechte für alle Cloud-Accounts- und -Abonnements) bis zum Aktivieren der Monitoring- und Assessment-Dienste.
In zum Beispiel AWS können Sie mit Services wie dem Amazon Inspector, GuardDuty oder Detective nach ungewöhnlichem Ereignissen Ausschau halten, die auf ein sicherheitsrelevantes Ereignis hinweisen. Diese Dienste sind hilfreich, um die Umgebung im Auge zu behalten und um die für die Sicherheit verantwortlichen Personen auf Gefahren aufmerksam zu machen. Der AWS Resource Access Manager ist außerdem nützlich, um erprobte und bekannt sichere Konfigurationen mit anderen Accounts zu teilen.
Das Einführen der genannten Sicherheitsmaßnahmen bereits früh in der Entwicklung und beim Design einer Software führt zu Cloud-Umgebungen, die auf sicherem Code und bewährten Komponenten basieren. Damit erreichen Sie den Aufbau einer geschützten Infrastruktur, die auch die Cloud umfasst. Als idealer Zeitpunkt für die beschriebenen Maßnahmen hat sich die Phase herausgestellt, in der das Threat Modeling beginnt oder abgeschlossen wird.