Capítulo 28 — Infraestructura crítica y seguridad sectorial: análisis de fallas
Mapa de la lección
Lección 28 publicada. Mapa, ejemplo, EX056.
flowchart TD
N0["Resultados de aprendizaje y conexión"]
N1["28.1 Árboles de fallas"]
N2["28.2 FMEA"]
N3["28.4 Revisión posincidente sin culpables"]
N4["Síntesis del capítulo"]
N0 --> N1 --> N2 --> N3 --> N4
N4 --> EX["Ejemplo resuelto"]
EX --> Q["Ejercicio EX056"]
Dibujo lógico
flowchart LR
N0["Resultados de aprendizaje y conexión"]
N1["28.1 Árboles de fallas"]
N2["28.2 FMEA"]
N3["28.4 Revisión posincidente sin culpables"]
N4["Síntesis del capítulo"]
N0 --> N1 --> N2 --> N3 --> N4 --> Q["EX056"]
[Resultados de aprendizaje y conexión]
|
v
[28.1 Árboles de fallas]
|
v
[28.2 FMEA]
|
v
[28.4 Revisión posincidente sin culpables]
|
v
[Síntesis del capítulo]
|
v
[Ejemplo resuelto] --> [Ejercicio EX056]
Resultados de aprendizaje y conexión
Después de este capítulo usted podrá (1) construir un árbol de fallas sencillo con puertas AND y OR y calcular la probabilidad del evento superior bajo independencia; (2) realizar un análisis de modos de falla y sus efectos (FMEA) de un sistema pequeño; (3) añadir una ruta cibernética a un análisis de seguridad y ver cómo cambia el resultado; y (4) conducir una revisión posincidente sin culpables que busque las causas en el sistema. Se apoya en los capítulos 12, 21, 22 y 26 y prepara el capítulo 29 (operaciones) y el capítulo 31 (casos avanzados).
28.1 Árboles de fallas
Un árbol de fallas parte de un evento superior no deseado y lo descompone en causas conectadas por puertas. Una puerta AND significa que deben producirse todas las entradas; una puerta OR significa que basta con una cualquiera. Con eventos básicos independientes, AND multiplica las probabilidades y OR las combina como $1 - \prod (1 - p_i)$. Los árboles de fallas hacen explícitos los supuestos y muestran qué eventos básicos dominan. Tradicionalmente se construyen para fallas aleatorias; el análisis de seguridad añade rutas en las que un adversario puede hacer que un evento ocurra a propósito, y la «probabilidad» de un adversario no es una propiedad del hardware.
28.2 FMEA
El análisis de modos de falla y sus efectos trabaja de abajo arriba: para cada componente, enumere las formas en que puede fallar (no arranca, falla en posición abierta, da una lectura falsa), el efecto sobre el sistema, cómo se detectaría y los controles existentes; después, clasifique. El FMEA encuentra bien los problemas de un solo componente y mal las interacciones, por lo que se combina con STPA (capítulo 26) y con los árboles de fallas. El EX056 aplica el FMEA a la bomba dosificadora y al analizador de CW. Una fila para la bomba dosificadora de CW dice: componente, bomba dosificadora; modo, funciona al caudal máximo; efecto, sobrecloración en la salida; detección, alarma del analizador de residual en la salida; control existente, caudal máximo de la bomba cableado.
28.3 Ejemplo resuelto y Lab 11 (sintético)
Este caso es sintético. Evento superior en el CVH: «el hospital pierde la alimentación de calidad de red en las cargas críticas». Físicamente, esto requiere un corte de la red eléctrica AND una falla del respaldo (el generador no arranca OR el combustible está contaminado OR falla el conmutador de transferencia automática). Por otra parte, el BMS del hospital puede dar órdenes al cuadro de suministro esencial; un compromiso del BMS podría desconectar cargas críticas con independencia de la red.
# Lab 11 - a small fault tree for "hospital loses mains-quality power" (synthetic annual probabilities)
P = {"grid": 0.05, "gen_fails_start": 0.02, "fuel_contaminated": 0.005, "ats_fails": 0.01, "cyber_bms": 0.002}
# top = grid AND (backup fails); backup fails = gen_fails_start OR fuel_contaminated OR ats_fails
# separately: a compromised building-management system can shed critical loads whatever the grid state
backup_fails = 1 - (1 - P["gen_fails_start"]) * (1 - P["fuel_contaminated"]) * (1 - P["ats_fails"])
top_physical = P["grid"] * backup_fails
top = 1 - (1 - top_physical) * (1 - P["cyber_bms"])
print(f"P(backup fails on demand) = {backup_fails:.5f}")
print(f"P(top) physical only = {top_physical:.6f}")
print(f"P(top) with BMS path = {top:.6f}")
print(f"share from cyber path ~ {P['cyber_bms'] / top:.0%}")
Salida esperada:
P(backup fails on demand) = 0.03465
P(top) physical only = 0.001733
P(top) with BMS path = 0.003729
share from cyber path ~ 54%
Con estos números sintéticos, el diseño físico es bueno: se necesitan dos fallas independientes. La ruta cibernética es un único evento que elude la puerta AND y aproximadamente duplica la probabilidad del evento superior. La cuestión de fondo no depende de la estimación de 0,002: un atacante no falla al azar, de modo que una ruta que solo necesita un «evento» bajo el control del adversario puede dominar sea cual sea el número que usted escriba. La respuesta de ingeniería es restablecer la estructura AND (hacer imposible desconectar las cargas críticas desde el BMS mediante un bloqueo cableado, o limitar el control del BMS a los cuadros no críticos) en lugar de limitarse a reducir la probabilidad estimada.
28.4 Revisión posincidente sin culpables
Cuando se producen fallas, una revisión sin culpables pregunta cómo permitió el sistema que la acción de una persona razonable causara daño, no a quién castigar. El modelo de accidentes organizacionales de Reason describe las defensas como capas con agujeros que de vez en cuando se alinean (Reason, 2000). Pregunte: ¿qué sabían las personas en ese momento?; ¿qué hizo que su acción pareciera correcta?; ¿qué defensas faltaban o se eludieron?; ¿qué cambiaremos en el sistema? La culpa reprime la notificación, y los casi accidentes no notificados son evidencia perdida. En el caso del Lab 11, una revisión sin culpables de un evento de pérdida de alimentación preguntaría por qué el BMS podía siquiera desconectar cargas críticas.
28.5 Errores comunes y límites
- Multiplicar probabilidades de eventos con causas comunes (capítulo 12).
- Tratar las acciones del adversario como fallas aleatorias.
- FMEA sin interacciones; árboles de fallas sin el factor humano.
- Revisiones que terminan en «error humano» y una nueva formación.
El Lab 11 supone la independencia entre la falla del generador y la contaminación del combustible; el EX024 muestra cómo un depósito de combustible compartido rompe esa independencia. La ruta del BMS es el segundo error hecho explícito: 0,002 no es una propiedad del BMS. El tercero aparece si un FMEA del generador ignora al operador que debe arrancarlo manualmente. Una revisión que termina en «error del ingeniero de mantenimiento; volver a formarlo» es el cuarto.
Ejercicios — capítulo 28
EX055 — Restablezca la puerta AND. Objetivo: ver el efecto de una corrección de ingeniería. Entradas: el Lab 11. Pasos: modele una corrección en la que el BMS solo pueda desconectar cargas críticas si también hay un corte de la red (es decir, la ruta cibernética se incorpora a la puerta AND de la red como una causa más de falla del respaldo). Calcule la nueva probabilidad del evento superior. Evidencia esperada: código modificado y valor. Rúbrica: 3 = falla del respaldo = 1−(0,98)(0,995)(0,99)(0,998) ≈ 0,03658, evento superior ≈ 0,001829, con el comentario de que la ruta cibernética necesita ahora un corte de la red coincidente; 2 = enfoque correcto, error aritmético; 1 = estructura sin cambios; 0 = nada.
EX056 — Filas de FMEA. Objetivo: aplicar el análisis de abajo arriba. Entradas: la bomba dosificadora de cloro de CW y su analizador de residual. Pasos: escriba cuatro filas de FMEA (componente, modo de falla, efecto, detección, control existente). Evidencia esperada: tabla. Rúbrica: 3 = modos realistas (la bomba funciona al máximo, la bomba se detiene, el analizador lee bajo, el analizador está congelado) con efectos sobre la seguridad del agua y detecciones creíbles; 2 = tres; 1 = vago; 0 = nada.
Síntesis del capítulo
Los árboles de fallas y el FMEA hacen explícitos los supuestos sobre las fallas, de arriba abajo y de abajo arriba. Añadir rutas cibernéticas revela eventos únicos que eluden la redundancia diseñada; la respuesta más sólida restablece la independencia estructural en lugar de ajustar una estimación. Cuando se producen fallas, revise el sistema, no a la persona.
Siga estudiando — capítulo 28 de 40
← Capítulo 27 · Índice de capítulos del curso · Capítulo 29 →
Continúe con la siguiente lección escrita.