Raccogliere i log di Carbon Black App Control

Supportato in:

Questo documento spiega come raccogliere i log di Carbon Black App Control. Il parser supporta i formati CEF e JSON. Innanzitutto tenta di analizzare l'input come JSON. Se non riesce, tratta l'input come CEF, esegue sostituzioni di testo, estrae i campi CEF, li mappa a UDM e imposta il tipo di evento su "GENERIC_EVENT". In caso contrario, utilizza un file include di mappatura UDM specifico JSON separato.

Prima di iniziare

  • Assicurati di avere un'istanza Google Security Operations.
  • Assicurati di utilizzare Windows 2016 o versioni successive o un host Linux con systemd.
  • Se il servizio è in esecuzione dietro un proxy, assicurati che le porte del firewall siano aperte.
  • Server Carbon Black App Control (CB Protection) (consigliata la versione 8.x o successive).
  • Assicurati di disporre dell'accesso privilegiato a Carbon Black App Control.

Recupera il file di autenticazione di importazione di Google SecOps

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Agenti di raccolta.
  3. Scarica il file di autenticazione dell'importazione. Salva il file in modo sicuro sul sistema in cui verrà installato Bindplane.

Ottenere l'ID cliente Google SecOps

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Profilo.
  3. Copia e salva l'ID cliente dalla sezione Dettagli dell'organizzazione.

Installa l'agente Bindplane

Installazione di Windows

  1. Apri il prompt dei comandi o PowerShell come amministratore.
  2. Esegui questo comando:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Installazione di Linux

  1. Apri un terminale con privilegi root o sudo.
  2. Esegui questo comando:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

Risorse di installazione aggiuntive

Configurare l'agente Bindplane per importare Syslog e inviarlo a Google SecOps

  1. Accedi al file di configurazione:

    • Individua il file config.yaml. In genere si trova nella directory /etc/bindplane-agent/ su Linux o nella directory di installazione su Windows.
    • Apri il file utilizzando un editor di testo (ad esempio nano, vi o Blocco note).
  2. Modifica il file config.yaml come segue:

    receivers:
        tcplog:
            # Replace the port and IP address as required
            listen_address: "0.0.0.0:11592"
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the path to the credentials file you downloaded in Step 1
            creds: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # Add optional ingestion labels for better organization
            ingestion_labels:
                log_type: JSON
                namespace: cb_app_control
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - tcplog
                exporters:
                    - chronicle/chronicle_w_labels
    
    
  3. Sostituisci la porta e l'indirizzo IP come richiesto nella tua infrastruttura.

  4. Sostituisci <customer_id> con l'ID cliente effettivo.

  5. Aggiorna /path/to/ingestion-authentication-file.json con il percorso in cui è stato salvato il file di autenticazione nella sezione Ottenere il file di autenticazione per l'importazione di Google SecOps.

Riavvia Bindplane Agent per applicare le modifiche

  • Per riavviare Bindplane Agent in Linux, esegui il seguente comando:

    sudo systemctl restart bindplane-agent
    
  • Per riavviare l'agente Bindplane in Windows, puoi utilizzare la console Servizi o inserire il seguente comando:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configurare il controllo app CB per inviare log Syslog

  1. Accedi alla console di CB App Control con un account amministratore.
  2. Vai ad Amministrazione > Configurazione di sistema > Log esterni.
  3. Nella sezione Registrazione eventi esterni:
    • Attiva il logging Syslog: seleziona la casella di controllo Syslog Enabled (Syslog abilitato).
    • Indirizzo server: <Bindplane Server IP>.
    • Porta: <Bindplane Server PORT>.
    • Protocollo: seleziona TCP.
    • Formato Syslog: seleziona JSON.
  4. In Opzioni di registrazione eventi, seleziona i tipi di log da inviare:
    • Violazioni delle norme
    • Eventi di monitoraggio dell'integrità dei file (FIM)
    • Eventi di autenticazione utente
    • Dati di Threat Intelligence
  5. Fai clic su Salva.

Tabella di mappatura UDM

Campo log Mappatura UDM Logica
ABId principal.asset.asset_id Il valore ABId del log JSON viene utilizzato come parte dell'ID risorsa nel formato PRODUCT_SPECIFIC_ID:{ABId}-{Bit9Server}.
Bit9Server principal.asset.asset_id Utilizzato come parte dell'ID risorsa del principale, combinato con ABId. Utilizzato anche per creare il campo metadata.url_back_to_product.
CommandLine about.process.command_line Mappatura diretta.
EventType metadata.product_event_type Mappato con il EventTypeId corrispondente tra parentesi quadre (ad es. "[5] - Discovery").
EventTypeId metadata.product_event_type Utilizzato con EventType per compilare metadata.product_event_type.
EventSubType metadata.description Viene aggiunto al campo metadata.description.
EventSubTypeId metadata.description Non mappato esplicitamente, ma potenzialmente contribuisce alla descrizione in base alla logica interna dell'analizzatore.
externalId metadata.product_log_id Mappatura diretta.
FileHash about.file.sha256 Mappatura diretta.
FileName additional.fields (con chiave "FileName") Aggiunto come campo aggiuntivo. Utilizzato anche come parte delle informazioni del file in metadata.description per alcuni eventi.
FilePath about.file.full_path Mappatura diretta.
FileThreat additional.fields (con chiave "fileThreat") Aggiunto come campo aggiuntivo.
FileTrust additional.fields (con chiave "fileTrust") Aggiunto come campo aggiuntivo.
HostId principal.asset.asset_id Utilizzato per creare l'URL che rimanda al prodotto in metadata.url_back_to_product.
HostName target.hostname Mappatura diretta.
HostIP target.ip Mappatura diretta.
Message metadata.description Mappatura diretta.
PathName about.file.full_path Mappatura diretta.
Platform target.platform Mappato al valore enum WINDOWS.
Policy additional.fields (con chiave "Criterio") Aggiunto come campo aggiuntivo.
PolicyId additional.fields (con chiave "PolicyId") Aggiunto come campo aggiuntivo.
ProcessKey additional.fields (con chiave "ProcessKey") Aggiunto come campo aggiuntivo.
ProcessPath about.process.command_line Mappatura diretta.
ProcessPathName about.process.command_line Mappatura diretta.
ProcessThreat additional.fields (con chiave "ProcessThreat") Aggiunto come campo aggiuntivo.
ProcessTrust additional.fields (con chiave "ProcessTrust") Aggiunto come campo aggiuntivo.
RuleName additional.fields (con chiave "ruleName") Aggiunto come campo aggiuntivo.
Timestamp metadata.event_timestamp Mappatura diretta.
UserName target.user.user_display_name Mappatura diretta.
UserSid principal.user.userid Mappatura diretta.
agent.ephemeral_id observer.labels (con chiave "ephemeral_id") Aggiunto come etichetta osservatore.
agent.name principal.hostname, observer.hostname, observer.user.userid Mappato a più campi.
agent.type observer.application Mappatura diretta.
agent.version metadata.product_version Mappato direttamente per i log JSON. Per i log CEF, estratti dal messaggio CEF.
cat security_result.category_details Mappatura diretta.
cs1 additional.fields (con chiave "rootHash" o un'altra cs1Label) Aggiunta come campo aggiuntivo con la chiave definita da cs1Label.
cs1Label additional.fields Utilizzato come chiave per il campo aggiuntivo compilato da cs1.
cs2 additional.fields (con la chiave "installerFilename" o un'altra cs2Label) Aggiunta come campo aggiuntivo con la chiave definita da cs2Label.
cs2Label additional.fields Utilizzato come chiave per il campo aggiuntivo compilato da cs2.
cs3 additional.fields (con chiave "Policy" o un'altra cs3Label) Aggiunta come campo aggiuntivo con la chiave definita da cs3Label.
cs3Label additional.fields Utilizzato come chiave per il campo aggiuntivo compilato da cs3.
cs5 additional.fields (con la chiave "ruleName" o un'altra cs5Label) Aggiunta come campo aggiuntivo con la chiave definita da cs5Label.
cs5Label additional.fields Utilizzato come chiave per il campo aggiuntivo compilato da cs5.
cfp1 additional.fields (con chiave "fileTrust" o altra cfp1Label) Aggiunta come campo aggiuntivo con la chiave definita da cfp1Label.
cfp1Label additional.fields Utilizzato come chiave per il campo aggiuntivo compilato da cfp1.
cfp2 additional.fields (con chiave "processTrust" o altra cfp2Label) Aggiunta come campo aggiuntivo con la chiave definita da cfp2Label.
cfp2Label additional.fields Utilizzato come chiave per il campo aggiuntivo compilato da cfp2.
deviceProcessName about.process.command_line Mappatura diretta.
dhost target.hostname Mappatura diretta.
dst target.ip Mappatura diretta.
duser target.user.user_display_name Mappatura diretta.
dvchost about.hostname Mappatura diretta.
eventId additional.fields (con chiave "eventId") Aggiunto come campo aggiuntivo.
fileHash about.file.sha256 Mappatura diretta.
flexString1 additional.fields (con chiave "fileThreat" o un'altra flexString1Label) Aggiunta come campo aggiuntivo con la chiave definita da flexString1Label.
flexString1Label additional.fields Utilizzato come chiave per il campo aggiuntivo compilato da flexString1.
flexString2 additional.fields (con chiave "processThreat" o un'altra flexString2Label) Aggiunta come campo aggiuntivo con la chiave definita da flexString2Label.
flexString2Label additional.fields Utilizzato come chiave per il campo aggiuntivo compilato da flexString2.
fname additional.fields (con chiave "nome") Aggiunto come campo aggiuntivo. Utilizzato anche come parte delle informazioni del file in metadata.description per alcuni eventi.
host.architecture target.asset.hardware.cpu_platform Mappatura diretta.
host.hostname target.asset.asset_id Utilizzato come parte dell'ID risorsa di destinazione ("ID host: {host.hostname}"). È stato mappato anche a target.hostname.
host.id target.asset.asset_id Utilizzato come parte dell'ID risorsa di destinazione ("ID host: {host.id}").
host.ip target.asset.ip Mappatura diretta.
host.mac target.mac Mappatura diretta.
host.name target.hostname Mappatura diretta.
host.os.build target.platform_patch_level Mappatura diretta.
host.os.kernel target.platform_patch_level Aggiunto al target.platform_patch_level.
host.os.platform target.platform Mappato al valore enum WINDOWS.
host.os.type target.platform Mappato al valore enum WINDOWS.
host.os.version target.platform_version Mappatura diretta.
log.file.path target.file.full_path Mappatura diretta.
metadata.event_type metadata.event_type Imposta su "GENERIC_EVENT" per i log CEF e su "SYSTEM_AUDIT_LOG_UNCATEGORIZED" per i log JSON.
metadata.log_type metadata.log_type Impostato su "CB_EDR".
metadata.product_log_id metadata.product_log_id Mappato da externalId per i log CEF. Non applicabile per i log JSON.
metadata.product_name metadata.product_name Imposta su "Controllo app" per i log CEF e su "CB_APP_CONTROL" per i log JSON.
metadata.product_version metadata.product_version Estratto dal messaggio CEF per i log CEF. Mappato da agent.version per i log JSON.
metadata.vendor_name metadata.vendor_name Impostato su "Carbon Black".
msg metadata.description, additional.fields Utilizzato per compilare metadata.description e potenzialmente altri campi in base alla logica dell'analizzatore.
sproc principal.process.command_line Mappatura diretta.
metadata.url_back_to_product metadata.url_back_to_product Costruito utilizzando i campi Bit9Server e HostId per i log JSON. Non applicabile ai log CEF.
security_result.severity security_result.severity Imposta su MEDIUM.
timestamp events.timestamp Mappato direttamente per i log JSON. Per i log CEF, la logica dell'analizzatore determina il timestamp in base al campo rt del log non elaborato, se disponibile, o a collection_time se rt non è presente.

Modifiche

2022-07-01

  • Miglioramento
  • È stato mappato il campo "agent.type" a "observer.application".
  • È stato mappato il campo "agent.name" a "observer.user.userid".
  • È stato mappato il campo "host.name" a "observer.hostname".
  • Ho mappato i campi "agent.type" e "agent.name" a "observer.asset_id".
  • È stato mappato il campo "agent.ephemeral_id" a "observer.labels".
  • È stato mappato il campo "host.os.platform" a "target.platform".
  • È stato mappato il campo "host.os.version" a "target.platform_version".
  • È stato mappato il campo "host.os.kernel" a "target.platform_patch_level".
  • È stato mappato il campo "cloud.instance.id" a "principal.resource.product_object_id".
  • È stato mappato il campo "cloud.instance.name" a "principal.resource.name".
  • È stato mappato il campo "host.mac" a "target.mac".
  • È stato mappato il campo "host.ip" a "target.asset.ip".
  • È stato mappato il campo "host.id" a "target.asset.asset_id".
  • È stato mappato il campo "host.architecture" a "target.asset.hardware".
  • È stato mappato il campo "message.UserSID" a "principal.user.userid".
  • È stato mappato il campo "message.ProcessPath" a "about.process.command_line".
  • È stato mappato il campo "cloud.machine.type" e "cloud.provider" a "principal.resource.attribute.labels".
  • Sono stati aggiunti controlli condizionali per "message.Bit9Server" e "message.HostId" mappati a "metadata.url_back_to_product".

2022-06-22

  • Correzione di bug
  • hostId mappato a principal.asset_id
  • Combinazione di Bit9Server e HostId mappata a metadata.url_back_to_product

2022-05-19

  • Correzione di bug
  • log richiesti analizzati nel bug
  • Log degli errori dell'API analizzata

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