Coletar registros do Cisco Meraki

Compatível com:

Este documento explica como ingerir registros do Cisco Meraki no Google Security Operations usando o Bindplane.

O analisador extrai campos do syslog do Cisco Meraki e registros formatados em JSON. Ele usa grok e/ou análise JSON para processar a mensagem de registro e mapeia esses valores para o Modelo Unificado de Dados (UDM, na sigla em inglês). Ele também define valores de metadados padrão para a origem e o tipo do evento.

Antes de começar

Verifique se você tem os pré-requisitos a seguir:

  • Uma instância do Google SecOps
  • Windows Server 2016 ou mais recente ou host Linux com systemd
  • Se você estiver executando por trás de um proxy, verifique se as portas do firewall estão abertas de acordo com os requisitos do agente Bindplane.
  • Acesso privilegiado ao painel do Cisco Meraki

Receber o arquivo de autenticação de ingestão do Google SecOps

  1. Faça login no console do Google SecOps.
  2. Acesse Configurações do SIEM > Agentes de coleta.
  3. Baixe o arquivo de autenticação de ingestão. Salve o arquivo de forma segura no sistema em que o Bindplane será instalado.

Receber o ID de cliente do Google SecOps

  1. Faça login no console do Google SecOps.
  2. Acesse Configurações do SIEM > Perfil.
  3. Copie e salve o ID do cliente na seção Detalhes da organização.

Instalar o agente do Bindplane

Instale o agente do Bindplane no sistema operacional Windows ou Linux de acordo com as instruções a seguir.

Instalação do Windows

  1. Abra o prompt de comando ou o PowerShell como administrador.
  2. Execute este comando:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. Aguarde a conclusão da instalação.

  4. Execute o seguinte comando para confirmar a instalação:

    sc query observiq-otel-collector
    

O serviço vai aparecer como EM EXECUÇÃO.

Instalação do Linux

  1. Abra um terminal com privilégios de root ou sudo.
  2. Execute este comando:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. Aguarde a conclusão da instalação.

  4. Execute o seguinte comando para confirmar a instalação:

    sudo systemctl status observiq-otel-collector
    

O serviço vai aparecer como ativo (em execução).

Outros recursos de instalação

Para mais opções de instalação e solução de problemas, consulte o guia de instalação do agente do Bindplane.

Configurar o agente do Bindplane para ingerir syslog e enviar ao Google SecOps

Localizar o arquivo de configuração

  • Linux:

    sudo nano /etc/bindplane-agent/config.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

Editar o arquivo de configuração

  • Substitua todo o conteúdo de config.yaml pela seguinte configuração:

    receivers:
        udplog:
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            creds_file_path: '/path/to/ingestion-authentication-file.json'
            customer_id: 'YOUR_CUSTOMER_ID'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: 'CISCO_MERAKI'
            raw_log_field: body
            ingestion_labels:
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    

Parâmetros de configuração

  • Substitua os seguintes marcadores de posição:

    • Configuração do receptor:

      • udplog: use udplog para syslog UDP ou tcplog para syslog TCP.
      • 0.0.0.0: endereço IP para escutar (0.0.0.0 para escutar em todas as interfaces)
      • 514: número da porta a ser detectada (porta syslog padrão).
    • Configuração do exportador:

      • creds_file_path: caminho completo para o arquivo de autenticação de ingestão:
        • Linux: /etc/bindplane-agent/ingestion-auth.json
        • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
      • YOUR_CUSTOMER_ID: ID do cliente da seção "Receber ID do cliente"
      • endpoint: URL do endpoint regional:
        • EUA: malachiteingestion-pa.googleapis.com
        • Europa: europe-malachiteingestion-pa.googleapis.com
        • Ásia: asia-southeast1-malachiteingestion-pa.googleapis.com
        • Consulte a lista completa em Endpoints regionais.
      • log_type: tipo de registro exatamente como aparece no Chronicle (CISCO_MERAKI)

Salve o arquivo de configuração.

  • Depois de editar, salve o arquivo:
    • Linux: pressione Ctrl+O, Enter e Ctrl+X.
    • Windows: clique em Arquivo > Salvar.

Reinicie o agente do Bindplane para aplicar as mudanças

  • Para reiniciar o agente do Bindplane no Linux, execute o seguinte comando:

    sudo systemctl restart observiq-otel-collector
    
    1. Verifique se o serviço está em execução:

        sudo systemctl status observiq-otel-collector
      
    2. Verifique se há erros nos registros:

        sudo journalctl -u observiq-otel-collector -f
      
  • Para reiniciar o agente do Bindplane em Windows, escolha uma das seguintes opções:

    • Prompt de comando ou PowerShell como administrador:

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • Console de serviços:

      1. Pressione Win+R, digite services.msc e pressione Enter.
      2. Localize o Coletor do OpenTelemetry da observIQ.
      3. Clique com o botão direito do mouse e selecione Reiniciar.

      4. Verifique se o serviço está em execução:

        sc query observiq-otel-collector
        
      5. Verifique se há erros nos registros:

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

Configurar o encaminhamento de syslog no Cisco Meraki

  1. Faça login no painel do Cisco Meraki em https://dashboard.meraki.com.
  2. Selecione a Rede de destino no menu suspenso.
  3. Acesse Em toda a rede > Geral.
  4. Acesse a seção Relatórios.
  5. Localize Servidores Syslog e clique em Adicionar um servidor Syslog.
  6. Informe os seguintes detalhes de configuração:
    • IP do servidor: insira o endereço IP do host do agente do Bindplane.
    • Porta: insira 514.
    • Funções: selecione os tipos de registros a serem encaminhados:
      • Fluxos: dados de fluxo de rede
      • URLs: registros de acesso a URLs
      • Eventos de segurança: alertas do SDI/IPS
      • Registro de eventos do dispositivo: eventos do dispositivo MX
      • Eventos do Air Marshal: detecção de ameaças sem fio
      • Alertas de IDS: alertas do sistema de detecção de intrusões
  7. Clique em Salvar.
  8. Verifique se as mensagens syslog estão sendo enviadas conferindo os registros do agente Bindplane.

Tabela de mapeamento do UDM

Campo de registro Mapeamento do UDM Lógica
ação security_result.action O valor é convertido em letras maiúsculas. Se o valor for "deny", ele será substituído por "BLOCK". Se sc_action contiver "allow", o valor será substituído por "ALLOW". Caso contrário, se a decisão contiver "block", o valor será substituído por "BLOCK". Caso contrário, se a autorização for "success", ela será definida como "ALLOW". Se for "failure", será definida como "BLOCK". Caso contrário, se o padrão for "1 all", "deny all" ou "Group Policy Deny", ele será definido como "BLOCK". Se o padrão for "permitir tudo", "Permitir política de grupo" ou "0 tudo", ele será definido como "ALLOW". Caso contrário, será definido como "UNKNOWN_ACTION". Se a decisão contiver "block", ela será definida como "BLOCK".
adId principal.user.user_display_name Mapeado diretamente do campo "adId" nos registros JSON.
agente network.http.user_agent Os apóstrofos são removidos. Mapeado diretamente do campo "agent". Também convertido para network.http.parsed_user_agent usando o filtro parseduseragent.
auxílio network.session_id Mapeado diretamente do campo "aid".
appProtocol network.application_protocol Convertido para letras maiúsculas. Mapeado diretamente do campo "appProtocol".
attr additional.fields Adicionado como um par de chave-valor à matriz "additional.fields" com a chave "attr".
autorização security_result.action_details Mapeado diretamente do campo de autorização nos registros JSON.
banda additional.fields Adicionado como um par de chave-valor à matriz "additional.fields" com a chave "band".
bssids.bssid principal.mac Convertido para letras minúsculas. Mesclado na matriz "principal.mac".
bssids.detectedBy.device intermediary.asset.asset_id Formatado como "ID do dispositivo: ".
bssids.detectedBy.rssi intermediary.asset.product_object_id Convertido em uma string.
Canal about.resource.attribute.labels Adicionado como um par de chave-valor à matriz "about.resource.attribute.labels" com a chave "Channel".
clientDescription additional.fields Adicionado como um par de chave-valor à matriz "additional.fields" com a chave "clientDescription".
clientId additional.fields Adicionado como um par de chave-valor à matriz "additional.fields" com a chave "clientId".
clientIp principal.ip, principal.asset.ip Mapeado diretamente do campo "clientIp".
clientMac principal.mac Convertido para letras minúsculas. Mapeado diretamente do campo "clientMac" nos registros JSON.
client_ip principal.ip, principal.asset.ip Mapeado diretamente do campo "client_ip".
client_mac principal.mac Convertido para letras minúsculas. Mapeado diretamente do campo "client_mac".
código additional.fields Adicionado como um par de chave-valor à matriz "additional.fields" com a chave "code".
collection_time metadata.event_timestamp Os campos "seconds" e "nanos" são combinados para criar um carimbo de data/hora.
Condições security_result.about.resource.attribute.labels Retornos de carro, novas linhas e tabulações são substituídos por espaços, e valores específicos são substituídos. O valor modificado é adicionado como um par de chave-valor à matriz security_result.about.resource.attribute.labels com a chave "Condições".
decisão security_result.action Se o valor for "blocked", ele será definido como "BLOCK".
desc metadata.description Mapeado diretamente do campo "desc".
descrição security_result.description Mapeado diretamente do campo "description" nos registros JSON.
DestAddress target.ip, target.asset.ip Mapeado diretamente do campo "DestAddress".
DestPort target.port Convertido em um número inteiro. Mapeado diretamente do campo "DestPort".
deviceIp target.ip Mapeado diretamente do campo "deviceIp".
deviceMac target.mac Convertido para letras minúsculas. Mapeado diretamente do campo "deviceMac".
deviceName target.hostname, target.asset.hostname Mapeado diretamente do campo "deviceName" nos registros JSON.
deviceSerial target.asset.hardware.serial_number Mapeado diretamente do campo "deviceSerial" nos registros JSON.
Direção network.direction Os caracteres especiais são removidos, e o valor é mapeado para "network.direction".
DisabledPrivilegeList target.user.attribute Retornos de carro, novas linhas e tabulações são substituídos, e o valor modificado é analisado como JSON e mesclado ao objeto target.user.attribute.
dport target.port Convertido em um número inteiro. Mapeado diretamente do campo "dport".
dst target.ip, target.asset.ip Mapeado diretamente do campo "dst".
dstIp target.ip, target.asset.ip Mapeado diretamente do campo "dstIp".
dstPort target.port Convertido em um número inteiro. Mapeado diretamente do campo "dstPort".
dvc intermediary.hostname Mapeado diretamente do campo "dvc".
EnabledPrivilegeList target.user.attribute Retornos de carro, novas linhas e tabulações são substituídos, e o valor modificado é analisado como JSON e mesclado ao objeto target.user.attribute.
eventData.aid principal.asset_id Formatado como "ASSET_ID:".
eventData.client_ip principal.ip, principal.asset.ip Mapeado diretamente do campo "eventData.client_ip" nos registros JSON.
eventData.client_mac principal.mac Convertido para letras minúsculas. Mapeado diretamente do campo "eventData.client_mac" nos registros JSON.
eventData.group principal.group.group_display_name Mapeado diretamente do campo "eventData.group" nos registros JSON.
eventData.identity principal.hostname Mapeado diretamente do campo "eventData.identity" nos registros JSON.
eventData.ip principal.ip, principal.asset.ip Mapeado diretamente do campo "eventData.ip" nos registros JSON.
EventID metadata.product_event_type, security_result.rule_name Convertido em uma string. Mapeado para "metadata.product_event_type". Também usado para criar security_result.rule_name no formato "EventID: ". Usado para determinar event_type e sec_action.
eventSummary security_result.summary, metadata.description Mapeado diretamente do campo "eventSummary". Também usado em "security_result.description" para alguns eventos.
eventType metadata.product_event_type Mapeado diretamente do campo "eventType". Usado para determinar qual lógica de análise aplicar.
filename principal.process.file.full_path Mapeado diretamente do campo "filename".
FilterId target.resource.product_object_id Mapeado diretamente do campo "FilterId" para "EventID 5447".
FilterName target.resource.name Mapeado diretamente do campo "FilterName" para EventID 5447.
FilterRTID security_result.detection_fields Adicionado como um par de chave-valor à matriz security_result.detection_fields com a chave "FilterRTID".
firstSeen security_result.detection_fields Convertido em uma string. Adicionado como um par de chave-valor à matriz security_result.detection_fields com a chave "firstSeen".
gatewayDeviceMac target.mac Convertido para letras minúsculas. Mesclado na matriz target.mac.
grupo additional.fields Adicionado como um par de chave-valor à matriz "additional.fields" com a chave "group".
GroupMembership target.user Retornos de carro, novas linhas, tabulações e caracteres especiais são removidos. O valor modificado é analisado como JSON e mesclado ao objeto target.user.
Nome do host principal.hostname, principal.asset.hostname Mapeado diretamente do campo "Nome do host".
nível empresarial target.user.userid Mapeado diretamente do campo de identidade.
instigador additional.fields Adicionado como um par de chave-valor à matriz "additional.fields" com a chave "instigator".
int_ip intermediary.ip Mapeado diretamente do campo "int_ip".
ip_msg principal.resource.attribute.labels Adicionado como um par de chave-valor à matriz "principal.resource.attribute.labels" com a chave "IPs".
is_8021x additional.fields Adicionado como um par de chave-valor à matriz "additional.fields" com a chave "is_8021x".
KeyName target.resource.name Mapeado diretamente do campo "KeyName".
KeyFilePath target.file.full_path Mapeado diretamente do campo "KeyFilePath".
lastSeen security_result.detection_fields Convertido em uma string. Adicionado como um par de chave-valor à matriz security_result.detection_fields com a chave "lastSeen".
last_known_client_ip principal.ip, principal.asset.ip Mapeado diretamente do campo "last_known_client_ip".
LayerName security_result.detection_fields Adicionado como um par de chave-valor à matriz security_result.detection_fields com a chave "Nome da camada".
LayerRTID security_result.detection_fields Adicionado como um par de chave-valor à matriz security_result.detection_fields com a chave "LayerRTID".
localIp principal.ip, principal.asset.ip Mapeado diretamente do campo "localIp".
login principal.user.email_addresses Mapeado diretamente do campo "login" nos registros JSON se corresponder a um formato de endereço de e-mail.
LogonGuid additional.fields Adicionado como um par de chave-valor à matriz "additional.fields" com a chave "LogonGuid".
LogonType extensions.auth.mechanism Mapeado para um mecanismo de autenticação específico com base no valor dele. Se PreAuthType estiver presente, ele vai substituir LogonType. Os valores são mapeados da seguinte forma: 2 -> USERNAME_PASSWORD, 3 -> NETWORK, 4 -> BATCH, 5 -> SERVICE, 7 -> UNLOCK, 8 -> NETWORK_CLEAR_TEXT, 9 -> NEW_CREDENTIALS, 10 -> REMOTE_INTERACTIVE, 11 -> CACHED_INTERACTIVE, 12 -> CACHED_REMOTE_INTERACTIVE, 13 -> CACHED_UNLOCK, outro -> MECHANISM_UNSPECIFIED.
mac principal.mac Convertido para letras minúsculas. Mesclado na matriz "principal.mac".
MandatoryLabel additional.fields Adicionado como um par de chave-valor à matriz "additional.fields" com a chave "MandatoryLabel".
Mensagem security_result.description, security_result.summary Se "AccessReason" estiver presente, "Message" será mapeado para "security_result.summary", e "AccessReason" será mapeado para "security_result.description". Caso contrário, "Message" será mapeado para "security_result.description".
método network.http.method Mapeado diretamente do campo "method".
msg security_result.description Mapeado diretamente do campo "msg".
nome principal.user.user_display_name Mapeado diretamente do campo "name" nos registros JSON.
natsrcIp principal.nat_ip Mapeado diretamente do campo "natsrcIp".
natsrcport principal.nat_port Convertido em um número inteiro. Mapeado diretamente do campo "natsrcport".
network_id additional.fields Adicionado como um par de chave-valor à matriz "additional.fields" com a chave "Network ID".
NewProcessId target.process.pid Mapeado diretamente do campo "NewProcessId".
NewProcessName target.process.file.full_path Mapeado diretamente do campo "NewProcessName".
NewSd target.resource.attribute.labels Adicionado como um par de chave-valor à matriz target.resource.attribute.labels com a chave "New Security Descriptor".
occurredAt metadata.event_timestamp Analisado como um carimbo de data/hora usando o formato ISO8601.
ObjectName target.file.full_path, target.registry.registry_key, target.process.file.full_path, additional.fields Se EventID for 4663 e ObjectType for "Process", ele será mapeado para target.process.file.full_path. Se ObjectType for "Key", ele será mapeado para target.registry.registry_key. Caso contrário, ele será mapeado para target.file.full_path. Para outros eventos, ele é adicionado como um par de chave-valor à matriz "additional.fields" com a chave "ObjectName".
ObjectType additional.fields Adicionado como um par de chave-valor à matriz "additional.fields" com a chave "ObjectType". Usado para determinar o event_type.
OldSd target.resource.attribute.labels Adicionado como um par de chave-valor à matriz target.resource.attribute.labels com a chave "Original Security Descriptor".
organizationId principal.resource.id Mapeado diretamente do campo "organizationId" nos registros JSON.
ParentProcessName target.process.parent_process.file.full_path Mapeado diretamente do campo "ParentProcessName".
padrão security_result.description Mapeado diretamente para security_result.description. Usado para determinar "security_result.action".
peer_ident target.user.userid Mapeado diretamente do campo "peer_ident".
PreAuthType extensions.auth.mechanism Usado para determinar o mecanismo de autenticação, se houver. Substitui LogonType.
principalIp principal.ip, principal.asset.ip Mapeado diretamente do campo "principalIp".
principalMac principal.mac Convertido para letras minúsculas. Mesclado na matriz "principal.mac".
principalPort principal.port Convertido em um número inteiro. Mapeado diretamente do campo "principalPort".
prin_ip2 principal.ip, principal.asset.ip Mapeado diretamente do campo "prin_ip2".
prin_url principal.url Mapeado diretamente do campo "prin_url".
prioridade security_result.priority Mapeado para um nível de prioridade com base no valor: 1 -> HIGH_PRIORITY, 2 -> MEDIUM_PRIORITY, 3 -> LOW_PRIORITY, outro -> UNKNOWN_PRIORITY.
ProcessID principal.process.pid Convertido em uma string. Mapeado diretamente do campo "ProcessID".
ProcessName principal.process.file.full_path, target.process.file.full_path Se EventID for 4689, ele será mapeado para target.process.file.full_path. Caso contrário, ele será mapeado para "principal.process.file.full_path".
prod_log_id metadata.product_log_id Mapeado diretamente do campo "prod_log_id".
protocolo network.ip_protocol Convertido para letras maiúsculas. Se for um número, ele será convertido no nome do protocolo IP correspondente. Se for "ICMP6", ele será substituído por "ICMP". Mapeado diretamente do campo "protocol".
ProviderGuid metadata.product_deployment_id Mapeado diretamente do campo "ProviderGuid".
consulta network.dns.questions.name Mapeado diretamente do campo "query".
query_type network.dns.questions.type Renomeado para "question.type" e mesclado na matriz "network.dns.questions". Mapeado para um valor numérico com base no tipo de consulta DHCP.
rádio additional.fields Adicionado como um par de chave-valor à matriz "additional.fields" com a chave "radio".
reason additional.fields Adicionado como um par de chave-valor à matriz "additional.fields" com a chave "reason".
rec_bytes network.received_bytes Convertido para um número inteiro sem sinal. Mapeado diretamente do campo "rec_bytes".
RecordNumber metadata.product_log_id Convertido em uma string. Mapeado diretamente do campo "RecordNumber".
RelativeTargetName target.process.file.full_path Mapeado diretamente do campo "RelativeTargetName".
response_ip principal.ip, principal.asset.ip Mapeado diretamente do campo "response_ip".
rssi intermediary.asset.product_object_id Mapeado diretamente do campo "rssi".
sc_action security_result.action_details Mapeado diretamente do campo "sc_action".
sec_action security_result.action Unido à matriz security_result.action.
server_ip client_ip Mapeado diretamente para o campo "client_ip".
Gravidade security_result.severity Mapeado para um nível de gravidade com base no valor: "Info" -> INFORMATIONAL, "Error" -> ERROR, "Warning" -> MEDIUM, other -> UNKNOWN_SEVERITY.
sha256 target.file.sha256 Mapeado diretamente do campo "sha256".
signature additional.fields Adicionado como um par de chave-valor à matriz "additional.fields" com a chave "signature".
SourceAddress principal.ip, principal.asset.ip Mapeado diretamente do campo "SourceAddress".
SourceHandleId src.resource.id Mapeado diretamente do campo "SourceHandleId".
SourceModuleName observer.labels Adicionado como um par de chave-valor à matriz observer.labels com a chave "SourceModuleName".
SourceModuleType observer.application Mapeado diretamente do campo "SourceModuleType".
SourcePort principal.port Convertido em um número inteiro. Mapeado diretamente do campo "SourcePort".
SourceProcessId src.process.pid Mapeado diretamente do campo "SourceProcessId".
source_client_ip client_ip Mapeado diretamente para o campo "client_ip".
esporte principal.port Convertido em um número inteiro. Mapeado diretamente do campo "sport".
src principal.ip, principal.asset.ip Mapeado diretamente do campo "src".
ssid network.session_id Mapeado diretamente do campo "ssid" nos registros JSON.
ssidName additional.fields Adicionado como um par de chave-valor à matriz "additional.fields" com a chave "ssidName".
estado additional.fields Adicionado como um par de chave-valor à matriz "additional.fields" com a chave "state".
Status additional.fields Adicionado como um par de chave-valor à matriz "additional.fields" com a chave "Status".
status_code network.http.response_code Convertido em um número inteiro. Mapeado diretamente do campo "status_code".
SubjectDomainName principal.administrative_domain Mapeado diretamente do campo "SubjectDomainName".
SubjectLogonId principal.resource.attribute.labels Adicionado como um par de chave-valor à matriz principal.resource.attribute.labels com a chave "SubjectLogonId".
SubjectUserName principal.user.userid Mapeado diretamente do campo "SubjectUserName".
SubjectUserSid principal.user.windows_sid Mapeado diretamente do campo "SubjectUserSid".
targetHost target.hostname, target.asset.hostname Convertido em um endereço IP, se possível. Caso contrário, será analisado para extrair o nome do host e mapeado para target.hostname e target.asset.hostname.
TargetHandleId target.resource.id Mapeado diretamente do campo "TargetHandleId".
TargetLogonId principal.resource.attribute.labels Adicionado como um par de chave-valor à matriz principal.resource.attribute.labels com a chave "TargetLogonId" se for diferente de SubjectLogonId.
TargetProcessId target.process.pid Mapeado diretamente do campo "TargetProcessId".
TargetUserName target.user.userid Mapeado diretamente do campo "TargetUserName".
TargetUserSid target.user.windows_sid Mapeado diretamente do campo "TargetUserSid".
Tarefa additional.fields Convertido em uma string. Adicionado como um par de chave-valor à matriz "additional.fields" com a chave "Task".
timestamp metadata.event_timestamp O campo "seconds" é usado para criar um carimbo de data/hora.
ts metadata.event_timestamp Se ts estiver vazio, ele será criado combinando tsDate, tsTime e tsTZ. Se ele contiver "", será analisado para extrair o valor inteiro. Em seguida, ele é analisado como um carimbo de data/hora usando vários formatos.
tipo security_result.summary, metadata.product_event_type Mapeado diretamente do campo "type" nos registros JSON. Também usado como eventSummary e metadata.product_event_type em alguns casos.
url target.url, principal.url Mapeado diretamente do campo "url".
url1 target.url Mapeado diretamente do campo "url1".
usuário target.user.group_identifiers Mesclado na matriz "target.user.group_identifiers".
user_id target.user.userid Mapeado diretamente do campo "user_id".
UserID principal.user.windows_sid Mapeado diretamente do campo "UserID".
Nome de usuário principal.user.userid Mapeado diretamente do campo "UserName".
user_agent network.http.user_agent Mapeado diretamente do campo "user_agent".
userId target.user.userid Mapeado diretamente do campo "userId".
vap additional.fields Adicionado como um par de chave-valor à matriz "additional.fields" com a chave "vap".
VirtualAccount security_result.about.labels Adicionado como um par de chave-valor à matriz security_result.about.labels com a chave "VirtualAccount".
wiredLastSeen security_result.detection_fields Convertido em uma string. Adicionado como um par de chave-valor à matriz security_result.detection_fields com a chave "wiredLastSeen".
wiredMacs intermediary.mac Convertido para letras minúsculas. Mesclado na matriz "intermediary.mac".
WorkstationName principal.hostname, principal.asset.hostname Mapeado diretamente do campo "WorkstationName".

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