Coletar registros de alerta do Palo Alto Prisma Cloud

Compatível com:

Visão geral

Esse analisador extrai registros de alerta do Palo Alto Prisma Cloud no formato JSON e os transforma no UDM. O analisador executa a normalização de dados, as conversões de tipo e a lógica condicional para preencher os campos apropriados do UDM. Ele também processa estruturas e matrizes JSON aninhadas nos dados de registro para extrair informações relevantes.

Antes de começar

  • Verifique se você tem uma instância do Google SecOps.
  • Verifique se você tem acesso privilegiado ao Palo Alto Prisma Cloud.

Configurar um feed no Google SecOps para processar alertas do Prisma Cloud da Palo Alto

  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, PAN Prisma Cloud Alerts).
  4. Selecione Webhook como o Tipo de origem.
  5. Selecione Payload do Palo Alto Prisma Cloud Alerts como o Tipo de registro.
  6. Clique em Próxima.
  7. Opcional: especifique valores para os seguintes parâmetros de entrada:
    • Delimitador de divisão: o delimitador usado para separar linhas de registro, como \n.
    • Namespace de recursos: o namespace de recursos.
    • Rótulos de ingestão: o rótulo aplicado aos eventos desse feed.
  8. Clique em Próxima.
  9. Revise a configuração do feed na tela Finalizar e clique em Enviar.
  10. Clique em Gerar chave secreta para gerar uma chave secreta para autenticar esse feed.
  11. Copie e armazene a chave secreta. Não é possível acessar essa chave secreta novamente. Se necessário, você pode gerar uma nova chave secreta, mas essa ação torna a chave secreta anterior obsoleta.
  12. Na guia Detalhes, copie o URL do endpoint do feed no campo Informações do endpoint. É necessário especificar esse URL de endpoint no aplicativo cliente.
  13. Clique em Concluído.

Criar uma chave de API para o feed de webhook

  1. Acesse o console do Google Cloud > Credenciais.

    Ir para Credenciais

  2. Clique em Criar credenciais e, em seguida, selecione Chave de API.

  3. Restrinja o acesso da chave de API à API Google Security Operations.

Especificar o URL do endpoint

  1. No aplicativo cliente, especifique o URL do endpoint HTTPS fornecido no feed de webhook.
  2. Ative a autenticação especificando a chave de API e a chave secreta como parte do cabeçalho personalizado no seguinte formato:

    X-goog-api-key = API_KEY
    X-Webhook-Access-Key = SECRET
    

    Recomendação: especifique a chave de API como um cabeçalho em vez de especificar no URL.

  3. Se o cliente do webhook não tiver suporte a cabeçalhos personalizados, especifique a chave de API e a chave secreta usando parâmetros de consulta no seguinte formato:

    ENDPOINT_URL?key=API_KEY&secret=SECRET
    

    Substitua:

    • ENDPOINT_URL: o URL do endpoint do feed.
    • API_KEY: a chave de API para autenticação no Google Security Operations.
    • SECRET: a chave secreta que você gerou para autenticar o feed.

Configurar o webhook do Palo Alto Prisma Cloud para o Google SecOps

  1. Faça login no Prisma Cloud da Palo Alto.
  2. Selecione Configurações > Integrações e notificações ((and_then)) Integrações.
  3. Clique em Adicionar integração.
  4. Selecione Webhook.
  5. Especifique valores para os seguintes parâmetros de entrada:
    • Nome da integração: forneça um nome exclusivo e descritivo (por exemplo, Google SecOps).
    • URL do webhook: insira o ENDPOINT_URL.
    • Opcional: forneça uma descrição da integração.
    • Opcional: ative Custom Payload > clique em Next para revisar o payload personalizado.
  6. Clique em Próxima.
  7. Teste e salve a integração.

Configurar alertas do Prisma Cloud da Palo Alto Networks

  1. No console do Prisma Cloud da Palo Alto, acesse Alerts > View Alert Rules.
  2. Selecione uma regra de alerta para editar.
  3. Opcional: crie um novo alerta para a Infraestrutura do Cloud.
  4. Opcional: crie um novo alerta para carga de trabalho do Cloud.
  5. Acesse Configurar notificações.
  6. Selecione Webhook.
  7. Opcional: selecione os canais para receber notificações de alertas acionados pela regra de alerta.
  8. Clique em Próxima.
  9. Clique em Salvar.

Tabela de mapeamento do UDM

Campo de registro Mapeamento do UDM Lógica
accountId target.resource.id O valor de accountId do registro bruto.
accountId target.resource.product_object_id O valor de accountId do registro bruto. Isso substitui o campo resource.id descontinuado.
alertId security_result.detection_fields[].key A chave está definida como "alert id".
alertId security_result.detection_fields[].value O valor de alertId do registro bruto.
alertRuleId security_result.rule_id O valor de alertRuleId do registro bruto.
alertRuleName security_result.rule_name O valor de alertRuleName do registro bruto.
alertStatus security_result.detection_fields[].key A chave está definida como "status do alerta".
alertStatus security_result.detection_fields[].value O valor de alertStatus do registro bruto.
alertTs security_result.detection_fields[].key A chave está definida como "alertTs".
alertTs security_result.detection_fields[].value O valor de alertTs do registro bruto, convertido em uma string.
callbackUrl metadata.url_back_to_product O valor de callbackUrl do registro bruto.
cloudType principal.cloud.environment Se cloudType for "gcp" (sem distinção entre maiúsculas e minúsculas), o valor será definido como "GOOGLE_CLOUD_PLATFORM".
complianceMetadata[].complianceId security_result.detection_fields[].key A chave está definida como "complianceId".
complianceMetadata[].complianceId security_result.detection_fields[].value O valor de complianceMetadata[].complianceId do registro bruto.
complianceMetadata[].customAssigned security_result.detection_fields[].key A chave está definida como "customAssigned".
complianceMetadata[].customAssigned security_result.detection_fields[].value O valor de complianceMetadata[].customAssigned do registro bruto, convertido em uma string.
complianceMetadata[].policyId security_result.detection_fields[].key A chave está definida como "ID da política".
complianceMetadata[].policyId security_result.detection_fields[].value O valor de complianceMetadata[].policyId do registro bruto.
complianceMetadata[].requirementId security_result.rule_id O valor de complianceMetadata[].requirementId do registro bruto.
complianceMetadata[].requirementName security_result.summary O valor de complianceMetadata[].requirementName do registro bruto.
complianceMetadata[].requirementViewOrder security_result.detection_fields[].key A chave é definida como "requirementViewOrder".
complianceMetadata[].requirementViewOrder security_result.detection_fields[].value O valor de complianceMetadata[].requirementViewOrder do registro bruto, convertido em uma string.
complianceMetadata[].sectionDescription security_result.detection_fields[].key A chave está definida como "sectionDescription".
complianceMetadata[].sectionDescription security_result.detection_fields[].value O valor de complianceMetadata[].sectionDescription do registro bruto.
complianceMetadata[].sectionId security_result.detection_fields[].key A chave é definida como "sectionId".
complianceMetadata[].sectionId security_result.detection_fields[].value O valor de complianceMetadata[].sectionId do registro bruto.
complianceMetadata[].sectionLabel security_result.detection_fields[].key A chave é definida como "sectionLabel".
complianceMetadata[].sectionLabel security_result.detection_fields[].value O valor de complianceMetadata[].sectionLabel do registro bruto.
complianceMetadata[].sectionViewOrder security_result.detection_fields[].key A chave está definida como "sectionViewOrder".
complianceMetadata[].sectionViewOrder security_result.detection_fields[].value O valor de complianceMetadata[].sectionViewOrder do registro bruto, convertido em uma string.
complianceMetadata[].standardDescription security_result.detection_fields[].key A chave está definida como "standardDescription".
complianceMetadata[].standardDescription security_result.detection_fields[].value O valor de complianceMetadata[].standardDescription do registro bruto.
complianceMetadata[].standardName security_result.rule_name O valor de complianceMetadata[].standardName do registro bruto.
complianceMetadata[].systemDefault security_result.detection_fields[].key A chave está definida como "systemDefault".
complianceMetadata[].systemDefault security_result.detection_fields[].value O valor de complianceMetadata[].systemDefault do registro bruto, convertido em uma string.
create_time metadata.event_timestamp, events[].timestamp O valor de create_time do registro bruto.
data.allocationId principal.resource.product_object_id O valor de data.allocationId do registro bruto.
data.publicIp principal.ip O valor de data.publicIp do registro bruto.
deleted additional.fields[].key A chave está definida como "excluída".
deleted additional.fields[].value.string_value O valor de deleted do registro bruto, convertido em uma string.
description metadata.description O valor de description do registro bruto.
firstSeen principal.asset.first_seen_time O valor de firstSeen do registro bruto, analisado como um carimbo de data/hora (formato UNIX_MS ou UNIX).
hasFinding security_result.detection_fields[].key A chave está definida como "hasFinding".
hasFinding security_result.detection_fields[].value O valor de hasFinding do registro bruto, convertido em uma string.
lastSeen principal.asset.last_discover_time O valor de lastSeen do registro bruto, analisado como um carimbo de data/hora (formato UNIX_MS ou UNIX).
N/A metadata.event_type Defina como "USER_RESOURCE_ACCESS" se não for substituído por um tipo de evento específico do registro. Caso contrário, defina como "GENERIC_EVENT".
N/A metadata.product_name Fixado em "CASB".
N/A metadata.vendor_name Fixado em "Palo Alto Networks".
policyDescription security_result.detection_fields[].key A chave está definida como "policyDescription".
policyDescription security_result.detection_fields[].value O valor de policyDescription do registro bruto.
policyId security_result.detection_fields[].key A chave está definida como "ID da política".
policyId security_result.detection_fields[].value O valor de policyId do registro bruto.
policyLabels additional.fields[].key A chave está definida como "policyLabels".
policyLabels additional.fields[].value.string_value O valor de policyLabels do registro bruto.
policyName security_result.description O valor de policyName do registro bruto.
policyRecommendation security_result.detection_fields[].key A chave está definida como "recomendação de política".
policyRecommendation security_result.detection_fields[].value O valor de policyRecommendation do registro bruto.
policyType security_result.detection_fields[].key A chave está definida como "Tipo de política".
policyType security_result.detection_fields[].value O valor de policyType do registro bruto.
reason security_result.summary O valor de reason do registro bruto.
recommendation security_result.detection_fields[].key A chave está definida como "Recomendação".
recommendation security_result.detection_fields[].value O valor de recommendation do registro bruto.
resource.additionalInfo principal.resource.attribute.labels[].key A chave está definida como "resource additionalInfo".
resource.additionalInfo principal.resource.attribute.labels[].value O valor de resource.additionalInfo do registro bruto.
resource.cloudAccountGroups principal.resource.attribute.labels[].key A chave está definida como "resource cloudAccountGroups {index}".
resource.cloudAccountGroups principal.resource.attribute.labels[].value O valor de resource.cloudAccountGroups[] do registro bruto.
resource.cloudType principal.resource.attribute.labels[].key A chave é definida como "resource cloudType".
resource.cloudType principal.resource.attribute.labels[].value O valor de resource.cloudType do registro bruto.
resource.data principal.resource.attribute.labels[].key A chave é definida como "resource data {nested_key}".
resource.data principal.resource.attribute.labels[].value O valor de resource.data[] do registro bruto.
resource.id principal.resource.product_object_id O valor de resource.id do registro bruto.
resource.name principal.resource.name O valor de resource.name do registro bruto.
resource.region principal.location.country_or_region O valor de resource.region do registro bruto.
resource.regionId principal.cloud.availability_zone O valor de resource.regionId do registro bruto.
resource.resourceApiName principal.resource.attribute.labels[].key A chave é definida como "resource resourceApiName".
resource.resourceApiName principal.resource.attribute.labels[].value O valor de resource.resourceApiName do registro bruto.
resource.resourceTags principal.resource.attribute.labels[].key A chave está definida como "resource resourceTags {nested_key}".
resource.resourceTags principal.resource.attribute.labels[].value O valor de resource.resourceTags[] do registro bruto.
resource.resourceTs principal.resource.attribute.labels[].key A chave está definida como "resource resourceTs".
resource.resourceTs principal.resource.attribute.labels[].value O valor de resource.resourceTs do registro bruto.
resource.resourceType principal.resource.attribute.labels[].key A chave é definida como "resource resourceType".
resource.resourceType principal.resource.attribute.labels[].value O valor de resource.resourceType do registro bruto.
resource.rrn principal.resource.attribute.labels[].key A chave está definida como "resource rrn".
resource.rrn principal.resource.attribute.labels[].value O valor de resource.rrn do registro bruto.
resource.url principal.url O valor de resource.url do registro bruto.
resourceCloudService principal.resource.attribute.labels[].key A chave está definida como "serviço de nuvem de recurso".
resourceCloudService principal.resource.attribute.labels[].value O valor de resourceCloudService do registro bruto.
resourceName principal.resource.name O valor de resourceName do registro bruto.
resourceRegion principal.location.country_or_region O valor de resourceRegion do registro bruto.
resourceRegionId principal.cloud.availability_zone O valor de resourceRegionId do registro bruto.
resourceType target.resource.resource_subtype O valor de resourceType do registro bruto.
severity security_result.severity O valor de severity do registro bruto, convertido em maiúsculas. Mapeado para valores de gravidade do UDM (CRÍTICO, ALTO, MÉDIO, BAIXO, INFORMATIVO).
source principal.application O valor de source do registro bruto.
unifiedAssetId principal.asset.asset_id O valor de unifiedAssetId do registro bruto, com prefixo "ASSETID:".

Alterações

2023-12-10

  • Um padrão Grok foi adicionado para extrair a parte JSON.
  • "resourceId" foi mapeado para "principal.resource.product_object_id".
  • "accountId" foi mapeado para "target.resource.product_object_id".
  • "alertRuleName" foi mapeado para "security_result.rule_name".
  • Mapeamos "accountName" para "target.resource.name".
  • O mapeamento de "hasFinding" para "security_result.detection_fields" foi feito.
  • "resourceRegionId" foi mapeado para "principal.cloud.availability_zone".
  • Mapeamos "source" para "principal.application".
  • "callbackUrl" foi associado a "metadata.url_back_to_product".
  • "alertRuleId" foi associado a "security_result.rule_id".
  • O "alertId" foi mapeado para "security_result.detection_fields".
  • "policyLabels" foi associado a "additional.fields".
  • "policyName" foi associado a "security_result.description".
  • "resourceName" foi associado a "principal.resource.name".
  • "resourceRegion" foi mapeado para "principal.location.country_or_region".
  • "policyDescription" foi associado a "security_result.detection_fields".
  • "policyRecommendation" foi mapeado para "security_result.detection_fields".
  • Mapeamos "resourceCloudService" para "principal.resource.attribute.labels".
  • "resource.url" foi associado a "principal.url".
  • "alertTs" foi mapeado para "security_result.detection_fields".
  • "firstSeen" foi mapeado para "principal.asset.first_seen_time".
  • "lastSeen" foi mapeado para "principal.asset.last_discover_time".
  • O "reason" foi mapeado para "security_result.summary".
  • "alertStatus" foi associado a "security_result.detection_fields".
  • Se o valor de "severity" for "HIGH", defina "security_result.severity" como "HIGH".
  • Se o valor de "cloudType" for "gcp", defina "principal.cloud.environment" como "GOOGLE_CLOUD_PLATFORM".

2023-08-17

  • Parser recém-criado.