Investigar com o Genie
Visualização
O Lakewatch está em Pré-visualização privada. Para solicitar acesso, entre em contato com a equipe da sua conta da Databricks.
Databricks Genie traz assistência de dados em linguagem natural para o Lakewatch. Você usará principalmente duas partes da família Genie:
- Genie Code é um assistente de AI integrado em toda a interface do Lakewatch. Use-o para obter ajuda rápida e contextual: escrever SQL, criar regras de detecção e explorar fontes de dados. Clique em Genie no menu esquerdo, ou no ícone Genie no canto superior direito, para abri-lo ao lado de qualquer página.
- Genie Agents (anteriormente Genie spaces) são ambientes dedicados para investigações profundas e de várias etapas alimentadas pelo Genie Research Agent.
Esta página aborda o uso de ambos para fluxos de trabalho de segurança do Lakewatch. Para saber o que é o Genie, como é cobrado e sua configuração geral, siga os links acima.
Triagem de alertas com o Genie
O Genie pode fazer a triagem de um alerta de segurança para você na página de detalhes do alerta. Ao selecionar Fazer triagem com o Genie em um alerta, o Genie trabalha como um analista sênior: ele cria um plano de investigação, reúne o contexto e as evidências relevantes, chega a um veredito e atualiza o alerta com suas conclusões.
O botão Triagem com Genie está disponível apenas em alertas de segurança. Não aparece em erros do sistema.
Como o Genie tria um alerta
Quando você pede ao Genie para fazer a triagem de um alerta de segurança, ele percorre as seguintes fases:
- Planeja a investigação. O Genie apresenta um plano curto antes de fazer uma execução de qualquer coisa, incluindo algumas explicações benignas para testar juntamente com a maliciosa, para que você possa seguir seu raciocínio.
- Coleta contexto. O Genie lê a regra de detecção que produziu o alerta, revisa quantas vezes essa regra foi acionada antes para avaliar quão ruidosa ela é e examina os sinais no alerta.
- Investiga as evidências. O Genie realiza a execução de queries em seus dados de segurança para testar cada explicação, girando nas entidades do alerta, como usuários, endereços IP e hosts.
- Chega a um veredito. O Genie classifica o alerta como um verdadeiro positivo, falso positivo ou positivo benigno, com base nas evidências coletadas.
- Atualiza o alerta. O Genie publica um comentário de investigação e define a classificação, o estado e o responsável pelo alerta.
Triagem de um alerta
Para triar um alerta de segurança com o Genie:
- Vá para Explorar > Alertas e abra o alerta de segurança que você deseja investigar.
- Selecione Triagem com Genie na parte superior do alerta. O Genie abre e começar a investigação. Se você já fez a triagem deste alerta antes, o botão lê Retomar triagem e reabre a investigação anterior.
- Revise o plano que o Genie propõe e acompanhe enquanto ele reúne contexto e faz a execução de suas queries de investigação.
- Revise o veredito e o comentário que o Genie adiciona ao alerta. O Genie define a classificação, o estado e o responsável com base nas suas descobertas; portanto, confirme se eles correspondem à sua avaliação antes de fechar o alerta.
O que o Genie produz
O Genie registra sua investigação como um comentário no alerta, estruturado para um leitor que não fez a execução das queries:
- Resumo : O veredito e a principal causa raiz, em algumas frases.
- Avaliação : A classificação (verdadeiro, falso ou positivo benigno) e o estado resultante do alerta.
- Evidências baseadas em risco : uma tabela de cada constatação que influenciou o veredito, com o período e os dados dos quais ela veio.
- Avaliação da qualidade da detecção : uma avaliação da regra que foi acionada, incluindo qualquer lacuna que tenha causado um falso positivo e uma correção recomendada.
- Os passos seguintes : ações de acompanhamento recomendadas, separadas em trabalho imediato e adiado.
O Genie também define a classificação , o estado e o atribuído do alerta e salva a conversa de triagem no alerta para que você possa reabri-lo mais tarde para analisar ou continuar a investigação.
Limitações
- A execução ocorre apenas em alertas de segurança. O botão Triagem com Genie não está disponível em erros do sistema.
- O Genie precisa de um SQL warehouse em execução para ler os eventos do alerta e executar suas queries de investigação.
- O Genie gira em torno dos sinais do alerta e das entidades que eles referenciam, como usuários, endereços IP e hosts.
Configure um Genie Agent para inteligência de ameaças
O Genie Research Agent (RA) analisa feeds de inteligência contra ameaças e revela possíveis ameaças dos seus dados de segurança. Esta seção percorre a configuração de um Genie Agent para fluxos de trabalho de inteligência contra ameaças do Lakewatch.
Pré-requisitos
- Tabelas analisadas inseridas e disponíveis em seu catálogo
- Um feed de inteligência contra ameaças carregado no Databricks (por exemplo, um feed TAXII/STIX mapeado para uma tabela)
- Research Agent habilitado para seu workspace
O passo 1: Criar um Genie Agent com seus dados de segurança
Criar um Genie Agent e conectar os dados que deseja que o Genie query:
- Todas as tabelas analisadas relevantes
- Tabelas do sistema como
signalseoperational_alerts - Tabela de inteligência de ameaças
Um Genie Agent suporta no máximo 30 tabelas. Para ambientes maiores, crie agentes específicos por tópico (por exemplo, “Endpoint RA”).
O passo 2: Ligar o Research Agent
Em seu novo Genie Agent, altere o modo de query de Chat para Research Agent . Isso permite que o Genie execute análises de várias etapas em seus dados em vez de responder a perguntas únicas.
Passo 3: Adicionar instruções
Boas instruções ajudam o Genie a entender seu modelo de dados e onde procurar ao responder a perguntas. Acesse Configurar > Instruções > Texto e adicione um contexto que cubra as seguintes áreas.
Orientações gerais:
- Foque as queries nas tabelas analisadas, a menos que o usuário solicite explicitamente sobre dados brutos.
- O Lakewatch usa o Apache Spark para executar regras de detecção em um agendamento fixo.
Terminologia principal:
- Sinal: Um alerta gerado quando uma regra de detecção corresponde às suas condições.
- Entidade: Usuários, hosts, aplicações ou dispositivos de rede.
- Ativo: recursos protegidos rastreados quanto ao status de segurança.
- Regra de detecção: uma query SQL salva que pesquisa padrões específicos nos dados de eventos.
- Fonte de dados: um pipeline de dados que ingere dados de segurança de fontes externas (por exemplo, AWS CloudTrail, Akamai WAF), tabelas existentes do Unity Catalog ou conectores do Lakeflow Connect.
Contexto do esquema:
- As tabelas analisadas incluem os campos declarados por você, além das colunas gerenciadas pelo Lakewatch (
lw_id,lw_meta,lw_observables). - Níveis de gravidade: 1=Informativo, 2=Baixo, 3=Médio, 4=Alto, 5=Crítico, 6=Fatal.
Contexto do feed de inteligência de ameaças:
- A tabela
mitre_enterprise_attack_goldcontém feeds de ameaças recentes. Os usuários podem usar esta tabela para entender as ameaças que eles devem considerar.
Nomear explicitamente a tabela de inteligência contra ameaças em suas instruções é importante. Sem esse contexto, o Genie pode responder a perguntas sobre ameaças usando outras tabelas (como sinais) em vez de seu feed de inteligência.
O passo 4: query ameaças
Assim que seu agente estiver configurado, faça perguntas ao Genie sobre seu cenário de ameaças.
Se o Genie não fizer referência à sua tabela de inteligência de ameaças automaticamente, faça um dos seguintes:
- Nomeie explicitamente a tabela em sua pergunta: "Usando a tabela mitre_enterprise_attack_gold, sobre quais ameaças devo me preocupar?"
- Adicione instruções apontando o Genie para a tabela para query relacionadas a ameaças (consulte a Etapa 3).
Exemplos de query
Consulta | O que o Genie retorna |
|---|---|
"Quais ameaças devo considerar?" | Resumo das ameaças ativas, puxando de sinais |
"Usando a tabela mitre_enterprise_attack_gold, com quais ameaças devo me preocupar?" | Análise das técnicas do MITRE ATT&CK, grupos de atores de ameaças e famílias de malware do seu feed de inteligência |
"Existem novas ameaças que devo considerar ou procurar?" | Padrões de ataque atualizados recentemente, famílias de malware emergentes e campanhas ativas |
“Encontre lacunas de cobertura de detecção para táticas de comando e controle.” | Análise de lacunas nas táticas MITRE ATT&CK |
“Você pode revisar todas as atividades do IP 5.161.151.88?” | Resumo da investigação de uma entidade específica |
"Explique o que aconteceu com a desfiguração do bucket S3 corporativo." | Resumo de ataque em fases com próximos os passos |
Solução de problemas
O Genie não está usando a tabela de inteligência de ameaças
Adicione instruções explícitas na configuração do Genie Agent apontando para o nome da tabela e seu propósito. O Genie usa por default a tabela que parece mais relevante para a pergunta. Sem uma dica, ele pode usar sinais em vez disso.
O feed de inteligência contra ameaças não está no Databricks
O feed precisa ser ingerido e estruturado como uma tabela antes que o Genie possa fazer uma query nele. Uma tabela de cluster líquido que mapeia 1:1 para os campos de arquivo TAXII é a abordagem recomendada.
Dicas para obter melhores resultados
- Seja específico em seus prompts. Nomear a tabela diretamente melhora a relevância.
- Use instruções para reduzir o atrito. Uma vez que a tabela de inteligência de ameaças esteja documentada nas instruções do Genie, os analistas podem fazer perguntas em linguagem natural sem especificar nomes de tabela.
- Itere sobre as instruções. Se o Genie extrair informações constantemente da fonte errada, refine suas instruções para ser mais explícito sobre qual tabela deve ser usada para qual tipo de pergunta.
- Para saber mais sobre a criação e ajuste de agentes, consulte Criar e gerenciar um Genie Agent.
Exemplos de prompts do Genie Code
O Genie Code pode ajudar a escrever queries SQL, criar regras de detecção, explorar fontes de dados e muito mais. Os exemplos de prompts abaixo estão organizados por caso de uso.
Para fazer a triagem passo a passo de um alerta de segurança com o Genie, consulte Fazer a triagem de alertas com o Genie.
Geral
Mostrar prompts gerais
Queries SQL
- "Execute esta query SQL: SELECT * FROM my_table LIMIT 10"
- "Execute uma query para contar as linhas na tabela de autenticação"
- "Mostre-me o esquema desta tabela"
- “Fazer uma query da última hora de dados de tráfego de rede”
Descoberta de tabelas e esquema
- "Pesquisar todas as tabelas com 'user' no nome"
- "Localizar tabelas no catálogo de segurança"
- "Quais colunas a tabela http_activity possui?"
- “Mostrar-me tipos de dados para todos os campos desta tabela”
- "Listar todos os catálogos e esquemas disponíveis"
Pesquisa de ativos
- "Localizar volumes do Unity Catalog com dados confidenciais"
- "Pesquisar painéis relacionados ao monitoramento de segurança"
- "Localizar Notebooks que query logs de autenticação"
Pesquisa de documentação
- "Pesquisar na documentação sobre funções de data do Spark SQL"
- "Como faço para usar funções de janela no Databricks?"
- "Encontrar documentação sobre viagem do tempo no Delta Lake"
Detecção
Use esses prompts ao criar e gerenciar regras de detecção.
Mostrar prompts de detecção
Descreva o que você deseja detectar
- "Quero detectar a exfiltração de dados da nossa rede"
- "Criar uma regra para encontrar usuários acessando arquivos confidenciais que eles não deveriam"
Descubra fontes de dados
- "Quais tabelas contêm eventos de autenticação?"
- "Mostre-me dados de exemplo da tabela network_activity"
- "Quais campos estão disponíveis na tabela de autenticação?"
Escrever SQL de detecção
Tipos de lógica de detecção diferentes:
- "Escreva SQL para detectar IPs com mais de 100 logins falhos em uma hora" (limite)
- "Detectar usuários com contagens de login incomuns em comparação com sua linha de base" (anomalia)
- " Detectar quando um usuário faz login em um host pela primeira vez" ( visto pela primeira vez)
- "Detectar usuários fazendo login de vários países em um intervalo de 2 horas" (geoanomalia)
- "Detectar consultas de banco de dados executadas após a meia-noite" (baseado em tempo)
Modificar queries existentes:
- "Adicionar um filtro para excluir account de serviço"
- "Aumentar o limite para reduzir o ruído"
- "Combine isso com a filtragem fora do horário comercial"
Testar e depurar query
- "Execução esta query de detecção e me mostre os resultados"
- “A query não retorna resultados, ajude-me a depurar”
- "Esta query é muito lenta, ajude-me a otimizá-la"
- "Isso gera muitos falsos positivos, como posso ajustá-lo?"
Mapear para MITRE ATT&CK
- "Quais técnicas MITRE se aplicam a ataques de força bruta?"
- "Mapeie essa detecção para as táticas e técnicas apropriadas"
- "Mostre-me detalhes sobre a técnica T1078"
Definir saída de sinal
- “Escreva um padrão de resumo para este alerta”
- "Quais campos de contexto devo incluir?"
- "Mostre-me como o alerta fica com dados de amostra"
Configurar programar e compute
- "Configure isso para execução a cada 15 minutos"
- "Configure uma verificação diária de compliance às 2 da manhã"
- "Execução isso apenas durante o horário comercial para economizar custos"
- “Devo usar compute automático ou dedicado?”
Trabalhe com regras existentes
- "Mostrar-me a configuração para a regra 'Login de Força Bruta'"
- "Listar todas as regras de detecção neste workspace"
- "Modificar o limite na regra existente"
Aprenda sobre conceitos de detecção
- “Explique como funciona a detecção de limite”
- "Qual é a diferença entre a detecção de anomalia e a de limite?"
- “Quais são as implicações de custo de diferentes programar?”
Criar fluxos de trabalho de múltiplas etapas
- "Criar uma detecção completa de força bruta a partir do zero"
- "Criar uma correlação entre logins com falha e escalonamento de privilégios"
Solucionar problemas de detecções
- "Por que esta deteção não está a ser Trigger?"
- "Validar se todos os nomes de campo existem no esquema"
- "A linha de base está errada, como posso reconstruí-la?"
Query
Use esses prompts na página de query.
Mostrar prompts de query
Explorar dados
- "Quantas linhas existem na tabela bruta da fonte de dados Okta?"
- "Mostre-me o esquema de tabela analisado para AWS CloudTrail"
- "Compare as contagens de linhas entre as tabelas brutas e analisadas para a fonte de dados crowdstrike_events"
- "Mostre-me os últimos 10 eventos da tabela analisada do Crowdstrike"
Refinar resultados
- "Filtrar esses resultados para mostrar apenas eventos dos EUA."
- "Adicionar uma coluna que calcula a pontuação de risco"
- “Remover linhas onde o status é 'teste'”
- "Agrupar esses resultados por usuário e contar eventos"
- “Classificar pela coluna de timestamp de forma decrescente”
Otimizar queries
- "Esta query está demorando muito. Como posso acelerá-la?"
- "Ele retornou 5 milhões de linhas. Como faço para reduzir isso?"
- "Essa query é eficiente?"
- "Como posso otimizar este JOIN?"
- "Ajude-me a corrigir o erro da query"
Interpretar resultados
- “O que esses resultados me dizem?”
- "Existem padrões nestes dados?"
- "Resuma o que estou vendo"
- "O que devo investigar com base nisso?"
Fonte de dados
Use estes prompts ao configurar e gerenciar fontes de dados.
Mostrar prompts de origem de dados
Avaliar a qualidade dos dados
- "Mostre-me um resumo da qualidade dos meus dados"
- "Existem colunas com valores maioritariamente nulos?"
- "Qual é a distribuição de valores na coluna 'event_type'?"
- "Analise o esquema bruto e mostre-me quais colunas existem"
- "Quais colunas têm dados JSON que precisam de extração?"
Diagnosticar erros
- "Por que minha visualização de fonte de dados falhou?"
- "A pré-visualização retornou um erro, ajude-me a depurar"
- "Estou recebendo um erro de 'coluna não existe', o que há de errado?"
Extrair campos JSON
- “Aplanar o objeto JSON 'user' em colunas separadas”
- "Extrair campos da coluna JSON 'metadata'"
- “Preservar a coluna JSON original após a extração”
- "Adicionar um prefixo aos campos JSON extraídos"
Transformar campos
- “Adicionar um novo campo chamado 'is_admin' que é verdadeiro quando a função contém 'admin'”
- "Renomeie a coluna 'userId' para 'user_id'"
- "Converta o campo 'timestamp' para o tipo TIMESTAMP adequado"
- "Criar um campo compute para o nome completo do usuário a partir do primeiro e último nomes"
Filtrar dados
- "Filtrar endereços IP internos"
- "Incluir apenas registros onde o status é 'sucesso'"
- "Excluir registros com valores nulos no campo 'user_id'"
join e enriquecer dados
- "join ao nosso diretório de usuários para enriquecer com informações de departamento"
- "Adicionar dados de reputação de IP de uma tabela de referência externa"
- "Como configuro um join com outra tabela do Unity Catalog?"
Criar e modificar tabelas
- "Criar uma nova tabela analisada apenas para eventos de autenticação"
- "Divida os dados brutos em tabelas separadas por event_type"
- "Adicionar uma tabela personalizada com apenas campos específicos"
- "Modificar a tabela 'security_events' existente para adicionar um novo campo"
Configurar a preservação de coluna
- "Preservar todas as colunas não referenciadas da tabela bruta"
- "Incorporar colunas não referenciadas em uma única coluna"
- "Omitir colunas que não estão mapeadas explicitamente"
Validar e pré-visualizar
- "Validar esta expressão de campo antes de aplicá-la"
- “Pré-visualizar os resultados da transformação”
- "Mostrar dados de amostra após aplicar essas alterações"
Obter recomendações
- “Meus dados parecem confusos, quais transformações você recomenda?”
- "Há algum problema de qualidade de dados que eu deva resolver?"
- "Qual é a melhor maneira de lidar com essa coluna de alta taxa de nulos?"
Entender as opções de configuração
- "Explique a diferença entre addTables e modifyTables"
- “O que 'unreferencedColumns.preserve' faz?”
- “Como funcionam as junções estáticas em enriquecimentos?”