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
- EX033 — Composição dos rótulos. Que parcela dos alertas removidos era de disparos benignos?
Mostrar critérios de avaliação
Rubrica: 3 = cerca de 93%, reponderada; 2 = só o número; 1 = errado; 0 = nada. - EX034 — Risco da lista de permissão. Por que as listas de permissão podem esconder ataques?
Mostrar critérios de avaliação
Rubrica: 3 = um atacante que usa uma combinação permitida de conta/host é suprimido; 2 = parcial; 1 = não podem; 0 = nada. - EX035 — Saída da reprodução. Resuma a saída do laboratório.
Mostrar critérios de avaliação
Rubrica: 3 = 8 alertas, 6 suprimidos, 2 mantidos; 1 ataque mantido, 1 suprimido (PATCH-SRV2 svc_patch); 2 = parcial; 1 = errado; 0 = nada. - EX036 — Estreitamento. Como a entrada AL-07 foi estreitada?
Mostrar critérios de avaliação
Rubrica: 3 = padrão de nomes assinado mais janela de manutenção; nova reprodução gera alerta; 2 = parcial; 1 = regra excluída; 0 = nada. - EX037 — Três desfechos. Relate os três resultados gerais.
Mostrar critérios de avaliação
Rubrica: 3 = −136.5/semana, 93% benignos, injeções suprimidas 1→0; 2 = dois; 1 = um; 0 = nada. - EX038 — Zero supressões. Por que zero depois do estreitamento não prova segurança?
Mostrar critérios de avaliação
Rubrica: 3 = poucos eventos injetados; comportamentos futuros podem ser diferentes; 2 = parcial; 1 = prova; 0 = nada.
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) →