AWS - Relational Database (RDS) Enum
Grundlegende Informationen
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 vereinfachen. Dieser Dienst bietet die Vorteile von Kosteneffizienz und Skalierbarkeit, während er arbeitsintensive Aufgaben wie Hardwarebereitstellung, Datenbankkonfiguration, Patchen und Backups automatisiert.
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 umfassen:
Verwaltung von Datenbankinstanzen wird vereinfacht.
Erstellung von Read Replicas, um die Leseleistung zu verbessern.
Konfiguration von Multi-Availability Zone (AZ) Deployments, 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 Sicherstellung der Verschlüsselung im Ruhezustand.
Anmeldeinformationen
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 verschlüsselt mit einem KMS-Schlüssel zu verwalten
Authentifizierung
Es gibt 3 Arten von Authentifizierungsoptionen, aber die Verwendung des Master-Passworts ist immer erlaubt:
Öffentlicher Zugriff & VPC
Standardmäßig wird kein öffentlicher Zugriff auf die Datenbanken gewährt, jedoch könnte er gewährt werden. Daher können standardmäßig nur Maschinen aus derselben VPC darauf zugreifen, wenn die ausgewählte Sicherheitsgruppe (werden in EC2 SG gespeichert) dies erlaubt.
Anstatt eine DB-Instanz offenzulegen, ist es möglich, einen RDS Proxy zu erstellen, der die Skalierbarkeit und Verfügbarkeit des DB-Clusters verbessert.
Darüber hinaus kann auch der Datenbankport geändert werden.
Verschlüsselung
Verschlüsselung ist standardmäßig aktiviert unter Verwendung eines von AWS verwalteten Schlüssels (ein CMK könnte stattdessen gewählt werden).
Durch Aktivierung Ihrer Verschlüsselung aktivieren Sie Verschlüsselung im Ruhezustand für Ihren Speicher, Snapshots, Read Replicas und Ihre Backups. Schlüssel zur Verwaltung dieser Verschlüsselung können mit KMS ausgestellt werden. Es ist nicht möglich, diese Verschlüsselungsebene nach der Erstellung Ihrer Datenbank hinzuzufügen. Es muss während der Erstellung erfolgen.
Es gibt jedoch eine Problemumgehung, die 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.
Transparent Data Encryption (TDE)
Neben den auf Anwendungsebene inhärenten Verschlüsselungsfunktionen von RDS unterstützt RDS auch zusätzliche Plattform-Verschlüsselungsmechanismen, um Daten im Ruhezustand zu schützen. Dazu gehört Transparent Data Encryption (TDE) für Oracle und SQL Server. Es ist jedoch wichtig zu beachten, dass TDE zwar die Sicherheit durch Verschlüsselung von Daten im Ruhezustand erhöht, 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 Vorbereitungen erforderlich:
Option Group Association:
Die Datenbank muss mit einer Optionsgruppe verknüpft sein. Optionsgruppen dienen als Container für Einstellungen und Funktionen, die die Datenbankverwaltung, einschließlich Sicherheitsverbesserungen, erleichtern.
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 die Datenbank mit einer Optionsgruppe verknüpft ist, muss die Oracle Transparent Data Encryption-Option in diese Gruppe aufgenommen werden.
Es ist wichtig zu erkennen, dass die TDE-Option, sobald sie zu einer Optionsgruppe hinzugefügt wurde, eine dauerhafte Einrichtung ist und nicht entfernt werden kann.
TDE-Verschlüsselungsmodi:
TDE bietet zwei verschiedene Verschlüsselungsmodi:
TDE Tablespace Encryption: Dieser Modus verschlüsselt ganze Tabellen und bietet einen breiteren Schutzumfang.
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 Feinheiten 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.
Enumeration
Unauthenticated Access
AWS - RDS Unauthenticated EnumPrivesc
AWS - RDS PrivescPost Exploitation
AWS - RDS Post ExploitationPersistence
AWS - RDS PersistenceSQL Injection
Es gibt Möglichkeiten, auf DynamoDB-Daten mit SQL-Syntax zuzugreifen, daher sind typische SQL-Injektionen ebenfalls möglich.
Last updated