GCP - Add Custom SSH Metadata
GCP - Aggiungere Metadati SSH Personalizzati
Modifica dei metadati
La modifica dei metadati su un'istanza potrebbe comportare significativi rischi per la sicurezza se un attaccante acquisisce le autorizzazioni necessarie.
Incorporazione delle Chiavi SSH nei Metadati Personalizzati
Su GCP, i sistemi Linux eseguono spesso script dall'Ambiente Ospite Linux Python per Google Compute Engine. Un componente critico di questo è il daemon degli account, progettato per controllare regolarmente il punto finale dei metadati dell'istanza per aggiornamenti delle chiavi pubbliche SSH autorizzate.
Pertanto, se un attaccante può modificare i metadati personalizzati, potrebbe far sì che il daemon trovi una nuova chiave pubblica, che verrà elaborata e integrata nel sistema locale. La chiave verrà aggiunta nel file ~/.ssh/authorized_keys
di un utente esistente o potenzialmente creando un nuovo utente con privilegi sudo
, a seconda del formato della chiave. E l'attaccante sarà in grado di compromettere l'host.
Aggiungere una chiave SSH a un utente privilegiato esistente
Esaminare le Chiavi SSH Esistenti sull'Istanza:
Esegui il comando per descrivere l'istanza e i suoi metadati per individuare le chiavi SSH esistenti. La sezione rilevante nell'output sarà sotto
metadata
, in particolare la chiavessh-keys
.
Presta attenzione al formato delle chiavi SSH: il nome utente precede la chiave, separato da due punti.
Prepara un File di Testo per i Metadati delle Chiavi SSH:
Salva i dettagli dei nomi utente e delle relative chiavi SSH in un file di testo chiamato
meta.txt
. Questo è essenziale per preservare le chiavi esistenti mentre se ne aggiungono di nuove.
Genera una Nuova Chiave SSH per l'Utente Target (
alice
in questo esempio):
Usa il comando
ssh-keygen
per generare una nuova chiave SSH, assicurandoti che il campo commento (-C
) corrisponda al nome utente target.
Aggiungi la nuova chiave pubblica a
meta.txt
, imitando il formato trovato nei metadati dell'istanza.
Aggiorna i Metadati delle Chiavi SSH dell'Istanza:
Applica i metadati delle chiavi SSH aggiornati all'istanza usando il comando
gcloud compute instances add-metadata
.
Accedi all'Istanza Utilizzando la Nuova Chiave SSH:
Connettiti all'istanza con SSH utilizzando la nuova chiave, accedendo alla shell nel contesto dell'utente target (
alice
in questo esempio).
Crea un nuovo utente privilegiato e aggiungi una chiave SSH
Se non viene trovato alcun utente interessante, è possibile crearne uno nuovo a cui verranno dati privilegi sudo
:
Chiavi SSH a livello di progetto
È possibile ampliare la portata dell'accesso SSH a più Macchine Virtuali (VM) in un ambiente cloud applicando chiavi SSH a livello di progetto. Questo approccio consente l'accesso SSH a qualsiasi istanza all'interno del progetto che non abbia esplicitamente bloccato le chiavi SSH a livello di progetto. Ecco una guida riassuntiva:
Applica le Chiavi SSH a Livello di Progetto:
Utilizza il comando
gcloud compute project-info add-metadata
per aggiungere le chiavi SSH dameta.txt
ai metadati del progetto. Questa azione garantisce che le chiavi SSH siano riconosciute su tutte le VM nel progetto, a meno che una VM abbia abilitata l'opzione "Blocca le chiavi SSH a livello di progetto".
Accedi alle Istanze Utilizzando le Chiavi a Livello di Progetto:
Con le chiavi SSH a livello di progetto in posizione, puoi accedere via SSH a qualsiasi istanza all'interno del progetto. Le istanze che non bloccano le chiavi a livello di progetto accetteranno la chiave SSH, concedendo l'accesso.
Un metodo diretto per accedere via SSH a un'istanza è utilizzare il comando
gcloud compute ssh [ISTANZA]
. Questo comando utilizza il tuo nome utente attuale e le chiavi SSH impostate a livello di progetto per tentare l'accesso.
Riferimenti
Last updated