Coletar registros do FireEye HX

Compatível com:

Este documento explica como coletar registros do FireEye Endpoint Security (HX) para as operações de segurança do Google usando o Bindplane. O analisador tenta processar a mensagem de entrada como JSON. Se a mensagem não estiver no formato JSON, ela vai usar padrões grok para extrair campos e realizar o mapeamento condicional da UDM com base no tipo de evento extraído e em outros critérios.

Antes de começar

  • Verifique se você tem uma instância do Google Security Operations.
  • Verifique se você está usando o Windows 2016 ou uma versão mais recente ou um host Linux com systemd.
  • Se estiver executando por trás de um proxy, verifique se as portas do firewall estão abertas.
  • Verifique se você tem acesso privilegiado ao FireEye Endpoint Security.

Receber o arquivo de autenticação de ingestão do Google SecOps

  1. Faça login no console do Google SecOps.
  2. Acesse Configurações do SIEM > Agentes de coleta.
  3. Faça o download do arquivo de autenticação de transferência. Salve o arquivo com segurança no sistema em que o BindPlane será instalado.

Receber o ID de cliente do Google SecOps

  1. Faça login no console do Google SecOps.
  2. Acesse Configurações do SIEM > Perfil.
  3. Copie e salve o ID do cliente na seção Detalhes da organização.

Instalar o agente do Bindplane

Instalação do Windows

  1. Abra o Prompt de Comando ou o PowerShell como administrador.
  2. Execute este comando:

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

Instalação do Linux

  1. Abra um terminal com privilégios de raiz ou sudo.
  2. Execute este comando:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

Outros recursos de instalação

Configurar o agente do Bindplane para processar o Syslog e enviar ao Google SecOps

  1. Acesse o arquivo de configuração:

    1. Localize o arquivo config.yaml. Normalmente, ele está no diretório /etc/bindplane-agent/ no Linux ou no diretório de instalação no Windows.
    2. Abra o arquivo usando um editor de texto (por exemplo, nano, vi ou Notepad).
  2. Edite o arquivo config.yaml da seguinte forma:

    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. Substitua a porta e o endereço IP conforme necessário na sua infraestrutura.

  4. Substitua <customer_id> pelo ID real do cliente.

  5. Atualize /path/to/ingestion-authentication-file.json para o caminho em que o arquivo de autenticação foi salvo na seção Receber o arquivo de autenticação de transferência do Google SecOps.

Reinicie o agente do Bindplane para aplicar as mudanças

  • Para reiniciar o agente do Bindplane no Linux, execute o seguinte comando:

    sudo systemctl restart bindplane-agent
    
  • Para reiniciar o agente do Bindplane no Windows, use o console Services ou digite o seguinte comando:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configurar o syslog do Event Streamer do FireEye HX usando a interface

  1. Faça login no console de gerenciamento do FireEye HX.
  2. Acesse Streamer de eventos.
  3. Selecione Ativar o streamer de eventos no host.
  4. Salve as alterações na política.
  5. Acesse Destinos > Configurações do servidor > Adicionar destino do syslog.
  6. Informe os seguintes detalhes de configuração:
    • Nome: insira um nome exclusivo para rotular o coletor de registros do Google SecOps.
    • Endereço IP: insira o endereço IP do agente do Bindplane.
    • Porta: insira o número da porta do agente do Bindplane.
  7. Salve as alterações para aplicar.

Configurar o syslog do Event Streamer do FireEye HX usando a CLI

  1. Faça login no dispositivo FireEye HX usando a interface de linha de comando (CLI).
  2. Execute o comando a seguir para ativar o modo de configuração:

    enable
    configure terminal
    
  3. Execute o comando abaixo para adicionar um destino de servidor syslog remoto:

    logging BINDPLANE_IP_ADDRESS port PORT_NUMBER port
    
    • Substitua:
      • BINDPLANE_IP_ADDRESS: o endereço IP do encaminhador do Google SecOps
      • PORT_NUMBER: o número da porta
  4. Execute o comando a seguir para salvar os detalhes de configuração:

    write mem
    

Tabela de mapeamento do UDM

Campo de registro Mapeamento do UDM Lógica
alert.agent._id principal.asset.asset_id O ID do agente do registro bruto, com prefixo AGENT ID:
alert.agent.url principal.labels.value O URL do agente do registro bruto.
alert.condition._id additional.fields.value.string_value O ID da condição do registro bruto, com os caracteres = removidos.
alert.condition.url additional.fields.value.string_value O URL da condição do registro bruto, com os caracteres = removidos.
alert.decorators[].data.fireeye_report.indicator_verdict.malware_families.0 security_result.threat_name A família de malware do relatório da FireEye no campo decorators do registro bruto.
alert.decorators[].data.fireeye_report.risk_summary security_result.description O resumo de risco do relatório do FireEye no campo decorators do registro bruto.
alert.decorators[].data.fireeye_verdict security_result.severity_details O veredito do FireEye do campo decorators do registro bruto.
alert.event_at read_only_udm.metadata.event_timestamp O carimbo de data/hora do evento do registro bruto.
alert.event_id read_only_udm.metadata.product_log_id O ID do evento do registro bruto.
alert.event_type read_only_udm.metadata.product_event_type O tipo de evento do registro bruto.
alert.event_values.fileWriteEvent/fullPath target.file.full_path O caminho completo do arquivo gravado a partir do registro bruto.
alert.event_values.fileWriteEvent/md5 target.file.md5 O hash MD5 do arquivo gravado a partir do registro bruto.
alert.event_values.fileWriteEvent/pid principal.process.pid O ID do processo que gravou o arquivo do registro bruto.
alert.event_values.fileWriteEvent/processPath principal.process.file.full_path O caminho do processo que gravou o arquivo do registro bruto. Combinado com alert.event_values.fileWriteEvent/process para criar o caminho completo se o SO for Windows.
alert.event_values.fileWriteEvent/size target.file.size O tamanho do arquivo gravado a partir do registro bruto.
alert.event_values.fileWriteEvent/username principal.user.userid O usuário que gravou o arquivo no registro bruto.
alert.event_values.ipv4NetworkEvent/localIP principal.ip O endereço IP local do registro bruto.
alert.event_values.ipv4NetworkEvent/localPort principal.port A porta local do registro bruto.
alert.event_values.ipv4NetworkEvent/pid principal.process.pid O ID do processo do registro bruto.
alert.event_values.ipv4NetworkEvent/process principal.process.file.full_path O nome do processo do registro bruto. Combinado com alert.event_values.ipv4NetworkEvent/processPath para criar o caminho completo se o SO for Windows.
alert.event_values.ipv4NetworkEvent/processPath principal.process.file.full_path O caminho do processo do registro bruto. Combinado com alert.event_values.ipv4NetworkEvent/process para criar o caminho completo se o SO for Windows.
alert.event_values.ipv4NetworkEvent/protocol network.ip_protocol O protocolo de rede do registro bruto.
alert.event_values.ipv4NetworkEvent/remoteIP target.ip O endereço IP remoto do registro bruto.
alert.event_values.ipv4NetworkEvent/remotePort target.port A porta remota do registro bruto.
alert.event_values.ipv4NetworkEvent/timestamp read_only_udm.metadata.event_timestamp O carimbo de data/hora do evento do registro bruto.
alert.event_values.ipv4NetworkEvent/username principal.user.userid O usuário do registro bruto.
alert.event_values.processEvent/md5 target.process.file.md5 O hash MD5 do processo do registro bruto.
alert.event_values.processEvent/parentPid principal.process.pid O ID do processo pai do registro bruto.
alert.event_values.processEvent/parentProcess principal.process.file.full_path O nome do processo pai do registro bruto.
alert.event_values.processEvent/parentProcessPath principal.process.file.full_path O caminho do processo pai do registro bruto.
alert.event_values.processEvent/pid target.process.pid O ID do processo do registro bruto.
alert.event_values.processEvent/process target.process.file.full_path O nome do processo do registro bruto.
alert.event_values.processEvent/processCmdLine target.process.command_line A linha de comando do processo do registro bruto.
alert.event_values.processEvent/processPath target.process.file.full_path O caminho do processo do registro bruto.
alert.event_values.processEvent/timestamp read_only_udm.metadata.event_timestamp O carimbo de data/hora do evento do registro bruto.
alert.event_values.processEvent/username principal.user.userid O usuário do registro bruto.
alert.event_values.urlMonitorEvent/hostname target.hostname O nome do host do registro bruto.
alert.event_values.urlMonitorEvent/localPort principal.port A porta local do registro bruto.
alert.event_values.urlMonitorEvent/pid principal.process.pid O ID do processo do registro bruto.
alert.event_values.urlMonitorEvent/process principal.process.file.full_path O nome do processo do registro bruto. Combinado com alert.event_values.urlMonitorEvent/processPath para criar o caminho completo se o SO for Windows.
alert.event_values.urlMonitorEvent/processPath principal.process.file.full_path O caminho do processo do registro bruto. Combinado com alert.event_values.urlMonitorEvent/process para criar o caminho completo se o SO for Windows.
alert.event_values.urlMonitorEvent/remoteIpAddress target.ip O endereço IP remoto do registro bruto.
alert.event_values.urlMonitorEvent/remotePort target.port A porta remota do registro bruto.
alert.event_values.urlMonitorEvent/requestUrl target.url O URL solicitado do registro bruto.
alert.event_values.urlMonitorEvent/timestamp read_only_udm.metadata.event_timestamp O carimbo de data/hora do evento do registro bruto.
alert.event_values.urlMonitorEvent/urlMethod network.http.method O método HTTP do registro bruto.
alert.event_values.urlMonitorEvent/userAgent network.http.user_agent O user agent do registro bruto.
alert.event_values.urlMonitorEvent/username principal.user.userid O usuário do registro bruto.
alert.indicator._id security_result.about.labels.value O ID do indicador do registro bruto.
alert.indicator.name read_only_udm.security_result.summary O nome do indicador do registro bruto.
alert.indicator.url security_result.about.labels.value O URL do indicador do registro bruto.
alert.multiple_match read_only_udm.metadata.description A mensagem de correspondências múltiplas do registro bruto.
alert.source additional.fields.value.string_value A origem do alerta do registro bruto.
authmethod extensions.auth.mechanism O método de autenticação do registro bruto. Defina como LOCAL se o valor for local ou LOCAL. Caso contrário, defina como MECHANISM_OTHER.
authsubmethod extensions.auth.auth_details O submétodo de autenticação do registro bruto, convertido em letras maiúsculas.
cliente principal.ip O endereço IP do cliente do registro bruto.
conditions.data.tests[].token security_result.detection_fields.key O token dos testes de condições no registro bruto.
conditions.data.tests[].value security_result.detection_fields.value O valor dos testes de condições no registro bruto.
description read_only_udm.metadata.description A descrição do registro bruto.
host.agent_version read_only_udm.metadata.product_version A versão do agente do registro bruto.
host.containment_state read_only_udm.principal.containment_state O estado de contenção do registro bruto.
host.domain read_only_udm.principal.administrative_domain O domínio do registro bruto.
host.hostname read_only_udm.principal.hostname O nome do host do registro bruto.
host.os.platform read_only_udm.principal.platform A plataforma do sistema operacional do registro bruto.
host.os.product_name read_only_udm.principal.platform_version O nome do produto do sistema operacional do registro bruto.
host.primary_ip_address read_only_udm.principal.ip O endereço IP principal do registro bruto.
host.primary_mac read_only_udm.principal.mac O endereço MAC principal do registro bruto, com os caracteres - substituídos por :.
host_ principal.hostname O nome do host do registro bruto.
host_details.data.agent_version read_only_udm.metadata.product_version A versão do agente do registro bruto.
host_details.data.containment_state read_only_udm.security_result.severity_details O estado de contenção do registro bruto.
host_details.data.domain read_only_udm.principal.administrative_domain O domínio do registro bruto.
host_details.data.hostname read_only_udm.principal.hostname O nome do host do registro bruto.
host_details.data.os.platform read_only_udm.principal.platform A plataforma do sistema operacional do registro bruto.
host_details.data.os.product_name read_only_udm.principal.platform_version O nome do produto do sistema operacional do registro bruto.
host_details.data.primary_ip_address read_only_udm.principal.ip O endereço IP principal do registro bruto.
host_details.data.primary_mac read_only_udm.principal.mac O endereço MAC principal do registro bruto, com os caracteres - substituídos por :.
indicators.data.description read_only_udm.metadata.description A descrição do indicador do registro bruto.
linha target.application A linha do registro bruto.
nome de usuário local target.user.user_display_name O nome de usuário local do registro bruto.
principal_ip principal.ip O endereço IP principal do registro bruto.
difusão reversa que restaura read_only_udm.principal.application O nome do processo do registro bruto.
process_id read_only_udm.principal.process.pid O ID do processo do registro bruto.
referrer network.http.referral_url O URL de referência do registro bruto.
remoteaddress principal.ip O endereço remoto do registro bruto.
solicitação additional.fields.value.string_value A solicitação do registro bruto.
papel target.user.role_name O papel do registro bruto.
servidor target.resource.attribute.labels.value O servidor do registro bruto.
sessionID network.session_id O ID da sessão do registro bruto.
gravidade, security_result.severity Defina como LOW, MEDIUM ou HIGH com base na gravidade do registro bruto.
target_host read_only_udm.target.hostname O nome do host de destino do registro bruto.
target_ip target.ip O endereço IP de destino do registro bruto.
target_ip1 target.ip O endereço IPv6 de destino do registro bruto.
timestamp timestamp O carimbo de data/hora do registro bruto.
upstream target.url O URL upstream do registro bruto.
nome de usuário target.user.userid O nome de usuário do registro bruto.

Alterações

2024-12-12

Melhoria:

  • Adição de suporte ao novo formato de registros JSON.

2024-10-23

Melhoria:

  • cs12 foi mapeado para additional.fields.
  • cs9 foi mapeado para target.process.file.md5.

2024-10-15

Melhoria:

  • Mapeamos account_name, UUID, Mitre, host_details.data.sysinfo.url, host_details.route, host_details.data.reported_clone e host_details.data.timezone para security_result.detection_fields.
  • Desc foi mapeado para metadata.description.
  • Confidence foi mapeado para security_result.confidence.
  • alert.appliance._id foi mapeado para additional.fields.
  • 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 e host_details.data.stats.false_positive_alerts foram mapeados para security_result.detection_fields.

2024-09-12

Melhoria:

  • Mapeou categoryOutcome, cs13 para additional.fields.
  • cs6 foi mapeado para target.process.file.sha1.
  • cs9 foi mapeado para target.process.file.md5.

2024-08-28

Melhoria:

  • host_details.message foi mapeado para security_result.action_details.
  • alert.md5values, alert.resolution, alert.is_false_positive e alert.alert_type foram mapeados para additional.fields.
  • type.threat_type foi mapeado para security_result.threat_name.
  • ent.lms_event_id foi mapeado para metadata.product_log_id.
  • email.smtp.mail_from foi mapeado para network.email.from.
  • email.headers.subject foi mapeado para network.email.subject.
  • email.headers.to foi mapeado para network.email.to.
  • ent.type, ent.id, ent.name, ent.object_source, ent.binary e ent.attributes.scan_id foram mapeados para security_result.detection_fields.

2024-08-13

Melhoria:

  • cs11Label foi mapeado para additional_cs11Label.key.
  • cs11 foi mapeado para additional_cs11.value.

2024-04-04

Melhoria:

  • Foi adicionado um padrão Grok para extrair dados JSON e analisar logs não analisados.
  • alert.sysinfo.mac_address foi mapeado para principal.mac.
  • host_details.data.agent_version foi mapeado para metadata.product_version.
  • alert.url foi mapeado para metadata.url_back_to_product.
  • description foi mapeado para metadata.description.
  • alert.event_type foi mapeado para metadata.product_event_type.
  • alert.agent._id foi mapeado para principal.asset.asset_id.
  • alert.event_id foi mapeado para metadata.product_log_id.

2024-04-03

Melhoria:

  • deviceCustomDate1Label foi mapeado para additional_deviceCustomDate1.key.
  • deviceCustomDate1 foi mapeado para additional_deviceCustomDate1.value.
  • deviceCustomDate2 foi mapeado para additional_deviceCustomDate2.value.

2024-04-02

Melhoria:

  • Adicionamos uma verificação de regex a fileHash para mapear md5 e sha256, respectivamente.

2024-01-04

Melhoria:

  • Adição de suporte a registros descartados.
  • client foi mapeado para principal.ip.
  • principal_ip foi mapeado para principal.ip.
  • remoteaddress foi mapeado para principal.ip.
  • host_ foi mapeado para principal.hostname.
  • line foi mapeado para principal.application.
  • username foi mapeado para principal.user.userid.
  • client_app_type foi mapeado para principal.resource.attribute.labels.
  • upstream foi mapeado para target.url.
  • role foi mapeado para target.user.role_name.
  • server foi mapeado para target.resource.attribute.labels.
  • localusername foi mapeado para target.user.user_display_name.
  • request foi mapeado para additional.fields.
  • mlocked foi mapeado para additional.fields.
  • kernel_stack foi mapeado para additional.fields.
  • sessionID foi mapeado para network.session_id.
  • auth_mechanism foi mapeado para extensions.auth.mechanism.
  • authsubmethod foi mapeado para extensions.auth.auth_details.

2023-05-08

Melhoria:

  • Novo tipo de registro JSON com suporte.
  • client_ip mapeado para principal.ip.
  • client_src_port mapeado para principal.port.
  • ssl_version mappedtonetwork.tls.version_protocol`.
  • ssl_cipher mapeado para network.tls.cipher.
  • method mapeado para network.http.method.
  • uri_path mapeado para network.http.referral_url.
  • persistent_session_id mapeado para network.session_id.
  • uri_query mapeado para additional.fields.
  • rewritten_uri_query mapeado para additional.fields.
  • virtualservice mapeado para additional.fields.
  • service_engine mapeado para additional.fields.
  • etag mapeado para additional.fields.
  • pool mapeado para additional.fields.
  • pool_name mapeado para additional.fields.
  • request_state mapeado para additional.fields.
  • compression mapeado para additional.fields.
  • vs_name mapeado para additional.fields.
  • request_id mapeado para additional.fields.
  • headers_received_from_server.Server mapeado para additional.fields.
  • headers_received_from_server.X-Request-Id mapeado para additional.fields.
  • headers_received_from_server.X-Server-Id mapeado para additional.fields.

2023-04-24

Melhoria:

  • Adicionamos suporte a registros no formato CEF.

2022-08-19

Correção de bugs:

  • Mapeou event_values.ipv4NetworkEvent/localIP para principal.ip.
  • O evento foi renomeado para "event1" no registro para evitar erros de descritor.
  • Adição de uma verificação de valores nulos em host_details.data.primary_ip_address antes de mapear para principal.ip.
  • Adição de uma verificação de valores nulos em host_details.data.primary_mac antes do mapeamento para principal.mac.
  • Foi adicionada uma verificação de valor nulo ao mapeamento anterior de alert.reported_at para event.timestamp.

Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.