AWS - KMS Enum
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Il Servizio di Gestione delle Chiavi di AWS (AWS KMS) è presentato come un servizio gestito, semplificando il processo per gli utenti di creare e gestire le chiavi master dei clienti (CMK). Queste CMK sono fondamentali per la crittografia dei dati degli utenti. Una caratteristica notevole di AWS KMS è che le CMK sono prevalentemente protette da moduli di sicurezza hardware (HSM), migliorando la protezione delle chiavi di crittografia.
KMS utilizza crittografia simmetrica. Questa viene utilizzata per crittografare le informazioni a riposo (ad esempio, all'interno di un S3). Se hai bisogno di crittografare le informazioni in transito, devi utilizzare qualcosa come TLS.
KMS è un servizio specifico per regione.
Gli amministratori di Amazon non hanno accesso alle tue chiavi. Non possono recuperare le tue chiavi e non ti aiutano con la crittografia delle tue chiavi. AWS semplicemente amministra il sistema operativo e l'applicazione sottostante; spetta a noi amministrare le nostre chiavi di crittografia e gestire come vengono utilizzate.
Chiavi Master dei Clienti (CMK): Possono crittografare dati fino a 4KB di dimensione. Vengono tipicamente utilizzate per creare, crittografare e decrittografare le DEK (Data Encryption Keys). Poi le DEK vengono utilizzate per crittografare i dati.
Una chiave master dei clienti (CMK) è una rappresentazione logica di una chiave master in AWS KMS. Oltre agli identificatori della chiave master e ad altri metadati, inclusi la data di creazione, la descrizione e lo stato della chiave, una CMK contiene il materiale della chiave utilizzato per crittografare e decrittografare i dati. Quando crei una CMK, per impostazione predefinita, AWS KMS genera il materiale della chiave per quella CMK. Tuttavia, puoi scegliere di creare una CMK senza materiale della chiave e poi importare il tuo materiale della chiave in quella CMK.
Ci sono 2 tipi di chiavi master:
CMK gestite da AWS: Utilizzate da altri servizi per crittografare i dati. Viene utilizzata dal servizio che l'ha creata in una regione. Vengono create la prima volta che implementi la crittografia in quel servizio. Ruotano ogni 3 anni e non è possibile cambiarle.
CMK gestite dal cliente: Flessibilità, rotazione, accesso configurabile e politica delle chiavi. Abilita e disabilita le chiavi.
Crittografia a Involucro nel contesto del Servizio di Gestione delle Chiavi (KMS): Sistema gerarchico a due livelli per crittografare i dati con la chiave dei dati e poi crittografare la chiave dei dati con la chiave master.
Queste definiscono chi può utilizzare e accedere a una chiave in KMS.
Per impostazione predefinita:
Consente all'IAM dell' account AWS che possiede la chiave KMS di gestire l'accesso alla chiave KMS tramite IAM.
A differenza di altre politiche delle risorse AWS, una politica della chiave KMS di AWS non concede automaticamente permessi a nessuno dei principi dell'account. Per concedere permessi agli amministratori dell'account, la politica della chiave deve includere una dichiarazione esplicita che fornisca questo permesso, come questa.
Senza consentire all'account("AWS": "arn:aws:iam::111122223333:root"
) i permessi IAM non funzioneranno.
Consente all'account di utilizzare le politiche IAM per consentire l'accesso alla chiave KMS, oltre alla politica della chiave.
Senza questo permesso, le politiche IAM che consentono l'accesso alla chiave sono inefficaci, sebbene le politiche IAM che negano l'accesso alla chiave siano ancora efficaci.
Riduce il rischio che la chiave diventi ingovernabile dando permessi di controllo degli accessi agli amministratori dell'account, incluso l'utente root dell'account, che non può essere eliminato.
Esempio di politica predefinita:
Se l'account è autorizzato ("arn:aws:iam::111122223333:root"
), un principale dell'account avrà comunque bisogno di permessi IAM per utilizzare la chiave KMS. Tuttavia, se l'ARN di un ruolo, ad esempio, è specificamente autorizzato nella Politica della Chiave, quel ruolo non ha bisogno di permessi IAM.
Amministratore delle chiavi per impostazione predefinita:
Ha accesso per gestire KMS ma non per crittografare o decrittografare dati
Solo gli utenti e i ruoli IAM possono essere aggiunti all'elenco degli Amministratori delle Chiavi (non i gruppi)
Se viene utilizzato un CMK esterno, gli Amministratori delle Chiavi hanno il permesso di importare materiale di chiave
Più a lungo la stessa chiave rimane in uso, più dati vengono crittografati con quella chiave, e se quella chiave viene compromessa, allora più ampia sarà l'area di esplosione dei dati a rischio. Inoltre, più a lungo la chiave è attiva, maggiore è la probabilità che venga compromessa.
KMS ruota le chiavi dei clienti ogni 365 giorni (o puoi eseguire il processo manualmente quando vuoi) e le chiavi gestite da AWS ogni 3 anni e questo tempo non può essere cambiato.
Le chiavi più vecchie vengono mantenute per decrittografare i dati che sono stati crittografati prima della rotazione
In caso di compromissione, ruotare la chiave non rimuoverà la minaccia poiché sarà possibile decrittografare tutti i dati crittografati con la chiave compromessa. Tuttavia, i nuovi dati saranno crittografati con la nuova chiave.
Se il CMK è in stato di disabilitato o in attesa di cancellazione, KMS non eseguirà una rotazione della chiave fino a quando il CMK non sarà riattivato o la cancellazione non sarà annullata.
È necessario creare un nuovo CMK, quindi viene creato un nuovo CMK-ID, quindi sarà necessario aggiornare qualsiasi applicazione per riferirsi al nuovo CMK-ID.
Per semplificare questo processo, puoi utilizzare alias per riferirti a un key-id e poi aggiornare semplicemente la chiave a cui si riferisce l'alias.
Devi mantenere le vecchie chiavi per decrittografare i vecchi file crittografati con esse.
Puoi importare chiavi dalla tua infrastruttura di chiavi on-premises.
KMS è tariffato in base al numero di richieste di crittografia/decrittografia ricevute da tutti i servizi al mese.
KMS ha piena integrazione di audit e conformità con CloudTrail; qui puoi auditare tutte le modifiche effettuate su KMS.
Con la politica KMS puoi fare quanto segue:
Limitare chi può creare chiavi dati e quali servizi hanno accesso a utilizzare queste chiavi
Limitare l'accesso ai sistemi per crittografare solo, decrittografare solo o entrambi
Definire per abilitare i sistemi ad accedere alle chiavi attraverso le regioni (anche se non è raccomandato poiché un guasto nella regione che ospita KMS influenzerà la disponibilità dei sistemi in altre regioni).
Non puoi sincronizzare o spostare/copiare chiavi tra le regioni; puoi solo definire regole per consentire l'accesso tra le regioni.
Impara e pratica Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)