Recopila registros de CEF de ArcSight
En este documento, se explica cómo transferir registros de CEF (formato de evento común) de ArcSight a Google Security Operations con Bindplane. El analizador transforma los datos sin procesar en un formato estructurado del modelo de datos unificado (UDM). Extrae campos del encabezado y las extensiones de CEF, los asigna a campos de UDM y realiza una lógica específica para categorizar eventos como los accesos de usuarios, las conexiones de red y los accesos a recursos según la información extraída.
Antes de comenzar
Asegúrate de cumplir con los siguientes requisitos previos:
- Instancia de Google SecOps
- Un host de Windows 2016 o posterior, o un host de Linux con
systemd
- Si se ejecuta detrás de un proxy, los puertos de firewall están abiertos.
- ArcSight SmartConnector 8.4 (o una versión posterior) instalado en un host con acceso a la red del agente de Bindplane
- Acceso privilegiado al portal de OpenText
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
Instala el agente de Bindplane en tu sistema operativo Windows o Linux según las siguientes instrucciones.
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_file_path: '/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 log_type: 'ARCSIGHT_CEF' raw_log_field: body ingestion_labels: 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 la 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 de Servicios o ingresar el siguiente comando:
net stop BindPlaneAgent && net start BindPlaneAgent
Descarga ArcSight SmartConnector
- Accede al portal de asistencia de OpenText.
- Busca y descarga el SmartConnector de ArcSight más reciente para Linux.
- Ejemplo de nombre de archivo:
ArcSight-Connector-Linux64-8.4.0.8499.0.bin
.
Instala el SmartConnector de ArcSight
Sube el archivo
.bin
al servidor de SmartConnector:scp ArcSight-Connector-Linux64-8.4.0.8499.0.bin user@your-smartconnector-host:/tmp
Accede al servidor de SmartConnector con SSH y ejecuta el siguiente comando:
cd /tmp chmod +x ArcSight-Connector-Linux64-8.4.0.8499.0.bin ./ArcSight-Connector-Linux64-8.4.0.8499.0.bin
Sigue el instalador interactivo:
- Selecciona el directorio de instalación (por ejemplo,
/opt/arcsight/connectors/current
). - Acepta la licencia.
- Cuando se te solicite, selecciona Instalar conector.
- Selecciona el directorio de instalación (por ejemplo,
Configura ArcSight SmartConnector para enviar CEF a Syslog
En el host de SmartConnector, inicia el asistente de destino:
cd /opt/arcsight/connectors/current/bin ./arcsight connectors
En el asistente, haz lo siguiente:
- Selecciona Agregar destino.
- Selecciona CEF Syslog.
Proporciona los siguientes detalles de configuración:
- Host/IP: Ingresa la dirección IP del agente de Bindplane.
- Puerto: Ingresa el número de puerto del agente de Bindplane.
- Protocolo: Selecciona UDP.
Finaliza la configuración y reinicia el conector:
./arcsight agents
Ejecuta una verificación de conectividad (por ejemplo, busca
Successfully connected to syslog: X.X.X.X:514
).tail -f /opt/arcsight/connectors/current/logs/agent.log
Tabla de asignación de UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
actúa | security_result.action_details | Se asigna directamente desde el campo act . |
agt | principal.ip | Se asigna directamente desde el campo agt . |
agt | principal.asset.ip | Se asigna directamente desde el campo agt . |
app | network.application_protocol | Se asigna directamente desde el campo app . |
art | metadata.event_timestamp.seconds | Se asigna directamente desde el campo art . |
cs2 | additional.fields.value.string_value | Se asigna directamente desde el campo cs2 cuando cs2Label es EventlogCategory . |
cs2Label | additional.fields.key | Se asigna directamente desde el campo cs2Label cuando su valor es EventlogCategory . |
cs3 | additional.fields.value.string_value | Se asigna directamente desde el campo cs3 cuando cs3Label es Process ID . |
cs3Label | additional.fields.key | Se asigna directamente desde el campo cs3Label cuando su valor es Process ID . |
cs5 | additional.fields.value.string_value | Se asigna directamente desde el campo cs5 cuando cs5Label es Authentication Package Name . |
cs5Label | additional.fields.key | Se asigna directamente desde el campo cs5Label cuando su valor es Authentication Package Name . |
cs6 | additional.fields.value.string_value | Se asigna directamente desde el campo cs6 cuando cs6Label es Logon GUID . |
cs6Label | additional.fields.key | Se asigna directamente desde el campo cs6Label cuando su valor es Logon GUID . |
dhost | about.hostname | Se asigna directamente desde el campo dhost . |
dhost | target.hostname | Se asigna directamente desde el campo dhost . |
dntdom | about.administrative_domain | Se asigna directamente desde el campo dntdom . |
dntdom | target.administrative_domain | Se asigna directamente desde el campo dntdom . |
dproc | about.process.command_line | Se asigna directamente desde el campo dproc . |
dproc | target.process.command_line | Se asigna directamente desde el campo dproc . |
DST | principal.ip | Se asigna directamente desde el campo dst . |
DST | principal.asset.ip | Se asigna directamente desde el campo dst . |
DST | target.ip | Se asigna directamente desde el campo dst . |
duid | target.user.userid | Se asigna directamente desde el campo duid . |
duser | target.user.user_display_name | Se asigna directamente desde el campo duser . |
dvc | about.ip | Se asigna directamente desde el campo dvc . |
dvchost | about.hostname | Se asigna directamente desde el campo dvchost . |
eventId | additional.fields.value.string_value | Se asigna directamente desde el campo eventId . |
externalId | metadata.product_log_id | Se asigna directamente desde el campo externalId . |
fname | additional.fields.value.string_value | Se asigna directamente desde el campo fname . |
msg | metadata.description | Se asigna directamente desde el campo msg . |
protocolo | network.ip_protocol | Se asigna directamente desde el campo proto . Traduce los nombres de los protocolos a sus respectivas constantes (p.ej., tcp a TCP ). |
rt | metadata.event_timestamp.seconds | Se asigna directamente desde el campo rt . |
shost | about.hostname | Se asigna directamente desde el campo shost . |
shost | principal.hostname | Se asigna directamente desde el campo shost . |
src | principal.ip | Se asigna directamente desde el campo src . |
src | principal.asset.ip | Se asigna directamente desde el campo src . |
src | target.ip | Se asigna directamente desde el campo src . |
sproc | principal.process.command_line | Se asigna directamente desde el campo sproc . |
spt | principal.port | Se asigna directamente desde el campo spt . |
spt | target.port | Se asigna directamente desde el campo spt . |
additional.EventRecordID | additional.fields.value.string_value | Se asigna directamente desde el campo ad.EventRecordID . |
additional.ThreadID | additional.fields.value.string_value | Se asigna directamente desde el campo ad.ThreadID . |
additional.Opcode | additional.fields.value.string_value | Se asigna directamente desde el campo ad.Opcode . |
additional.ProcessID | additional.fields.value.string_value | Se asigna directamente desde el campo ad.ProcessID . |
additional.TargetDomainName | additional.fields.value.string_value | Se asigna directamente desde el campo ad.TargetDomainName . |
additional.Version | additional.fields.value.string_value | Se asigna directamente desde el campo ad.Version . |
deviceExternalId | about.asset.hardware.serial_number | Se asigna directamente desde el campo deviceExternalId . |
deviceInboundInterface | additional.fields.value.string_value | Se asigna directamente desde el campo deviceInboundInterface . |
deviceOutboundInterface | additional.fields.value.string_value | Se asigna directamente desde el campo deviceOutboundInterface . |
PanOSConfigVersion | security_result.detection_fields.value | Se asigna directamente desde el campo PanOSConfigVersion . |
PanOSContentVersion | security_result.detection_fields.value | Se asigna directamente desde el campo PanOSContentVersion . |
PanOSDGHierarchyLevel1 | security_result.detection_fields.value | Se asigna directamente desde el campo PanOSDGHierarchyLevel1 . |
PanOSDestinationLocation | target.location.country_or_region | Se asigna directamente desde el campo PanOSDestinationLocation . |
PanOSRuleUUID | metadata.product_log_id | Se asigna directamente desde el campo PanOSRuleUUID . |
PanOSThreatCategory | security_result.category_details | Se asigna directamente desde el campo PanOSThreatCategory . |
PanOSThreatID | security_result.threat_id | Se asigna directamente desde el campo PanOSThreatID . |
about.asset.asset_id | Se genera concatenando Palo Alto Networks. , el nombre del proveedor (LF ) y el campo deviceExternalId . |
|
extensions.auth.type | Se establece en AUTHTYPE_UNSPECIFIED si el campo event_name contiene logged on . |
|
metadata.description | Si el campo description contiene by seguido de una dirección IP, se extrae la dirección IP y se asigna a principal.ip y principal.asset.ip . |
|
metadata.event_type | Se determina en función de una serie de verificaciones condicionales en varios campos, incluidos event_name , principal_* , target_* y device_event_class_id . La lógica determina el tipo de evento más adecuado según la información disponible. |
|
metadata.log_type | Se define en ARCSIGHT_CEF . |
|
metadata.product_event_type | Se genera concatenando \[ , the device_event_class_id field, \] - y el campo name . |
|
metadata.product_name | Se establece en NGFW si el campo product_name es LF . |
|
principal.asset.ip | Si el campo description contiene by seguido de una dirección IP, se extrae la dirección IP y se asigna a principal.ip y principal.asset.ip . |
|
principal.ip | Si el campo description contiene by seguido de una dirección IP, se extrae la dirección IP y se asigna a principal.ip y principal.asset.ip . |
|
security_result.action | Se establece en ALLOW si el campo act es alert ; de lo contrario, se establece en BLOCK . |
|
security_result.severity | Se establece en HIGH si el campo sev es mayor o igual que 7; de lo contrario, se establece en LOW . |
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.