AWS - Relational Database (RDS) Enum
Last updated
Last updated
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
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 la fornitura di hardware, la configurazione del database, le 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 distribuzioni 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 robusto controllo degli accessi.
AWS CloudWatch per un monitoraggio e metriche complete.
AWS Key Management Service (KMS) per garantire la crittografia a riposo.
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
Ci sono 3 tipi di opzioni di autenticazione, ma l'uso della password master è sempre consentito:
Per impostazione predefinita non viene concesso accesso pubblico ai database, tuttavia potrebbe essere concesso. Pertanto, per impostazione predefinita solo le macchine della stessa VPC potranno accedervi se il gruppo di sicurezza selezionato (memorizzato in EC2 SG) lo consente.
Invece di esporre un'istanza DB, è possibile creare un RDS Proxy che migliora la scalabilità e disponibilità del cluster DB.
Inoltre, il port del database può essere modificato anche.
La crittografia è abilitata per impostazione predefinita utilizzando una chiave gestita da AWS (può essere scelta una CMK invece).
Abilitando la tua 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 tuo database è stato creato. Deve essere fatto durante la sua creazione.
Tuttavia, esiste un workaround che ti 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.
Oltre alle capacità di crittografia intrinseche a RDS a livello di applicazione, RDS supporta anche meccanismi di crittografia a livello di piattaforma aggiuntivi per proteggere i dati a riposo. Questo include Crittografia Trasparente dei Dati (TDE) per Oracle e SQL Server. Tuttavia, è fondamentale notare che mentre TDE migliora la sicurezza crittografando i dati a riposo, potrebbe anche influenzare le prestazioni del database. Questo impatto sulle prestazioni è particolarmente evidente quando 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 specifici motori di database e versioni.
Inclusione di TDE nel Gruppo di Opzioni:
Una volta associato a un gruppo di opzioni, l'opzione di Crittografia Trasparente dei Dati di Oracle 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 distinte modalità di crittografia:
Crittografia TDE Tablespace: Questa modalità crittografa intere tabelle, fornendo un ambito più ampio di protezione dei dati.
Crittografia TDE Column: 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.
Ci sono modi per accedere ai dati di DynamoDB con sintassi SQL, quindi, tipiche SQL injection sono anche possibili.
Impara e pratica Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)