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

Last reviewed 2024-02-13 UTC

La telemetria di rete raccoglie i dati del traffico di rete dai dispositivi sulla tua 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 cercare 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 Mirroring pacchetto e Zeek per acquisire 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 a scopo di analisi. Questo progetto prevede che tu abbia una conoscenza pratica del networking e del monitoraggio della rete.

Questo progetto fa parte di un progetto di sicurezza composto dai seguenti elementi:

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

Con questo progetto, puoi acquisire i pacchetti di rete (inclusi i metadati di rete) tramite Mirroring pacchetto, trasformare i pacchetti di rete in log Zeek e quindi archiviarli 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 Zeek utilizza meno volume di dati rispetto all'archiviazione dei dati non elaborati dei pacchetti, ed è quindi più conveniente.

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

Casi d'uso supportati

Questo progetto supporta i seguenti casi d'uso:

  • Il tuo Security Operations Center (SOC) richiede l'accesso ai dati del log di rete di Google Cloud in una posizione centralizzata in modo da poter analizzare gli incidenti di sicurezza. Questo progetto converte i dati del pacchetto di rete in log che puoi inoltrare agli strumenti di analisi e indagine. Gli strumenti di analisi e indagine includono BigQuery, Chronicle, Flowmon, ExtraHop, o la gestione di informazioni ed eventi di sicurezza (SIEM).
  • I team di sicurezza hanno bisogno di visibilità sulle reti Google Cloud per cercare le minacce utilizzando strumenti come Chronicle. Puoi utilizzare questo progetto base 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 la conformità al Memorandum M-21-31 dell'Office of Management and Budget (OMB) degli Stati Uniti.
  • Gli analisti della sicurezza di rete richiedono dati dei registri di rete a lungo termine. Questo progetto supporta sia il monitoraggio a lungo termine sia il monitoraggio on demand.

Se richiedi anche dati di acquisizione di pacchetti (pcap), devi utilizzare strumenti di analisi dei protocolli di rete, ad esempio Wireshark o tcpdump. L'utilizzo di 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 sia 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. Tieni presente quanto segue quando esegui il deployment del progetto base:

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

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

Architettura

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

L'architettura di telemetria di 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 sottoposte a mirroring.
    • Una rete VPC per le istanze del raccoglitore.

    Queste reti VPC devono trovarsi nello stesso progetto.

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

  • Istanze di Compute Engine che fungono da istanze di raccoglitore dietro un bilanciatore del carico di rete passthrough interno, nella stessa regione delle origini sottoposte a mirroring. Queste istanze eseguono Zeek-Fluentd Golden Image o la tua immagine Zeek-fluentd personalizzata. 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 utilizza il flag --is-mirroring-collector.

  • Regole firewall VPC che consentono quanto segue:

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

  • Peering di rete VPC per consentire la connettività mediante 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 di Cloud Logging che raccoglie tutti i pacchetti per l'archiviazione e il recupero da parte di uno strumento di analisi e indagine.

Comprendere i controlli di sicurezza necessari

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 intorno 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 predefinite dei gateway internet sono disattivate. La disattivazione dei gateway internet predefiniti consente di 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 di 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 utilizza 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 perché il bilanciatore del carico di rete passthrough interno per i raccoglitori non supporta le route globali.

Regole del firewall

Puoi utilizzare le regole firewall per definire le connessioni che le origini e i raccoglitori con mirroring possono stabilire. Configuri una regola in entrata per consentire controlli di integrità regolari, una regola in uscita per tutti i protocolli nelle origini sottoposte a mirroring e una regola in entrata per tutti i protocolli sui raccoglitori.

Controlli di sicurezza delle VM del raccoglitore

Le VM del raccoglitore sono responsabili della ricezione dei dati dei pacchetti. Le VM raccoglitori sono VM identiche che operano come gruppi di istanze gestite (MIG). Attivi 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 requisiti di utilizzo.

Ogni VM del raccoglitore esegue l'immagine zeek-fluentd Packer. Questa immagine è composta da Zeek, che genera i log, e da Fluentd, che inoltra i log a Cloud Logging. Dopo aver eseguito il deployment del modulo Terraform, puoi aggiornare il sistema operativo della VM e i pacchetti 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 i tag di rete, i nomi delle istanze o la subnet in cui si trovano le istanze. Inoltre, puoi filtrare ulteriormente il traffico utilizzando una o più delle seguenti opzioni:

  • Protocolli di livello 4, come TCP, UDP o ICMP.
  • Intervalli CIDR IPv4 nelle intestazioni IP, ad esempio 10.0.0.0/8.
  • La 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 richieste API per tuo conto. Gli account di servizio assicurano che le identità utente non abbiano accesso diretto ai servizi.

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

Le VM raccoglitori richiedono anche questo account di servizio per poter eseguire l'autenticazione nei servizi Google Cloud, ricevere 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, rivedi i requisiti normativi della tua organizzazione.

Logging e controllo

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

Puoi tenere traccia dell'accesso 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 nel seguente modo:

Riepilogo

Per implementare l'architettura descritta in questo documento:

  1. Esegui il deployment di una base di riferimento sicura in Google Cloud, come descritto nel progetto di base per le basi aziendali di Google Cloud. Se scegli di non eseguire il deployment del progetto di base della piattaforma aziendale, assicurati che il tuo ambiente abbia una base di sicurezza simile.
  2. Consulta il Leggimi del progetto base e assicurati di soddisfare tutti i prerequisiti.
  3. Nel tuo ambiente di test, esegui il deployment di una delle configurazioni di telemetria di rete di esempio per vedere il progetto base in azione. Come parte del processo di test, esegui le seguenti operazioni:

    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 analizzare le risorse appena create in base ai tuoi requisiti di conformità.

    4. Verifica che il sistema stia acquisendo e memorizzando i pacchetti di rete appropriati e, se necessario, perfeziona le prestazioni.

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

  5. Collega Cloud Logging al tuo SIEM o Chronicle in modo che il SOC e gli analisti della sicurezza di rete possano incorporare la nuova telemetria nelle proprie dashboard.

Passaggi successivi