Recopilar registros de FireEye HX
En este documento se explica cómo recoger registros de FireEye Endpoint Security (HX) en Google Security Operations mediante Bindplane. El analizador intenta procesar el mensaje de entrada como JSON. Si el mensaje no está en formato JSON, utiliza patrones grok para extraer campos y, a continuación, realiza una asignación de UDM condicional basada en el tipo de evento extraído y otros criterios.
Antes de empezar
- Asegúrate de que tienes una instancia de Google Security Operations.
- Asegúrate de usar Windows 2016 o una versión posterior, o un host Linux con
systemd
. - Si se ejecuta a través de un proxy, asegúrate de que los puertos del cortafuegos estén abiertos.
- Asegúrate de que tienes acceso con privilegios a FireEye Endpoint Security.
Obtener el archivo de autenticación de ingestión de Google SecOps
- Inicia sesión en la consola de Google SecOps.
- Ve a Configuración de SIEM > Agentes de recogida.
- Descarga el archivo de autenticación de ingestión. Guarda el archivo de forma segura en el sistema en el que se instalará Bindplane.
Obtener el ID de cliente de Google SecOps
- Inicia sesión en 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.
Instalar el agente de Bindplane
Instalación de ventanas
- 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 un terminal con privilegios de superusuario 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 ver otras opciones de instalación, consulta esta guía de instalación.
Configurar el agente de BindPlane para ingerir Syslog y enviarlo a Google SecOps
Accede al archivo de configuración:
- Busca el archivo
config.yaml
. Normalmente, 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).
- Busca 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: 'FIREEYE_HX' raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels
Sustituye el puerto y la dirección IP según sea necesario en tu infraestructura.
Sustituye
<customer_id>
por el ID de cliente real.Actualiza
/path/to/ingestion-authentication-file.json
a la ruta en la que se guardó el archivo de autenticación en la sección Obtener el archivo de autenticación de ingestión 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 Servicios o introducir el siguiente comando:
net stop BindPlaneAgent && net start BindPlaneAgent
Configurar syslog de FireEye HX Event Streamer mediante la interfaz de usuario
- Inicia sesión en la consola de administración de FireEye HX.
- Ve a Event Streamer.
- Selecciona Habilitar Event Streamer en el host.
- Guarda los cambios en la política.
- Ve a Destinos > Configuración del servidor > Añadir destino syslog.
- Proporcione los siguientes detalles de configuración:
- Nombre: introduce un nombre único para etiquetar el recopilador de registros de Google SecOps.
- Dirección IP: introduce la dirección IP del agente de Bindplane.
- Puerto: introduce el número de puerto del agente de Bindplane.
- Guarda los cambios para aplicarlos.
Configurar syslog de FireEye HX Event Streamer mediante la CLI
- Inicia sesión en el dispositivo FireEye HX mediante la interfaz de línea de comandos (CLI).
Ejecuta el siguiente comando para habilitar el modo de configuración:
enable configure terminal
Ejecuta el siguiente comando para añadir un destino de servidor syslog remoto:
logging BINDPLANE_IP_ADDRESS port PORT_NUMBER port
- Sustituye lo siguiente:
BINDPLANE_IP_ADDRESS
: la dirección IP del reenviador de Google SecOpsPORT_NUMBER
: número de puerto
- Sustituye lo siguiente:
Ejecuta el siguiente comando para guardar los detalles de la configuración:
write mem
Tabla de asignación de UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
alert.agent._id | principal.asset.asset_id | El ID de agente del registro sin procesar, con el prefijo AGENT ID: |
alert.agent.url | principal.labels.value | La URL del agente del registro sin procesar. |
alert.condition._id | additional.fields.value.string_value | El ID de la condición del registro sin procesar, con = caracteres eliminados. |
alert.condition.url | additional.fields.value.string_value | La URL de la condición del registro sin procesar, con = caracteres eliminados. |
alert.decorators[].data.fireeye_report.indicator_verdict.malware_families.0 | security_result.threat_name | La familia de malware del informe de FireEye en el campo de decoradores del registro sin procesar. |
alert.decorators[].data.fireeye_report.risk_summary | security_result.description | El resumen de riesgos del informe de FireEye en el campo de decoradores del registro sin procesar. |
alert.decorators[].data.fireeye_verdict | security_result.severity_details | El veredicto de FireEye del campo de decoradores del registro sin procesar. |
alert.event_at | read_only_udm.metadata.event_timestamp | Marca de tiempo del evento del registro sin procesar. |
alert.event_id | read_only_udm.metadata.product_log_id | ID del evento del registro sin procesar. |
alert.event_type | read_only_udm.metadata.product_event_type | El tipo de evento del registro sin procesar. |
alert.event_values.fileWriteEvent/fullPath | target.file.full_path | Ruta completa del archivo escrito a partir del registro sin procesar. |
alert.event_values.fileWriteEvent/md5 | target.file.md5 | El hash MD5 del archivo escrito a partir del registro sin procesar. |
alert.event_values.fileWriteEvent/pid | principal.process.pid | El ID del proceso que escribió el archivo del registro sin procesar. |
alert.event_values.fileWriteEvent/processPath | principal.process.file.full_path | Ruta del proceso que escribió el archivo del registro sin procesar. Se combina con alert.event_values.fileWriteEvent/process para crear la ruta completa si el sistema operativo es Windows. |
alert.event_values.fileWriteEvent/size | target.file.size | Tamaño del archivo escrito a partir del registro sin procesar. |
alert.event_values.fileWriteEvent/username | principal.user.userid | El usuario que escribió el archivo del registro sin procesar. |
alert.event_values.ipv4NetworkEvent/localIP | principal.ip | Dirección IP local del registro sin procesar. |
alert.event_values.ipv4NetworkEvent/localPort | principal.port | El puerto local del registro sin procesar. |
alert.event_values.ipv4NetworkEvent/pid | principal.process.pid | El ID de proceso del registro sin procesar. |
alert.event_values.ipv4NetworkEvent/process | principal.process.file.full_path | El nombre del proceso del registro sin procesar. Se combina con alert.event_values.ipv4NetworkEvent/processPath para crear la ruta completa si el sistema operativo es Windows. |
alert.event_values.ipv4NetworkEvent/processPath | principal.process.file.full_path | La ruta del proceso del registro sin procesar. Se combina con alert.event_values.ipv4NetworkEvent/process para crear la ruta completa si el sistema operativo es Windows. |
alert.event_values.ipv4NetworkEvent/protocol | network.ip_protocol | El protocolo de red del registro sin procesar. |
alert.event_values.ipv4NetworkEvent/remoteIP | target.ip | Dirección IP remota del registro sin procesar. |
alert.event_values.ipv4NetworkEvent/remotePort | target.port | El puerto remoto del registro sin procesar. |
alert.event_values.ipv4NetworkEvent/timestamp | read_only_udm.metadata.event_timestamp | Marca de tiempo del evento del registro sin procesar. |
alert.event_values.ipv4NetworkEvent/username | principal.user.userid | El usuario del registro sin procesar. |
alert.event_values.processEvent/md5 | target.process.file.md5 | El hash MD5 del proceso del registro sin procesar. |
alert.event_values.processEvent/parentPid | principal.process.pid | ID de proceso superior del registro sin procesar. |
alert.event_values.processEvent/parentProcess | principal.process.file.full_path | Nombre del proceso superior del registro sin procesar. |
alert.event_values.processEvent/parentProcessPath | principal.process.file.full_path | Ruta del proceso superior del registro sin procesar. |
alert.event_values.processEvent/pid | target.process.pid | El ID de proceso del registro sin procesar. |
alert.event_values.processEvent/process | target.process.file.full_path | El nombre del proceso del registro sin procesar. |
alert.event_values.processEvent/processCmdLine | target.process.command_line | La línea de comandos del proceso del registro sin formato. |
alert.event_values.processEvent/processPath | target.process.file.full_path | La ruta del proceso del registro sin procesar. |
alert.event_values.processEvent/timestamp | read_only_udm.metadata.event_timestamp | Marca de tiempo del evento del registro sin procesar. |
alert.event_values.processEvent/username | principal.user.userid | El usuario del registro sin procesar. |
alert.event_values.urlMonitorEvent/hostname | target.hostname | El nombre de host del registro sin procesar. |
alert.event_values.urlMonitorEvent/localPort | principal.port | El puerto local del registro sin procesar. |
alert.event_values.urlMonitorEvent/pid | principal.process.pid | El ID de proceso del registro sin procesar. |
alert.event_values.urlMonitorEvent/process | principal.process.file.full_path | El nombre del proceso del registro sin procesar. Se combina con alert.event_values.urlMonitorEvent/processPath para crear la ruta completa si el sistema operativo es Windows. |
alert.event_values.urlMonitorEvent/processPath | principal.process.file.full_path | La ruta del proceso del registro sin procesar. Se combina con alert.event_values.urlMonitorEvent/process para crear la ruta completa si el SO es Windows. |
alert.event_values.urlMonitorEvent/remoteIpAddress | target.ip | Dirección IP remota del registro sin procesar. |
alert.event_values.urlMonitorEvent/remotePort | target.port | El puerto remoto del registro sin procesar. |
alert.event_values.urlMonitorEvent/requestUrl | target.url | La URL solicitada del registro sin procesar. |
alert.event_values.urlMonitorEvent/timestamp | read_only_udm.metadata.event_timestamp | Marca de tiempo del evento del registro sin procesar. |
alert.event_values.urlMonitorEvent/urlMethod | network.http.method | Método HTTP del registro sin procesar. |
alert.event_values.urlMonitorEvent/userAgent | network.http.user_agent | El user-agent del registro sin procesar. |
alert.event_values.urlMonitorEvent/username | principal.user.userid | El usuario del registro sin procesar. |
alert.indicator._id | security_result.about.labels.value | El ID del indicador del registro sin procesar. |
alert.indicator.name | read_only_udm.security_result.summary | Nombre del indicador del registro sin procesar. |
alert.indicator.url | security_result.about.labels.value | La URL del indicador del registro sin procesar. |
alert.multiple_match | read_only_udm.metadata.description | El mensaje de varias coincidencias del registro sin procesar. |
alert.source | additional.fields.value.string_value | Origen de la alerta del registro sin procesar. |
authmethod | extensions.auth.mechanism | El método de autenticación del registro sin procesar. Se asigna el valor LOCAL si el valor es local o LOCAL . De lo contrario, se asigna el valor MECHANISM_OTHER . |
authsubmethod | extensions.auth.auth_details | Submétodo de autenticación del registro sin procesar, convertido a mayúsculas. |
client | principal.ip | Dirección IP del cliente del registro sin procesar. |
conditions.data.tests[].token | security_result.detection_fields.key | El token de las pruebas de condiciones del registro sin procesar. |
conditions.data.tests[].value | security_result.detection_fields.value | El valor de las pruebas de las condiciones en el registro sin procesar. |
description | read_only_udm.metadata.description | La descripción del registro sin procesar. |
host.agent_version | read_only_udm.metadata.product_version | Versión del agente del registro sin procesar. |
host.containment_state | read_only_udm.principal.containment_state | El estado de contención del registro sin procesar. |
host.domain | read_only_udm.principal.administrative_domain | El dominio del registro sin procesar. |
host.hostname | read_only_udm.principal.hostname | El nombre de host del registro sin procesar. |
host.os.platform | read_only_udm.principal.platform | Plataforma del sistema operativo del registro sin procesar. |
host.os.product_name | read_only_udm.principal.platform_version | El nombre del producto del sistema operativo del registro sin procesar. |
host.primary_ip_address | read_only_udm.principal.ip | Dirección IP principal del registro sin procesar. |
host.primary_mac | read_only_udm.principal.mac | La dirección MAC principal del registro sin procesar, con - caracteres sustituidos por : . |
host_ | principal.hostname | El nombre de host del registro sin procesar. |
host_details.data.agent_version | read_only_udm.metadata.product_version | Versión del agente del registro sin procesar. |
host_details.data.containment_state | read_only_udm.security_result.severity_details | El estado de contención del registro sin procesar. |
host_details.data.domain | read_only_udm.principal.administrative_domain | El dominio del registro sin procesar. |
host_details.data.hostname | read_only_udm.principal.hostname | El nombre de host del registro sin procesar. |
host_details.data.os.platform | read_only_udm.principal.platform | Plataforma del sistema operativo del registro sin procesar. |
host_details.data.os.product_name | read_only_udm.principal.platform_version | El nombre del producto del sistema operativo del registro sin procesar. |
host_details.data.primary_ip_address | read_only_udm.principal.ip | Dirección IP principal del registro sin procesar. |
host_details.data.primary_mac | read_only_udm.principal.mac | La dirección MAC principal del registro sin procesar, con - caracteres sustituidos por : . |
indicators.data.description | read_only_udm.metadata.description | La descripción del indicador del registro sin procesar. |
línea | target.application | La línea del registro sin procesar. |
nombredeusuario_local | target.user.user_display_name | Nombre de usuario local del registro sin procesar. |
principal_ip | principal.ip | Dirección IP principal del registro sin procesar. |
process | read_only_udm.principal.application | El nombre del proceso del registro sin procesar. |
process_id | read_only_udm.principal.process.pid | El ID de proceso del registro sin procesar. |
Referente | network.http.referral_url | La URL referente del registro sin procesar. |
remoteaddress | principal.ip | La dirección remota del registro sin procesar. |
solicitud | additional.fields.value.string_value | La solicitud del registro sin procesar. |
role | target.user.role_name | El rol del registro sin procesar. |
servidor | target.resource.attribute.labels.value | El servidor del registro sin procesar. |
sessionID | network.session_id | El ID de sesión del registro sin procesar. |
gravedad | security_result.severity | Se define como LOW , MEDIUM o HIGH en función de la gravedad del registro sin procesar. |
target_host | read_only_udm.target.hostname | Nombre de host de destino del registro sin procesar. |
target_ip | target.ip | Dirección IP de destino del registro sin procesar. |
target_ip1 | target.ip | Dirección IPv6 de destino del registro sin procesar. |
timestamp | timestamp | Marca de tiempo del registro sin procesar. |
upstream | target.url | La URL de origen del registro sin procesar. |
nombre de usuario | target.user.userid | Nombre de usuario del registro sin procesar. |
¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.