Recopila registros de FireEye HX

Compatible con:

En este documento, se explica cómo recopilar registros de FireEye Endpoint Security (HX) en Google Security Operations con Bindplane. El analizador intenta procesar el mensaje de entrada como JSON. Si el mensaje no está en formato JSON, usa patrones de Grok para extraer campos y, luego, realiza la asignación de la AUA condicional en función del tipo de evento extraído y otros criterios.

Antes de comenzar

  • Asegúrate de tener una instancia de Google Security Operations.
  • Asegúrate de usar Windows 2016 o una versión posterior, o un host de Linux con systemd.
  • Si se ejecuta detrás de un proxy, asegúrate de que los puertos del firewall estén abiertos.
  • Asegúrate de tener acceso con privilegios a FireEye Endpoint Security.

Obtén el archivo de autenticación de transferencia de Google SecOps

  1. Accede a la consola de Google SecOps.
  2. Ve a Configuración de SIEM > Agentes de recopilación.
  3. 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

  1. Accede a la consola de Google SecOps.
  2. Ve a Configuración de SIEM > Perfil.
  3. 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

  1. Abre el símbolo del sistema o PowerShell como administrador.
  2. Ejecuta el siguiente comando:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Instalación de Linux

  1. Abre una terminal con privilegios de raíz o sudo.
  2. 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

Configura el agente de Bindplane para transferir Syslog y enviarlo a Google SecOps

  1. Accede al archivo de configuración:

    1. 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.
    2. Abre el archivo con un editor de texto (por ejemplo, nano, vi o Bloc de notas).
  2. 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
    
  3. Reemplaza el puerto y la dirección IP según sea necesario en tu infraestructura.

  4. Reemplaza <customer_id> por el ID de cliente real.

  5. 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 el syslog de FireEye HX Event Streamer con la IU

  1. Accede a la consola de administración de FireEye HX.
  2. Ve a Event Streamer.
  3. Selecciona Habilitar Event Streamer en el host.
  4. Guarda los cambios en la política.
  5. Ve a Destinos > Configuración del servidor > Agregar destino de Syslog.
  6. Proporciona los siguientes detalles de configuración:
    • Nombre: Ingresa un nombre único para etiquetar el recolector de registros de Google SecOps.
    • Dirección IP: Ingresa la dirección IP del agente de Bindplane.
    • Puerto: Ingresa el número de puerto del agente de Bindplane.
  7. Guarda los cambios que deseas aplicar.

Configura el syslog de FireEye HX Event Streamer con la CLI

  1. Accede al dispositivo FireEye HX con la interfaz de línea de comandos (CLI).
  2. Ejecuta el siguiente comando para habilitar el modo de configuración:

    enable
    configure terminal
    
  3. Ejecuta el siguiente comando para agregar un destino de servidor de syslog remoto:

    logging BINDPLANE_IP_ADDRESS port PORT_NUMBER port
    
    • Reemplaza lo siguiente:
      • BINDPLANE_IP_ADDRESS: La dirección IP del reenviador de SecOps de Google
      • PORT_NUMBER es el número de puerto.
  4. Ejecuta el siguiente comando para guardar los detalles de 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 del 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 condición del registro sin procesar, con = caracteres quitados.
alert.condition.url additional.fields.value.string_value La URL de la condición del registro sin procesar, sin los caracteres =.
alert.decorators[].data.fireeye_report.indicator_verdict.malware_families.0 security_result.threat_name La familia de software malicioso 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 La marca de tiempo del evento del registro sin procesar.
alert.event_id read_only_udm.metadata.product_log_id El ID del evento del registro sin procesar
alert.event_type read_only_udm.metadata.product_event_type Es el tipo de evento del registro sin procesar.
alert.event_values.fileWriteEvent/fullPath target.file.full_path Es la ruta de acceso completa del archivo escrito desde el registro sin procesar.
alert.event_values.fileWriteEvent/md5 target.file.md5 El hash MD5 del archivo escrito desde el registro sin procesar.
alert.event_values.fileWriteEvent/pid principal.process.pid El ID de proceso que escribió el archivo desde el registro sin procesar.
alert.event_values.fileWriteEvent/processPath principal.process.file.full_path Es la ruta de acceso del proceso que escribió el archivo desde el registro sin procesar. Se combina con alert.event_values.fileWriteEvent/process para crear la ruta de acceso completa si el SO es Windows.
alert.event_values.fileWriteEvent/size target.file.size Es el tamaño del archivo escrito desde el registro sin procesar.
alert.event_values.fileWriteEvent/username principal.user.userid El usuario que escribió el archivo desde el registro sin procesar.
alert.event_values.ipv4NetworkEvent/localIP principal.ip La 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 Es el nombre del proceso del registro sin procesar. Se combina con alert.event_values.ipv4NetworkEvent/processPath para crear la ruta de acceso completa si el SO es Windows.
alert.event_values.ipv4NetworkEvent/processPath principal.process.file.full_path La ruta de acceso del proceso desde el registro sin procesar. Se combina con alert.event_values.ipv4NetworkEvent/process para crear la ruta de acceso completa si el SO 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 Es la 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 La 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 El ID de proceso superior del registro sin procesar.
alert.event_values.processEvent/parentProcess principal.process.file.full_path Es el nombre del proceso superior del registro sin procesar.
alert.event_values.processEvent/parentProcessPath principal.process.file.full_path Es la 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 Es 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 procesar
alert.event_values.processEvent/processPath target.process.file.full_path La ruta de acceso del proceso desde el registro sin procesar.
alert.event_values.processEvent/timestamp read_only_udm.metadata.event_timestamp La 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 Es el nombre del proceso del registro sin procesar. Se combina con alert.event_values.urlMonitorEvent/processPath para crear la ruta de acceso completa si el SO es Windows.
alert.event_values.urlMonitorEvent/processPath principal.process.file.full_path La ruta de acceso del proceso desde el registro sin procesar. Se combina con alert.event_values.urlMonitorEvent/process para crear la ruta de acceso completa si el SO es Windows.
alert.event_values.urlMonitorEvent/remoteIpAddress target.ip La 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 La marca de tiempo del evento del registro sin procesar.
alert.event_values.urlMonitorEvent/urlMethod network.http.method El método HTTP del registro sin procesar.
alert.event_values.urlMonitorEvent/userAgent network.http.user_agent El usuario-agente 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 Es el 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 coincidencia múltiple del registro sin procesar
alert.source additional.fields.value.string_value Es la fuente de la alerta del registro sin procesar.
authmethod extensions.auth.mechanism Es el método de autenticación del registro sin procesar. Establece el valor en LOCAL si es local o LOCAL, de lo contrario, configúralo en MECHANISM_OTHER.
authsubmethod extensions.auth.auth_details Es el submétodo de autenticación del registro sin procesar, convertido a mayúsculas.
cliente principal.ip La dirección IP del cliente del registro sin procesar.
conditions.data.tests[].token security_result.detection_fields.key Es el token de las pruebas de condiciones en el registro sin procesar.
conditions.data.tests[].value security_result.detection_fields.value Es el valor de las pruebas de condiciones en el registro sin procesar.
descripción read_only_udm.metadata.description Es la descripción del registro sin procesar.
host.agent_version read_only_udm.metadata.product_version Es la 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 Es la plataforma del sistema operativo del registro sin procesar.
host.os.product_name read_only_udm.principal.platform_version Es el nombre del producto del sistema operativo del registro sin procesar.
host.primary_ip_address read_only_udm.principal.ip La 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 los caracteres - reemplazados por :
host_ principal.hostname El nombre de host del registro sin procesar.
host_details.data.agent_version read_only_udm.metadata.product_version Es la 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 Es la plataforma del sistema operativo del registro sin procesar.
host_details.data.os.product_name read_only_udm.principal.platform_version Es el nombre del producto del sistema operativo del registro sin procesar.
host_details.data.primary_ip_address read_only_udm.principal.ip La 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 los caracteres - reemplazados por :.
indicators.data.description read_only_udm.metadata.description Es la descripción del indicador del registro sin procesar.
línea target.application La línea del registro sin procesar.
localusername target.user.user_display_name El nombre de usuario local del registro sin procesar
principal_ip principal.ip La dirección IP principal del registro sin procesar.
inversa read_only_udm.principal.application Es el nombre del proceso del registro sin procesar.
process_id read_only_udm.principal.process.pid El ID de proceso del registro sin procesar.
referrer network.http.referral_url La URL de referencia 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.
rol 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 establece en LOW, MEDIUM o HIGH según la gravedad del registro sin procesar.
target_host read_only_udm.target.hostname El nombre de host de destino del registro sin procesar
target_ip target.ip La dirección IP de destino del registro sin procesar.
target_ip1 target.ip La dirección IPv6 de destino del registro sin procesar
timestamp timestamp La marca de tiempo del registro sin procesar.
upstream target.url La URL upstream del registro sin procesar.
nombre de usuario target.user.userid El nombre de usuario del registro sin procesar.

Cambios

2024-12-12

Mejora:

  • Se agregó compatibilidad con el nuevo formato de registros JSON.

2024-10-23

Mejora:

  • Se asignó cs12 a additional.fields.
  • Se asignó cs9 a target.process.file.md5.

2024-10-15

Mejora:

  • Se asignaron account_name, UUID, Mitre, host_details.data.sysinfo.url, host_details.route, host_details.data.reported_clone y host_details.data.timezone a security_result.detection_fields.
  • Se asignó Desc a metadata.description.
  • Se asignó Confidence a security_result.confidence.
  • Se asignó alert.appliance._id a additional.fields.
  • Se asignaron host_details.data.stats.acqs, host_details.data.stats.alerting_conditions, host_details.data.stats.alerts, host_details.data.stats.exploit_alerts, host_details.data.stats.exploit_blocks y host_details.data.stats.false_positive_alerts a security_result.detection_fields.

2024-09-12

Mejora:

  • Se asignaron categoryOutcome y cs13 a additional.fields.
  • Se asignó cs6 a target.process.file.sha1.
  • Se asignó cs9 a target.process.file.md5.

2024-08-28

Mejora:

  • Se asignó host_details.message a security_result.action_details.
  • Se asignaron alert.md5values, alert.resolution, alert.is_false_positive y alert.alert_type a additional.fields.
  • Se asignó type.threat_type a security_result.threat_name.
  • Se asignó ent.lms_event_id a metadata.product_log_id.
  • Se asignó email.smtp.mail_from a network.email.from.
  • Se asignó email.headers.subject a network.email.subject.
  • Se asignó email.headers.to a network.email.to.
  • Se asignaron ent.type, ent.id, ent.name, ent.object_source, ent.binary y ent.attributes.scan_id a security_result.detection_fields.

2024-08-13

Mejora:

  • Se asignó cs11Label a additional_cs11Label.key.
  • Se asignó cs11 a additional_cs11.value.

2024-04-04

Mejora:

  • Se agregó un patrón de Grok para recuperar datos JSON y analizar registros sin analizar.
  • Se asignó alert.sysinfo.mac_address a principal.mac.
  • Se asignó host_details.data.agent_version a metadata.product_version.
  • Se asignó alert.url a metadata.url_back_to_product.
  • Se asignó description a metadata.description.
  • Se asignó alert.event_type a metadata.product_event_type.
  • Se asignó alert.agent._id a principal.asset.asset_id.
  • Se asignó alert.event_id a metadata.product_log_id.

2024-04-03

Mejora:

  • Se asignó deviceCustomDate1Label a additional_deviceCustomDate1.key.
  • Se asignó deviceCustomDate1 a additional_deviceCustomDate1.value.
  • Se asignó deviceCustomDate2 a additional_deviceCustomDate2.value.

2024-04-02

Mejora:

  • Se agregó una verificación de regex a fileHash para asignar md5 y sha256, respectivamente.

2024-01-04

Mejora:

  • Se agregó compatibilidad con registros descartados.
  • Se asignó client a principal.ip.
  • Se asignó principal_ip a principal.ip.
  • Se asignó remoteaddress a principal.ip.
  • Se asignó host_ a principal.hostname.
  • Se asignó line a principal.application.
  • Se asignó username a principal.user.userid.
  • Se asignó client_app_type a principal.resource.attribute.labels.
  • Se asignó upstream a target.url.
  • Se asignó role a target.user.role_name.
  • Se asignó server a target.resource.attribute.labels.
  • Se asignó localusername a target.user.user_display_name.
  • Se asignó request a additional.fields.
  • Se asignó mlocked a additional.fields.
  • Se asignó kernel_stack a additional.fields.
  • Se asignó sessionID a network.session_id.
  • Se asignó auth_mechanism a extensions.auth.mechanism.
  • Se asignó authsubmethod a extensions.auth.auth_details.

2023-05-08

Mejora:

  • Se admite un nuevo tipo de registros JSON.
  • client_ip se asignó a principal.ip.
  • client_src_port se asignó a principal.port.
  • ssl_version asignótonetwork.tls.version_protocol`.
  • ssl_cipher se asignó a network.tls.cipher.
  • method se asignó a network.http.method.
  • uri_path se asignó a network.http.referral_url.
  • persistent_session_id se asignó a network.session_id.
  • uri_query se asignó a additional.fields.
  • rewritten_uri_query se asignó a additional.fields.
  • virtualservice se asignó a additional.fields.
  • service_engine se asignó a additional.fields.
  • etag se asignó a additional.fields.
  • pool se asignó a additional.fields.
  • pool_name se asignó a additional.fields.
  • request_state se asignó a additional.fields.
  • compression se asignó a additional.fields.
  • vs_name se asignó a additional.fields.
  • request_id se asignó a additional.fields.
  • headers_received_from_server.Server se asignó a additional.fields.
  • headers_received_from_server.X-Request-Id se asignó a additional.fields.
  • headers_received_from_server.X-Server-Id se asignó a additional.fields.

2023-04-24

Mejora:

  • Se agregó compatibilidad con los registros en formato CEF.

2022-08-19

Corrección de errores:

  • Se asignó event_values.ipv4NetworkEvent/localIP a principal.ip.
  • Se cambió el nombre del evento a event1 del registro para evitar un error de descriptor.
  • Se agregó una verificación de nulidad a host_details.data.primary_ip_address antes de asignarla a principal.ip.
  • Se agregó una verificación de nulidad a host_details.data.primary_mac antes de asignarlo a principal.mac.
  • Se agregó la verificación de nulo a alert.reported_at antes de la asignación a event.timestamp.

¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.