Recopila registros del AV de Kaspersky
En este documento, se explica cómo transferir registros del antivirus de Kaspersky a Google Security Operations con Bindplane. Primero, el código del analizador 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 comunes del AV de Kaspersky.
Antes de comenzar
Asegúrate de cumplir con los siguientes requisitos previos:
- Instancia de Google SecOps
- Host de Windows 2016 o posterior, o de Linux con systemd
- Si se ejecuta detrás de un proxy, los puertos de 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 SIEM Settings > Collection Agents.
- 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 SIEM Settings > Profile.
- Copia y guarda el ID de cliente de la sección Detalles de la organización.
Instala el agente de BindPlane
Instalación en 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 en 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 Cómo obtener el archivo de autenticación de la transferencia de datos 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 de Servicios o ingresar el siguiente comando:
net stop BindPlaneAgent && net start BindPlaneAgent
Configura la exportación de eventos en el AV de Kaspersky
- Accede a la consola de Kaspersky Security Center.
- Selecciona el servidor de administración cuyos eventos deseas exportar.
- En el espacio de trabajo Servidor de administración, haz clic en la pestaña Eventos.
- Haz clic en el vínculo para configurar las notificaciones y la exportación de eventos.
- Selecciona Configurar la exportación al sistema SIEM en la lista.
- Proporciona los siguientes detalles de configuración:
- Sistema SIEM: Selecciona Arcsight (formato CEF).
- Dirección del servidor del sistema SIEM: Ingresa la dirección IP del agente de Bindplane.
- Puerto del servidor del sistema SIEM: Ingresa el número de puerto del agente de Bindplane (por ejemplo,
514
para UDP). - Protocolo: Selecciona UDP.
- Haz clic en Aceptar.
Tabla de asignación de UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
Aplicación | network.http.user_agent | Se asigna directamente desde el campo Application en el registro sin procesar. |
Ruta de acceso a 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 asigna 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 del 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 asigna directamente desde el campo etdn en el registro sin procesar. |
Hash SHA256 del archivo | target.process.file.sha256 | Se asigna directamente desde el campo File SHA256 hash en el registro sin procesar. |
gn | security_result.about.labels | El key se establece en GN y el value se establece en el valor del campo gn . |
hdn | principal.hostname | Se asigna directamente desde el campo hdn en el registro sin procesar. |
cadera | principal.ip | Se asigna directamente desde el campo hip en el registro sin procesar. |
host_name | principal.hostname | Se asigna directamente desde el campo host_name en el registro sin procesar. |
intermediary_host | intermediary.hostname | Se asigna directamente desde el campo intermediary_host en el registro sin procesar. |
intermediary_hostname | intermediary.hostname | Se asigna 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 del UDM. | |
kv_data2 | Este campo se analiza y sus valores se asignan a otros campos del UDM. | |
etiqueta | network.http.user_agent | Si el valor es User-Agent , el campo de UDM se propaga con el valor del campo description . |
etiqueta | principal.hostname | Si el valor es Host , el campo de UDM se propaga con el nombre de host extraído del campo description . |
etiqueta | security_result.description | Para otros valores, el campo de UDM se propaga con una cadena que contiene los campos label y description . |
MD5 | target.process.file.md5 | Se asigna directamente desde el campo MD5 en el registro sin procesar después de convertirlo a minúsculas. |
Hash MD5 del archivo | target.process.file.md5 | Se asigna 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 del 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 asigna 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 asigna directamente desde el campo p2 en el registro sin procesar. |
p5 | security_result.rule_name | Se asigna 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 asigna directamente desde el campo Process ID en el registro sin procesar. |
process_id | target.process.pid | Se asigna directamente desde el campo process_id en el registro sin procesar. |
protocolo | network.application_protocol | Si el valor contiene http (sin distinguir mayúsculas de minúsculas), el campo del UDM se establece en HTTP . |
Razonamiento | security_result.summary | Se asigna directamente desde el campo Reason en el registro sin procesar. |
Página web solicitada | target.url | Se asigna 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 | El key se establece en rtid y el value se establece en el valor del campo rtid . |
Regla | security_result.description | Se asigna directamente desde el campo Rule en el registro sin procesar. |
SHA256 | target.process.file.sha256 | Se asigna directamente desde el campo SHA256 en el registro sin procesar después de convertirlo a minúsculas. |
sr_action | security_result.action | Se combinó en el campo security_result.action . |
resumen | security_result.summary | Se asigna directamente desde el campo summary en el registro sin procesar. |
task_name | security_result.about.labels | El key se establece en TaskName y el 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 asigna directamente desde el campo Type en el registro sin procesar. |
URL | network.http.referral_url | Se asigna 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 del UDM. |
Usuario | principal.administrative_domain | El dominio se extrae de este campo y se asigna al campo de UDM. |
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, STATUS_UNCATEGORIZED si hdn o host_name están presentes, o GENERIC_EVENT en cualquier otro caso. |
|
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 . |
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.