GCP - KMS Enum

Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

KMS

Il Cloud Key Management Service funge da archivio sicuro per chiavi crittografiche, che sono essenziali per operazioni come crittografare e decrittografare dati sensibili. Queste chiavi sono organizzate all'interno di anelli di chiavi, consentendo una gestione strutturata. Inoltre, il controllo degli accessi può essere configurato in modo meticoloso, sia a livello di singola chiave che per l'intero anello di chiavi, garantendo che le autorizzazioni siano allineate in modo preciso con i requisiti di sicurezza.

Gli anelli di chiavi KMS vengono creati per impostazione predefinita come globali, il che significa che le chiavi all'interno di quell'anello di chiavi sono accessibili da qualsiasi regione. Tuttavia, è possibile creare anelli di chiavi specifici in regioni specifiche.

Livello di protezione delle chiavi

  • Chiavi software: Le chiavi software vengono create e gestite interamente da KMS tramite software. Queste chiavi non sono protette da alcun modulo di sicurezza hardware (HSM) e possono essere utilizzate per scopi di test e sviluppo. Le chiavi software non sono consigliate per l'uso in produzione perché offrono una bassa sicurezza e sono suscettibili ad attacchi.

  • Chiavi ospitate nel cloud: Le chiavi ospitate nel cloud vengono create e gestite da KMS nel cloud utilizzando un'infrastruttura altamente disponibile e affidabile. Queste chiavi sono protette da HSM, ma gli HSM non sono dedicati a un cliente specifico. Le chiavi ospitate nel cloud sono adatte per la maggior parte dei casi d'uso in produzione.

  • Chiavi esterne: Le chiavi esterne vengono create e gestite al di fuori di KMS e vengono importate in KMS per l'utilizzo in operazioni crittografiche. Le chiavi esterne possono essere archiviate in un modulo di sicurezza hardware (HSM) o in una libreria software, a seconda delle preferenze del cliente.

Scopi delle chiavi

  • Crittografia/decrittografia simmetrica: Utilizzata per crittografare e decrittografare dati utilizzando una singola chiave per entrambe le operazioni. Le chiavi simmetriche sono veloci ed efficienti per crittografare e decrittografare grandi volumi di dati.

  • Firma asimmetrica: Utilizzata per la comunicazione sicura tra due parti senza condividere la chiave. Le chiavi asimmetriche sono composte da una chiave pubblica e una chiave privata. La chiave pubblica viene condivisa con gli altri, mentre la chiave privata viene mantenuta segreta.

  • Decrittografia asimmetrica: Utilizzata per verificare l'autenticità di un messaggio o di dati. Una firma digitale viene creata utilizzando una chiave privata e può essere verificata utilizzando la corrispondente chiave pubblica.

  • Firma MAC: Utilizzata per garantire l'integrità e l'autenticità dei dati creando un codice di autenticazione del messaggio (MAC) utilizzando una chiave segreta. HMAC viene comunemente utilizzato per l'autenticazione dei messaggi in protocolli di rete e applicazioni software.

Periodo di rotazione e periodo programmato per la distruzione

Di default, ogni 90 giorni, ma può essere facilmente e completamente personalizzato.

Il periodo "Programmato per la distruzione" è il tempo trascorso dall'utente che richiede la cancellazione della chiave fino alla sua eliminazione. Non può essere modificato dopo la creazione della chiave (default 1 giorno).

Versione primaria

Ogni chiave KMS può avere diverse versioni, una di esse deve essere quella predefinita, che verrà utilizzata quando una versione non viene specificata durante l'interazione con la chiave KMS.

Enumerazione

Avendo autorizzazioni per elencare le chiavi, ecco come puoi accedervi:

# List the global keyrings available
gcloud kms keyrings list --location global
gcloud kms keyrings get-iam-policy <KEYRING>

# List the keys inside a keyring
gcloud kms keys list --keyring <KEYRING> --location <global/other_locations>
gcloud kms keys get-iam-policy <KEY>

# Encrypt a file using one of your keys
gcloud kms decrypt --ciphertext-file=[INFILE] \
--plaintext-file=[OUTFILE] \
--key [KEY] \
--keyring [KEYRING] \
--location global

# Decrypt a file using one of your keys
gcloud kms decrypt --ciphertext-file=[INFILE] \
--plaintext-file=[OUTFILE] \
--key [KEY] \
--keyring [KEYRING] \
--location global

Escalazione dei privilegi

pageGCP - KMS Privesc

Post Esploitation

pageGCP - KMS Post Exploitation

Riferimenti

Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

Last updated