Raccogliere i log del proxy Forcepoint

Supportato in:

Questo documento spiega come importare i log del proxy Forcepoint in Google Security Operations utilizzando Bindplane. Il parser pulisce innanzitutto il messaggio di log di input ed estrae le coppie chiave-valore utilizzando i pattern grok e le espressioni regolari. Successivamente, esegue il mapping dei campi estratti al modello Unified Data Model (UDM) in base a condizioni e valori di campo specifici, gestendo vari formati di log e casi limite per garantire una rappresentazione coerente dei dati.

Prima di iniziare

  • Assicurati di avere un'istanza Google Security Operations.
  • Assicurati di utilizzare Windows 2016 o versioni successive oppure un host Linux con systemd.
  • Se l'esecuzione avviene tramite un proxy, assicurati che le porte del firewall siano aperte.
  • Assicurati di disporre dell'accesso privilegiato a Forcepoint Proxy.

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

Configura l'agente Bindplane per importare Syslog e inviarli a Google SecOps

  1. Accedi al file di configurazione:

    1. Individua il file config.yaml. In genere, si trova nella directory /etc/bindplane-agent/ su Linux o nella directory di installazione su Windows.
    2. 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: FORCEPOINT_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 Forcepoint Web Security Suite

  1. Accedi alla console Forcepoint.
  2. Vai a Web > Impostazioni > Generale.
  3. Fai clic su Integrazione SIEM.
  4. Seleziona la casella di controllo Abilita l'integrazione SIEM per questo server delle norme.
  5. Fornisci i seguenti dettagli di configurazione:
    • Indirizzo IP o nome host: inserisci l'indirizzo IP dell'agente Bindplane.
    • Numero di porta: inserisci il numero di porta configurato nell'agente Bindplane, ad esempio 514.
    • Protocollo di trasporto: seleziona il protocollo UDP.
    • Formato SIEM: seleziona Syslog/CEF (Arcsight).
  6. Fai clic su Ok.
  7. Fai clic su Salva e implementa.

Tabella di mappatura UDM

Campo log Mappatura UDM Logic
azione security_result.summary Se action_msg non è vuoto, viene mappato a security_result.summary. In caso contrario, se l'azione non è vuota, viene mappata a security_result.summary. Altrimenti, se act non è vuoto, viene mappato a security_result.summary.
action_msg security_result.summary Se action_msg non è vuoto, viene mappato a security_result.summary. In caso contrario, se l'azione non è vuota, viene mappata a security_result.summary. Altrimenti, se act non è vuoto, viene mappato a security_result.summary.
app target.application Se destinationServiceName non è vuoto, viene mappato ad app_name. Altrimenti, se l'app non è vuota e non contiene http o HTTP, viene mappata a app_name. Infine, app_name viene mappato su target.application.
bytes_in network.received_bytes Se in non è vuoto, viene mappato a bytes_in. Infine, bytes_in viene mappato a network.received_bytes.
bytes_out network.sent_bytes Se out non è vuoto, viene mappato a bytes_out. Infine, bytes_out viene mappato a network.sent_bytes.
gatto security_result.category_details Se cat non è vuoto, viene mappato alla categoria. Infine, la categoria viene mappata a security_result.category_details.
cn1 security_result.detection_fields.value Se cn1 non è vuoto, viene mappato a security_result.detection_fields.value con la chiave Disposition Number.
ContentType target.file.mime_type Se contentType non è vuoto, viene mappato a ContentType. Infine, ContentType viene mappato a target.file.mime_type.
cs1 target_role.description cs1 è mappato a target_role.description.
cs2 security_result.category_details Se cs2 non è vuoto e non è 0, viene mappato a security_result.category_details con il prefisso Dynamic Category:.
cs3 target.file.mime_type cs3 è mappato a target.file.mime_type.
description metadata.description Se la descrizione non è vuota, viene mappata a metadata.description.
destinationServiceName target.application Se destinationServiceName non è vuoto, viene mappato ad app_name. Infine, app_name viene mappato su target.application.
deviceFacility metadata.product_event_type Se product_event e deviceFacility non sono vuoti, vengono concatenati con - e mappati a metadata.product_event_type. In caso contrario, product_event viene mappato a metadata.product_event_type.
disposizione security_result.detection_fields.value Se la disposizione non è vuota, viene mappata a security_result.detection_fields.value con la chiave Disposition Number.
dst target.ip Se dst non è vuoto e dvchost è vuoto, viene mappato a dst_ip. Infine, dst_ip viene mappato a target.ip.
dst_host target.hostname Se dst non è vuoto e dvchost è vuoto, viene mappato a dst_host. Infine, dst_host viene mappato a target.hostname.
dst_ip target.ip Se dst non è vuoto e dvchost è vuoto, viene mappato a dst_ip. Infine, dst_ip viene mappato a target.ip.
dst_port target.port Se dst non è vuoto e dvchost è vuoto, viene mappato a dst_port. Infine, dst_port viene mappato a target.port.
duration network.session_duration.seconds Se la durata non è vuota e non è 0, viene mappata a network.session_duration.seconds.
dvchost intermediary.ip Se dvchost non è vuoto, viene mappato a int_ip. Infine, int_ip viene mappato a intermediary.ip se è un indirizzo IP valido, altrimenti viene mappato a intermediary.hostname.
file_path target.file.full_path Se file_path non è vuoto, viene mappato a target.file.full_path.
host principal.ip Se l'host non è vuoto, viene mappato a src. Infine, src viene mappato a principal.ip.
http_method network.http.method Se requestMethod non è vuoto, viene mappato a http_method. In caso contrario, se il metodo non è vuoto, viene mappato a http_method. Infine, http_method viene mappato a network.http.method.
http_proxy_status_code network.http.response_code Se http_response è vuoto o 0 o - e http_proxy_status_code non è vuoto, viene mappato a network.http.response_code.
http_response network.http.response_code Se http_response non è vuoto, non è 0 e non è -, viene mappato su network.http.response_code.
http_user_agent network.http.user_agent Se http_user_agent non è vuoto e non è -, viene mappato a network.http.user_agent.
in network.received_bytes Se in non è vuoto, viene mappato a bytes_in. Infine, bytes_in viene mappato a network.received_bytes.
int_host intermediary.hostname Se int_ip non è vuoto e int_host non è vuoto e diverso da int_ip, viene mappato a intermediary.hostname.
int_ip intermediary.ip Se dvchost non è vuoto, viene mappato a int_ip. Infine, int_ip viene mappato a intermediary.ip se è un indirizzo IP valido, altrimenti viene mappato a intermediary.hostname.
livello target_role.name Se il livello non è vuoto e il ruolo è vuoto, viene mappato al ruolo. Infine, il ruolo viene mappato a target_role.name.
log_level security_result.severity Se severity è 1 o log_level contiene info o message contiene notice, security_result.severity è impostato su INFORMATIONAL. Se la gravità è 7, security_result.severity è impostato su HIGH.
loginID principal.user.userid Se loginID non è vuoto, viene mappato all'utente. Infine, se user non è vuoto e non è - e non contiene LDAP, viene mappato a principal.user.userid.
metodo network.http.method Se requestMethod non è vuoto, viene mappato a http_method. In caso contrario, se il metodo non è vuoto, viene mappato a http_method. Infine, http_method viene mappato a network.http.method.
NatRuleId security_result.detection_fields.value Se NatRuleId non è vuoto, viene mappato a security_result.detection_fields.value con la chiave NatRuleId.
troppo complessi per essere capiti? network.sent_bytes Se out non è vuoto, viene mappato a bytes_out. Infine, bytes_out viene mappato a network.sent_bytes.
pid target.process.pid Se pid non è vuoto, viene mappato a target.process.pid.
policy target_role.description Se Policy non è vuoto, viene mappato a policy. Se il criterio non è vuoto e non è -, viene mappato a target_role.description.
Norme target_role.description Se Policy non è vuoto, viene mappato a policy. Se il criterio non è vuoto e non è -, viene mappato a target_role.description.
product_event metadata.product_event_type Se il prodotto non è vuoto, viene mappato a product_event. Se product_event e deviceFacility non sono vuoti, vengono concatenati con - e mappati a metadata.product_event_type. In caso contrario, product_event viene mappato a metadata.product_event_type.
proxyStatus-code network.http.response_code Se http_response è vuoto o 0 o - e http_proxy_status_code è vuoto e proxyStatus-code non è vuoto, viene mappato a network.http.response_code.
refererUrl network.http.referral_url Se refererUrl non è vuoto e non è -, viene mappato a network.http.referral_url.
requestClientApplication network.http.user_agent Se requestMethod non è vuoto, viene mappato a http_user_agent. Infine, http_user_agent viene mappato a network.http.user_agent.
requestMethod network.http.method Se requestMethod non è vuoto, viene mappato a http_method. Infine, http_method viene mappato a network.http.method.
ruolo target_role.name Se il livello non è vuoto e il ruolo è vuoto, viene mappato al ruolo. Infine, il ruolo viene mappato a target_role.name.
RuleID security_result.rule_id Se RuleID non è vuoto, viene mappato a security_result.rule_id.
serverStatus-code network.http.response_code Se http_response è vuoto o 0 o - e http_proxy_status_code è vuoto e proxyStatus-code non è vuoto, viene mappato a network.http.response_code.
gravità security_result.severity Se severity è 1 o log_level contiene info o message contiene notice, security_result.severity è impostato su INFORMATIONAL. Se la gravità è 7, security_result.severity è impostato su HIGH.
spt principal.port Se spt non è vuoto, viene mappato a src_port. Infine, src_port viene mappato a principal.port.
src principal.ip Se src_host non è vuoto, viene mappato a source_ip_temp. Se source_ip_temp è un indirizzo IP valido e src è vuoto, viene mappato a src. Se l'host non è vuoto, viene mappato a src. Infine, src viene mappato a principal.ip.
src_host principal.hostname Se src_host non è vuoto, viene mappato a source_ip_temp. Se source_ip_temp non è un indirizzo IP valido, viene mappato a principal.hostname. Se source_ip_temp è un indirizzo IP valido e src è vuoto, viene mappato a src. Infine, src viene mappato a principal.ip.
src_port principal.port Se src_port non è vuoto, viene mappato a principal.port.
suser principal.user.userid Se loginID non è vuoto, viene mappato all'utente. Se suser non è vuoto, viene mappato a user. Infine, se user non è vuoto e non è - e non contiene LDAP, viene mappato a principal.user.userid.
url target.url Se l'URL non è vuoto, viene mappato su target.url.
utente principal.user.userid Se loginID non è vuoto, viene mappato all'utente. Se suser non è vuoto, viene mappato a user. In caso contrario, se usrName non è vuoto, viene mappato all'utente. Infine, se user non è vuoto e non è - e non contiene LDAP, viene mappato a principal.user.userid.
usrName principal.user.userid Se loginID non è vuoto, viene mappato all'utente. Se suser non è vuoto, viene mappato a user. In caso contrario, se usrName non è vuoto, viene mappato all'utente. Infine, se user non è vuoto e non è - e non contiene LDAP, viene mappato a principal.user.userid.
quando metadata.event_timestamp Se when non è vuoto, viene analizzato e mappato a metadata.event_timestamp.
metadata.log_type Il valore FORCEPOINT_WEBPROXY è hardcoded in metadata.log_type.
metadata.product_name Il valore Forcepoint Webproxy è hardcoded in metadata.product_name.
metadata.vendor_name Il valore Forcepoint è hardcoded in metadata.vendor_name.
network.application_protocol Se dst_port è 80, network.application_protocol è impostato su HTTP. Se dst_port è 443, network.application_protocol è impostato su HTTPS.
principal.user.group_identifiers Se user non è vuoto e non è - e contiene LDAP, la parte OU della stringa utente viene estratta e mappata a principal.user.group_identifiers.
principal.user.user_display_name Se user non è vuoto e non è - e contiene LDAP, la parte del nome utente della stringa utente viene estratta e mappata a principal.user.user_display_name.
security_result.action Se action_msg, action o act non sono vuoti, sec_action viene impostato su ALLOW o BLOCK in base ai relativi valori. Infine, sec_action viene mappato a security_result.action.
security_result.category_details Se cat non è vuoto, viene mappato alla categoria. Infine, la categoria viene mappata a security_result.category_details. Se cs2 non è vuoto e non è 0, viene mappato a security_result.category_details con il prefisso Dynamic Category:.
security_result.detection_fields.key Il valore Disposition Number è codificato in modo permanente in security_result.detection_fields.key durante la mappatura della disposizione o di cn1. Il valore NatRuleId è codificato in modo permanente in security_result.detection_fields.key durante la mappatura di NatRuleId. Il valore Category Number è codificato in modo permanente in security_result.detection_fields.key durante la mappatura di category_no.
security_result.severity Se severity è 1 o log_level contiene info o message contiene notice, security_result.severity è impostato su INFORMATIONAL. Se la gravità è 7, security_result.severity è impostato su HIGH.
target_role.description Se Policy non è vuoto, viene mappato a policy. Se il criterio non è vuoto e non è -, viene mappato a target_role.description.
target_role.name Se il livello non è vuoto e il ruolo è vuoto, viene mappato al ruolo. Infine, il ruolo viene mappato a target_role.name.
category_no security_result.detection_fields.value Se category_no non è vuoto, viene mappato a security_result.detection_fields.value con la chiave Category Number.

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