Best practice per la protezione da attacchi di mining di criptovaluta

Last reviewed 2023-10-20 UTC

Il mining di criptovalute (noto anche come bitcoin mining) è il processo utilizzato per creare nuove criptovalute e verificare le transazioni. Gli attacchi di mining di critovaluta si verificano quando anche utenti malintenzionati che ottengono l'accesso al tuo ambiente potrebbero sfruttare le tue risorse per eseguire le proprie operazioni di mining a tue spese.

Secondo il report Threat Horizons di novembre 2021, gli attacchi di mining di criptovalute sono il modo più comune con cui gli utenti malintenzionati sfruttano le tue risorse di elaborazione dopo aver compromesso il tuo ambiente Google Cloud. Il report afferma inoltre che gli utenti malintenzionati in genere scaricano software per il mining di criptovalute nelle tue risorse entro 22 secondi dalla compromissione del sistema. Il mining di criptovalute può aumentare rapidamente i costi e un attacco di mining di criptovalute può comportare una fattura molto più elevata del previsto. Poiché i costi possono aumentare rapidamente, devi adottare misure di protezione, di rilevamento e mitigazione per proteggere la tua organizzazione.

Questo documento è destinato ai Security Architect e agli amministratori. Descrive le best practice che puoi adottare per proteggere le risorse Google Cloud da attacchi di mining di criptovalute e per mitigare l'impatto in caso di attacco.

Identifica i vettori di minaccia

Per determinare l'esposizione della tua organizzazione agli attacchi di mining di criptovaluta, devi identificare i vettori di minaccia applicabili alla tua organizzazione.

Il report Threat Horizons di novembre 2021 indica che la maggior parte degli utenti malintenzionati sfrutta vulnerabilità come le seguenti:

  • Password inefficace o nessuna password per gli account utente
  • Autenticazione debole o assente per le API Google Cloud
  • Vulnerabilità nel software di terze parti
  • Errori di configurazione nel tuo ambiente Google Cloud o nelle applicazioni di terze parti in esecuzione su Google Cloud
  • Credenziali divulgate, ad esempio chiavi degli account di servizio pubblicate in repository GitHub pubblici

Inoltre, puoi sottoscrivere ed esaminare i seguenti documenti per ottenere un elenco di vettori di minaccia:

Dopo aver identificato i vettori di minaccia applicabili al tuo caso, puoi utilizzare le best practice rimanenti di questo documento per risolverli.

Proteggere gli account e le credenziali dell'account

Gli utenti malintenzionati possono sfruttare account non protetti o mal gestiti per ottenere l'accesso alle tue risorse Compute Engine. Google Cloud offre diverse opzioni che puoi configurare per gestire account e gruppi.

Limita l'accesso all'ambiente cloud

La seguente tabella descrive i criteri dell'organizzazione che puoi utilizzare per definire chi può accedere al tuo ambiente cloud.

Vincolo dei criteri dell'organizzazione Descrizione
Condivisione limitata per il dominio Specifica quali ID cliente per Cloud Identity o Google Workspace sono validi.
Account AWS consentiti che possono essere configurati per la federazione delle identità per i carichi di lavoro in Cloud IAM In un ambiente cloud ibrido, definisci quali account AWS possono utilizzare la federazione di identificazione del carico di lavoro.
Provider di identità esterni consentiti per i carichi di lavoro In un ambiente cloud ibrido, definisci i provider di identità utilizzabili dai tuoi carichi di lavoro.

Configurare MFA o 2FA

Cloud Identity supporta l'autenticazione a più fattori (MFA) utilizzando vari metodi. Configurare MFA, soprattutto per gli account con privilegi. Per ulteriori informazioni, consulta Applicare un'autenticazione MFA uniforme alle risorse di proprietà dell'azienda.

Per prevenire attacchi di phishing che possono portare ad attacchi di mining di criptovalute, utilizza i token di sicurezza Titan per l'autenticazione a due fattori (2FA).

Configura privilegio minimo

Il privilegio minimo garantisce che gli utenti e i servizi abbiano solo l'accesso necessario per eseguire le loro attività specifiche. Il privilegio minimo rallenta la capacità degli attacchi di diffondersi in un'organizzazione poiché un utente malintenzionato non può facilmente riassegnare i suoi privilegi.

Per soddisfare le esigenze della tua organizzazione, utilizza i criteri, i ruoli e le autorizzazioni granulari in Identity and Access Management (IAM). Inoltre, analizza regolarmente le tue autorizzazioni utilizzando il motore per suggerimenti sui ruoli e l'Analizzatore criteri. Il motore per suggerimenti dei ruoli utilizza il machine learning per analizzare le impostazioni e fornire suggerimenti per garantire che le impostazioni dei ruoli rispettino il principio del privilegio minimo. L'analizzatore criteri consente di visualizzare quali account hanno accesso alle risorse cloud.

Account monitoraggio

Se utilizzi i gruppi per assegnare i criteri IAM, monitora i log del gruppo per assicurarti che non vengano aggiunti account non aziendali. Inoltre, limita le identità che possono accedere alle tue risorse, in base ai domini Cloud Identity o Google Workspace. Per ulteriori informazioni, consulta Limitazione delle identità per dominio.

Assicurati che le procedure di offboarding includano le procedure per la disattivazione degli account e la reimpostazione delle autorizzazioni quando i dipendenti lasciano l'organizzazione o cambiano ruolo. Per maggiori informazioni, consulta la pagina Revoca dell'accesso a Google Cloud.

Per controllare gli utenti e i gruppi, vedi Log di controllo per Google Workspace.

Riduci l'esposizione a internet per le tue risorse Compute Engine e GKE

Riducendo l'esposizione a internet, i tuoi utenti malintenzionati hanno meno opportunità di trovare e sfruttare le vulnerabilità. Questa sezione descrive le best practice che aiutano a proteggere le VM di Compute Engine e i cluster Google Kubernetes Engine (GKE) dall'esposizione a internet.

Limita il traffico esterno

Non assegnare indirizzi IP esterni alle VM. Puoi utilizzare il vincolo del criterio dell'organizzazione Disabilita l'utilizzo di IPv6 esterno VPC per negare gli indirizzi IP esterni a tutte le VM. Per visualizzare quali VM hanno indirizzi IP accessibili pubblicamente, consulta Individuare gli indirizzi IP per un'istanza. Se la tua architettura richiede indirizzi IP esterni per le VM, utilizza il criterio dell'organizzazione Definisci IP esterni consentiti per le istanze VM, che consente di definire un elenco di nomi di istanze a cui è consentito avere indirizzi IP esterni.

Limita i nodi GKE solo agli indirizzi IP interni. Per ulteriori informazioni, consulta Creazione di un cluster privato.

Limita il traffico in entrata (in entrata) e in uscita (in uscita) verso internet per tutte le risorse nei tuoi progetti. Per ulteriori informazioni, consulta Regole firewall VPC e Criteri firewall gerarchici.

Per ulteriori informazioni sulla limitazione del traffico esterno, come la configurazione di Cloud NAT per consentire le comunicazioni in uscita per le VM senza indirizzo IP esterno o l'utilizzo di un bilanciatore del carico proxy per le comunicazioni in entrata, consulta Connessione sicura alle istanze VM.

Utilizza i perimetri di servizio

Crea un perimetro di servizio per le risorse Compute Engine e GKE utilizzando i Controlli di servizio VPC. Controlli di servizio VPC consente di controllare le comunicazioni con le risorse Compute Engine dall'esterno del perimetro. I perimetri di servizio consentono la libera comunicazione all'interno del perimetro, bloccano l'esfiltrazione di dati e bloccano le comunicazioni di servizio dall'esterno del perimetro. Utilizza gli attributi di accesso sensibile al contesto come gli indirizzi IP e le identità degli utenti per controllare ulteriormente l'accesso ai servizi Google Cloud da internet.

Configura la sicurezza Zero Trust

Configura la sicurezza Zero Trust con BeyondCorp Enterprise. BeyondCorp Enterprise offre protezione dei dati e minacce e controlli di accesso. Se i carichi di lavoro si trovano sia on-premise che in Google Cloud, configura Identity-Aware Proxy (IAP). Configura l'inoltro TCP per controllare chi può accedere a servizi amministrativi come SSH e RDP sulle tue risorse Google Cloud dalla rete internet pubblica. L'inoltro TCP impedisce a questi servizi di essere apertamente esposti a internet.

Proteggi le tue risorse Compute Engine e GKE

Il mining di criptovalute richiede l'accesso alle risorse Compute Engine e GKE. Questa sezione descrive le best practice che ti aiuteranno a proteggere le tue risorse Compute Engine e GKE.

Proteggi le immagini VM

Utilizza immagini VM protette e curate configurando una VM schermata. La Shielded VM è progettata per impedire il caricamento di codice dannoso come malware a livello di kernel o rootkit durante il ciclo di avvio. La Shielded VM fornisce sicurezza all'avvio, monitora l'integrità e utilizza il Virtual Trusted Platform Module (vTPM).

Per limitare le immagini di cui è possibile eseguire il deployment, puoi implementare criteri per le immagini attendibili. Il criterio dell'organizzazione Definisci progetti di immagini attendibili definisce i progetti che possono archiviare immagini e dischi permanenti. Assicurati che nei progetti siano presenti solo immagini attendibili e gestite.

In GKE, assicurati che i container utilizzino immagini di base, che vengono aggiornate regolarmente con patch di sicurezza. Inoltre, considera le immagini container senza distribuzione che includono solo l'applicazione e le sue dipendenze di runtime.

Accesso sicuro tramite SSH alle VM

Configura OS Login per gestire l'accesso SSH alle VM in esecuzione in Compute Engine. OS Login semplifica la gestione degli accessi SSH collegando l'account utente Linux dell'amministratore alla sua identità Google. OS Login funziona con IAM e puoi definire i privilegi degli amministratori.

Per ulteriori informazioni, consulta Proteggere VM e container.

Limita account di servizio

Un account di servizio è un account Google Cloud che i carichi di lavoro utilizzano per chiamare l'API Google di un servizio.

Non consentire a Google Cloud di assegnare ruoli predefiniti per gli account di servizio alle risorse quando vengono create. Per ulteriori informazioni, consulta Limitazione dell'utilizzo degli account di servizio.

Se le tue applicazioni vengono eseguite al di fuori di Google Cloud, ma richiedono l'accesso alle risorse Google Cloud, non utilizzare le chiavi degli account di servizio. Implementa invece la federazione delle identità per i carichi di lavoro per gestire le identità esterne e le autorizzazioni ad esse associate. Per GKE, puoi implementare identità carico di lavoro. Per maggiori informazioni, consulta Scegliere il metodo di autenticazione adatto al caso d'uso.

Per altre best practice che contribuiscono a proteggere gli account di servizio, consulta Best practice per l'utilizzo degli account di servizio.

Monitorare l'utilizzo degli account di servizio e delle chiavi degli account di servizio

Configura il monitoraggio in modo da poter tenere traccia di come gli account di servizio e le chiavi degli account di servizio vengono utilizzati nella tua organizzazione. Per ottenere visibilità su pattern di utilizzo significativi, utilizza gli insight sugli account di servizio. Ad esempio, puoi utilizzare gli insight sugli account di servizio per monitorare il modo in cui le autorizzazioni vengono utilizzate nei progetti e per identificare gli account di servizio inutilizzati. Per sapere quando è stato effettuato l'ultimo utilizzo degli account di servizio e delle chiavi per chiamare un'API di Google per le attività di autenticazione, visualizza l'utilizzo recente degli account di servizio e delle chiavi degli account di servizio.

Monitora e applica patch a VM e container

Per avviare un attacco di mining di criptovalute, gli utenti malintenzionati spesso sfruttano configurazioni errate e vulnerabilità del software per ottenere l'accesso alle risorse Compute Engine e GKE.

Per ottenere insight sulle vulnerabilità e sulle configurazioni errate che si applicano al tuo ambiente, utilizza Security Health Analytics per analizzare le risorse. In particolare, se utilizzi Security Command Center Premium, esamina eventuali risultati delle istanze di Compute Engine e risultati relativi ai container e configura i processi per risolverli rapidamente.

Utilizza Artifact Analysis per verificare la presenza di vulnerabilità nelle immagini container archiviate in Artifact Registry o Container Registry.

Assicurati che la tua organizzazione possa eseguire il deployment delle patch non appena sono disponibili. Puoi utilizzare OS Patch Management per Compute Engine. Google corregge automaticamente le vulnerabilità in GKE. Per ulteriori informazioni, consulta Mantenere aggiornati immagini e cluster.

Proteggere le applicazioni con un WAF

Gli utenti malintenzionati possono provare ad accedere alla tua rete individuando le vulnerabilità di Livello 7 all'interno delle applicazioni di cui hai eseguito il deployment. Per mitigare questi attacchi, configura Google Cloud Armor, un web application firewall (WAF) che utilizza filtri e criteri di sicurezza di livello 7. Google Cloud Armor fornisce protezione denial of service (DoS) e WAF per applicazioni e servizi in hosting su Google Cloud, on-premise o su altri cloud.

Google Cloud Armor include una regola WAF per aiutare a risolvere le vulnerabilità di Apache Log4j. Gli utenti malintenzionati possono utilizzare le vulnerabilità Log4j per introdurre malware in grado di eseguire il mining di criptovalute non autorizzato. Per ulteriori informazioni, consulta Regola WAF di Google Cloud Armor per risolvere la vulnerabilità di Apache Log4j.

Proteggi la catena di fornitura

L'integrazione continua e la distribuzione continua (CI/CD) forniscono un meccanismo per mettere rapidamente a disposizione dei clienti le funzionalità più recenti. Per prevenire attacchi di mining di criptovalute alla tua pipeline, esegui l'analisi del codice e monitora la pipeline per rilevare eventuali attacchi dannosi.

Implementa Autorizzazione binaria per garantire che tutte le immagini siano firmate da autorità attendibili durante il processo di sviluppo e quindi applica la convalida della firma quando esegui il deployment delle immagini.

Sposta i controlli di sicurezza il prima possibile nel processo CI/CD (a volte definito spostamento a sinistra). Per maggiori informazioni, consulta Il passaggio alla sicurezza: proteggere le catene di fornitura del software. Per informazioni sulla configurazione di una catena di fornitura sicura con GKE, consulta Sicurezza della catena di fornitura del software.

Gestisci secret e chiavi

Un vettore di attacco chiave per attacchi di mining di criptovaluta non autorizzati è costituito dai secret non sicuri o divulgati. Questa sezione descrive le best practice che puoi utilizzare per proteggere i tuoi secret e le tue chiavi di crittografia.

Ruota regolarmente le chiavi di crittografia

Assicurati che tutte le chiavi di crittografia vengano ruotate regolarmente. Se Cloud KMS gestisce le tue chiavi di crittografia, puoi ruotare automaticamente le chiavi di crittografia.

Se utilizzi account di servizio con coppie di chiavi gestite da Google, anche le chiavi vengono ruotate automaticamente.

Evitare di scaricare i secret

I secret esposti sono un vettore di attacco chiave per i malintenzionati. Se possibile, non scaricare le chiavi di crittografia o altri secret, incluse le chiavi degli account di servizio. Se devi scaricare chiavi, assicurati che la tua organizzazione abbia un processo di rotazione della chiave in atto.

Se utilizzi GitHub o un altro repository pubblico, devi evitare di fughe di credenziali. Implementa strumenti come la scansione dei secret, che ti avvisa in caso di secret esposti nei repository GitHub. Per impedire il commit delle chiavi nei tuoi repository GitHub, valuta la possibilità di utilizzare strumenti come git-secrets.

Utilizza soluzioni di gestione dei secret come Secret Manager e Hashicorp Vault per archiviare i secret, ruotarli regolarmente e applicare privilegio minimo.

Rileva attività anomala

Per monitorare le attività anomale, configura Google Cloud e gli strumenti di monitoraggio di terze parti e imposta gli avvisi. Ad esempio, puoi configurare avvisi in base all'attività dell'amministratore nelle informazioni sugli audit log di Compute Engine e negli audit log di GKE.

Inoltre, puoi utilizzare Event Threat Detection in Security Command Center per identificare le minacce basate sulle attività degli amministratori, sulle modifiche di Google Gruppi e sulle modifiche alle autorizzazioni IAM. Utilizza Virtual Machine Threat Detection in Security Command Center per identificare le minacce relative alle VM di Compute Engine. Per ulteriori informazioni sui servizi Security Command Center, vedi Livelli di servizio di Security Command Center.

Per contribuire a rilevare le minacce basate sulla rete come i malware, configura Cloud IDS.

Partecipare al programma di protezione dal cryptomining di Security Command Center

Se sei un cliente Security Command Center Premium e utilizzi Compute Engine, puoi partecipare al programma di protezione dal cryptomining di Security Command Center. Questo programma ti consente di sostenere i costi delle VM di Compute Engine relativi ad attacchi di cryptomining non rilevati e non autorizzati nel tuo ambiente VM di Compute Engine. Devi implementare le best practice per il rilevamento del cryptomining, alcune delle quali si sovrappongono alle altre best practice descritte in questa pagina.

Aggiorna il piano di risposta agli incidenti

Assicurati che il piano di risposta agli incidenti e i playbook forniscano indicazioni prescrittive su come la tua organizzazione risponderà agli attacchi di mining di criptovalute. Ad esempio, assicurati che il tuo piano includa quanto segue:

  • Come inviare una richiesta di assistenza all'assistenza clienti Google Cloud e contattare il tecnico account manager Google (TAM). Se non disponi di un account di assistenza, esamina i piani di assistenza disponibili e creane uno.
  • Come distinguere tra carichi di lavoro legittimi di computing ad alte prestazioni (HPC) e attacchi di mining di criptovaluta. Ad esempio, puoi taggare i progetti in cui è abilitato l'HPC (computing ad alte prestazioni) e configurare avvisi per gli aumenti imprevisti dei costi.
  • Come gestire le credenziali Google Cloud compromesse.
  • Come mettere in quarantena i sistemi infetti e ripristinare i backup integri.
  • Chi nella tua organizzazione deve ricevere una notifica per indagare e rispondere all'attacco.
  • Quali informazioni devono essere registrate per le tue attività retrospettive.
  • Come verificare che le attività di correzione abbiano rimosso efficacemente le attività di estrazione e risolto la vulnerabilità iniziale che ha portato all'attacco.
  • Come rispondere a un avviso inviato dall'assistenza clienti Google Cloud. Per ulteriori informazioni, consulta le Domande frequenti sulle violazioni delle norme.

Per ulteriori informazioni, consulta Rispondere agli attacchi e ripristinarli.

Implementare un piano di ripristino di emergenza

Per prepararti a un attacco di mining di criptovalute, completa i piani di continuità aziendale e disaster Recovery, crea un playbook di risposta agli incidenti ed esegui esercizi a tabella.

Se si verifica un mining non autorizzato di criptovalute, assicurati di poter risolvere il vettore di minaccia che ha causato la violazione iniziale e di poter ricostruire il tuo ambiente partendo da uno stato buono e noto. Il tuo piano di ripristino di emergenza deve fornire la capacità di determinare lo stato di buono stato noto, in modo che l'utente malintenzionato non possa utilizzare ripetutamente le stesse vulnerabilità per sfruttare le tue risorse.

Passaggi successivi