Capítulo 29 — Infraestrutura crítica e segurança setorial: medição
Mapa da aula
Aula 29 publicada. Mapa, exemplo, EX057.
flowchart TD
N0["29.1 O que medir"]
N1["29.2 Métricas de detecção"]
N2["29.3 A resiliência como desempenho ao longo do tempo"]
N3["29.4 Métricas que enganam"]
N4["29.6 Atividade prática: Laboratório 10"]
N5["Síntese do capítulo"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5
N5 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX057"]
Desenho lógico
flowchart LR
N0["29.1 O que medir"]
N1["29.2 Métricas de detecção"]
N2["29.3 A resiliência como desempenho ao longo do tempo"]
N3["29.4 Métricas que enganam"]
N4["29.6 Atividade prática: Laboratório 10"]
N5["Síntese do capítulo"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> Q["EX057"]
[29.1 O que medir]
|
v
[29.2 Métricas de detecção]
|
v
[29.3 A resiliência como desempenho ao longo do tempo]
|
v
[29.4 Métricas que enganam]
|
v
[29.6 Atividade prática: Laboratório 10]
|
v
[Síntese do capítulo]
|
v
[Exemplo resolvido] --> [Exercício EX057]
Objetivos de aprendizagem e conexão
Ao fim deste capítulo você será capaz de (1) definir métricas de segurança e resiliência que apoiem decisões; (2) calcular métricas de detecção — precisão, revocação, F1, taxa de alarmes falsos, tempo até a detecção — a partir de testes rotulados; (3) medir a resiliência como o desempenho do serviço ao longo do tempo durante uma perturbação; e (4) evitar métricas que recompensam o comportamento errado. Ele se apoia nos capítulos 7 e 28 e prepara os capítulos 30, 38 e 40.
29.1 O que medir
Uma métrica é útil se muda uma decisão. Há três famílias: desempenho dos controles (o controle faz o que foi especificado: taxas de rejeição, tempos de detecção); exposição (quanta superfície de ataque ou vulnerabilidade existe: condutos não autenticados, vulnerabilidades alcançáveis sem patch, contas compartilhadas); e resiliência do serviço (como o serviço se degrada e se recupera). Use a abordagem objetivo–pergunta–métrica: declare o objetivo, a pergunta que mostraria o progresso e só então a métrica. Para o TMRP, a latência de alarme de R7 mede o desempenho dos controles, a contagem de condutos não autenticados mede a exposição e a fração da demanda atendida durante o ensaio de recuperação mede a resiliência.
29.2 Métricas de detecção
A partir de um conjunto de teste rotulado: verdadeiros positivos (VP), falsos positivos (FP), falsos negativos (FN), verdadeiros negativos (VN). Precisão = VP/(VP+FP): dos alarmes, quantos eram reais. Revocação = VP/(VP+FN): dos eventos reais, quantos foram encontrados. F1 é a média harmônica das duas. Informe a precisão e a revocação junto com a taxa-base do conjunto de teste; a precisão num conjunto de teste com 50% de ataques diz pouco sobre uma operação com 0,1% (Capítulo 7). O tempo até a detecção é uma distribuição; informe a mediana e os piores casos, não apenas a média. Arp et al. (2022) listam armadilhas comuns na avaliação de sistemas de segurança baseados em aprendizado de máquina, incluindo taxas-base irreais e contaminação de dados (data snooping); Kim et al. (2022) mostram como a avaliação com ajuste de pontos pode inflar as pontuações da detecção de anomalias em séries temporais.
29.3 A resiliência como desempenho ao longo do tempo
Trace o desempenho do serviço $Q(t)$ — para a LRWA, a fração da demanda atendida — durante uma perturbação. Bruneau et al. (2003) propuseram medir a perda de resiliência como a área entre o desempenho pleno e $Q(t)$, da perturbação até a recuperação. A curva mostra a robustez (quanto o desempenho cai), a rapidez (com que velocidade ele se recupera) e a perda total. Os requisitos de engenharia se projetam sobre ela: R4 mantém a queda rasa; R6 encurta a recuperação. O ensaio de recuperação do TMRP fornece uma curva real, já que o abastecimento ficou em modo local enquanto a operação remota era restaurada.
29.4 Métricas que enganam
Contar ataques bloqueados recompensa firewalls ruidosos; contar patches aplicados ignora quais deles importavam; o tempo médio até a detecção esconde o único evento detectado depois de três semanas. Quando uma métrica se torna uma meta, as pessoas otimizam a métrica. Prefira métricas ligadas às consequências e verificadas por teste. O teste de aceitação do detector do TMRP evita isso informando as falhas de detecção e a detecção mais lenta, e não apenas uma média. Os dois eventos de reconhecimento não detectados permanecem no relatório, porque são o resultado que muda o quanto a LRWA pode confiar no detector.
29.5 Exemplo resolvido: teste de aceitação de um detector de anomalias (sintético)
O teste de aceitação do TMRP para um detector de anomalias de rede usa 14 eventos rotulados de uma semana de teste na bancada (Laboratório 10): 7 maliciosos (inundações de escrita, códigos de função não autorizados, uma nova conexão de engenharia) e 7 benignos (manutenção, backup de firmware, um failover). Resultados: precisão 0,625, revocação 0,714, F1 0,667; tempo até a detecção dos eventos detectados de 2 a 30 minutos, mediana 7. Os dois ataques não detectados eram ambos reconhecimentos lentos e de baixo volume. A decisão de aceitação: implantar para a detecção de ataques de alto volume, não confiar nele para o reconhecimento, e registrar que a taxa-base de 50% do conjunto de teste torna a precisão operacional muito menor.
29.6 Atividade prática: Laboratório 10
# Lab 10 - detection metrics and time-to-detect from a labelled synthetic test week (offline)
# (event_id, truly_malicious, alerted, minutes_from_start_to_alert or None)
EV = [(1,1,1,4),(2,1,1,11),(3,1,0,None),(4,0,1,None),(5,0,0,None),(6,1,1,2),(7,0,1,None),
(8,0,0,None),(9,1,1,30),(10,0,0,None),(11,0,0,None),(12,1,0,None),(13,0,1,None),(14,1,1,7)]
tp = sum(1 for e in EV if e[1] and e[2]); fp = sum(1 for e in EV if not e[1] and e[2])
fn = sum(1 for e in EV if e[1] and not e[2]); tn = sum(1 for e in EV if not e[1] and not e[2])
prec, rec = tp / (tp + fp), tp / (tp + fn)
print(f"TP={tp} FP={fp} FN={fn} TN={tn} precision={prec:.3f} recall={rec:.3f} F1={2*prec*rec/(prec+rec):.3f}")
ttd = sorted(e[3] for e in EV if e[1] and e[2])
print("time to detect (min):", ttd, "mean", round(sum(ttd)/len(ttd), 1), "median", ttd[len(ttd)//2])
Saída esperada:
TP=5 FP=3 FN=2 TN=4 precision=0.625 recall=0.714 F1=0.667
time to detect (min): [2, 4, 7, 11, 30] mean 10.8 median 7
As contagens coincidem com o exemplo resolvido: cinco ataques detectados, três eventos benignos alarmados, dois ataques não detectados e quatro eventos benignos deixados em silêncio. Os dois ataques não detectados eram reconhecimentos lentos e de baixo volume, que o detector não enxerga. Os tempos de detecção mostram por que a mediana importa: um evento levou trinta minutos, enquanto a maioria foi encontrada em menos de dez. Como metade dos eventos de teste era maliciosa, a precisão aqui é muito maior do que a LRWA veria em operação, como mostra o EX057.
29.7 Erros comuns e limites
- Métricas que ninguém usa para uma decisão.
- Precisão de conjuntos de teste balanceados informada como se fosse operacional.
- Tempo médio até a detecção sem distribuição nem falhas de detecção.
- Resiliência informada apenas como disponibilidade (uptime).
- Métricas que se tornam metas.
O teste de aceitação do TMRP informa as falhas de detecção e a detecção mais lenta, e sua precisão é declarada com a taxa-base de cinquenta por cento do conjunto de teste, para que ninguém a confunda com a precisão operacional. A resiliência é mostrada como a fração da demanda atendida ao longo do tempo, e não como disponibilidade. Cada métrica nele informa a decisão de implantação.
Exercícios — capítulo 29
EX057 — Precisão operacional. Objetivo: traduzir as métricas de teste para a operação. Entradas: revocação de 0,714 do Laboratório 10 e taxa de FP no teste de 3/7; taxa-base operacional de 1 evento malicioso a cada 1.000 eventos. Passos: calcule a precisão operacional e os alarmes falsos esperados a cada 1.000 eventos; interprete. Evidência esperada: números e interpretação. Rubrica: 3 = cálculo correto (precisão ≈ 0,0017; ≈ 428 alarmes falsos a cada 1.000 eventos), interpretação de que a estimativa de FP a partir de 7 eventos benignos é incerta demais e de que o detector é inutilizável sem uma TFP muito menor; 2 = números certos; 1 = fórmula errada; 0 = nada.
EX058 — Curva de resiliência. Objetivo: calcular a perda de resiliência. Entradas: $Q(t)$ sintético: 100% até t = 0; 60% de 0 a 4 h; recuperação linear até 100% de 4 h a 12 h. Passos: calcule a área de perda em %·h; recalcule se o modo manual local (R4) mantiver $Q$ em 85% de 0 a 4 h. Evidência esperada: dois números e uma frase. Rubrica: 3 = 160+160 = 320 %·h e 60+60 = 120 %·h, com interpretação clara; 2 = um erro; 1 = apenas o método; 0 = nada.
Síntese do capítulo
Meça o que muda decisões: o desempenho dos controles, a exposição e a resiliência do serviço. Informe a precisão e a revocação com as taxas-base, e as distribuições do tempo até a detecção incluindo as falhas de detecção. Represente a resiliência como desempenho ao longo do tempo. Desconfie de métricas que podem ser manipuladas ou que escondem o pior caso.
Continue estudando — capítulo 29 de 50
← Capítulo 28 · Índice de capítulos do curso · Capítulo 30 →
Siga para a próxima lição escrita.