Coletar registros de eventos do Cortex XDR da Palo Alto

Compatível com:

Este documento explica como ingerir registros de eventos do Palo Alto Cortex XDR no Google Security Operations usando o Google Cloud Storage. O analisador extrai dados de ocorrência de segurança dos registros JSON do Cortex XDR da Palo Alto Networks. Ele normaliza os dados no modelo de dados unificado (UDM) mapeando campos, convertendo tipos de dados e enriquecendo eventos com metadados, como fornecedor, produto e tipos de eventos, com base na lógica condicional vinculada aos campos event_type e event_sub_type. Ele também processa conexões de rede, operações de arquivo e registro, informações de processos e atividade do usuário.

Antes de começar

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

  • Instância do Google SecOps
  • OGoogle Cloud Storage está configurado e ativo no seu ambiente Google Cloud
  • Acesso privilegiado a Google Cloud e permissões adequadas
  • Acesso privilegiado ao Cortex XDR da Palo Alto

Criar um Google Cloud bucket do Storage

  1. Faça login no console do Google Cloud .
  2. Acesse a página Buckets do Cloud Storage.

    Acessar buckets

  3. Clique em Criar.

  4. Na página Criar um bucket, insira as informações do seu bucket. Após cada uma das etapas a seguir, clique em Continuar para prosseguir para a próxima etapa:

  5. Na seção Começar, faça o seguinte: * Insira um nome exclusivo que atenda aos requisitos de nome de bucket (por exemplo, cortex-xdr-events-googlesecops). * Para ativar o namespace hierárquico, clique na seta de expansão para abrir a seção Otimizar para cargas de trabalho orientadas a arquivos e com uso intensivo de dados e selecione Ativar namespace hierárquico neste bucket.

    Note: You can't enable hierarchical namespace in an existing bucket.
    
    * To add a bucket label, click the expander arrow to expand the **Labels** section.
    * Click **Add label** and specify a key and a value for your label.
    
  6. Na seção Escolha onde armazenar seus dados, faça o seguinte: * Selecione um Tipo de local. * Use o menu do tipo de local para selecionar um Local em que os dados de objetos no bucket serão armazenados permanentemente.

    Note: If you select the **dual-region** location type, you can also choose to enable **turbo replication** by selecting the relevant checkbox.
    
    * To set up cross-bucket replication, expand the **Set up cross-bucket replication** section.
    
  7. Na seção Escolha uma classe de armazenamento para seus dados, selecione uma classe de armazenamento padrão para o bucket ou selecione Classe automática para gerenciamento automático da classe de armazenamento dos dados do bucket.

  8. Na seção Escolha como controlar o acesso a objetos, selecione não para aplicar a prevenção de acesso público e selecione um modelo de controle de acesso para os objetos do bucket.

  9. Na seção Escolha como proteger os dados do objeto, faça o seguinte: * Selecione qualquer uma das opções em Proteção de dados que você quer definir para o bucket. * Para escolher como os dados do objeto serão criptografados, clique na seta de expansão Criptografia de dados e selecione um Método de criptografia de dados.

  10. Clique em Criar.

Configurar o encaminhamento de eventos do Cortex XDR

  1. Faça login na UI da Web do Cortex XDR.
  2. Acesse Configurações > Configurações > Gerenciamento de dados > Encaminhamento de eventos.
  3. Ative as licenças na seção Ativação.
  4. Ative o encaminhamento de eventos do GB para exportar registros analisados do Cortex XDR Pro por GB para um SIEM externo para armazenamento.
  5. Ative o Encaminhamento de eventos do Endpoints para exportar dados brutos de endpoints para o Cortex XDR Pro EP e o Cloud Endpoints.
  6. Salve a seleção.
  7. Copie o caminho de armazenamento exibido.
  8. Gere e faça o download do JSON Web Token da conta de serviço, que contém a chave de acesso.
  9. Salve em um local seguro.

Configurar o Google Cloud Secret Manager

  1. Faça login no GCP.
  2. Acesse a página do Secret Manager.
  3. Se esta for a primeira vez, você vai precisar ativar a API Secret Manager.
  4. Crie um secret chamado EVENT_FRWD_CRTX_KEY e copie o conteúdo do JSON xdr_sa_key.json que você baixou como o valor do secret.

Configurar feeds

Há dois pontos de entrada diferentes para configurar feeds na plataforma do Google SecOps:

  • Configurações do SIEM > Feeds
  • Central de conteúdo > Pacotes de conteúdo

Configure feeds em "Configurações do SIEM" > "Feeds".

Para configurar um feed, siga estas etapas:

  1. Acesse Configurações do SIEM > Feeds.
  2. Clique em Adicionar novo feed.
  3. Na próxima página, clique em Configurar um único feed.
  4. No campo Nome do feed, insira um nome para o feed (por exemplo, PANW Cortex XDR Event Logs).
  5. Selecione Google Cloud Storage como o Tipo de origem.
  6. Selecione Eventos do Cortex XDR da Palo Alto como o Tipo de registro.
  7. Clique em Receber conta de serviço como a Conta de serviço do Chronicle.
  8. Clique em Próxima.
  9. Especifique valores para os seguintes parâmetros de entrada:

    • URI do bucket de armazenamento: Google Cloud URL do bucket de armazenamento (por exemplo, gs://cortex-xdr-events-chronicle).
    • URI Is A: selecione Directory which includes subdirectories.
    • Opções de exclusão de fontes: selecione uma opção de exclusão de acordo com sua preferência.
  10. Clique em Próxima.

  11. Revise a nova configuração do feed na tela Finalizar e clique em Enviar.

  12. Depois que o feed for criado, encontre-o na lista Feeds e clique nos três pontos de ação à direita da linha.

  13. Selecione Desativar feed.

Configurar feeds na Central de conteúdo

Especifique valores para os seguintes campos:

  • URI do bucket de armazenamento: Google Cloud URL do bucket de armazenamento (por exemplo, gs://cortex-xdr-events-chronicle).
  • URI Is A: selecione Directory which includes subdirectories.
  • Opções de exclusão de fontes: selecione uma opção de exclusão de acordo com sua preferência.

Opções avançadas

  • Nome do feed: um valor pré-preenchido que identifica o feed.
  • Tipo de origem: método usado para coletar registros no Google SecOps.
  • Namespace do recurso: namespace associado ao feed.
  • Rótulos de ingestão: rótulos aplicados a todos os eventos deste feed.

Configurar o acesso JSON secreto ao Cloud Storage

  1. Faça login no GCP.
  2. Acesse a página do Secret Manager.
  3. Selecione o secret EVENT_FRWD_CRTX_KEY.
  4. Acesse a guia Permissões.
  5. Forneça acesso de Administrador de objetos do Storage e Leitor de bucket legado do Storage ao bucket cortex-xdr-events-chronicle criado anteriormente.

Configurar permissões do Google SecOps para o Cloud Storage

  1. Acesse IAM e administrador > IAM.
  2. Localize a conta de serviço do Chronicle.
  3. Conceda o acesso de Leitor de objetos do Storage (roles/storage.objectViewer) ao bucket cortex-xdr-events-chronicle criado anteriormente.

Configurar a ingestão de registros de eventos do PANW Cortex XDR no Cloud Storage do projeto

  1. Em Google Cloud, acesse APIs e serviços > Biblioteca.
  2. Ative as APIs Cloud Run e Artifact Registry.
  3. Abra o Cloud Shell clicando no ícone na barra de navegação superior.
  4. Faça o download de um código personalizado usando o seguinte comando:

    git clone https://github.com/PaloAltoNetworks/google-cloud-cortex-chronicle.git
    
  5. Acesse o diretório executando o seguinte comando:

    cd google-cloud-cortex-chronicle/
    
  6. Abra o arquivo env.properties com um editor como o vi.

  7. Informe os seguintes detalhes de configuração:

    REGION=us-central1 # Update according to your project region
    REPO_NAME=panw-chronicle
    IMAGE_NAME=sync_cortex_bucket
    GCP_PROJECT_ID=chrxxxxxxxxx # Update according to your project ID
    JOB_NAME=cloud-run-job-cortex-data-sync # The Cloud Job name 
    ROJECT_NUMBER=80xxxxx9 # Update according to your project number
    # JOB ENV VARIABLES
    SRC_BUCKET=xdr-us-xxxxx-event-forwarding # Update with the Cortex XDR GCS bucket name
    DEST_BUCKET=cortex-xdr-events-chronicle # Update with the GCS name of the bucket you created
    SECRET_NAME=EVENT_FRWD_CRTX_KEY # Need to match the secret you created
    JOB_SCHEDULE_MINS=30
    
  8. Conceda as permissões necessárias ao script deploy.sh:

    chmod 744 deploy.sh
    
  9. Execute o script deploy.sh:

    ./deploy.sh
    
  10. Identifique a conta de serviço do Cloud Job usada na saída do script.

  11. Conceda à conta de serviço do Cloud Job a permissão Ancestral do secret do Secret Manager para acessar o secret criado anteriormente (como no nosso exemplo, EVENT_FRWD_CRTX_KEY).

  12. Acesse Secret Manager > EVENT_FRWD_CRTX_KEY (secret) > Permissões.

  13. Na plataforma Google SecOps, acesse Configurações do SIEM > Feeds > Nome do feed de eventos da XDR > Ativar feed.

Tabela de mapeamento da UDM

Campo de registro Mapeamento do UDM Lógica
action_file_path target.file.full_path Mapeado diretamente
action_file_size target.file.size Mapeado diretamente e convertido em número inteiro sem sinal
action_local_ip principal.ip Mapeados e mesclados diretamente com outros endereços IP
action_local_port principal.port Mapeado diretamente e convertido em número inteiro
action_module_path target.process.file.full_path Mapeado diretamente
action_network_connection_id network.session_id Mapeado diretamente
action_network_protocol network.ip_protocol Renomeado como protocol_number_src, analisado usando parse_ip_protocol.include e mapeado para network.ip_protocol
action_process_image_command_line target.process.command_line Mapeado diretamente
action_process_image_md5 target.process.file.md5 Mapeado diretamente
action_process_image_path target.process.file.full_path Mapeado diretamente
action_process_image_sha256 target.process.file.sha256 Mapeado diretamente
action_process_os_pid target.process.pid Mapeado diretamente e convertido em string
action_process_user_sid target.user.windows_sid Mapeado diretamente
action_process_username target.user.userid, target.administrative_domain Convertido para minúsculas, analisado para domínio e usuário e mapeado de acordo
action_registry_data target.registry.registry_value_data Mapeado diretamente
action_registry_key_name target.registry.registry_key Mapeado diretamente
action_registry_value_name target.registry.registry_value_name Mapeado diretamente
action_remote_ip target.ip Mapeados e mesclados diretamente com outros endereços IP
action_remote_port target.port Mapeado diretamente e convertido em número inteiro
action_total_download network.received_bytes Mapeado diretamente e convertido em número inteiro sem sinal
action_total_upload network.sent_bytes Mapeado diretamente e convertido em número inteiro sem sinal
agent_hostname principal.hostname, observer.hostname Minúsculas e mapeadas
agent_ip_addresses observer.ip Analisados como JSON, divididos em IPs individuais e mesclados
agent_os_sub_type target.platform_version Mapeado diretamente
event_id metadata.product_log_id Mapeado diretamente
event_sub_type metadata.product_event_type Convertido para string e usado para mapeamento condicional de metadata.event_type e metadata.product_event_type
event_timestamp metadata.event_timestamp, timestamp Convertido para string, analisado como carimbo de data/hora UNIX_MS e mapeado
event_type metadata.event_type Convertido para string e usado para mapeamento condicional de metadata.event_type e metadata.product_event_type
os_actor_process_command_line principal.process.command_line Mapeado diretamente
os_actor_process_image_md5 principal.process.file.md5 Mapeado diretamente
os_actor_process_image_path principal.process.file.full_path Mapeado diretamente
os_actor_process_image_sha256 principal.process.file.sha256 Mapeado diretamente
os_actor_process_instance_id principal.process.product_specific_process_id Com o prefixo "PAN:" e mapeado
os_actor_process_os_pid principal.process.pid Convertido em string e mapeado
os_actor_primary_user_sid principal.user.windows_sid Mapeado se começar com "S-" ou "s-"
os_actor_primary_username principal.user.userid, principal.administrative_domain Convertido para minúsculas, analisado para domínio e usuário e mapeado de acordo
_action security_result.action Mesclado em _security_result e depois mapeado
metadata.log_type metadata.log_type Codificado como "PAN_CORTEX_XDR_EVENTS"
metadata.product_name metadata.product_name Codificado como "Cortex XDR"
metadata.vendor_name metadata.vendor_name Codificado como "PAN"
target.platform target.platform Definido como "WINDOWS" se agent_os_sub_type contiver "Windows"

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