Mapa de la lección
Lección 12 publicada. Mapa, ejemplo, EX034.
flowchart TD
N0["Resultados de aprendizaje"]
N1["12.1 La matriz de flujos"]
N2["12.2 Flujos no aprobados"]
N3["12.3 Aprobados pero sin uso"]
N4["12.4 De la comparación al cambio"]
N5["Síntesis del capítulo"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5
N5 --> EX["Ejemplo resuelto"]
EX --> Q["Ejercicio EX034"]
Dibujo lógico
flowchart LR
N0["Resultados de aprendizaje"]
N1["12.1 La matriz de flujos"]
N2["12.2 Flujos no aprobados"]
N3["12.3 Aprobados pero sin uso"]
N4["12.4 De la comparación al cambio"]
N5["Síntesis del capítulo"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> Q["EX034"]
[Resultados de aprendizaje]
|
v
[12.1 La matriz de flujos]
|
v
[12.2 Flujos no aprobados]
|
v
[12.3 Aprobados pero sin uso]
|
v
[12.4 De la comparación al cambio]
|
v
[Síntesis del capítulo]
|
v
[Ejemplo resuelto] --> [Ejercicio EX034]
Resultados de aprendizaje
Usted será capaz de (1) redactar una matriz de flujos aprobados; (2) comparar con ella los flujos observados; (3) interpretar los flujos no aprobados y los aprobados que no se usan; y (4) convertir la comparación en cambios del cortafuegos.
12.1 La matriz de flujos
Una matriz de flujos enumera cada conversación permitida: origen, destino, puerto y propósito. Es la tabla de conductos del capítulo 8 hecha lo bastante precisa como para ponerla a prueba. NCS tiene cuatro flujos aprobados: HMI-C hacia cada PLC por Modbus/TCP 502, el historiador consultando a PLC-R1 y GW-LOG hacia la nube del proveedor por 443.
"""Lab 12: compare observed synthetic flows with the approved flow matrix."""
approved = {("HMI-C", "PLC-R1", 502), ("HMI-C", "PLC-R2", 502), ("GW-LOG", "CLOUD-LOG", 443), ("HIST", "PLC-R1", 502)}
observed = [("HMI-C", "PLC-R1", 502), ("GW-LOG", "CLOUD-LOG", 443), ("OFFICE-7", "PLC-R2", 502),
("HIST", "PLC-R1", 502), ("GW-LOG", "PLC-R1", 502)]
for f in observed:
print(f"{f[0]:8} -> {f[1]:9} :{f[2]:<4} {'approved' if f in approved else 'UNAPPROVED'}")
print("approved but not seen:", sorted(approved - set(observed)))
Ejecútelo con python3 lab_flows.py. Salida verificada:
HMI-C -> PLC-R1 :502 approved
GW-LOG -> CLOUD-LOG :443 approved
OFFICE-7 -> PLC-R2 :502 UNAPPROVED
HIST -> PLC-R1 :502 approved
GW-LOG -> PLC-R1 :502 UNAPPROVED
approved but not seen: [('HMI-C', 'PLC-R2', 502)]
El laboratorio compara esos cuatro flujos aprobados con cinco conversaciones observadas. Las dos filas no aprobadas, OFFICE-7 comunicándose con PLC-R2 y GW-LOG llegando a PLC-R1, son las que hay que investigar primero, mientras que el flujo HMI-C hacia PLC-R2 que no se vio puede simplemente no haberse producido durante la captura. El capítulo 27 muestra más adelante que a la lista le faltaba la consulta del historiador a PLC-R2, un flujo aprobado que nadie había anotado.
12.2 Flujos no aprobados
Que OFFICE-7 hable Modbus con PLC-R2 es exactamente lo que permitía la regla 9. Podría ser la macro de una hoja de cálculo de un ingeniero, o software malicioso. En cualquier caso, es un camino desde la oficina hasta un controlador de compresores. Que GW-LOG hable con PLC-R1 es más extraño: la pasarela de los registradores no tiene ningún motivo para hablar Modbus. Podría ser una función de «integración» del proveedor o un indicio de compromiso. Priya rastreó ambos. OFFICE-7 ejecutaba una macro de informe energético que leía las horas de funcionamiento de los compresores en PLC-R2; el proveedor de los registradores confirmó en GW-LOG una función de «integración con PLC» no utilizada y activada por defecto, que se desactivó.
12.3 Aprobados pero sin uso
HMI-C → PLC-R2 no apareció. Quizá la ventana fue corta; quizá la HMI lee PLC-R2 a través de PLC-R1. Las aprobaciones sin uso son candidatas a eliminarse tras consultarlo con operaciones: menos caminos abiertos, menos que defender. El capítulo 27 muestra el riesgo de leer esto demasiado deprisa. La ventana de observación tampoco captó al historiador consultando a PLC-R2, así que la matriz de flujos solo recogía HIST → PLC-R1. Cuando el nuevo conjunto de reglas entró en servicio, HIST dejó de recibir etiquetas de PLC-R2 en cuatro minutos y Priya revirtió el cambio. Un flujo aprobado pero no visto es una pregunta para operaciones y los proveedores, no una prueba de que el flujo no se use.
12.4 De la comparación al cambio
Cada flujo no aprobado recibe un responsable y una decisión: aprobarlo con justificación (y actualizar la matriz) o bloquearlo. El bloqueo se hace en una ventana planificada y con operaciones informada, porque un flujo «misterioso» puede resultar ser algo que la planta necesita. Las dos decisiones de Priya: la macro energética de OFFICE-7 pasó a leer las horas de funcionamiento en la réplica del historiador en la DMZ, y el tráfico oficina → control se bloqueó en la ventana de mantenimiento del 20 de marzo, después del cambio; la función de «integración con PLC» de GW-LOG se desactivó con el acuerdo del proveedor de los registradores, y el flujo desapareció sin ningún cambio en el cortafuegos.
Ejemplo resuelto (NCS sintética)
Priya pregunta en la oficina: OFFICE-7 ejecuta una macro de informe energético que lee directamente en PLC-R2 las horas de funcionamiento de los compresores. Propone leer los mismos valores en la réplica del historiador en la DMZ y después bloquear oficina → control. Para GW-LOG → PLC-R1 contacta con el proveedor de los registradores, que confirma una función de «integración con PLC» no utilizada y activada por defecto; se desactiva y el flujo desaparece.
Caso sintético — Northgate Cold Storage. Los flujos y las explicaciones son inventados.
Errores y límites
Las ventanas de observación no captan flujos mensuales o estacionales, como los programas de desescarche o los informes de fin de mes. Los puertos no prueban el protocolo; un flujo en el 502 puede no ser Modbus.
Ejercicios — capítulo 12
- EX034 — Clasificar una observación nueva. Añada
("HMI-C", "PLC-R2", 502)aobserved. ¿Qué cambia en la salida?Mostrar criterios de evaluación
Rúbrica: 3 = se imprimeapprovedy la lista de no vistos queda vacía; 2 = un efecto; 1 =UNAPPROVED; 0 = nada. - EX035 — Decisión para OFFICE-7. Redacte el registro de decisión del flujo de OFFICE-7.
Mostrar criterios de evaluación
Rúbrica: 3 = causa, camino sustitutivo a través de la DMZ, fecha del bloqueo, responsable; 2 = tres; 1 = «bloquearlo»; 0 = nada. - EX036 — Por qué GW-LOG → PLC-R1 es sospechoso. Explíquelo en dos frases.
Mostrar criterios de evaluación
Rúbrica: 3 = no hay necesidad de negocio de que la pasarela de los registradores hable Modbus; conecta una zona expuesta a internet con el control; 2 = una; 1 = vago; 0 = nada.
Síntesis del capítulo
Comparar los flujos observados con una matriz aprobada encuentra los caminos que nadie pretendía, y cada uno termina en una decisión con responsable.
Siga estudiando — capítulo 12 de 30
← Capítulo 11 (borrador) · Índice de capítulos del curso · Capítulo 13 (borrador) →