Recopila registros de Kaspersky AV
En este documento, se explica cómo transferir registros de Kaspersky Antivirus a Google Security Operations con Bindplane. El código del analizador primero intenta analizar el mensaje de registro sin procesar como JSON. Si eso falla, usa expresiones regulares (patrones grok
) para extraer campos del mensaje según los formatos de registro de AV de Kaspersky comunes.
Antes de comenzar
Asegúrate de cumplir con los siguientes requisitos previos:
- Instancia de Google SecOps
- Windows 2016 o versiones posteriores, o host de Linux con systemd
- Si se ejecuta detrás de un proxy, los puertos del firewall están abiertos.
- Acceso con privilegios a Kaspersky Antivirus
Obtén el archivo de autenticación de transferencia de Google SecOps
- Accede a la consola de Google SecOps.
- Ve a Configuración de SIEM > Agentes de recopilación.
- Descarga el archivo de autenticación de transferencia. Guarda el archivo de forma segura en el sistema en el que se instalará Bindplane.
Obtén el ID de cliente de Google SecOps
- Accede a la consola de Google SecOps.
- Ve a Configuración de SIEM > Perfil.
- Copia y guarda el ID de cliente de la sección Detalles de la organización.
Instala el agente de Bindplane
Instalación de Windows
- Abre el símbolo del sistema o PowerShell como administrador.
Ejecuta el siguiente comando:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Instalación de Linux
- Abre una terminal con privilegios de raíz o sudo.
Ejecuta el siguiente comando:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
Recursos de instalación adicionales
Para obtener más opciones de instalación, consulta la guía de instalación.
Configura el agente de Bindplane para transferir Syslog y enviarlo a Google SecOps
Accede al archivo de configuración:
- Ubica el archivo
config.yaml
. Por lo general, se encuentra en el directorio/etc/bindplane-agent/
en Linux o en el directorio de instalación en Windows. - Abre el archivo con un editor de texto (por ejemplo,
nano
,vi
o Bloc de notas).
- Ubica el archivo
Edita el archivo
config.yaml
de la siguiente manera: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
Reemplaza el puerto y la dirección IP según sea necesario en tu infraestructura.
Reemplaza
<customer_id>
por el ID de cliente real.Actualiza
/path/to/ingestion-authentication-file.json
a la ruta de acceso en la que se guardó el archivo de autenticación en la sección Obtén el archivo de autenticación de transferencia de Google SecOps.
Reinicia el agente de Bindplane para aplicar los cambios.
Para reiniciar el agente de Bindplane en Linux, ejecuta el siguiente comando:
sudo systemctl restart bindplane-agent
Para reiniciar el agente de Bindplane en Windows, puedes usar la consola Services o ingresar el siguiente comando:
net stop BindPlaneAgent && net start BindPlaneAgent
Configura la exportación de eventos en Kaspersky AV
- Accede a la consola de Kaspersky Security Center.
- Selecciona el servidor de administración cuyos eventos deseas exportar.
- En el espacio de trabajo Administration Server, haz clic en la pestaña Events.
- Haz clic en el vínculo Configurar notificaciones y exportación de eventos.
- Selecciona Configurar exportación al sistema de SIEM en la lista.
- Proporciona los siguientes detalles de configuración:
- Sistema SIEM: Selecciona Arcsight (formato CEF).
- Dirección del servidor del sistema de SIEM: Ingresa la dirección IP del agente de Bindplane.
- Puerto del servidor del sistema de SIEM: Ingresa el número de puerto del agente de Bindplane (por ejemplo,
514
para UDP). - Protocolo: Selecciona UDP.
- Haz clic en OK.
Tabla de asignación de la UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
Aplicación | network.http.user_agent | Se asignan directamente desde el campo Application en el registro sin procesar. |
Ruta de la aplicación | target.process.file.full_path | Se usa con el campo Name para construir la ruta de acceso completa si Application path está presente en el registro sin procesar. |
Componente | target.resource.name | Se asignan directamente desde el campo Component en el registro sin procesar. |
Categoría de contenido | security_result.category_details | Se agrega al campo security_result.category_details si Content category está presente en el registro sin procesar. |
Fuente de la categoría de contenido | target.resource.type | Si el valor contiene databases , el campo UDM se establece en DATABASE . |
Erreur | security_result.summary | Se asigna directamente desde el campo Erreur en el registro sin procesar si el campo summary está vacío. |
et | metadata.product_event_type | Se asigna directamente desde el campo et en el registro sin procesar si el campo product_event_type está vacío. |
et | security_result.category_details | Se agregó al campo security_result.category_details . |
etdn | extensions.vulns.vulnerabilities.description | Se asignan directamente desde el campo etdn en el registro sin procesar. |
Hash SHA256 del archivo | target.process.file.sha256 | Se asignan directamente desde el campo File SHA256 hash en el registro sin procesar. |
gn | security_result.about.labels | key se establece en GN y value se establece en el valor del campo gn . |
hdn | principal.hostname | Se asignan directamente desde el campo hdn en el registro sin procesar. |
cadera | principal.ip | Se asignan directamente desde el campo hip en el registro sin procesar. |
host_name | principal.hostname | Se asignan directamente desde el campo host_name en el registro sin procesar. |
intermediary_host | intermediary.hostname | Se asignan directamente desde el campo intermediary_host en el registro sin procesar. |
intermediary_hostname | intermediary.hostname | Se asignan directamente desde el campo intermediary_hostname en el registro sin procesar. |
kv_data1 | Este campo se analiza y sus valores se asignan a otros campos de la UDM. | |
kv_data2 | Este campo se analiza y sus valores se asignan a otros campos de la UDM. | |
etiqueta | network.http.user_agent | Si el valor es User-Agent , el campo de la AUA se propaga con el valor del campo description . |
etiqueta | principal.hostname | Si el valor es Host , el campo de la UDM se propaga con el nombre de host extraído del campo description . |
etiqueta | security_result.description | Para otros valores, el campo de la AUA se propaga con una cadena que contiene los campos label y description . |
MD5 | target.process.file.md5 | Se asignan directamente desde el campo MD5 en el registro sin formato después de convertirlos a minúsculas. |
Hash de archivo MD5 | target.process.file.md5 | Se asignan directamente desde el campo MD5 file hash en el registro sin procesar. |
mensaje | Este campo se analiza y sus valores se asignan a otros campos de la UDM. | |
método | network.http.method | Se asigna directamente desde el campo method en el registro sin procesar si coincide con una lista de métodos HTTP. |
nombre | target.file.full_path | Se asignan directamente desde el campo name en el registro sin procesar. |
Nom | target.process.file.full_path | Se usa con el campo application_path para construir la ruta de acceso completa. |
p1 | target.process.file.sha256 | Se asigna directamente desde el campo p1 en el registro sin procesar después de convertirlo a minúsculas si el campo SHA256 está vacío y el valor es una cadena hexadecimal. |
p2 | target.process.file.full_path | Se asignan directamente desde el campo p2 en el registro sin procesar. |
p5 | security_result.rule_name | Se asignan directamente desde el campo p5 en el registro sin procesar. |
p7 | principal.user.user_display_name | Se asigna directamente desde el campo p7 en el registro sin procesar si los campos User y user_name están vacíos. |
ID de proceso | principal.process.pid | Se asignan directamente desde el campo Process ID en el registro sin procesar. |
process_id | target.process.pid | Se asignan directamente desde el campo process_id en el registro sin procesar. |
protocol | network.application_protocol | Si el valor contiene http (no distingue mayúsculas de minúsculas), el campo UDM se establece en HTTP . |
Motivo | security_result.summary | Se asignan directamente desde el campo Reason en el registro sin procesar. |
Página web solicitada | target.url | Se asignan directamente desde el campo Requested web page en el registro sin procesar. |
Resultado | Si el valor es Allowed , el campo sr_action se establece en ALLOW . |
|
rtid | security_result.about.labels | key se establece en rtid y value se establece en el valor del campo rtid . |
Regla | security_result.description | Se asignan directamente desde el campo Rule en el registro sin procesar. |
SHA256 | target.process.file.sha256 | Se asignan directamente desde el campo SHA256 en el registro sin formato después de convertirlos a minúsculas. |
sr_action | security_result.action | Se fusionó en el campo security_result.action . |
resumen | security_result.summary | Se asignan directamente desde el campo summary en el registro sin procesar. |
task_name | security_result.about.labels | key se establece en TaskName y value se establece en el valor del campo task_name . |
threat_action_taken | Si el valor es blocked , el campo security_action se establece en BLOCK . Si el valor es allowed , el campo security_action se establece en ALLOW . |
|
timestamp | metadata.event_timestamp | Se usa para propagar la marca de tiempo del evento. |
Tipo | security_result.threat_name | Se asignan directamente desde el campo Type en el registro sin procesar. |
URL | network.http.referral_url | Se asignan directamente desde el campo url en el registro sin procesar. |
Usuario | principal.user.user_display_name | El nombre de usuario se extrae de este campo y se asigna al campo de la AUA. |
Usuario | principal.administrative_domain | El dominio se extrae de este campo y se asigna al campo de la AUA. |
user_name | principal.user.user_display_name | Se asigna directamente desde el campo user_name en el registro sin procesar si el campo User está vacío. |
metadata.event_type | Se establece en SCAN_VULN_NETWORK si Application path y Name están presentes, en STATUS_UNCATEGORIZED si hdn o host_name están presentes, o en GENERIC_EVENT de lo contrario. |
|
metadata.vendor_name | Siempre se establece en KASPERSKY . |
|
metadata.product_name | Siempre se establece en KASPERSKY_AV . |
|
metadata.log_type | Siempre se establece en KASPERSKY_AV . |
Cambios
2025-02-13
Mejora:
- Se agregó compatibilidad para analizar los registros de CEF sin analizar.
2025-02-05
Mejora:
- Se agregó compatibilidad para analizar los registros de CEF sin analizar.
2023-10-13
Mejora:
- Se asignaron
Hachage SHA256
yp1
atarget.process.file.sha256
. - Se asignaron
Hachage MD5
ymd5
atarget.process.file.md5
. - Se asignó
intermediary
aevent.idm.read_only_udm.intermediary
.
2022-10-14
Mejora:
- Se agregó gsub para omitir caracteres especiales no deseados.
2022-05-17
Mejora:
- Se agregaron asignaciones para los siguientes campos
- Nom (nombre del proceso o la aplicación) (nombre) asignado a target.file.full_path (extensión).
- Chemin de l'application (ruta de acceso de la aplicación) asignada a target.file.full_path.
- Type d'événement (tipo de evento) asignado a metadata.product_event_type.
- ID du processus (ID de proceso) asignado a target.process.pid.
- Description du résultat (descripción del resultado) asignada a metadata.description.
- Erreur (Error) asignado a security_result.summary.
2022-03-29
Mejora:
- Se agregaron asignaciones para los siguientes campos faltantes:
- Se asignó
Result description
asecurity_result.description
. - Se asignó
Type
asecurity_result.threat_name
. - Se asignó
MD5
aprocess.file.md5
. - Se asignó
SHA256
aprocess.file.sha256
. - Se asignó
p2
atarget.process.file.full_path
. - Se asignó
p5
asecurity_result.rule_name
. - Se asignó
p7
aprincipal.user.user_display_name
. - Se asignó
Reason
asecurity_result.summary
.
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.