OpenCyber Academy
Engenharia · Capítulo 2 · Português
Código do curso: OCA-130Capítulo 02: OCA-130-C002

Capítulo 2 — Matemática discreta

Ensino gratuito e aberto para quem deseja proteger pessoas e tecnologias. Não é preciso criar uma conta para estudar ou consultar as respostas.

Mapa da aula

Aula 02 publicada. Mapa, exemplo, EX004.

flowchart TD
  N0["2.1 Conjuntos na detecção"]
  N1["2.2 Lógica"]
  N2["2.3 Relações e grafos"]
  N3["2.4 Contagem"]
  N4["2.5 Uso no caso"]
  N5["2.6 Precisão da linguagem"]
  N6["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6
  N6 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX004"]

Desenho lógico

flowchart LR
  N0["2.1 Conjuntos na detecção"]
  N1["2.2 Lógica"]
  N2["2.3 Relações e grafos"]
  N3["2.4 Contagem"]
  N4["2.5 Uso no caso"]
  N5["2.6 Precisão da linguagem"]
  N6["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> Q["EX004"]
[2.1 Conjuntos na detecção]
    |
    v
[2.2 Lógica]
    |
    v
[2.3 Relações e grafos]
    |
    v
[2.4 Contagem]
    |
    v
[2.5 Uso no caso]
    |
    v
[2.6 Precisão da linguagem]
    |
    v
[Síntese]
    |
    v
[Exemplo resolvido] --> [Exercício EX004]

Objetivos de aprendizagem

Você vai (1) usar conjuntos e relações para descrever usuários, hosts e alertas; (2) aplicar lógica a condições de detecção; (3) contar combinações para regras de correlação; (4) raciocinar sobre grafos de logons.

2.1 Conjuntos na detecção

Uma detecção muitas vezes faz perguntas de conjuntos. Quais usuários falharam no login a partir da rede N? Quais deles tiveram sucesso depois? Se F é o conjunto de nomes de usuário com falhas e S o conjunto com sucessos a partir da mesma rede, F ∩ S são as contas que podem ter sido adivinhadas corretamente. A notação de conjuntos transforma um palpite vago numa consulta precisa. A interseção não prova comprometimento; um cliente que digitou a senha errada duas vezes e depois acertou também cai em F ∩ S. O que ela faz é encolher a lista, de todos os que falharam para os poucos que merecem um olhar mais atento, que é o que uma etapa de triagem deve fazer.

2.2 Lógica

Condições de regras são fórmulas lógicas. "O processo é PowerShell E o pai é um aplicativo do Office" é uma conjunção; acrescentar OU amplia uma regra; acrescentar NÃO a estreita. Escrever as condições em lógica deixa seu escopo explícito e testável, e é assim que o formato Sigma expressa a lógica de detecção. Erros de lógica produzem erros reais: escrever OU onde se queria E pode transformar uma regra precisa numa que dispara em todo documento do Office. Tabelas-verdade ajudam a conferir regras pequenas, listando cada combinação de condições e o resultado esperado. As regras Sigma usam seleções nomeadas unidas numa linha de condição, o que mantém a lógica legível mesmo quando cada seleção tem muitos campos.

2.3 Relações e grafos

Um logon do usuário u no host h é um par (u, h). Juntos, os pares formam um grafo bipartido. Uma conta que de repente se conecta a muitos hosts novos aparece como um nó cujo grau salta. Grau, aqui, significa o número de hosts distintos que uma conta toca numa janela de tempo. Uma conta do suporte técnico pode normalmente se conectar a dezenas, enquanto um auxiliar de folha de pagamento se conecta a dois ou três, de modo que o salto importa em relação ao histórico de cada conta. Os grafos também mostram caminhos, como uma conta que chega a um servidor por um host intermediário, coisa que listas de pares escondem.

2.4 Contagem

Regras de correlação combinam eventos. Com 7 tipos de evento, uma regra sobre quaisquer 3 tipos em ordem tem 7 × 6 × 5 = 210 possibilidades. A contagem mostra por que a correlação exaustiva explode e por que as regras precisam ser escolhidas a partir do conhecimento de ameaças, como as técnicas do MITRE ATT&CK. Se a ordem não importa, a contagem cai para a combinação de 7 escolhe 3, que é 35, mas acrescentar janelas de tempo e condições de campo multiplica de novo as possibilidades. Nenhuma equipe consegue escrever e testar centenas de correlações, então o conhecimento de ameaças estreita a busca às sequências que os atacantes de fato usam. O ATT&CK oferece essa base ao descrever técnicas observadas em intrusões reais.

2.5 Uso no caso

Durante a rajada no portal, Amara lista F (nomes de usuário com falhas a partir de 203.0.113.0/24) e S (nomes de usuário com sucesso a partir da mesma rede). Um nome, u5, está nos dois: uma conta de cliente candidata a comprometida. A faixa de endereços 203.0.113.0/24 é reservada para documentação, o que convém a um caso sintético. Amara escreve os dois conjuntos de forma explícita, o que permite a Paolo conferir o raciocínio dela linha a linha. O próximo passo não é bloquear u5 de imediato, mas verificar os detalhes do sucesso, como horário, dispositivo e o que a sessão fez, antes de decidir a ação.

2.6 Precisão da linguagem

A matemática discreta obriga a uma linguagem exata: "muitos" vira "mais de 5 nomes de usuário distintos em 10 minutos". Essa precisão torna as regras revisáveis. Revisável significa que outro analista pode ler a regra e concordar, ou discordar, sobre o que ela deveria pegar. "Muitos" convida a discussões; "mais de cinco em dez minutos" convida a um teste. A versão precisa também pode ser ajustada com evidências, contando com que frequência usuários legítimos ultrapassam cinco falhas em dez minutos e ajustando o limiar com dados, e não com opinião. Todo limiar deve trazer suas unidades.

Exemplo resolvido

Amara escreve a condição da regra assim: count(distinct username where result = fail and source in N, 10 min) > 5 AND exists(username in that set where result = ok). Paolo observa que a segunda cláusula transforma um alerta ruidoso de spray num alerta mais certeiro de "possível comprometimento".

Caso sintético. Os nomes de usuário e as redes são sintéticos.

Erros e limites

A lógica de conjuntos é exata, mas os dados não são: logs ausentes tornam os conjuntos incompletos, então resultados vazios não provam ausência.

Exercícios

Síntese

Conjuntos, lógica, grafos e contagem dão significado exato às regras de detecção e mostram por que a escolha das regras deve ser guiada pelo conhecimento de ameaças.

Continue estudando — capítulo 02 de 50

← Capítulo 01 (rascunho) · Índice de capítulos do curso · Capítulo 03 (rascunho) →

Respostas comentadas

EX004. Contém as contas que falharam e depois tiveram sucesso a partir da rede atacante, as mais propensas a terem sido adivinhadas corretamente.

EX005. 7 × 6 × 5 = 210, portanto as regras não conseguem cobrir todas as combinações e precisam ser escolhidas com base no conhecimento de ameaças.

EX006. Exige pelo menos um sucesso no mesmo conjunto, transformando um alerta genérico de spraying num alerta específico de possível comprometimento.