GCP - Compute Instances

Supporta HackTricks

Informazioni di Base

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, storage persistente, scelte flessibili di OS 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 Confidential VM utilizzano funzionalità di sicurezza basate su hardware offerte dalla generazione più recente 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'hypervisor.

Per eseguire una Confidential VM potrebbe essere necessario modificare elementi come il tipo di macchina, l'interfaccia di rete, l'immagine del disco di avvio.

Disco & Crittografia del Disco

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

  • Selezionare la dimensione del disco

  • Selezionare l'OS

  • 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, gli argomenti, montare un volume, e le variabili d'ambiente (informazioni sensibili?) e configurare diverse opzioni per questo container come eseguire come privileged, stdin e pseudo TTY.

Service Account

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

E i default access scopes 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 concedergli cloud-platform con un clic o specificare custom ones.

Firewall

È possibile consentire il traffico HTTP e HTTPS.

Networking

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

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

  • Interface: È 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 istanze VM da malware a livello di avvio e kernel e rootkit.

  • Enable vTPM: Virtual Trusted Platform Module (vTPM) convalida l'integrità pre-boot e boot della tua VM guest e offre generazione e protezione delle chiavi.

  • Integrity supervision: Integrity monitoring ti consente di monitorare e verificare l'integrità runtime del boot delle tue istanze VM shielded 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 l'autenticazione a due fattori per accedere alla VM utilizzando questo servizio. Quando questo servizio è abilitato, l'accesso tramite chiavi SSH è disabilitato.

Metadata

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

È anche possibile aggiungere valori di metadati chiave-valore extra che saranno accessibili dall'endpoint dei metadati. Queste informazioni sono comunemente utilizzate per variabili d'ambiente e script di avvio/arresto. Questo può essere ottenuto utilizzando il describe method da un comando nella sezione di enumerazione, ma potrebbe anche essere recuperato 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"

Moreover, auth token for the attached service account e informazioni generali sull'istanza, la rete e il progetto saranno disponibili dall'endpoint dei metadati. Per maggiori informazioni, controlla:

Encryption

Una chiave di crittografia gestita da Google è utilizzata di default, ma può essere configurata una chiave di crittografia gestita dal cliente (CMEK). Puoi anche configurare cosa fare quando la CMEK utilizzata viene revocata: Niente o spegnere la VM.

Supporta HackTricks

Last updated