Coletar registros CEF do ArcSight

Compatível com:

Este documento explica como ingerir registros do ArcSight CEF (Common Event Format) no Google Security Operations usando o Bindplane. O analisador transforma dados brutos em um formato estruturado de modelo de dados unificado (UDM). Ele extrai campos do cabeçalho e das extensões do CEF, mapeia para campos do UDM e executa uma lógica específica para categorizar eventos como logins de usuários, conexões de rede e acessos a recursos com base nas informações extraídas.

Antes de começar

Verifique se você tem os pré-requisitos a seguir:

  • Instância do Google SecOps
  • Um host Windows 2016 ou mais recente ou Linux com systemd
  • Se estiver executando por trás de um proxy, as portas do firewall estarão abertas.
  • ArcSight SmartConnector 8.4 (ou mais recente) instalado em um host com acesso à rede do agente do Bindplane
  • Acesso privilegiado ao portal da OpenText

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. Baixe o arquivo de autenticação de ingestão. Salve o arquivo de forma segura no sistema em que o Bindplane será instalado.

Receber o ID do 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

Instale o agente do Bindplane no sistema operacional Windows ou Linux de acordo com as instruções a seguir.

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 root 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

Para mais opções de instalação, consulte o guia de instalação.

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

  1. Acesse o arquivo de configuração:
    • Localize o arquivo config.yaml. Normalmente, ele fica no diretório /etc/bindplane-agent/ no Linux ou no diretório de instalação no Windows.
    • Abra o arquivo usando um editor de texto (por exemplo, nano, vi ou Bloco de Notas).
  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_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
    
    • Substitua a porta e o endereço IP conforme necessário na sua infraestrutura.
    • Substitua <customer_id> pelo ID do cliente real.
    • Atualize /path/to/ingestion-authentication-file.json para o caminho em que o arquivo de autenticação foi salvo na seção Receber arquivo de autenticação de ingestão do Google SecOps.

Reinicie o agente do Bindplane para aplicar as mudanças

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

    sudo systemctl restart bindplane-agent
    
  • Para reiniciar o agente do Bindplane no Windows, use o console Serviços ou insira o seguinte comando:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Baixar o ArcSight SmartConnector

  1. Faça login no portal de suporte da OpenText.
  2. Encontre e faça o download do ArcSight SmartConnector mais recente para Linux.
  3. Exemplo de nome de arquivo: ArcSight-Connector-Linux64-8.4.0.8499.0.bin.

Instalar o ArcSight SmartConnector

  1. Faça upload do arquivo .bin para o servidor SmartConnector:

    scp ArcSight-Connector-Linux64-8.4.0.8499.0.bin user@your-smartconnector-host:/tmp
    
  2. Faça login no servidor SmartConnector usando SSH e execute:

    cd /tmp
    chmod +x ArcSight-Connector-Linux64-8.4.0.8499.0.bin
    ./ArcSight-Connector-Linux64-8.4.0.8499.0.bin
    
  3. Siga o instalador interativo:

    • Selecione o diretório de instalação (por exemplo, /opt/arcsight/connectors/current).
    • Aceite a licença.
    • Selecione Instalar conector quando solicitado.

Configurar o ArcSight SmartConnector para enviar CEF ao Syslog

  1. No host do SmartConnector, inicie o assistente de destino:

    cd /opt/arcsight/connectors/current/bin
    ./arcsight connectors
    
  2. No assistente, faça o seguinte:

    • Selecione Adicionar destino.
    • Selecione Syslog do CEF.
  3. Informe os seguintes detalhes de configuração:

    • Host/IP: insira o endereço IP do agente do Bindplane.
    • Porta: digite o número da porta do agente do Bindplane.
    • Protocolo: selecione UDP.
  4. Conclua a configuração e reinicie o conector:

    ./arcsight agents
    
  5. Faça uma verificação de conectividade. Por exemplo, procure Successfully connected to syslog: X.X.X.X:514.

    tail -f /opt/arcsight/connectors/current/logs/agent.log
    

Tabela de mapeamento da UDM

Campo de registro Mapeamento da UDM Lógica
age security_result.action_details Mapeado diretamente do campo act.
agt principal.ip Mapeado diretamente do campo agt.
agt principal.asset.ip Mapeado diretamente do campo agt.
app network.application_protocol Mapeado diretamente do campo app.
arte metadata.event_timestamp.seconds Mapeado diretamente do campo art.
cs2 additional.fields.value.string_value Mapeado diretamente do campo cs2 quando cs2Label é EventlogCategory.
cs2Label additional.fields.key Mapeado diretamente do campo cs2Label quando o valor é EventlogCategory.
cs3 additional.fields.value.string_value Mapeado diretamente do campo cs3 quando cs3Label é Process ID.
cs3Label additional.fields.key Mapeado diretamente do campo cs3Label quando o valor é Process ID.
cs5 additional.fields.value.string_value Mapeado diretamente do campo cs5 quando cs5Label é Authentication Package Name.
cs5Label additional.fields.key Mapeado diretamente do campo cs5Label quando o valor é Authentication Package Name.
cs6 additional.fields.value.string_value Mapeado diretamente do campo cs6 quando cs6Label é Logon GUID.
cs6Label additional.fields.key Mapeado diretamente do campo cs6Label quando o valor é Logon GUID.
dhost about.hostname Mapeado diretamente do campo dhost.
dhost target.hostname Mapeado diretamente do campo dhost.
dntdom about.administrative_domain Mapeado diretamente do campo dntdom.
dntdom target.administrative_domain Mapeado diretamente do campo dntdom.
dproc about.process.command_line Mapeado diretamente do campo dproc.
dproc target.process.command_line Mapeado diretamente do campo dproc.
dst principal.ip Mapeado diretamente do campo dst.
dst principal.asset.ip Mapeado diretamente do campo dst.
dst target.ip Mapeado diretamente do campo dst.
duid target.user.userid Mapeado diretamente do campo duid.
duser target.user.user_display_name Mapeado diretamente do campo duser.
dvc about.ip Mapeado diretamente do campo dvc.
dvchost about.hostname Mapeado diretamente do campo dvchost.
eventId additional.fields.value.string_value Mapeado diretamente do campo eventId.
externalId metadata.product_log_id Mapeado diretamente do campo externalId.
fname additional.fields.value.string_value Mapeado diretamente do campo fname.
msg metadata.description Mapeado diretamente do campo msg.
proto network.ip_protocol Mapeado diretamente do campo proto. Traduz nomes de protocolos para as respectivas constantes (por exemplo, tcp a TCP).
rt metadata.event_timestamp.seconds Mapeado diretamente do campo rt.
shost about.hostname Mapeado diretamente do campo shost.
shost principal.hostname Mapeado diretamente do campo shost.
src principal.ip Mapeado diretamente do campo src.
src principal.asset.ip Mapeado diretamente do campo src.
src target.ip Mapeado diretamente do campo src.
sproc principal.process.command_line Mapeado diretamente do campo sproc.
spt principal.port Mapeado diretamente do campo spt.
spt target.port Mapeado diretamente do campo spt.
additional.EventRecordID additional.fields.value.string_value Mapeado diretamente do campo ad.EventRecordID.
additional.ThreadID additional.fields.value.string_value Mapeado diretamente do campo ad.ThreadID.
additional.Opcode additional.fields.value.string_value Mapeado diretamente do campo ad.Opcode.
additional.ProcessID additional.fields.value.string_value Mapeado diretamente do campo ad.ProcessID.
additional.TargetDomainName additional.fields.value.string_value Mapeado diretamente do campo ad.TargetDomainName.
additional.Version additional.fields.value.string_value Mapeado diretamente do campo ad.Version.
deviceExternalId about.asset.hardware.serial_number Mapeado diretamente do campo deviceExternalId.
deviceInboundInterface additional.fields.value.string_value Mapeado diretamente do campo deviceInboundInterface.
deviceOutboundInterface additional.fields.value.string_value Mapeado diretamente do campo deviceOutboundInterface.
PanOSConfigVersion security_result.detection_fields.value Mapeado diretamente do campo PanOSConfigVersion.
PanOSContentVersion security_result.detection_fields.value Mapeado diretamente do campo PanOSContentVersion.
PanOSDGHierarchyLevel1 security_result.detection_fields.value Mapeado diretamente do campo PanOSDGHierarchyLevel1.
PanOSDestinationLocation target.location.country_or_region Mapeado diretamente do campo PanOSDestinationLocation.
PanOSRuleUUID metadata.product_log_id Mapeado diretamente do campo PanOSRuleUUID.
PanOSThreatCategory security_result.category_details Mapeado diretamente do campo PanOSThreatCategory.
PanOSThreatID security_result.threat_id Mapeado diretamente do campo PanOSThreatID.
about.asset.asset_id Gerado pela concatenação de Palo Alto Networks., o nome do fornecedor (LF) e o campo deviceExternalId.
extensions.auth.type Defina como AUTHTYPE_UNSPECIFIED se o campo event_name contiver logged on.
metadata.description Se o campo description contiver by seguido de um endereço IP, o endereço IP será extraído e mapeado para principal.ip e principal.asset.ip.
metadata.event_type Determinado com base em uma série de verificações condicionais em vários campos, incluindo event_name, principal_*, target_* e device_event_class_id. A lógica determina o tipo de evento mais adequado com base nas informações disponíveis.
metadata.log_type Defina como ARCSIGHT_CEF.
metadata.product_event_type Gerado pela concatenação de \[, the device_event_class_id field, \] - e do campo name.
metadata.product_name Defina como NGFW se o campo product_name for LF.
principal.asset.ip Se o campo description contiver by seguido de um endereço IP, o endereço IP será extraído e mapeado para principal.ip e principal.asset.ip.
principal.ip Se o campo description contiver by seguido de um endereço IP, o endereço IP será extraído e mapeado para principal.ip e principal.asset.ip.
security_result.action Defina como ALLOW se o campo act for alert. Caso contrário, defina como BLOCK.
security_result.severity Definido como HIGH se o campo sev for maior ou igual a 7. Caso contrário, será definido como LOW.

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