Capítulo 11 — Redes y protocolos
Mapa de la lección
Lección 11 publicada. Mapa, ejemplo, EX031.
flowchart TD
N0["Resultados de aprendizaje"]
N1["11.1 Puntos de observación"]
N2["11.2 Los puertos no son semántica"]
N3["11.3 Los rechazos son cobertura"]
N4["Nota práctica"]
N5["11.1b Familias de protocolos en el permiso de trabaj"]
N6["Síntesis del capítulo"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6
N6 --> EX["Ejemplo resuelto"]
EX --> Q["Ejercicio EX031"]
Dibujo lógico
flowchart LR
N0["Resultados de aprendizaje"]
N1["11.1 Puntos de observación"]
N2["11.2 Los puertos no son semántica"]
N3["11.3 Los rechazos son cobertura"]
N4["Nota práctica"]
N5["11.1b Familias de protocolos en el permiso de trabaj"]
N6["Síntesis del capítulo"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> Q["EX031"]
[Resultados de aprendizaje]
|
v
[11.1 Puntos de observación]
|
v
[11.2 Los puertos no son semántica]
|
v
[11.3 Los rechazos son cobertura]
|
v
[Nota práctica]
|
v
[11.1b Familias de protocolos en el permiso de trabaj]
|
v
[Síntesis del capítulo]
|
v
[Ejemplo resuelto] --> [Ejercicio EX031]
Resultados de aprendizaje
Usted podrá (1) describir lo que un observador autorizado puede aprender de los protocolos de TO sin atacarlos; (2) definir el alcance por códigos de función y registros; (3) tratar los rechazos del protocolo como controles que funcionan.
11.1 Puntos de observación
Los monitores serie ven Modbus RTU en el cable; los puertos SPAN ven EtherNet/IP o Modbus TCP; los registros de aplicación ven las acciones del HMI. Una evaluación que solo dispone de capturas de pantalla del HMI no debe afirmar visibilidad del bus de campo. Indique el punto de observación en la sección de método de cada hallazgo. Lena escribe el punto de observación en el campo de método de cada hallazgo, para que los lectores sepan qué podía verse y qué no. En ABP, un monitor serie en la línea troncal RS-485 hacia el PLC-A da visibilidad del bus de campo, mientras que los registros propios del HMI muestran las acciones del operador. Los hallazgos basados solo en una de estas fuentes lo dicen, porque cada una puede pasar por alto lo que la otra ve.
11.2 Los puertos no son semántica
El TCP 502 suele significar Modbus TCP, pero el alcance relevante es qué códigos de función y qué rangos de registros puede usar cada estación. Un puerto 502 abierto es una información incompleta sin el estado de la lista de permitidos y las estaciones observadas. La función de permiso del capítulo 4 es la abstracción adecuada. Los hallazgos de Lena sobre puertos abiertos siempre añaden qué estaciones se vieron usando qué códigos de función, para que el lector sepa si el puerto importa. En ABP, la lista de permitidos establece que HMI-1 solo puede escribir los registros 40001 a 40010 y que el historiador solo puede leer. Un escaneo de puertos por sí solo no mostraría nada de eso.
11.3 Los rechazos son cobertura
Un cortafuegos que bloquea el tráfico de oficina a SCADA, o un monitor que descarta la función 16 de HIST-1, es evidencia de que un control funcionó frente a esa sonda. Los tableros de cobertura deben contar las comprobaciones planificadas que fueron rechazadas como comprobaciones completadas, no como intentos fallidos de entrar.
"""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}")
Salida 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. El tablero de cobertura del CNHP incluye «HIST-1 no puede escribir» como comprobación planificada. El BLOCK del laboratorio sobre la función 16 es un resultado verde para esa comprobación, no una prueba fallida en rojo.
El tablero de Lena muestra cada comprobación planificada con su resultado esperado.
11.4 Errores y límites
Los banners mienten; confirme con evidencia de nivel de aplicación o de tramas decodificadas. Los entornos del curso nunca escanean plantas en servicio. Lena trata el banner de un dispositivo como un indicio y confirma el producto a partir de la exportación del proyecto de ingeniería o de tramas decodificadas antes de registrarlo en el inventario. Los banners pueden quedar desactualizados tras una actualización de firmware o ser deliberadamente genéricos. El paso de confirmación también evita un error común en el que el banner de una pasarela se confunde con el del controlador que hay detrás. En el curso, todas estas comprobaciones se hacen sobre datos capturados o sintéticos, nunca sobre la red de una planta en servicio.
Nota práctica
Mantenga un inventario de protocolos de una página: línea troncal, velocidad en baudios, estaciones, códigos de función en uso, responsable de la lista de permitidos. Actualícelo cuando un proveedor añada una estación. La mayor parte del tráfico misterioso es un portátil de ingeniería no documentado.
11.1b Familias de protocolos en el permiso de trabajo
Los permisos de trabajo deben nombrar de forma explícita las familias de protocolos: Modbus TCP con los códigos de función 3/4/6 sobre los registros 40001-40010 es más claro que «puerto 502». Si los códigos de escritura están prohibidos desde las estaciones de evaluación, dígalo. Si solo se autorizan derivaciones de solo escucha, dígalo. La ambigüedad en este punto se convierte en una discusión durante la ventana, cuando alguien quiere probar una función de diagnóstico solo para ver qué pasa. Cuando el permiso nombra códigos de función, la lista de permitidos del monitor para esa ventana debe nombrar los mismos códigos, para que el permiso y la evidencia puedan compararse línea por línea.
En ABP, el permiso de Lena para la verificación serie indica solo escucha en la línea troncal RS-485 hacia el PLC-A, nombra las escrituras permitidas de HMI-1 y prohíbe los códigos de función de diagnóstico desde el portátil de evaluación. Durante la ventana W-17 se rechazó por exactamente esta razón la solicitud de un proveedor de probar un diagnóstico, que se evaluó más tarde con su propio permiso.
Ejercicios — capítulo 11
- EX031 — Punto de observación. Asocie tres tipos de evidencia con el punto de observación mínimo. Rúbrica: 3 = asociación correcta (p. ej., errores CRC de RTU con serie; FC de Modbus TCP con decodificación IP; atribución de un cambio de punto de consigna con registro del HMI o de la aplicación); 2 = dos; 1 = uno; 0 = nada.
- EX032 — Alcance. Reescriba «probar Modbus en el PLC-A» como una línea acotada de una ficha de método. Rúbrica: 3 = códigos, registros, estaciones, solo lectura, ventana; 2 = parcial; 1 = solo el puerto; 0 = nada.
- EX033 — Laboratorio. ¿Por qué se bloquea HMI-1 fc=6 reg=40050 mientras que 40003 pasa? Rúbrica: 3 = register-out-of-range frente a dentro de WRITE_REGS; 2 = un lado; 1 = vago; 0 = incorrecto.
Síntesis del capítulo
Acote los protocolos de TO por su semántica (códigos, registros, estaciones); celebre los rechazos que coinciden con el plan.
Siga estudiando — capítulo 11 de 50
← Capítulo 10 (borrador) · Índice de capítulos del curso · Capítulo 12 (borrador) →