Esegui il deployment delle funzionalità di monitoraggio della rete e telemetria in Google Cloud

Last reviewed 2024-02-13 UTC

La telemetria di rete raccoglie i dati sul traffico di rete dai dispositivi in rete in modo che possano essere analizzati. La telemetria di rete consente ai team delle operazioni di sicurezza di rilevare le minacce basate sulla rete e di andare a caccia di avversari avanzati, il che è essenziale per le operazioni di sicurezza autonomiche. Per ottenere la telemetria di rete, devi acquisire e archiviare i dati di rete. Questo progetto descrive come utilizzare il Mirroring pacchetto e Zeek per acquisire i dati di rete in Google Cloud.

Questo progetto è destinato agli analisti della sicurezza e agli amministratori di rete che vogliono eseguire il mirroring del traffico di rete, archiviare i dati e inoltrarli per l'analisi. Questo progetto presuppone che tu abbia una conoscenza pratica del networking e del monitoraggio di rete.

Questo progetto fa parte di un progetto di sicurezza composto da:

  • Un repository GitHub contenente un set di configurazioni e script Terraform.
  • Una guida all'architettura, alla progettazione e ai controlli di sicurezza che implementi con il progetto (questo documento).

Con questo progetto, acquisisci i pacchetti di rete (inclusi i metadati di rete) utilizzando Mirroring pacchetto, li trasforma in log Zeek e li archivia in Cloud Logging. Il progetto estrae metadati come indirizzi IP, porte, protocolli, intestazioni e richieste di livello 7. L'archiviazione dei metadati di rete come log di Zeek utilizza meno volume di dati rispetto all'archiviazione dei dati dei pacchetti non elaborati ed è di conseguenza più conveniente.

Questo documento presuppone che tu abbia già configurato un set di base di controlli di sicurezza, come descritto nella guida alle basi aziendali di Google Cloud.

Casi d'uso supportati

Questo progetto supporta i seguenti casi d'uso:

  • Il tuo centro operativo di sicurezza (SOC) richiede l'accesso ai dati dei log di rete di Google Cloud in una posizione centralizzata per poter esaminare gli incidenti di sicurezza. Questo progetto converte i dati dei pacchetti di rete in log che puoi inoltrare ai tuoi strumenti di analisi e indagine. Gli strumenti di analisi e indagine includono BigQuery, Google Security Operations, Flowmon, ExtraHop o SIEM (Security Information and Event Management).
  • Per ricercare le minacce con strumenti come Google SecOps, i team di sicurezza hanno bisogno di visibilità sulle reti Google Cloud. Puoi utilizzare questo progetto per creare una pipeline per il traffico di rete Google Cloud.
  • Vuoi dimostrare in che modo la tua organizzazione soddisfa i requisiti di conformità per il rilevamento e la risposta della rete. Ad esempio, la tua organizzazione deve dimostrare di rispettare il Memorandum M-21-31 dell'Office of Management and Budget (OMB) degli Stati Uniti.
  • Gli analisti della sicurezza di rete richiedono dati di registro di rete sul lungo periodo. Questo progetto supporta sia il monitoraggio a lungo termine sia il monitoraggio on demand.

Se hai bisogno anche di dati di acquisizione di pacchetti (pcap), devi utilizzare strumenti di analisi dei protocolli di rete (ad esempio Wireshark o tcpdump). L'uso degli strumenti di analisi dei protocolli di rete non rientra nell'ambito di questo progetto.

Non puoi eseguire il deployment di questo progetto con Cloud Intrusion Detection System. Sia questa soluzione che Cloud Intrusion Detection System utilizzano criteri di Mirroring pacchetto, che possono essere utilizzati da un solo servizio alla volta.

Costi

Questo progetto può influire sui costi perché stai aggiungendo risorse di calcolo e archiviando quantità significative di dati in Cloud Logging. Quando esegui il deployment del progetto, considera quanto segue:

  • Ogni macchina virtuale (VM) raccoglitore in Compute Engine viene eseguita come istanza e2-medium.
  • Puoi controllare i costi di archiviazione con:
    • Utilizzo dei filtri di Mirroring pacchetto.
    • Mancato mirroring tra le zone per evitare addebiti per il traffico in uscita tra zone.
    • Archiviare i dati solo per il tempo richiesto dalla tua organizzazione.

Puoi utilizzare il Calcolatore prezzi per ottenere una stima dei costi di elaborazione, logging e archiviazione.

Architettura

Il seguente diagramma dell'architettura mostra l'infrastruttura che utilizzi per implementare questo progetto:

L'architettura di telemetria della rete.

L'architettura mostrata nell'immagine precedente utilizza una combinazione dei seguenti servizi e funzionalità di Google Cloud:

  • Due reti Virtual Private Cloud (VPC):

    • Una rete Virtual Private Cloud per le origini con mirroring.
    • Una rete VPC per le istanze del raccoglitore.

    Queste reti VPC devono trovarsi nello stesso progetto.

  • di istanze di Compute Engine o Google Kubernetes Engine (GKE) (dette origini con mirroring) in regioni e subnet specifiche che costituiscono l'origine dei pacchetti di rete. Puoi identificare le istanze di cui eseguire il mirroring delle origini utilizzando uno dei seguenti metodi:

    • Tag di rete
    • Nomi delle istanze di calcolo
    • Nome subnet
  • Istanze di Compute Engine che fungono da istanze di raccolta dietro un bilanciatore del carico di rete passthrough interno, nella stessa regione delle origini con mirroring. Queste istanze eseguono l'immagine dorata con flusso Zeek o la tua immagine personalizzata che fluisce da zero. Le VM sono e2-medium e la velocità effettiva supportata è di 4 Gbps.

  • Un bilanciatore del carico di rete passthrough interno che riceve i pacchetti dalle origini sottoposte a mirroring e li inoltra alle istanze del raccoglitore per l'elaborazione. La regola di forwarding per il bilanciatore del carico usa il flag --is-mirroring-collector.

  • Regole firewall VPC che consentono quanto segue:

    • In uscita da origini sottoposte a mirroring al bilanciatore del carico di rete passthrough interno.
    • Ingress dalle istanze del raccoglitore alle istanze sottoposte a mirroring.
  • Un criterio di mirroring del pacchetto che definisce regione, subnet, istanze con mirroring, protocolli, direzione e regola di forwarding. Ogni regione richiede il proprio criterio di Mirroring pacchetto.

  • Peering di rete VPC per consentire la connettività utilizzando indirizzi IP interni tra VM di Compute Engine ad alta disponibilità in più regioni. Il peering di rete VPC consente alle origini sottoposte a mirroring di comunicare con il bilanciatore del carico di rete passthrough interno.

  • Un'istanza Cloud Logging che raccoglie tutti i pacchetti per l'archiviazione e il recupero da parte di uno strumento di analisi e indagine.

Comprendi i controlli di sicurezza di cui hai bisogno

Questa sezione illustra i controlli di sicurezza all'interno di Google Cloud che puoi utilizzare per proteggere i diversi componenti dell'architettura di monitoraggio della rete.

Controlli di sicurezza della rete VPC

Puoi creare reti VPC attorno alle origini con mirroring e ai raccoglitori. Quando crei la rete VPC per i raccoglitori, elimini la route predefinita generata dal sistema, il che significa che tutte le route dei gateway internet predefiniti sono disattivate. La disattivazione dei gateway internet predefiniti contribuisce a ridurre la superficie di attacco di rete da parte di utenti malintenzionati esterni.

Puoi creare subnet nella tua rete VPC per ogni regione. Le subnet consentono di controllare il flusso di traffico tra i carichi di lavoro su Google Cloud e anche da origini esterne. Nelle subnet è abilitato l'accesso privato Google. Inoltre, l'accesso privato Google contribuisce a ridurre la superficie di attacco della rete, consentendo alle VM di comunicare con le API e i servizi Google.

Per consentire la comunicazione tra le reti VPC, abilita il peering di rete VPC. Il peering di rete VPC usa route di subnet per la connettività degli indirizzi IP interni. Puoi importare ed esportare route personalizzate per consentire una connessione diretta tra le origini sottoposte a mirroring e i raccoglitori. Devi limitare tutte le comunicazioni alle route regionali poiché il bilanciatore del carico di rete passthrough interno per i raccoglitori non supporta le route globali.

Regole firewall

Puoi utilizzare le regole firewall per definire le connessioni che le origini sottoposte a mirroring e i raccoglitori possono stabilire. Puoi configurare una regola in entrata per consentire l'esecuzione di controlli di integrità di uptime regolari, una regola in uscita per tutti i protocolli nelle origini sottoposte a mirroring e una regola in entrata per tutti i protocolli nei raccoglitori.

Controlli di sicurezza delle VM raccoglitore

Le VM del raccoglitore sono responsabili della ricezione dei dati del pacchetto. Le VM del raccoglitore sono VM identiche che funzionano come gruppi di istanze gestite. Attiva i controlli di integrità per consentire la ricreazione automatica di una VM che non risponde. Inoltre, consenti ai raccoglitori di scalare automaticamente in base ai tuoi requisiti di utilizzo.

Ogni VM raccoglitore esegue l'immagine Packer che fluisce con zeek. Questa immagine è composta da Zeek, che genera i log, e da Fluentd, che li inoltra a Cloud Logging. Dopo aver eseguito il deployment del modulo Terraform, puoi aggiornare i pacchetti del sistema operativo VM e Zeek e applicare i controlli di sicurezza richiesti per la tua organizzazione.

Controlli di sicurezza del bilanciatore del carico interno

Il bilanciatore del carico di rete passthrough interno indirizza il traffico dei pacchetti di rete dalle origini sottoposte a mirroring alle VM del raccoglitore per l'elaborazione. Tutte le VM del raccoglitore devono essere eseguite nella stessa regione del bilanciatore del carico di rete passthrough interno.

La regola di forwarding per il bilanciatore del carico di rete passthrough interno definisce che l'accesso è possibile da tutte le porte, ma l'accesso globale non è consentito. Inoltre, la regola di forwarding definisce questo bilanciatore del carico come un raccoglitore di mirroring, utilizzando il flag --is-mirroring-collector.

Non è necessario configurare un bilanciatore del carico per l'archiviazione, poiché ogni VM del raccoglitore carica direttamente i log in Cloud Logging.

Mirroring pacchetto

Mirroring pacchetto richiede l'identificazione delle istanze di cui si desidera eseguire il mirroring. Puoi identificare le istanze di cui vuoi eseguire il mirroring utilizzando tag di rete, nomi delle istanze o la subnet in cui si trovano le istanze. Inoltre, puoi filtrare ulteriormente il traffico utilizzando uno o più dei seguenti elementi:

  • Protocolli di livello 4, come TCP, UDP o ICMP.
  • Intervalli CIDR IPv4 nelle intestazioni IP, ad esempio 10.0.0.0/8.
  • Direzione del traffico di cui vuoi eseguire il mirroring, ad esempio in entrata, in uscita o entrambi.

Account di servizio e controlli dell'accesso

Gli account di servizio sono identità che Google Cloud può utilizzare per eseguire le richieste API per conto tuo. Gli account di servizio assicurano che le identità degli utenti non abbiano accesso diretto ai servizi.

Per eseguire il deployment del codice Terraform, devi impersonare un account di servizio che abbia i seguenti ruoli nel progetto:

Le VM del raccoglitore richiedono anche questo account di servizio per poter eseguire l'autenticazione ai servizi Google Cloud, ottenere i pacchetti di rete e inoltrarli a Cloud Logging.

Pratiche di conservazione dei dati

Puoi specificare per quanto tempo Cloud Logging archivia i log di rete utilizzando le regole di conservazione per i bucket di log. Per determinare per quanto tempo archiviare i dati, esamina i requisiti normativi della tua organizzazione.

Logging e controllo

Puoi utilizzare Cloud Monitoring per analizzare le prestazioni delle VM dei raccoglitori e configurare avvisi per i controlli di uptime e le condizioni delle prestazioni come il carico della CPU.

Puoi tenere traccia degli accessi degli amministratori o delle modifiche ai dati e alla configurazione utilizzando Cloud Audit Logs. L'audit logging è supportato da Compute Engine, Cloud Load Balancing e Cloud Logging.

Puoi esportare le informazioni di monitoraggio come segue:

Riepilogo

Per implementare l'architettura descritta in questo documento, segui questi passaggi:

  1. Esegui il deployment di una base di riferimento sicura in Google Cloud, come descritto nel progetto della piattaforma di base aziendale di Google Cloud. Se scegli di non eseguire il deployment del progetto di base aziendale, assicurati che il tuo ambiente abbia una base di sicurezza simile.
  2. Esamina il file Readme per il progetto e assicurati di soddisfare tutti i prerequisiti.
  3. Nell'ambiente di test, esegui il deployment di una delle configurazioni di telemetria di rete di esempio per vedere il progetto in azione. Nell'ambito della procedura di test, segui questi passaggi:

    1. Verifica che i criteri e le subnet di Mirroring pacchetto siano stati creati.
    2. Verifica di disporre del ruolo Visualizzatore log (roles/logging.viewer) ed esegui un comando curl per visualizzare i dati di log. Ad esempio:

      curl http://example.com/

      Dovresti vedere che i dati di log sono archiviati in Cloud Logging.

    3. Utilizza Security Command Center per eseguire la scansione delle risorse appena create in base ai tuoi requisiti di conformità.

    4. Verifica che il sistema stia acquisendo e archiviando i pacchetti di rete appropriati e ottimizza le prestazioni in base alle esigenze.

  4. Esegui il deployment del progetto nell'ambiente di produzione.

  5. Connetti Cloud Logging al tuo SIEM o Google SecOps in modo che gli analisti del SOC e della sicurezza di rete possano incorporare la nuova telemetria nelle loro dashboard.

Passaggi successivi