Capítulo 23 — Infraestructura crítica y seguridad sectorial: análisis de amenazas y fallas
Mapa de la lección
Lección 23 publicada. Mapa, ejemplo, EX045.
flowchart TD
N0["Resultados de aprendizaje y conexión"]
N1["23.1 Modelado de amenazas"]
N2["23.2 Árboles de fallas"]
N3["23.3 Árboles de ataque y diagramas de pajarita"]
N4["23.4 Combinar fallas y ataques"]
N5["23.6 Actividad práctica: Lab 9"]
N6["Síntesis del capítulo"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6
N6 --> EX["Ejemplo resuelto"]
EX --> Q["Ejercicio EX045"]
Dibujo lógico
flowchart LR
N0["Resultados de aprendizaje y conexión"]
N1["23.1 Modelado de amenazas"]
N2["23.2 Árboles de fallas"]
N3["23.3 Árboles de ataque y diagramas de pajarita"]
N4["23.4 Combinar fallas y ataques"]
N5["23.6 Actividad práctica: Lab 9"]
N6["Síntesis del capítulo"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> Q["EX045"]
[Resultados de aprendizaje y conexión]
|
v
[23.1 Modelado de amenazas]
|
v
[23.2 Árboles de fallas]
|
v
[23.3 Árboles de ataque y diagramas de pajarita]
|
v
[23.4 Combinar fallas y ataques]
|
v
[23.6 Actividad práctica: Lab 9]
|
v
[Síntesis del capítulo]
|
v
[Ejemplo resuelto] --> [Ejercicio EX045]
Resultados de aprendizaje y conexión
Al terminar este capítulo, usted podrá (1) modelar amenazas sobre diagramas de flujo de datos con STRIDE y ATT&CK for ICS; (2) construir árboles de fallas y calcular los conjuntos de corte mínimos y la probabilidad del evento superior; (3) combinar el análisis de fallas y de ataques mediante árboles de ataque, diagramas de pajarita (bow-tie) y escenarios guiados por las consecuencias; y (4) enunciar los supuestos y los límites de cada método. Usa los capítulos 7 y 22 y prepara los capítulos 24, 27 y 33.
23.1 Modelado de amenazas
El modelado de amenazas pregunta de forma sistemática qué puede salir mal en cada elemento y en cada frontera de confianza de un modelo del sistema. STRIDE (suplantación, manipulación, repudio, divulgación de información, denegación de servicio, elevación de privilegios) es un recurso mnemotécnico para las categorías de amenazas que se aplica a cada flujo de datos, proceso y almacén. MITRE ATT&CK for ICS cataloga las tácticas y técnicas de los adversarios observadas contra sistemas industriales, desde el acceso inicial hasta el impacto (por ejemplo, la manipulación del control o la pérdida de la vista). Use STRIDE para generar amenazas candidatas elemento por elemento y ATT&CK para comprobar su realismo y su exhaustividad frente al comportamiento observado.
23.2 Árboles de fallas
Un árbol de fallas descompone un evento superior no deseado en combinaciones de eventos básicos mediante puertas Y y O. Un conjunto de corte mínimo es un conjunto mínimo de eventos básicos cuya ocurrencia conjunta provoca el evento superior; la lista de conjuntos de corte mínimos es la lógica de falla del sistema en su forma más simple. Los conjuntos de corte de un solo evento son puntos únicos de falla. Con probabilidades independientes de los eventos básicos, la probabilidad del evento superior se calcula exactamente por enumeración en los árboles pequeños, o de forma aproximada sumando las probabilidades de los conjuntos de corte (la aproximación de eventos raros, una cota superior cuando las probabilidades son pequeñas).
23.3 Árboles de ataque y diagramas de pajarita
Un árbol de ataque aplica la misma estructura Y/O al objetivo de un adversario; las hojas son acciones del atacante con atributos como el costo, la habilidad o la detectabilidad, en lugar de probabilidades. Asignar probabilidades a los ataques deliberados es cuestionable (los adversarios se adaptan), así que los árboles de ataque suelen usarse para encontrar el camino más barato o menos detectable y colocar después controles en él. Un diagrama de pajarita une las causas (izquierda), el evento central y las consecuencias (derecha), y muestra las barreras preventivas antes del evento y las barreras de mitigación después; comunica bien con operadores y directivos.
23.4 Combinar fallas y ataques
Los eventos de infraestructura mezclan causas accidentales y deliberadas: un atacante puede esperar a una tormenta, o una falla puede enmascarar una intrusión. Los métodos guiados por las consecuencias, como la CCE del INL, parten de la consecuencia inaceptable y preguntan qué combinaciones de fallas y acciones del adversario llegan a ella. Un enfoque práctico: construya el árbol de fallas de la consecuencia; marque qué eventos básicos podría provocar deliberadamente un adversario; vuelva a calcular con esos eventos fijados como «ocurridos» para ver qué queda como protección. Lo que queda es su verdadera defensa frente a un adversario capaz.
23.5 Ejemplo resuelto: pérdida del suministro al hospital (sintético)
Evento superior: St Brenna's pierde el suministro durante más de 4 h en un año. Siguiendo el modelo del capítulo 22: el camino A (PS4) se pierde si falla PS4, o si fallan a la vez el alimentador F2 y el generador de PS4; el camino B se pierde si el depósito no está disponible, si falla PS3 o si falla el alimentador F1; y el evento exige que se pierdan ambos caminos y que el tanque del hospital no logre cubrir el hueco (TANK). El Lab 9 enumera el árbol con probabilidades anuales sintéticas. Hay seis conjuntos de corte mínimos, todos de orden tres o cuatro, porque TANK aparece en todos. El mayor contribuyente es {G1, PS4, TANK}. La probabilidad exacta es de 9,10 × 10⁻⁵ por año; la aproximación de eventos raros da 9,36 × 10⁻⁵.
Ahora, la visión adversarial: si un atacante puede detener a distancia PS3 y PS4 (sin R1), ambos pasan a «ocurridos» y el evento superior se reduce a TANK por sí solo, con probabilidad 0,03. La autenticación de las órdenes remotas lleva el sistema de un problema de dos de tres fallas independientes a un problema de punto único de falla. Esa comparación es el argumento más claro a favor de R1 en todo el expediente.
23.6 Actividad práctica: Lab 9
# Lab 9 - fault tree: minimal cut sets and top-event probability (synthetic annual probabilities, offline)
from itertools import product
P = {"G1": 0.10, "G2": 0.08, "GEN": 0.05, "PS4": 0.02, "PS3": 0.02, "RES": 0.01, "TANK": 0.03}
# Top: hospital loses supply > 4 h = (feed A lost AND feed B lost)
# feed A (PS4 direct) lost = PS4 OR (G2 AND GEN); feed B (reservoir) lost = RES OR PS3 OR G1
# hospital on-site tank TANK failing (empty/contaminated) is needed too: top = A AND B AND TANK
def top(s): A = s["PS4"] or (s["G2"] and s["GEN"]); B = s["RES"] or s["PS3"] or s["G1"]; return A and B and s["TANK"]
names = list(P); exact = 0.0; cuts = []
for bits in product([0, 1], repeat=len(names)):
s = dict(zip(names, bits)); pr = 1.0
for n in names: pr *= P[n] if s[n] else 1 - P[n]
if top(s):
exact += pr
on = frozenset(n for n in names if s[n])
cuts.append(on)
mcs = sorted({c for c in cuts if not any(o < c for o in cuts)}, key=lambda c: (len(c), sorted(c)))
for c in mcs:
pr = 1.0
for n in c: pr *= P[n]
print(sorted(c), f"{pr:.2e}")
rare = sum(eval("*".join(str(P[n]) for n in c)) for c in mcs)
print(f"rare-event approx {rare:.3e} exact {exact:.3e}")
Salida esperada:
['G1', 'PS4', 'TANK'] 6.00e-05
['PS3', 'PS4', 'TANK'] 1.20e-05
['PS4', 'RES', 'TANK'] 6.00e-06
['G1', 'G2', 'GEN', 'TANK'] 1.20e-05
['G2', 'GEN', 'PS3', 'TANK'] 2.40e-06
['G2', 'GEN', 'RES', 'TANK'] 1.20e-06
rare-event approx 9.360e-05 exact 9.101e-05
Los seis conjuntos de corte contienen TANK, de modo que el almacenamiento propio del hospital aparece en todos los caminos hacia el evento superior. El mayor contribuyente individual combina el alimentador F1, PS4 y el tanque. Las dos cifras de probabilidad difieren ligeramente porque la aproximación de eventos raros cuenta dos veces los conjuntos de corte que se solapan, y por eso da una pequeña cota superior del valor exacto. La lectura adversarial del ejemplo resuelto se obtiene fijando PS3 y PS4 como falla segura y volviendo a ejecutar, lo que el EX045 le pide hacer a usted.
23.7 Errores comunes y límites
- Árboles de fallas con eventos básicos dependientes tratados como independientes (energía común, software común).
- Probabilidades de ataques deliberados presentadas como frecuencias.
- Modelos de amenazas sin fronteras de confianza.
- Listas STRIDE nunca contrastadas con el comportamiento observado de los adversarios.
- Tratar la aproximación de eventos raros como exacta cuando las probabilidades son grandes.
El propio Lab 9 supone independencia, así que una falla de software compartida en las RTU de ambas estaciones haría optimistas sus cifras. Sus probabilidades de falla de PS3 y PS4 son frecuencias de fallas aleatorias, de modo que no dicen nada sobre la probabilidad de que un atacante detenga ambas estaciones; por eso el caso adversarial se trata condicionando y no añadiendo una probabilidad de ataque.
Ejercicios — capítulo 23
EX045 — Árbol condicionado al adversario. Objetivo: cuantificar lo que aporta la autenticación. Entradas: Lab 9. Pasos: (1) fije PS3 y PS4 con probabilidad 1 (el atacante puede detenerlas a distancia) y calcule la probabilidad del evento superior; (2) en su lugar, fije G1 y G2 en 1 (el atacante puede cortar ambos alimentadores) y vuelva a calcular; (3) interprete ambos resultados. Evidencia esperada: números e interpretación de 150 palabras. Rúbrica: 3 = números correctos (0,03; y con G1=G2=1, superior = P(TANK)·P(PS4 o GEN), calcúlelo), interpretación vinculada a los controles (R1; independencia del generador y tanque); 2 = un número erróneo; 1 = no ejecutado; 0 = nada.
EX046 — STRIDE sobre un flujo. Objetivo: modelar las amenazas de un flujo de datos. Entradas: el flujo pasarela–SCADA (tramas del Lab 8 sobre el conducto LTE). Pasos: aplique cada categoría de STRIDE, nombre una técnica de ATT&CK for ICS donde encaje e indique el control existente o propuesto. Evidencia esperada: tabla de seis filas. Rúbrica: 3 = las seis categorías tienen sentido y los controles corresponden (p. ej., suplantación → MAC; DoS → recurso al automático local); 2 = una categoría vacía; 1 = solo una lista; 0 = nada.
Síntesis del capítulo
Los modelos de amenazas generan lo que podría salir mal en cada frontera de confianza; ATT&CK los mantiene realistas. Los árboles de fallas y los conjuntos de corte mínimos muestran la lógica de falla y los puntos únicos de falla; los árboles de ataque y los diagramas de pajarita muestran los caminos del adversario y las barreras. Combínelos condicionando a lo que un adversario puede provocar: lo que queda es la defensa que realmente importa.
Siga estudiando — capítulo 23 de 50
← Capítulo 22 · Índice de capítulos del curso · Capítulo 24 →
Continúe con la siguiente lección escrita.