Capítulo 1 — Arquitectura informática y del servicio
Mapa de la lección
Lección 01 publicada. Mapa, ejemplo, EX001.
flowchart TD
N0["Resultados de aprendizaje y conexión"]
N1["1.1 Las capas de un servicio de control supervisor"]
N2["1.2 Tres rutas, tres problemas de protección"]
N3["1.3 Sondeo y frescura"]
N4["1.4 Plataformas compartidas"]
N5["1.6 Actividad práctica: dibuje su propio diagrama de"]
N6["Síntesis del capítulo"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6
N6 --> EX["Ejemplo resuelto"]
EX --> Q["Ejercicio EX001"]
Dibujo lógico
flowchart LR
N0["Resultados de aprendizaje y conexión"]
N1["1.1 Las capas de un servicio de control supervisor"]
N2["1.2 Tres rutas, tres problemas de protección"]
N3["1.3 Sondeo y frescura"]
N4["1.4 Plataformas compartidas"]
N5["1.6 Actividad práctica: dibuje su propio diagrama de"]
N6["Síntesis del capítulo"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> Q["EX001"]
[Resultados de aprendizaje y conexión]
|
v
[1.1 Las capas de un servicio de control supervisor]
|
v
[1.2 Tres rutas, tres problemas de protección]
|
v
[1.3 Sondeo y frescura]
|
v
[1.4 Plataformas compartidas]
|
v
[1.6 Actividad práctica: dibuje su propio diagrama de]
|
v
[Síntesis del capítulo]
|
v
[Ejemplo resuelto] --> [Ejercicio EX001]
Resultados de aprendizaje y conexión
Al terminar este capítulo debería ser capaz de:
- dibujar la arquitectura técnica de un servicio de control supervisor (dispositivos de campo, enlaces de comunicación, procesadores de comunicaciones y servidores SCADA, historiador, HMI, estación de ingeniería, plano de gestión) e indicar qué hace cada componente;
- distinguir la ruta de control, la ruta de supervisión y la ruta de gestión, y explicar por qué un técnico protege cada una de forma distinta;
- calcular un presupuesto del ciclo de sondeo y usarlo para predecir qué efecto tiene un enlace lento o caído sobre la frescura de los datos del operador;
- identificar los componentes compartidos de la plataforma (servidores de virtualización, directorio, hora, almacenamiento) cuyo fallo atraviesa las fronteras entre servicios.
Este es el primer capítulo de un curso práctico. Todo lo posterior (decodificación de protocolos, bastionado, detección, diagnóstico de averías) supone que usted puede señalar una caja del diagrama y decir qué tráfico envía, qué almacena y qué se rompe si se detiene. Se dan por sabidos los conocimientos de entrada (redes, sistemas operativos, scripts); el elemento nuevo es el proceso físico que hay al otro extremo del cable.
1.1 Las capas de un servicio de control supervisor
La mayoría de los servicios de sectores críticos que mueven agua, electricidad, aire o personas comparten una forma en capas reconocible. La guía del NIST sobre tecnología operacional describe los mismos componentes en términos generales (SP 800-82 Rev. 3); los nombres siguientes son los que usa este libro.
- Dispositivos de campo: sensores (nivel, caudal, cloro, presión, temperatura, corriente), actuadores (bombas, válvulas, interruptores) y los controladores que los conectan: PLC (controladores lógicos programables) que ejecutan la lógica local y RTU (unidades terminales remotas) diseñadas para emplazamientos remotos con comunicaciones limitadas.
- Enlaces de comunicación: fibra, radio con licencia, routers celulares, líneas dedicadas o la red MPLS de un operador. Su latencia, sus pérdidas y su coste condicionan todo lo que hay por encima.
- Procesador de comunicaciones (FEP) o servidor SCADA: sondea los dispositivos de campo, aplica escalados y alarmas y mantiene el estado actual del proceso.
- Historiador: almacena series temporales para informes, investigaciones y registros reglamentarios.
- HMI (interfaz hombre-máquina): las pantallas del operador, desde las que se emiten órdenes como «arrancar la bomba 2».
- Estación de ingeniería: guarda los proyectos de los controladores y las herramientas del fabricante que cambian su lógica; es el ordenador más poderoso de todo el sistema.
- Plano de gestión: servidores de salto, servicios de directorio, servidores de hora, copias de seguridad, gestión de la virtualización y el colector de supervisión.
1.2 Tres rutas, tres problemas de protección
Un técnico debe ser capaz de trazar tres rutas distintas en el diagrama. La ruta de control lleva las órdenes al proceso: HMI → servidor SCADA → enlace → controlador → actuador. La integridad y la disponibilidad de esta ruta son lo que mantiene a salvo a las personas; una escritura no autorizada o corrompida en ella es el peor caso de este libro. La ruta de supervisión trae de vuelta las mediciones: sensor → controlador → enlace → servidor SCADA → historiador y HMI. Si es errónea, los operadores actúan sobre información falsa, un fallo que puede ser tan peligroso como una orden incorrecta y más difícil de advertir.
La ruta de gestión cambia el propio sistema: un ingeniero que descarga lógica nueva, un administrador que aplica parches al historiador, un proveedor que se conecta para diagnosticar una avería. Se usa poco, pero concentra los mayores privilegios, y es por donde, según los informes, ha comenzado la mayoría de las intrusiones reales en entornos de control; la alerta de CISA sobre los ataques de diciembre de 2015 contra empresas de distribución ucranianas describe el acceso remoto y el uso de credenciales que precedieron al impacto operativo (CISA IR-ALERT-H-16-056-01).
Las tres rutas comparten a menudo cables, conmutadores y servidores. Dibujarlas por separado es la manera de descubrir que un portátil «de supervisión» conectado al conmutador del centro de control también puede alcanzar los puertos de programación de los controladores.
1.3 Sondeo y frescura
La mayoría de los protocolos de estación de este libro son de petición-respuesta: el servidor SCADA pregunta y el dispositivo contesta. El tiempo necesario para refrescar una vez cada estación es el ciclo de sondeo. Para cada estación es aproximadamente sondeos por ciclo × (tiempo de ida y vuelta del enlace + tiempo de respuesta del dispositivo). Si el servidor sondea las estaciones una tras otra por un único canal, el ciclo es la suma de las estaciones; si dispone de un canal independiente por estación, el ciclo lo fija la estación más lenta.
Para el trabajo de seguridad importan dos consecuencias. Primera: un enlace lento (un router celular congestionado, un trayecto de radio degradado) alarga el ciclo de todas las estaciones sondeadas después. Segunda: un dispositivo que no responde cuesta el tiempo de espera completo en cada sondeo, de modo que una estación caída puede alargar el ciclo más que una lenta. Los requisitos de frescura («cada estación refrescada al menos cada 5 s») dependen por tanto de los tiempos de espera y del número de reintentos, además de la velocidad del enlace, y un control de seguridad que añade latencia (una VPN, un proxy de inspección) debe contrastarse con este presupuesto antes de instalarse.
1.4 Plataformas compartidas
Los centros de control modernos ejecutan sus servidores SCADA, historiadores y directorio en servidores de virtualización, a menudo compartidos entre servicios. Un hipervisor, un directorio, una fuente de hora o una cabina de almacenamiento compartidos son un punto en el que un fallo de un sector se convierte en un fallo de varios. El Lab 15 del capítulo 15 traza estas dependencias con código; aquí, basta con aprender a marcar en el diagrama cada componente compartido con los servicios que dependen de él. En el KVROC, el servidor esx-02 ejecuta el servidor SCADA, el historiador y el servidor del BMS del hospital, de modo que una caída o un parche defectuoso pueden afectar a la vez a la supervisión del agua y a la sanitaria. Marque cada componente compartido con todos los servicios que dependen de él y pregunte quién es el responsable del servidor cuando esos servicios discrepan sobre una ventana de cambio.
1.5 Ejemplo resuelto: el centro de operaciones de Kestrel Vale (sintético)
Usted es responsable técnico en el Kestrel Vale Regional Operations Centre (KVROC), que opera los sistemas de supervisión de Kestrel Water (12 estaciones, KW-01 a KW-12), la supervisión de los sistemas de gestión del edificio del Kestrel General Hospital y el procesador de telecontrol de una subestación (SS-3) de Kestrel Grid. Las RTU de las estaciones están en 10.10.0.0/16 (KW-n es 10.10.n.2); el centro de control es 10.20.0.0/24 (servidor SCADA scada-01 10.20.0.10, estación de ingeniería eng-ws-15 10.20.0.15, historiador hist-02 10.20.0.21); los puestos corporativos están en 10.30.0.0/16; la red de gestión es 10.90.0.0/24 (servidor de salto jump-01 10.90.0.20). Todos los nombres y direcciones son ficticios.
Operaciones exige que cada estación se refresque en menos de 5 segundos. scada-01 sondea las doce estaciones por un único canal. El Lab 1 calcula el presupuesto.
Lab 1 (guárdelo como lab01.py y ejecútelo con python3 lab01.py):
# Lab 1 - poll-cycle budget for a SCADA server polling stations (offline, standard library only)
# Synthetic Kestrel Water figures. Each poll = request + response over the link plus device turnaround.
stations = { # name: (link, round-trip ms on the link, device turnaround ms, polls per cycle)
"KW-01": ("fibre", 4, 20, 3), "KW-02": ("fibre", 4, 20, 3), "KW-03": ("fibre", 5, 25, 3),
"KW-04": ("cellular", 180, 40, 4), "KW-05": ("cellular", 210, 40, 4), "KW-06": ("cellular", 650, 40, 4),
"KW-07": ("radio", 420, 60, 3), "KW-08": ("radio", 460, 60, 3), "KW-09": ("cellular", 190, 40, 4),
"KW-10": ("fibre", 4, 20, 3), "KW-11": ("radio", 440, 60, 3), "KW-12": ("cellular", 200, 40, 4),
}
REQUIRED_S = 5.0 # operations require every station refreshed at least every 5 s
TIMEOUT_MS = 1500 # a poll that gets no reply costs the full timeout
def cycle(stations, sequential=True, dead=()):
per = {}
for n, (link, rtt, turn, polls) in stations.items():
per[n] = polls * (TIMEOUT_MS if n in dead else rtt + turn)
return (sum(per.values()) if sequential else max(per.values())) / 1000, per
c, per = cycle(stations)
print(f"sequential cycle {c:.2f} s (requirement {REQUIRED_S} s) -> {'OK' if c <= REQUIRED_S else 'FAILS'}")
worst = max(per, key=per.get); print(f"slowest station {worst}: {per[worst] / 1000:.2f} s per cycle")
c2, _ = cycle(stations, dead={"KW-06"})
print(f"sequential with KW-06 not answering: {c2:.2f} s")
c3, _ = cycle(stations, sequential=False, dead={"KW-06"})
print(f"one polling channel per station, KW-06 dead: {c3:.2f} s")
Salida esperada (Python 3.13.5):
sequential cycle 11.33 s (requirement 5.0 s) -> FAILS
slowest station KW-06: 2.76 s per cycle
sequential with KW-06 not answering: 14.57 s
one polling channel per station, KW-06 dead: 6.00 s
El resultado indica que el requisito ya se incumple (11,33 s), sobre todo por las estaciones celulares y de radio, y que KW-06 es la más lenta. Una KW-06 caída añade otros 3,24 s, porque cada sondeo sin respuesta cuesta 1,5 s. Incluso con un canal por estación, el ciclo es de 6,00 s mientras KW-06 está caída: los canales por estación eliminan el problema de la suma, pero no el del tiempo de espera. Un técnico al que se le pide «añadir un túnel cifrado a las estaciones celulares» sabe ahora qué preguntar primero: ¿cuántos milisegundos añade por sondeo y qué efecto tiene eso sobre un ciclo que ya falla?
1.6 Actividad práctica: dibuje su propio diagrama de tres rutas
A partir de la descripción del KVROC, dibuje las rutas de control, supervisión y gestión en tres colores. Marque cada componente que aparezca en más de una ruta y cada componente compartido de la plataforma. Conserve el dibujo: los capítulos 6, 10 y 15 lo irán refinando. Use tres colores o tres capas de página para que un conmutador o un servidor de salto compartido salte a la vista. Compruebe después si eng-ws-15 aparece tanto en la ruta de gestión como en la de control: si es así, comprometer esa estación de trabajo permite alcanzar todas las estaciones. Guarde el dibujo junto con el presupuesto del Lab 1, porque cualquier propuesta posterior de túnel o de cifrado tendrá que juzgarse frente a las rutas y frente al ciclo de sondeo.
1.7 Errores comunes y límites
- Dibujar solo la red y olvidar la ruta de gestión, que es donde residen los privilegios.
- Tratar el historiador como «simple TI»; a menudo es el puente entre las redes de control y corporativa.
- Medir la velocidad del enlace, pero no los tiempos de espera ni los reintentos; los dispositivos caídos dominan los ciclos de sondeo.
- Suponer que una arquitectura en paralelo resuelve la frescura; cambia la aritmética, no el tiempo de espera.
-
El modelo del Lab 1 ignora los reintentos, la contención en las líneas serie y la sobrecarga del protocolo; trate sus cifras como una primera estimación y después mida.
-
Olvidar que una estación caída cuesta el tiempo de espera completo en cada sondeo, de modo que una sola RTU que no responde puede alargar el ciclo más que una lenta.
- Dibujar las rutas de control y de supervisión y dejar fuera el servidor de salto, el directorio y el servidor de hora.
- Tratar las cifras del Lab 1 como valores medidos en lugar de como una primera estimación que aún requiere comprobar en la instalación los reintentos y la sobrecarga del protocolo.
Ejercicios — capítulo 1
EX001 — Clasificación de rutas. Objetivo: separar las tres rutas. Entradas: estos flujos: HMI → scada-01 «arrancar la bomba 2»; RTU de KW-04 → scada-01 lectura de nivel; eng-ws-15 → KW-04 descarga del proyecto; jump-01 → hist-02 SSH; hist-02 → servidor corporativo de informes exportación CSV. Pasos: clasifique cada uno como control, supervisión o gestión (o una combinación) e indique la peor consecuencia si un tercero no autorizado pudiera alterarlo. Evidencia esperada: una tabla de cinco filas. Rúbrica: 3 = clases correctas, con la descarga del proyecto reconocida como la acción de gestión más peligrosa y la exportación CSV reconocida como un flujo de supervisión entre zonas; 2 = una clasificación errónea; 1 = clases sin consecuencias; 0 = nada.
EX002 — Corrija el ciclo sobre el papel. Objetivo: usar el modelo del ciclo de sondeo. Entradas: el Lab 1. Pasos: proponga dos cambios que lleven el ciclo secuencial por debajo de 5 s con todas las estaciones en buen estado e indique cuál de ellos limita además el efecto de una estación caída. Modifique el laboratorio para probarlos. Evidencia esperada: los parámetros modificados y los nuevos tiempos de ciclo impresos. Rúbrica: 3 = cambios realistas (canales separados para los tipos de enlace lentos, menos sondeos por ciclo para las estaciones lentas, un tiempo de espera más corto con una política de reintentos justificada) y verificados ejecutando el laboratorio; 2 = correctos pero sin verificar; 1 = solo «comprar enlaces más rápidos»; 0 = nada.
EX003 — Impacto del túnel. Objetivo: contrastar un control de seguridad con un presupuesto operativo. Entradas: un túnel cifrado propuesto añade 35 ms a cada ida y vuelta en las cinco estaciones celulares. Pasos: calcule el efecto sobre el ciclo secuencial y sobre el diseño con un canal por estación. Evidencia esperada: aritmética y una recomendación. Rúbrica: 3 = aumentos correctos (5 estaciones × 4 sondeos × 35 ms = 0,70 s en secuencial; 0,14 s en el ciclo propio de la estación celular más lenta) y una recomendación que vincule el túnel al rediseño de canales; 2 = aritmética correcta, recomendación débil; 1 = solo cualitativo; 0 = nada.
EX004 — Lista de plataformas compartidas. Objetivo: encontrar dependencias entre servicios. Entradas: la descripción del KVROC y su diagrama. Pasos: enumere cuatro componentes que probablemente compartan los servicios de agua, hospital y red eléctrica y, para cada uno, la primera pregunta que haría a su responsable. Evidencia esperada: cuatro filas. Rúbrica: 3 = por ejemplo, servidores de virtualización, directorio, fuente de hora y colector de supervisión, cada uno con una pregunta específica (margen de capacidad, grupo de administración, redundancia de la fuente de hora, comportamiento cuando se llena); 2 = preguntas genéricas; 1 = solo componentes; 0 = nada.
Síntesis del capítulo
Un servicio de un sector crítico es un conjunto de capas unidas por tres rutas. Las órdenes, las mediciones y los cambios viajan por caminos distintos y fallan de maneras distintas; la ruta de gestión concentra los mayores privilegios. El sondeo de petición-respuesta convierte la frescura en una cuestión de aritmética, y la suelen decidir los tiempos de espera, no el ancho de banda. Cada capítulo posterior añade una técnica a una de estas rutas, así que tenga a mano el diagrama y el presupuesto.
Siga estudiando — capítulo 01 de 18
← Página del curso · Índice de capítulos del curso · Capítulo 02 →
Continúe con la siguiente lección escrita.