Detecções compostas
Com a detecção combinada, é possível interconectar regras para que a saída de uma regra funcione como entrada para outra. Com esse recurso, é possível criar regras mais complexas e flexíveis. Ao correlacionar e analisar eventos em diferentes fontes de dados e períodos, a detecção composta supera as limitações da detecção de eventos isolados.
Benefícios da detecção combinada
Desmascarando ataques de várias etapas: os ataques cibernéticos geralmente são multifacetados e interconectados. A detecção composta ajuda a revelar a narrativa do ataque vinculando incidentes aparentemente isolados. Por exemplo, uma regra combinada pode identificar toda a sequência de ataque, como uma violação inicial, seguida de escalonamento de privilégios e exfiltração de dados.
Como reduzir a fadiga de alertas: priorize ameaças críticas e reduza a fadiga de alertas implementando regras do consumidor. Essas regras consolidam e filtram alertas ruidosos gerados por regras de entrada, permitindo uma resposta mais focada, o que pode ajudar a priorizar incidentes de alto impacto e minimizar a fadiga de alertas.
Aumentar a precisão da detecção: combine insights de eventos da UDM, outras detecções de regras, informações de entidades, descobertas da UEBA e tabelas de dados para criar uma lógica de detecção precisa.
Simplificação de lógica complexa: divida cenários de detecção complexos em regras gerenciáveis, interconectadas e reutilizáveis para simplificar o desenvolvimento e a manutenção.
Termos e conceitos de detecção composta
Detecção: o resultado de uma regra, também conhecido como alerta.
Composta: uma série de regras interconectadas em que a saída de uma regra serve como entrada para a próxima. Por exemplo, na sequência de regras compostas
rule1 -> rule2
->rule3
, as detecções geradas porrule1
são transmitidas pararule2
, que as processa para gerar novas detecções. Essas detecções são usadas pelorule3
para produzir a saída final.Regra de entrada: uma regra cujas detecções são usadas como entrada para outra regra. Qualquer regra pode funcionar como uma regra de entrada, e não há uma designação específica necessária. As regras de entrada usam entidades e eventos como entrada. Eles não usam detecções como entrada.
Regra composta: uma regra que usa detecções como entrada no texto da regra. As regras compostas precisam ter uma seção
match
.
Conceitos avançados
Regras de detecção de evento único
O Google SecOps não permite regras compostas de evento único. Isso significa que qualquer regra que use detecções como uma fonte de entrada precisa ter uma seção match
.
Detecção de latência
Recomendamos criar regras compostas apenas em regras de entrada de evento único devido ao comportamento de programação. As regras de evento único são executadas quase em tempo real, então as detecções geralmente estão disponíveis quando a regra composta é executada. Se uma regra combinada depender de uma regra de vários eventos como entrada, há o risco de que a regra de entrada seja executada após a execução programada da regra combinada. Isso pode causar atrasos ou detecções perdidas na regra combinada.
TestRule e Retrohunt
Testar ou executar uma retrocaça em uma regra composta executa apenas a regra específica que você selecionou usando detecções atuais. Para executar todo o composto, é necessário iniciar manualmente as retrocaças a partir da primeira regra na sequência, aguardar a conclusão de cada execução e, em seguida, passar para a próxima regra.
A execução de um teste em uma regra não persiste nem grava as detecções no banco de dados, e as regras compostas exigem que as detecções de entrada existam no banco de dados.
A execução de um teste em uma regra não persiste nem grava as detecções no banco de dados. Como as regras compostas exigem que as detecções de entrada existam no banco de dados para funcionar, não é possível usar TestRule para validar uma regra composta.
Criar regras compostas
Você cria regras compostas usando combinações de regras de entrada e regras compostas.
Regras de entrada
As regras de entrada são a base da sua regra combinada. Eles detectam eventos ou condições específicas que, quando combinados, indicam atividades maliciosas. Para configurar uma regra de entrada, faça o seguinte:
Crie uma regra ou reutilize uma já existente.
Desative os alertas. Isso evita que essas regras de entrada gerem alertas individuais. Ao usar essa configuração, é possível priorizar os alertas mais críticos gerados por regras compostas, que avaliam toda a cadeia de eventos.
Use a seção
outcome
para definir as variáveis acessíveis às regras de encadeamento.
O exemplo de regra de produtor a seguir detecta falhas de login.
rule failed_login {
meta:
events:
$e.metadata.event_type = "USER_LOGIN"
any $e.security_result.action = "BLOCK"
outcome:
$target_user = $e.target.user.userid
condition:
$e
}
Essa regra identifica logins bloqueados e fornece o usuário associado.
Regras compostas
Escrever uma regra que usa detecções é quase igual a uma regra que usa UDM, exceto que a origem e os campos disponíveis são diferentes. Para referenciar um campo de detecção, use a palavra-chave detection
como origem: $eventname.detection.field1.field2
.
Os subcampos disponíveis na fonte detection
podem ser encontrados no recurso de conjunto.
Confira a seguir os campos comuns em coleções:
$d.detection.detection.rule_id
$d.detection.detection.detection_fields["match_var_name"]
$d.detection.detection.outcomes["outcome_name"]
A regra de exemplo a seguir detecta logins sem MFA, enumeração e exfiltração.
rule login_enumeration_exfiltration {
meta:
description = "Detects when a user logs in without multifactor authentication (MFA) and then performs enumeration and exfiltration"
rule_name = "Login Without MFA, Enumeration, Exfiltration"
severity = "High"
events:
// Detection with name "Console Login Without MFA"
// The affected user is saved as $target_user
$login_without_mfa.detection.detection.rule_name = /Console Login Without MFA/
$target_user = $login_without_mfa.detection.detection.outcomes["target_user"]
// Any detection with a rule name containing 'enumeration'
// The user performing enumeration is the user that logged in without mfa
$enumeration.detection.detection.rule_name = /enumeration/ nocase
$enumeration.detection.detection.outcomes["principal_users"] = $target_user
// Any detection with the mitre tactic 'TA0010' (Exfiltration)
// The user performing exfiltration is the user that logged in without mfa
$exfiltration.detection.detection.rule_labels["tactic"] = "TA0010"
$exfiltration.detection.detection.outcomes["principal_users"] = $target_user
match:
// Looks for detections over a 24 hour period
$target_user over 24h
condition:
// All 3 must occur for a single user
$login_without_mfa and $enumeration and $exfiltration
}
Detecções hierárquicas
Com a detecção combinada, você pode criar um sistema de detecção hierárquico. As regras de entrada de nível inferior identificam eventos suspeitos isolados. As regras compostas de nível superior consomem a saída dessas regras de entrada para fazer correlações ao longo do tempo, entre entidades e fontes de dados. Essa abordagem ajuda a correlacionar essas informações com dados de outras fontes para detectar padrões de ataques de várias etapas que as regras de evento único podem não identificar.
O Google Security Operations oferece suporte a até três níveis de composição, proporcionando um equilíbrio entre a lógica de detecção avançada e a complexidade gerenciável.
Exemplo:
Nível 1: as regras de entrada detectam eventos suspeitos individuais. Por exemplo, eventos de login com falha e acesso incomum a arquivos.
Nível 2: as regras compostas correlacionam as detecções de nível 1. Por exemplo, eventos de login com falha seguidos de acesso suspeito a arquivos.
Nível 3: regras compostas de nível superior combinam detecções de nível 2 e outros dados para uma detecção ainda mais sofisticada. Por exemplo, uma detecção de nível 2 sobre a autenticação e uma detecção de nível 2 sobre a postura de segurança do dispositivo usado.
Considerações ao escrever regras compostas
Quando você atualiza uma regra de entrada usada em uma ou mais regras compostas, o sistema cria automaticamente uma nova versão dessa regra de entrada. Isso se aplica a atualizações de lógica (condition
, events
, outcomes
) e de metadados (nome, descrição, gravidade). As regras compostas continuam funcionando com a nova versão. Recomendamos testar as regras de entrada atualizadas e as regras compostas downstream para garantir o comportamento pretendido.
Limitações
As regras compostas têm as seguintes limitações:
Regras somente de detecção e pontuação de risco da entidade
As regras somente de detecção (que usam apenas dados de detecção como fonte, e não dados de eventos ou entidades) não contribuem para a pontuação de risco da entidade. Qualquer pontuação de risco definida para uma regra somente de detecção se aplica apenas às detecções criadas por essa regra. Ela não contribui para nenhuma pontuação de risco agregada da entidade.
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.