Recolha registos de alertas do Palo Alto Prisma Cloud
Vista geral
Este analisador extrai registos de alertas do Palo Alto Prisma Cloud no formato JSON, transformando-os no UDM. O analisador sintático realiza a normalização de dados, as conversões de tipos e a lógica condicional para preencher os campos da UDM adequados. Também processa estruturas JSON aninhadas e matrizes nos dados de registo para extrair informações relevantes.
Antes de começar
Certifique-se de que tem os seguintes pré-requisitos:
- Instância do Google SecOps.
- Acesso privilegiado ao Palo Alto Prisma Cloud.
Configure feeds
Para configurar um feed, siga estes passos:
- Aceda a Definições do SIEM > Feeds.
- Clique em Adicionar novo feed.
- Na página seguinte, clique em Configurar um único feed.
- No campo Nome do feed, introduza um nome para o feed; por exemplo, Alertas do PAN Prisma Cloud.
- Selecione Webhook como o Tipo de origem.
- Selecione Palo Alto Prisma Cloud Alerts payload como o Tipo de registo.
- Clicar em Seguinte.
- Opcional: especifique valores para os seguintes parâmetros de entrada:
- Delimitador de divisão: o delimitador usado para separar linhas de registo, como
\n
.
- Delimitador de divisão: o delimitador usado para separar linhas de registo, como
- Clicar em Seguinte.
- Reveja a configuração do feed no ecrã Finalizar e, de seguida, clique em Enviar.
- Clique em Gerar chave secreta para gerar uma chave secreta para autenticar este feed.
- Copie e armazene a chave secreta. Não pode ver esta chave secreta novamente. Se necessário, pode regenerar uma nova chave secreta, mas esta ação torna a chave secreta anterior obsoleta.
- No separador Detalhes, copie o URL do ponto final do feed do campo Informações do ponto final. Tem de especificar este URL do ponto final na sua aplicação cliente.
- Clique em Concluído.
Crie uma chave da API para o feed de webhook
Aceda à Google Cloud consola > Credenciais.
Clique em Criar credenciais e, de seguida, selecione Chave de API.
Restrinja o acesso da chave de API à API Google Security Operations.
Especifique o URL do ponto final
- Na aplicação cliente, especifique o URL do ponto final HTTPS fornecido no feed do webhook.
Ative a autenticação especificando a chave da 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 da API como um cabeçalho em vez de a especificar no URL.
Se o seu cliente de webhook não suportar cabeçalhos personalizados, pode especificar a chave da API e a chave secreta através de parâmetros de consulta no seguinte formato:
ENDPOINT_URL?key=API_KEY&secret=SECRET
Substitua o seguinte:
ENDPOINT_URL
: o URL do ponto final do feed.API_KEY
: a chave da API para autenticar no Google Security Operations.SECRET
: a chave secreta que gerou para autenticar o feed.
Configure o webhook do Palo Alto Prisma Cloud para o Google SecOps
- Inicie sessão no Palo Alto Prisma Cloud.
- Selecione Definições > Integrações e notificações ((and_then)) Integrações.
- Clique em Adicionar integração.
- Selecione Webhook.
- Especifique valores para os seguintes parâmetros de entrada:
- Nome da integração: indique um nome exclusivo e descritivo (por exemplo, Google SecOps)
- URL do webhook: introduza o ENDPOINT_URL.
- Opcional: indique uma Descrição da integração.
- Opcional: ative o Payload personalizado > clique em Seguinte para rever ou rever o payload personalizado.
- Clicar em Seguinte.
- Teste e guarde a integração.
Configure alertas do Palo Alto Prisma Cloud
- Na consola do Palo Alto Prisma Cloud, aceda a Alertas > Ver regras de alerta.
- Selecione uma regra de alerta existente para editar.
- Opcional: crie um novo alerta para a infraestrutura na nuvem.
- Opcional: criar novo alerta para carga de trabalho na nuvem.
- Aceda a Configurar notificações.
- Selecione Webhook.
- Opcional: selecione os canais para os quais quer enviar notificações de alertas acionados pela regra de alerta.
- Clicar em Seguinte.
- Clique em Guardar.
Tabela de mapeamento da UDM
Campo de registo | Mapeamento de UDM | Lógica |
---|---|---|
accountId |
target.resource.id |
O valor de accountId do registo não processado. |
accountId |
target.resource.product_object_id |
O valor de accountId do registo não processado. Isto 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 registo não processado. |
alertRuleId |
security_result.rule_id |
O valor de alertRuleId do registo não processado. |
alertRuleName |
security_result.rule_name |
O valor de alertRuleName do registo não processado. |
alertStatus |
security_result.detection_fields[].key |
A chave está definida como "alert status". |
alertStatus |
security_result.detection_fields[].value |
O valor de alertStatus do registo não processado. |
alertTs |
security_result.detection_fields[].key |
A chave está definida como "alertTs". |
alertTs |
security_result.detection_fields[].value |
O valor de alertTs do registo não processado, convertido numa string. |
callbackUrl |
metadata.url_back_to_product |
O valor de callbackUrl do registo não processado. |
cloudType |
principal.cloud.environment |
Se cloudType for "gcp" (sem distinção entre maiúsculas e minúsculas), o valor é 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 registo não processado. |
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 registo não processado, convertido numa 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 registo não processado. |
complianceMetadata[].requirementId |
security_result.rule_id |
O valor de complianceMetadata[].requirementId do registo não processado. |
complianceMetadata[].requirementName |
security_result.summary |
O valor de complianceMetadata[].requirementName do registo não processado. |
complianceMetadata[].requirementViewOrder |
security_result.detection_fields[].key |
A chave está definida como "requirementViewOrder". |
complianceMetadata[].requirementViewOrder |
security_result.detection_fields[].value |
O valor de complianceMetadata[].requirementViewOrder do registo não processado, convertido numa 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 registo não processado. |
complianceMetadata[].sectionId |
security_result.detection_fields[].key |
A chave está definida como "sectionId". |
complianceMetadata[].sectionId |
security_result.detection_fields[].value |
O valor de complianceMetadata[].sectionId do registo não processado. |
complianceMetadata[].sectionLabel |
security_result.detection_fields[].key |
A chave está definida como "sectionLabel". |
complianceMetadata[].sectionLabel |
security_result.detection_fields[].value |
O valor de complianceMetadata[].sectionLabel do registo não processado. |
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 registo não processado, convertido numa 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 registo não processado. |
complianceMetadata[].standardName |
security_result.rule_name |
O valor de complianceMetadata[].standardName do registo não processado. |
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 registo não processado, convertido numa string. |
create_time |
metadata.event_timestamp , events[].timestamp |
O valor de create_time do registo não processado. |
data.allocationId |
principal.resource.product_object_id |
O valor de data.allocationId do registo não processado. |
data.publicIp |
principal.ip |
O valor de data.publicIp do registo não processado. |
deleted |
additional.fields[].key |
A chave está definida como "eliminada". |
deleted |
additional.fields[].value.string_value |
O valor de deleted do registo não processado, convertido numa string. |
description |
metadata.description |
O valor de description do registo não processado. |
firstSeen |
principal.asset.first_seen_time |
O valor de firstSeen do registo não processado, analisado como uma 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 registo não processado, convertido numa string. |
lastSeen |
principal.asset.last_discover_time |
O valor de lastSeen do registo não processado, analisado como uma data/hora (formato UNIX_MS ou UNIX). |
N/A | metadata.event_type |
Definido como "USER_RESOURCE_ACCESS" se não for substituído por um tipo de evento específico do registo. Caso contrário, é definido como "GENERIC_EVENT". |
N/A | metadata.product_name |
Codificado de forma rígida para "CASB". |
N/A | metadata.vendor_name |
Codificado como "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 registo não processado. |
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 registo não processado. |
policyLabels |
additional.fields[].key |
A chave está definida como "policyLabels". |
policyLabels |
additional.fields[].value.string_value |
O valor de policyLabels do registo não processado. |
policyName |
security_result.description |
O valor de policyName do registo não processado. |
policyRecommendation |
security_result.detection_fields[].key |
A chave está definida como "policy recommendation". |
policyRecommendation |
security_result.detection_fields[].value |
O valor de policyRecommendation do registo não processado. |
policyType |
security_result.detection_fields[].key |
A chave está definida como "Policy Type" (Tipo de política). |
policyType |
security_result.detection_fields[].value |
O valor de policyType do registo não processado. |
reason |
security_result.summary |
O valor de reason do registo não processado. |
recommendation |
security_result.detection_fields[].key |
A chave está definida como "Recommendation". |
recommendation |
security_result.detection_fields[].value |
O valor de recommendation do registo não processado. |
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 registo não processado. |
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 registo não processado. |
resource.cloudType |
principal.resource.attribute.labels[].key |
A chave está definida como "resource cloudType". |
resource.cloudType |
principal.resource.attribute.labels[].value |
O valor de resource.cloudType do registo não processado. |
resource.data |
principal.resource.attribute.labels[].key |
A chave está definida como "resource data {nested_key}". |
resource.data |
principal.resource.attribute.labels[].value |
O valor de resource.data[] do registo não processado. |
resource.id |
principal.resource.product_object_id |
O valor de resource.id do registo não processado. |
resource.name |
principal.resource.name |
O valor de resource.name do registo não processado. |
resource.region |
principal.location.country_or_region |
O valor de resource.region do registo não processado. |
resource.regionId |
principal.cloud.availability_zone |
O valor de resource.regionId do registo não processado. |
resource.resourceApiName |
principal.resource.attribute.labels[].key |
A chave está definida como "resource resourceApiName". |
resource.resourceApiName |
principal.resource.attribute.labels[].value |
O valor de resource.resourceApiName do registo não processado. |
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 registo não processado. |
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 registo não processado. |
resource.resourceType |
principal.resource.attribute.labels[].key |
A chave está definida como "resource resourceType". |
resource.resourceType |
principal.resource.attribute.labels[].value |
O valor de resource.resourceType do registo não processado. |
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 registo não processado. |
resource.url |
principal.url |
O valor de resource.url do registo não processado. |
resourceCloudService |
principal.resource.attribute.labels[].key |
A chave está definida como "serviço na nuvem de recursos". |
resourceCloudService |
principal.resource.attribute.labels[].value |
O valor de resourceCloudService do registo não processado. |
resourceName |
principal.resource.name |
O valor de resourceName do registo não processado. |
resourceRegion |
principal.location.country_or_region |
O valor de resourceRegion do registo não processado. |
resourceRegionId |
principal.cloud.availability_zone |
O valor de resourceRegionId do registo não processado. |
resourceType |
target.resource.resource_subtype |
O valor de resourceType do registo não processado. |
severity |
security_result.severity |
O valor de severity do registo não processado, convertido em maiúsculas. Mapeado para valores de gravidade do UDM (CRÍTICO, ELEVADO, MÉDIO, BAIXO, INFORMATIVO). |
source |
principal.application |
O valor de source do registo não processado. |
unifiedAssetId |
principal.asset.asset_id |
O valor de unifiedAssetId do registo não processado, com o prefixo "ASSETID:". |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.