Coletar registros do Oracle Cloud Infrastructure - Oracle Cloud Guard

Compatível com:

Neste documento, explicamos como configurar o Cloud Guard da Oracle Cloud Infrastructure para enviar registros ao Google Security Operations usando webhooks.

O Oracle Cloud Guard é um serviço de segurança nativo da nuvem que monitora, identifica e ajuda a manter uma postura de segurança forte na Oracle Cloud Infrastructure (OCI). O Cloud Guard examina os recursos da OCI em busca de falhas de segurança relacionadas à configuração e detecta atividades anômalas. Quando o Cloud Guard descobre um desvio de uma regra de detecção, ele cria um evento de problema que fornece monitoramento de segurança abrangente em toda a locação da OCI. Essa integração usa o serviço de eventos da OCI e as funções da OCI para encaminhar eventos de problemas do Cloud Guard para o Google SecOps quase em tempo real.

Antes de começar

Verifique se você atende os seguintes pré-requisitos:

  • Uma instância do Google SecOps
  • Uma locação ativa da infraestrutura em nuvem da Oracle com o Cloud Guard ativado.
  • Acesso de administrador ao console da Oracle Cloud Infrastructure
  • Permissões para criar e gerenciar aplicativos do OCI Functions
  • Permissões para criar regras de eventos do OCI e tópicos de notificações
  • Acesso ao Cloud Shell da OCI ou a um ambiente local com a CLI do Fn Project instalada
  • Docker instalado (para criar funções OCI localmente)
  • Acesso ao console do Google Cloud (para criar chaves de API)

Criar um feed de webhook no Google SecOps

Criar o feed

  1. Acesse Configuraçõ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, insira um nome para o feed (por exemplo, OCI Cloud Guard Problems).
  5. Selecione Webhook como o Tipo de origem.
  6. Selecione Oracle Cloud Infrastructure - Oracle Cloud Guard como o Tipo de registro.
  7. Clique em Próxima.
  8. Especifique valores para os seguintes parâmetros de entrada:
    • Delimitador de divisão (opcional): deixe em branco (cada invocação de função envia um único evento).
    • Namespace do recurso: o namespace do recurso.
    • Rótulos de ingestão: o rótulo a ser 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.

Gerar e salvar a chave secreta

Depois de criar o feed, gere uma chave secreta para autenticação:

  1. Na página de detalhes do feed, clique em Gerar chave secreta.
  2. Uma caixa de diálogo mostra a chave secreta.
  3. Copie e salve a chave secreta com segurança.

Importante: a chave secreta é exibida apenas uma vez e não pode ser recuperada depois. Se você perder a chave, será necessário gerar outra.

Receber o URL do endpoint do feed

  1. Acesse a guia Detalhes do feed.
  2. Na seção Informações do endpoint, copie o URL do endpoint do feed.
  3. O formato do URL é:

    https://{region}-chronicle.googleapis.com/v1/{parent}/logs:import
    

    Em que {region} é a região da sua instância do Google SecOps (por exemplo, us, europe ou asia-southeast1) e {parent} é o caminho do recurso no formato projects/<PROJECT_ID>/locations/<LOCATION>/instances/<INSTANCE_ID>/logTypes/<LOG_TYPE>.

  4. Salve esse URL para as próximas etapas.

  5. Clique em Concluído.

Criar chave de API do Google Cloud

O Chronicle exige uma chave de API para autenticação. Crie uma chave de API restrita no console do Google Cloud.

Criar a chave de API

  1. Acesse a página "Credenciais" do console do Google Cloud.
  2. Selecione seu projeto (aquele associado à sua instância do Chronicle).
  3. Clique em Criar credenciais > Chave de API.
  4. Uma chave de API é criada e exibida em uma caixa de diálogo.
  5. Clique em Editar chave de API para restringir a chave.

Restringir a chave de API

  1. Na página de configurações da chave de API:
    • Nome: insira um nome descritivo (por exemplo, Chronicle Webhook API Key).
  2. Em Restrições de API:
    1. Selecione Restringir chave.
    2. No menu suspenso Selecionar APIs, pesquise e selecione API Google SecOps (ou API Chronicle).
  3. Clique em Salvar.
  4. Copie o valor da chave de API do campo Chave de API na parte de cima da página.
  5. Salve a chave de API com segurança.

Ativar o Cloud Guard Cloud Event Responder

O Cloud Guard usa o Cloud Event Responder para emitir detalhes do problema para o serviço de eventos da OCI. O responder de eventos do Cloud faz parte da receita de responder e precisa ser ativado e configurado para execução automática.

Ativar a regra de evento do Cloud na receita do Responder

  1. Faça login no console da Oracle Cloud Infrastructure.
  2. Abra o menu de navegação e selecione Identidade e segurança > Cloud Guard > Receitas.
  3. Selecione Responder Recipes.
  4. Clique na receita de resposta anexada ao seu destino.
  5. Na seção Regras do respondente, localize a regra Eventos do Cloud.
  6. Se o status for Desativado:
    1. Abra o menu Ações (três pontos) e selecione Editar.
    2. Mude o Status para Ativado.
    3. Clique em Salvar.

Configurar a execução automática no destino

  1. No console do Oracle Cloud Infrastructure, abra o menu de navegação e selecione Identidade e segurança > Cloud Guard > Configuração > Destinos.
  2. Selecione o compartimento de destino.
  3. Em Recursos, selecione Receitas do Respondente.
  4. Clique no link da receita do respondente.
  5. Localize a regra de resposta do evento do Cloud.
  6. Abra o menu Ações (três pontos) e selecione Editar.
  7. Defina o Acionador da regra como Executar automaticamente.
  8. Marque a caixa de seleção CONFIRMAR EXECUÇÃO AUTOMÁTICA.
  9. Clique em Salvar.

Criar aplicativo do OCI Functions

Crie um aplicativo do OCI Functions que hospedará a função responsável por encaminhar eventos do Cloud Guard para o Google SecOps.

Criar aplicativo

  1. No console da Oracle Cloud Infrastructure, abra o menu de navegação e selecione Developer Services > Functions > Applications.
  2. Selecione o compartimento em que você quer criar o aplicativo.
  3. Clique em Criar aplicativo.
  4. Informe os seguintes detalhes de configuração:
    • Nome: insira cloudguard-chronicle-forwarder.
    • VCN: selecione uma VCN com acesso à Internet (necessário para que a função alcance o endpoint do webhook do Chronicle)
    • Sub-redes: selecione uma sub-rede pública ou privada com um gateway NAT configurado.
  5. Clique em Criar.

Criar e implantar a função

Use o Cloud Shell da OCI ou um ambiente local com a CLI do Fn Project para criar e implantar a função.

  1. Abra o Cloud Shell da OCI no console da Oracle Cloud Infrastructure (clique no ícone do Cloud Shell na barra de navegação superior).
  2. Configure o contexto do Fn para seu aplicativo do OCI Functions:

    fn list context
    fn use context <your-region-context>
    fn update context oracle.compartment-id <compartment_OCID>
    fn update context registry <region-key>.ocir.io/<tenancy-namespace>/cloudguard-chronicle
    
  3. Inicialize uma nova função do Python:

    fn init --runtime python cloudguard-to-chronicle
    cd cloudguard-to-chronicle
    
  4. Substitua o conteúdo do arquivo func.py pelo seguinte código:

    import io
    import json
    import logging
    import requests
    
    from fdk import response
    
    def handler(ctx, data: io.BytesIO = None):
        """
        OCI Function that receives Cloud Guard events from OCI Events Service
        and forwards them to Google SecOps (Chronicle) webhook endpoint.
        """
        logger = logging.getLogger()
    
        try:
            cfg = ctx.Config()
            chronicle_endpoint = cfg.get("CHRONICLE_ENDPOINT")
            chronicle_api_key = cfg.get("CHRONICLE_API_KEY")
            chronicle_secret = cfg.get("CHRONICLE_SECRET")
    
            if not all([chronicle_endpoint, chronicle_api_key, chronicle_secret]):
                logger.error("Missing required configuration: CHRONICLE_ENDPOINT, CHRONICLE_API_KEY, or CHRONICLE_SECRET")
                return response.Response(
                    ctx, response_data=json.dumps({"error": "Missing configuration"}),
                    headers={"Content-Type": "application/json"}, status_code=500
                )
    
            event_data = json.loads(data.getvalue())
            logger.info(f"Received Cloud Guard event: {event_data.get('eventType', 'unknown')}")
    
            webhook_url = f"{chronicle_endpoint}?key={chronicle_api_key}&secret={chronicle_secret}"
    
            headers = {
                "Content-Type": "application/json"
            }
    
            resp = requests.post(
                webhook_url,
                json=event_data,
                headers=headers,
                timeout=30
            )
    
            if resp.status_code >= 200 and resp.status_code < 300:
                logger.info(f"Successfully forwarded event to Chronicle (HTTP {resp.status_code})")
            else:
                logger.error(f"Failed to forward event to Chronicle (HTTP {resp.status_code}): {resp.text}")
    
            return response.Response(
                ctx, response_data=json.dumps({"status": resp.status_code}),
                headers={"Content-Type": "application/json"}, status_code=200
            )
    
        except Exception as e:
            logger.error(f"Error processing Cloud Guard event: {str(e)}")
            return response.Response(
                ctx, response_data=json.dumps({"error": str(e)}),
                headers={"Content-Type": "application/json"}, status_code=500
            )
    
  5. Substitua o conteúdo do arquivo requirements.txt:

    fdk>=0.1.0
    requests>=2.25.0
    
  6. Implante a função no aplicativo:

    fn -v deploy --app cloudguard-chronicle-forwarder
    
  7. Aguarde até que a implantação seja concluída.

Configurar variáveis de ambiente de função

  1. No console da Oracle Cloud Infrastructure, abra o menu de navegação e selecione Serviços para desenvolvedores > Funções > Aplicativos.
  2. Clique no aplicativo cloudguard-chronicle-forwarder.
  3. Em Recursos, selecione Funções.
  4. Clique na função cloudguard-to-chronicle.
  5. Em Recursos, selecione Configuração.
  6. Clique em Editar e adicione os seguintes pares de chave-valor:

    Chave Valor
    CHRONICLE_ENDPOINT O URL do endpoint do webhook do Chronicle (por exemplo, https://{region}-chronicle.googleapis.com/v1/{parent}/logs:import)
    CHRONICLE_API_KEY A chave de API do Google Cloud criada para o webhook do Chronicle
    CHRONICLE_SECRET A chave secreta do webhook do Chronicle
  7. Clique em Salvar.

Criar políticas do IAM para o OCI Functions

O serviço OCI Functions e o serviço Events exigem políticas do IAM para invocar a função.

Criar um grupo dinâmico para a função

  1. No console da Oracle Cloud Infrastructure, abra o menu de navegação e selecione Identidade e segurança > Domínios.
  2. Selecione o domínio Padrão.
  3. Em Recursos do domínio de identidade, selecione Grupos dinâmicos.
  4. Clique em Criar grupo dinâmico.
  5. Informe os seguintes detalhes de configuração:

    • Nome: insira cloudguard-chronicle-functions.
    • Descrição: insira Dynamic group for Cloud Guard to Chronicle forwarder function
    • Regras de correspondência: insira a seguinte regra:
    ALL {resource.type = 'fnfunc', resource.compartment.id = '<compartment_OCID>'}
    
  6. Clique em Criar.

Criar políticas do IAM

  1. No console do Oracle Cloud Infrastructure, abra o menu de navegação e selecione Identidade e segurança > Políticas.
  2. Verifique se você está no compartimento raiz.
  3. Clique em Criar política.
  4. Informe os seguintes detalhes de configuração:
    • Nome: insira cloudguard-chronicle-policy.
    • Descrição: insira Allows Events Service to invoke Cloud Guard Chronicle forwarder function.
    • Compartimento: verifique se o compartimento raiz está selecionado.
  5. Na seção Criador de políticas, ative a opção Mostrar editor manual.
  6. No campo Statement, insira as seguintes instruções de política:

    Allow dynamic-group cloudguard-chronicle-functions to use fn-function in compartment <compartment_name>
    Allow dynamic-group cloudguard-chronicle-functions to use fn-invocation in compartment <compartment_name>
    Allow service cloudguardevents to use fn-function in compartment <compartment_name>
    Allow service cloudguardevents to use fn-invocation in compartment <compartment_name>
    
  7. Clique em Criar.

Criar regra de eventos da OCI para o Cloud Guard

Crie uma regra de eventos que acione a função do OCI quando o Cloud Guard detectar, dispensar ou corrigir um problema.

Criar a regra de eventos

  1. No console da Oracle Cloud Infrastructure, abra o menu de navegação e selecione Observabilidade e gerenciamento > Serviço de eventos > Regras.

  2. Clique em Criar regra.

  3. Informe os seguintes detalhes de configuração:

    • Nome de exibição: insira cloudguard-to-chronicle
    • Descrição: insira Forwards Cloud Guard problem events to Google SecOps via OCI Functions.
  4. Na seção Condições da regra:

    1. Defina Condição como Tipo de evento.
    2. Defina o Nome do serviço como Cloud Guard.
    3. Defina o Tipo de evento como o seguinte (selecione vários):
      • Detectado - Problema
      • Dispensado: problema
      • Corrigido - Problema
  5. Na seção Ações:

    1. Defina Tipo de ação como Funções.
    2. Defina Compartimento da função como o compartimento que contém o aplicativo da função.
    3. Defina Aplicativo de função como cloudguard-chronicle-forwarder.
    4. Defina Função como cloudguard-to-chronicle.
  6. Clique em Criar regra.

Opcional: filtrar por nível de risco

Para encaminhar apenas problemas de alta gravidade, adicione um filtro de atributo à regra de eventos:

  1. Na seção Condições da regra, clique em + Outra condição.
  2. Defina Condição como Atributo.
  3. Defina o Nome do atributo como riskLevel.
  4. Defina os valores de atributo para os níveis de risco desejados:

    • CRITICAL
    • HIGH

Verificar a integração

Testar a função manualmente

  1. No console do Oracle Cloud Infrastructure, abra o menu de navegação e selecione Serviços para desenvolvedores > Funções > Aplicativos.
  2. Clique no aplicativo cloudguard-chronicle-forwarder.
  3. Em Recursos, selecione Funções.
  4. Clique na função cloudguard-to-chronicle.
  5. Clique em Invoke para testar a função com dados de amostra ou use o Cloud Shell da OCI:

    echo '{"eventType":"com.oraclecloud.cloudguard.problemdetected","cloudEventsVersion":"0.1","eventID":"test-event-001","data":{"compartmentId":"ocid1.compartment.oc1..example","resourceName":"test-problem","additionalDetails":{"riskLevel":"HIGH","problemDescription":"Test problem for integration verification","status":"OPEN","region":"us-ashburn-1"}}}' | fn invoke cloudguard-chronicle-forwarder cloudguard-to-chronicle
    
  6. Para verificar os registros da função, navegue até Serviços para desenvolvedores > Functions > Applications > cloudguard-chronicle-forwarder e selecione a seção Registros.

  7. Procure entradas de registro que confirmem o encaminhamento:

    Received Cloud Guard event: com.oraclecloud.cloudguard.problemdetected
    Successfully forwarded event to Chronicle (HTTP 200)
    

Verificar no Google SecOps

  1. Faça login no Google SecOps.
  2. Acesse Pesquisar e consulte eventos com o tipo de registro OCI_CLOUDGUARD.
  3. Verifique se os eventos de problema do Cloud Guard aparecem nos resultados da pesquisa.

Se os eventos não aparecerem:

  • Verifique o URL do endpoint do webhook do Chronicle, a chave de API e a chave secreta na configuração da função.
  • Verifique se a regra de eventos está na região correta da OCI (região de relatórios do Cloud Guard).
  • Confirme se o Cloud Event Responder está ativado e definido para execução automática.
  • Analisar os registros de função em busca de mensagens de erro

Referência dos tipos de eventos do Cloud Guard

O Cloud Guard emite os seguintes tipos de evento pelo serviço de eventos da OCI:

Tipo de evento Gatilho
com.oraclecloud.cloudguard.problemdetected Um novo problema é detectado
com.oraclecloud.cloudguard.problemdismissed Um problema é dispensado
com.oraclecloud.cloudguard.problemremediated Um problema é corrigido
com.oraclecloud.cloudguard.sightingdetected Uma nova aparição é detectada

Referência de métodos de autenticação

Os feeds de webhook do Chronicle são compatíveis com vários métodos de autenticação. Escolha o método compatível com seu fornecedor.

Se o fornecedor for compatível com cabeçalhos HTTP personalizados, use esse método para melhorar a segurança.

  • Formato da solicitação:

    POST <ENDPOINT_URL> HTTP/1.1
    Content-Type: application/json
    x-goog-chronicle-auth: <API_KEY>
    x-chronicle-auth: <SECRET_KEY>
    
    {
            "event": "data",
            "timestamp": "2025-01-15T10:30:00Z"
    }
    

Vantagens:

  • Chave de API e secret não visíveis no URL
  • Mais seguro (cabeçalhos não registrados em registros de acesso ao servidor da Web)
  • Método preferencial quando o fornecedor oferece suporte

Método 2: parâmetros de consulta

Se o fornecedor não aceitar cabeçalhos personalizados, adicione as credenciais ao URL.

  • Formato do URL:

    <ENDPOINT_URL>?key=<API_KEY>&secret=<SECRET_KEY>
    
  • Exemplo:

    https://{region}-chronicle.googleapis.com/v1/{parent}/logs:import?key=AIzaSyD...&secret=abcd1234...
    
  • Formato da solicitação:

    POST <ENDPOINT_URL>?key=<API_KEY>&secret=<SECRET_KEY> HTTP/1.1
    Content-Type: application/json
    
    {
            "event": "data",
            "timestamp": "2025-01-15T10:30:00Z"
    }
    

Desvantagens:

  • Credenciais visíveis no URL
  • Pode ser registrado em registros de acesso do servidor da Web.
  • Menos seguro do que cabeçalhos

Método 3: híbrido (URL + cabeçalho)

Algumas configurações usam a chave de API no URL e a chave secreta no cabeçalho.

  • Formato da solicitação:

    POST <ENDPOINT_URL>?key=<API_KEY> HTTP/1.1
    Content-Type: application/json
    x-chronicle-auth: <SECRET_KEY>
    
    {
            "event": "data",
            "timestamp": "2025-01-15T10:30:00Z"
    }
    

Nomes dos cabeçalhos de autenticação

O Chronicle aceita os seguintes nomes de cabeçalho para autenticação:

  • Para chave de API:

    • x-goog-chronicle-auth (recomendado)
    • X-Goog-Chronicle-Auth (não diferencia maiúsculas de minúsculas)
  • Para a chave secreta:

    • x-chronicle-auth (recomendado)
    • X-Chronicle-Auth (não diferencia maiúsculas de minúsculas)

Limites e práticas recomendadas de webhook

Limites de solicitações

Limite Valor
Tamanho máximo da solicitação 4 MB
QPS máximo (consultas por segundo) 15.000
Tempo limite da solicitação 30 segundos
Comportamento de repetição Automático com espera exponencial

Tabela de mapeamento de UDM

Campo de registro Mapeamento de UDM Lógica
contentType additional.fields Mesclado de vários campos adicionais
cloudEventsVersion additional.fields
data.additionalDetails.reason additional.fields
data.additionalDetails.tenantId additional.fields
data.additionalDetails.problemType additional.fields
data.resourceName additional.fields
data.resourceId additional.fields
status additional.fields
problem_recommendation additional.fields
compartment_id additional.fields
compartment_name additional.fields
product_event extensions.auth.type Defina como "AUTHTYPE_UNSPECIFIED" se product_event corresponder ao login.
data.additionalDetails.problemDescription metadata.description Valor de data.additionalDetails.problemDescription se não estiver vazio, caso contrário, data.additionalDetails.description
data.additionalDetails.description metadata.description
has_user metadata.event_type Definido como USER_RESOURCE_ACCESS se has_user e has_target_resource, USER_UNCATEGORIZED se has_user, USER_LOGIN se product_event corresponder ao login, STATUS_UPDATE se has_principal, caso contrário, GENERIC_EVENT
has_target_resource metadata.event_type
product_event metadata.event_type
has_principal metadata.event_type
eventType metadata.product_event_type Valor de eventType se não estiver vazio, caso contrário, product_event
product_event metadata.product_event_type
eventID metadata.product_log_id Valor copiado diretamente
versão metadata.product_version Valor copiado diretamente
observador observer.domain.name Domínio extraído do observador usando grok
observador observer.hostname Valor do observador se não for IP
observador observer.ip Valor do observador se for IP
participante principal.administrative_domain Domínio extraído de principal ou principal_host usando grok
principal_host principal.administrative_domain
data.additionalDetails.problemAdditionalDetails.public_ips principal.asset.ip Valor de data.additionalDetails.problemAdditionalDetails.public_ips se não estiver vazio, caso contrário, vnicDetails.0.vnicPublicIp se não estiver vazio, caso contrário, de principal se for IP, caso contrário, principal_host se for IP
vnicDetails.0.vnicPublicIp principal.asset.ip
participante principal.asset.ip
principal_host principal.asset.ip
participante principal.hostname Valor de principal se não for IP, caso contrário, principal_host se não for IP
principal_host principal.hostname
data.additionalDetails.problemAdditionalDetails.public_ips principal.ip Valor de data.additionalDetails.problemAdditionalDetails.public_ips se não estiver vazio, caso contrário, vnicDetails.0.vnicPublicIp se não estiver vazio, caso contrário, de principal se for IP, caso contrário, principal_host se for IP
vnicDetails.0.vnicPublicIp principal.ip
participante principal.ip
principal_host principal.ip
data.additionalDetails.region principal.location.name Valor copiado diretamente
principal_port principal.port Convertido para número inteiro de principal_port
data.additionalDetails.resourceName principal.resource.name Valor de data.additionalDetails.resourceName, se não estiver vazio. Caso contrário, data.additionalDetails.principalResourceName
data.additionalDetails.principalResourceName principal.resource.name
data.additionalDetails.resourceId principal.resource.product_object_id Valor de data.additionalDetails.resourceId se não estiver vazio, caso contrário, data.additionalDetails.principalResourceId
data.additionalDetails.principalResourceId principal.resource.product_object_id
data.additionalDetails.resourceType principal.resource.resource_subtype Valor de "data.additionalDetails.resourceType" se não estiver vazio. Caso contrário, "data.additionalDetails.principalResourceType".
data.additionalDetails.principalResourceType principal.resource.resource_subtype
data.additionalDetails.resourceName principal.user.userid Valor de data.additionalDetails.resourceName se data.additionalDetails.resourceType == "User", caso contrário, de data.additionalDetails.principalResourceName se data.additionalDetails.principalResourceType == "User"
data.additionalDetails.principalResourceName principal.user.userid
ação security_result.action Definido como BLOCK se a ação corresponder ao bloqueio, ALLOW se for bem-sucedida, FAIL se falhar e UNKNOWN caso contrário.
ação security_result.action_details Valor copiado diretamente
data.additionalDetails.tacticName security_result.attack_details.tactics Valor copiado diretamente para tactic_data.name e mesclado
data.additionalDetails.techniqueName security_result.attack_details.techniques Valor copiado diretamente para "technique_data.name" e mesclado
data.additionalDetails.confidence security_result.confidence_score Valor copiado diretamente
sightingType security_result.detection_fields Mesclado dos rótulos sightingType, sightingScore e riskScore
sightingScore security_result.detection_fields
riskScore security_result.detection_fields
data.additionalDetails.detectorRuleId security_result.rule_id Valor copiado diretamente
data.additionalDetails.detectorRuleType security_result.rule_name Valor copiado diretamente
gravidade, security_result.severity Defina como INFORMATIONAL se a gravidade for INFO, LOW se for Low, MEDIUM se for WARN, HIGH se for High, CRITICAL se for Critical
gravidade, security_result.severity_details Valor copiado diretamente
destino target.administrative_domain Domínio extraído de "target" ou "target_host" usando grok.
target_host target.administrative_domain
destino target.hostname Valor do destino, se não for IP, caso contrário, target_host, se não for IP
target_host target.hostname
destino target.ip Valor do destino se IP, caso contrário, target_host se IP
target_host target.ip
target_port target.port Convertido em número inteiro de target_port
targetId target.resource.attribute.labels Mesclado de vários campos de rótulo
rótulos target.resource.attribute.labels
vnicAttachmentId target.resource.attribute.labels
vnicAttachmentDisplayName target.resource.attribute.labels
subnets target.resource.attribute.labels
instance_ocid target.resource.attribute.labels
route_table_ocids target.resource.attribute.labels
security_list_ocids target.resource.attribute.labels
data.additionalDetails.impactedResourceName target.resource.name Valor de data.additionalDetails.impactedResourceName se não estiver vazio. Caso contrário, vnicDetails.0.vnicDisplayName
vnicDetails.0.vnicDisplayName target.resource.name
data.additionalDetails.impactedResourceId target.resource.product_object_id Valor de data.additionalDetails.impactedResourceId se não estiver vazio, caso contrário, vnicDetails.0.vnicId
vnicDetails.0.vnicId target.resource.product_object_id
data.additionalDetails.impactedResourceType target.resource.resource_subtype Valor copiado diretamente
target_url target.url Valor copiado diretamente
target_user target.user.userid Valor copiado diretamente
produto metadata.product_name Valor copiado diretamente
fornecedor metadata.vendor_name Valor copiado diretamente
data.additionalDetails.tacticName security_result.attack_details.tactics.name Mapeado do registro de alterações
data.additionalDetails.techniqueName security_result.attack_details.techniques.name Mapeado do registro de alterações

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.