◇ OpenCyber Academy
Engenharia · Capítulo 11 · Português

Capítulo 11 — Redes e protocolos

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 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

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.