Raccogliere i log di Kaspersky AV
Questo documento spiega come importare i log di Kaspersky Antivirus in Google Security Operations utilizzando Bindplane. Il codice dell'analizzatore tenta innanzitutto di analizzare il messaggio di log non elaborato come JSON. In caso di esito negativo, utilizza espressioni regolari (pattern grok
) per estrarre i campi dal messaggio in base ai formati comuni dei log dell'antivirus Kaspersky.
Prima di iniziare
Assicurati di disporre dei seguenti prerequisiti:
- Istanza Google SecOps
- Windows 2016 o versioni successive o host Linux con systemd
- Se il servizio viene eseguito dietro un proxy, le porte del firewall sono aperte
- Accesso privilegiato a Kaspersky Antivirus
Recupera il file di autenticazione di importazione di Google SecOps
- Accedi alla console Google SecOps.
- Vai a Impostazioni SIEM > Agenti di raccolta.
- Scarica il file di autenticazione dell'importazione. Salva il file in modo sicuro sul sistema in cui verrà installato Bindplane.
Ottenere 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 di installazione aggiuntive
Per altre opzioni di installazione, consulta la guida all'installazione.
Configura l'agente Bindplane per importare i 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: KASPERSKY_AV 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 come richiesto nella tua infrastruttura.
Sostituisci
<customer_id>
con l'ID cliente effettivo.Aggiorna
/path/to/ingestion-authentication-file.json
con il percorso in cui è stato salvato il file di autenticazione nella sezione Ottenere 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 il seguente 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 l'esportazione degli eventi in Kaspersky AV
- Accedi alla console di Kaspersky Security Center.
- Seleziona il server di amministrazione di cui vuoi esportare gli eventi.
- Nell'area di lavoro Administration Server (Server di amministrazione), fai clic sulla scheda Eventi.
- Fai clic sul link Configura notifiche ed esportazione di eventi.
- Seleziona Configura l'esportazione nel sistema SIEM nell'elenco.
- Fornisci i seguenti dettagli di configurazione:
- Sistema SIEM: seleziona Arcsight (formato CEF).
- Indirizzo del server del sistema SIEM: inserisci l'indirizzo IP dell'agente Bindplane.
- Porta del server di sistema SIEM: inserisci il numero di porta dell'agente Bindplane (ad esempio
514
per UDP). - Protocollo: seleziona UDP.
- Fai clic su OK.
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logica |
---|---|---|
Applicazione | network.http.user_agent | Mappato direttamente dal campo Application nel log non elaborato. |
Percorso dell'applicazione | target.process.file.full_path | Utilizzato con il campo Name per costruire il percorso completo se Application path è presente nel log non elaborato. |
Componente | target.resource.name | Mappato direttamente dal campo Component nel log non elaborato. |
Categoria di contenuti | security_result.category_details | Aggiunto al campo security_result.category_details se Content category è presente nel log non elaborato. |
Origine della categoria di contenuti | target.resource.type | Se il valore contiene databases , il campo UDM è impostato su DATABASE . |
Erreur | security_result.summary | Mappato direttamente dal campo Erreur nel log non elaborato se il campo summary è vuoto. |
et | metadata.product_event_type | Mappato direttamente dal campo et nel log non elaborato se il campo product_event_type è vuoto. |
et | security_result.category_details | Aggiunto al campo security_result.category_details . |
etdn | extensions.vulns.vulnerabilities.description | Mappato direttamente dal campo etdn nel log non elaborato. |
Hash SHA256 del file | target.process.file.sha256 | Mappato direttamente dal campo File SHA256 hash nel log non elaborato. |
gn | security_result.about.labels | key è impostato su GN e value è impostato sul valore del campo gn . |
hdn | principal.hostname | Mappato direttamente dal campo hdn nel log non elaborato. |
alla moda | principal.ip | Mappato direttamente dal campo hip nel log non elaborato. |
host_name | principal.hostname | Mappato direttamente dal campo host_name nel log non elaborato. |
intermediary_host | intermediary.hostname | Mappato direttamente dal campo intermediary_host nel log non elaborato. |
intermediary_hostname | intermediary.hostname | Mappato direttamente dal campo intermediary_hostname nel log non elaborato. |
kv_data1 | Questo campo viene analizzato e i relativi valori vengono mappati ad altri campi UDM. | |
kv_data2 | Questo campo viene analizzato e i relativi valori vengono mappati ad altri campi UDM. | |
etichetta | network.http.user_agent | Se il valore è User-Agent , il campo UDM viene compilato con il valore del campo description . |
etichetta | principal.hostname | Se il valore è Host , il campo UDM viene compilato con il nome host estratto dal campo description . |
etichetta | security_result.description | Per altri valori, il campo UDM viene compilato con una stringa contenente i campi label e description . |
MD5 | target.process.file.md5 | Mappato direttamente dal campo MD5 nel log non elaborato dopo averlo convertito in minuscolo. |
Hash MD5 del file | target.process.file.md5 | Mappato direttamente dal campo MD5 file hash nel log non elaborato. |
messaggio | Questo campo viene analizzato e i relativi valori vengono mappati ad altri campi UDM. | |
metodo | network.http.method | Mappato direttamente dal campo method nel log non elaborato se corrisponde a un elenco di metodi HTTP. |
nome | target.file.full_path | Mappato direttamente dal campo name nel log non elaborato. |
Nom | target.process.file.full_path | Utilizzato con il campo application_path per costruire il percorso completo. |
p1 | target.process.file.sha256 | Mappato direttamente dal campo p1 nel log non elaborato dopo averlo convertito in minuscolo se il campo SHA256 è vuoto e il valore è una stringa esadecimale. |
p2 | target.process.file.full_path | Mappato direttamente dal campo p2 nel log non elaborato. |
p5 | security_result.rule_name | Mappato direttamente dal campo p5 nel log non elaborato. |
p7 | principal.user.user_display_name | Mappato direttamente dal campo p7 nel log non elaborato se i campi User e user_name sono vuoti. |
ID processo | principal.process.pid | Mappato direttamente dal campo Process ID nel log non elaborato. |
process_id | target.process.pid | Mappato direttamente dal campo process_id nel log non elaborato. |
protocollo | network.application_protocol | Se il valore contiene http (senza distinzione tra maiuscole e minuscole), il campo UDM viene impostato su HTTP . |
Motivo | security_result.summary | Mappato direttamente dal campo Reason nel log non elaborato. |
Pagina web richiesta | target.url | Mappato direttamente dal campo Requested web page nel log non elaborato. |
Risultato | Se il valore è Allowed , il campo sr_action viene impostato su ALLOW . |
|
rtid | security_result.about.labels | key è impostato su rtid e value è impostato sul valore del campo rtid . |
Regola | security_result.description | Mappato direttamente dal campo Rule nel log non elaborato. |
SHA256 | target.process.file.sha256 | Mappato direttamente dal campo SHA256 nel log non elaborato dopo averlo convertito in minuscolo. |
sr_action | security_result.action | Unito al campo security_result.action . |
riepilogo | security_result.summary | Mappato direttamente dal campo summary nel log non elaborato. |
task_name | security_result.about.labels | key è impostato su TaskName e value è impostato sul valore del campo task_name . |
threat_action_taken | Se il valore è blocked , il campo security_action viene impostato su BLOCK . Se il valore è allowed , il campo security_action viene impostato su ALLOW . |
|
timestamp | metadata.event_timestamp | Utilizzato per compilare il timestamp dell'evento. |
Tipo | security_result.threat_name | Mappato direttamente dal campo Type nel log non elaborato. |
URL | network.http.referral_url | Mappato direttamente dal campo url nel log non elaborato. |
Utente | principal.user.user_display_name | Il nome utente viene estratto da questo campo e mappato al campo UDM. |
Utente | principal.administrative_domain | Il dominio viene estratto da questo campo e mappato al campo UDM. |
user_name | principal.user.user_display_name | Mappato direttamente dal campo user_name nel log non elaborato se il campo User è vuoto. |
metadata.event_type | Imposta SCAN_VULN_NETWORK se sono presenti Application path e Name , STATUS_UNCATEGORIZED se sono presenti hdn o host_name o GENERIC_EVENT in caso contrario. |
|
metadata.vendor_name | Deve essere sempre impostato su KASPERSKY . |
|
metadata.product_name | Deve essere sempre impostato su KASPERSKY_AV . |
|
metadata.log_type | Deve essere sempre impostato su KASPERSKY_AV . |
Modifiche
2025-02-13
Miglioramento:
- È stato aggiunto il supporto per l'analisi dei log CEF non analizzati.
2025-02-05
Miglioramento:
- È stato aggiunto il supporto per l'analisi dei log CEF non analizzati.
2023-10-13
Miglioramento:
Hachage SHA256
,p1
mappati atarget.process.file.sha256
.Hachage MD5
,md5
mappati atarget.process.file.md5
.intermediary
è stato mappato aevent.idm.read_only_udm.intermediary
.
2022-10-14
Miglioramento:
- È stato aggiunto gsub per bypassare i caratteri speciali indesiderati.
2022-05-17
Miglioramento:
- Sono state aggiunte mappature per i seguenti campi
- Nom (nome del processo/dell'applicazione) (Nome) mappato a target.file.full_path (estensione).
- Chemin de l'application (percorso dell'applicazione) mappato a target.file.full_path.
- Type d'événement (Tipo di evento) mappato a metadata.product_event_type.
- ID du processus (ID processo) mappato a target.process.pid.
- Description du résultat (Descrizione del risultato) mappata a metadata.description.
- Erreur (Error) mappato a security_result.summary.
2022-03-29
Miglioramento:
- Sono state aggiunte mappature per i seguenti campi mancanti:
Result description
è stato mappato asecurity_result.description
.Type
è stato mappato asecurity_result.threat_name
.MD5
è stato mappato aprocess.file.md5
.SHA256
è stato mappato aprocess.file.sha256
.p2
è stato mappato atarget.process.file.full_path
.p5
è stato mappato asecurity_result.rule_name
.p7
è stato mappato aprincipal.user.user_display_name
.Reason
è stato mappato asecurity_result.summary
.
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.