◇ OpenCyber Academy
Ingeniería · Capítulo 2 · Español

Capítulo 2 — Matemáticas discretas

Aprendizaje gratuito y abierto para quienes desean proteger a las personas y la tecnología. No se necesita una cuenta para estudiar ni consultar las respuestas.

Capítulo 2 — Matemáticas discretas

Mapa de la lección

Lección 02 publicada. Mapa, ejemplo, EX004.

flowchart TD
  N0["Resultados de aprendizaje"]
  N1["2.1 Grafos de conductos"]
  N2["2.2 Alcanzabilidad"]
  N3["2.3 Demostración de monotonía"]
  N4["Síntesis del capítulo"]
  N0 --> N1 --> N2 --> N3 --> N4
  N4 --> EX["Ejemplo resuelto"]
  EX --> Q["Ejercicio EX004"]

Dibujo lógico

flowchart LR
  N0["Resultados de aprendizaje"]
  N1["2.1 Grafos de conductos"]
  N2["2.2 Alcanzabilidad"]
  N3["2.3 Demostración de monotonía"]
  N4["Síntesis del capítulo"]
  N0 --> N1 --> N2 --> N3 --> N4 --> Q["EX004"]
[Resultados de aprendizaje]
    |
    v
[2.1 Grafos de conductos]
    |
    v
[2.2 Alcanzabilidad]
    |
    v
[2.3 Demostración de monotonía]
    |
    v
[Síntesis del capítulo]
    |
    v
[Ejemplo resuelto] --> [Ejercicio EX004]

Resultados de aprendizaje

Usted podrá (1) representar una red de TO como un grafo dirigido; (2) calcular la alcanzabilidad entre niveles de Purdue; (3) demostrar que eliminar una arista no puede añadir un camino.

2.1 Grafos de conductos

En el vocabulario de ISA/IEC 62443, las zonas son grupos de activos con requisitos de seguridad comunes y los conductos son los caminos de comunicación permitidos entre ellas. Un grafo dirigido lo modela con exactitud: los nodos son zonas (L4 oficina, L3.5 DMZ, L3 historiador, L2 SCADA, L1 PLC, L1 SIS, L0 E/S) y una arista a→b significa que a puede iniciar tráfico hacia b. La pregunta «¿puede la red de oficina escribir en el sistema de seguridad?» se convierte en «¿es L1-SIS alcanzable desde L4?».

Lena construye el grafo de ABP a partir de la exportación del cortafuegos, no del diagrama de red, porque la exportación es lo que realmente se aplica.

2.2 Alcanzabilidad

La búsqueda en profundidad calcula el conjunto de nodos alcanzables desde un nodo inicial en un tiempo proporcional a los nodos más las aristas. La alcanzabilidad es transitiva: si L4→L3, L3→L2 y L2→L1-SIS, entonces L4 alcanza el SIS aunque no haya ninguna regla directa. Las revisiones de cortafuegos que comprueban las reglas una por una pasan por alto justamente esta composición, y por eso los ingenieros calculan el cierre en lugar de leer listas de reglas. Lena ejecuta la búsqueda desde cada zona, no solo desde la oficina, y guarda el resultado como una tabla con la que la siguiente revisión pueda compararse.

2.3 Demostración de monotonía

Afirmación: eliminar una arista nunca agranda un conjunto alcanzable. Demostración: cualquier camino del grafo menor usa solo aristas que también existen en el grafo mayor, de modo que todo nodo alcanzable tras la eliminación ya era alcanzable antes. De ahí se sigue la regla práctica: las eliminaciones de reglas pueden aprobarse con rapidez; las adiciones requieren análisis, porque pueden crear nuevos caminos transitivos.

# Lab 23 - reachability count on a synthetic Purdue-layered OT network
# Nodes: L5-ERP, L4-Office, L3.5-DMZ, L3-Hist, L2-SCADA, L1-PLC, L1-SIS, L0-IO
edges_flat=[("L5","L4"),("L4","L3"),("L3","L2"),("L2","L1-PLC"),("L2","L1-SIS"),("L1-PLC","L0"),("L1-SIS","L0"),("L4","L2")]
edges_zoned=[("L5","L4"),("L4","L3.5"),("L3.5","L3"),("L3","L2"),("L2","L1-PLC"),("L1-SIS","L0"),("L1-PLC","L0")]  # SIS not reachable from SCADA
def reach(edges, start):
    g={};
    for a,b in edges: g.setdefault(a,[]).append(b)
    seen=set(); stack=[start]
    while stack:
        n=stack.pop()
        if n in seen: continue
        seen.add(n); stack.extend(g.get(n,[]))
    return seen
for name,e in (("flat",edges_flat),("zoned",edges_zoned)):
    r=reach(e,"L4")
    print(f"{name}: L4 reaches {sorted(r)} count={len(r)} writes_to_SIS={'L1-SIS' in r}")

Salida esperada:

flat: L4 reaches ['L0', 'L1-PLC', 'L1-SIS', 'L2', 'L3', 'L4'] count=6 writes_to_SIS=True
zoned: L4 reaches ['L0', 'L1-PLC', 'L2', 'L3', 'L3.5', 'L4'] count=6 writes_to_SIS=False

Caso sintético — Ashford Batch Plant. La red original de ABP tenía una regla de conveniencia L4→L2 para ver el HMI a distancia. El laboratorio de alcanzabilidad muestra que, en el diseño plano, la zona de oficina alcanza L1-SIS; en el diseño por zonas, con una DMZ y sin conducto SCADA→SIS, no lo alcanza.

2.4 Errores y límites

Los grafos modelan el inicio permitido, no el tráfico real ni las vulnerabilidades. Los protocolos bidireccionales y las herramientas de acceso remoto pueden crear aristas inversas ocultas; inventaríelas de forma explícita. Lena añade una herramienta de acceso remoto usada por un proveedor como arista explícita desde fuera de la planta hacia L2, ya que sus sesiones se inician hacia fuera pero transportan órdenes hacia dentro. Sin esa arista, el grafo mostraría la oficina aislada de SCADA mientras una sesión de soporte todavía podría alcanzarlo. Cada una de estas aristas figura con su responsable y el registro que la justifica, y el grafo se reconstruye tras cualquier cambio en las herramientas de acceso remoto o en los contratos con proveedores.

Ejercicios — capítulo 2

Síntesis del capítulo

Las zonas y los conductos son un grafo; la alcanzabilidad, y no la lectura regla por regla, responde quién puede tocar el sistema de seguridad.

Siga estudiando — capítulo 02 de 50

← Capítulo 01 (borrador) · Índice de capítulos del curso · Capítulo 03 (borrador) →