OpenCyber Academy
Mestrado · Capítulo 6 · Português
Código do curso: OCA-176Capítulo 06: OCA-176-C006

Capítulo 6 — Coleta e análise de dados

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 06 publicada. Mapa, exemplo, EX033.

flowchart TD
  N0["6.1 Coleta"]
  N1["6.2 Resultados da rotulagem"]
  N2["6.3 Conferir as listas de permissão contra a verdade"]
  N3["Laboratório — reprodução da lista de permissão"]
  N4["6.4 Ler o resultado"]
  N5["6.5 Tratar a constatação"]
  N6["6.6 Resultados gerais"]
  N7["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7
  N7 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX033"]

Desenho lógico

flowchart LR
  N0["6.1 Coleta"]
  N1["6.2 Resultados da rotulagem"]
  N2["6.3 Conferir as listas de permissão contra a verdade"]
  N3["Laboratório — reprodução da lista de permissão"]
  N4["6.4 Ler o resultado"]
  N5["6.5 Tratar a constatação"]
  N6["6.6 Resultados gerais"]
  N7["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7 --> Q["EX033"]
[6.1 Coleta]
    |
    v
[6.2 Resultados da rotulagem]
    |
    v
[6.3 Conferir as listas de permissão contra a verdade]
    |
    v
[Laboratório — reprodução da lista de permissão]
    |
    v
[6.4 Ler o resultado]
    |
    v
[6.5 Tratar a constatação]
    |
    v
[6.6 Resultados gerais]
    |
    v
[Síntese]
    |
    v
[Exemplo resolvido] --> [Exercício EX033]

Objetivos de aprendizagem

Você vai (1) coletar dados operacionais conforme o protocolo aprovado; (2) avaliar listas de permissão contra a verdade de referência injetada; (3) combinar volume, rótulos e desfechos de segurança; (4) tratar adequadamente constatações inesperadas.

6.1 Coleta

Exportações semanais do SIEM dão as contagens de alertas por regra, pseudonimizadas na origem. A amostra para rotulagem é sorteada com a semente registrada. Os eventos de purple team são registrados pelo líder do exercício com os horários exatos. Registrar os eventos de purple team de forma independente do SIEM é a salvaguarda principal: se uma lista de permissão suprime um evento, o SIEM não tem registro dele, mas o log do líder do exercício ainda mostra o horário e o alvo. Sortear a amostra com a semente registrada significa que os 200 alertas foram escolhidos antes que alguém visse quais eram interessantes.

6.2 Resultados da rotulagem

Da amostra reponderada de alertas removidos pelas listas de permissão, estima-se que 93% eram disparos benignos, 6% falsos positivos e 1% não resolvidos. Isso sustenta a afirmação de que o ajuste removeu principalmente atividade legítima. A reponderação importa aqui porque a amostra super-representa os alertas de alta severidade. Sem ela, a composição dos 20 alertas de alta severidade contaria muito mais do que sua participação na população. O 1% não resolvido é relatado em vez de atribuído, porque adivinhar esses rótulos faria a parcela benigna parecer mais certa do que é. Os 6% de falsos positivos apontam para regras que precisam de correção, e não de lista de permissão.

6.3 Conferir as listas de permissão contra a verdade de referência

As entradas das listas de permissão suprimem alertas para combinações específicas de regra, host e conta. A preocupação é que um atacante que use uma conta permitida num host permitido fique escondido. A preocupação decorre de como as listas de permissão funcionam: uma entrada que diz "espera-se que esta conta, neste host, faça isto" também manda a regra ignorar qualquer pessoa que tenha tomado essa conta nesse host. Conferir as entradas contra a verdade de referência do purple team é a única forma de ver isso, porque um alerta suprimido não deixa rastro nos dados de alertas.

Laboratório — reprodução da lista de permissão

"""Apply an allow-list to synthetic labelled alerts; check for suppressed attacks."""
alerts = [
    ("ps-encoded", "SCADA-HIST01", "svc_backup", "benign"),
    ("ps-encoded", "SCADA-HIST01", "svc_backup", "benign"),
    ("ps-encoded", "FIN-PC07", "a.moss", "attack"),
    ("new-service", "PATCH-SRV2", "svc_patch", "benign"),
    ("new-service", "PATCH-SRV2", "svc_patch", "attack"),
    ("new-service", "HR-PC03", "j.ward", "benign"),
    ("rdp-logon", "JUMP01", "it.admin", "benign"),
    ("rdp-logon", "JUMP01", "it.admin", "benign"),
]
allow = {("ps-encoded", "SCADA-HIST01", "svc_backup"), ("new-service", "PATCH-SRV2", "svc_patch"), ("rdp-logon", "JUMP01", "it.admin")}
kept = [a for a in alerts if a[:3] not in allow]
suppressed = [a for a in alerts if a[:3] in allow]
print("alerts", len(alerts), "kept", len(kept), "suppressed", len(suppressed))
print("attacks kept", sum(a[3] == "attack" for a in kept), "attacks suppressed", sum(a[3] == "attack" for a in suppressed))
for a in suppressed:
    if a[3] == "attack": print("SUPPRESSED ATTACK:", a[:3])

Execute com python3 lab_allow.py. Saída verificada:

alerts 8 kept 2 suppressed 6
attacks kept 1 attacks suppressed 1
SUPPRESSED ATTACK: ('new-service', 'PATCH-SRV2', 'svc_patch')

6.4 Ler o resultado

Dos 8 alertas da amostra, 6 são suprimidos e 2 mantidos. Um alerta mantido é um ataque (FIN-PC07). Um alerta suprimido é um ataque: um novo serviço em PATCH-SRV2 criado por svc_patch — o uso indevido simulado da conta de aplicação de patches pelo purple team. A entrada "new-service em PATCH-SRV2 por svc_patch" esconde exatamente isso. Este é o caso que o estudo foi desenhado para pegar. O evento suprimido não é uma falha da regra, mas da entrada da lista de permissão: ao confiar em todo novo serviço que svc_patch cria em PATCH-SRV2, ela confiou também no uso indevido. Uma avaliação só de volume teria contado essa entrada como um sucesso.

6.5 Tratar a constatação

Conforme a regra de parada registrada, a entrada é revisada em até um dia. Marcus Bell a estreita: novos serviços criados por svc_patch em PATCH-SRV2 só são permitidos quando o nome do serviço corresponde ao padrão de nomes assinado da ferramenta de patches e o evento ocorre na janela de manutenção. Uma nova reprodução mostra que o evento injetado agora gera alerta. A entrada estreitada ainda remove o ruído rotineiro da aplicação legítima de patches, porque os serviços reais de patch seguem o padrão de nomes assinado e rodam na janela de manutenção. O que ela deixa de fazer é confiar só na conta. A nova reprodução confirma a correção no caso injetado; o registro de mudanças registra o estreitamento da entrada AL-07 na semana 6.

6.6 Resultados gerais

Redução líquida de 136.5 alertas/semana (capítulo 4); 93% dos alertas removidos eram benignos; 1 de 8 eventos injetados suprimido antes do estreitamento, 0 depois. Os três resultados respondem às três partes da pergunta: o volume caiu, o que foi removido era em sua maioria benigno, e o único ataque suprimido foi encontrado e corrigido. Relatá-los juntos impede que algum seja citado sozinho, como a redução de volume sem o evento suprimido. O segundo resultado se apoia na rotulagem estratificada de 200 alertas, reponderada pelo tamanho dos estratos; o terceiro, no log independente do líder do exercício com todos os oito eventos injetados. Cada um tem seu próprio arquivo-fonte no pacote arquivado.

Exemplo resolvido

A tabela de resultados de Tariq tem três linhas — volume, composição dos rótulos, segurança —, cada uma com estimativa, incerteza e arquivo-fonte, mais uma nota: "A constatação de segurança levou ao estreitamento da entrada AL-07 da lista de permissão na semana 6."

Caso sintético. Os alertas vêm do script do laboratório.

Erros e limites

Oito eventos injetados são poucos; zero supressões depois do estreitamento não prova que não haverá supressões futuras.

Exercícios

Síntese

Meça volume, composição e segurança juntos; quando a verdade de referência expõe um buraco, corrija-o conforme o protocolo e relate-o.

Continue estudando — capítulo 06 de 08

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

Respostas comentadas

EX033. Cerca de 93%, depois de reponderar a amostra estratificada.

EX034. Qualquer pessoa que abuse de uma conta permitida num host permitido produz atividade que a entrada remove em silêncio.

EX035. Oito alertas: seis suprimidos e dois mantidos; um ataque (FIN-PC07) mantido e um ataque (novo serviço em PATCH-SRV2 por svc_patch) suprimido.

EX036. Agora ela só vale quando o nome do serviço segue o padrão assinado da ferramenta de patches e o evento cai na janela de manutenção; a nova reprodução então gerou alerta.

EX037. Um corte líquido de 136.5 alertas por semana, cerca de 93% dos alertas removidos benignos, e as injeções suprimidas caindo de uma para zero depois do estreitamento.

EX038. Só oito eventos foram injetados, e os atacantes podem se comportar de formas que nenhum deles cobriu.