OpenCyber Academy
Mestrado · Capítulo 3 · Português
Código do curso: OCA-183Capítulo 03: OCA-183-C003

Capítulo 3 — Desenho do estudo, ética e reprodutibilidade

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 03 publicada. Mapa, exemplo, EX015.

flowchart TD
  N0["3.1 O desenho acompanha a pergunta"]
  N1["3.2 Simulação antes dos dados"]
  N2["3.3 Ética e segurança"]
  N3["3.4 Plano de reprodutibilidade"]
  N4["Síntese do capítulo"]
  N0 --> N1 --> N2 --> N3 --> N4
  N4 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX015"]

Desenho lógico

flowchart LR
  N0["3.1 O desenho acompanha a pergunta"]
  N1["3.2 Simulação antes dos dados"]
  N2["3.3 Ética e segurança"]
  N3["3.4 Plano de reprodutibilidade"]
  N4["Síntese do capítulo"]
  N0 --> N1 --> N2 --> N3 --> N4 --> Q["EX015"]
[3.1 O desenho acompanha a pergunta]
    |
    v
[3.2 Simulação antes dos dados]
    |
    v
[3.3 Ética e segurança]
    |
    v
[3.4 Plano de reprodutibilidade]
    |
    v
[Síntese do capítulo]
    |
    v
[Exemplo resolvido] --> [Exercício EX015]

Objetivos de aprendizagem e conexão

Depois deste capítulo, você consegue (1) escolher um desenho compatível com a pergunta, (2) simular o viés e o poder do desenho antes de coletar dados, (3) aplicar os princípios do Menlo à pesquisa industrial e (4) redigir um plano de pré-análise com níveis de dados.

3.1 O desenho acompanha a pergunta

O Harbor Loop compara dois detectores sob ataques controlados num modelo e numa bancada — um experimento controlado, não um estudo observacional. Se você perguntasse "com que frequência as plantas sofrem ataques de replay?", precisaria de um levantamento com uma base amostral e um modelo de divulgação, porque as plantas que nunca relatam ficam invisíveis nos catálogos públicos. Se perguntasse como os operadores confiam nos alarmes, precisaria de entrevistas com revisão ética. Ajustar o desenho à pergunta é o modo de falha mais comum no mestrado: os estudantes pegam emprestado um método de que gostam e depois caçam uma pergunta que caiba nele. Escreva a pergunta primeiro.

Um segundo problema de ajuste é a unidade de análise. A comparação de detectores opera sobre episódios de ataque. A comparação de arquiteturas opera sobre grafos de alcançabilidade. Os estudos com operadores operam sobre pessoas e turnos. Misturar unidades — contar pacotes como se fossem episódios — recria a confusão do ajuste por pontos. Declare a unidade antes de coletar qualquer coisa.

3.2 Simulação antes dos dados

Antes de qualquer experimento, simule. O Laboratório 3 (abaixo, reutilizado como o laboratório principal do detector) já mostra a detecção da classe A e a falha na classe B. Executá-lo antes de escrever a proposta mostra que o desenho consegue distinguir as hipóteses sob os pressupostos do modelo. A simulação antes dos dados também revela se o tamanho de amostra planejado é inútil: se oitenta sementes de ataque sempre produzem o mesmo resultado binário, você precisa mais de uma análise de sensibilidade nos parâmetros que poderiam mudar o resultado (a folga k, o coeficiente do orifício, o atraso do sensor) do que de mil sementes idênticas.

Registre a simulação como um artefato de desenho: faixas de sementes, grade de parâmetros, regras de decisão. Quando um orientador perguntar "por que oitenta execuções?", a resposta está nesse artefato.

3.3 Ética e segurança

Menlo: respeito às pessoas (os operadores que você entrevista), beneficência (limitar cada experimento físico com uma camada de segurança independente — nunca o CLP sob teste), justiça (as pequenas concessionárias arcam com os custos das correções), respeito à lei e ao interesse público. Nunca teste em produção. O pior resultado da Bancada do campus R2 é água numa bandeja coletora; uma válvula boia mecânica e uma parada de emergência física o limitam.

Além do Menlo, a pesquisa em TO herda a cultura de segurança: briefings antes das sessões de laboratório, regra de duas pessoas para energizar bombas e uma autoridade de parada escrita que se sobrepõe à vontade do pesquisador de terminar uma execução. Registre os quase acidentes (a válvula boia quase alcançada) com a mesma seriedade que as hipóteses que falharam.

3.4 Plano de reprodutibilidade

Registre as métricas (revocação por evento, atraso, execuções com alarme falso em 80 sementes nominais, transbordamento no alarme), as sementes, os limiares e o código de análise antes das execuções de validação. Atribua os níveis de dados T0–T3 (o Capítulo 7 do livro de doutorado companheiro aprofunda isso; aqui, separe ao menos o código público das configurações da bancada).

Guarde o plano registrado com um carimbo de tempo que o orientador possa verificar, como um commit datado no repositório do projeto. Inclua os valores congelados de k e h, as faixas de sementes para ajuste e para avaliação e a regra do que conta como detecção. Qualquer mudança posterior entra numa tabela de desvios, com data e motivo, e é relatada na dissertação.

3.5 Exemplo resolvido e Laboratório 3

# Lab 3: residual CUSUM vs band on synthetic tank; report event recall, delay, FA/shift, overfill@alarm.
import random
def run(seed,atk,det,k=0.8,h=6.0,steps=800,onset=400):
    rng=random.Random(seed); true=est=50.0; s=0.0; alarm=None; at=None
    for t in range(steps):
        inflow=1.0+rng.gauss(0,0.05)+(0.05 if atk and t>=onset 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>=onset: lvl=50.0+rng.gauss(0,0.3)
        if atk=="B" and t>=onset: fm=1.0+rng.gauss(0,0.02)
        est+=fm-0.02*est
        hit=abs(lvl-50)>1.5 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; at=true-50
    return alarm,at
for det in ("band","cusum"):
    fa=sum(run(i,None,det)[0] is not None for i in range(80))
    for atk in ("A","B"):
        r=[run(i,atk,det) for i in range(80)]
        hits=[(a-400,ov) for a,ov in r if a is not None and a>=400]
        d=sum(h[0] for h in hits)/len(hits) if hits else float("nan")
        ov=sum(h[1] for h in hits)/len(hits) if hits else float("nan")
        print(f"{det:5s} class{atk} FA_runs={fa}/80 detected={len(hits)}/80 mean_delay={d:.1f} mean_overfill@alarm={ov:.2f}")

Saída esperada:

band  classA FA_runs=11/80 detected=0/80 mean_delay=nan mean_overfill@alarm=nan
band  classB FA_runs=11/80 detected=0/80 mean_delay=nan mean_overfill@alarm=nan
cusum classA FA_runs=0/80 detected=80/80 mean_delay=37.7 mean_overfill@alarm=1.38
cusum classB FA_runs=0/80 detected=0/80 mean_delay=nan mean_overfill@alarm=nan

O laboratório executa oitenta sementes para cada detector e classe de ataque e conta as execuções com alarme falso nas mesmas oitenta sementes sem ataque. O alarme de faixa nunca dispara em nenhum dos ataques, porque o replay mantém o nível relatado perto de 50, mas ainda assim gera alarmes falsos em 11 de 80 execuções nominais. O CUSUM detecta todos os episódios da classe A e nenhum da classe B, quando o medidor de vazão também é falsificado. Essa única tabela já contém o resultado principal e o seu limite. Leia-a antes de qualquer trabalho na bancada.

3.6 Erros comuns e limites

Escolher o desenho depois de ver os dados; chamar de "passiva" uma consulta ativa; usar o CLP como único limite de segurança.

Cada erro tem uma salvaguarda concreta. Registre o desenho e suas regras de decisão antes de coletar dados. Descreva como ativa qualquer medição que envie requisições a um dispositivo, mesmo que só leia. Na bancada R2, a válvula boia e a parada de emergência física são o limite de segurança; nunca se confia no CLP sob teste para impedir um transbordamento que ele mesmo pode estar causando.

Exercícios — capítulo 3

Síntese do capítulo

Desenho antes dos dados, simulação antes do compromisso, limite para cada experimento físico e plano de análise congelado.

Respostas comentadas

EX015. Comparação de detectores → experimento controlado. Adoção → levantamento com base amostral. Confiança dos operadores → entrevista/levantamento com revisão ética.

EX016. H1 sustentada (80/80 vs 0/80). H4 sustentada (0/80). Alarmes falsos da faixa, 11/80, registrados.

EX017. Transbordamento para a bandeja coletora; válvula boia mecânica + bandeja; gerente de laboratório nomeado com parada de emergência.

EX018. A beneficência favorece publicar a classe de capacidade + a defesa arquitetural; reter os passos específicos de produtos até a CVD, se houver uma falha de produto.

EX019. Métricas, sementes 0–79 para avaliação / 1000–1079 para ajuste, k=0,8 h=6, nenhuma mudança de limiar depois da carga na R2.

EX020. Código T0; traços T1; fiação T2; citações T2 (identificáveis) ou T1 se totalmente anonimizadas.