Raccogliere i log di Attivo Networks BOTsink
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, mappa i campi estratti allo schema Unified Data Model (UDM), arricchendo i dati con contesto aggiuntivo e standardizzando l'output.
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Istanza Google SecOps
- Windows 2016 o versioni successive oppure un host Linux con
systemd
- Se l'esecuzione avviene tramite un proxy, le porte del firewall sono aperte
- Accesso privilegiato ad Attivo Networks
Recuperare il file di autenticazione importazione di Google SecOps
- Accedi alla console Google SecOps.
- Vai a Impostazioni SIEM > Agenti di raccolta.
- 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
- Accedi alla console Google SecOps.
- Vai a Impostazioni SIEM > Profilo.
- Copia e salva l'ID cliente dalla sezione Dettagli dell'organizzazione.
Installa l'agente Bindplane
Installazione di Windows
- Apri il prompt dei comandi o PowerShell come amministratore.
Esegui questo comando:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Installazione di Linux
- Apri un terminale con privilegi di root o sudo.
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
- 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).
- Individua il file
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: 'ATTIVO' raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels
Sostituisci la porta e l'indirizzo IP in base alle esigenze della tua infrastruttura.
Sostituisci
<customer_id>
con l'ID cliente effettivo.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
Configurare Syslog in Attivo Networks BOTsink
- Accedi all'interfaccia utente web di Attiva Networks.
- Vai ad Amministrazione > Gestione > Syslog.
- Fai clic su Aggiungi per creare un nuovo profilo Syslog.
- Fornisci un nome descrittivo per il profilo.
- In Inoltro eventi, seleziona Attivato.
- Fornisci la configurazione degli standard BOTsink:
- Molto bassa: seleziona Informativa.
- Basso: seleziona Avviso.
- Mezzo: seleziona Avviso.
- Alto: seleziona Critica.
- Molto alta: seleziona Emergenza.
- Per Formato messaggio, seleziona CEF.
- Seleziona Aggiungi nuova connessione nella sezione del profilo.
- 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.
- Fai clic su Prova connessione e verifica di ricevere i dati di test nell'agente Bindplane e in Google SecOps.
- Fai clic su OK.
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logic |
---|---|---|
alertID | read_only_udm.metadata.product_log_id | Il valore viene estratto dal campo alertID . |
gatto | read_only_udm.security_result.action_details | Il valore viene estratto dal campo cat . |
CEFDeviceProduct | read_only_udm.metadata.product_name | Il valore viene estratto dal campo CEFDeviceProduct . |
CEFDeviceVendor | read_only_udm.metadata.vendor_name | Il valore viene estratto dal campo CEFDeviceVendor . |
CEFDeviceVersion | read_only_udm.metadata.product_version | Il valore viene estratto dal campo CEFDeviceVersion . |
CEFName | Utilizzato per estrarre i campi operation , result , module e descrip . |
|
CEFSeverity | read_only_udm.security_result.severity | Mappato 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 estratto dal campo CEFSignatureID . |
cef_version | read_only_udm.additional.fields.value.string_value | Il valore viene estratto dal campo cef_version . |
read_only_udm.additional.fields.key | Valore statico: CEFVersion |
|
descrip | read_only_udm.metadata.description | Il valore viene estratto dal campo descrip . |
dest_domain | read_only_udm.target.domain.name | Il valore viene estratto dal campo dest_domain . |
dhost | read_only_udm.target.hostname | Il valore viene estratto dal campo dhost se service è NETBIOS . |
dIPDomain | read_only_udm.target.domain.name | Il valore viene estratto dal campo dIPDomain se dest_domain è vuoto. |
dst | read_only_udm.target.ip | Il valore viene estratto dal campo dst . |
dst_os | read_only_udm.target.asset.platform_software.platform_version | Il valore viene estratto dal campo dst_os . |
dpt | read_only_udm.target.port | Il valore viene estratto 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 estratto 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 estratto dal campo mitreTacticName . |
mitreTechniqueId | read_only_udm.security_result.detection_fields.value | Il valore viene estratto 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 estratto dal campo mitreTechniqueName . |
read_only_udm.security_result.detection_fields.key | Valore statico: Technique name |
|
modulo | read_only_udm.additional.fields.value.string_value | Il valore viene estratto dal campo module . |
read_only_udm.additional.fields.key | Valore statico: module |
|
msg | read_only_udm.metadata.description | Il valore viene estratto dal campo msg dopo l'estrazione del campo protocol . |
operazione | read_only_udm.additional.fields.value.string_value | Il valore viene estratto dal campo operation . |
read_only_udm.additional.fields.key | Valore statico: operation |
|
protocollo | read_only_udm.network.ip_protocol | Il valore viene estratto dal campo protocol se è TCP o UDP . |
result | read_only_udm.security_result.action | Mappato 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 estratto dal campo rt e analizzato come timestamp UNIX in millisecondi. |
shost | read_only_udm.principal.hostname | Il valore viene estratto 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 estratto dal campo smac . |
origine | read_only_udm.principal.hostname | Il valore viene estratto dal campo source . |
source_domain | read_only_udm.principal.domain.name | Il valore viene estratto dal campo source_domain . |
src | read_only_udm.principal.ip | Il valore viene estratto dal campo src . |
subscriberName | read_only_udm.additional.fields.value.string_value | Il valore viene estratto 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 estratto dal campo suser dopo l'estrazione del nome utente. |
soglia | read_only_udm.additional.fields.value.string_value | Il valore viene estratto 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 estratto dal campo usrname se non è vuoto o N/A . |
vlan | read_only_udm.principal.labels.value | Il valore viene estratto 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.