Mapa da aula
Aula 01 publicada. Mapa, exemplo, EX001.
flowchart TD
N0["1.1 Do interesse à pergunta"]
N1["1.2 Buscar em duas comunidades"]
N2["1.3 Triagem e concordância"]
N3["Síntese do capítulo"]
N0 --> N1 --> N2 --> N3
N3 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX001"]
Desenho lógico
flowchart LR
N0["1.1 Do interesse à pergunta"]
N1["1.2 Buscar em duas comunidades"]
N2["1.3 Triagem e concordância"]
N3["Síntese do capítulo"]
N0 --> N1 --> N2 --> N3 --> Q["EX001"]
[1.1 Do interesse à pergunta]
|
v
[1.2 Buscar em duas comunidades]
|
v
[1.3 Triagem e concordância]
|
v
[Síntese do capítulo]
|
v
[Exemplo resolvido] --> [Exercício EX001]
Objetivos de aprendizagem e conexão
Depois deste capítulo, você consegue (1) transformar um interesse vago numa pergunta pesquisável sobre uma malha de controle, (2) buscar em veículos de engenharia de controle e de segurança usando sinônimos, (3) remover duplicatas e fazer a triagem com métricas de concordância e (4) redigir um protocolo de revisão de escopo. Ele prepara o seminário do Capítulo 2.
1.1 Do interesse à pergunta
"Segurança de TO" é um campo, não uma pergunta. Uma pergunta pesquisável nomeia um sistema, um fenômeno, uma comparação e um escopo. Exemplo do Harbor Loop: numa malha sintética de nível com um único tanque, um CUSUM de resíduo que usa um medidor de vazão com fiação independente detecta o replay de um único sensor com maior revocação por evento e menor taxa de alarmes falsos do que um alarme de faixa de ±1,5, e essa vantagem desaparece quando o medidor de vazão também é falsificado? A pergunta já codifica a condição de falha — um hábito de nível de mestrado que poupa meses de alegações excessivas.
1.2 Buscar em duas comunidades
A detecção baseada em física aparece como "redundância analítica" e "geração de resíduos" nos periódicos de controle, e como "injeção de dados falsos" e "falsificação de sensores" nos veículos de segurança. Monte uma tabela de sinônimos antes de buscar no IEEE Xplore, na ACM DL, no Scopus e no arXiv. Inclua a literatura cinzenta (white papers da IEC, alertas da CISA) como um fluxo separado, com regras de elegibilidade próprias, porque ela não passa por revisão por pares da mesma forma.
Execute cada string de busca em todas as bases e salve as exportações com a data, a consulta exata e o número de resultados, para que um examinador possa repetir a busca. Espere que as duas comunidades descrevam o mesmo detector com palavras diferentes, e espere duplicatas entre veículos; o Laboratório 1 mostra com que rapidez elas aparecem quando um mesmo survey é indexado tanto pelo IEEE quanto pela ACM.
1.3 Triagem e concordância
Dois revisores fazem a triagem de títulos e resumos de forma independente; relate o kappa de Cohen. O Laboratório 1 mostra uma exportação sintética com remoção de duplicatas por DOI e por título-ano e um kappa de 0,462 — concordância moderada, puxada pela discordância sobre um white paper de fornecedor e um artigo de medições de DNP3. Concordância baixa é um sinal para consertar os critérios de elegibilidade, não para forçar o consenso.
Escreva as regras de elegibilidade como afirmações testáveis antes da triagem: o estudo avalia um detector numa malha de controle, nomeia seu modelo de atacante, relata uma métrica além da acurácia? Faça juntos a triagem de um pequeno lote de calibração, discuta cada discordância e só então faça a triagem do restante de forma independente. Registre cada regra alterada e a data da alteração.
1.4 Exemplo resolvido e Laboratório 1
# Lab 1 (masters OT, synthetic): deduplicate a search export and compute Cohen's kappa for two screeners.
import re
RECORDS=[
("ieee","Physics-based anomaly detection for ICS: a survey",2018,"10.1145/3203245"),
("acm","Physics-Based Anomaly Detection for ICS: A Survey",2018,"10.1145/3203245"),
("ieee","Modbus security: a survey of attacks and defenses",2020,""),
("arxiv","Sensor replay attacks on water treatment testbeds",2021,""),
("ieee","Sensor Replay Attacks on Water Treatment Testbeds",2021,""),
("grey","Vendor white paper: securing SCADA with AI",2022,""),
("ieee","DNP3 Secure Authentication field measurements",2019,""),
("acm","Zone and conduit design for IEC 62443",2020,""),
("ieee","False data injection in power systems: a survey",2011,"10.1109/TSG.2011.2129544"),
("arxiv","False Data Injection Attacks against State Estimation in Electric Power Grids",2011,"10.1109/TSG.2011.2129544"),
]
def key(r):
doi=r[3].strip().lower();
if doi: return ("doi",doi)
t=re.sub(r"[^a-z0-9]","",r[1].lower()); return ("title",t,r[2])
seen={}; kept=[]
for r in RECORDS:
k=key(r)
if k in seen: continue
seen[k]=True; kept.append(r)
# two reviewers: I=include X=exclude; disagreements on grey and DNP3
A="IIXIXIIXIX"[:len(kept)]; B="IIXIXXXIIX"[:len(kept)]
def kappa(a,b):
n=len(a); agree=sum(x==y for x,y in zip(a,b))/n
pa=sum(x=="I" for x in a)/n; pb=sum(x=="I" for x in b)/n
pe=pa*pb+(1-pa)*(1-pb)
return round(agree,3), round((agree-pe)/(1-pe) if pe!=1 else 1.0,3)
print("raw",len(RECORDS),"kept",len(kept),"dropped",len(RECORDS)-len(kept))
print("agree,kappa",kappa(A,B))
print("kept titles:",[r[1][:40] for r in kept])
Saída esperada:
raw 10 kept 7 dropped 3
agree,kappa (0.714, 0.462)
kept titles: ['Physics-based anomaly detection for ICS:', 'Modbus security: a survey of attacks and', 'Sensor replay attacks on water treatment', 'Vendor white paper: securing SCADA with ', 'DNP3 Secure Authentication field measure', 'Zone and conduit design for IEC 62443', 'False data injection in power systems: a']
Três duplicatas são descartadas por DOI ou por título normalizado. O kappa de 0,462 com 71,4% de concordância bruta mostra a correção pelo acaso em ação.
O laboratório mantém o primeiro registro de cada par duplicado, de modo que a versão do IEEE do survey sobre detecção baseada em física fica e a cópia da ACM sai. Dois registros sem DOI só são fundidos porque seus títulos normalizados e anos coincidem exatamente; uma pequena mudança de redação deixaria passar uma duplicata. Confira a lista mantida a olho antes da triagem e relate no protocolo a contagem bruta, a contagem mantida e a contagem descartada, como o laboratório as imprime.
1.5 Erros comuns e limites
Buscar apenas em veículos de segurança; tratar artigos de fornecedores como evidência revisada por pares; relatar a concordância bruta sem o kappa; escrever uma pergunta sem condição de falha.
Uma pergunta sem condição de falha convida a uma dissertação que só pode dar certo. A pergunta do Harbor Loop evita isso ao perguntar quando a vantagem do CUSUM desaparece. A busca tem um limite parecido: as bases mudam sua indexação, então uma busca feita em março pode não devolver o mesmo conjunto em setembro. Registre a data de cada execução e trate o corpus como um retrato instantâneo.
Exercícios — capítulo 1
- EX001 — Pergunta pesquisável sobre Modbus. Reescreva "quero estudar a segurança do Modbus" como uma pergunta pesquisável, com sistema, fenômeno, comparação e escopo.
Mostrar critérios de avaliação
Rubrica: 3 = sistema, fenômeno, comparação, escopo com métrica ≥90%; 2 = falta um elemento; 1 = interesse vago em Modbus; 0 = nenhum. - EX002 — Tabela de sinônimos para manipulação de sensores. Monte uma tabela de sinônimos (≥4 termos de controle + ≥4 de segurança) para a detecção de dados de sensores manipulados.
Mostrar critérios de avaliação
Rubrica: 3 = ≥4 termos de controle + ≥4 de segurança; 2 = 3+3; 1 = uma comunidade; 0 = nenhum. - EX003 — Incluir ou excluir o white paper e o DNP3. Escreva critérios de inclusão/exclusão que decidam o white paper do fornecedor e o artigo de DNP3 do Laboratório 1.
Mostrar critérios de avaliação
Rubrica: 3 = critérios excluem o marketing do fornecedor e incluem a medição de campo do DNP3; 2 = decisões sem critérios; 1 = uma decisão; 0 = nenhum. - EX004 — Registro cinzento com "e comercial" e kappa. Execute o Laboratório 1; acrescente um registro cinzento com um "e comercial" (&) no título; mostre se a sua key() o captura; recalcule o kappa depois de mudar uma decisão.
Mostrar critérios de avaliação
Rubrica: 3 = a chave normalizada captura o "e comercial" + a variação do kappa é explicada; 2 = chave sem kappa; 1 = só o kappa; 0 = nenhum. - EX005 — Protocolo de escopo de uma página. Redija um protocolo de revisão de escopo de uma página (bases, datas, sinônimos, regras de triagem, meta de kappa).
Mostrar critérios de avaliação
Rubrica: 3 = bases/datas/sinônimos/triagem/κ≥0,6; 2 = falta um campo; 1 = lista de tópicos; 0 = nenhum. - EX006 — Chave por DOI antes da chave por título. Explique por que, na remoção de duplicatas, a chave por DOI deve vir antes da chave por título.
Mostrar critérios de avaliação
Rubrica: 3 = identidade do DOI entre variantes de título + modo de falha da chave por título; 2 = DOI primeiro, sem o modo de falha; 1 = slogan; 0 = nenhum. - EX007 — Níveis de evidência para três fontes. Classifique três fontes (o survey de Giraldo, um alerta da CISA, um blog de fornecedor) por nível de evidência para uma dissertação.
Mostrar critérios de avaliação
Rubrica: 3 = Giraldo alto, CISA médio, blog de fornecedor baixo, com razões; 2 = níveis sem razões; 1 = uma fonte; 0 = nenhum.
Síntese do capítulo
Um projeto de mestrado começa com uma pergunta que já nomeia sua condição de falha, uma busca que atravessa comunidades e um processo de triagem cujas discordâncias consertam os critérios.