AWS - Relational Database (RDS) Enum
Last updated
Last updated
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Der Relational Database Service (RDS), der von AWS angeboten wird, ist darauf ausgelegt, die Bereitstellung, den Betrieb und die Skalierung einer relationalen Datenbank in der Cloud zu optimieren. Dieser Dienst bietet die Vorteile von Kosteneffizienz und Skalierbarkeit, während arbeitsintensive Aufgaben wie Hardwarebereitstellung, Datenbankkonfiguration, Patchen und Backups automatisiert werden.
AWS RDS unterstützt verschiedene weit verbreitete relationale Datenbank-Engines, darunter MySQL, PostgreSQL, MariaDB, Oracle Database, Microsoft SQL Server und Amazon Aurora, mit Kompatibilität für sowohl MySQL als auch PostgreSQL.
Wichtige Funktionen von RDS sind:
Verwaltung von Datenbankinstanzen ist vereinfacht.
Erstellung von Lese-Replikaten, um die Leseleistung zu verbessern.
Konfiguration von Multi-Availability Zone (AZ) Bereitstellungen, um hohe Verfügbarkeit und Failover-Mechanismen sicherzustellen.
Integration mit anderen AWS-Diensten, wie:
AWS Identity and Access Management (IAM) für robuste Zugriffskontrolle.
AWS CloudWatch für umfassende Überwachung und Metriken.
AWS Key Management Service (KMS) zur Gewährleistung der Verschlüsselung im Ruhezustand.
Beim Erstellen des DB-Clusters kann der Master-Benutzername konfiguriert werden (admin
standardmäßig). Um das Passwort dieses Benutzers zu generieren, können Sie:
Ein Passwort selbst angeben
RDS anweisen, es automatisch zu generieren
RDS anweisen, es im AWS Secret Manager zu verwalten, verschlüsselt mit einem KMS-Schlüssel
Es gibt 3 Arten von Authentifizierungsoptionen, aber die Verwendung des Master-Passworts ist immer erlaubt:
Standardmäßig wird kein öffentlicher Zugriff auf die Datenbanken gewährt, jedoch kann er gewährt werden. Daher können standardmäßig nur Maschinen aus derselben VPC darauf zugreifen, wenn die ausgewählte Sicherheitsgruppe (die in EC2 SG gespeichert ist) dies zulässt.
Anstatt eine DB-Instanz exponieren, ist es möglich, einen RDS Proxy zu erstellen, der die Skalierbarkeit & Verfügbarkeit des DB-Clusters verbessert.
Darüber hinaus kann auch der Datenbankport geändert werden.
Verschlüsselung ist standardmäßig aktiviert und verwendet einen von AWS verwalteten Schlüssel (ein CMK kann stattdessen ausgewählt werden).
Durch die Aktivierung Ihrer Verschlüsselung aktivieren Sie die Verschlüsselung im Ruhezustand für Ihren Speicher, Snapshots, Lese-Replikate und Ihre Backups. Schlüssel zur Verwaltung dieser Verschlüsselung können durch die Verwendung von KMS ausgegeben werden. Es ist nicht möglich, diese Ebene der Verschlüsselung hinzuzufügen, nachdem Ihre Datenbank erstellt wurde. Es muss während ihrer Erstellung erfolgen.
Es gibt jedoch einen Workaround, der es Ihnen ermöglicht, eine unverschlüsselte Datenbank wie folgt zu verschlüsseln. Sie können einen Snapshot Ihrer unverschlüsselten Datenbank erstellen, eine verschlüsselte Kopie dieses Snapshots erstellen, diesen verschlüsselten Snapshot verwenden, um eine neue Datenbank zu erstellen, und schließlich wäre Ihre Datenbank dann verschlüsselt.
Neben den Verschlüsselungsfunktionen, die RDS auf Anwendungsebene bietet, unterstützt RDS auch zusätzliche plattformseitige Verschlüsselungsmechanismen, um Daten im Ruhezustand zu schützen. Dazu gehört die Transparente Datenverschlüsselung (TDE) für Oracle und SQL Server. Es ist jedoch wichtig zu beachten, dass TDE zwar die Sicherheit erhöht, indem es Daten im Ruhezustand verschlüsselt, es jedoch auch die Datenbankleistung beeinträchtigen kann. Diese Leistungsbeeinträchtigung ist besonders bemerkbar, wenn sie in Verbindung mit MySQL-Kryptografiefunktionen oder Microsoft Transact-SQL-Kryptografiefunktionen verwendet wird.
Um TDE zu nutzen, sind bestimmte vorbereitende Schritte erforderlich:
Option Group Association:
Die Datenbank muss mit einer Optionsgruppe verbunden sein. Optionsgruppen dienen als Container für Einstellungen und Funktionen und erleichtern die Datenbankverwaltung, einschließlich Sicherheitsverbesserungen.
Es ist jedoch wichtig zu beachten, dass Optionsgruppen nur für bestimmte Datenbank-Engines und -Versionen verfügbar sind.
Einbeziehung von TDE in die Optionsgruppe:
Sobald sie mit einer Optionsgruppe verbunden ist, muss die Oracle-Option für die transparente Datenverschlüsselung in diese Gruppe aufgenommen werden.
Es ist wichtig zu erkennen, dass die TDE-Option, sobald sie zu einer Optionsgruppe hinzugefügt wurde, ein permanentes Element wird und nicht entfernt werden kann.
TDE-Verschlüsselungsmodi:
TDE bietet zwei verschiedene Verschlüsselungsmodi:
TDE Tablespace Encryption: Dieser Modus verschlüsselt gesamte Tabellen und bietet einen breiteren Schutzbereich für Daten.
TDE Column Encryption: Dieser Modus konzentriert sich auf die Verschlüsselung spezifischer, einzelner Elemente innerhalb der Datenbank und ermöglicht eine granularere Kontrolle darüber, welche Daten verschlüsselt werden.
Das Verständnis dieser Voraussetzungen und der betrieblichen Einzelheiten von TDE ist entscheidend für die effektive Implementierung und Verwaltung der Verschlüsselung innerhalb von RDS, um sowohl die Datensicherheit als auch die Einhaltung notwendiger Standards zu gewährleisten.
Es gibt Möglichkeiten, auf DynamoDB-Daten mit SQL-Syntax zuzugreifen, daher sind typische SQL-Injection-Angriffe ebenfalls möglich.
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)