Criar extensões do analisador com o Gemini
Este guia explica como os analistas de segurança e os engenheiros de detecção podem usar comandos em linguagem natural para aumentar os analisadores de registro padrão. Com o recurso de extensão do analisador de IA, é possível extrair rapidamente outros campos, aplicar lógica condicional e mapear registros brutos para o modelo de dados unificado (UDM, na sigla em inglês) sem escrever uma sintaxe de analisador complexa ou expressões regulares.
Quando um analisador de registro padrão no Google SecOps analisa sua origem de registro, ele pode omitir atributos personalizados específicos do cliente, campos opcionais ou telemetria especializada. O recurso de extensão do analisador de IA permite fazer o seguinte:
- Extrair outros campos de registros brutos e mapeá-los para campos UDM padrão ou
additional.fieldspersonalizados. - Aplicar lógica condicional e transformações de valor, como mapear ações de string para tipos enumerados de UDM.
- Refinar as extensões geradas de forma interativa em sessões de conversa multiturno sem começar do zero.
Terminologia importante
- Modelo de dados unificado (UDM): a estrutura de dados padrão usada no Google SecOps para armazenar e analisar dados de registro.
Antes de começar
Antes de começar, confirme se os seguintes pré-requisitos foram atendidos:
- Cotas de uso:é possível executar no máximo 10 sessões de geração de extensão do analisador de IA por janela de 24 horas, com até 5 mensagens por sessão.
Práticas recomendadas para criar comandos
Para receber extensões de analisador precisas na primeira tentativa, siga estas diretrizes de comando:
- Especifique a origem e o destino explicitamente:declare claramente qual parte do registro bruto será extraída e qual caminho de campo UDM exato ela preenche, por exemplo,
principal.ip,target.user.email_addressesousecurity_result.action. - Use aspas para literais de correspondência exata:ao se referir a strings literais, delimitadores ou valores de amostra em registros não estruturados, coloque-os entre aspas, por exemplo,
"198.51.100.0"ou"allow". - Processar campos personalizados usando additional.fields: para atributos proprietários ou específicos do fornecedor que não têm um campo UDM dedicado, instrua a IA a mapeá-los para
additional.fieldscom um nome de chave claro, por exemplo,additional.fields["application"].
Gerar uma extensão do analisador
É possível iniciar o fluxo de trabalho da extensão do analisador em um dos seguintes locais no Google SecOps:
- Página de configurações dos analisadores:acesse a página Analisadores para selecionar e estender qualquer analisador de registro existente.
- Página de pesquisa:ao investigar registros na página Pesquisa, abra o fluxo de criação de extensão diretamente de um evento com campos não analisados.
Para gerar uma extensão do analisador na página de configurações Analisadores, siga estas etapas:
- No Google SecOps, acesse a página de configurações Analisadores.
- Pesquise o tipo de registro que você quer estender.
- Clique no menu ao lado do analisador e selecione a opção para estendê-lo.
- No campo REGISTRO BRUTO, cole um exemplo do registro que você quer analisar.
- Na seção Método de extensão, selecione a guia Gerar com IA.
- No campo de comando, insira uma descrição em inglês simples da extração.
Clique em Confirmar.
O sistema gera o código de extensão e atualiza a saída do UDM.
Refinar a extensão do analisador
É possível criar e refinar a extensão do analisador de forma iterativa em sessões de conversa multiturno. Quando você envia um comando de acompanhamento, a IA aplica suas novas instruções na extensão gerada anteriormente. Os mapeamentos e a lógica condicional das conversas anteriores são preservados automaticamente, a menos que você peça explicitamente para substituí-los ou removê-los.
- No campo de comando, insira uma instrução de acompanhamento para ajustar o código gerado.
- Clique em Confirmar.
- Após cada comando, visualize o código de extensão gerado, inspecione as saídas de UDM de amostra e confirme ou ajuste a lógica.
O fluxo de trabalho de exemplo a seguir mostra como o refinamento iterativo cria uma extensão do analisador em várias conversas:
- Conversa 1 (extração inicial):
- Comando do usuário:
"Extract source IP '198.51.100.0' to principal.ip and destination IP '198.51.100.1' to target.ip." - Resultado:a IA gera um mapeamento de extensão
principal.ipetarget.ip.
- Comando do usuário:
- Conversa 2 (mapeamento aditivo):
- Comando do usuário:
"Also map virtual system string 'vsys1' to observer.administrative_domain." - Resultado:a IA atualiza a extensão para mapear
observer.administrative_domain, mantendo os mapeamentos de IP da conversa 1.
- Comando do usuário:
- Conversa 3 (refinamento condicional):
- Comando do usuário:
"In addition, map action string 'allow' to security_result[0].action as ALLOW." - Resultado:a IA incorpora o mapeamento de enumeração de ação condicional em todas as extrações anteriores.
- Comando do usuário:
Validar a extensão do analisador
- Clique em Validar.
- Analise as métricas de validação após a conclusão do processo.
Acessar informações de referência
Use os exemplos a seguir para criar comandos precisos.
Comandos de registros estruturados
Para registros estruturados em que os dados são organizados em chaves, atributos ou tags XML nomeadas, especifique os nomes ou caminhos dos campos no comando.
Exemplo de registro estruturado: formato JSON
{
"insertId": "u0mlpdesys",
"logName": "projects/sample-project-id/logs/cloudaudit.googleapis.com%2Fdata_access",
"protoPayload": {
"authenticationInfo": {
"principalEmail": "analyst@example-domain.com"
},
"methodName": "GenerateAccessToken",
"requestMetadata": {
"callerIp": "203.0.113.195",
"callerSuppliedUserAgent": "google-cloud-sdk gcloud/392.0.0"
},
"resourceName": "projects/-/serviceAccounts/110649196922301550006",
"serviceName": "iamcredentials.googleapis.com"
}
}
Exemplos de comandos para registros estruturados
| Instrução de comando | Campo ou chave de origem | Campo UDM de destino |
|---|---|---|
"Map principalEmail to principal.user.email_addresses." |
principalEmail |
principal.user.email_addresses |
"Extract callerIp to principal.ip and methodName to metadata.product_event_type." |
callerIp, methodName |
principal.ip, metadata.product_event_type |
"Map resourceName to target.resource.name and serviceName to target.application." |
resourceName, serviceName |
target.resource.name, target.application |
"From XML tags, map /Event/System/Hostname to principal.hostname." |
/Event/System/Hostname |
principal.hostname |
Comandos de registros não estruturados
Para registros não estruturados, especifique valores literais diretamente do registro de amostra, referências posicionais ou rótulos descritivos.
Exemplo de mensagem syslog não estruturada
<14>Nov 9 18:52:45 198.51.100.1 1,2021/11/09 18:52:45,007051000184334,TRAFFIC,start,2561,2021/11/09 18:52:45,198.51.100.0,198.51.100.1,0.0.0.0,0.0.0.0,any allow,,,ping,vsys1,LAN,LAN,ethernet1/2,ethernet1/2,LFPpan,2021/11/09 18:52:45,9729,6,0,0,2048,0,0x100000,icmp,allow,444,444,0,6
Exemplos de comandos para registros não estruturados
| Instrução de comando | Valor literal ou descrição de amostra | Campo UDM de destino |
|---|---|---|
"Extract source IP '198.51.100.0' to principal.ip and destination IP '198.51.100.1' to target.ip." |
'198.51.100.0', '198.51.100.1' |
principal.ip, target.ip |
"Extract the application string 'ping' from the log and map it to additional.fields['application']." |
'ping' |
additional.fields["application"] |
"Map rule name 'any allow' to security_result.rule_id." |
'any allow' |
security_result[0].rule_id |
"Extract sent bytes and received bytes into network.sent_bytes and network.received_bytes." |
Contadores de bytes numéricos no registro | network.sent_bytes, network.received_bytes |
Comandos de lógica condicional
Descreva a lógica condicional para normalizar valores de registro brutos para enumerações UDM específicas.
- Normalização de enumeração:
"If the firewall action in the log is 'allow', set security_result.action to ALLOW; otherwise set security_result.action to BLOCK." - Mapeamento de campo condicional:
"If the protocol is 'icmp', map the ICMP type and code into network.icmp.type and network.icmp.code." - Mapeamento de status
"When the log status contains 'success' or '0', set security_result.severity to INFO; if it contains 'error', set it to ERROR."
Limites de uso
Para manter o desempenho ideal e a disponibilidade de recursos, o recurso de extensão do analisador de IA aplica as seguintes cotas de uso:
- 10 sessões por 24 horas:cada cliente recebe um máximo de 10 sessões de geração de extensão do analisador de IA por janela de 24 horas.
- 5 mensagens por sessão:em uma única sessão, é possível enviar até 5 mensagens, incluindo o comando inicial e as conversas de refinamento subsequentes, para criar e refinar a extensão do analisador.
Se você atingir o limite de mensagens da sessão, poderá salvar a extensão atual ou iniciar uma nova sessão.
A seguir
- Para mais detalhes sobre outros métodos de extensão do analisador, consulte Desenvolver extensões do analisador.
- Para exemplos de snippets e cenários de extensão, consulte Exemplos de extensão do analisador.
- Para uma visão geral de como os registros brutos são analisados no UDM, consulte Visão geral da análise de registros.
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.