Best practice per il controllo dell'accesso SSH


Questo documento descrive le best practice per il controllo dell'accesso SSH alle istanze di macchine virtuali (VM) Linux.

I log di controllo di Cloud ti consentono di analizzare le attività passate e possono essere un'importante fonte di informazioni per indagare su attività sospette che interessano le tue risorse.Google Cloud

Le sezioni seguenti contengono best practice che possono aiutarti a mantenere una traccia di controllo non contestabile:

Il documento si concentra su pratiche specifiche per Google Cloud o di particolare rilevanza quando si utilizza SSH su Google Cloud. Il documento non illustra le best practice per implementazioni specifiche di client o server SSH.

Abilita i log di accesso ai dati per IAP

Per assicurarti che IAP aggiunga una voce agli audit log di Cloud ogni volta che un utente tenta di stabilire una connessione SSH, abilita i log degli accessi ai dati per l'API Cloud Identity-Aware Proxy. I log di accesso ai dati sono disabilitati per impostazione predefinita. A meno che tu non abbia dubbi sul volume dei log, abilita i log di accesso ai dati per tutti i progetti che contengono istanze VM.

Monitorare le voci dei log di controllo relative all'utilizzo di SSH

L'utilizzo di SSH può influire sulla sicurezza delle VM e dei relativi carichi di lavoro, pertanto è importante mantenere una traccia di controllo sia per i tentativi di connessione riusciti sia per quelli di accesso non riusciti. Questo è particolarmente importante negli ambienti di produzione, in cui l'utilizzo di SSH deve essere considerato un'azione sensibile.

Per monitorare l'accesso SSH ed eventualmente rilevare comportamenti sospetti, assicurati di monitorare le voci di log relative a SSH, tra cui:

Servizio Metodo Descrizione
IAP AuthorizeUser Indica un tentativo di connessione tramite il reindirizzamento TCP IAP. Le voci di log contengono dettagli sul dispositivo dell'utente, sui livelli di accesso soddisfatti e su quelli non soddisfatti.
OS Login google.cloud.oslogin.v1.OsLoginService.CheckPolicy Indica un tentativo di accesso.
OS Login google.cloud.oslogin.OsLoginService.v1.StartSession Indica l'inizio di una verifica 2FA di OS Login
OS Login google.cloud.oslogin.OsLoginService.v1.ContinueSession Indica il completamento di una verifica 2FA di OS Login
Compute Engine v1.compute.projects.setCommonInstanceMetadata Se il campo projectMetadataDelta contiene una voce per "ssh-keys", questa voce di log indica che una chiave SSH è stata aggiunta, rimossa o modificata nei metadati del progetto.
Compute Engine v1.compute.instances.setMetadata Se il campo projectMetadataDelta contiene una voce per "ssh-keys" o "sshKeys", questa voce di log indica che una chiave SSH è stata aggiunta, rimossa o modificata nei metadati dell'istanza.
Compute Engine google.ssh-serialport.v1.connect Indica un tentativo di connessione alla console seriale
IAM beta.compute.instances.setIamPolicy, v1.compute.instances.setIamPolicy Indica una modifica al criterio IAM di un'istanza VM. Una modifica del criterio IAM potrebbe influire sulla possibilità degli utenti di modificare i metadati delle istanze.
IAM SetIamPolicy Indica una modifica al criterio IAM di un progetto. Una modifica dei criteri IAM potrebbe influire sulla capacità degli utenti di modificare i metadati del progetto e la configurazione degli audit log dell'accesso ai dati del progetto.

Tutti i record del log di controllo contengono un campo principalEmail che identifica il principale che ha avviato l'attività.

Per avere un quadro completo dell'attività sulle VM, configurale in modo da esportare i log dei server /var/log/messages e SSH in Cloud Logging, ad esempio utilizzando Ops Agent.

Tieni presente che, a seconda della distribuzione Linux utilizzata, i log del server SSH potrebbero essere scritti in file di log diversi (in genere /var/log/auth.log o /var/log/secure) e che questi file di log non sono coperti dalla configurazione predefinita utilizzata da Ops Agent.