Coletar registros de armadilhas da Palo Alto Networks

Compatível com:

Este documento explica como coletar registros de armadilhas da Palo Alto Networks para as operações de segurança do Google usando o Bindplane. O analisador processa logs em formatos CSV e de chave-valor, transformando-os em UDM. Ele usa a análise grok e CSV para extrair campos, executa a lógica condicional com base em mensagens de registro específicas ou valores de campo para mapear para campos do 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.
  • 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.
  • Confira 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. 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: 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 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 as armadilhas da Palo Alto Networks

  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 Syslog: insira o número da porta configurada 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á associado a 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 Foi 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ídos do campo msg se ele contém um endereço de e-mail e está associado a 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 é 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 (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 extrair 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 OS key.
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 -> CRÍTICO, 3 -> ERRO, 4 -> MÉDIO, 5 -> BAIXO, 6 -> INFORMATIVO.
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 -> BAIXO, 8 -> MÉDIO, 9 -> ALTO.
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 removidos, é 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. Mudança para EMAIL_TRANSACTION se eventType for Management Audit Logs. Mudança para SCAN_NETWORK se eventType for XDR Analytics BIOC ou Behavioral Threat ou se desc for Behavioral Threat. Mudança 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.

Alterações

2022-08-22

Melhoria:

  • O analisador foi atualizado de mapeamentos "sdm" para mapeamentos "udm".
  • Processou todos os registros recém-ingeridos.
  • Registros processados com tipos de dados de "encaminhamento de registro".
  • Outros syslog,config,threat relacionados também foram processados.
  • Os registros malformados são descartados.

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