Raccogliere i log di McAfee Web Gateway

Supportato in:

Questo documento spiega come importare i log di McAfee Web Gateway in Google Security Operations utilizzando un agente Bindplane. Il parser estrae i campi dai log nei formati SYSLOG + KV (CEF), JSON e non elaborato. Utilizza i filtri grok e CSV per analizzare diverse strutture di log e normalizza i nomi dei campi. Successivamente, mappa i campi estratti allo schema Unified Data Model (UDM), gestendo vari casi limite e incoerenze dei dati per creare un output unificato.

Prima di iniziare

Assicurati di soddisfare i seguenti prerequisiti:

  • Istanza Google SecOps
  • Host Windows 2016 o versioni successive o Linux con systemd
  • Se l'esecuzione avviene tramite un proxy, le porte del firewall sono aperte
  • Accesso con privilegi a McAfee Web Gateway

Recuperare il file di autenticazione importazione di Google SecOps

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

Recuperare 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 di 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 aggiuntive per l'installazione

Per ulteriori opzioni di installazione, consulta la guida all'installazione.

Configura l'agente Bindplane per importare Syslog e inviarli 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:
        udplog:
            # Replace the port and IP address as required
            listen_address: `0.0.0.0:514`
    
    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: MCAFEE_WEBPROXY
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. Sostituisci la porta e l'indirizzo IP in base alle esigenze della tua infrastruttura.

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

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

Riavvia l'agente Bindplane per applicare le modifiche

  • Per riavviare l'agente Bindplane in Linux, esegui questo 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
    

Configura Syslog in McAfee Web Gateway

  1. Accedi all'UI web di McAfee Web Gateway.
  2. Vai a Norme > Set di regole.
  3. Fai clic su Gestore log, espandi il set di regole Predefinito e seleziona il set di regole nidificato CEF Syslog.
  4. Attiva la regola Send to Syslog (Invia a Syslog).
  5. Fai clic su Salva modifiche.
  6. Vai a Configurazione > Appliance > Gestore file di log > Impostazioni.
  7. Seleziona Scrivi audit log in syslog.
  8. Vai a Configurazione > Editor file.
  9. Seleziona rsyslog.conf nell'albero dei file.
  10. Modifica il file come segue:
    • Individua la riga (o simile): *.info;mail.none;authpriv.none;cron.none /var/log/messages.
    • Aggiungi un daemon in questa riga e inserisci un trattino (-) prima delle informazioni sul percorso: *.info;daemon.!=info;mail.none;authpriv.none;cron.none -/var/log/messages
  11. Aggiungi una nuova riga in fondo al file per inviare i messaggi informativi all'indirizzo IP dell'agente Bindplane.

    • Per syslog su UDP:

      daemon.info;auth.=info @<bindplane-server-ip>:<bindplane-port>
      
    • Per syslog su TCP:

      daemon.info;auth.=info @@<bindplane-server-ip>:<bindplane-port>
      

Tabella di mappatura UDM

Campo log Mappatura UDM Logic
application_name principal.application Mappato direttamente dal campo application_name in formato KV o user_agent_product in formato JSON.
auth_user principal.user.userid Mappato direttamente dal campo auth_user in formato KV.
block_reason security_result.summary Mappato direttamente dal campo block_reason nei formati JSON e CSV JSON o _block_reason in formato non elaborato o block_reason in formato KV.
block_res security_result.action Mappato dal campo block_res in formato KV. Se block_res è DENIED o contiene Block, l'azione è BLOCK. Se block_res è 0 o contiene Allow, l'azione è ALLOW. I valori speciali come 50, 51, 52, 53, 58, 59, 81, 80, 82, 83, 84, 110, 111 vengono utilizzati per determinare security_result.category.
bytes_from_client network.sent_bytes Mappato direttamente dal campo bytes_from_client in formato KV o sr_bytes in formato non elaborato oppure client_to_server_bytes in formato JSON e CSV JSON.
bytes_to_client network.received_bytes Mappato direttamente dal campo bytes_to_client in formato KV o rs_bytes in formato non elaborato oppure server_to_client_bytes in formato JSON e CSV JSON.
categories security_result.category_details Mappato direttamente dal campo categories in formato KV o _category in formato non elaborato oppure category in formato JSON e CSV JSON.
client_ip principal.ip, intermediary.ip Mappato direttamente dal campo client_ip in formato JSON.
clientIP principal.ip Mappato direttamente dal campo clientIP in formato CEF.
csmethod network.http.method Mappato direttamente dal campo csmethod in formato non elaborato.
day metadata.event_timestamp Parte del timestamp, estratta dal campo time_stamp in formato KV.
destination_ip target.ip Mappato direttamente dal campo destination_ip in formato JSON.
destination_port target.port Mappato direttamente dal campo destination_port in formato JSON.
domain target.hostname, target.url Mappato direttamente dal campo domain in formato non elaborato. Utilizzato per costruire target.url se è presente uri.
header intermediary.hostname Estratto dall'inizio del messaggio di log. Utilizzato per estrarre intermediary.hostname.
host target.hostname Mappato direttamente dal campo host in formato KV.
hostname principal.hostname Mappato direttamente dal campo hostname in formato JSON.
hour metadata.event_timestamp Parte del timestamp, estratta dal campo time_stamp in formato KV.
http_action network.http.method Mappato direttamente dal campo http_action in formato JSON.
http_status_code network.http.response_code Mappato direttamente dal campo http_status_code nei formati JSON e CSV JSON o status_code nei formati non elaborati e KV.
kv_entry.application_name principal.application Mappato direttamente dal campo application_name all'interno della voce KV.
kv_entry.auth_user principal.user.userid Mappato direttamente dal campo auth_user all'interno della voce KV.
kv_entry.block_reason security_result.summary Mappato direttamente dal campo block_reason all'interno della voce KV.
kv_entry.block_res security_result.action, security_result.category Mappato dal campo block_res all'interno della voce KV. La logica per determinare l'azione e la categoria è la stessa del campo block_res di primo livello.
kv_entry.bytes_from_client network.sent_bytes Mappato direttamente dal campo bytes_from_client all'interno della voce KV.
kv_entry.bytes_to_client network.received_bytes Mappato direttamente dal campo bytes_to_client all'interno della voce KV.
kv_entry.categories security_result.category_details Mappato direttamente dal campo categories all'interno della voce KV.
kv_entry.host target.hostname Mappato direttamente dal campo host all'interno della voce KV.
kv_entry.method network.http.method Mappato direttamente dal campo method all'interno della voce KV.
kv_entry.rep_level security_result.severity_details Mappato direttamente dal campo rep_level all'interno della voce KV.
kv_entry.server_ip target.ip Mappato direttamente dal campo server_ip all'interno della voce KV.
kv_entry.status_code network.http.response_code Mappato direttamente dal campo status_code all'interno della voce KV.
kv_entry.time_stamp metadata.event_timestamp Mappato direttamente dal campo time_stamp all'interno della voce KV.
kv_entry.url target.url Mappato direttamente dal campo url all'interno della voce KV.
kv_entry.url_port target.port Mappato direttamente dal campo url_port all'interno della voce KV.
kv_entry.user_agent network.http.parsed_user_agent Mappato direttamente dal campo user_agent all'interno della voce KV, quindi analizzato in un oggetto strutturato.
last_rule security_result.rule_name Mappato direttamente dal campo last_rule in formato JSON.
loc principal.location.country_or_region Mappato direttamente dal campo loc estratto da tgt_ip_or_location.
location principal.location.country_or_region Mappato direttamente dal campo location in formato JSON.
log.file.path principal.process.file.full_path Mappato direttamente dal campo log.file.path in formato JSON.
message Varie Il messaggio di log non elaborato. Analizzato in modo diverso a seconda del formato (raw, JSON, KV, CEF).
method network.http.method Mappato direttamente dal campo method nei formati KV e non elaborati o http_action in formato JSON o derivato dai dati CEF. Se il valore è uno tra GET, POST, HEAD, OPTIONS, PUT, CONNECT, metadata.event_type è impostato su NETWORK_HTTP. Se il valore è - o CERTVERIFY, metadata.event_type è impostato su NETWORK_CONNECTION.
mins metadata.event_timestamp Parte del timestamp, estratta dal campo time_stamp in formato KV.
month metadata.event_timestamp Parte del timestamp, estratta dal campo time_stamp in formato KV o dal campo rt in formato CEF.
monthday metadata.event_timestamp Parte del timestamp, estratta dall'inizio del messaggio di log.
protocol network.application_protocol Mappato direttamente dal campo protocol in formato non elaborato o uri_scheme in formato JSON oppure derivato dal campo url in formato KV.
query target.url Mappato direttamente dal campo query in formato non elaborato. Aggiunto al campo url.
rep_level security_result.severity_details Mappato direttamente dal campo rep_level in formato KV o reputation in formato JSON o _risk in formato non elaborato. Utilizzato per determinare security_result.severity.
request target.url Mappato direttamente dal campo request in formato CEF.
requestClientApplication network.http.user_agent Mappato direttamente dal campo requestClientApplication in formato CEF.
requestContext network.http.referral_url Mappato direttamente dal campo requestContext in formato CEF.
requestMethod network.http.method Mappato direttamente dal campo requestMethod in formato CEF.
requested_host target.url Mappato direttamente dal campo requested_host in formato JSON. Utilizzato per creare target.url se è presente anche requested_path.
requested_path target.url Mappato direttamente dal campo requested_path in formato JSON. Aggiunto a requested_host per formare target.url.
request_timestamp metadata.event_timestamp Mappato direttamente dal campo request_timestamp in formato JSON.
result security_result.action, security_result.category Mappato direttamente dal campo result nei formati JSON e CSV JSON o block_res nel formato KV. Utilizzato per determinare security_result.action e security_result.category.
rt metadata.event_timestamp Mappato direttamente dal campo rt in formato CEF.
secs metadata.event_timestamp Parte del timestamp, estratta dal campo time_stamp in formato KV.
server_ip target.ip Mappato direttamente dal campo server_ip in formato KV.
source_ip principal.ip Mappato direttamente dal campo source_ip nei formati JSON, CSV JSON, non elaborato e KV o src nel formato CEF o src_ip nel formato non elaborato.
src principal.ip Mappato direttamente dal campo src in formato CEF.
status_code network.http.response_code Mappato direttamente dal campo status_code in formato non elaborato.
summary security_result.summary Mappato direttamente dal campo summary in formato CSV o block_reason in formato JSON.
system principal.platform Mappato direttamente dal campo system in formato JSON. Convertito in maiuscolo.
target_ip target.ip Mappato direttamente dal campo target_ip in formato non elaborato o dst in formato CEF.
tgtport target.port Mappato direttamente dal campo tgtport in formato non elaborato.
time metadata.event_timestamp Parte del timestamp, estratta dall'inizio del messaggio di log, o il campo rt in formato CEF o il campo time_stamp in formato KV.
timestamp metadata.event_timestamp Mappato direttamente dal campo @timestamp in formato JSON.
timezone metadata.event_timestamp Parte del timestamp, estratta dal campo time_stamp in formato KV.
uri target.url Mappato direttamente dal campo uri in formato non elaborato. Utilizzato per costruire target.url.
uri_scheme network.application_protocol Mappato direttamente dal campo uri_scheme in formato JSON. Convertito in maiuscolo.
url target.url Mappato direttamente dal campo url nei formati non elaborato, KV e JSON oppure creato da domain, uri e query in formato non elaborato oppure da requested_host e requested_path in formato JSON oppure da request in formato CEF.
url_port target.port Mappato direttamente dal campo url_port in formato KV.
user principal.user.userid Mappato direttamente dal campo user in formato JSON o username in formato JSON o auth_user in formato KV o suser in formato non elaborato.
user_agent network.http.parsed_user_agent Mappato direttamente dal campo user_agent nei formati non elaborato e KV o user_agent_comment in formato JSON o requestClientApplication in formato CEF o costruito da agent.type e agent.version in formato JSON. Analizzato in un oggetto strutturato.
user_agent_comment network.http.parsed_user_agent Mappato direttamente dal campo user_agent_comment in formato JSON.
user_agent_product principal.application Mappato direttamente dal campo user_agent_product in formato JSON.
username principal.user.userid Mappato direttamente dal campo username in formato JSON.
year metadata.event_timestamp Parte del timestamp, estratta dal campo time_stamp in formato KV o dal campo rt in formato CEF.
N/A metadata.event_type Determinato dal parser in base al campo method. Può essere NETWORK_HTTP, NETWORK_CONNECTION, GENERIC_EVENT o STATUS_UPDATE.
N/A metadata.log_type Codificato in modo permanente su MCAFEE_WEBPROXY.
N/A metadata.product_name Codificato in modo permanente su MCAFEE_WEBPROXY.
N/A metadata.vendor_name Codificato in modo permanente su MCAFEE.
N/A network.direction Codificato in modo permanente su OUTBOUND.
N/A security_result.action Determinato dal parser in base ai campi block_reason o result. Può essere ALLOW o BLOCK.
N/A security_result.category Determinato dal parser in base al campo result. Può essere NETWORK_CATEGORIZED_CONTENT, NETWORK_DENIAL_OF_SERVICE, MAIL_SPAM, AUTH_VIOLATION, SOFTWARE_MALICIOUS, NETWORK_SUSPICIOUS o NETWORK_MALICIOUS.
N/A security_result.severity Determinato dal parser in base al campo risk. Può essere LOW, MEDIUM o HIGH.

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