Raccogli i log di Vectra Stream
Questo documento spiega come importare i log di Vectra Stream in Google Security Operations utilizzando l'agente Bindplane.
Vectra Stream è una piattaforma di streaming di metadati di rete che genera messaggi in formato JSON e syslog per connessioni di rete, query DNS, richieste HTTP, sessioni TLS/SSL, lease DHCP, autenticazione RADIUS, posta SMTP ed eventi Kerberos. Il parser estrae le coppie chiave-valore e le mappa al modello Unified Data Model (UDM).
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Un'istanza Google SecOps
- Windows Server 2016 o versioni successive o host Linux con
systemd - Connettività di rete tra l'agente Bindplane e l'appliance Vectra Brain
- Se l'agente viene eseguito dietro un proxy, assicurati che le porte del firewall siano aperte in base ai requisiti dell'agente Bindplane
- Accesso amministrativo all'interfaccia utente di Vectra (brain)
Recuperare il file di autenticazione dell'importazione di Google SecOps
- Accedi alla console Google SecOps.
- Vai a Impostazioni SIEM > Agenti di raccolta.
- Scarica il file di autenticazione dell'acquisizione.
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
Installa l'agente Bindplane sul sistema operativo Windows o Linux seguendo le istruzioni riportate di seguito.
Installazione di finestre
- Apri 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" /quietAttendi il completamento dell'installazione.
Verifica l'installazione eseguendo:
sc query observiq-otel-collectorIl servizio dovrebbe essere visualizzato come IN ESECUZIONE.
Installazione di Linux
- Apri un terminale con privilegi 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.shAttendi il completamento dell'installazione.
Verifica l'installazione eseguendo:
sudo systemctl status observiq-otel-collectorIl servizio dovrebbe essere visualizzato come attivo (in esecuzione).
Risorse aggiuntive per l'installazione
Per ulteriori opzioni di installazione e risoluzione dei problemi, consulta la guida all'installazione dell'agente Bindplane.
Configura l'agente Bindplane per importare syslog e inviarli a Google SecOps
Individua il file di configurazione
Linux:
sudo nano /opt/observiq-otel-collector/config.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
Modifica il file di configurazione
Sostituisci l'intero contenuto di
config.yamlcon la seguente configurazione:receivers: udplog: listen_address: "0.0.0.0:514" exporters: chronicle/vectra_stream: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: VECTRA_STREAM raw_log_field: body service: pipelines: logs/vectra_stream_to_chronicle: receivers: - udplog exporters: - chronicle/vectra_stream
Parametri di configurazione
Sostituisci i seguenti segnaposto:
Configurazione del destinatario:
listen_address: indirizzo IP e porta su cui ascoltare:0.0.0.0per ascoltare su tutte le interfacce (consigliato)- La porta
514è la porta syslog standard (richiede l'accesso root su Linux; utilizza1514per l'accesso non root)
Configurazione dell'esportatore:
creds_file_path: percorso completo del file di autenticazione dell'acquisizione:- Linux:
/etc/bindplane-agent/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
customer_id: ID cliente copiato dalla console Google SecOpsendpoint: URL dell'endpoint regionale:- Stati Uniti:
malachiteingestion-pa.googleapis.com - Europa:
europe-malachiteingestion-pa.googleapis.com - Asia:
asia-southeast1-malachiteingestion-pa.googleapis.com - Per l'elenco completo, consulta Endpoint regionali.
- Stati Uniti:
Salva il file di configurazione
- Dopo la modifica, salva il file:
- Linux: premi
Ctrl+O, poiEntere infineCtrl+X. - Windows: fai clic su File > Salva.
- Linux: premi
Riavvia l'agente Bindplane per applicare le modifiche
Per riavviare l'agente Bindplane in Linux, esegui questo comando:
sudo systemctl restart observiq-otel-collectorVerifica che il servizio sia in esecuzione:
sudo systemctl status observiq-otel-collectorControlla i log per verificare la presenza di errori:
sudo journalctl -u observiq-otel-collector -f
Per riavviare l'agente Bindplane in Windows, scegli una delle seguenti opzioni:
Prompt dei comandi o PowerShell come amministratore:
net stop observiq-otel-collector && net start observiq-otel-collectorConsole dei servizi:
- Premi
Win+R, digitaservices.msce premi Invio. - Individua observIQ OpenTelemetry Collector.
- Fai clic con il tasto destro del mouse e seleziona Riavvia.
Verifica che il servizio sia in esecuzione:
sc query observiq-otel-collectorControlla i log per individuare eventuali errori:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
- Premi
Configura Vectra Stream per l'invio di syslog
- Accedi all'interfaccia utente di Vectra (brain).
- Vai a Impostazioni > Notifiche.
- Vai alla sezione Syslog.
- Fai clic su Modifica per aggiungere o modificare la configurazione di syslog.
- Fornisci i seguenti dettagli di configurazione:
- Destinazione: inserisci l'indirizzo IP dell'agente Bindplane.
- Porta: inserisci il numero di porta dell'agente Bindplane.
- Protocollo: seleziona UDP o TCP in base alla configurazione dell'agente Bindplane.
- Formato: seleziona JSON.
- Tipi di log: seleziona i log che vuoi inviare a Google SecOps.
- Fai clic su Salva.
- Fai clic su Test per testare la configurazione.
Tabella di mappatura UDM
| Campo log | Mappatura UDM | Logica |
|---|---|---|
AA |
network.dns.authoritative |
Convertito in booleano dal valore stringa. |
account_session_id |
network.session_id |
Mappatura diretta. |
account_session_time |
network.session_duration |
Convertito in timestamp da secondi UNIX. |
answers |
network.dns.answers.data |
Mappatura diretta. |
assigned_ip |
network.dhcp.yiaddr |
Mappatura diretta. |
beacon_type |
metadata.description |
Mappatura diretta. |
beacon_uid |
network.session_id |
Mappatura diretta. |
calling_station_id |
intermediary.asset.product_object_id |
Mappatura diretta. |
certificate.issuer |
network.tls.client.certificate.issuer |
Mappatura diretta. |
certificate.not_valid_after |
network.tls.client.certificate.not_after |
Convertito in timestamp da UNIX o UNIX_MS a seconda del formato. |
certificate.not_valid_before |
network.tls.client.certificate.not_before |
Convertito in timestamp da UNIX o UNIX_MS a seconda del formato. |
certificate.serial |
network.tls.client.certificate.serial |
Mappatura diretta. |
certificate.subject |
network.tls.client.certificate.subject |
Mappatura diretta. |
certificate.version |
network.tls.client.certificate.version |
Mappatura diretta. |
cipher |
network.tls.cipher |
Mappatura diretta. |
cipher_alg |
network.tls.cipher |
Mappatura diretta. |
client |
principal.application |
Mappatura diretta. |
client_cipher |
network.tls.client.supported_ciphers |
Mappatura diretta. |
community_id |
network.community_id |
Mappatura diretta. |
compression_alg |
additional.fields.value.string_value |
Aggiunta a campi aggiuntivi con la chiave "compression_alg". |
connect_info |
security_result.description |
Mappatura diretta. |
conn_state |
metadata.description |
Mappato a una descrizione in base al valore di conn_state. |
cookie |
target.user.userid |
Mappatura diretta. |
curve |
network.tls.curve |
Mappatura diretta. |
dhcp_server_ip |
network.dhcp.giaddr |
Mappatura diretta. |
dns_server_ips |
principal.ip |
Ogni IP nell'array viene aggiunto all'array principal.ip. |
domain |
target.domain.name |
Mappatura diretta. |
dst_display_name |
target.hostname,, target.asset.hostname |
Mappatura diretta. |
dst_luid |
target.asset.product_object_id |
Mappatura diretta. |
duration |
network.session_duration.seconds |
Convertito in numero intero dal valore della stringa. |
endpoint |
principal.application |
Mappatura diretta. |
established |
network.tls.established |
Convertito in booleano dal valore stringa. |
host |
target.hostname,, target.asset.hostname |
Nome host estratto dal campo "host". |
host_key |
additional.fields.value.string_value |
Aggiunta ai campi aggiuntivi con la chiave "host_key". |
host_key_alg |
additional.fields.value.string_value |
Aggiunto ai campi aggiuntivi con la chiave "host_key_alg". |
host_multihomed |
additional.fields.value.string_value |
Aggiunto a campi aggiuntivi con la chiave "host_multihomed" e il valore "subnet %{host_multihomed}". |
hostname |
target.hostname,, target.asset.hostname |
Mappatura diretta. |
id.orig_h |
principal.ip |
Mappatura diretta. |
id.orig_p |
principal.port |
Convertito in numero intero dal valore stringa. |
id.resp_h |
target.ip,, target.asset.ip |
Mappatura diretta. |
id.resp_p |
target.port |
Convertito in numero intero dal valore della stringa. |
issuer |
network.tls.client.certificate.issuer |
Mappatura diretta. |
ja3 |
network.tls.client.ja3 |
Mappatura diretta. |
ja3s |
network.tls.server.ja3s |
Mappatura diretta. |
kex_alg |
additional.fields.value.string_value |
Aggiunto ai campi aggiuntivi con la chiave "kex_alg". |
lease_time |
network.dhcp.lease_time_seconds |
Convertito in numero intero senza segno dal valore della stringa. |
log_type |
metadata.log_type |
Mappatura diretta. |
mac |
principal.mac |
Mappatura diretta. |
mac_alg |
additional.fields.value.string_value |
Aggiunta ai campi aggiuntivi con la chiave "mac_alg". |
mail_from |
network.email.from |
Mappatura diretta. |
metadata_type |
metadata.product_event_type |
Mappatura diretta. |
method |
network.http.method |
Mappatura diretta. |
name |
target.file.full_path |
Mappatura diretta. |
nas_identifier |
target.user.attribute.roles.name |
Mappatura diretta. |
next_protocol |
network.tls.next_protocol |
Mappatura diretta. |
orig_hostname |
principal.hostname |
Mappatura diretta. |
orig_ip_bytes |
network.sent_bytes |
Convertito in numero intero senza segno dal valore della stringa. |
orig_sluid |
principal.hostname |
Mappatura diretta. |
path |
target.file.full_path |
Mappatura diretta. |
proto |
network.ip_protocol |
Mappato al nome del protocollo IP in base al valore numerico. |
proxied |
principal.ip |
Se il valore è un indirizzo IP, viene aggiunto all'array principal.ip. |
qclass |
network.dns.questions.class |
Convertito in numero intero senza segno dal valore della stringa. |
qclass_name |
network.dns.questions.name |
Mappatura diretta. |
query |
network.dns.questions.name,, principal.process.command_line |
Mappatura diretta. |
qtype |
network.dns.questions.type |
Convertito in numero intero senza segno dal valore della stringa. |
RA |
network.dns.recursion_available |
Convertito in booleano dal valore stringa. |
radius_type |
metadata.description |
Mappatura diretta. |
rcode |
network.dns.response_code |
Convertito in numero intero senza segno dal valore della stringa. |
RD |
network.dns.recursion_desired |
Convertito in booleano dal valore stringa. |
rcpt_to |
network.email.reply_to,, network.email.to |
Il primo indirizzo email viene mappato a reply_to, mentre gli altri vengono aggiunti all'array to. |
referrer |
network.http.referral_url |
Mappatura diretta. |
resp_domain |
target.domain.name |
Mappatura diretta. |
resp_hostname |
target.hostname,, target.asset.hostname |
Mappatura diretta. |
resp_ip_bytes |
network.received_bytes |
Convertito in numero intero senza segno dal valore della stringa. |
resp_mime_types |
target.file.mime_type |
Mappatura diretta. |
result |
security_result.description |
Mappatura diretta. |
result_code |
security_result.action_details |
Mappatura diretta. |
rtt |
network.session_duration.seconds |
Convertito in numero intero dal valore stringa. |
security_result |
security_result | Unito all'oggetto security_result esistente. |
sensor_uid |
observer.asset_id |
Formattato come "Sensor_UID:%{sensor_uid}". |
server |
target.application |
Mappatura diretta. |
server_name |
network.tls.client.server_name |
Mappatura diretta. |
service |
target.application |
Mappatura diretta. |
src_display_name |
principal.hostname |
Mappatura diretta. |
src_luid |
principal.asset.product_object_id |
Mappatura diretta. |
status |
security_result.summary |
Mappatura diretta. |
status_code |
network.http.response_code |
Convertito in numero intero dal valore della stringa. |
status_msg |
security_result.summary |
Mappatura diretta. |
subject |
network.email.subject |
Mappatura diretta. |
success |
security_result.action |
Mappato su "ALLOW" se true, "BLOCK" se false. |
TC |
network.dns.truncated |
Convertito in booleano dal valore stringa. |
trans_id |
network.dhcp.transaction_id,, network.dns.id |
Convertito in un numero intero senza segno dal valore della stringa. |
ts |
metadata.event_timestamp |
Convertito in timestamp da vari formati. |
uid |
metadata.product_log_id |
Mappatura diretta. |
uri |
target.url |
Mappatura diretta. |
user_agent |
network.http.user_agent |
Mappatura diretta. |
username |
principal.user.userid |
Mappatura diretta. |
version |
network.tls.version,, principal.platform_version |
Mappatura diretta. |
version_num |
network.tls.version_protocol |
Mappatura diretta. |
metadata.event_type |
Determinato dalla logica del parser in base ai tipi di log e metadati. | |
metadata.vendor_name |
Valore impostato come hardcoded: "Vectra". | |
metadata.product_name |
Valore hardcoded: "Vectra Stream". | |
eve_json.alert.signature |
security_result.summary |
Mappato dal log delle modifiche |
eve_json.alert.category |
security_result.category_details |
Mappato dal log delle modifiche |
eve_json.alert.metadata.signature_severity |
security_result.severity |
Mappato dal log delle modifiche |
eve_json.alert.gid |
target.group.product_object_id |
Mappato dal log delle modifiche |
eve_json.alert.metadata.confidence |
security_result.confidence |
Mappato dal log delle modifiche |
eve_json.dest_ip" and "eve_json.flow.dest_ip |
target.ip |
Mappato dal log delle modifiche |
eve_json.dest_port" and "eve_json.flow.dest_port |
target.port |
Mappato dal log delle modifiche |
rrname |
dns.questions.name |
Mappato dal log delle modifiche |
eve_json.flow.bytes_toclient |
network.sent_bytes |
Mappato dal log delle modifiche |
eve_json.flow.bytes_toserver |
network.received_bytes |
Mappato dal log delle modifiche |
eve_json.flow.src_ip" and "eve_json.src_ip |
principal.ip |
Mappato dal log delle modifiche |
eve_json.flow.src_port" and "eve_json.src_port |
principal.port |
Mappato dal log delle modifiche |
idorig_h |
principal.ip |
Mappato dal log delle modifiche |
idorig_p |
principal.port |
Mappato dal log delle modifiche |
attributes |
additional.fields |
Mappato dal log delle modifiche |
first_orig_resp_data_pkt", "first_orig_resp_data_pkt_time", "cookie", "keyboard_layout", "name", and "query_scope |
additional.fields |
Mappato dal log delle modifiche |
operation |
security_result.action_details |
Mappato dal log delle modifiche |
qclass_name |
question.name |
Mappato dal log delle modifiche |
Log delle modifiche
Visualizza il log delle modifiche per questo parser
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.