Coletar registros de eventos do Palo Alto Cortex XDR

Compatível com:

Este documento explica como transferir os registros de eventos do Palo Alto Cortex XDR para as Operações de segurança do Google 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, na sigla em inglês) mapeando campos, convertendo tipos de dados e enriquecendo eventos com metadados, como fornecedor, produto e tipos de evento 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 arquivos e registros, informações de processos e atividades do usuário.

Antes de começar

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

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

Crie um bucket do Google Cloud 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:

  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 os registros analisados do Cortex XDR Pro por GB para um SIEM externo para armazenamento.
  5. Ative o Encaminhamento de eventos de endpoints para exportar dados de endpoints brutos para o Cortex XDR Pro EP e o Cloud Endpoints.
  6. Salve a seleção.
  7. Copie o caminho de armazenamento exibido.
  8. Gerencie e faça o download do token da Web JSON da conta de serviço, que contém a chave de acesso.
  9. Salve em um local seguro.

Configurar Google Cloud o Secret Manager

  1. Faça login no GCP.
  2. Acesse a página Secret Manager.
  3. Se 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ê fez o download como o valor do secret.

Configurar um feed no Google SecOps para processar registros de eventos do Palo Alto Cortex XDR

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

    • URI do bucket do Storage:URL do bucket do Google Cloud storage (por exemplo, gs://cortex-xdr-events-chronicle).
    • URI Is A: selecione Directory which includes subdirectories.
    • Opções de exclusão de origem: selecione uma opção de exclusão de acordo com sua preferência.
    • Namespace do recurso: o namespace do recurso.
    • Rótulos de ingestão: o rótulo aplicado aos eventos desse feed.
  9. Clique em Próxima.

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

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

  12. Selecione Desativar o feed.

Configurar o acesso JSON secreto ao Cloud Storage

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

Configurar as 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 ao Leitor de objetos do Storage (roles/storage.objectViewer) acesso 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. Para abrir o Cloud Shell, clique no ícone na barra de navegação na parte de cima.
  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 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. Forneça 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 Job do Cloud a permissão Secret Manager Secret Ancestor para acessar o secret que você criou antes (como EVENT_FRWD_CRTX_KEY no nosso exemplo).

  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 XDR > Ativar feed.

Tabela de mapeamento da UDM

Campo de registro Mapeamento do UDM Lógica
action_file_path target.file.full_path Mapeadas diretamente
action_file_size target.file.size Mapeado diretamente e convertido em número inteiro sem sinal
action_local_ip principal.ip Mapeados diretamente e mesclados 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 Mapeadas diretamente
action_network_connection_id network.session_id Mapeadas diretamente
action_network_protocol network.ip_protocol Renomeado como protocol_number_src, analisado usando parse_ip_protocol.include e mapeado como network.ip_protocol
action_process_image_command_line target.process.command_line Mapeadas diretamente
action_process_image_md5 target.process.file.md5 Mapeadas diretamente
action_process_image_path target.process.file.full_path Mapeadas diretamente
action_process_image_sha256 target.process.file.sha256 Mapeadas diretamente
action_process_os_pid target.process.pid Mapeado diretamente e convertido em string
action_process_user_sid target.user.windows_sid Mapeadas diretamente
action_process_username target.user.userid, target.administrative_domain Transformado em letras minúsculas, analisado para domínio e usuário e mapeado de acordo com isso
action_registry_data target.registry.registry_value_data Mapeadas diretamente
action_registry_key_name target.registry.registry_key Mapeadas diretamente
action_registry_value_name target.registry.registry_value_name Mapeadas diretamente
action_remote_ip target.ip Mapeados diretamente e mesclados 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 Letras minúsculas e mapeadas
agent_ip_addresses observer.ip Analisado como JSON, dividido em IPs individuais e mesclado
agent_os_sub_type target.platform_version Mapeadas diretamente
event_id metadata.product_log_id Mapeadas diretamente
event_sub_type metadata.product_event_type Conversão em string e uso para mapeamento condicional de metadata.event_type e metadata.product_event_type
event_timestamp metadata.event_timestamp, timestamp Convertido em string, analisado como carimbo de data/hora UNIX_MS e mapeado
event_type metadata.event_type Conversão em string e uso para mapeamento condicional de metadata.event_type e metadata.product_event_type
os_actor_process_command_line principal.process.command_line Mapeadas diretamente
os_actor_process_image_md5 principal.process.file.md5 Mapeadas diretamente
os_actor_process_image_path principal.process.file.full_path Mapeadas diretamente
os_actor_process_image_sha256 principal.process.file.sha256 Mapeadas diretamente
os_actor_process_instance_id principal.process.product_specific_process_id Com prefixo "PAN:" e mapeado
os_actor_process_os_pid principal.process.pid Conversão em string e mapeamento
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 Transformado em letras minúsculas, analisado para domínio e usuário e mapeado de acordo com isso
_action security_result.action Mesclado com _security_result e mapeado
metadata.log_type metadata.log_type Fixado em "PAN_CORTEX_XDR_EVENTS"
metadata.product_name metadata.product_name Fixado em "Cortex XDR"
metadata.vendor_name metadata.vendor_name Fixado em "PAN"
target.platform target.platform Defina como "WINDOWS" se agent_os_sub_type contiver "Windows"

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