Capítulo 11 — Redes e protocolos
Mapa da aula
Aula 11 publicada. Mapa, exemplo, EX031.
flowchart TD
N0["11.1 Pontos de observação"]
N1["11.2 Portas não são semântica"]
N2["11.3 Bloqueios são cobertura"]
N3["Nota prática"]
N4["11.1b Famílias de protocolos na permissão de trabalh"]
N5["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5
N5 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX031"]
Desenho lógico
flowchart LR
N0["11.1 Pontos de observação"]
N1["11.2 Portas não são semântica"]
N2["11.3 Bloqueios são cobertura"]
N3["Nota prática"]
N4["11.1b Famílias de protocolos na permissão de trabalh"]
N5["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> Q["EX031"]
[11.1 Pontos de observação]
|
v
[11.2 Portas não são semântica]
|
v
[11.3 Bloqueios são cobertura]
|
v
[Nota prática]
|
v
[11.1b Famílias de protocolos na permissão de trabalh]
|
v
[Síntese]
|
v
[Exemplo resolvido] --> [Exercício EX031]
Objetivos de aprendizagem
Você vai (1) descrever o que um observador autorizado pode aprender com os protocolos de TO sem atacá-los; (2) definir o escopo por código de função e por registrador; (3) tratar os bloqueios de protocolo como controles bem-sucedidos.
11.1 Pontos de observação
Monitores seriais veem o Modbus RTU no fio; portas SPAN veem EtherNet/IP ou Modbus TCP; logs de aplicação veem as ações na IHM. Uma avaliação que só tem capturas de tela da IHM não deve alegar visibilidade do barramento de campo. Declare o ponto de observação na seção de método de cada constatação.
Lena escreve o ponto de observação no campo de método de cada constatação, para que os leitores saibam o que podia e o que não podia ser visto. Na ABP, um monitor serial no tronco RS-485 até o PLC-A dá visibilidade do barramento de campo, enquanto os próprios logs da IHM mostram as ações dos operadores. As constatações baseadas em apenas um deles dizem isso, porque cada um pode deixar passar o que o outro vê.
11.2 Portas não são semântica
TCP 502 muitas vezes significa Modbus TCP, mas o escopo significativo é quais códigos de função e quais faixas de registradores cada estação pode usar. A porta 502 aberta é uma informação incompleta sem a situação da lista de permissões e as estações observadas. A função de permissão do Capítulo 4 é a abstração certa.
As constatações de Lena sobre portas abertas sempre acrescentam quais estações foram vistas usando quais códigos de função, para que o leitor saiba se a porta importa. Na ABP, a lista de permissões declara que a HMI-1 só pode escrever nos registradores 40001 a 40010 e que o historiador só pode ler. Uma varredura de portas sozinha não mostraria nada disso.
11.3 Bloqueios são cobertura
Um firewall que bloqueia o tráfego do escritório para o SCADA, ou um monitor que descarta a função 16 vinda do HIST-1, é evidência de que um controle funcionou para aquela sondagem. Os painéis de cobertura devem contar as verificações planejadas que foram bloqueadas como verificações concluídas, e não como falhas de entrada.
"""Lab: Modbus function-code allow-list on synthetic, already-decoded requests (no network)."""
ALLOW = {("HMI-1", 3), ("HMI-1", 6), ("HIST-1", 3), ("HIST-1", 4)} # (source, function code)
WRITE_REGS = {("HMI-1", 6): range(40001, 40011)} # HMI may write setpoints only
reqs = [("HMI-1", 3, 40001), ("HMI-1", 6, 40003), ("HMI-1", 6, 40050),
("HIST-1", 3, 30001), ("HIST-1", 16, 40001), ("ENG-WS", 8, 0), ("HIST-1", 4, 30010)]
for src, fc, reg in reqs:
if (src, fc) not in ALLOW:
d = "BLOCK fc-not-allowed"
elif (src, fc) in WRITE_REGS and reg not in WRITE_REGS[(src, fc)]:
d = "BLOCK register-out-of-range"
else:
d = "PASS"
print(f"{src:7} fc={fc:2} reg={reg:5} -> {d}")
Saída esperada:
HMI-1 fc= 3 reg=40001 -> PASS
HMI-1 fc= 6 reg=40003 -> PASS
HMI-1 fc= 6 reg=40050 -> BLOCK register-out-of-range
HIST-1 fc= 3 reg=30001 -> PASS
HIST-1 fc=16 reg=40001 -> BLOCK fc-not-allowed
ENG-WS fc= 8 reg= 0 -> BLOCK fc-not-allowed
HIST-1 fc= 4 reg=30010 -> PASS
Caso sintético — Ashford Batch Plant. O painel de cobertura do CNHP lista "o HIST-1 não consegue escrever" como verificação planejada. O BLOCK do laboratório na função 16 é um resultado verde para essa verificação, e não um teste vermelho que falhou.
O painel de Lena mostra cada verificação planejada com o seu resultado esperado.
11.4 Erros e limites
Banners mentem; confirme com evidências no nível da aplicação ou de quadros decodificados. Os ambientes do curso nunca varrem plantas em operação.
Lena trata o banner de um dispositivo como uma pista e confirma o produto pela exportação do projeto de engenharia ou por quadros decodificados antes de registrá-lo no inventário. Os banners podem estar desatualizados depois de uma atualização de firmware ou ser deliberadamente genéricos. A etapa de confirmação também evita um erro comum, em que o banner de um gateway é confundido com o do controlador por trás dele. No curso, todas essas verificações rodam sobre dados capturados ou sintéticos, nunca numa rede de planta em operação.
Nota prática
Mantenha um inventário de protocolos de uma página: tronco, taxa de transmissão, estações, códigos de função em uso, dono da lista de permissões. Atualize-o quando um fornecedor acrescentar uma estação. A maior parte do tráfego misterioso é um laptop de engenharia não documentado.
11.1b Famílias de protocolos na permissão de trabalho
As permissões de trabalho devem nomear explicitamente as famílias de protocolos: "Modbus TCP com os códigos de função 3/4/6 nos registradores 40001-40010" é mais claro do que "porta 502". Se os códigos de escrita forem proibidos a partir das estações de avaliação, diga isso. Se só taps de escuta forem autorizados, diga isso. A ambiguidade aqui vira discussão durante a janela, quando alguém quer experimentar uma função de diagnóstico só para ver. Quando a permissão nomeia códigos de função, a lista de permissões do monitor para aquela janela deve nomear os mesmos códigos, para que a permissão e as evidências possam ser comparadas linha a linha.
Na ABP, a permissão de Lena para a verificação serial diz "somente escuta" no tronco RS-485 até o PLC-A, nomeia as escritas permitidas da HMI-1 e proíbe códigos de função de diagnóstico a partir do laptop de avaliação. Durante a janela W-17, o pedido de um fornecedor para experimentar um diagnóstico foi recusado exatamente por esse motivo e avaliado depois, sob a sua própria permissão.
Exercícios
- EX031 — Ponto de observação. Associe três tipos de evidência ao ponto de observação mínimo. Rubrica: 3 = associação correta (por exemplo, erros de CRC do RTU ao serial; FC do Modbus TCP à decodificação IP; atribuição de uma mudança de setpoint ao log da IHM/da aplicação); 2 = duas; 1 = uma; 0 = nada.
- EX032 — Escopo. Reescreva "testar o Modbus no PLC-A" como uma linha delimitada de ficha de método. Rubrica: 3 = códigos, registradores, estações, somente leitura, janela; 2 = parcial; 1 = só a porta; 0 = nada.
- EX033 — Laboratório. Por que HMI-1 fc=6 reg=40050 é bloqueado enquanto 40003 passa? Rubrica: 3 = register-out-of-range versus dentro de WRITE_REGS; 2 = um lado; 1 = vago; 0 = errado.
Síntese
Delimite os protocolos de TO pela semântica (códigos, registradores, estações); comemore os bloqueios que correspondem ao plano.
Continue estudando — capítulo 11 de 50
← Capítulo 10 · Índice de capítulos do curso · Capítulo 12 →
Siga para a próxima lição escrita.