AWS - Relational Database (RDS) Enum
Informazioni di base
Il Relational Database Service (RDS) offerto da AWS è progettato per semplificare il deployment, l'operazione e la scalabilità di un database relazionale nel cloud. Questo servizio offre i vantaggi di efficienza dei costi e scalabilità automatizzando compiti laboriosi come il provisioning dell'hardware, la configurazione del database, l'applicazione di patch e i backup.
AWS RDS supporta vari motori di database relazionali ampiamente utilizzati, tra cui MySQL, PostgreSQL, MariaDB, Oracle Database, Microsoft SQL Server e Amazon Aurora, con compatibilità sia per MySQL che per PostgreSQL.
Le caratteristiche principali di RDS includono:
Gestione delle istanze di database semplificata.
Creazione di repliche di lettura per migliorare le prestazioni di lettura.
Configurazione di deployment multi-Availability Zone (AZ) per garantire alta disponibilità e meccanismi di failover.
Integrazione con altri servizi AWS, come:
AWS Identity and Access Management (IAM) per un controllo degli accessi robusto.
AWS CloudWatch per un monitoraggio e metriche completi.
AWS Key Management Service (KMS) per garantire la crittografia a riposo.
Credenziali
Quando si crea il cluster DB, il nome utente master può essere configurato (admin
per impostazione predefinita). Per generare la password di questo utente puoi:
Indicare una password tu stesso
Dire a RDS di generarla automaticamente
Dire a RDS di gestirla in AWS Secret Manager crittografata con una chiave KMS
Autenticazione
Ci sono 3 tipi di opzioni di autenticazione, ma l'uso della password master è sempre consentito:
Accesso Pubblico & VPC
Per impostazione predefinita non è concesso l'accesso pubblico ai database, tuttavia potrebbe essere concesso. Pertanto, per impostazione predefinita solo le macchine dello stesso VPC saranno in grado di accedervi se il gruppo di sicurezza selezionato (sono memorizzati in EC2 SG) lo consente.
Invece di esporre un'istanza DB, è possibile creare un RDS Proxy che migliora la scalabilità e la disponibilità del cluster DB.
Inoltre, anche la porta del database può essere modificata.
Crittografia
La crittografia è abilitata per impostazione predefinita utilizzando una chiave gestita da AWS (potrebbe essere scelta una CMK invece).
Abilitando la crittografia, stai abilitando la crittografia a riposo per il tuo storage, snapshot, repliche di lettura e i tuoi backup. Le chiavi per gestire questa crittografia possono essere emesse utilizzando KMS. Non è possibile aggiungere questo livello di crittografia dopo che il database è stato creato. Deve essere fatto durante la sua creazione.
Tuttavia, esiste una soluzione alternativa che consente di crittografare un database non crittografato come segue. Puoi creare uno snapshot del tuo database non crittografato, creare una copia crittografata di quello snapshot, utilizzare quello snapshot crittografato per creare un nuovo database e poi, infine, il tuo database sarà crittografato.
Transparent Data Encryption (TDE)
Oltre alle capacità di crittografia intrinseche a RDS a livello di applicazione, RDS supporta anche meccanismi di crittografia aggiuntivi a livello di piattaforma per proteggere i dati a riposo. Questo include Transparent Data Encryption (TDE) per Oracle e SQL Server. Tuttavia, è cruciale notare che mentre TDE migliora la sicurezza crittografando i dati a riposo, può anche influenzare le prestazioni del database. Questo impatto sulle prestazioni è particolarmente evidente quando viene utilizzato in combinazione con le funzioni crittografiche di MySQL o le funzioni crittografiche di Microsoft Transact-SQL.
Per utilizzare TDE, sono necessari alcuni passaggi preliminari:
Associazione del Gruppo di Opzioni:
Il database deve essere associato a un gruppo di opzioni. I gruppi di opzioni fungono da contenitori per impostazioni e funzionalità, facilitando la gestione del database, inclusi i miglioramenti della sicurezza.
Tuttavia, è importante notare che i gruppi di opzioni sono disponibili solo per motori di database e versioni specifici.
Inclusione di TDE nel Gruppo di Opzioni:
Una volta associato a un gruppo di opzioni, l'opzione Oracle Transparent Data Encryption deve essere inclusa in quel gruppo.
È essenziale riconoscere che una volta aggiunta l'opzione TDE a un gruppo di opzioni, diventa una caratteristica permanente e non può essere rimossa.
Modalità di Crittografia TDE:
TDE offre due modalità di crittografia distinte:
Crittografia Tablespace TDE: Questa modalità crittografa intere tabelle, fornendo una protezione dei dati più ampia.
Crittografia Colonna TDE: Questa modalità si concentra sulla crittografia di elementi specifici e individuali all'interno del database, consentendo un controllo più granulare su quali dati vengono crittografati.
Comprendere questi prerequisiti e le complessità operative di TDE è cruciale per implementare e gestire efficacemente la crittografia all'interno di RDS, garantendo sia la sicurezza dei dati che la conformità agli standard necessari.
Enumerazione
Accesso Non Autenticato
AWS - RDS Unauthenticated EnumPrivesc
AWS - RDS PrivescPost Exploitation
AWS - RDS Post ExploitationPersistenza
AWS - RDS PersistenceSQL Injection
Ci sono modi per accedere ai dati di DynamoDB con sintassi SQL, quindi, sono possibili anche le tipiche SQL injection.
Last updated