Capítulo 15 — Evidências e medição
Mapa da aula
Aula 15 publicada. Mapa, exemplo, EX043.
flowchart TD
N0["15.1 Os relógios discordam"]
N1["15.2 O que a linha do tempo corrigida mostra"]
N2["15.3 Cadeia de custódia"]
N3["15.4 Observação, inferência, suposição"]
N4["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4
N4 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX043"]
Desenho lógico
flowchart LR
N0["15.1 Os relógios discordam"]
N1["15.2 O que a linha do tempo corrigida mostra"]
N2["15.3 Cadeia de custódia"]
N3["15.4 Observação, inferência, suposição"]
N4["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> Q["EX043"]
[15.1 Os relógios discordam]
|
v
[15.2 O que a linha do tempo corrigida mostra]
|
v
[15.3 Cadeia de custódia]
|
v
[15.4 Observação, inferência, suposição]
|
v
[Síntese]
|
v
[Exemplo resolvido] --> [Exercício EX043]
Objetivos de aprendizagem
Você vai (1) corrigir o deslocamento de relógio ao combinar logs; (2) preservar a cadeia de custódia de evidências exportadas; (3) distinguir observação, inferência e suposição numa linha do tempo; e (4) declarar a incerteza de medição.
15.1 Os relógios discordam
Controladores, HMIs e historiadores muitas vezes mantêm relógios independentes, e um CLP sem sincronização de tempo pela rede pode derivar minutos por mês. Antes de sequenciar eventos, meça o deslocamento — por exemplo, comparando um evento conhecido (a mudança de setpoint feita por um operador) nos dois logs — e registre como ele foi medido.
"""Lab 15: align two synthetic logs with a measured clock offset."""
from datetime import datetime, timedelta
hmi = [("2026-03-02T10:00:07", "operator changed SP TT-101 to 95"), ("2026-03-02T10:02:40", "alarm TT-101 HI")]
plc = [("2026-03-02T09:58:52", "SP write accepted"), ("2026-03-02T10:01:30", "valve CV-11 to 80%")]
offset = timedelta(seconds=75) # measured: PLC clock is 75 s behind the reference
ev = [(datetime.fromisoformat(t), "HMI", m) for t, m in hmi] + [(datetime.fromisoformat(t) + offset, "PLC", m) for t, m in plc]
for t, src, m in sorted(ev):
print(t.time(), src, m)
Execute com python3 lab_clock.py. Saída verificada:
10:00:07 HMI operator changed SP TT-101 to 95
10:00:07 PLC SP write accepted
10:02:40 HMI alarm TT-101 HI
10:02:45 PLC valve CV-11 to 80%
Na LDHP, o evento conhecido foi a mudança de setpoint de um operador na HMI-1 às 10:00:07, que também aparece no log do PLC-H como "SP write accepted". Casar os dois deu um deslocamento de 75 segundos, com uma incerteza de cerca de dois segundos por causa da resolução dos logs.
15.2 O que a linha do tempo corrigida mostra
Depois de somar o deslocamento medido de 75 segundos, o "SP write accepted" do CLP se alinha com a entrada da HMI às 10:00:07, o que sustenta a hipótese de que a escrita veio da HMI-1. Sem a correção, o evento do CLP aparece 75 segundos antes de o operador agir — uma sequência que poderia ser mal interpretada como uma escrita externa seguida de uma reação do operador. A correção muda a história, e não só os números. Um gestor que lesse os logs sem correção poderia concluir que alguém de fora da sala de controle escreveu o setpoint e que o operador reagiu depois, o que dispararia um incidente de segurança. A linha do tempo corrigida mostra uma mudança comum feita pelo operador, desde que a suposição sobre o deslocamento se mantenha.
15.3 Cadeia de custódia
Para cada arquivo exportado, registre quem o exportou, de qual sistema, quando, por qual método, e o seu hash SHA-256. Guarde o original como somente leitura e trabalhe em cópias. É assim que uma linha do tempo vira uma evidência na qual um gestor, uma seguradora ou um tribunal podem confiar. Para a linha do tempo de Maya, o registro diria: log de eventos da HMI-1, exportado pelo engenheiro de turno às 11:20 com a conta somente de leitura, SHA-256 registrado; log de diagnóstico do PLC-H, exportado da EWS-1 pelo engenheiro de controle, SHA-256 registrado; os dois originais guardados como somente leitura no compartilhamento da investigação, e a linha do tempo corrigida de Maya construída apenas a partir de cópias. Se uma seguradora perguntar depois se o log do CLP foi editado, o hash responde.
15.4 Observação, inferência, suposição
Rotule cada entrada da linha do tempo. "Linha do log do CLP às 09:58:52, hora local do CLP" é uma observação. "A escrita partiu da HMI-1" é uma inferência. "O deslocamento do relógio do CLP foi constante durante toda a manhã" é uma suposição. Misturá-las é a falha mais comum em relatórios de incidentes. A tabela de Maya acrescenta uma coluna de rótulo exatamente para isso. A sua linha do deslocamento está marcada como A, porque "75 s ± 2 s, medido casando a mudança de setpoint das 10:00:07" depende de o deslocamento continuar constante das 09:30 às 10:30. Se alguém descobrir depois um ajuste do relógio do CLP às 10:15, só as linhas que dependem dessa suposição precisam ser revistas.
Exemplo resolvido (LDHP sintética)
A tabela de Maya tem três colunas — hora corrigida, fonte, declaração — mais uma quarta para o rótulo (O/I/A). A linha do deslocamento diz: "Deslocamento de 75 s ± 2 s, medido casando a mudança de setpoint da HMI às 10:00:07 com a mensagem de aceitação do CLP (A: deslocamento constante durante 09:30–10:30)."
Caso sintético — Lakeside District Heating Plant. As linhas de log e o deslocamento são inventados.
Erros e limites
Um evento casado dá uma única medição do deslocamento; a deriva durante o período pode torná-la errada mais adiante. Fusos horários e mudanças de horário de verão são uma fonte de erro separada.
Exercícios
- EX043 — Aplicando o deslocamento. Uma linha do log do CLP diz 10:04:10. Qual é a hora corrigida? Rubrica: 3 = 10:05:25; 2 = direção correta, deslize aritmético; 1 = subtrai; 0 = nada.
- EX044 — Rotulando entradas da linha do tempo. Rotule como O, I ou A: (a) "CV-11 foi para 80 % às 10:02:45", (b) "o movimento da válvula foi uma ação automática de controle", (c) "nenhum outro host escreveu no PLC-H". Rubrica: 3 = O, I, A; 2 = duas certas; 1 = uma; 0 = nada.
- EX045 — Campos de custódia. Liste cinco campos de um registro de custódia para o log do CLP exportado. Rubrica: 3 = cinco campos relevantes, incluindo o hash; 2 = quatro; 1 = sem hash; 0 = nada.
Síntese
Em TO, uma evidência só é tão boa quanto os seus relógios, o seu registro de custódia e a sua honestidade sobre o que foi visto e o que foi concluído.
Continue estudando — capítulo 15 de 40
← Capítulo 14 · Índice de capítulos do curso · Capítulo 16 →
Siga para a próxima lição escrita.