Recolha registos do Palo Alto Networks Traps

Compatível com:

Este documento explica como recolher registos do Palo Alto Networks Traps para o Google Security Operations através do Bindplane. O analisador processa registos nos formatos CSV e de chave/valor, transformando-os em UDM. Usa a análise grok e CSV para extrair campos, executa lógica condicional com base em mensagens de registo ou valores de campos específicos para mapear para campos UDM e processa vários tipos de eventos, como atualizações de estado, análises de rede e criações de processos.

Antes de começar

  • Certifique-se de que tem uma instância do Google Security Operations.
  • Certifique-se de que está a usar o Windows 2016 ou posterior, ou um anfitrião Linux com systemd.
  • Se estiver a executar o serviço através de um proxy, certifique-se de que as portas da firewall estão abertas.
  • Certifique-se de que tem acesso privilegiado ao Cortex XDR.

Obtenha o ficheiro de autenticação de carregamento do Google SecOps

  1. Inicie sessão na consola Google SecOps.
  2. Aceda a Definições do SIEM > Agentes de recolha.
  3. Transfira o ficheiro de autenticação de carregamento. Guarde o ficheiro de forma segura no sistema onde o Bindplane vai ser instalado.

Obtenha o ID de cliente do Google SecOps

  1. Inicie sessão na consola Google SecOps.
  2. Aceda a Definições do SIEM > Perfil.
  3. Copie e guarde o ID do cliente da secção Detalhes da organização.

Instale o agente do Bindplane

Instalação do Windows

  1. Abra a Linha de comandos ou o PowerShell como administrador.
  2. Execute o seguinte 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 o seguinte comando:

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

Recursos de instalação adicionais

Configure o agente Bindplane para carregar o Syslog e enviá-lo para o Google SecOps

  1. Aceda ao ficheiro de configuração:

    1. Localize o ficheiro config.yaml. Normalmente, encontra-se no diretório /etc/bindplane-agent/ no Linux ou no diretório de instalação no Windows.
    2. Abra o ficheiro com um editor de texto (por exemplo, nano, vi ou Bloco de notas).
  2. Edite o ficheiro 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 de cliente real.

  5. Atualize /path/to/ingestion-authentication-file.json para o caminho onde o ficheiro de autenticação foi guardado na secção Obtenha o ficheiro de autenticação de carregamento do Google SecOps.

Reinicie o agente do Bindplane para aplicar as alterações

  • 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, pode usar a consola Services ou introduzir o seguinte comando:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configure o Palo Alto Networks Traps

  1. Inicie sessão na consola Cortex XDR ESM.
  2. Selecione Definições > ESM > Syslog.
  3. Selecione a caixa de verificação Ativar syslog.
  4. Indique os seguintes detalhes de configuração:
    • Servidor Syslog: introduza o endereço IP do agente Bindplane.
    • Porta Syslog: introduza o número da porta configurado no Bindplane; por exemplo, 514.
    • Protocolo Syslog: selecione CEF.
    • Defina o tempo limite de manutenção ativo como 0.
    • Protocolo de comunicação: selecione UDP.
  5. Na secção Eventos de segurança, selecione as seguintes caixas de verificação:
    • Evento de prevenção
    • Evento de notificação
    • Evento de deteção de publicações
  6. Clique em Verificar conetividade > Guardar.

Tabela de mapeamento da UDM

Campo de registo Mapeamento de UDM Lógica
agentId event.idm.read_only_udm.additional.fields.value.string_value O valor de agentId do registo não processado é mapeado para o campo string_value numa estrutura aninhada em additional.fields. O key para este campo está definido como Agent ID.
agentIp event.idm.read_only_udm.target.ip O valor de agentIp do registo não processado é mapeado para o campo target.ip.
cat event.idm.read_only_udm.security_result.rule_name O valor de cat do registo não processado é mapeado para o campo security_result.rule_name.
class event.idm.read_only_udm.security_result.category_details Usado em conjunto 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 email válido, é mapeado para principal.user.email_addresses. Se cs1Label for Initiated by, é 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, é mapeado para security_result.description. Se cs2Label for Initiator CMD, é mapeado para principal.process.command_line.
cs3 event.idm.read_only_udm.security_result.action_details Se cs3Label for result, é mapeado para security_result.action_details.
customerId event.idm.read_only_udm.additional.fields.value.string_value O valor de customerId do registo não processado é mapeado para o campo string_value numa estrutura aninhada em additional.fields. O key para este campo está definido como Customer ID.
date_time event.idm.read_only_udm.metadata.event_timestamp.seconds Analisado e convertido numa indicação de tempo e, em seguida, mapeado para metadata.event_timestamp.seconds.
desc event.idm.read_only_udm.metadata.description O valor de desc do registo não processado é mapeado para o campo metadata.description.
deviceName event.idm.read_only_udm.target.hostname O valor de deviceName do registo não processado é mapeado para o campo target.hostname.
email_receiver event.idm.read_only_udm.network.email.to Extraído do campo msg se contiver um endereço de email 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 registo não processado é mapeado para o campo metadata.product_event_type. Também é usado para derivar metadata.event_type com base no respetivo 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 registo não processado é mapeado para o campo string_value numa estrutura aninhada em additional.fields. O key para este campo está definido como Facility.
fileHash event.idm.read_only_udm.principal.process.file.sha256 O valor de fileHash do registo não processado, 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 registo não processado é mapeado para o campo principal.process.file.full_path.
friendlyName event.idm.read_only_udm.metadata.description O valor de friendlyName do registo não processado é mapeado para o campo metadata.description.
interm_ip event.idm.read_only_udm.intermediary.ip O valor de interm_ip do registo não processado é 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 é definido como VIRTUAL_MACHINE.
msg event.idm.read_only_udm.security_result.summary O valor de msg do registo não processado é 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 registo não processado é 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 é definido como WINDOWS. Se osType for 2, target.platform é definido como MAC. Se osType for 4, target.platform é definido como LINUX. Se osType for 3, o respetivo valor é 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 registo não processado é mapeado para o campo target.platform_version.
product_version event.idm.read_only_udm.metadata.product_version O valor de product_version do registo não processado é mapeado para o campo metadata.product_version.
proto event.idm.read_only_udm.network.ip_protocol Se proto for udp, network.ip_protocol é definido como UDP.
recordType event.idm.read_only_udm.additional.fields.value.string_value O valor de recordType do registo não processado é mapeado para o campo string_value numa estrutura aninhada em additional.fields. O key para este 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 é definido como Americas (N. Virginia). Se regionId for 70, principal.location.country_or_region é definido como EMEA (Frankfurt).
request event.idm.read_only_udm.target.url O valor de request do registo não processado é 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 registo não processado é mapeado para o campo security_result.category_details.
sec_desc event.idm.read_only_udm.security_result.description O valor de sec_desc do registo não processado é mapeado para o campo security_result.description.
serverHost event.idm.read_only_udm.principal.hostname O valor de serverHost do registo não processado é 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 é definido como UNKNOWN_SEVERITY. Caso contrário, é 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 registo não processado é mapeado para o campo principal.hostname.
src_ip event.idm.read_only_udm.principal.ip O valor de src_ip do registo não processado é mapeado para o campo principal.ip.
subClass event.idm.read_only_udm.security_result.category_details Usado em conjunto com class para preencher security_result.category_details.
suser event.idm.read_only_udm.principal.user.user_display_name O valor de suser do registo não processado, com parênteses, 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 registo não processado é mapeado para o campo target.process.command_line.
targetprocessname event.idm.read_only_udm.target.application O valor de targetprocessname do registo não processado é mapeado para o campo target.application.
targetprocesssha256 event.idm.read_only_udm.target.process.file.sha256 O valor de targetprocesssha256 do registo não processado, 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 registo não processado é mapeado para o campo value numa estrutura aninhada em target.resource.attribute.labels. O key para este campo está definido como Tenant name.
event.idm.read_only_udm.metadata.event_type Predefinido como STATUS_UPDATE. Alterado para EMAIL_TRANSACTION se eventType for Management Audit Logs. Alterado para SCAN_NETWORK se eventType for XDR Analytics BIOC ou Behavioral Threat, ou se desc for Behavioral Threat. Alterado para SCAN_PROCESS se desc for Suspicious Process Creation. Definido como Palo Alto Networks. Definido como Cortex XDR. Definido 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 da Google SecOps.