AWS - Relational Database (RDS) Enum
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE) Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Informations de base
Le Service de base de données relationnelle (RDS) proposé par AWS est conçu pour simplifier le déploiement, l'exploitation et la mise à l'échelle d'une base de données relationnelle dans le cloud. Ce service offre les avantages de l'efficacité des coûts et de la scalabilité tout en automatisant des tâches laborieuses comme la fourniture de matériel, la configuration de la base de données, les correctifs et les sauvegardes.
AWS RDS prend en charge divers moteurs de bases de données relationnelles largement utilisés, notamment MySQL, PostgreSQL, MariaDB, Oracle Database, Microsoft SQL Server et Amazon Aurora, avec compatibilité pour MySQL et PostgreSQL.
Les principales caractéristiques de RDS incluent :
La gestion des instances de base de données est simplifiée.
Création de réplicas de lecture pour améliorer les performances de lecture.
Configuration de déploiements multi-Zone de disponibilité (AZ) pour garantir une haute disponibilité et des mécanismes de basculement.
Intégration avec d'autres services AWS, tels que :
AWS Identity and Access Management (IAM) pour un contrôle d'accès robuste.
AWS CloudWatch pour une surveillance et des métriques complètes.
AWS Key Management Service (KMS) pour garantir le chiffrement au repos.
Identifiants
Lors de la création du cluster DB, le nom d'utilisateur principal peut être configuré (admin
par défaut). Pour générer le mot de passe de cet utilisateur, vous pouvez :
Indiquer un mot de passe vous-même
Demander à RDS de le générer automatiquement
Demander à RDS de le gérer dans AWS Secret Manager chiffré avec une clé KMS
Authentification
Il existe 3 types d'options d'authentification, mais l'utilisation du mot de passe principal est toujours autorisée :
Accès public et VPC
Par défaut, aucun accès public n'est accordé aux bases de données, cependant, il pourrait être accordé. Par conséquent, par défaut, seules les machines du même VPC pourront y accéder si le groupe de sécurité sélectionné (stocké dans EC2 SG) le permet.
Au lieu d'exposer une instance de DB, il est possible de créer un RDS Proxy qui améliore la scalabilité et la disponibilité du cluster DB.
De plus, le port de la base de données peut également être modifié.
Chiffrement
Le chiffrement est activé par défaut en utilisant une clé gérée par AWS (une CMK pourrait être choisie à la place).
En activant votre chiffrement, vous activez le chiffrement au repos pour votre stockage, vos instantanés, vos réplicas de lecture et vos sauvegardes. Les clés pour gérer ce chiffrement peuvent être émises en utilisant KMS. Il n'est pas possible d'ajouter ce niveau de chiffrement après la création de votre base de données. Cela doit être fait lors de sa création.
Cependant, il existe un contournement vous permettant de chiffrer une base de données non chiffrée comme suit. Vous pouvez créer un instantané de votre base de données non chiffrée, créer une copie chiffrée de cet instantané, utiliser cet instantané chiffré pour créer une nouvelle base de données, et enfin, votre base de données serait alors chiffrée.
Chiffrement des données transparent (TDE)
En plus des capacités de chiffrement inhérentes à RDS au niveau de l'application, RDS prend également en charge des mécanismes de chiffrement supplémentaires au niveau de la plateforme pour protéger les données au repos. Cela inclut le chiffrement des données transparent (TDE) pour Oracle et SQL Server. Cependant, il est crucial de noter que bien que le TDE améliore la sécurité en chiffrant les données au repos, il peut également affecter les performances de la base de données. Cet impact sur les performances est particulièrement perceptible lorsqu'il est utilisé en conjonction avec des fonctions cryptographiques MySQL ou des fonctions cryptographiques Microsoft Transact-SQL.
Pour utiliser le TDE, certaines étapes préliminaires sont nécessaires :
Association de groupe d'options :
La base de données doit être associée à un groupe d'options. Les groupes d'options servent de conteneurs pour les paramètres et les fonctionnalités, facilitant la gestion de la base de données, y compris les améliorations de sécurité.
Cependant, il est important de noter que les groupes d'options ne sont disponibles que pour des moteurs de base de données et des versions spécifiques.
Inclusion du TDE dans le groupe d'options :
Une fois associée à un groupe d'options, l'option de chiffrement des données transparentes Oracle doit être incluse dans ce groupe.
Il est essentiel de reconnaître qu'une fois l'option TDE ajoutée à un groupe d'options, elle devient une caractéristique permanente et ne peut pas être supprimée.
Modes de chiffrement TDE :
Le TDE offre deux modes de chiffrement distincts :
Chiffrement de tablespace TDE : Ce mode chiffre des tables entières, offrant une portée de protection des données plus large.
Chiffrement de colonne TDE : Ce mode se concentre sur le chiffrement d'éléments spécifiques et individuels au sein de la base de données, permettant un contrôle plus granulaire sur les données chiffrées.
Comprendre ces prérequis et les complexités opérationnelles du TDE est crucial pour mettre en œuvre et gérer efficacement le chiffrement au sein de RDS, garantissant à la fois la sécurité des données et la conformité aux normes nécessaires.
Énumération
Accès non authentifié
AWS - RDS Unauthenticated EnumPrivesc
AWS - RDS PrivescPost Exploitation
AWS - RDS Post ExploitationPersistance
AWS - RDS PersistenceInjection SQL
Il existe des moyens d'accéder aux données de DynamoDB avec la syntaxe SQL, donc, des injections SQL typiques sont également possibles.
Apprenez et pratiquez le Hacking AWS :HackTricks Training AWS Red Team Expert (ARTE) Apprenez et pratiquez le Hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Last updated