Best practice per la protezione dagli attacchi di mining di criptovaluta

Last reviewed 2023-10-20 UTC

Il mining di criptovalute (noto anche come mining di bitcoin) è il processo utilizzato per creare nuove criptovalute e verificare le transazioni. Gli attacchi di mining di critovaluta si verificano quando gli utenti malintenzionati che ottengono l'accesso al tuo ambiente potrebbero anche 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 delle criptovalute sono il modo più comune in cui i malintenzionati sfruttano le tue risorse di elaborazione dopo aver compromesso l'ambiente Google Cloud. Il report afferma inoltre che i malintenzionati di solito scaricano software per il mining di criptovalute nelle tue risorse entro 22 secondi dalla compromissione del sistema. Il mining di criptovaluta può aumentare rapidamente i costi e un attacco di criptovaluta può causare una fattura molto più alta di quanto ti aspettassi. Poiché i costi possono aumentare rapidamente, è necessario adottare misure protettive, di rilevamento e di mitigazione per proteggere la tua organizzazione.

Questo documento è rivolto agli architetti e agli amministratori della sicurezza. Descrive le best practice che puoi adottare per proteggere le risorse Google Cloud da attacchi di mining di criptovaluta e mitigare l'impatto in caso di attacco.

Identifica i vettori delle minacce

Per determinare l'esposizione della tua organizzazione agli attacchi di mining di criptovaluta, devi identificare i vettori delle minacce che si applicano alla tua organizzazione.

Il report Orizzonti delle minacce di novembre 2021 indica che la maggior parte degli aggressori sfrutta vulnerabilità come le seguenti:

  • Password inefficace o assente per gli account utente
  • Autenticazione debole o assente per le API Google Cloud
  • Vulnerabilità nel software di terze parti
  • configurazioni errate nell'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 un elenco di vettori di minacce:

Dopo aver identificato i vettori di minacce che si applicano al tuo caso, puoi utilizzare le restanti best practice riportate in questo documento per risolverli.

Proteggere gli account e le credenziali degli account

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

Limitare l'accesso all'ambiente cloud

La tabella seguente 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 gli account AWS che possono utilizzare la federazione per l'identificazione dei carichi di lavoro.
Provider di identità esterni consentiti per i carichi di lavoro In un ambiente cloud ibrido, definisci i provider di identità che possono essere utilizzati dai tuoi carichi di lavoro.

Configurare l'autenticazione MFA o l'autenticazione a due fattori (2FA)

Cloud Identity supporta l'autenticazione a più fattori (MFA) utilizzando diversi metodi. Configura l'MFA, in particolare per gli account con privilegi. Per maggiori informazioni, consulta Applicare in modo uniforme l'MFA alle risorse di proprietà dell'azienda.

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

Configura il privilegio minimo

Il privilegio minimo garantisce che gli utenti e i servizi abbiano solo l'accesso di cui hanno bisogno per eseguire le loro attività specifiche. Il privilegio minimo riduce la capacità degli attacchi di diffondersi all'interno dell'organizzazione, perché un utente malintenzionato non può facilmente riassegnare i propri privilegi.

Per soddisfare le esigenze della tua organizzazione, utilizza criteri, ruoli e autorizzazioni granulari in Identity and Access Management (IAM). Inoltre, analizza regolarmente le tue autorizzazioni utilizzando il strumento per suggerimenti sui ruoli e Policy Analyzer. Il motore per suggerimenti di 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. Policy Analyzer consente di vedere quali account hanno accesso alle risorse cloud.

Monitorare gli account

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

Assicurati che le procedure di offboarding includano procedure per disattivare gli account e reimpostare le autorizzazioni quando i dipendenti lasciano l'organizzazione o cambiano ruolo. Per ulteriori informazioni, consulta Revoca dell'accesso a Google Cloud.

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

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

Ridurre l'esposizione a internet significa che i 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 tuoi cluster Google Kubernetes Engine (GKE) dall'esposizione a internet.

Limita traffico esterno

Non assegnare indirizzi IP esterni alle tue VM. Puoi utilizzare il vincolo dei criteri dell'organizzazione Disabilita l'utilizzo di IPv6 esterno del 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 ti 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 e in uscita (in uscita) verso internet per tutte le risorse dei 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 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 comunicazione gratuita all'interno del perimetro, bloccano l'esfiltrazione di dati e bloccano la comunicazione dei servizi dall'esterno del perimetro. Utilizza gli attributi di accesso sensibile al contesto come indirizzi IP e 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 Chrome Enterprise Premium. Chrome Enterprise Premium offre protezione dei dati e dalle minacce e controlli dell'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 ai servizi amministrativi come SSH e RDP sulle tue risorse Google Cloud dalla rete internet pubblica. L'inoltro TCP impedisce che questi servizi vengano esposti a internet.

Proteggi le tue risorse Compute Engine e GKE

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

Proteggi le immagini VM

Utilizza immagini VM protette e curate configurando la VM schermata. La Shielded VM è progettata per impedire il caricamento di codice dannoso come rootkit o malware a livello di kernel durante il ciclo di avvio. Shielded VM offre sicurezza in fase di 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. Valuta anche le immagini container senza distroless che includono solo l'applicazione e le sue dipendenze di runtime.

Accesso sicuro SSH alle VM

Configura OS Login per gestire l'accesso SSH alle VM in esecuzione in Compute Engine. OS Login semplifica la gestione dell'accesso SSH mediante il collegamento dell'account utente Linux dell'amministratore alla sua identità Google. OS Login funziona con IAM per consentirti di definire i privilegi di cui dispongono gli amministratori.

Per maggiori informazioni, consulta Proteggere VM e container.

Limitare gli account di servizio

Un account di servizio è un account Google Cloud utilizzato dai carichi di lavoro 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 maggiori informazioni, consulta la sezione Limitazione dell'utilizzo degli account di servizio.

Se le tue applicazioni sono in esecuzione al di fuori di Google Cloud e richiedono ancora l'accesso alle risorse Google Cloud, non utilizzare le chiavi degli account di servizio. Puoi implementare invece la federazione delle identità per i carichi di lavoro per gestire le identità esterne e le autorizzazioni associate. Per GKE, puoi implementare le identità dei carichi di lavoro. Per maggiori informazioni, vedi Scegliere il metodo di autenticazione giusto per il proprio caso d'uso.

Per altre best practice che contribuiscono a proteggere gli account di servizio, vedi 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 del modo in cui gli account di servizio e le chiavi degli account di servizio vengono utilizzati nella tua organizzazione. Per avere visibilità su pattern di utilizzo degni di nota, utilizza gli insight sugli account di servizio. Ad esempio, puoi utilizzare gli insight sugli account di servizio per monitorare come vengono utilizzate le autorizzazioni nei progetti e identificare gli account di servizio inutilizzati. Per sapere quando gli account di servizio e le chiavi sono stati utilizzati l'ultima volta 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 cryptomining, gli utenti malintenzionati spesso sfruttano le configurazioni errate e le vulnerabilità del software per ottenere l'accesso alle risorse di Compute Engine e GKE.

Per ottenere insight sulle vulnerabilità e sugli errori di configurazione che si applicano al tuo ambiente, utilizza Security Health Analytics per analizzare le risorse. In particolare, se utilizzi Security Command Center Premium, esamina tutti i risultati delle istanze di Compute Engine e i risultati dei 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 applica automaticamente le patch alle vulnerabilità in GKE. Per maggiori informazioni, consulta Mantenere aggiornati le immagini e i cluster.

Proteggi le tue applicazioni utilizzando 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 contribuire a mitigare questi attacchi, configura Google Cloud Armor, un web application firewall (WAF) che utilizza criteri di filtro e sicurezza di livello 7. Google Cloud Armor fornisce protezione dagli attacchi DoS (Denial of Service) e WAF per applicazioni e servizi ospitati su Google Cloud, on-premise o su altri cloud.

Google Cloud Armor include una regola WAF per contribuire a risolvere le vulnerabilità di Apache Log4j. Gli utenti malintenzionati possono utilizzare le vulnerabilità di Log4j per introdurre malware in grado di eseguire il mining di criptovaluta non autorizzato. Per maggiori informazioni, consulta la pagina 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) offrono un meccanismo per mettere rapidamente a disposizione dei clienti le funzionalità più recenti. Per prevenire attacchi di mining di criptovaluta contro la pipeline, esegui l'analisi del codice e monitora la pipeline per rilevare eventuali attacchi dannosi.

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

Sposta i controlli di sicurezza il prima possibile nel processo CI/CD (talvolta descritto come spostamento a sinistra). Per saperne di più, 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 non autorizzati di mining di criptovaluta è costituito da segreti non sicuri o divulgati. In questa sezione vengono descritte 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 ruotarle automaticamente.

Se utilizzi account di servizio che dispongono di chiavi di proprietà di Google e gestite da Google, anche le chiavi vengono ruotate automaticamente.

Evita di scaricare i secret

I segreti scoperti sono un vettore di attacco chiave per gli aggressori. Se possibile, non scaricare chiavi di crittografia o altri secret, incluse le chiavi degli account di servizio. Se devi scaricare le chiavi, assicurati che nella tua organizzazione sia in corso un processo di rotazione delle chiavi.

Se utilizzi GitHub o un altro repository pubblico, evita la perdita di credenziali. Implementa strumenti come la scansione dei secret, che ti avvisa in caso di secret esposti nei repository GitHub. Per impedire che il commit delle chiavi venga eseguito nei repository GitHub, puoi utilizzare strumenti come git-secrets.

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

Rileva attività anomala

Per monitorare le attività anomale, configura gli strumenti di monitoraggio di Google Cloud e di terze parti e imposta gli avvisi. Ad esempio, configura avvisi basati sull'attività degli amministratori nelle informazioni sugli audit log di Compute Engine e negli audit log di GKE.

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

Per rilevare più facilmente le minacce basate sulla rete, come il malware, configura Cloud IDS.

Partecipare al programma di protezione dal cryptomining di Security Command Center

Se sei un cliente di 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 correlati 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 ad altre best practice descritte in questa pagina.

Aggiorna il piano di risposta agli incidenti

Assicurati che il piano di risposta agli incidenti e i tuoi 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 tuo Technical Account Manager (TAM) Google. Se non hai un account di assistenza, rivedi 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 criptovalute. 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 dati da backup integri.
  • Gli utenti della tua organizzazione che devono essere informati per indagare e rispondere all'attacco.
  • Quali informazioni devono essere registrate per le attività retrospettive.
  • Come verificare che le attività di bonifica abbiano rimosso in modo efficace le attività di mining e risolto la vulnerabilità iniziale che ha portato all'attacco.
  • Come rispondere a un avviso inviato dall'assistenza clienti Google Cloud. Per maggiori informazioni, consulta le Domande frequenti sulle violazioni delle norme.

Per ulteriori informazioni, consulta Rispondere agli attacchi e riprendersi dagli attacchi.

Implementare un piano di ripristino di emergenza

Per prepararti a un attacco di criptovaluta, completa la business continuity e i piani di ripristino di emergenza, crea un playbook di risposta agli incidenti ed esegui esercizi di simulazione.

In caso di mining non autorizzato di criptovaluta, assicurati di poter affrontare il vettore di minaccia che ha causato la violazione iniziale e di poter ricostruire il tuo ambiente partendo da uno stato noto. Il tuo piano di ripristino di emergenza deve consentire di determinare lo stato noto in modo che l'utente malintenzionato non possa utilizzare ripetutamente le stesse vulnerabilità per sfruttare le risorse.

Passaggi successivi