GCP - Compute Instances

Support HackTricks

Basic Information

Google Cloud Compute Instances sono macchine virtuali personalizzabili sull'infrastruttura cloud di Google, che offrono potenza di calcolo scalabile e on-demand per una vasta gamma di applicazioni. Forniscono funzionalità come distribuzione globale, archiviazione persistente, scelte flessibili del sistema operativo e forti integrazioni di rete e sicurezza, rendendole una scelta versatile per ospitare siti web, elaborare dati e eseguire applicazioni in modo efficiente nel cloud.

Confidential VM

Le VM riservate utilizzano funzionalità di sicurezza basate sull'hardware offerte dall'ultima generazione di processori AMD EPYC, che includono crittografia della memoria e virtualizzazione crittografata sicura. Queste funzionalità consentono alla VM di proteggere i dati elaborati e memorizzati al suo interno anche dal sistema operativo host e dall'ipervisore.

Per eseguire una VM riservata potrebbe essere necessario cambiare cose come il tipo della macchina, l'interfaccia di rete, l'immagine del disco di avvio.

Disk & Disk Encryption

È possibile selezionare il disco da utilizzare o crearne uno nuovo. Se selezioni uno nuovo puoi:

  • Selezionare la dimensione del disco

  • Selezionare il SO

  • Indicare se desideri eliminare il disco quando l'istanza viene eliminata

  • Crittografia: Per default verrà utilizzata una chiave gestita da Google, ma puoi anche selezionare una chiave da KMS o indicare una chiave grezza da utilizzare.

Deploy Container

È possibile distribuire un container all'interno della macchina virtuale. È possibile configurare l'immagine da utilizzare, impostare il comando da eseguire all'interno, argomenti, montare un volume e variabili d'ambiente (informazioni sensibili?) e configurare diverse opzioni per questo container come eseguire come privilegiato, stdin e pseudo TTY.

Service Account

Per impostazione predefinita, verrà utilizzato il service account predefinito di Compute Engine. L'email di questo SA è simile a: <proj-num>-compute@developer.gserviceaccount.com Questo service account ha ruolo di Editor su tutto il progetto (privilegi elevati).

E i perimetri di accesso predefiniti sono i seguenti:

  • https://www.googleapis.com/auth/devstorage.read_only -- Accesso in lettura ai bucket :)

  • https://www.googleapis.com/auth/logging.write

  • https://www.googleapis.com/auth/monitoring.write

  • https://www.googleapis.com/auth/servicecontrol

  • https://www.googleapis.com/auth/service.management.readonly

  • https://www.googleapis.com/auth/trace.append

Tuttavia, è possibile concedere cloud-platform con un clic o specificare quelli personalizzati.

Firewall

È possibile consentire il traffico HTTP e HTTPS.

Networking

  • IP Forwarding: È possibile abilitare l'inoltro IP dalla creazione dell'istanza.

  • Hostname: È possibile dare all'istanza un hostname permanente.

  • Interfaccia: È possibile aggiungere un'interfaccia di rete.

Extra Security

Queste opzioni aumenteranno la sicurezza della VM e sono raccomandate:

  • Secure boot: Secure boot aiuta a proteggere le tue istanze VM contro malware e rootkit a livello di avvio e kernel.

  • Enable vTPM: Il Modulo di Piattaforma Fidato Virtuale (vTPM) convalida l'integrità pre-avvio e di avvio della tua VM guest e offre generazione e protezione delle chiavi.

  • Integrity supervision: Il monitoraggio dell'integrità ti consente di monitorare e verificare l'integrità di avvio in tempo reale delle tue istanze VM protette utilizzando i report di Stackdriver. Richiede che vTPM sia abilitato.

VM Access

Il modo comune per abilitare l'accesso alla VM è consentire a determinate chiavi pubbliche SSH di accedere alla VM. Tuttavia, è anche possibile abilitare l'accesso alla VM tramite il servizio os-config utilizzando IAM. Inoltre, è possibile abilitare 2FA per accedere alla VM utilizzando questo servizio. Quando questo servizio è abilitato, l'accesso tramite chiavi SSH è disabilitato.

Metadata

È possibile definire automazione (userdata in AWS) che sono comandi shell che verranno eseguiti ogni volta che la macchina si accende o si riavvia.

È anche possibile aggiungere valori chiave-valore di metadati extra che saranno accessibili dall'endpoint dei metadati. Queste informazioni sono comunemente utilizzate per variabili d'ambiente e script di avvio/arresto. Queste possono essere ottenute utilizzando il metodo describe da un comando nella sezione di enumerazione, ma possono anche essere recuperate dall'interno dell'istanza accedendo all'endpoint dei metadati.

# view project metadata
curl "http://metadata.google.internal/computeMetadata/v1/project/attributes/?recursive=true&alt=text" \
-H "Metadata-Flavor: Google"

# view instance metadata
curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=true&alt=text" \
-H "Metadata-Flavor: Google"

Inoltre, il token di autenticazione per l'account di servizio allegato e informazioni generali sull'istanza, sulla rete e sul progetto saranno disponibili dall'endpoint dei metadati. Per ulteriori informazioni, controlla:

Crittografia

Una chiave di crittografia gestita da Google è utilizzata per impostazione predefinita, ma è possibile configurare una chiave di crittografia gestita dal cliente (CMEK). Puoi anche configurare cosa fare quando il CMEK utilizzato viene revocato: Notificare o spegnere la VM.

Supporta HackTricks

Last updated