Raccogliere i log di Carbon Black EDR

Supportato in:

Questo documento spiega come raccogliere i log di Carbon Black EDR dagli ambienti cloud e on-premise utilizzando AWS S3. Il parser estrae i campi dai messaggi formattati in JSON, CSV o syslog, li normalizza e li mappa a UDM. Gestisce vari tipi di eventi Carbon Black, tra cui connessioni di rete, eventi di processo, modifiche ai file, modifiche al registro e corrispondenze IOC, arricchendo i dati con informazioni sulle minacce e informazioni sui dispositivi, ove disponibili.

Prima di iniziare

Assicurati di soddisfare i seguenti prerequisiti:

  • Istanza Google SecOps.
  • Accesso con privilegi ad AWS IAM e S3.
  • Accesso con privilegi a Carbon Black EDR cloud o on-premise.

Configura Carbon Black EDR on-premise

Configura il bucket Amazon S3 per l'ambiente on-premise

  1. Crea un bucket Amazon S3 seguendo questa guida utente: Creazione di un bucket
  2. Salva il Nome e la Regione del bucket per utilizzarli in un secondo momento.
  3. Crea un utente seguendo questa guida: Creazione di un utente IAM.
  4. Seleziona l'utente creato.
  5. Seleziona la scheda Credenziali di sicurezza.
  6. Fai clic su Crea chiave di accesso nella sezione Chiavi di accesso.
  7. Seleziona Servizio di terze parti come Caso d'uso.
  8. Fai clic su Avanti.
  9. (Facoltativo) Aggiungi un tag di descrizione.
  10. Fai clic su Crea chiave di accesso.
  11. Fai clic su Scarica file CSV per salvare la chiave di accesso e la chiave di accesso segreta per un utilizzo successivo.
  12. Fai clic su Fine.
  13. Seleziona la scheda Autorizzazioni.
  14. Fai clic su Aggiungi autorizzazioni nella sezione Norme relative alle autorizzazioni.
  15. Seleziona Aggiungi autorizzazioni.
  16. Seleziona Allega direttamente le norme.
  17. Cerca e seleziona il criterio AmazonS3FullAccess.
  18. Fai clic su Avanti.
  19. Fai clic su Aggiungi autorizzazioni.

Installa cb-event-forwarder sul server EDR on-premise

  1. Installa il repository CbOpenSource se non è già presente:

    cd /etc/yum.repos.d
    curl -O https://opensource.carbonblack.com/release/x86_64/CbOpenSource.repo
    
  2. Installa l'RPM utilizzando YUM:

    yum install cb-event-forwarder
    
  3. Se utilizzi EDR 7.1.0 o versioni successive, esegui il seguente script per impostare le autorizzazioni appropriate necessarie per EDR:

    /usr/share/cb/integrations/event-forwarder/cb-edr-fix-permissions.sh
    

Configura cb-event-forwarder per generare log JSON

  1. Apri il file di configurazione:

    sudo nano /etc/cb/integrations/event-forwarder/cb-event-forwarder.conf
    
  2. Modifica i seguenti parametri:

    [event_forwarder]
    output_format=json   # Enable JSON format
    output_type=s3       # Send logs to AWS S3
    s3_bucket_name=YOUR-S3-BUCKET-NAME
    s3_region=YOUR-S3-BUCKET-NAME
    s3_access_key_id=YOUR_AWS_ACCESS_KEY
    s3_secret_access_key=YOUR_AWS_SECRET_KEY
    s3_prefix=carbonblack/edr/logs
    
  3. Salva ed esci utilizzando la tastiera:

    • Ctrl + X, quindi Y e Invio.
  4. Avvia cb-event-forwarder:

    sudo systemctl enable cb-event-forwarder
    sudo systemctl restart cb-event-forwarder
    sudo systemctl status cb-event-forwarder
    

Configura Carbon Black Cloud Event Forwarder per S3

Crea un bucket AWS S3

  1. Accedi alla console di gestione AWS.
  2. Assicurati che la regione AWS corrisponda a quella di Event Forwarder:
    1. Nella pagina Console AWS, individua la regione.
    2. Utilizza il menu a discesa per selezionare la regione corretta del tuo Event Forwarder.
    3. Il seguente elenco indica la regione AWS applicabile per ogni URL Carbon Black EDR.
      • "instance-alias".my.carbonblack.io - Regione: US East (N. del Nord) (us-east-1)
      • "instance-alias".my.cbcloud.de - Regione: Europa (Francoforte) (eu-central-1)
      • "instance-alias".my.cbcloud.sg Regione: Asia Pacifico (Singapore) (ap-southeast-1)
  3. Seleziona Servizi.
  4. Vai alla console S3.
  5. Fai clic su Crea bucket per aprire la procedura guidata Crea bucket.
    1. In Nome bucket, inserisci un nome univoco per il bucket (ad esempio, CB-EDR).
    2. Assicurati che la regione sia quella selezionata in precedenza.
    3. Aggiorna i valori predefiniti di Blocca accesso pubblico per consentire l'accesso pubblico (operazione necessaria per l'importazione dei log in Google SecOps).
    4. Seleziona Crea bucket.

Configura il bucket S3 per consentire a Event Forwarder di scrivere eventi

  1. Crea un utente seguendo questa guida utente: Creazione di un utente IAM.
  2. Seleziona l'utente creato.
  3. Seleziona la scheda Credenziali di sicurezza.
  4. Fai clic su Crea chiave di accesso nella sezione Chiavi di accesso.
  5. Seleziona Servizio di terze parti come Caso d'uso.
  6. Fai clic su Avanti.
  7. (Facoltativo) Aggiungi un tag di descrizione.
  8. Fai clic su Crea chiave di accesso.
  9. Fai clic su Scarica file CSV per salvare la chiave di accesso e la chiave di accesso segreta per un utilizzo successivo.
  10. Fai clic su Fine.
  11. Seleziona la scheda Autorizzazioni.
  12. Fai clic su Aggiungi autorizzazioni nella sezione Norme relative alle autorizzazioni.
  13. Seleziona Aggiungi autorizzazioni.
  14. Seleziona Allega direttamente le norme.
  15. Cerca il criterio AmazonS3FullAccess.
  16. Seleziona la policy.
  17. Fai clic su Avanti.
  18. Fai clic su Aggiungi autorizzazioni.

Configurare l'inoltro degli eventi nella console EDR

  1. Accedi a VMware Carbon Black Cloud.
  2. Vai alla scheda Event Forwarder.
  3. Attiva gli eventi che vuoi che il prodotto carichi su S3.
  4. Vai a Output e tipo e imposta S3.
  5. Fornisci il nome del bucket S3 nel seguente formato <region>:<bucket-name> (ad esempio, us-east-1:cb-edr).
  6. Seleziona il file Carica credenziali AWS in formato INI.
  7. Di seguito è riportato un esempio di profilo:

    AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
    AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
    Default region name [None]: us-east-1
    
  8. Fai clic su Salva e riavvia il servizio per applicare le modifiche.

Configurare i feed

Esistono due diversi punti di accesso per configurare i feed nella piattaforma Google SecOps:

  • Impostazioni SIEM > Feed
  • Hub dei contenuti > Pacchetti di contenuti

Configura i feed da Impostazioni SIEM > Feed

Per configurare un feed:

  1. Vai a Impostazioni SIEM > Feed.
  2. Fai clic su Aggiungi nuovo feed.
  3. Nella pagina successiva, fai clic su Configura un singolo feed.
  4. Nel campo Nome feed, inserisci un nome per il feed (ad esempio, Carbon Black EDR Logs).
  5. Seleziona Amazon S3 come Tipo di origine.
  6. Seleziona Carbon Black EDR come Tipo di log.
  7. Fai clic su Avanti.
  8. Specifica i valori per i seguenti parametri di input:

    • Region (Regione): la regione in cui si trova il bucket Amazon S3.
    • URI S3: l'URI del bucket.
      • s3:/BUCKET_NAME
        • Sostituisci BUCKET_NAME con il nome effettivo del bucket.
    • URI è un: seleziona URI_TYPE in base alla configurazione dello stream di log (File singolo | Directory | Directory che include sottodirectory).
    • Opzioni di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze.
    • ID chiave di accesso: la chiave di accesso utente con accesso al bucket S3.
    • Chiave di accesso segreta: la chiave segreta dell'utente con accesso al bucket S3.
  9. Fai clic su Avanti.

  10. Controlla la nuova configurazione del feed nella schermata Finalizza e poi fai clic su Invia.

Configurare i feed dall'hub dei contenuti

Specifica i valori per i seguenti campi:

  • Region (Regione): la regione in cui si trova il bucket Amazon S3.
  • URI S3: l'URI del bucket.
    • s3:/BUCKET_NAME
      • Sostituisci BUCKET_NAME con il nome effettivo del bucket.
  • URI è un: seleziona URI_TYPE in base alla configurazione dello stream di log (File singolo | Directory | Directory che include sottodirectory).
  • Opzioni di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze.
  • ID chiave di accesso: la chiave di accesso utente con accesso al bucket S3.
  • Chiave di accesso segreta: la chiave segreta dell'utente con accesso al bucket S3.

Opzioni avanzate

  • Nome feed: un valore precompilato che identifica il feed.
  • Tipo di origine: metodo utilizzato per raccogliere i log in Google SecOps.
  • Spazio dei nomi dell'asset: lo spazio dei nomi associato al feed.
  • Etichette di importazione: etichette applicate a tutti gli eventi di questo feed.

Tabella di mappatura UDM

Campo log Mappatura UDM Logic
action security_result.detection_fields[?key == 'action'].value Il valore del campo action del log non elaborato.
cb_server intermediary.hostname Il valore del campo cb_server del log non elaborato.
cb_version metadata.product_version Il valore del campo cb_version del log non elaborato.
child_pid target.process.pid (per ingress.event.childproc eventi) Il valore del campo child_pid del log non elaborato quando type è ingress.event.childproc.
child_process_guid target.process.product_specific_process_id (per ingress.event.childproc eventi) "CB:" concatenato al valore del campo child_process_guid del log non elaborato quando type è ingress.event.childproc.
child_username target.user.userid (per ingress.event.childproc eventi) Il valore del campo child_username del log non elaborato quando type è ingress.event.childproc.
childproc_guid target.process.product_specific_process_id (per endpoint.event.procstart eventi) "CB:" concatenato al valore del campo childproc_guid del log non elaborato quando type è endpoint.event.procstart.
childproc_hash.0 target.process.file.md5 (per endpoint.event.procstart eventi) Il primo elemento dell'array childproc_hash del log non elaborato quando type è endpoint.event.procstart.
childproc_hash.1 target.process.file.sha256 (per endpoint.event.procstart eventi) Il secondo elemento dell'array childproc_hash del log non elaborato quando type è endpoint.event.procstart.
childproc_name target.process.file.full_path (per endpoint.event.procstart eventi) Il valore del campo childproc_name del log non elaborato quando type è endpoint.event.procstart.
childproc_pid target.process.pid (per endpoint.event.procstart eventi) Il valore del campo childproc_pid del log non elaborato quando type è endpoint.event.procstart.
childproc_publisher.0.name security_result.detection_fields[?key == 'childproc_publisher_name'].value (per endpoint.event.procstart eventi) "childproc_publisher_name:" concatenato con il valore di childproc_publisher.0.name dal log non elaborato quando type è endpoint.event.procstart.
childproc_publisher.0.state security_result.detection_fields[?key == 'childproc_publisher_state'].value (per endpoint.event.procstart eventi) "childproc_publisher_state:" concatenato al valore di childproc_publisher.0.state dal log non elaborato quando type è endpoint.event.procstart.
childproc_reputation security_result.detection_fields[?key == 'childproc_reputation'].value (per endpoint.event.procstart eventi) Il valore del campo childproc_reputation del log non elaborato quando type è endpoint.event.procstart.
childproc_username target.user.userid (per endpoint.event.procstart eventi) Il valore del campo childproc_username del log non elaborato quando type è endpoint.event.procstart.
clientIp principal.ip, principal.asset.ip Il valore del campo clientIp del log non elaborato.
cmdline target.process.command_line (per gli eventi feed.query.hit.process e feed.storage.hit.process), additional.fields[?key == 'cmdline_*'].value.string_value (per gli eventi watchlist.storage.hit.process) Il valore del campo cmdline del log non elaborato quando type è feed.query.hit.process o feed.storage.hit.process. Per gli eventi watchlist.storage.hit.process, viene archiviato in additional.fields con la chiave "cmdline_*".
command_line target.process.command_line (per ingress.event.procstart eventi) Il valore del campo command_line del log non elaborato quando type è ingress.event.procstart.
comms_ip intermediary.ip Il valore del campo comms_ip del log non elaborato.
computer_name principal.hostname, principal.asset.hostname Il valore del campo computer_name del log non elaborato.
crossproc_api additional.fields[?key == 'crossproc_api'].value.string_value (per endpoint.event.apicall eventi) Il valore del campo crossproc_api del log non elaborato quando type è endpoint.event.apicall.
crossproc_guid additional.fields[?key == 'crossproc_guid'].value.string_value (per endpoint.event.crossproc eventi) Il valore del campo crossproc_guid del log non elaborato quando type è endpoint.event.crossproc.
crossproc_hash.0 additional.fields[?key == 'crossproc_md5'].value.string_value (per endpoint.event.crossproc eventi) Il primo elemento dell'array crossproc_hash del log non elaborato quando type è endpoint.event.crossproc.
crossproc_hash.1 additional.fields[?key == 'crossproc_sha256'].value.string_value (per endpoint.event.crossproc eventi) Il secondo elemento dell'array crossproc_hash del log non elaborato quando type è endpoint.event.crossproc.
crossproc_name target.process.file.full_path (per endpoint.event.crossproc eventi) Il valore del campo crossproc_name del log non elaborato quando type è endpoint.event.crossproc.
crossproc_publisher.0.name security_result.detection_fields[?key == 'crossproc_publisher_name'].value (per endpoint.event.crossproc eventi) "crossproc_publisher_name:" concatenato al valore di crossproc_publisher.0.name dal log non elaborato quando type è endpoint.event.crossproc.
crossproc_publisher.0.state security_result.detection_fields[?key == 'crossproc_publisher_state'].value (per endpoint.event.crossproc eventi) "crossproc_publisher_state:" concatenato al valore di crossproc_publisher.0.state dal log non elaborato quando type è endpoint.event.crossproc.
crossproc_reputation additional.fields[?key == 'crossproc_reputation'].value.string_value (per endpoint.event.crossproc eventi) Il valore del campo crossproc_reputation del log non elaborato quando type è endpoint.event.crossproc.
crossproc_target additional.fields[?key == 'crossproc_target'].value.string_value (per endpoint.event.crossproc eventi) Il valore del campo crossproc_target del log non elaborato quando type è endpoint.event.crossproc. Convertito in una stringa "true" o "false".

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.