◇ OpenCyber Academy
Engenharia · Capítulo 29 · Português

Capítulo 29 — Segurança de TO, IoT e sistemas ciberfísicos: medição

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

Capítulo 29 — Segurança de TO, IoT e sistemas ciberfísicos: medição

Mapa da aula

Aula 29 publicada. Mapa, exemplo, EX085.

flowchart TD
  N0["29.1 A cobertura precisa de um plano"]
  N1["29.2 Atividade versus resultado"]
  N2["29.3 Honestidade dos detectores"]
  N3["Nota prática"]
  N4["29.1b Amostragem e comparações entre coortes"]
  N5["Nota de campo — linhas de metodologia nos gráficos"]
  N6["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6
  N6 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX085"]

Desenho lógico

flowchart LR
  N0["29.1 A cobertura precisa de um plano"]
  N1["29.2 Atividade versus resultado"]
  N2["29.3 Honestidade dos detectores"]
  N3["Nota prática"]
  N4["29.1b Amostragem e comparações entre coortes"]
  N5["Nota de campo — linhas de metodologia nos gráficos"]
  N6["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> Q["EX085"]
[29.1 A cobertura precisa de um plano]
    |
    v
[29.2 Atividade versus resultado]
    |
    v
[29.3 Honestidade dos detectores]
    |
    v
[Nota prática]
    |
    v
[29.1b Amostragem e comparações entre coortes]
    |
    v
[Nota de campo — linhas de metodologia nos gráficos]
    |
    v
[Síntese]
    |
    v
[Exemplo resolvido] --> [Exercício EX085]

Objetivos de aprendizagem

Você vai (1) definir a cobertura com um denominador; (2) separar as métricas de atividade das métricas de resultado; (3) avaliar detectores por classe de ataque e com intervalos (lições de Urbina/Giraldo).

29.1 A cobertura precisa de um plano

A cobertura do ATT&CK for ICS é o observado intersectado com o planejado sobre o planejado, não o observado sobre todas as técnicas. Sem um plano, a cobertura é vaidade.

Na ABP, Lena escreve o plano das técnicas a testar antes de cada avaliação, e o painel de cobertura conta apenas essas. As técnicas observadas fora do plano são relatadas à parte. O número de 31 das 44 técnicas planejadas observadas significa algo porque as 44 foram escolhidas antecipadamente e o guia de planejamento é publicado com o painel. O plano é fixado antes dos testes.

29.2 Atividade versus resultado

Atividade: quadros decodificados, ferramentas executadas. Resultado: remediações verificadas, alcançabilidade do SIS ainda falsa, taxa de alarmes falsos na taxa de base da planta. Conduza pelos resultados.

O relatório mensal do CNHP feito por Lena começa pelos resultados: remediações verificadas por novo teste, se o SIS-B continua inalcançável a partir do L4 e a taxa de alarmes falsos do detector na taxa de base da ABP. As contagens de atividade, como quadros decodificados, aparecem apenas num apêndice de capacidade. Conduzir pela atividade premiaria rodar mais ferramentas, e não corrigir mais problemas. Os resultados são o que o gerente da planta financia.

29.3 Honestidade dos detectores

Relate os intervalos de alarmes falsos, o atraso de detecção e a classe de ataque. Um detector de banda que perde ataques furtivos sobre o resíduo não equivale a um CUSUM que os pega — o laboratório torna isso visível.

# Lab 27 - residual CUSUM vs band on batch reactor level (synthetic)
import random
def run(seed, atk, det, k=0.8, h=6.0):
    rng=random.Random(seed); true=est=50.0; s=0.0; alarm=None
    for t in range(500):
        inflow=1.0+rng.gauss(0,0.05)+(0.08 if atk and t>=250 else 0)
        true+=inflow-0.02*true
        lvl=true+rng.gauss(0,0.3); fm=inflow+rng.gauss(0,0.02)
        if atk and t>=250: lvl=50+rng.gauss(0,0.3)
        if atk=="B" and t>=250: fm=1.0+rng.gauss(0,0.02)
        est+=fm-0.02*est
        hit=abs(lvl-50)>2.0 if det=="band" else False
        if det=="cusum":
            s=max(0.0,s+abs(lvl-est)-k); hit=s>h
        if hit and alarm is None: alarm=t
    return alarm
for det in ("band","cusum"):
    fa=sum(run(i,None,det) is not None for i in range(60))
    for atk in ("A","B"):
        hits=[a-250 for a in (run(i,atk,det) for i in range(60)) if a is not None and a>=250]
        print(f"{det} class{atk} FA={fa}/60 det={len(hits)}/60 mean_delay={sum(hits)/len(hits) if hits else float('nan'):.1f}")

Saída esperada:

band classA FA=0/60 det=0/60 mean_delay=nan
band classB FA=0/60 det=0/60 mean_delay=nan
cusum classA FA=0/60 det=60/60 mean_delay=24.8
cusum classB FA=0/60 det=0/60 mean_delay=nan

Caso sintético — Ashford Batch Plant. O CNHP relata a cobertura das técnicas planejadas e os alarmes falsos/atraso dos detectores por classe — não um único "percentual seguro".

O relatório piloto de Lena para a ABP lista os resultados por classe de ataque. Cada classe tem o seu próprio intervalo de alarmes falsos e o seu atraso médio, para que um leitor veja que o CUSUM pegou os ataques furtivos sobre o resíduo que o detector de banda perdeu.

29.4 Erros e limites

Denominadores tirados de outra planta invalidam a métrica. Ataques sintéticos não são o adversário.

Lena nunca toma emprestado um denominador do plano de outro site, porque as técnicas, os ativos e os processos da ABP são diferentes. Se for necessária uma comparação com outra planta, os dois sites precisam usar as mesmas regras de planejamento, e o relatório diz isso. Ela também declara em cada relatório que os ataques sintéticos representam classes escolhidas, não o comportamento de um adversário real, para que os leitores não superestimem os números de detecção. As duas ressalvas aparecem em todo relatório.

Nota prática

Ponha a fórmula e o id da planta na legenda de todo widget do painel. Um widget do painel do CNHP sem fórmula é decoração e é removido na revisão.

29.1b Amostragem e comparações entre coortes

Se você amostrar 50 de 500 ativos, diga isso e não escale as constatações como se tivesse visitado os 500. Comparar a cobertura entre janelas exige as mesmas regras de planejamento. Publique o guia de planejamento ao lado do painel de cobertura, para que 71% em março signifique o mesmo tipo de denominador que 71% em setembro.

A seleção da amostra é registrada com a sua semente ou regra, para que os mesmos ativos possam ser revisitados no novo teste. Prefira métricas que subestimam o sucesso, como contar uma correção apenas depois do novo teste.

O guia de planejamento da ABP é publicado ao lado do painel.

Nota de campo — linhas de metodologia nos gráficos

Quando o CNHP mudou as regras de planejamento em junho, os gráficos no estilo Pulse ganharam uma linha vertical rotulada methodology_id=2026-06. A liderança parou de comparar os 80% de maio com os 70% de julho como se tivessem o mesmo denominador. A honestidade na legenda do gráfico evitou uma falsa narrativa de declínio.

Exercícios

Síntese

Planeje o denominador; meça os resultados; avalie os detectores por classe, com intervalos.

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.