Coletar registros de alertas do Palo Alto Cortex XDR
Neste documento, descrevemos como coletar registros de alertas do Palo Alto Cortex XDR configurando um feed do Google Security Operations.
Para mais informações, consulte Ingestão de dados no Google Security Operations.
Um rótulo de ingestão identifica o analisador que normaliza dados de registro brutos
para o formato UDM estruturado. As informações neste documento se aplicam ao analisador
com o rótulo de ingestão CORTEX_XDR.
Configurar alertas do Palo Alto Cortex XDR
Para configurar os alertas do Palo Alto Cortex XDR, conclua as seguintes tarefas:
- Receba a chave de API de alertas do Palo Alto Cortex XDR.
- Receba o ID da chave de API de alertas do Palo Alto Cortex XDR.
- Receba o nome de domínio totalmente qualificado (FQDN).
Encontrar a chave de API de alertas do Palo Alto Cortex XDR
- Faça login no portal do Cortex XDR.
- No menu Configurações, clique em Configurações.
- Selecione +Nova chave.
- Na seção Nível de segurança, selecione Avançado.
- Na seção Papéis, selecione Leitor.
- Clique em Gerar.
- Copie a chave de API e clique em Concluído. A chave de API representa sua chave de autorização exclusiva e é exibida apenas no momento da criação. Ele é necessário ao configurar o feed do Google Security Operations.
Acessar o ID da chave de API de alertas do Palo Alto Cortex XDR
Na seção Configurações, acesse Chaves de API > ID. Anote o
número de ID correspondente, que representa o token x-xdr-auth-id:{key_id}.
Receber FQDN
- Acesse Chaves de API.
- Clique em Copiar URL. Salve o URL, que é necessário ao configurar o feed do Google Security Operations.
Configurar feeds
Para configurar esse tipo de registro, siga estas etapas:
- Acesse Configurações > Gerenciamento de dados > Feeds. Se você estiver em uma plataforma somente SIEM, acesse Configurações > Feeds.
- Clique em Adicionar novo feed.
- Selecione o pacote de feed do Cortex XDR.
Configure os seguintes parâmetros de entrada obrigatórios:
- Tipo de origem: API de terceiros (recomendado)
- Cabeçalhos HTTP de autenticação: forneça a chave de autorização e o ID da chave de autorização que você recebeu anteriormente.
- Nome do host da API: informe o URL que você recebeu anteriormente.
- Endpoint: especifique o endpoint.
Opções avançadas
- Nome do feed: um valor predefinido que identifica o feed.
- Namespace do recurso: namespace associado ao feed.
- Rótulos de ingestão: rótulos aplicados a todos os eventos desse feed.
Clique em Criar feed.
Para mais informações sobre como configurar vários feeds para diferentes tipos de registro nessa família de produtos, consulte Configurar feeds por produto.
Para mais informações sobre os feeds do Google Security Operations, consulte a documentação sobre feeds do Google Security Operations. Para informações sobre os requisitos de cada tipo de feed, consulte Configuração de feed por tipo.
Referência de mapeamento de campos
Esse analisador extrai registros de segurança do Palo Alto Networks Cortex XDR no formato JSON ou SYSLOG (chave-valor), normaliza os campos e os mapeia para o UDM. Ele processa os formatos JSON e de chave-valor, extrai datas, enriquece os dados com metadados e estrutura a saída para ingestão no Google SecOps.
Ativar solicitações de API REST no Cortex XDR e configurar um feed do Google SecOps
Este guia fornece instruções detalhadas para ativar solicitações de API REST no Cortex XDR e configurar um feed correspondente no Google SecOps.
Parte 1: ativar solicitações da API REST no Cortex XDR
O Cortex XDR usa chaves de API para autenticação. Siga estas etapas para gerar uma chave de API:
- Faça login no console de gerenciamento do Cortex XDR.
- Acesse Configurações.
- Acesse Chaves de API.
- Gere uma nova chave.
- Insira um nome de chave (por exemplo, "Integração do SecOps").
- Atribua à chave de API as permissões necessárias para acessar os dados necessários. Isso é essencial para a segurança e garante que a chave tenha acesso apenas ao que precisa. Consulte a documentação do Cortex XDR para saber as permissões específicas necessárias para seu caso de uso.
- Armazene a chave de API com segurança. Você vai precisar dele para configurar o feed do Google SecOps. Esta é a única vez que você verá a chave completa, então copie-a agora.
- (Opcional) Configure uma data de validade para a chave de API para aumentar a segurança.
Parte 2: configurar o feed no Google SecOps
Depois de gerar a chave de API, configure o feed no Google SecOps para receber dados do Cortex XDR:
- Acesse Configurações > Gerenciamento de dados > Feeds. Se você estiver em uma plataforma somente SIEM, acesse Configurações > Feeds.
- Clique em Adicionar novo.
- Selecione API de terceiros como o Tipo de origem.
- Selecione o tipo de registro necessário que corresponde aos dados que você quer ingerir do Cortex XDR.
- Clique em Próxima.
- Configure os seguintes parâmetros de entrada:
- Endpoint da API: insira o URL de base da API do Cortex XDR. Isso pode ser encontrado na documentação da API Cortex XDR.
- Chave de API: cole a chave de API que você gerou anteriormente.
- Outros parâmetros: dependendo da API Cortex XDR específica que você está usando, talvez seja necessário fornecer outros parâmetros, como filtros de dados ou períodos específicos. Consulte a documentação da API Cortex XDR para mais detalhes.
- Clique em Próximo e em Enviar.
Considerações importantes:
- Limitação de taxa: esteja ciente de todas as limitações de taxa impostas pela API Cortex XDR. Configure o feed de acordo para evitar exceder esses limites.
- Tratamento de erros: implemente o tratamento de erros adequado na configuração do Google SecOps para gerenciar situações em que a API Cortex XDR está indisponível ou retorna erros.
- Segurança: armazene a chave de API com segurança e siga as práticas recomendadas de segurança. Faça a rotação regular das chaves de API para minimizar o impacto de possíveis comprometimentos.
- Documentação: consulte a documentação da API oficial do Cortex XDR para informações detalhadas sobre endpoints, parâmetros e formatos de dados disponíveis.
Tabela de mapeamento de UDM
| Campo de registro | Mapeamento de UDM | Lógica |
|---|---|---|
action |
security_result.action |
Se action contiver "BLOCKED", defina como "BLOCK". |
action |
security_result.action_details |
Se act não estiver vazio, nulo ou "none", use o valor de act. Caso contrário, se action não for "BLOCKED", use o valor de action. |
action_country |
security_result.about.location.country_or_region |
Mapeamento direto. Também usado no campo events aninhado. |
action_file_path |
target.resource.attribute.labels |
Cria um rótulo com a chave "action_file_path" e o valor do campo de registro. |
action_file_sha256 |
target.file.sha256 |
Converte em letras minúsculas. |
action_local_port |
principal.port |
Converte em número inteiro. |
action_remote_ip |
target.ip |
Mesclado com a matriz target.ip. |
action_remote_ip |
target.asset.ip |
Mesclado com a matriz target.asset.ip. |
action_remote_port |
target.port |
Converte em número inteiro. |
act |
security_result.action_details |
Usado se não estiver vazio, nulo ou "none". |
agent_data_collection_status |
Não mapeado | Embora esteja presente no registro bruto, esse campo não é mapeado para o objeto IDM no UDM final. |
agent_device_domain |
target.administrative_domain |
Mapeamento direto. |
agent_fqdn |
Não mapeado | Embora esteja presente no registro bruto, esse campo não é mapeado para o objeto IDM no UDM final. |
agent_install_type |
Não mapeado | Embora esteja presente no registro bruto, esse campo não é mapeado para o objeto IDM no UDM final. |
agent_is_vdi |
Não mapeado | Embora esteja presente no registro bruto, esse campo não é mapeado para o objeto IDM no UDM final. |
agent_os_sub_type |
target.platform_version |
Mapeamento direto. |
agent_os_type |
target.platform |
Se for "Windows", defina como "WINDOWS". |
agent_version |
Não mapeado | Embora esteja presente no registro bruto, esse campo não é mapeado para o objeto IDM no UDM final. |
alert_id |
security_result.rule_id |
Mapeamento direto. |
app |
target.application |
Mapeamento direto. |
cat |
security_result.category_details |
Mesclado no campo security_result.category_details. |
category |
security_result.category |
Se for "Malware", defina como "SOFTWARE_MALICIOUS". |
category |
security_result.category_details |
Mesclado no campo security_result.category_details. |
cn1 |
network.session_id |
Mapeamento direto. |
cn1Label |
Não mapeado | Embora esteja presente no registro bruto, esse campo não é mapeado para o objeto IDM no UDM final. |
contains_featured_host |
Não mapeado | Embora esteja presente no registro bruto, esse campo não é mapeado para o objeto IDM no UDM final. |
contains_featured_ip |
Não mapeado | Embora esteja presente no registro bruto, esse campo não é mapeado para o objeto IDM no UDM final. |
contains_featured_user |
Não mapeado | Embora esteja presente no registro bruto, esse campo não é mapeado para o objeto IDM no UDM final. |
creation_time |
metadata.event_timestamp |
Convertido em carimbo de data/hora. |
cs1 |
security_result.rule_name |
Concatenado com cs1Label para formar o security_result.rule_name. |
cs1Label |
security_result.rule_name |
Concatenado com cs1 para formar o security_result.rule_name. |
cs2 |
additional.fields |
Cria um par de chave-valor em additional.fields com a chave de cs2Label e o valor de string de cs2. |
cs2Label |
additional.fields |
Usado como a chave para o valor cs2 em additional.fields. |
cs3 |
additional.fields |
Cria um par de chave-valor em additional.fields com a chave de cs3Label e o valor de string de cs3. |
cs3Label |
additional.fields |
Usado como a chave para o valor cs3 em additional.fields. |
cs4 |
additional.fields |
Cria um par de chave-valor em additional.fields com a chave de cs4Label e o valor de string de cs4. |
cs4Label |
additional.fields |
Usado como a chave para o valor cs4 em additional.fields. |
cs5 |
additional.fields |
Cria um par de chave-valor em additional.fields com a chave de cs5Label e o valor de string de cs5. |
cs5Label |
additional.fields |
Usado como a chave para o valor cs5 em additional.fields. |
cs6 |
additional.fields |
Cria um par de chave-valor em additional.fields com a chave de cs6Label e o valor de string de cs6. |
cs6Label |
additional.fields |
Usado como a chave para o valor cs6 em additional.fields. |
CSPaccountname |
additional.fields |
Cria um par de chave-valor em additional.fields com a chave "CSPaccountname" e o valor de string do campo de registro. |
description |
metadata.description |
Mapeamento direto. Também usado para security_result.description se event_type não for GENERIC_EVENT. |
destinationTranslatedAddress |
target.ip |
Mesclado com a matriz target.ip. |
destinationTranslatedAddress |
target.asset.ip |
Mesclado com a matriz target.asset.ip. |
destinationTranslatedPort |
target.port |
Convertido em número inteiro se não estiver vazio ou -1. |
deviceExternalId |
security_result.about.asset_id |
Com o prefixo "ID externo do dispositivo: ". |
dpt |
target.port |
Convertido em número inteiro se destinationTranslatedPort estiver vazio ou for -1. |
dst |
target.ip |
Mesclado com a matriz target.ip. |
dst |
target.asset.ip |
Mesclado com a matriz target.asset.ip. |
dst_agent_id |
target.ip |
Convertido em endereço IP e mesclado na matriz target.ip se for um IP válido. |
dst_agent_id |
target.asset.ip |
Convertido em endereço IP e mesclado na matriz target.asset.ip se for um IP válido. |
dvchost |
principal.hostname |
Mapeamento direto. |
dvchost |
principal.asset.hostname |
Mapeamento direto. |
endpoint_id |
target.process.product_specific_process_id |
Com o prefixo "cor:". |
event_id |
Não mapeado | Embora esteja presente no registro bruto, esse campo não é mapeado para o objeto IDM no UDM final. |
event_sub_type |
Não mapeado | Embora esteja presente no registro bruto, esse campo não é mapeado para o objeto IDM no UDM final. |
event_timestamp |
metadata.event_timestamp |
Convertido em carimbo de data/hora. Também usado no campo events aninhado. |
event_type |
metadata.event_type |
Mapeado para um tipo de evento de UDM com base na lógica. Também usado no campo events aninhado. |
event_type |
metadata.product_event_type |
Mapeamento direto. |
event_type |
security_result.threat_name |
Mapeamento direto. |
events |
Eventos aninhados | Os campos na matriz events são mapeados para os campos de UDM correspondentes em objetos events aninhados. Confira os detalhes nos mapeamentos de campos individuais. |
external_id |
Não mapeado | Embora esteja presente no registro bruto, esse campo não é mapeado para o objeto IDM no UDM final. |
fileId |
target.resource.attribute.labels |
Cria um rótulo com a chave "fileId" e o valor do campo de registro. |
fileHash |
target.file.sha256 |
Convertido para letras minúsculas. Define metadata.event_type como FILE_UNCATEGORIZED. |
filePath |
target.file.full_path |
Mapeamento direto. Define metadata.event_type como FILE_UNCATEGORIZED. |
fw_app_category |
Não mapeado | Embora esteja presente no registro bruto, esse campo não é mapeado para o objeto IDM no UDM final. |
fw_app_id |
Não mapeado | Embora esteja presente no registro bruto, esse campo não é mapeado para o objeto IDM no UDM final. |
fw_app_subcategory |
Não mapeado | Embora esteja presente no registro bruto, esse campo não é mapeado para o objeto IDM no UDM final. |
fw_app_technology |
Não mapeado | Embora esteja presente no registro bruto, esse campo não é mapeado para o objeto IDM no UDM final. |
fw_device_name |
Não mapeado | Embora esteja presente no registro bruto, esse campo não é mapeado para o objeto IDM no UDM final. |
fw_email_recipient |
Não mapeado | Embora esteja presente no registro bruto, esse campo não é mapeado para o objeto IDM no UDM final. |
fw_email_sender |
Não mapeado | Embora esteja presente no registro bruto, esse campo não é mapeado para o objeto IDM no UDM final. |
fw_email_subject |
Não mapeado | Embora esteja presente no registro bruto, esse campo não é mapeado para o objeto IDM no UDM final. |
fw_interface_from |
Não mapeado | Embora esteja presente no registro bruto, esse campo não é mapeado para o objeto IDM no UDM final. |
fw_interface_to |
Não mapeado | Embora esteja presente no registro bruto, esse campo não é mapeado para o objeto IDM no UDM final. |
fw_is_phishing |
Não mapeado | Embora esteja presente no registro bruto, esse campo não é mapeado para o objeto IDM no UDM final. |
fw_misc |
Não mapeado | Embora esteja presente no registro bruto, esse campo não é mapeado para o objeto IDM no UDM final. |
fw_rule |
Não mapeado | Embora esteja presente no registro bruto, esse campo não é mapeado para o objeto IDM no UDM final. |
fw_rule_id |
Não mapeado | Embora esteja presente no registro bruto, esse campo não é mapeado para o objeto IDM no UDM final. |
fw_serial_number |
Não mapeado | Embora esteja presente no registro bruto, esse campo não é mapeado para o objeto IDM no UDM final. |
fw_url_domain |
Não mapeado | Embora esteja presente no registro bruto, esse campo não é mapeado para o objeto IDM no UDM final. |
fw_vsys |
Não mapeado | Embora esteja presente no registro bruto, esse campo não é mapeado para o objeto IDM no UDM final. |
fw_xff |
Não mapeado | Embora esteja presente no registro bruto, esse campo não é mapeado para o objeto IDM no UDM final. |
host_ip |
principal.ip |
Dividido por vírgula e mesclado na matriz principal.ip. |
host_ip |
principal.asset.ip |
Dividido por vírgula e mesclado na matriz principal.asset.ip. |
host_name |
principal.hostname |
Mapeamento direto. |
host_name |
principal.asset.hostname |
Mapeamento direto. |
hosts |
target.hostname |
Extrai o nome do host do primeiro elemento da matriz hosts. |
hosts |
target.asset.hostname |
Extrai o nome do host do primeiro elemento da matriz hosts. |
hosts |
target.user.employee_id |
Extrai o ID do usuário do primeiro elemento da matriz hosts. |
incident_id |
metadata.product_log_id |
Mapeamento direto. |
is_whitelisted |
Não mapeado | Embora esteja presente no registro bruto, esse campo não é mapeado para o objeto IDM no UDM final. |
local_insert_ts |
Não mapeado | Embora esteja presente no registro bruto, esse campo não é mapeado para o objeto IDM no UDM final. |
mac |
principal.mac |
Dividido por vírgula e mesclado na matriz principal.mac. |
matching_status |
Não mapeado | Embora esteja presente no registro bruto, esse campo não é mapeado para o objeto IDM no UDM final. |
metadata.description |
security_result.description |
Usado se event_type for GENERIC_EVENT. |
metadata.event_type |
metadata.event_type |
Defina com base na lógica usando event_type, host_ip e outros campos. |
metadata.log_type |
metadata.log_type |
Defina como "CORTEX_XDR". |
metadata.product_name |
metadata.product_name |
Defina como "Cortex". |
metadata.vendor_name |
metadata.vendor_name |
Defina como "Palo Alto Networks". |
msg |
security_result.description |
Mapeamento direto. |
name |
security_result.summary |
Mapeamento direto. |
PanOSDGHierarchyLevel1 |
security_result.detection_fields |
Cria um par de chave-valor em security_result.detection_fields com a chave "PanOSDGHierarchyLevel1" e o valor do campo de registro. |
PanOSDestinationLocation |
target.location.country_or_region |
Mapeamento direto. |
PanOSDynamicUserGroupName |
principal.group.group_display_name |
Mapeamento direto se não estiver vazio ou "-". |
PanOSSourceLocation |
principal.location.country_or_region |
Mapeamento direto. |
PanOSThreatCategory |
security_result.category_details |
Mesclado no campo security_result.category_details. |
PanOSThreatID |
security_result.threat_id |
Mapeamento direto. |
principal.asset.attribute.labels |
principal.asset.attribute.labels |
Cria um rótulo com a chave "Source" e o valor do campo source. |
proto |
network.ip_protocol |
Convertido para letras maiúsculas. Define metadata.event_type como NETWORK_CONNECTION. |
request |
network.http.referral_url |
Mapeamento direto. |
rt |
metadata.event_timestamp |
Convertido em carimbo de data/hora. |
security_result.severity |
security_result.severity |
Defina como o valor em maiúsculas de severity. |
severity |
security_result.severity |
Convertido para letras maiúsculas. |
shost |
principal.hostname |
Mapeamento direto. Define metadata.event_type como STATUS_UPDATE. |
shost |
principal.asset.hostname |
Mapeamento direto. Define metadata.event_type como STATUS_UPDATE. |
source |
principal.asset.attribute.labels |
Usado como o valor do rótulo "Origem". |
source |
security_result.summary |
Usado se as correspondências de filtro not_json e grok. |
sourceTranslatedAddress |
principal.ip |
Mesclado com a matriz principal.ip. |
sourceTranslatedAddress |
principal.asset.ip |
Mesclado com a matriz principal.asset.ip. |
sourceTranslatedPort |
principal.port |
Convertido em número inteiro se não estiver vazio ou -1. |
spt |
principal.port |
Convertido em número inteiro. |
sr_summary |
security_result.summary |
Usado se as correspondências de filtro not_json e grok. |
src |
principal.ip |
Mesclado com a matriz principal.ip. |
src |
principal.asset.ip |
Mesclado com a matriz principal.asset.ip. |
suser |
principal.user.user_display_name |
Mapeamento direto. |
tenantCDLid |
additional.fields |
Cria um par de chave-valor em additional.fields com a chave "tenantCDLid" e o valor de string do campo de registro. |
tenantname |
additional.fields |
Cria um par de chave-valor em additional.fields com a chave "tenantname" e o valor de string do campo de registro. |
users |
target.user.userid |
Usa o primeiro elemento da matriz users. |
xdr_url |
metadata.url_back_to_product |
Mapeamento direto. |
Registro de alterações
Confira o registro de alterações deste analisador
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.