◇ OpenCyber Academy
Pós-graduação · Capítulo 3 · Português

Capítulo 3 — Infraestrutura crítica e segurança setorial: evidências especializadas

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 3 — Infraestrutura crítica e segurança setorial: evidências especializadas

Mapa da aula

Aula 03 publicada. Mapa, exemplo, EX011.

flowchart TD
  N0["3.1 O dever probatório do especialista"]
  N1["3.2 Fontes de evidência num ambiente misto"]
  N2["3.3 O tempo é evidência"]
  N3["3.4 Preservação sem dano"]
  N4["3.5 Explicações concorrentes"]
  N5["3.6 Escrever constatações"]
  N6["3.7 Notificar sob obrigação"]
  N7["3.9 Atividade prática: linha do tempo entre relógios"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7
  N7 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX011"]

Desenho lógico

flowchart LR
  N0["3.1 O dever probatório do especialista"]
  N1["3.2 Fontes de evidência num ambiente misto"]
  N2["3.3 O tempo é evidência"]
  N3["3.4 Preservação sem dano"]
  N4["3.5 Explicações concorrentes"]
  N5["3.6 Escrever constatações"]
  N6["3.7 Notificar sob obrigação"]
  N7["3.9 Atividade prática: linha do tempo entre relógios"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7 --> Q["EX011"]
[3.1 O dever probatório do especialista]
    |
    v
[3.2 Fontes de evidência num ambiente misto]
    |
    v
[3.3 O tempo é evidência]
    |
    v
[3.4 Preservação sem dano]
    |
    v
[3.5 Explicações concorrentes]
    |
    v
[3.6 Escrever constatações]
    |
    v
[3.7 Notificar sob obrigação]
    |
    v
[3.9 Atividade prática: linha do tempo entre relógios]
    |
    v
[Exemplo resolvido] --> [Exercício EX011]

Objetivos de aprendizagem e conexão

Ao final deste capítulo, você deverá ser capaz de:

  1. Identificar as fontes de evidência disponíveis num ambiente misto de TI/TO e o que cada uma pode e não pode mostrar.
  2. Reconstruir uma linha do tempo a partir de fontes cujos relógios discordam, usando eventos-âncora, e declarar a incerteza que resta.
  3. Planejar a preservação de evidências sem pôr em risco o processo físico.
  4. Gerar explicações concorrentes e identificar as evidências que discriminariam entre elas.
  5. Escrever constatações que separem observação, inferência e julgamento, num nível de confiança que as evidências sustentem.
  6. Cumprir as obrigações de notificação sem exagerar o que se sabe.

O Capítulo 2 graduou as evidências de que os controles estão implementados. Este capítulo trata das evidências sobre o que aconteceu — o material que um especialista leva a uma revisão de incidente, a um regulador, a uma seguradora ou a um tribunal. O Capítulo 6 aplica a mesma disciplina aos testes planejados.

3.1 O dever probatório do especialista

Quando algo inexplicado acontece num serviço essencial, muitas pessoas formarão uma história depressa: o fornecedor, os operadores, a imprensa, o regulador. O dever do especialista é estabelecer o que as evidências sustentam, com que confiança e o que continua desconhecido — e manter essas coisas separadas sob pressão. As recomendações de resposta a incidentes do NIST enquadram a resposta como parte da gestão de riscos como um todo, com a preparação, a detecção, a análise e a melhoria ligadas à governança (NIST SP 800-61 Rev. 3, 2025). Para a TO, a NIST SP 800-82 Rev. 3 acrescenta que a resposta deve proteger primeiro a segurança operacional e o processo (NIST, 2023).

O caso do setor de água do Capítulo 2 mostra por que isso importa. Em fevereiro de 2021, um alerta descreveu o comprometimento do sistema de controle de uma instalação de tratamento de água dos EUA por meio de um software de acesso remoto (CISA, AA21-042A). Em 2023, noticiou-se que o ex-administrador da cidade teria dito que o evento provavelmente foi um erro de um funcionário, e não uma intrusão externa (WUSF, 2023). Seja qual for a verdade, o episódio mostra como um relato público inicial pode se cristalizar antes que as evidências estejam completas, e quanto a análise posterior depende do que foi preservado na época.

3.2 Fontes de evidência num ambiente misto

Fonte O que pode mostrar Fraquezas típicas
Logs de firewall e de VPN Sessões, contas, endereços e horários na fronteira Retenção curta; o NAT esconde os hosts; sem conteúdo
Logs do provedor de identidade e do jump host Quem se autenticou, de onde, quais sessões Contas compartilhadas ou de serviço frustram a atribuição
Logs de host Windows/Linux em IHMs e estações de engenharia Logons, processos, alterações de arquivos Frequentemente desabilitados em hosts de TO; buffers locais pequenos são sobrescritos
Historiador SCADA Valores do processo e comandos dos operadores com etiquetas de origem Horário do relógio do servidor do historiador; a compressão pode descartar eventos curtos; a "origem" pode ser uma estação, não uma pessoa
Estado e arquivos de projeto do controlador (CLP) Lógica e configuração atuais; às vezes contadores de alterações A leitura pode exigir ferramentas do fornecedor; a interação online traz risco ao processo
Capturas de rede na zona de controle Exatamente quais comandos de protocolo foram enviados Raramente coletadas de forma contínua; volumosas
Livros de registro dos operadores e passagens de turno Observações e decisões humanas Resolução de minutos ou pior; escritos depois do fato; relógios de parede não sincronizados
Entrevistas Intenção, contexto, ações não registradas A memória reconstrói; os incentivos moldam os relatos
Registros de fornecedores e prestadores Sessões remotas, manutenção, atualizações Mantidos por terceiros; o acesso exige cláusulas contratuais

Um especialista conhece essas fontes antes de um incidente e corrige as fraquezas que mais importam: tempo sincronizado, retenção mais longa dos logs de fronteira e de identidade, contas nominais e acesso contratual aos registros dos fornecedores. O catálogo de controles do NIST inclui requisitos de conteúdo, retenção e carimbo de tempo dos registros de auditoria exatamente por esse motivo (NIST SP 800-53 Rev. 5).

3.3 O tempo é evidência

A ordem dos eventos costuma decidir a explicação: a sessão remota começou antes ou depois de o setpoint mudar? Cada fonte registra o tempo pelo seu próprio relógio, e os relógios de TO frequentemente estão dessincronizados, derivados ou ajustados à mão. Três práticas tornam as linhas do tempo defensáveis:

  1. Escolha um relógio de referência cuja sincronização você consiga verificar (por exemplo, um firewall sincronizado com uma fonte de tempo conhecida e conferido) e expresse todos os eventos nele.
  2. Estime o deslocamento de cada fonte a partir de eventos-âncora — um único momento do mundo real registrado por duas fontes, como as duas pontas da mesma sessão de rede ou uma consulta de sincronização passando por um firewall. Duas âncoras independentes por fonte são melhores do que uma; a discordância entre elas revela deriva.
  3. Declare a incerteza residual de cada fonte — a precisão da própria âncora, a resolução (um registro manuscrito pode ter apenas minutos) e a deriva ao longo do intervalo — e verifique se alguma conclusão depende de uma ordenação mais próxima do que essa incerteza.

3.4 Preservação sem dano

A preservação de evidências em TO não pode criar o dano que ela investiga. Princípios:

3.5 Explicações concorrentes

Uma mudança de setpoint com uma sessão remota por perto convida à história "um atacante fez isso". Um especialista lista toda explicação que poderia produzir as mesmas evidências e pergunta o que as distinguiria — o método das múltiplas hipóteses de trabalho (Chamberlin, reimpressão de 1965). Para uma mudança de dosagem inexplicada, os candidatos incluem um intruso externo usando uma credencial roubada, um engenheiro legítimo do fornecedor fazendo uma mudança não registrada, um erro de um operador numa IHM local, um script ou receita automatizados, um erro de etiquetagem do historiador e uma falha de instrumento que o operador corrigiu manualmente. Cada um prevê rastros diferentes: a mudança de um intruso deveria vir da estação remota depois do logon remoto; o trabalho planejado de um fornecedor deveria corresponder a um chamado e a um padrão visto em outros locais; um erro de operador deveria vir de uma estação local; uma receita deveria se repetir segundo um cronograma; um erro de etiquetagem deveria discordar do registro do próprio controlador.

3.6 Escrever constatações

Uma constatação tem quatro partes: a observação com sua fonte; a inferência com seus pressupostos; a confiança, em palavras que correspondam a faixas explícitas se a sua organização as usar; e a consequência para as decisões. Por exemplo: "O historiador registra uma mudança do setpoint de dosagem de 1,8 para 2,6 mg/L atribuída à estação HMI-JH2 às 02:23:03 (horário do firewall, ±10 s). A estação HMI-JH2 é o cliente de IHM no jump host JH-2. A única sessão interativa no JH-2 naquele momento era a da conta vendor-svc, que se conectou pela VPN a partir das 02:11:40. Avaliamos com confiança moderada que a mudança foi feita dentro da sessão vendor-svc; ainda não podemos dizer quem usou essa conta. A conta é compartilhada por quatro engenheiros da Corvane." Isso é muito mais útil para um tomador de decisão do que "a conta do fornecedor foi comprometida".

3.7 Notificar sob obrigação

Muitos regimes exigem hoje a notificação precoce, em etapas, de incidentes significativos. A NIS2, por exemplo, prevê um alerta precoce, uma notificação mais completa e um relatório final em prazos fixos (Diretiva (UE) 2022/2555); a NERC CIP e outras regras setoriais têm seus próprios relógios. As notificações precoces precisam ser feitas antes que os fatos sejam conhecidos. A contribuição do especialista é torná-las exatas quanto à incerteza: dizer o que foi observado, o que está sendo investigado e o que ainda não se sabe, e evitar uma atribuição que evidências posteriores possam reverter. Acompanhe cada declaração externa para que as notificações posteriores possam corrigir explicitamente as anteriores.

3.8 Exemplo resolvido: uma noite em Hollin (sintético)

Na estação de tratamento de Hollin, o setpoint de dosagem de cloro subiu brevemente de 1,8 para 2,6 mg/L e voltou em menos de um minuto. O registro manuscrito do operador diz que ele notou um alarme às "02:20" e restaurou o setpoint. O especialista reuniu os registros do firewall, do jump host e do historiador. Lido de forma ingênua, o historiador mostra a mudança às 02:06, antes de a sessão VPN vendor-svc começar, às 02:11 — o que inocentaria a sessão remota. Mas sabe-se que o relógio do servidor do historiador não está sincronizado. Existem duas âncoras: o início de uma sessão TCP visto tanto pelo firewall quanto pelo jump host, e a própria consulta de sincronização do historiador passando pelo firewall.

3.9 Atividade prática: linha do tempo entre relógios que discordam

# Lab 3 - reconstructing a timeline from sources whose clocks disagree (offline, standard library only)
# Synthetic: Merrow Water, Hollin treatment works, night of an unexplained chlorine dosing setpoint change.
# Each source records time in its own clock. Anchor events were seen by two sources at the same real moment.
from datetime import datetime, timedelta
T = lambda s: datetime.strptime(s, "%H:%M:%S")
EVENTS = [  # (source, local clock time, description)
    ("firewall",  "02:11:40", "VPN session opened for account vendor-svc"),
    ("firewall",  "02:13:05", "RDP from VPN pool to jump host JH-2 allowed"),
    ("jumphost",  "02:20:31", "interactive logon vendor-svc on JH-2"),
    ("jumphost",  "02:22:58", "HMI client launched on JH-2"),
    ("historian", "02:06:12", "dosing setpoint changed 1.8 -> 2.6 mg/L, source HMI-JH2"),
    ("historian", "02:06:50", "dosing setpoint restored 2.6 -> 1.8 mg/L, source HMI-OPS1"),
    ("ops-log",   "02:20",    "operator notices dosing alarm, restores setpoint (handwritten, minute only)"),
    ("firewall",  "02:31:10", "VPN session closed for vendor-svc"),
]
ANCHORS = [  # the same real moment seen by two sources: (source_a, time_a, source_b, time_b)
    ("firewall", "02:13:07", "jumphost", "02:20:33"),   # TCP session start seen at both ends
    ("firewall", "02:14:30", "historian", "01:57:39"),  # historian's NTP query passing the firewall
]
offset = {"firewall": timedelta(0)}  # firewall is the reference clock (NTP-synchronized, checked)
for a, ta, b, tb in ANCHORS:
    offset[b] = (T(ta) - T(tb)) + offset[a]
offset["ops-log"] = timedelta(0)  # a handwritten log has no known offset, only minute resolution
def show(title, rows):
    print(title)
    for t, src, d in rows: print(f"  {t.strftime('%H:%M:%S')}  {src:9s} {d}")
naive = sorted((T(t) if len(t) > 5 else T(t + ':00'), s, d) for s, t, d in EVENTS)
show("Naive order (raw clocks):", naive)
fixed = sorted(((T(t) if len(t) > 5 else T(t + ':00')) + offset[s], s, d) for s, t, d in EVENTS)
show("Corrected to firewall time:", fixed)
print("offsets:", {k: int(v.total_seconds()) for k, v in offset.items()}, "seconds")

Saída esperada:

Naive order (raw clocks):
  02:06:12  historian dosing setpoint changed 1.8 -> 2.6 mg/L, source HMI-JH2
  02:06:50  historian dosing setpoint restored 2.6 -> 1.8 mg/L, source HMI-OPS1
  02:11:40  firewall  VPN session opened for account vendor-svc
  02:13:05  firewall  RDP from VPN pool to jump host JH-2 allowed
  02:20:00  ops-log   operator notices dosing alarm, restores setpoint (handwritten, minute only)
  02:20:31  jumphost  interactive logon vendor-svc on JH-2
  02:22:58  jumphost  HMI client launched on JH-2
  02:31:10  firewall  VPN session closed for vendor-svc
Corrected to firewall time:
  02:11:40  firewall  VPN session opened for account vendor-svc
  02:13:05  firewall  RDP from VPN pool to jump host JH-2 allowed
  02:13:05  jumphost  interactive logon vendor-svc on JH-2
  02:15:32  jumphost  HMI client launched on JH-2
  02:20:00  ops-log   operator notices dosing alarm, restores setpoint (handwritten, minute only)
  02:23:03  historian dosing setpoint changed 1.8 -> 2.6 mg/L, source HMI-JH2
  02:23:41  historian dosing setpoint restored 2.6 -> 1.8 mg/L, source HMI-OPS1
  02:31:10  firewall  VPN session closed for vendor-svc
offsets: {'firewall': 0, 'jumphost': -446, 'historian': 1011, 'ops-log': 0} seconds

Interpretação. O jump host está 446 segundos (7 min 26 s) adiantado em relação ao firewall; o historiador, 1.011 segundos (16 min 51 s) atrasado. Corrigida, a ordem se inverte: a sessão vendor-svc abre às 02:11:40, o logon no jump host segue a conexão RDP permitida no mesmo segundo (uma verificação de consistência que apoia a primeira âncora), o cliente de IHM inicia às 02:15:32 e a mudança de setpoint a partir da estação HMI-JH2 ocorre às 02:23:03, com uma restauração a partir da estação dos operadores 38 segundos depois. A linha do tempo ingênua teria inocentado a sessão remota; a corrigida coloca a mudança dentro dela. Note a inconsistência que resta: o "02:20" do registro manuscrito está três minutos antes da mudança que ele descreve. A explicação provável é que o relógio de parede da sala de controle esteja atrasado, mas isso é uma inferência; deve ser conferido com o relógio de parede e registrado, e não "corrigido" em silêncio. A constatação continua sendo sobre a sessão, não sobre uma pessoa, e as explicações concorrentes (§3.5) — a mudança legítima, mas não registrada, de um engenheiro do fornecedor versus o mau uso da conta compartilhada — continuam em aberto.

3.10 Erros comuns e limites

O limite é que as evidências podem estreitar as explicações, mas raramente eliminam todas menos uma. Um especialista relata quais explicações restam e o que as separaria; a decisão de agir — por exemplo, suspender o acesso de um fornecedor — pode e muitas vezes deve ser tomada antes que a atribuição esteja resolvida.

Exercícios — capítulo 3

EX011 — Robustez da ordem. Objetivo: quantificar quanto uma conclusão da linha do tempo depende de uma âncora. Insumos: Laboratório 3. Restrições: considerar erros apenas na âncora do historiador. Passos: (1) calcular quantos segundos mais cedo a mudança de setpoint corrigida teria de ocorrer para preceder o início do cliente de IHM no JH-2; (2) mudar em um minuto o horário de firewall da âncora do historiador (02:14:30 → 02:15:30), reexecutar e relatar se a ordem muda; (3) declarar que evidência independente confirmaria o deslocamento do historiador. Evidência esperada: cálculo, saída da reexecução e parágrafo. Rubrica: 3 = margem calculada (451 s), a reexecução mostra que a ordem não muda, uma segunda âncora independente proposta; 2 = falta uma parte; 1 = não executado; 0 = nada.

EX012 — Plano de preservação. Objetivo: planejar uma coleta de evidências segura. Insumos: o evento de Hollin. Restrições: a planta precisa continuar produzindo água; o responsável pelas operações tem autoridade sobre os sistemas de controle. Passos: listar as fontes na ordem de coleta, com o método, quem aprova, a volatilidade e o risco ao processo; incluir a cadeia de custódia e os pedidos aos fornecedores. Evidência esperada: tabela e uma justificativa de um parágrafo. Rubrica: 3 = menos intrusiva primeiro, captura volátil do JH-2 antes de qualquer reinicialização, leituras do controlador com aprovação das operações e ferramentas do fornecedor, hashes e custódia, registros de sessão da Corvane pedidos imediatamente; 2 = ordem parcialmente errada; 1 = põe o processo em risco; 0 = nada.

EX013 — Escreva a constatação. Objetivo: separar observação, inferência, confiança e consequência. Insumos: a saída do Laboratório 3. Restrições: 200 palavras; nenhuma atribuição a uma pessoa. Passos: escrever a constatação para o conselho e uma versão de uma frase para a notificação precoce ao regulador. Evidência esperada: os dois textos. Rubrica: 3 = observações com fonte, base de relógio e incerteza, inferência explícita, confiança declarada, consequência para as decisões (por exemplo, suspender a conta compartilhada) clara, frase ao regulador exata quanto ao que não se sabe; 2 = um elemento misturado; 1 = afirma o comprometimento como fato; 0 = nada.

EX014 — Evidências discriminantes. Objetivo: aplicar as múltiplas hipóteses de trabalho. Insumos: as seis explicações candidatas da §3.5. Restrições: para cada uma, uma previsão que as outras não compartilhem. Passos: montar uma tabela com a explicação, a previsão distintiva, a fonte de evidência e o estado atual (apoiada, contrariada, em aberto). Evidência esperada: tabela. Rubrica: 3 = previsões genuinamente discriminantes, estados coerentes com o Laboratório 3 (erro do operador numa estação local contrariado para a própria mudança; legítima do fornecedor versus mau uso em aberto), próximas evidências identificadas; 2 = algumas previsões compartilhadas; 1 = apenas uma lista; 0 = nada.

EX015 — Notificação em etapas. Objetivo: redigir declarações externas que sobrevivam às evidências posteriores. Insumos: o evento de Hollin; suponha que a Merrow Water esteja sujeita a um regime de notificação de incidentes em etapas semelhante ao do artigo 23 da NIS2. Restrições: não interpretar a lei real para uma entidade real; usar marcadores para os prazos. Passos: redigir o alerta precoce, a notificação e o esboço do relatório final, mostrando como cada um corrige ou amplia o anterior. Evidência esperada: três textos curtos. Rubrica: 3 = alerta precoce factual e explícito quanto à incerteza, a notificação acrescenta a linha do tempo corrigida e as ações, o esboço do relatório final inclui a causa raiz, as correções e as lições; 2 = o texto inicial exagera; 1 = atribuição afirmada; 0 = nada.

Síntese do capítulo

As evidências especializadas são o material em que se apoiam as decisões e a responsabilização. Conheça suas fontes antes de um incidente e corrija as fraquezas que importam — tempo, retenção, contas nominais e acesso aos fornecedores. Trate o tempo como evidência: escolha um relógio de referência, estime os deslocamentos a partir de âncoras e declare a incerteza residual. Preserve sem prejudicar o processo, a menos intrusiva primeiro, com cadeia de custódia. Gere explicações concorrentes e busque as evidências que discriminam entre elas. Escreva constatações que mantenham separadas a observação, a inferência, a confiança e a consequência, e notifique cedo de um modo que as evidências posteriores ampliem, em vez de contradizer.

Continue estudando — capítulo 03 de 12

← Capítulo 02 · Índice de capítulos do curso · Capítulo 04 →

Siga para a próxima lição escrita.