Jakub Jirsák - stock.adobe.com
AWS S3 Buckets: Sicherheit in der Praxis umsetzen
Nahezu täglich werden neue Datendiebstähle aus der Cloud publik. Besonders häufig werden AWS und S3 genannt. Dabei ist es gar nicht schwer, die Buckets sicher zu konfigurieren.
Immer wieder kommt es zu teils gravierenden Sicherheitsproblemen aufgrund von fehlerhaft konfigurierten S3 Buckets bei AWS (Amazon Web Services). In den vergangenen Jahren gab es zahllose Fälle, bei denen sensible Daten von Kunden und Mitarbeitern, Passwörter und andere interne Akten, die in einem S3 Bucket gespeichert wurden, mehr oder weniger unabsichtlich an die Öffentlichkeit gelangt sind. Jeder, der sich in der Vergangenheit nur ein wenig mit dem Thema Sicherheit beschäftigt hat, kennt vergleichbare Fälle. Nur ein paar der größeren Beispiele:
- Ein Partner des US-Telekommunikationsanbieters Verizon war nicht in der Lage, die Daten von mehr als 14 Millionen Kunden des Providers zu schützen. Namen, Adressen, weitere Account-Daten und sogar die PINs wurden offen gelegt.
- In einem nur schlecht abgesicherten S3 Bucket bei AWS fanden sich 2017 zahlreiche persönliche Informationen von mehr als 198 Millionen US-Wählern. Die Datenbank enthielt Daten von drei Data-Mining-Firmen, die eng mit der Republikanischen Partei zusammengearbeitet hatten.
- Ende 2018 legte der ISP PocketiNet rund 73 GByte an unglaublich sensiblen Daten in einem frei zugänglichen S3 Bucket ab. Zu den enthaltenen Informationen zählten Passwörter im Klartext, Zugangsschlüssel zu AWS und Netzwerkdiagramme.
- Die genannten Beispiele sind dramatisch. Noch schlimmer war aber möglicherweise ein Fall, bei dem die Los Angeles Times im Jahr 2018 den Quellcode ihrer Webseite in einem S3 Bucket ablegte. Ein Angreifer konnte darauf zugreifen und eigenen Code einfügen, um heimlich auf den Rechnern der Besucher der Tageszeitung nach einer Krypto-Währung zu schürfen.
Nach Erkenntnissen des Sicherheitsanbieters McAfee sind etwa 7 Prozent der S3-Buckets offen wie ein Scheunentor. Weitere 35 Prozent nutzen keine Verschlüsselung, die aber eigentlich ein fester Bestandteil von AWS ist. Da immer mehr Unternehmen dabei sind, ihre Workloads in die Cloud zu migrieren, beobachten Sicherheitsexperten eine deutliche Zunahme bei fehlerhaft konfigurierten S3 Buckets.
Manche Leser werden sich jetzt vielleicht fragen, wie es dazu kommen kann. Einer der Gründe dürfte sein, dass vielen Unternehmen gar nicht bewusst ist, wie viele Sicherheitsfunktionen es gibt, um ihre S3-Buckets vor Datenverlusten zu schützen.
Zugriffe auf S3 begrenzen
Es ist wichtig zu wissen, dass S3 Buckets standardmäßig bereits eigentlich sicher konfiguriert sind. S3 Buckets sind nur intern nutzbar, bis entweder Richtlinien oder Berechtigungen geändert werden, die einen öffentlichen Zugriff ermöglichen.
Von AWS werden die Buckets und die in ihnen abgelegten Objekte mit einem hierarchisch aufgebauten System an Zugriffsberechtigungen ausgestattet, das Objektschlüssel genannt wird. Es gilt auch für die Objekte in den einzelnen Foldern. Standardmäßig haben nur der Besitzer eines Accounts und der Ersteller einer Ressource einen Zugriff auf einen Bucket und seine Objektschlüssel.
Eine der wichtigsten von AWS angebotenen Funktionen zur Steuerung der Zugriffe hat nur die entscheidende Aufgabe, öffentliche Zugänge komplett zu blockieren. Dazu kann die AWS Konsole oder die Kommandozeile genutzt werden.
Mit beiden lassen sich Bucket-bezogene IAM-Richtlinien (Identity and Access Management) und Berechtigungen für Objekte überschreiben. Wenn Sie doch einmal einen öffentlichen Zugriff auf bestimmte Bestandteile oder Buckets benötigen, dann kann Ihr Security-Team spezielle Bucket-spezifische oder auch weiter gefasste IAM-Policies für Nutzer, Gruppen und Rollen innerhalb der AWS-Umgebung anlegen. Das gilt auch für einen dedizierten Zugriff von internen Ressourcen aus.
Während diese Richtlinien die am einfachsten skalierbare Methode sind, um Zugriffe auf S3 Buckets und die darin abgelegten Objekte zu kontrollieren, können Sie dafür aber auch Access Control Lists (ACLs) verwenden.
Diese können für einzelne AWS-Accounts oder mehrere vordefinierte Gruppen eingerichtet werden und sind mit den Berechtigungen für Dateiserver vergleichbar. Mit ACLs können etwa ein voller Zugriff oder auch detaillierte Lese- und Schreibberechtigungen erstellt werden.
Um explizit einen Zugriff auf ein Objekt oder einen Upload-Objektschlüssel zu gewähren, können entweder eine auf Query-Strings basierende Authentifizierung oder auch ein URL-basierter Zugang verwendet werden. Diese Methoden sollten jedoch nur in eng begrenzten Fällen genutzt werden, da sie nicht als sehr sicher gelten. Stattdessen kann auch eine Multifaktor-Authentifizierung eingesetzt werden, um die Zugriffe auf bestimmte S3-APIs (Application Programming Interfaces) zu begrenzen oder um etwa das Löschen von Objekten in S3 einzuschränken.
Methoden zum Schutz der Daten in S3
AWS unterstützt HTTPS für einen sicheren Transport der Daten von und zu den Buckets in S3. Alle zur Verfügung stehenden API-Tools und SDKs (Software Development Kits) in AWS unterstützen ebenfalls HTTPS.
Darüber hinaus hat Amazon umfangreiche Funktionen entwickelt, mit denen auch in S3 abgelegte ruhende Daten verschlüsselt werden können. Eine serverseitige Verschlüsselung dieser Informationen kann zusätzlich aktiviert werden.
Dazu können von S3 verwaltete oder auch vom Kunden bereitgestellte eigene Verschlüsselungs-Keys verwendet werden, die sich in AWS KMS (Key Management Services) importieren lassen. Von S3 oder KMS verwaltete Schlüssel können dann standardmäßig in allen S3 Buckets des Kunden eingesetzt werden.
Dazu kommen Data-Lifecycle-Richtlinien, um in S3 gespeicherte Daten nach einem bestimmten Zeitraum automatisch zu löschen.
Monitoring der S3 Buckets
Um dauerhaft den Schutz Ihrer S3 Buckets garantieren zu können, sollten Sie auch für ein umfassendes Monitoring in Ihrer AWS-Umgebung sorgen. Nur so können Sie alle Aktivitäten auf sowohl dem Bucket- als auch dem Objekt-Level überwachen. AWS CloudTrail zeichnet zum Beispiel alle Aktivitäten in Ihren S3 Buckets auf. Ihre Security-Mitarbeiter müssen das Logging aller sicherheitsrelevanten Ereignisse jedoch explizit in CloudTrail aktivieren, um auch die objektbezogenen Aktionen innerhalb der Buckets aufzeichnen zu können.
AWS kann darüber hinaus detaillierte Protokolle aller Anfragen an S3 Buckets durch ein Access-Logging auf Serverebene erstellen. Diese Funktion kann für jeden Bucket individuell aktiviert werden. Dafür benötigen Sie jedoch einen zusätzlichen S3 Bucket, der dann die anfallenden Daten aufnimmt. AWS Config bietet ferner eine Reihe von vordefinierten S3-Monitoring-Richtlinien, die die für Security und für den operativen Betrieb verantwortlichen Admins automatisch auf fehlerhafte Konfigurationen der Zugriffsrechte, beim Logging oder beim Schutz der Daten hinweisen.
Innerhalb von AWS gibt es also viele Möglichkeiten, um Ihre S3 Buckets abzusichern und gründlich zu überwachen. Aber sie müssen auch genutzt werden. Nur wenn die für die Einrichtung der Cloud, die Wartung und ihre Absicherung verantwortlichen Mitarbeiter alle diese Funktionen auch kennen und nutzen, können sie für einen umfassenden Schutz der ihnen anvertrauten S3 Buckets sorgen.