Coletar registros do Netwrix Auditor

Compatível com:

Este documento explica como ingerir registros do Netwrix Auditor no Google Security Operations usando o Google Cloud Storage V2.

O Netwrix Auditor é uma plataforma de visibilidade para análise de comportamento do usuário e mitigação de riscos que permite o controle de mudanças, configurações e acesso em ambientes de TI híbridos. A plataforma oferece análises de segurança para detectar anomalias no comportamento do usuário e investigar padrões de ameaças antes que ocorra uma violação de dados. Com uma API de integração RESTful, a plataforma oferece visibilidade e controle de todos os seus sistemas de TI locais ou baseados na nuvem de maneira unificada.

Antes de começar

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

  • Uma instância do Google SecOps
  • Um projeto do GCP com as APIs Cloud Storage, Cloud Run, Pub/Sub e Cloud Scheduler ativadas
  • Permissões para criar e gerenciar intervalos do GCS
  • Permissões para gerenciar políticas do IAM em buckets do GCS
  • Permissões para criar serviços do Cloud Run, tópicos do Pub/Sub e jobs do Cloud Scheduler
  • Acesso administrativo ao servidor do Netwrix Auditor
  • Uma conta de domínio do Windows com as permissões adequadas para acesso à API
  • Servidor do Netwrix Auditor com a API de integração ativada (ativada por padrão)
  • Banco de dados de auditoria configurado no Netwrix Auditor
  • Conectividade de rede da função do Cloud Run com o servidor Netwrix Auditor na porta 9699 (padrão)

Configurar o acesso à API do Netwrix Auditor

Para permitir que a função do Cloud Run recupere registros de atividade, verifique se a API Integration está ativada e crie uma conta de domínio do Windows com a função apropriada no Netwrix Auditor.

Verificar se a API Integration está ativada

  1. No computador em que o Netwrix Auditor Server está instalado, inicie o Netwrix Auditor.
  2. Acesse Configurações > Integrações.
  3. Verifique se a opção Aproveitar a API Integration está ativada.
  4. Anote o número da Porta (o padrão é 9699).
  5. Se você precisar mudar a porta:

    1. Clique em Modificar na seção Configurações da API.
    2. Especifique um novo número de porta.
    3. Clique em OK.

Criar uma conta de serviço para acesso à API

  1. No controlador de domínio do Windows, abra Usuários e computadores do Active Directory.
  2. Navegue até a unidade organizacional em que você quer criar a conta de serviço.
  3. Clique com o botão direito do mouse na unidade organizacional > Novo > Usuário.
  4. No campo Nome, digite Chronicle Integration.
  5. No campo Nome de logon do usuário, insira chronicle-api (ou seu nome de usuário preferido).
  6. Clique em Próxima.
  7. Insira uma senha forte e configure as configurações de senha de acordo com a política da sua organização.
  8. Desmarque a caixa de seleção O usuário precisa mudar a senha no próximo login.
  9. Selecione A senha nunca expira (recomendado para contas de serviço).
  10. Clique em Próxima > Concluir.

Atribuir a função de revisor global

  1. Na janela principal do Netwrix Auditor, navegue até Planos de monitoramento.
  2. Na árvore de planos de monitoramento, selecione Todos os planos de monitoramento (a pasta raiz).
  3. Clique em Delegar.
  4. Na caixa de diálogo Delegação, clique em Adicionar usuário.
  5. Na caixa de diálogo Selecionar usuário ou grupo:
    1. Clique em Procurar.
    2. No campo Digite o nome do objeto a ser selecionado, insira o nome de usuário chronicle-api.
    3. Clique em Verificar nomes para verificar a conta.
    4. Clique em OK.
  6. No menu suspenso Papel, selecione Revisor global.
  7. Clique em OK.
  8. Clique em Salvar.

Registrar credenciais de API

Registre as seguintes informações para configurar as variáveis de ambiente da função do Cloud Run:

  • Nome de usuário: a conta de domínio no formato DOMAIN\username (por exemplo, ENTERPRISE\chronicle-api)
  • Senha: a senha da conta de serviço
  • Nome do host: o nome de domínio totalmente qualificado (FQDN) ou o endereço IP do servidor Netwrix Auditor (por exemplo, auditor.enterprise.local ou 172.28.6.15)
  • Porta: a porta da API Integration (o padrão é 9699)

Verifique as permissões

Para verificar se a conta tem as permissões necessárias:

  1. No Netwrix Auditor, navegue até Planos de monitoramento.
  2. Selecione Todos os planos de monitoramento.
  3. Clique em Delegar.
  4. Verifique se a conta chronicle-api aparece com a função Revisor global.
  5. Se a conta não aparecer, siga as etapas acima em Atribuir a função de revisor global.

Testar o acesso à API

  • Teste suas credenciais antes de prosseguir com a integração:

    # Replace with your actual values
    NETWRIX_HOST="auditor.enterprise.local"
    NETWRIX_PORT="9699"
    NETWRIX_USER="ENTERPRISE\\chronicle-api"
    NETWRIX_PASS="your-password"
    
    # Test API access (retrieve first batch of activity records)
    curl -k --ntlm -u "${NETWRIX_USER}:${NETWRIX_PASS}" \
        "https://${NETWRIX_HOST}:${NETWRIX_PORT}/netwrix/api/v1/activity_records/enum" \
        -H "Content-Type: application/json" \
        -H "Accept: application/json"
    

Uma resposta bem-sucedida retorna um objeto JSON que contém uma matriz de registros de atividade e um ContinuationMark para paginação.

Criar um bucket do Google Cloud Storage

  1. Acesse o Console do Google Cloud.
  2. Selecione seu projeto ou crie um novo.
  3. No menu de navegação, acesse Cloud Storage > Buckets.
  4. Clique em Criar bucket.
  5. Informe os seguintes detalhes de configuração:

    Configuração Valor
    Nomeie seu bucket Insira um nome exclusivo globalmente, por exemplo, netwrix-auditor-logs.
    Tipo de local Escolha com base nas suas necessidades (região, birregional, multirregional)
    Local Selecione o local (por exemplo, us-central1).
    Classe de armazenamento Padrão (recomendado para registros acessados com frequência)
    Controle de acesso Uniforme (recomendado)
    Ferramentas de proteção Opcional: ativar o controle de versões de objetos ou a política de retenção
  6. Clique em Criar.

Criar uma conta de serviço para a função do Cloud Run

  1. No Console do GCP, acesse IAM e administrador > Contas de serviço.
  2. Clique em Criar conta de serviço.
  3. Informe os seguintes detalhes de configuração:
    • Nome da conta de serviço: insira netwrix-audit-collector-sa
    • Descrição da conta de serviço: insira Service account for Cloud Run function to collect Netwrix Auditor logs
  4. Clique em Criar e continuar.
  5. Na seção Conceder acesso a essa conta de serviço ao projeto, adicione os seguintes papéis:
    1. Clique em Selecionar papel.
    2. Pesquise e selecione Administrador de objetos do Storage.
    3. Clique em + Adicionar outro papel.
    4. Pesquise e selecione Invocador do Cloud Run.
    5. Clique em + Adicionar outro papel.
    6. Pesquise e selecione Invocador do Cloud Functions.
  6. Clique em Continuar.
  7. Clique em Concluído.

Conceder permissões do IAM no bucket do GCS

  1. Acesse Cloud Storage > Buckets.
  2. Clique no nome do bucket (netwrix-auditor-logs).
  3. Acesse a guia Permissões.
  4. Clique em Conceder acesso.
  5. Informe os seguintes detalhes de configuração:
    • Adicionar principais: insira o e-mail da conta de serviço (netwrix-audit-collector-sa@PROJECT_ID.iam.gserviceaccount.com).
    • Atribuir papéis: selecione Administrador de objetos do Storage.
  6. Clique em Salvar.

Criar tópico Pub/Sub

  1. No Console do GCP, acesse Pub/Sub > Tópicos.
  2. Selecione Criar tópico.
  3. Informe os seguintes detalhes de configuração:
    • ID do tópico: insira netwrix-audit-trigger
    • Não mude as outras configurações.
  4. Clique em Criar.

Criar uma função do Cloud Run para coletar registros

A função do Cloud Run será acionada por mensagens do Pub/Sub do Cloud Scheduler para buscar registros de atividade da API de integração do Netwrix Auditor e gravá-los no GCS.

  1. No console do GCP, acesse o Cloud Run.
  2. Clique em Criar serviço.
  3. Selecione Função (use um editor in-line para criar uma função).
  4. Na seção Configurar, forneça os seguintes detalhes de configuração:

    Configuração Valor
    Nome do serviço netwrix-audit-collector
    Região Selecione a região correspondente ao seu bucket do GCS (por exemplo, us-central1).
    Ambiente de execução Selecione Python 3.12 ou uma versão mais recente.
  5. Na seção Acionador (opcional):

    1. Clique em + Adicionar gatilho.
    2. Selecione Cloud Pub/Sub.
    3. Em Selecionar um tópico do Cloud Pub/Sub, escolha netwrix-audit-trigger.
    4. Clique em Salvar.
  6. Na seção Autenticação:

    1. Selecione Exigir autenticação.
    2. Confira o Identity and Access Management (IAM).
  7. Role a tela para baixo e abra Contêineres, rede, segurança.

  8. Acesse a guia Segurança:

    • Conta de serviço: selecione netwrix-audit-collector-sa
  9. Acesse a guia Contêineres:

    1. Clique em Variáveis e secrets.
    2. Clique em + Adicionar variável para cada variável de ambiente:
    Nome da variável Valor de exemplo Descrição
    GCS_BUCKET netwrix-auditor-logs Nome do bucket do GCS
    GCS_PREFIX netwrix-audit Prefixo para arquivos de registro
    STATE_KEY netwrix-audit/state.json Caminho do arquivo de estado
    NETWRIX_HOST auditor.enterprise.local FQDN ou IP do servidor Netwrix Auditor
    NETWRIX_PORT 9699 Porta da API Integration
    NETWRIX_USER ENTERPRISE\chronicle-api Conta de domínio no formato DOMÍNIO\nomedeusuario
    NETWRIX_PASS your-password Senha da conta de serviço
    MAX_RECORDS 10000 Máximo de registros por execução
    LOOKBACK_HOURS 24 Período de lookback inicial
  10. Na seção Variáveis e secrets, role a tela para baixo até Solicitações:

    • Tempo limite da solicitação: insira 600 segundos (10 minutos)
  11. Acesse a guia Configurações:

    • Na seção Recursos:
      • Memória: selecione 512 MiB ou mais.
      • CPU: selecione 1
  12. Na seção Escalonamento de revisão:

    • Número mínimo de instâncias: insira 0
    • Número máximo de instâncias: insira 100
  13. Clique em Criar.

  14. Aguarde a criação do serviço (1 a 2 minutos).

  15. Depois que o serviço for criado, o editor de código inline será aberto automaticamente.

Adicionar código da função

  1. Insira main no campo Ponto de entrada.
  2. No editor de código inline, crie dois arquivos:

    • main.py:
    import functions_framework
    from google.cloud import storage
    import json
    import os
    import requests
    from requests_ntlm import HttpNtlmAuth
    from datetime import datetime, timezone, timedelta
    import time
    import urllib3
    
    # Suppress insecure HTTPS warnings for self-signed certificates
    urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
    
    # Initialize Storage client
    storage_client = storage.Client()
    
    # Environment variables
    GCS_BUCKET = os.environ.get('GCS_BUCKET')
    GCS_PREFIX = os.environ.get('GCS_PREFIX', 'netwrix-audit')
    STATE_KEY = os.environ.get('STATE_KEY', 'netwrix-audit/state.json')
    NETWRIX_HOST = os.environ.get('NETWRIX_HOST')
    NETWRIX_PORT = os.environ.get('NETWRIX_PORT', '9699')
    NETWRIX_USER = os.environ.get('NETWRIX_USER')
    NETWRIX_PASS = os.environ.get('NETWRIX_PASS')
    MAX_RECORDS = int(os.environ.get('MAX_RECORDS', '10000'))
    LOOKBACK_HOURS = int(os.environ.get('LOOKBACK_HOURS', '24'))
    
    def parse_datetime(value):
      """Parse ISO datetime string to datetime object."""
      if value.endswith("Z"):
        value = value[:-1] + "+00:00"
      return datetime.fromisoformat(value)
    
    @functions_framework.cloud_event
    def main(cloud_event):
      """
      Cloud Run function triggered by Pub/Sub to fetch Netwrix Auditor
      activity records and write to GCS.
    
      Args:
        cloud_event: CloudEvent object containing Pub/Sub message
      """
    
      if not all([GCS_BUCKET, NETWRIX_HOST, NETWRIX_USER, NETWRIX_PASS]):
        print('Error: Missing required environment variables')
        return
    
      try:
        bucket = storage_client.bucket(GCS_BUCKET)
        state = load_state(bucket)
        now = datetime.now(timezone.utc)
    
        if isinstance(state, dict) and state.get('last_event_time'):
          try:
            last_time = parse_datetime(state['last_event_time'])
            last_time = last_time - timedelta(minutes=2)
          except Exception as e:
            print(f"Warning: Could not parse last_event_time: {e}")
            last_time = now - timedelta(hours=LOOKBACK_HOURS)
        else:
          last_time = now - timedelta(hours=LOOKBACK_HOURS)
    
        print(f"Fetching activity records from {last_time.isoformat()} "
            f"to {now.isoformat()}")
    
        records, newest_event_time = fetch_activity_records(
          last_time, now
        )
    
        if not records:
          print("No new activity records found.")
          save_state(bucket, now.isoformat())
          return
    
        timestamp = now.strftime('%Y%m%d_%H%M%S')
        object_key = (
          f"{GCS_PREFIX}/netwrix_audit_{timestamp}.ndjson"
        )
        blob = bucket.blob(object_key)
    
        ndjson = '\n'.join(
          [json.dumps(r, ensure_ascii=False, default=str)
          for r in records]
        ) + '\n'
        blob.upload_from_string(
          ndjson, content_type='application/x-ndjson'
        )
    
        print(f"Wrote {len(records)} records to "
            f"gs://{GCS_BUCKET}/{object_key}")
    
        if newest_event_time:
          save_state(bucket, newest_event_time)
        else:
          save_state(bucket, now.isoformat())
    
        print(f"Successfully processed {len(records)} records")
    
      except Exception as e:
        print(f'Error processing activity records: {str(e)}')
        raise
    
    def load_state(bucket):
      """Load state from GCS."""
      try:
        blob = bucket.blob(STATE_KEY)
        if blob.exists():
          return json.loads(blob.download_as_text())
      except Exception as e:
        print(f"Warning: Could not load state: {e}")
      return {}
    
    def save_state(bucket, last_event_time_iso):
      """Save the last event timestamp to GCS state file."""
      try:
        state = {
          'last_event_time': last_event_time_iso,
          'last_run': datetime.now(timezone.utc).isoformat()
        }
        blob = bucket.blob(STATE_KEY)
        blob.upload_from_string(
          json.dumps(state, indent=2),
          content_type='application/json'
        )
        print(f"Saved state: last_event_time={last_event_time_iso}")
      except Exception as e:
        print(f"Warning: Could not save state: {e}")
    
    def fetch_activity_records(start_time, end_time):
      """
      Fetch activity records from Netwrix Auditor Integration API
      using the enum endpoint with continuation mark pagination.
    
      The API returns up to 1000 records per request. Subsequent
      requests include the ContinuationMark from the previous
      response to retrieve the next batch.
    
      Args:
        start_time: Start time for filtering records
        end_time: End time for filtering records
    
      Returns:
        Tuple of (records list, newest_event_time ISO string)
      """
      base_url = (
        f"https://{NETWRIX_HOST}:{NETWRIX_PORT}"
        f"/netwrix/api/v1/activity_records/enum"
      )
      auth = HttpNtlmAuth(NETWRIX_USER, NETWRIX_PASS)
      session = requests.Session()
      session.auth = auth
      session.verify = False
      session.headers.update({
        'Content-Type': 'application/json',
        'Accept': 'application/json',
        'User-Agent': 'GoogleSecOps-NetwrixCollector/1.0'
      })
    
      all_records = []
      newest_time = None
      continuation_mark = None
      page_num = 0
      backoff = 1.0
    
      while True:
        page_num += 1
    
        if len(all_records) >= MAX_RECORDS:
          print(f"Reached max_records limit ({MAX_RECORDS})")
          break
    
        try:
          if continuation_mark:
            response = session.post(
              base_url,
              json={"ContinuationMark": continuation_mark},
              timeout=(10, 60)
            )
          else:
            response = session.get(
              base_url,
              timeout=(10, 60)
            )
    
          if response.status_code == 429:
            retry_after = int(
              response.headers.get(
                'Retry-After', str(int(backoff))
              )
            )
            print(f"Rate limited (429). Retrying after "
                f"{retry_after}s...")
            time.sleep(retry_after)
            backoff = min(backoff * 2, 30.0)
            continue
    
          backoff = 1.0
    
          if response.status_code != 200:
            print(f"HTTP Error: {response.status_code}")
            print(f"Response body: {response.text}")
            return all_records, newest_time
    
          data = response.json()
    
          page_results = data.get('ActivityRecordList', [])
          continuation_mark = data.get('ContinuationMark')
    
          if not page_results:
            print("No more activity records (empty page)")
            break
    
          # Filter records by time window
          filtered = []
          for record in page_results:
            when = record.get('When')
            if when:
              try:
                record_time = parse_datetime(when)
                if start_time <= record_time <= end_time:
                  filtered.append(record)
                if (newest_time is None or
                    record_time >
                    parse_datetime(newest_time)):
                  newest_time = when
              except Exception as e:
                print(f"Warning: Could not parse "
                    f"record time: {e}")
                filtered.append(record)
            else:
              filtered.append(record)
    
          print(f"Page {page_num}: Retrieved "
              f"{len(page_results)} records, "
              f"{len(filtered)} within time window")
          all_records.extend(filtered)
    
          if not continuation_mark:
            print("No more pages (no ContinuationMark)")
            break
    
        except requests.exceptions.Timeout:
          print(f"Request timeout on page {page_num}")
          return all_records, newest_time
        except Exception as e:
          print(f"Error fetching activity records: {e}")
          return all_records, newest_time
    
      print(f"Retrieved {len(all_records)} total records "
          f"from {page_num} pages")
      return all_records, newest_time
    
    • requirements.txt:
    functions-framework==3.*
    google-cloud-storage==2.*
    requests>=2.31.0
    requests-ntlm>=1.2.0
    
  3. Clique em Implantar para salvar e implantar a função.

  4. Aguarde a conclusão da implantação (2 a 3 minutos).

Criar o job do Cloud Scheduler

  1. No Console do GCP, acesse o Cloud Scheduler.
  2. Clique em Criar job.
  3. Informe os seguintes detalhes de configuração:

    Configuração Valor
    Nome netwrix-audit-collector-hourly
    Região Selecione a mesma região da função do Cloud Run
    Frequência 0 * * * * (a cada hora, na hora)
    Fuso horário Selecione o fuso horário (UTC recomendado)
    Tipo de destino Pub/Sub
    Tópico Selecionar netwrix-audit-trigger
    Corpo da mensagem {} (objeto JSON vazio)
  4. Clique em Criar.

Opções de frequência de programação

Escolha a frequência com base no volume de registros e nos requisitos de latência:

Frequência Expressão Cron Caso de uso
A cada 5 minutos */5 * * * * Alto volume e baixa latência
A cada 15 minutos */15 * * * * Volume médio
A cada hora 0 * * * * Padrão (recomendado)
A cada 6 horas 0 */6 * * * Baixo volume, processamento em lote
Diariamente 0 0 * * * Coleta de dados históricos

Testar a integração

  1. No console do Cloud Scheduler, encontre seu job (netwrix-audit-collector-hourly).
  2. Clique em Forçar execução para acionar o job manualmente.
  3. Aguarde alguns segundos.
  4. Acesse Cloud Run > Serviços.
  5. Clique em netwrix-audit-collector.
  6. Clique na guia Registros.
  7. Verifique se a função foi executada com sucesso. Procure:

    Fetching activity records from YYYY-MM-DDTHH:MM:SS+00:00 to YYYY-MM-DDTHH:MM:SS+00:00
    Page 1: Retrieved X records, X within time window
    Wrote X records to gs://netwrix-auditor-logs/netwrix-audit/netwrix_audit_YYYYMMDD_HHMMSS.ndjson
    Successfully processed X records
    
  8. Acesse Cloud Storage > Buckets.

  9. Clique em netwrix-auditor-logs.

  10. Navegue até a pasta netwrix-audit/.

  11. Verifique se um novo arquivo .ndjson foi criado com o carimbo de data/hora atual.

Se você encontrar erros nos registros:

  • HTTP 401: verifique se as variáveis de ambiente NETWRIX_USER e NETWRIX_PASS estão corretas e use o formato DOMAIN\username.
  • HTTP 403: verifique se a conta de serviço tem a função de Revisor global no Netwrix Auditor.
  • HTTP 429: limitação de taxa. A função vai tentar de novo automaticamente com espera exponencial.
  • Tempo limite de conexão: verifique a conectividade de rede do Cloud Run com o servidor do Netwrix Auditor na porta 9691. Verifique se um conector de VPC ou o Cloud VPN está configurado se o servidor for local.
  • Variáveis de ambiente ausentes: verifique se todas as variáveis necessárias estão definidas na configuração da função do Cloud Run.

Recuperar a conta de serviço do Google SecOps

  1. Acesse Configurações do SIEM > Feeds.
  2. Clique em Adicionar novo feed.
  3. Clique em Configurar um único feed.
  4. No campo Nome do feed, insira um nome para o feed (por exemplo, Netwrix Auditor Activity Records).
  5. Selecione Google Cloud Storage V2 como o Tipo de origem.
  6. Selecione Netwrix como o Tipo de registro.
  7. Clique em Receber conta de serviço.
  8. Um e-mail exclusivo da conta de serviço vai aparecer. Exemplo:

    chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com
    
  9. Copie esse endereço de e-mail para usar na próxima etapa.

  10. Clique em Próxima.

  11. Especifique valores para os seguintes parâmetros de entrada:

    • URL do bucket de armazenamento: insira o URI do bucket do GCS com o caminho do prefixo:

      gs://netwrix-auditor-logs/netwrix-audit/
      
    • Opção de exclusão da fonte: selecione a opção de exclusão de acordo com sua preferência:
      • Nunca: nunca exclui arquivos após as transferências (recomendado para testes).
      • Excluir arquivos transferidos: exclui os arquivos após a transferência ser concluída.
      • Excluir arquivos transferidos e diretórios vazios: exclui arquivos e diretórios vazios após a transferência bem-sucedida.
    • Idade máxima do arquivo: inclui arquivos modificados nos últimos dias (o padrão é 180 dias).
    • Namespace do recurso: o namespace do recurso
    • Rótulos de ingestão: o rótulo a ser aplicado aos eventos deste feed
  12. Clique em Próxima.

  13. Revise a nova configuração do feed na tela Finalizar e clique em Enviar.

Conceder permissões do IAM à conta de serviço do Google SecOps

  1. Acesse Cloud Storage > Buckets.
  2. Clique em netwrix-auditor-logs.
  3. Acesse a guia Permissões.
  4. Clique em Conceder acesso.
  5. Informe os seguintes detalhes de configuração:
    • Adicionar principais: cole o e-mail da conta de serviço do Google SecOps.
    • Atribuir papéis: selecione Leitor de objetos do Storage.
  6. Clique em Salvar.

Tabela de mapeamento do UDM

Campo de registro Mapeamento do UDM Lógica
Opcode about.labels Rótulos associados às informações "Sobre"
Legenda about.resource.attribute.labels Rótulos de atributos para o recurso na seção "Sobre"
Tarefa additional.fields Campos extras com mais informações sobre o evento
O que additional.fields
Aviso additional.fields
Descrição additional.fields
Adicionado additional.fields
Removido additional.fields
service_type additional.fields
Detalhes additional.fields
extensions.auth.type extensions.auth.type Tipo de autenticação usado
EventReceivedTime metadata.collected_timestamp Carimbo de data/hora em que o evento foi coletado pelo sistema.
Mensagem metadata.description A descrição do evento
event_type metadata.event_type Tipo de evento
EventType metadata.product_event_type Tipo de evento específico do produto
EventID metadata.product_log_id Identificador de registro específico do produto
SourceModuleType observer.application Aplicativo que observou o evento
Nome do host principal.asset.hostname Nome do host do recurso associado ao principal
Onde principal.asset.hostname
Estação de trabalho principal.asset.hostname
device_name principal.asset.hostname
Estação de trabalho principal.hostname Nome do host do principal
device_name principal.hostname
ProcessID principal.process.pid ID do processo do principal
Nome principal.resource.name Nome do recurso associado ao principal
Quem principal.user.user_display_name Nome de exibição do usuário
SourceName security_result.about.resource.attribute.labels Rótulos de atributos de recursos para o resultado "Sobre segurança"
ação security_result.action Ação realizada no resultado de segurança
action_details security_result.action_details Detalhes da ação no resultado de segurança
backup_name security_result.description Descrição do resultado de segurança
service_failed security_result.description
Palavras-chave security_result.detection_fields Campos usados para detecção no resultado de segurança
RecordNumber security_result.detection_fields
session_ID security_result.detection_fields
allow_connection_with_desktop security_result.detection_fields
service_account security_result.detection_fields
Gravidade security_result.severity Nível de gravidade do resultado de segurança
SeverityValue security_result.severity
resumo security_result.summary Resumo do resultado de segurança
application_name target.application Aplicativo no destino
Nome do host target.asset.hostname Nome do host do recurso associado ao destino
Onde target.asset.hostname
file_path target.file.full_path Caminho completo do arquivo de destino
Tamanho target.file.size Tamanho do arquivo de destino
Nome do host target.hostname Nome do host do destino
Onde target.hostname
Tipo target.resource.attribute.labels Rótulos de atributos para o recurso de destino
SourceModuleName target.resource.name Nome do recurso de destino
DataSource metadata.product_name Nome do produto que gerou o evento
metadata.vendor_name metadata.vendor_name Nome do fornecedor

Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.