Forwarder Google Security Operations per Windows su Docker

Questo documento descrive come installare e configurare il forwarding di Google Security Operations per Windows su Docker.

Requisiti di sistema

Di seguito sono riportati alcuni consigli di carattere generale. Per consigli specifici per il tuo sistema, contatta l'assistenza di Google Security Operations.

  • Versione Windows Server: il forwarding di Google Security Operations è supportato su Microsoft Windows Server 2022.
  • RAM: 1,5 GB per ogni tipo di log raccolto. Ad esempio, Endpoint Detection and Response (EDR), DNS e DHCP sono tutti tipi di log separati. Avrai bisogno di 4,5 GB di RAM per raccogliere i dati di tutti e tre. Per un elenco dei parser predefiniti e dei tipi di log supportati, vedi Parser predefiniti supportati.
  • CPU: sono sufficienti due CPU per gestire meno di 10.000 eventi al secondo (EPS) totali su tutti i tipi di dati. Se prevedi di inviare più di 10.000 EPS, sono necessarie da 4 a 6 CPU.
  • Disco: sono sufficienti 100 MB di spazio su disco, a prescindere dalla quantità di dati gestita dal forwarding di Google Security Operations. Puoi eseguire il buffering del disco aggiungendo i parametri write_to_disk_buffer_enabled e write_to_disk_dir_path nel file di configurazione.

    Ad esempio:

    - <collector>:
         common:
             ...
             write_to_disk_buffer_enabled: true
             write_to_disk_dir_path: directory_path 
             ...
    

Intervalli di indirizzi IP di Google

Potresti dover aprire l'intervallo di indirizzi IP quando imposti una configurazione di forwarding di Google Security Operations, ad esempio durante la configurazione del firewall. Google non può fornire un elenco specifico di indirizzi IP. Tuttavia, puoi ottenere intervalli di indirizzi IP di Google.

Verifica la configurazione del firewall

Se hai firewall o proxy autenticati tra il container del forwarding di Google Security Operations e internet, questi richiedono regole per consentire l'accesso ai seguenti host Google Cloud:

Tipo di connessione Destinazione Port (Porta)
TCP malachiteingestion-pa.googleapis.com 443
TCP asia-northeast1-malachiteingestion-pa.googleapis.com 443
TCP asia-south1-malachiteingestion-pa.googleapis.com 443
TCP asia-southeast1-malachiteingestion-pa.googleapis.com 443
TCP australia-southeast1-malachiteingestion-pa.googleapis.com 443
TCP europe-malachiteingestion-pa.googleapis.com 443
TCP europe-west2-malachiteingestion-pa.googleapis.com 443
TCP europe-west3-malachiteingestion-pa.googleapis.com 443
TCP europe-west6-malachiteingestion-pa.googleapis.com 443
TCP europe-west12-malachiteingestion-pa.googleapis.com 443
TCP me-central1-malachiteingestion-pa.googleapis.com 443
TCP me-central2-malachiteingestion-pa.googleapis.com 443
TCP me-west1-malachiteingestion-pa.googleapis.com 443
TCP northamerica-northeast2-malachiteingestion-pa.googleapis.com 443
TCP accounts.google.com 443
TCP gcr.io 443
TCP oauth2.googleapis.com 443
TCP storage.googleapis.com 443

Puoi verificare la connettività di rete a Google Cloud seguendo questa procedura:

  1. Avvia Windows PowerShell con i privilegi di amministratore (fai clic su Start, digita PowerShell, fai clic con il tasto destro del mouse su Windows PowerShell e fai clic su Esegui come amministratore).

  2. Esegui questo comando.

    C:\> test-netconnection <host> -port <port>

    Il comando restituisce che TcpTestSucceeded è true.

    Ad esempio:

    C:\> test-netconnection malachiteingestion-pa.googleapis.com -port 443
    ComputerName     :  malachiteingestion-pa.googleapis.com
    RemoteAddress    : 198.51.100.1
    RemotePort       : 443
    InterfaceAlias   : Ethernet
    SourceAddress    : 203.0.113.1
    TcpTestSucceeded : True
    

Installa Docker su Microsoft Windows

Questa sezione descrive come installare Docker su Microsoft Windows utilizzando l'interfaccia a riga di comando e PowerShell.

Vantaggi dello strumento di inoltro di Google Security Operations mediante l'utilizzo di un container:

  • Maggiore sicurezza tramite l'isolamento:
    • L'ambiente e i requisiti del cliente non influiscono sullo strumento di inoltro di Google Security Operations.
    • L'ambiente e i requisiti di inoltro di Google Security Operations non influiscono sul cliente.
    • Il meccanismo di distribuzione dei container esiste già e può essere privato e separato per Google Cloud e per i clienti. Per ulteriori informazioni, vedi Artifact Registry.

Completa i passaggi seguenti su Microsoft Windows Server Core 2022.

  1. Attiva la funzionalità del contenitore di Microsoft Windows.

    Install-WindowsFeature containers -Restart
    
  2. Esegui questo comando in modalità amministratore di PowerShell per installare Docker CE:

    Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/microsoft/Windows-Containers/Main/helpful_tools/Install-DockerCE/install-docker-ce.ps1" -o install-docker-ce.ps1
    
    .\install-docker-ce.ps1
    
    
  3. Testa l'interfaccia a riga di comando Docker eseguendo il comando docker ps, che restituisce un elenco dei container in esecuzione. Se il comando non elenca alcun container in esecuzione, l'installazione è riuscita. Se Docker non è installato correttamente, viene visualizzato un errore.

    Per ulteriori informazioni, consulta la guida introduttiva: preparazione di Windows per i container.

    Per i deployment aziendali, installa Mirantis Container Runtime, noto anche come Docker EE.

Configura l'inoltro di Google Security Operations

Per configurare il forwarding di Google Security Operations per Windows su Docker, vedi Gestire le configurazioni di forwarding tramite la UI di Google Security Operations.

Quando configuri il forwarding di Google Security Operations, assicurati che tutti i percorsi nel server di inoltro inizino con il prefisso "c:".

Eventuali modifiche apportate al file di configurazione verranno applicate automaticamente dall'inoltro di Google Security Operations entro 5 minuti.

Per raccogliere i dati dei pacchetti utilizzando il forwarding di Google Security Operations per Windows su Docker, consulta Raccogli i dati dei pacchetti.

Esegui il forwarding di Google Security Operations all'interno del container Docker

  1. Se esegui l'upgrade del servizio di forwarding di Google Security Operations, pulisci le esecuzioni precedenti di Docker. Nell'esempio seguente, il nome del container Docker è cfps.

    docker stop cfps
    
    docker rm cfps
    
  2. Recupera l'ultima immagine Docker da Google Cloud utilizzando questo comando pull Docker.

    docker pull gcr.io/chronicle-container/cf_production_stable_windows
    
  3. Avvia il forwarding di Google Security Operations dal container Docker.

    docker run `
    --detach `
    --name cfps `
    --restart=always `
    --log-opt max-size=100m `
    --log-opt max-file=10 `
    -p 10514:10514 `
    -v C:\config\:C:/opt/chronicle/external `
    gcr.io/chronicle-container/cf_production_stable_windows
    

    Puoi aggiungere più porte utilizzando più opzioni o intervalli. Ad esempio: -p 3001:3000 -p 2023:2022 o -p 7000-8000:7000-8000

Visualizza log di forwarding

Per visualizzare i log del forwarding di Google Security Operations, esegui questo comando:

  sudo docker logs cfps

Per visualizzare il percorso del file in cui sono archiviati i log, esegui questo comando:

docker inspect --format='{{.LogPath}}' CONTAINER_NAME
 

Per visualizzare i log in esecuzione, esegui questo comando:

  sudo docker logs cfps -f

Per archiviare i log in un file, esegui questo comando:

  sudo docker logs cfps &> logs.txt

Disinstalla lo strumento per l'inoltro di Google Security Operations

I seguenti comandi Docker consentono di arrestare, disinstallare o rimuovere il forwarding di Google Security Operations.

Questo comando arresta il container di forwarding di Google Security Operations:

  docker stop cfps

Questo comando rimuove il container di forwarding di Google Security Operations:

  docker rm cfps

Esegui l'upgrade del servizio di forwarding di Google Security Operations

Il forwarding di Google Security Operations per Windows su Docker viene aggiornato costantemente tramite uno script shell nell'immagine Docker, quindi non è necessario fornire alcun file eseguibile.

Raccogliere i dati

Le sezioni seguenti aiutano a configurare l'inoltro di Google Security Operations per l'importazione di diversi tipi di dati, che vengono inoltrati all'istanza di Google Security Operations.

Non configurare un valore superiore a 1 MB per batch_n_bytes. Se configuri un valore superiore a 1 MB, il valore verrà reimpostato automaticamente su 1 MB.

Raccogli dati Splunk

Puoi configurare lo strumento di inoltro di Google Security Operations in modo che inoltri i dati di Splunk a Google Security Operations. Google Cloud configura il forwarding di Google Security Operations con le seguenti informazioni per inoltrare i dati da Splunk:

  • URL dell'API REST Splunk (ad esempio, https://10.0.113.15:8089).

  • Query Splunk per generare dati per ciascuno dei tipi di dati richiesti (ad esempio, index=dns).

FORWARDER_NAME.conf
output:
collectors:
  - splunk:
      common:
        enabled: true
        data_type: WINDOWS_DNS
        data_hint: "#fields ts      uid     id.orig_h       id.orig_p       id.resp_h         id.resp_p       proto   trans_id        query   qclass  qclass_name"
        batch_n_seconds: 10
        batch_n_bytes: 819200
      url: https://127.0.0.1:8089
      is_ignore_cert: true
      minimum_window_size: 10s
      maximum_window_size: 30s
      query_string: search index=* sourcetype=dns
      query_mode: realtime
  • Rendi disponibili le credenziali del tuo account Splunk per l'inoltro di Google Security Operations. Puoi farlo creando un file creds.txt.

Per usare un file creds.txt:

  1. Crea un file locale per le tue credenziali di Splunk e assegnagli il nome creds.txt.

  2. Inserisci il tuo nome utente nella prima riga e la password nella seconda riga:

    cat creds.txt
    
    myusername
    mypassword
    
  3. Per utilizzare il forwarding di Google Security Operations per accedere a un'istanza Splunk, copia il file creds.txt nella directory di configurazione (la stessa directory in cui si trovano i file di configurazione). Ad esempio:

    cp creds.txt c:/opt/chronicle/config/creds.txt
    
  4. Verifica che il file creds.txt si trovi nella posizione corretta:

    ls c:/opt/chronicle/config
    

Raccogli i dati di syslog

Il server di inoltro di Google Security Operations può funzionare come server syslog. Puoi configurare qualsiasi appliance o server che supporti l'invio di dati syslog tramite una connessione TCP o UDP per inoltrare i relativi dati al forwarding di Google Security Operations. Puoi controllare i dati esatti che l'appliance o il server invia al server di inoltro di Google Security Operations. L'inoltro di Google Security Operations potrà quindi inoltrare i dati a Google Security Operations.

Il file di configurazione FORWARDER_NAME.conf (fornito da Google Cloud) specifica quali porte monitorare per ciascun tipo di dati inoltrati (ad esempio, la porta 10514). Per impostazione predefinita, il forwarding di Google Security Operations accetta connessioni TCP e UDP.

Configura rsyslog

Per configurare rsyslog, devi specificare una destinazione per ogni porta (ad esempio, ogni tipo di dati). Consulta la documentazione del sistema per la sintassi corretta. I seguenti esempi illustrano la configurazione di destinazione rsyslog:

  • Traffico dei log TCP: dns.* @@192.168.0.12:10514

  • Traffico dei log UDP: dns.* @192.168.0.12:10514

Abilita TLS per le configurazioni syslog

Puoi abilitare TLS per la connessione syslog all'inoltro di Google Security Operations. Nel file di configurazione del forwarding di Google Security Operations (FORWARDER_NAME.conf), specifica la posizione del certificato e della chiave di certificato generati, come mostrato nell'esempio seguente:

certificato c:/opt/chronicle/external/certs/client_generated_cert.pem
certificate_key c:/opt/chronicle/external/certs/client_generated_cert.key

In base all'esempio mostrato, modifica il file di configurazione dell'inoltro di Google Security Operations (FORWARDER_NAME.conf) come segue:

  collectors:
- syslog:
    common:
      enabled: true
      data_type: WINDOWS_DNS
      data_hint:
      batch_n_seconds: 10
      batch_n_bytes: 1048576
    tcp_address: 0.0.0.0:10515
    tcp_buffer_size: 65536
    connection_timeout_sec: 60
    certificate: "c:/opt/chronicle/external/certs/client_generated_cert.pem"
    certificate_key: "c:/opt/chronicle/external/certs/client_generated_cert.key"
    minimum_tls_version: "TLSv1_3"

Alcuni punti importanti da ricordare:

  • Puoi configurare la dimensione del buffer TCP. La dimensione predefinita del buffer TCP è 64 kB.

  • Il valore predefinito e consigliato per connection_timeout è 60 secondi. Se la connessione non è attiva per un determinato periodo di tempo, la connessione TCP viene terminata.

  • La versione TLS minima viene verificata rispetto alla versione TLS della richiesta di input. La versione TLS della richiesta di input deve essere superiore alla versione TLS minima. La versione TLS minima deve essere uno dei seguenti valori: TLSv1_0, TLSv1_1, TLSv1_2, TLSv1_3.

Puoi creare una directory certs nella directory di configurazione in cui archiviare i file dei certificati.

Raccogli i dati dei file

Un raccoglitore di file è progettato per recuperare i log da un file. Il file deve essere associato al container Docker.

Utilizza questa opzione se vuoi caricare manualmente i log da un singolo file di log. Può essere utilizzato per eseguire il backfill dei log per un determinato file di log.

Avvia il forwarding di Google Security Operations dal container Docker:

  docker run `
    --name cfps `
    --log-opt max-size=100m `
    --log-opt max-file=10 `
    -p 10514:10514 `
    -v c:/opt/chronicle/config:c:/opt/chronicle/external `
    -v c:/var/log/crowdstrike/falconhoseclient:c:/opt/chronicle/edr `
     gcr.io/chronicle-container/cf_production_stable

Puoi aggiungere più porte utilizzando più opzioni o intervalli. Ad esempio: -p 3001:3000 -p 2023:2022 o -p 7000-8000:7000-8000

Questo comando docker run è fondamentale per mappare il volume di carico al container.

In base a questo esempio, devi modificare la configurazione dell'inoltro di Google Security Operations (file FORWARDER_NAME.conf) come segue. Il file sample.txt dovrebbe essere presente nella cartella /var/log/crowdstrike/falconhostclient.

 collectors:
  - file:
       common:
         enabled: true
         data_type: CS_EDR
         data_hint:
         batch_n_seconds: 10
         batch_n_bytes: 1048576
       file_path: c:/opt/chronicle/edr/output/sample.txt
       filter:

Configurazioni di flag

skip_seek_to_end (bool): questo flag è impostato su false per impostazione predefinita e l'input del file invia solo nuove righe di log come input. Se viene impostato su true, tutte le righe di log precedenti vengono inviate di nuovo durante il riavvio del server di inoltro. Questo causa la duplicazione dei log. L'impostazione di questo flag su true è utile in alcune situazioni (ad esempio durante le interruzioni), perché il riavvio del server di inoltro invia di nuovo le righe di log mancanti.

poll (bool): il raccoglitore di file utilizza la libreria Tail per verificare la presenza di modifiche nel file system. Se imposti questo flag su true, la libreria Tail utilizza il metodo di polling anziché il metodo di notifica predefinito.

Raccogli i dati dei pacchetti

Il forwarding di Google Security Operations può acquisire pacchetti direttamente da un'interfaccia di rete utilizzando Npcap sui sistemi Windows.

I pacchetti vengono acquisiti e inviati a Google Cloud anziché le voci di log. L'acquisizione viene eseguita solo da un'interfaccia locale.

Contatta l'assistenza di Google Security Operations per aggiornare il file di configurazione del forwarding di Google Security Operations in modo che supporti l'acquisizione dei pacchetti.

Per eseguire un forwarding Packet Capture (PCAP), devi disporre di quanto segue:

  • Installa Npcap sull'host Microsoft Windows.

  • Concedi a Google Security Operations i privilegi root o di amministratore per l'inoltro per monitorare l'interfaccia di rete.

  • Non sono necessarie opzioni della riga di comando.

  • Nell'installazione di Npcap, attiva la modalità di compatibilità di WinPcap.

Per configurare un forwarding PCAP, Google Cloud ha bisogno del GUID dell'interfaccia utilizzata per acquisire i pacchetti. Esegui getmac.exe sul computer in cui prevedi di installare il forwarding Google Security Operations (il server o la macchina in ascolto sulla porta span) e invia l'output a Google Security Operations.

In alternativa, puoi modificare il file di configurazione. Individua la sezione PCAP e sostituisci il valore GUID mostrato accanto all'interfaccia con il GUID visualizzato dall'esecuzione di getmac.exe.

Ad esempio, ecco una sezione originale PCAP:

- pcap:
      common:
        enabled: true
        data_type: PCAP_DNS
        batch_n_seconds: 10
        batch_n_bytes: 1048576
      interface: \Device\NPF_{1A7E7C8B-DD7B-4E13-9637-0437AB1A12FE}
      bpf: udp port 53

Ecco l'output dell'esecuzione di getmac.exe:

C:\>getmac.exe
  Physical Address    Transport Name
  ===========================================================================
  A4-73-9F-ED-E1-82   \Device\Tcpip_{2E0E9440-ABFF-4E5B-B43C-E188FCAD1234}

Infine, ecco la sezione PCAP revisionata con il nuovo GUID:

- pcap:
      common:
        enabled: true
        data_type: PCAP_DNS
        batch_n_seconds: 10
        batch_n_bytes: 1048576
      interface: \Device\NPF_{2E0E9440-ABFF-4E5B-B43C-E188FCAD9734}
      bpf: udp port 53

Raccogli dati dall'argomento Kafka

Puoi importare i dati dagli argomenti Kafka esattamente come da syslog. I gruppi di consumer vengono utilizzati per consentirti di eseguire il deployment di un massimo di tre forwardinger di Google Security Operations e di eseguire il pull dei dati dallo stesso argomento Kafka. Per maggiori informazioni, consulta la pagina Kafka.

Per saperne di più sui gruppi di consumer Kafka, consulta Gruppi di consumer Kafka

Configurazione di esempio: input Kafka

La seguente configurazione del forwarding di Google Security Operations mostra come impostare il forwarding di Google Security Operations per importare i dati dagli argomenti Kafka.

File FORWARDER_NAME.conf

collectors:
- kafka:
      common:
        batch_n_bytes: 1048576
        batch_n_seconds: 10
        data_hint: null
        data_type: NIX_SYSTEM
        enabled: true
      topic: example-topic
      group_id: chronicle-forwarder
      timeout: 60s
      brokers: ["broker-1:9092", "broker-2:9093"]
      tls:
        insecureSkipVerify: true
        certificate: "c:/path/to/cert.pem"
        certificate_key: "c:/path/to/cert.key"
- syslog:
      common:
        batch_n_bytes: 1048576
        batch_n_seconds: 10
        data_hint: null
        data_type: WINEVTLOG
        enabled: true
      tcp_address: 0.0.0.0:30001
      connection_timeout_sec: 60

File FORWARDER_NAME_auth.conf

collectors:
- kafka:
      username: user
      password: password
- syslog:

Raccogli dati WebProxy

L'utente per l'inoltro di Google Security Operations può acquisire i dati del proxy web direttamente da un'interfaccia di rete utilizzando Npcap e inviarli a Google Cloud.

Per attivare l'acquisizione dei dati di WebProxy per il tuo sistema, contatta l'assistenza di Google Security Operations.

Prima di eseguire un forwarding WebProxy, segui questi passaggi:

  1. Installa Npcap sull'host Microsoft Windows. Abilita la modalità di compatibilità di WinPcap durante l'installazione.

  2. Concedi i privilegi root o di amministratore all'utente che esegue l'inoltro di Google Security Operations per monitorare l'interfaccia di rete.

  3. Per configurare un forwarding WebProxy, Google Cloud ha bisogno del GUID per l'interfaccia utilizzata per acquisire i pacchetti di WebProxy.

    Esegui getmac.exe sul computer in cui vuoi installare l'inoltro di Google Security Operations e invia l'output a Google Security Operations. In alternativa, puoi modificare il file di configurazione. Individua la sezione WebProxy e sostituisci il GUID visualizzato accanto all'interfaccia con il GUID visualizzato dopo l'esecuzione di getmac.exe.

    Modifica il file di configurazione dell'inoltro di Google Security Operations (FORWARDER_NAME.conf) come segue:

      - webproxy:
        common:
            enabled : true
            data_type: <Your LogType>
            batch_n_seconds: 10
            batch_n_bytes: 1048576
          interface: \Device\NPF_{2E0E9440-ABFF-4E5B-B43C-E188FCAD9734}
          bpf: tcp and dst port 80
    

Personalizza configurazioni

Nella tabella seguente sono elencati i parametri importanti utilizzati nel file di configurazione del server di inoltro.

Parametro Descrizione
data_type Il tipo di dati di log che il raccoglitore può raccogliere ed elaborare.
metadati Metadati, che eseguono l'override dei metadati globali.
max_file_buffer_bytes Numero massimo di byte che possono essere accumulati nel disco o nel buffer dei file. Il valore predefinito è 1073741824, ovvero 1 GB.
max_memory_buffer_bytes Numero massimo di byte che possono essere accumulati nel buffer di memoria. Il valore predefinito è 1073741824, che è 1 GB.
write_to_disk_dir_path Il percorso da utilizzare per il buffer del file o del disco.
write_to_disk_buffer_enabled Se true, viene utilizzato il buffer del disco al posto del buffer di memoria. Il valore predefinito è false.
batch_n_bytes Numero massimo di byte che possono essere accumulati dal raccoglitore dopo il quale vengono raggruppati i dati. Il valore predefinito è 1048576, che è 1 MB.
batch_n_seconds Il numero di secondi dopo i quali i dati raccolti dal raccoglitore vengono raggruppati. Il valore predefinito è 11 secondi.
data_hint Formato dei dati che il raccoglitore può ricevere (di solito l'intestazione del file di log che descrive il formato).

Per un elenco completo dei parametri utilizzati nel file di configurazione, consulta Campi di configurazione del forwarding e Campi di configurazione del raccoglitore.

Attiva/disattiva la compressione dei dati

La compressione dei log riduce il consumo di larghezza di banda della rete durante il trasferimento dei log a Google Security Operations. Tuttavia, la compressione potrebbe causare un aumento dell'utilizzo della CPU. Il compromesso tra utilizzo della CPU e larghezza di banda dipende da molti fattori, tra cui il tipo di dati di log, la comprimibilità di tali dati, la disponibilità di cicli della CPU sull'host che esegue il forwarding di Google Security Operations e la necessità di ridurre il consumo della larghezza di banda della rete.

Ad esempio, i log basati su testo si comprimono bene e possono garantire un notevole risparmio di larghezza di banda con un utilizzo ridotto della CPU. Tuttavia, i payload criptati dei pacchetti non elaborati non si comprimono bene e comportano un maggiore utilizzo della CPU.

Per impostazione predefinita, la compressione dei log è disattivata. L'abilitazione della compressione dei log potrebbe ridurre il consumo di larghezza di banda. Tuttavia, l'abilitazione della compressione dei log potrebbe anche aumentare l'utilizzo della CPU. Tieni presente i compromessi.

Per attivare la compressione dei log, imposta il campo compression su true nel file di configurazione del forwarding di Google Security Operations, come mostrato nell'esempio seguente:

File FORWARDER_NAME.conf

output:
  compression: true
    url: malachiteingestion-pa.googleapis.com:443
    identity:
      identity:
      collector_id: 10479925-878c-11e7-9421-10604b7cb5c1
      customer_id: ebdc4bb9-878b-11e7-8455-10604b7cb5c1
...

Il file FORWARDER_NAME_auth.conf

output:
  identity:
    secret_key: |
    {
     "type": "service_account",
...
    }

Configura il buffering del disco

Il buffering su disco consente di eseguire il buffer dei messaggi in backlog sul disco anziché sulla memoria. I messaggi in backlog possono essere archiviati in caso di arresto anomalo del forwarding di Google Security Operations o dell'host sottostante. Tieni presente che l'abilitazione del buffering del disco può influire sulle prestazioni.

Se il buffering del disco è disattivato, il forwarding di Google Security Operations utilizza 1 GB di memoria (RAM) per ogni tipo di log (ad esempio, per ogni connettore). Specifica il parametro di configurazione max_memory_buffer_bytes. La memoria massima consentita è di 4 GB.

Puoi configurare il buffering del disco automatico in modo da utilizzare un buffer condiviso dinamicamente tra i raccoglitori, che gestisce meglio i picchi di traffico. Per abilitare il buffer condiviso dinamicamente, aggiungi quanto segue nella configurazione del forwarding:

auto_buffer:
  enabled: true
  target_memory_utilization: 80

Se il buffering del disco automatico è abilitato, ma target_memory_utilization non è definito, utilizza il valore predefinito 70.

Se esegui il forwarding di Google Security Operations utilizzando Docker, Google consiglia di montare un volume separato dal tuo volume di configurazione per motivi di isolamento. Inoltre, ogni input deve essere isolato con la propria directory o il proprio volume per evitare conflitti.

Configurazione di esempio: buffering del disco

La configurazione seguente include la sintassi per abilitare il buffering del disco:

collectors:
- syslog:
    common:
      write_to_disk_buffer_enabled: true
      # c:/buffers/NIX_SYSTEM is part of the external mounted volume for the
forwarder
      write_to_disk_dir_path: c:/buffers/NIX_SYSTEM
      max_file_buffer_bytes: 1073741824
      batch_n_bytes: 1048576
      batch_n_seconds: 10
      data_hint: null
      data_type: NIX_SYSTEM
      enabled: true
    tcp_address: 0.0.0.0:30000
    connection_timeout_sec: 60
- syslog:
    common:
      batch_n_bytes: 1048576
      batch_n_seconds: 10
      data_hint: null
      data_type: WINEVTLOG
      enabled: true
    tcp_address: 0.0.0.0:30001
    connection_timeout_sec: 60

Imposta filtri per espressioni regolari

I filtri basati su espressioni regolari consentono di filtrare i log in base alle corrispondenze basate su espressioni regolari rispetto ai log non elaborati.

I filtri utilizzano la syntax RE2.

I filtri devono includere un'espressione regolare e, facoltativamente, definire un comportamento in caso di corrispondenza. Il comportamento predefinito per una corrispondenza è il blocco (puoi anche configurarlo esplicitamente come blocco).

In alternativa, puoi specificare i filtri con il comportamento allow. Se specifichi qualsiasi filtro allow, il forwarding di Google Security Operations blocca tutti i log che non corrispondono ad almeno un filtro allow.

È possibile definire un numero arbitrario di filtri. I filtri di blocco hanno la precedenza sui filtri di allow.

Quando vengono definiti, i filtri devono avere un nome. I nomi dei filtri attivi verranno segnalati a Google Security Operations utilizzando le metriche di integrità del forwarding. I filtri definiti alla radice della configurazione vengono uniti ai filtri definiti a livello di raccoglitore. In caso di nomi in conflitto, i filtri a livello di raccoglitore hanno la precedenza. Se non vengono definiti filtri a livello di directory principale o di raccoglitore, il comportamento è consentire tutti.

Configurazione di esempio: filtri basati su espressioni regolari

Nella seguente configurazione del forwarding di Google Security Operations, i log WINEVTLOG che non corrispondono al filtro principale (allow_filter) sono bloccati. Data l'espressione regolare, il filtro consente solo i log con priorità comprese tra 0 e 99. Tuttavia, tutti i log NIX_SYSTEM contenenti "foo" o "bar" sono bloccati, malgrado allow_filter. Questo perché i filtri utilizzano un operatore logico OR. Tutti i log vengono elaborati fino all'attivazione di un filtro.

regex_filters:
  allow_filter:
    regexp: ^<[1-9][0-9]?$>.*$
    behavior_on_match: allow
collectors:
- syslog:
    common:
      regex_filters:
        block_filter_1:
          regexp: ^.*foo.*$
          behavior_on_match: block
        block_filter_2:
          regexp: ^.*bar.*$
      batch_n_bytes: 1048576
      batch_n_seconds: 10
      data_hint: null
      data_type: NIX_SYSTEM
      enabled: true
    tcp_address: 0.0.0.0:30000
    connection_timeout_sec: 60
- syslog:
    common:
      batch_n_bytes: 1048576
      batch_n_seconds: 10
      data_hint: null
      data_type: WINEVTLOG
      enabled: true
    tcp_address: 0.0.0.0:30001
    connection_timeout_sec: 60

Configura etichette arbitrarie

Le etichette vengono utilizzate per collegare metadati arbitrari ai log utilizzando coppie chiave-valore. Le etichette possono essere configurate per un intero forwarding di Google Security Operations o all'interno di un raccoglitore specifico di un forwarding di Google Security Operations. Se vengono fornite entrambe, le etichette vengono unite alle chiavi del raccoglitore e hanno la precedenza sulle chiavi dell'inoltro di Google Security Operations se le chiavi si sovrappongono.

Configurazione di esempio: etichette arbitrarie

Nella seguente configurazione del forwarding di Google Security Operations, le coppie chiave-valore foo=bar e meow=mix sono collegate ai log WINEVTLOG, mentre le coppie chiave-valore foo=baz e meow=mix sono collegate ai log NIX_SYSTEM.

metadata:
  labels:
    foo: bar
    meow: mix
collectors:
syslog:
    common:
      metadata:
        labels:
          foo: baz
          meow: mix
      batch_n_bytes: 1048576
      batch_n_seconds: 10
      data_hint: null
      data_type: NIX_SYSTEM
      enabled: true
    tcp_address: 0.0.0.0:30000
    connection_timeout_sec: 60
syslog:
    common:
      batch_n_bytes: 1048576
      batch_n_seconds: 10
      data_hint: null
      data_type: WINEVTLOG
      enabled: true
    tcp_address: 0.0.0.0:30001
    connection_timeout_sec: 60

Configura spazi dei nomi

Utilizza le etichette dello spazio dei nomi per identificare i log di segmenti di rete distinti e annullare i conflitti degli indirizzi IP sovrapposti. Puoi configurare un'etichetta dello spazio dei nomi per un intero forwarding di Google Security Operations o all'interno di un raccoglitore specifico del forwarding di Google Security Operations. Se sono inclusi entrambi, lo spazio dei nomi del raccoglitore specifico ha la precedenza.

Ogni spazio dei nomi configurato per il forwarding di Google Security Operations viene visualizzato con gli asset associati nell'interfaccia utente di Google Security Operations. Puoi anche cercare spazi dei nomi utilizzando la funzionalità Google Security Operations Search.

Per informazioni su come visualizzare gli spazi dei nomi nell'interfaccia utente di Google Security Operations, visita questa pagina.

Configurazione di esempio: spazi dei nomi

Nella seguente configurazione del forwarding di Google Security Operations, i log WINEVTLOG sono collegati allo spazio dei nomi FORWARDER e i log NIX_SYSTEM sono associati allo spazio dei nomi CORPORATE.

metadata:
  namespace: FORWARDER
collectors:
- syslog:
      common:
        metadata:
          namespace: CORPORATE
        batch_n_bytes: 1048576
        batch_n_seconds: 10
        data_hint: null
        data_type: NIX_SYSTEM
        enabled: true
      tcp_address: 0.0.0.0:30000
      connection_timeout_sec: 60
- syslog:
      common:
        batch_n_bytes: 1048576
        batch_n_seconds: 10
        data_hint: null
        data_type: WINEVTLOG
        enabled: true
      tcp_address: 0.0.0.0:30001
      connection_timeout_sec: 60

Configura le opzioni di bilanciamento del carico e alta disponibilità

È possibile eseguire il deployment del forwarding di Google Security Operations per Windows su Docker in un ambiente in cui è installato un bilanciatore del carico di livello 4 tra l'origine dati e le istanze di forwarding di Google Security Operations. In questo modo puoi distribuire la raccolta dei log tra più forwarding di Google Security Operations o inviare i log a un altro server di inoltro di Google Security Operations in caso di errore. Questa funzionalità è supportata solo con il tipo di raccolta syslog.

Il forwarding di Google Security Operations per Windows su Docker include un server HTTP integrato che risponde ai controlli di integrità HTTP dal bilanciatore del carico. Il server HTTP contribuisce inoltre a garantire che i log non vadano persi durante l'avvio o l'arresto di un forwarding di Google Security Operations.

Configura le opzioni server HTTP, bilanciamento del carico e alta disponibilità nella sezione server del file di configurazione del forwarding di Google Security Operations. Queste opzioni supportano l'impostazione di durate di timeout e codici di stato restituiti in risposta ai controlli di integrità ricevuti dallo scheduler dei container e dai deployment basati sull'orchestrazione, nonché dai bilanciatori del carico convenzionali.

Usa i seguenti percorsi dell'URL per i controlli di integrità, idoneità e attività. I valori <host:port> sono definiti nella configurazione dell'inoltro di Google Security Operations.

  • http://<host:port>/meta/available: controlli di attività per gli orchestratori/pianificatori dei container, come Kubernetes.
  • http://<host:port>/meta/ready: controlli di idoneità e controlli di integrità del bilanciatore del carico tradizionale.

La seguente configurazione per l'inoltro di Google Security Operations è un esempio per bilanciamento del carico e alta disponibilità:

collectors:
- syslog:
    common:
      batch_n_bytes: 1048576
      batch_n_seconds: 10
      data_hint: null
      data_type: NIX_SYSTEM
      enabled: true
    tcp_address: 0.0.0.0:30000
    connection_timeout_sec: 60
- syslog:
    common:
      batch_n_bytes: 1048576
      batch_n_seconds: 10
      data_hint: null
      data_type: WINEVTLOG
      enabled: true
    tcp_address: 0.0.0.0:30001
    connection_timeout_sec: 60
server:
  graceful_timeout: 15s
  drain_timeout: 10s
  http:
    port: 8080
    host: 0.0.0.0
    read_timeout: 3s
    read_header_timeout: 3s
    write_timeout: 3s
    idle_timeout: 3s
    routes:
    - meta:
        available_status: 204
        ready_status: 204
        unready_status: 503
Percorso di configurazione Descrizione
server : tolleranza_grazia Il periodo di tempo durante il quale il forwarding di Google Security Operations restituisce un controllo di idoneità/integrità non corretto e accetta ancora nuove connessioni. Questo è anche il tempo di attesa tra la ricezione di un segnale di arresto e l'inizio effettivo dell'arresto del server stesso. In questo modo concedi al bilanciatore del carico il tempo di rimuovere il forwarding Google Security Operations dal pool.
server : scratch_timeout Il tempo di attesa per l'inoltro di Google Security Operations prima che le connessioni attive si chiudano autonomamente prima di essere chiuse dal server.
server : porta http : Il numero di porta su cui il server HTTP rimane in ascolto per i controlli di integrità dal bilanciatore del carico. Il valore deve essere compreso tra 1024 e 65535.
server : http : host L'indirizzo IP, o nome host che può essere risolto in indirizzi IP, che il server deve ascoltare. Se vuoto, il valore predefinito è sistema locale (0.0.0.0).
server : http : tempo_di_lettura Utilizzato per ottimizzare il server HTTP. In genere, non è necessario modificare l'impostazione predefinita. Il tempo massimo consentito per leggere l'intera richiesta, sia l'intestazione che il corpo. Puoi impostare sia read_timeout che read_header_timeout.
server : http : read_header_timeout Utilizzato per ottimizzare il server HTTP. In genere, non è necessario modificare l'impostazione predefinita. Il tempo massimo consentito per leggere le intestazioni delle richieste. La lettura della connessione alla scadenza viene reimpostata dopo la lettura dell'intestazione.
server : http : write_timeout Utilizzato per ottimizzare il server HTTP. In genere, non è necessario modificare l'impostazione predefinita. Il tempo massimo consentito per inviare una risposta. Viene reimpostata quando viene letta l'intestazione di una nuova richiesta.
server : http : idle_timeout Utilizzato per ottimizzare il server HTTP. In genere, non è necessario modificare l'impostazione predefinita. Il tempo massimo di attesa per la richiesta successiva quando le connessioni inattive sono abilitate. Se idle_timeout è pari a zero, viene usato il valore di read_timeout. Se entrambi sono pari a zero, viene utilizzato read_header_timeout.
route : meta : ready_status Il codice di stato restituito dal server di inoltro di Google Security Operations quando è pronto ad accettare il traffico in una delle seguenti situazioni:
  • Il controllo di idoneità viene ricevuto da uno scheduler o da uno strumento di orchestrazione dei container.
  • Il controllo di integrità viene ricevuto da un bilanciatore del carico tradizionale.
route : meta : unready_status Il codice di stato restituito dal forwarding di Google Security Operations quando non è pronto ad accettare traffico.
route : meta : available_status Il codice di stato restituito dal server di inoltro di Google Security Operations quando viene ricevuto un controllo di attività e quando è disponibile l'inoltro di Google Security Operations. Gli scheduler/gli orchestratori di container come Kubernetes inviano spesso controlli di attività.