Recolha registos de eventos do Palo Alto Cortex XDR

Compatível com:

Este documento explica como carregar registos de eventos do Palo Alto Cortex XDR para o Google Security Operations através do Google Cloud armazenamento. O analisador extrai dados de eventos de segurança dos registos JSON do Palo Alto Networks Cortex XDR. Normaliza os dados no modelo de dados unificado (UDM) ao mapear campos, converter tipos de dados e enriquecer eventos com metadados, como fornecedor, produto e tipos de eventos, com base na lógica condicional associada aos campos event_type e event_sub_type. Também processa ligações de rede, operações de ficheiros e registos, informações de processos e atividade do utilizador.

Antes de começar

Certifique-se de que tem os seguintes pré-requisitos:

  • Instância do Google SecOps
  • Google Cloud O armazenamento está configurado e ativo no seu Google Cloud ambiente
  • Acesso privilegiado a Google Cloud e autorizações adequadas
  • Acesso privilegiado ao Palo Alto Cortex XDR

Crie um Google Cloud contentor de armazenamento

  1. Inicie sessão na Google Cloud consola.
  2. Aceda à página Contentores do Cloud Storage.

    Aceda aos contentores

  3. Clique em Criar.

  4. Na página Criar um depósito, introduza as informações do depósito. Após cada um dos passos seguintes, clique em Continuar para avançar para o passo seguinte:

  5. Na secção Começar, faça o seguinte: * Introduza um nome exclusivo que cumpra os requisitos do nome do contentor (por exemplo, cortex-xdr-events-googlesecops). * Para ativar o espaço de nomes hierárquico, clique na seta de expansão para expandir a secção Otimizar para cargas de trabalho orientadas para ficheiros e com grande volume de dados e, de seguida, selecione Ativar espaço de nomes hierárquico neste contentor.

    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 secção Escolha onde quer armazenar os seus dados, faça o seguinte: * Selecione um Tipo de localização. * Use o menu do tipo de localização para selecionar uma Localização onde os dados de objetos no seu contentor vão ser 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 secção Escolha uma classe de armazenamento para os seus dados, selecione uma classe de armazenamento predefinida para o contentor ou selecione Autoclass para a gestão automática da classe de armazenamento dos dados do seu contentor.

  8. Na secçã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 controlo de acesso para os objetos do seu contentor.

  9. Na secção Escolha como proteger os dados de objetos, faça o seguinte: * Selecione qualquer uma das opções em Proteção de dados que quer definir para o seu contentor. * Para escolher como os dados de objetos vão ser encriptados, clique na seta de expansão Encriptação de dados e selecione um Método de encriptação de dados.

  10. Clique em Criar.

Configure o encaminhamento de eventos do Cortex XDR

  1. Inicie sessão na IU Web do Cortex XDR.
  2. Aceda a Definições > Configurações > Gestão de dados > Encaminhamento de eventos.
  3. Ative as licenças na secção Ativação.
  4. Ative o encaminhamento de eventos de GB para exportar registos analisados para o Cortex XDR Pro por GB para um SIEM externo para armazenamento.
  5. Ative o encaminhamento de eventos do Endpoints para exportar dados não processados de pontos finais para o Cortex XDR Pro EP e o Cloud Endpoints.
  6. Guarde a seleção.
  7. Copie o caminho de armazenamento apresentado.
  8. Gere e transfira o SÍMBOLO DA WEB JSON da conta de serviço, que contém a chave de acesso.
  9. Guarde-o num local seguro.

Configure o Google Cloud Secret Manager

  1. Inicie sessão no GCP.
  2. Aceda à página Secret Manager.
  3. Se for a primeira vez, é-lhe pedido que ative a API Secret Manager.
  4. Crie um segredo denominado EVENT_FRWD_CRTX_KEY e copie o conteúdo do JSON xdr_sa_key.json que transferiu como o valor do segredo.

Configure feeds

Para configurar um feed, siga estes passos:

  1. Aceda a Definições do SIEM > Feeds.
  2. Clique em Adicionar novo feed.
  3. Na página seguinte, clique em Configurar um único feed.
  4. No campo Nome do feed, introduza um nome para o feed (por exemplo, Registos de eventos do PANW Cortex XDR).
  5. Selecione Google Cloud Storage V2 como Tipo de origem.
  6. Selecione Eventos do Palo Alto Cortex XDR como Tipo de registo.
  7. Clique em Obter conta de serviço como a conta de serviço do Chronicle.
  8. Clicar em Seguinte.
  9. Especifique valores para os seguintes parâmetros de entrada:

    • URI do contentor de armazenamento: Google Cloud URL do contentor de armazenamento (por exemplo, gs://cortex-xdr-events-chronicle).
    • Opções de eliminação da origem: selecione uma opção de eliminação de acordo com a sua preferência.
  10. Clicar em Seguinte.

  11. Reveja a nova configuração do feed no ecrã Finalizar e, de seguida, clique em Enviar.

  12. Depois de criar o feed, encontre-o na lista Feeds e clique nos três pontos de ação no lado direito da linha.

  13. Selecione Desativar feed.

Configure o acesso JSON secreto ao Cloud Storage

  1. Inicie sessão no GCP.
  2. Aceda à página Secret Manager.
  3. Selecione a chave secreta EVENT_FRWD_CRTX_KEY.
  4. Aceda ao separador Autorizações.
  5. Conceda o acesso Storage Object Admin e Storage Legacy Bucket Reader ao contentor cortex-xdr-events-chronicle criado anteriormente.

Configure as autorizações do Google SecOps para o Cloud Storage

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

Configure o carregamento de registos de eventos do PANW Cortex XDR para o Project Cloud Storage

  1. Em Google Cloud, aceda a 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. Transfira um código personalizado através do seguinte comando:

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

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

  7. Faculte 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 autorizaçõ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 Cloud Job a autorização Secret Manager Secret Ancestor para aceder ao segredo que criou anteriormente (como no nosso exemplo, EVENT_FRWD_CRTX_KEY).

  12. Aceda a Secret Manager > EVENT_FRWD_CRTX_KEY (segredo) > Autorizações.

  13. Na plataforma Google SecOps, aceda a Definições do SIEM > Feeds > Nome do feed de eventos XDR > Ativar feed.

Tabela de mapeamento do UDM

Campo de registo Mapeamento de UDM Lógica
action_file_path target.file.full_path Mapeamento direto
action_file_size target.file.size Mapeado diretamente e convertido em número inteiro não assinado
action_local_ip principal.ip Mapeado e unido 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 Mapeamento direto
action_network_connection_id network.session_id Mapeamento direto
action_network_protocol network.ip_protocol Nome mudado para protocol_number_src, analisado com parse_ip_protocol.include e mapeado para network.ip_protocol
action_process_image_command_line target.process.command_line Mapeamento direto
action_process_image_md5 target.process.file.md5 Mapeamento direto
action_process_image_path target.process.file.full_path Mapeamento direto
action_process_image_sha256 target.process.file.sha256 Mapeamento direto
action_process_os_pid target.process.pid Mapeado diretamente e convertido em string
action_process_user_sid target.user.windows_sid Mapeamento direto
action_process_username target.user.userid, target.administrative_domain Convertido em minúsculas, analisado para o domínio e o utilizador, e mapeado em conformidade
action_registry_data target.registry.registry_value_data Mapeamento direto
action_registry_key_name target.registry.registry_key Mapeamento direto
action_registry_value_name target.registry.registry_value_name Mapeamento direto
action_remote_ip target.ip Mapeado e unido 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 não assinado
action_total_upload network.sent_bytes Mapeado diretamente e convertido em número inteiro não assinado
agent_hostname principal.hostname, observer.hostname Convertido para minúsculas e mapeado
agent_ip_addresses observer.ip Analisado como JSON, dividido em IPs individuais e unido
agent_os_sub_type target.platform_version Mapeamento direto
event_id metadata.product_log_id Mapeamento direto
event_sub_type metadata.product_event_type Convertido em string e usado para o mapeamento condicional de metadata.event_type e metadata.product_event_type
event_timestamp metadata.event_timestamp, timestamp Convertido em string, analisado como indicação de tempo UNIX_MS e mapeado
event_type metadata.event_type Convertido em string e usado para o mapeamento condicional de metadata.event_type e metadata.product_event_type
os_actor_process_command_line principal.process.command_line Mapeamento direto
os_actor_process_image_md5 principal.process.file.md5 Mapeamento direto
os_actor_process_image_path principal.process.file.full_path Mapeamento direto
os_actor_process_image_sha256 principal.process.file.sha256 Mapeamento direto
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 por "S-" ou "s-"
os_actor_primary_username principal.user.userid, principal.administrative_domain Convertido em minúsculas, analisado para o domínio e o utilizador, e mapeado em conformidade
_action security_result.action Unido a _security_result e, em seguida, mapeado
metadata.log_type metadata.log_type Codificado de forma rígida como "PAN_CORTEX_XDR_EVENTS"
metadata.product_name metadata.product_name Codificado de forma rígida para "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 da Google SecOps.