Raccogliere i log di Attivo Networks BOTsink

Supportato in:

Questo documento spiega come importare i log di Attivo Networks BOTsink in Google Security Operations utilizzando Bindplane. Il parser tenta innanzitutto di analizzare i messaggi di log in entrata come JSON. Se non riesce, utilizza una serie di pattern Grok per estrarre i campi dai messaggi formattati in Common Event Format (CEF), gestendo vari formati ed eventuali errori. Infine, esegue il mapping dei campi estratti allo schema Unified Data Model (UDM), arricchendo i dati con un contesto aggiuntivo e standardizzando l'output.

Prima di iniziare

Assicurati di soddisfare i seguenti prerequisiti:

Recuperare il file di autenticazione per l'importazione di Google SecOps

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

Recuperare l'ID cliente di Google SecOps

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

Installare 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 di installazione aggiuntive

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

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 indicato di seguito:

    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: 'ATTIVO'
                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 Recuperare il file di autenticazione per l'importazione di Google SecOps.

Riavviare 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 questo comando:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configurare Syslog in Attivo Networks BOTsink

  1. Accedi all'interfaccia utente web di Attivo Networks.
  2. Vai a Amministrazione > Gestione > Syslog.
  3. Fai clic su Aggiungi per creare un nuovo profilo Syslog.
  4. Fornisci un nome descrittivo per il profilo.
  5. In Inoltro eventi, seleziona Attivato.
  6. Fornisci la configurazione degli standard BOTsink:
    • Molto basso: seleziona Informativo.
    • Basso: seleziona Avviso.
    • Medio: seleziona Avviso.
    • Alto: seleziona Critico.
    • Molto alto: seleziona Emergenza.
    • Per Formato messaggio: seleziona CEF.
  7. Seleziona Aggiungi nuova connessione nella sezione del profilo.
  8. Fornisci i seguenti dettagli di configurazione:
    • Nome server: inserisci un nome descrittivo che ti aiuti a identificare Google SecOps.
    • Nome profilo: seleziona il profilo Syslog CEF che hai creato in precedenza.
    • Indirizzo IP: inserisci l'indirizzo IP dell'agente Bindplane.
    • Porta: inserisci il numero di porta dell'agente Bindplane (ad esempio, inserisci 514 per UDP).
    • Protocollo: seleziona UDP.
  9. Fai clic su Test connessione e verifica di ricevere i dati di test nell'agente Bindplane e in Google SecOps.
  10. Fai clic su OK.

Tabella di mapping UDM

Campo log Mapping UDM Funzione logica
alertID read_only_udm.metadata.product_log_id Il valore viene recuperato dal campo alertID.
cat read_only_udm.security_result.action_details Il valore viene recuperato dal campo cat.
CEFDeviceProduct read_only_udm.metadata.product_name Il valore viene recuperato dal campo CEFDeviceProduct.
CEFDeviceVendor read_only_udm.metadata.vendor_name Il valore viene recuperato dal campo CEFDeviceVendor.
CEFDeviceVersion read_only_udm.metadata.product_version Il valore viene recuperato dal campo CEFDeviceVersion.
CEFName Utilizzato per estrarre i campi operation, result, module e descrip.
CEFSeverity read_only_udm.security_result.severity Eseguito il mapping dal campo CEFSeverity in base a queste regole:
- error o warning: HIGH
- (?i)critical: CRITICAL
- (?i)notice o (?i)MEDIUM: MEDIUM
- information, info, Very-Low, o Low: LOW
CEFSignatureID read_only_udm.security_result.rule_id Il valore viene recuperato dal campo CEFSignatureID.
cef_version read_only_udm.additional.fields.value.string_value Il valore viene recuperato dal campo cef_version.
read_only_udm.additional.fields.key Valore statico: CEFVersion
descrip read_only_udm.metadata.description Il valore viene recuperato dal campo descrip.
dest_domain read_only_udm.target.domain.name Il valore viene recuperato dal campo dest_domain.
dhost read_only_udm.target.hostname Il valore viene recuperato dal campo dhost se service è NETBIOS.
dIPDomain read_only_udm.target.domain.name Il valore viene recuperato dal campo dIPDomain se dest_domain è vuoto.
dst read_only_udm.target.ip Il valore viene recuperato dal campo dst.
dst_os read_only_udm.target.asset.platform_software.platform_version Il valore viene recuperato dal campo dst_os.
dpt read_only_udm.target.port Il valore viene recuperato dal campo dpt e convertito in un numero intero.
dvc read_only_udm.principal.hostname, read_only_udm.target.ip, read_only_udm.intermediary.hostname La logica dipende dai valori dei campi dvc, src e sip. Può essere mappato al nome host principale, all'IP di destinazione o al nome host intermedio in base alla disponibilità e al formato di questi campi.
intf read_only_udm.additional.fields.value.string_value Il valore viene recuperato dal campo intf e convertito in una stringa.
read_only_udm.additional.fields.key Valore statico: intf
mitreTacticName read_only_udm.security_result.rule_name Il valore viene recuperato dal campo mitreTacticName.
mitreTechniqueId read_only_udm.security_result.detection_fields.value Il valore viene recuperato dal campo mitreTechniqueId.
read_only_udm.security_result.detection_fields.key Valore statico: Technique name
mitreTechniqueName read_only_udm.security_result.detection_fields.value Il valore viene recuperato dal campo mitreTechniqueName.
read_only_udm.security_result.detection_fields.key Valore statico: Technique name
module read_only_udm.additional.fields.value.string_value Il valore viene recuperato dal campo module.
read_only_udm.additional.fields.key Valore statico: module
msg read_only_udm.metadata.description Il valore viene recuperato dal campo msg dopo aver estratto il campo protocol.
operation read_only_udm.additional.fields.value.string_value Il valore viene recuperato dal campo operation.
read_only_udm.additional.fields.key Valore statico: operation
protocol read_only_udm.network.ip_protocol Il valore viene recuperato dal campo protocol se è TCP o UDP.
result read_only_udm.security_result.action Eseguito il mapping dal campo result in base a queste regole:
- (?i)SUCCESS o (?i)ALLOW: ALLOW
- CHALLENGE: CHALLENGE
- FAILURE, DENY, SKIPPED, o RATE_LIMIT: BLOCK
rt read_only_udm.metadata.event_timestamp Il valore viene recuperato dal campo rt e analizzato come timestamp Unix in millisecondi.
shost read_only_udm.principal.hostname Il valore viene recuperato dal campo shost.
sip read_only_udm.principal.hostname, read_only_udm.principal.ip La logica dipende dai valori dei campi dvc e sip. Può essere mappato al nome host principale o all'IP in base alla disponibilità e al formato di questi campi.
smac read_only_udm.principal.mac Il valore viene recuperato dal campo smac.
source read_only_udm.principal.hostname Il valore viene recuperato dal campo source.
source_domain read_only_udm.principal.domain.name Il valore viene recuperato dal campo source_domain.
src read_only_udm.principal.ip Il valore viene recuperato dal campo src.
subscriberName read_only_udm.additional.fields.value.string_value Il valore viene recuperato dal campo subscriberName.
read_only_udm.additional.fields.key Valore statico: Subscriber Name
suser read_only_udm.principal.user.userid, read_only_udm.principal.user.user_display_name Il valore viene recuperato dal campo suser dopo aver estratto il nome utente.
threshold read_only_udm.additional.fields.value.string_value Il valore viene recuperato dal campo threshold.
read_only_udm.additional.fields.key Valore statico: arp-scan-threshold
usrname read_only_udm.principal.user.email_addresses Il valore viene recuperato dal campo usrname se non è vuoto o N/A.
vlan read_only_udm.principal.labels.value Il valore viene recuperato dal campo vlan.
read_only_udm.principal.labels.key Valore statico: vlan
read_only_udm.metadata.event_type Determinato in base ai valori dei campi src, smac, shost, dst, protocol, dvc e service. Può essere uno dei seguenti: SCAN_NETWORK, NETWORK_CONNECTION, NETWORK_UNCATEGORIZED, STATUS_UPDATE o GENERIC_EVENT.

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