Coletar registros do Palo Alto Networks Traps

Compatível com:

Neste documento, explicamos como coletar registros do Palo Alto Networks Traps no Google Security Operations usando o Bindplane. O analisador processa registros nos formatos CSV e chave-valor, transformando-os em UDM. Ele usa grok e análise CSV para extrair campos, realiza lógica condicional com base em mensagens de registro ou valores de campo específicos para mapear campos da UDM e processa vários tipos de eventos, como atualizações de status, verificações de rede e criações de processos.

Antes de começar

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

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

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

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

  1. Acesse o arquivo de configuração:

    1. 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.
    2. 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: '/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: PAN_EDR
                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 do cliente real.

  5. 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 no 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
    

Configurar o Palo Alto Networks Traps

  1. Faça login no console do Cortex XDR ESM.
  2. Selecione Configurações > ESM > Syslog.
  3. Marque a caixa de seleção Ativar syslog.
  4. Informe os seguintes detalhes de configuração:
    • Servidor Syslog: insira o endereço IP do agente do Bindplane.
    • Porta do Syslog: insira o número da porta configurado no Bindplane, por exemplo, 514.
    • Protocolo Syslog: selecione CEF.
    • Defina o Tempo limite de keep-alive como 0.
    • Protocolo de comunicação: selecione UDP.
  5. Na seção Ocorrências de segurança, marque as seguintes caixas de seleção:
    • Evento de prevenção
    • Evento de notificação
    • Evento pós-detecção
  6. Clique em Verificar conectividade > Salvar.

Tabela de mapeamento do UDM

Campo de registro Mapeamento do UDM Lógica
agentId event.idm.read_only_udm.additional.fields.value.string_value O valor de agentId do registro bruto é mapeado para o campo string_value em uma estrutura aninhada em additional.fields. O key desse campo está definido como Agent ID.
agentIp event.idm.read_only_udm.target.ip O valor de agentIp do registro bruto é mapeado para o campo target.ip.
cat event.idm.read_only_udm.security_result.rule_name O valor de cat do registro bruto é mapeado para o campo security_result.rule_name.
class event.idm.read_only_udm.security_result.category_details Usado com subClass para preencher security_result.category_details com o formato class: subClass.
cs1 event.idm.read_only_udm.principal.application, event.idm.read_only_udm.principal.user.email_addresses Se cs1Label for email e cs1 for um endereço de e-mail válido, ele será mapeado para principal.user.email_addresses. Se cs1Label for Initiated by, ele será mapeado para principal.application.
cs2 event.idm.read_only_udm.principal.process.command_line, event.idm.read_only_udm.security_result.description Se cs2Label for subtype, ele será mapeado para security_result.description. Se cs2Label for Initiator CMD, ele será mapeado para principal.process.command_line.
cs3 event.idm.read_only_udm.security_result.action_details Se cs3Label for result, ele será mapeado para security_result.action_details.
customerId event.idm.read_only_udm.additional.fields.value.string_value O valor de customerId do registro bruto é mapeado para o campo string_value em uma estrutura aninhada em additional.fields. O key desse campo está definido como Customer ID.
date_time event.idm.read_only_udm.metadata.event_timestamp.seconds Analisado e convertido em um carimbo de data/hora, depois mapeado para metadata.event_timestamp.seconds.
desc event.idm.read_only_udm.metadata.description O valor de desc do registro bruto é mapeado para o campo metadata.description.
deviceName event.idm.read_only_udm.target.hostname O valor de deviceName do registro bruto é mapeado para o campo target.hostname.
email_receiver event.idm.read_only_udm.network.email.to Extraído do campo msg se ele contiver um endereço de e-mail e mapeado para network.email.to.
endpoint_desc event.idm.read_only_udm.target.resource.attribute.labels.value Derivado de isEndpoint: Yes, host is an endpoint. se isEndpoint for 1, No, host is not an endpoint se isEndpoint for 0. O key está definido como Is Endpoint.
eventType event.idm.read_only_udm.metadata.product_event_type, event.idm.read_only_udm.metadata.event_type O valor de eventType do registro bruto é mapeado para o campo metadata.product_event_type. Também usado para derivar metadata.event_type com base no valor dele (por exemplo, Management Audit Logs resulta em EMAIL_TRANSACTION, XDR Analytics BIOC ou Behavioral Threat resulta em SCAN_NETWORK).
facility event.idm.read_only_udm.additional.fields.value.string_value O valor de facility do registro bruto é mapeado para o campo string_value em uma estrutura aninhada em additional.fields. O key desse campo está definido como Facility.
fileHash event.idm.read_only_udm.principal.process.file.sha256 O valor de fileHash do registro bruto, convertido em letras minúsculas, é mapeado para o campo principal.process.file.sha256.
filePath event.idm.read_only_udm.principal.process.file.full_path O valor de filePath do registro bruto é mapeado para o campo principal.process.file.full_path.
friendlyName event.idm.read_only_udm.metadata.description O valor de friendlyName do registro bruto é mapeado para o campo metadata.description.
interm_ip event.idm.read_only_udm.intermediary.ip O valor de interm_ip do registro bruto é mapeado para o campo intermediary.ip.
isEndpoint event.idm.read_only_udm.target.resource.attribute.labels.value Usado para derivar target.resource.attribute.labels.value.
isVdi event.idm.read_only_udm.target.resource.resource_type Se isVdi for 1, target.resource.resource_type será definido como VIRTUAL_MACHINE.
msg event.idm.read_only_udm.security_result.summary O valor de msg do registro bruto é mapeado para o campo security_result.summary. Também usado para extrair email_receiver.
msgTextEn event.idm.read_only_udm.security_result.description O valor de msgTextEn do registro bruto é mapeado para o campo security_result.description.
osType event.idm.read_only_udm.target.platform, event.idm.read_only_udm.target.resource.attribute.labels.value Se osType for 1, target.platform será definido como WINDOWS. Se osType for 2, target.platform será definido como MAC. Se osType for 4, target.platform será definido como LINUX. Se osType for 3, o valor será mapeado para target.resource.attribute.labels.value com o key OS.
osVersion event.idm.read_only_udm.target.platform_version O valor de osVersion do registro bruto é mapeado para o campo target.platform_version.
product_version event.idm.read_only_udm.metadata.product_version O valor de product_version do registro bruto é mapeado para o campo metadata.product_version.
proto event.idm.read_only_udm.network.ip_protocol Se proto for udp, network.ip_protocol será definido como UDP.
recordType event.idm.read_only_udm.additional.fields.value.string_value O valor de recordType do registro bruto é mapeado para o campo string_value em uma estrutura aninhada em additional.fields. O key desse campo está definido como Record Type.
regionId event.idm.read_only_udm.principal.location.country_or_region Se regionId for 10, principal.location.country_or_region será definido como Americas (N. Virginia). Se regionId for 70, principal.location.country_or_region será definido como EMEA (Frankfurt).
request event.idm.read_only_udm.target.url O valor de request do registro bruto é mapeado para o campo target.url.
sec_category_details event.idm.read_only_udm.security_result.category_details O valor de sec_category_details do registro bruto é mapeado para o campo security_result.category_details.
sec_desc event.idm.read_only_udm.security_result.description O valor de sec_desc do registro bruto é mapeado para o campo security_result.description.
serverHost event.idm.read_only_udm.principal.hostname O valor de serverHost do registro bruto é mapeado para o campo principal.hostname.
severity event.idm.read_only_udm.security_result.severity Mapeado para security_result.severity com a seguinte lógica: 2 -> CRITICAL, 3 -> ERROR, 4 -> MEDIUM, 5 -> LOW, 6 -> INFORMATIONAL.
severity_val event.idm.read_only_udm.security_result.severity, event.idm.read_only_udm.security_result.severity_details Se severity_val for 0, security_result.severity_details será definido como UNKNOWN_SEVERITY. Caso contrário, ele será mapeado para security_result.severity com a seguinte lógica: 6 -> LOW, 8 -> MEDIUM, 9 -> HIGH.
shost event.idm.read_only_udm.principal.hostname O valor de shost do registro bruto é mapeado para o campo principal.hostname.
src_ip event.idm.read_only_udm.principal.ip O valor de src_ip do registro bruto é mapeado para o campo principal.ip.
subClass event.idm.read_only_udm.security_result.category_details Usado com class para preencher security_result.category_details.
suser event.idm.read_only_udm.principal.user.user_display_name O valor de suser do registro bruto, com colchetes, barras invertidas e aspas simples removidas, é mapeado para o campo principal.user.user_display_name.
targetprocesscmd event.idm.read_only_udm.target.process.command_line O valor de targetprocesscmd do registro bruto é mapeado para o campo target.process.command_line.
targetprocessname event.idm.read_only_udm.target.application O valor de targetprocessname do registro bruto é mapeado para o campo target.application.
targetprocesssha256 event.idm.read_only_udm.target.process.file.sha256 O valor de targetprocesssha256 do registro bruto, convertido em letras minúsculas, é mapeado para o campo target.process.file.sha256.
tenantname event.idm.read_only_udm.target.resource.attribute.labels.value O valor de tenantname do registro bruto é mapeado para o campo value em uma estrutura aninhada em target.resource.attribute.labels. O key desse campo está definido como Tenant name.
event.idm.read_only_udm.metadata.event_type Definido como STATUS_UPDATE por padrão. Mudou para EMAIL_TRANSACTION se eventType for Management Audit Logs. Mudou para SCAN_NETWORK se eventType for XDR Analytics BIOC ou Behavioral Threat, ou se desc for Behavioral Threat. Mudou para SCAN_PROCESS se desc for Suspicious Process Creation. Defina como Palo Alto Networks. Defina como Cortex XDR. Defina como PAN_EDR. Defina como NETWORK_SUSPICIOUS se eventType for XDR Analytics BIOC ou Behavioral Threat, ou se desc for Behavioral Threat.

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