Pesquise registros brutos
Quando você faz uma pesquisa, o Google Security Operations primeiro examina os dados de segurança que foram ingeridos, analisados e normalizados. Se as informações não forem encontradas nos dados normalizados, use a Pesquisa de registros brutos para examinar os registros brutos não analisados. Você também pode usar expressões regulares para analisar os registros brutos com mais detalhes.
Use a Pesquisa de registros brutos para investigar artefatos que aparecem nos registros (mas não são indexados), incluindo:
- Nomes de usuário
- Nomes de arquivos
- Chaves de registro
- Argumentos de linha de comando
- Dados brutos relacionados a solicitações HTTP
- Nomes de domínio baseados em expressões regulares
- Namespaces e endereços de recursos
Principais casos de uso da pesquisa de registros brutos
A pesquisa de registros brutos é uma ferramenta de investigação especializada projetada para os seguintes casos de uso:
- Verifique a normalização e resolva problemas com analisadores: compare entradas de registro brutas com eventos da UDM gerados para identificar lacunas de normalização, verificar o mapeamento de campos ou localizar registros não analisados.
- Investigação forense detalhada e busca de ameaças: procure indicadores de comprometimento (IOCs), argumentos de linha de comando, chaves de registro, caminhos de arquivo ou strings específicas incomuns ou não indexados que não estão mapeados para campos UDM estruturados.
- Investigue dados não estruturados e personalizados: consulte imediatamente fontes de registros recém-integradas ou proprietárias sem esperar que um analisador de UDM seja desenvolvido.
Pesquisa de registros brutos
Você pode fazer uma pesquisa de registros brutos usando a barra Pesquisar, localizada na página de destino ou na barra de menus. Escolha um dos seguintes métodos:
Use o formato raw=
É possível consultar registros brutos usando o formato raw=. Este é o método recomendado.
- Para pesquisar uma substring, coloque o termo de pesquisa entre aspas. Por exemplo,
raw = "ABC". - Para pesquisar usando uma expressão regular, coloque a expressão em barras (/).
Por exemplo,
raw = /AB*C/. - Opcional: filtre por status analisado usando a palavra-chave
parsed:parsed = false: mostra registros não analisados em que nenhum evento da UDM foi gerado.parsed = true: mostra os registros que foram analisados com sucesso em eventos da UDM.
Método legado: use o comando "Pesquisa de registro bruto"
- Na barra Pesquisar, insira uma string de pesquisa com pelo menos quatro caracteres (por exemplo, um hash MD5), incluindo caracteres curinga.
- Se a pesquisa não retornar resultados, a opção Pesquisa de registros brutos vai aparecer.
- Opcional: especifique o Horário de início e o Horário de término. O período padrão é de sete dias.
- Opcional: na lista Fontes de registros, selecione uma ou mais fontes. A configuração padrão é Todos.
- Clique em Pesquisar.
Os eventos associados à string de pesquisa são mostrados na Linha do tempo. Clique em um evento (ou no ícone de registro bruto) para abrir o registro bruto correspondente. A consulta de pesquisa e os filtros aplicados também ficam visíveis na página Pesquisa de registros brutos.
Otimizar consultas de registros brutos
As pesquisas de registros brutos verificam payloads de registros não indexados e geralmente são mais lentas do que as pesquisas de UDM. Para melhorar a performance da pesquisa, limite a quantidade de dados que você consulta mudando as configurações de pesquisa:
- Seletor de período: limite o período dos dados em que você executa a consulta.
- Seletor de fontes de registros: limite sua pesquisa de registros brutos apenas aos registros de fontes específicas, em vez de todas as fontes. No menu Fontes de registros, selecione uma ou mais fontes de registros (o padrão é Todas) ou adicione o filtro
log_sourcediretamente à consulta (log_source = IN["<var>LOG_SOURCE_NAME</var>"]). - Expressões regulares: use uma expressão regular específica. Por exemplo,
raw = /goo\w{3}\.com/corresponde agoogle.com,goodle.comegoog1e.compara limitar ainda mais o escopo da pesquisa de registros brutos.
Exemplos de pesquisa segmentada de registros brutos
Combine o prefixo raw = com os filtros log_source e parsed para restringir sua pesquisa a feeds relevantes e evitar que fontes de registros de alto volume truncem seus resultados:
Pesquisar uma única origem do registro para uma string exata:
raw = "<var>SEARCH_TERM</var>" and log_source = IN["<var>LOG_SOURCE_NAME</var>"]Pesquisar um subconjunto de origens de registros:
raw = "<var>SEARCH_TERM</var>" and log_source = IN["<var>LOG_SOURCE_1</var>", "<var>LOG_SOURCE_2</var>"]Pesquisar registros não analisados com uma expressão regular:
raw = /<var>REGULAR_EXPRESSION</var>/ and parsed = false and log_source = IN["<var>LOG_SOURCE_NAME</var>"]
Tendência ao longo do tempo
Use o gráfico Tendência ao longo do tempo para entender a distribuição de registros brutos durante o período da pesquisa. É possível aplicar filtros no gráfico para procurar registros analisados e brutos. Clique em Abrir mais (ou Abrir menos) para abrir ou fechar o gráfico.
Resultados de registros brutos
Quando você faz uma pesquisa de registros brutos, os resultados são uma combinação de eventos e entidades da UDM gerados pelos registros brutos que correspondem às suas pesquisas, além dos registros brutos. Para saber mais sobre os resultados da pesquisa, clique em qualquer um deles:
Evento ou entidade da UDM: se você clicar em um evento ou entidade da UDM, o Google SecOps vai mostrar todos os eventos e entidades relacionados, além do registro bruto associado a esse item.
Registro bruto: se você clicar em um registro bruto, o Google SecOps vai mostrar toda a linha do registro bruto, além da origem dele.
Limites de resultados e amostragem
As pesquisas de registros brutos aplicam os seguintes limites de resultados e consultas:
- Limite de resultados de grandes lotes: para registros ingeridos recentemente e armazenados em lotes antes da exportação para armazenamento colunar de longo prazo, há um limite de 1.000 resultados retornados de grandes lotes de registros que contêm 1.000 ou mais eventos. Depois que os registros são exportados para o armazenamento colunar de longo prazo, esse limite de lote de 1.000 resultados não se aplica.
- Limite total de exportação de CSV e da interface: uma única pesquisa de registros brutos no console do Google SecOps ou uma exportação de CSV retorna até 10.000 resultados totais em todas as fontes de registros consultadas. Se uma consulta corresponder a mais de 10.000 entradas, o Google SecOps vai retornar uma amostra representativa de 10.000 resultados.
- Limite de resultados da API: a API Raw Log Search (
SearchRawLogs) impõe um limite máximo de 10.000 entradas por solicitação de consulta (page_size). - Tamanho da consulta de pesquisa: o campo de entrada de pesquisa de registros brutos é limitado a 150 caracteres.
Quando você pesquisa em várias fontes de registros simultaneamente (deixando o menu Fontes de registros definido como Todas), o Google SecOps executa consultas em paralelo em fragmentos de armazenamento distribuídos com limites de consultas de proteção aplicados antes da filtragem na memória para manter tempos de resposta rápidos. Devido a essa arquitetura distribuída, a contagem total de resultados retornados pode variar entre consultas abrangentes de várias fontes e de uma única fonte devido aos seguintes fatores:
- Volumes de ingestão variados: fontes de registros de alto volume geram grandes lotes que atingem o limite de 1.000 resultados mais rápido do que fontes de volume menor.
- Amostragem distribuída por lotes: grandes lotes com 1.000 ou mais eventos são limitados a 1.000 resultados retornados antes que o limite geral de amostragem de consultas de 10.000 resultados seja aplicado, o que muda a proporção de registros amostrados retornados em todas as consultas.
- Níveis de armazenamento recentes e históricos: os registros ingeridos recentemente são consultados em um armazenamento em lote de baixa latência para disponibilidade imediata de pesquisa, em que se aplica o limite de 1.000 resultados em lotes grandes. Depois que os registros são exportados para o armazenamento colunar de longo prazo, as consultas verificam entradas de registro individuais diretamente, sem o limite de lote de 1.000 resultados (até o limite total de consulta de 10.000 resultados), fornecendo contagens de resultados mais consistentes para pesquisas históricas.
Baixar resultados de registros brutos
Para baixar os resultados de registros brutos em um arquivo CSV, na tabela de resultados Registros brutos, clique em Mais > Baixar como CSV.
Por padrão, o arquivo CSV sempre inclui a coluna Registro bruto. Use o botão Colunas para abrir o Gerenciador de colunas e remover ou adicionar as colunas Carimbo de data/hora e Tipo. Se você adicionar outras colunas, elas vão aparecer na tabela, mas não serão baixadas no arquivo CSV.
Para fazer o download dos campos da UDM, execute uma pesquisa, selecione as colunas necessárias e faça o download como um arquivo CSV.
Se o erro Failed to execute 'showSaveFilePicker' aparecer no Google Chrome,
siga estas etapas:
Acesse Dispositivos > Chrome > Configurações.
Selecione Usuários e navegadores.
Localize a configuração Acesso de gravação a sistemas de arquivos.
Adicione
prefix.backstory.chronicle.securityà lista de sites permitidos.
Expressões regulares
É possível usar expressões regulares no Google SecOps para pesquisar e corresponder conjuntos de strings de caracteres nos seus dados de segurança. As expressões regulares ajudam a restringir a pesquisa usando fragmentos de informações em vez de exigir uma correspondência exata.
Para fazer uma pesquisa usando a sintaxe de expressão regular:
- Em Pesquisa do SIEM, insira
raw = /YOUR_REGEX/no campo de pesquisa e clique em Executar pesquisa. - Na barra Pesquisar legada:
- Insira uma expressão regular (de 4 a 66 caracteres) no campo Pesquisar.
- Marque a caixa de seleção Executar consulta como regex e clique em Pesquisar (ou Atualizar pesquisa na página de resultados da Pesquisa de registros brutos).
A infraestrutura de expressão regular do Google SecOps é baseada no Google RE2, um mecanismo de expressão regular de código aberto. O Google SecOps usa a mesma sintaxe de expressão regular.
A tabela a seguir destaca algumas das sintaxes de expressões regulares comuns que você pode usar nas suas pesquisas.
| Qualquer caractere | . |
| x número de quaisquer caracteres | {x} |
| Classe de caracteres | [xyz] |
| Classe de caracteres negada | [^xyz] |
| Alfanumérico (0-9A-Za-z) | [[:alnum:]] |
| Alfabético (A-Za-z) | [[:alpha:]] |
| Dígitos (0 a 9) | [[:digit:]] |
| Minúsculas (a-z) | [[:lower:]] |
| Maiúscula (A-Z) | [[:upper:]] |
| Caracteres de palavras (0-9A-Za-z_) | [[:word:]] |
| Dígito hexadecimal (0-9A-Fa-f) | [[:xdigit:]] |
| Símbolo de ponto de interrogação (?) | Corresponde a zero ou uma ocorrência do elemento anterior. |
| Asterisco (*) | Corresponde a zero ou mais ocorrências do caractere ou grupo anterior. |
| Sinal de mais (+) | Corresponde a uma ou mais ocorrências do caractere ou grupo anterior. |
Os exemplos a seguir ilustram como usar expressões regulares para pesquisar dados:
goo.le\.com: corresponde a qualquer string que comece comgoo, seguida por um único caractere e porle.com, comogoogle.comougoo0le.com.goo\w{3}\.com: corresponde a strings que começam comgoo, seguidas por exatamente três caracteres de palavra (\w) e terminam com.com. Por exemplo,google.com,goojle.comougoodle.com.[[:digit:]]\.[[:alpha:]]: corresponde a uma string que tem um único dígito, seguido por um ponto (.) e um único caractere alfabético, como34323.system,23458.officeou897.net.
Exemplos de expressões regulares para pesquisar registros do Windows
Esta seção fornece strings de consulta de expressão regular que podem ser usadas com a Pesquisa de registros brutos do Google SecOps para encontrar eventos do Windows monitorados com frequência. Estes exemplos pressupõem que as mensagens de registro do Windows estão no formato JSON.
Para mais informações sobre IDs de eventos do Windows monitorados com frequência, consulte Eventos a serem monitorados. Os exemplos fornecidos seguem um padrão semelhante, descrito nesses casos de uso.
| Caso de uso: retornar eventos com o EventID 1150 | |
| String de expressão regular: | \"EventID\"\:\s*1150 |
| Valores correspondentes: | "EventID":1150 |
| Caso de uso:retornar eventos com um ID de evento 1150 ou 1151 | |
| String de expressão regular | (?:\"EventID\"\:\s*)(?:1150|1151) |
| Valores correspondentes | "EventID":1150 e "EventID":1151 |
| Caso de uso: retornar eventos com um ID de evento 1150 ou 1151 e com ThreadID 9092 | |
| String de expressão regular | (?:\"EventID\"\:\s*)(?:1150|1151).*(?:\"ThreadID\"\:\s*9092) |
| Valores correspondentes | "EventID":1150 <...any number of characters...> "ThreadID":9092
e "EventID":1151 <...any number of characters...> "ThreadID":9092 |
Encontrar eventos de gerenciamento da conta
Essas strings de consulta de expressão regular identificam eventos comuns de gerenciamento de contas usando o atributo EventID.
| Tipo de evento | Expressão regular |
| Conta de usuário criada | "EventID\"\:\s*4720 |
| Conta de usuário ativada | "EventID\"\:\s*4722 |
| Conta de usuário desativada | "EventID\"\:\s*4725 |
| Conta de usuário excluída | "EventID\"\:\s*4726 |
| Modificação de direitos do usuário | "EventID\"\:\s*4703 |
| Membro adicionado a um grupo global com segurança ativada | "EventID\"\:\s*4728 |
| Membro removido do grupo global com segurança ativada | "EventID\"\:\s*4729 |
| O grupo global com segurança ativada foi excluído | "EventID\"\:\s*4730 |
Encontrar eventos de logon bem-sucedido
Essas strings de consulta de expressão regular identificam tipos de eventos de logon bem-sucedidos usando os atributos EventID e LogonType.
| Tipo de evento | Expressão regular |
| Login bem-sucedido | "EventID\"\:\s*4624 |
| Logon Success - Interactive (LogonType=2) | "EventID\"\:\s*4624.*?LogonType\"\:\s*\"2\" |
| Login bem-sucedido - login em lote (LogonType=4) | "EventID\"\:\s*4624.*?LogonType\"\:\s*\"4\" |
| Login bem-sucedido: login de serviço (LogonType=5) | "EventID\"\:\s*4624.*?LogonType\"\:\s*\"5\" |
| Login bem-sucedido - Login RemoteInteractive (LogonType=10) | "EventID\"\:\s*4624.*?LogonType\"\:\s*\"10\" |
| Sucesso de logon: interativo, em lote, de serviço ou RemoteInteractive | (?:"EventID\"\:\s*4624.*?LogonType\"\:\s*\")(?:2|4|5|10)\" |
Encontrar eventos de falha de logon
Essas strings de consulta de expressão regular identificam tipos de eventos de logon com falha usando os atributos EventID e LogonType.
| Tipo de evento | Expressão regular |
| Falha no logon | "EventID\"\:\s*4625 |
| Falha de logon - interativa (LogonType=2) | "EventID\"\:\s*4625.*?LogonType\"\:\s*\"2\" |
| Falha de logon: logon em lote (LogonType=4) | "EventID\"\:\s*4625.*?LogonType\"\:\s*\"4\" |
| Falha no logon: login do serviço (LogonType=5) | "EventID\"\:\s*4625.*?LogonType\"\:\s*\"5\" |
| Falha no logon: login remoto interativo (LogonType=10) | "EventID\"\:\s*4625.*?LogonType\"\:\s*\"10\" |
| Falha de logon: interativo, em lote, de serviço ou interativo remoto | (?:"EventID\"\:\s*4625.*LogonType\"\:\s*\")(?:2|4|5|10)\" |
Encontrar eventos de processo, serviço e tarefa
Essas strings de consulta de expressão regular identificam determinados eventos de processo e serviço usando o atributo EventID.
| Tipo de evento | Expressão regular |
| Início do processo | "EventID\"\:\s*4688 |
| Saída do processo | "EventID\"\:\s*4689 |
| Serviço instalado | "EventID\"\:\s*4697 |
| Novo serviço criado | "EventID\"\:\s*7045 |
| Tarefa agendada criada | "EventID\"\:\s*4698 |
Encontrar eventos relacionados ao acesso a objetos
Essas strings de consulta de expressão regular identificam diferentes tipos de eventos relacionados a processos e serviços usando o atributo EventID.
| Tipo de evento | Expressão regular |
| Registro de auditoria limpo | "EventID\"\:\s*1102 |
| Tentativa de acesso a objeto | "EventID\"\:\s*4663 |
| Compartilhamento acessado | "EventID\"\:\s*5140 |
Solução de problemas
Use a tabela a seguir para resolver problemas comuns de pesquisa de registros brutos:
| Problema | Descrição | Corrigir |
|---|---|---|
| Contagens de resultados inconsistentes em várias pesquisas | Consultar várias origens de registros (Todas) retorna contagens totais de resultados variadas em comparação com consultas de origem única para registros ingeridos recentemente devido ao limite de 1.000 resultados em grandes lotes (lotes com 1.000 ou mais eventos) no armazenamento em lote e na amostragem distribuída. | Selecione fontes de registro específicas no menu Fontes de registro ou filtre usando log_source = IN["LOG_SOURCE_NAME"] e restrinja o período de pesquisa. |
| Resultados truncados ou amostrados (limite de 10.000 resultados atingido) | A consulta de pesquisa correspondeu a mais de 10.000 registros totais na UI,
exportação CSV ou API SearchRawLogs (page_size),
retornando apenas uma amostra de 10.000 resultados. |
Reduza o período da consulta (por exemplo, para uma hora) e adicione expressões regulares RE2 específicas ou filtros parsed = false. |
| Discrepâncias na auditoria de ingestão volumétrica | As contagens de resultados da pesquisa de registros brutos não correspondem aos volumes totais de registros ingeridos porque os limites de lote e fragmento de proteção são aplicados antes da filtragem na memória. | Use a Pesquisa UDM, as estatísticas e agregações na Pesquisa UDM ou as métricas de integridade da ingestão para verificar a integridade e a paridade volumétrica da ingestão. |
| A consulta excede o limite de caracteres | A string de pesquisa excede o limite de 150 caracteres para consultas de registros brutos. | Simplifique a expressão regular ou divida a investigação em consultas menores e separadas que segmentam fontes de registros individuais. |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.