◇ OpenCyber Academy
Técnico · Capítulo 11 · Español

Capítulo 11 — Copias de seguridad y restauración

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 11 — Copias de seguridad y restauración

Mapa de la lección

Lección 11 publicada. Mapa, ejemplo, EX041.

flowchart TD
  N0["Resultados de aprendizaje"]
  N1["11.1 Qué copiar"]
  N2["11.2 Dónde guardar las copias"]
  N3["11.3 Comprobar la integridad"]
  N4["11.4 Leer el resultado"]
  N5["11.5 Restauraciones de prueba"]
  N6["11.6 Con qué frecuencia"]
  N7["Síntesis del capítulo"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7
  N7 --> EX["Ejemplo resuelto"]
  EX --> Q["Ejercicio EX041"]

Dibujo lógico

flowchart LR
  N0["Resultados de aprendizaje"]
  N1["11.1 Qué copiar"]
  N2["11.2 Dónde guardar las copias"]
  N3["11.3 Comprobar la integridad"]
  N4["11.4 Leer el resultado"]
  N5["11.5 Restauraciones de prueba"]
  N6["11.6 Con qué frecuencia"]
  N7["Síntesis del capítulo"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7 --> Q["EX041"]
[Resultados de aprendizaje]
    |
    v
[11.1 Qué copiar]
    |
    v
[11.2 Dónde guardar las copias]
    |
    v
[11.3 Comprobar la integridad]
    |
    v
[11.4 Leer el resultado]
    |
    v
[11.5 Restauraciones de prueba]
    |
    v
[11.6 Con qué frecuencia]
    |
    v
[Síntesis del capítulo]
    |
    v
[Ejemplo resuelto] --> [Ejercicio EX041]

Resultados de aprendizaje

Usted podrá (1) enumerar lo que hay que copiar en una línea; (2) verificar la integridad de las copias de seguridad con hashes; y (3) explicar por qué hay que probar una restauración.

11.1 Qué copiar

Los programas de los PLC, los proyectos y pantallas de las HMI, los archivos de recetas, las configuraciones de los dispositivos (conmutadores, cortafuegos, ajustes de la cámara) y los datos de la licencia del software de ingeniería. Sin ellos, recuperarse de un fallo o un ataque significa reconstruirlo todo de memoria. En HPFL eso significa los programas de PLC-FILL y PLC-WRAP, el proyecto de HMI-1, los archivos de recetas, los ajustes de VIS-CAM y las configuraciones de FW-1 y de los conmutadores de la línea. Enumere cada elemento en el registro con la fecha de su última copia. Un elemento que falta en la lista probablemente falte también en las copias.

11.2 Dónde guardar las copias

Al menos una copia fuera de la red de la línea, idealmente sin conexión, para que un malware que cifre la línea no pueda alcanzarla. Etiquete cada una con el dispositivo, la fecha y la versión. En HPFL el ingeniero de control mantiene un almacén sin conexión, que es donde se encontró una copia más antigua y coincidente del programa de la envolvedora. Guarde al menos dos copias de cada copia de seguridad importante y anote dónde está cada una. Compruebe que la copia sin conexión es accesible durante un turno de noche. Anote quién puede sacar una copia del emplazamiento.

11.3 Comprobar la integridad

Un hash como SHA-256 es una huella de un archivo: cualquier cambio da un valor distinto. Anote el hash al hacer la copia; compruébelo antes de restaurar.

"""Lab 11: verify synthetic PLC backup files against recorded SHA-256 values."""
import hashlib
files = {"PLC-FILL_2026-09.bak": b"fill program v3.2 rungs 1-140",
         "PLC-WRAP_2026-09.bak": b"wrap program v2.0 rungs 1-88 edited"}
recorded = {"PLC-FILL_2026-09.bak": hashlib.sha256(b"fill program v3.2 rungs 1-140").hexdigest(),
            "PLC-WRAP_2026-09.bak": hashlib.sha256(b"wrap program v2.0 rungs 1-88").hexdigest()}
for name, data in files.items():
    h = hashlib.sha256(data).hexdigest()
    print(f"{name:22} {h[:12]} {'MATCH' if h == recorded[name] else 'MISMATCH - do not restore'}")

Ejecútelo con python3 lab_hash.py. Salida verificada:

PLC-FILL_2026-09.bak   0278a5f83d56 MATCH
PLC-WRAP_2026-09.bak   9974ecb17bab MISMATCH - do not restore

Guarde los hashes separados de las copias, por ejemplo en el ticket de cambio o en un registro, para que quien altere una copia no pueda alterar también su hash. El Lab 11 comprueba dos archivos de copia de seguridad frente a los hashes anotados y muestra cómo se ve una discrepancia.

11.4 Leer el resultado

La copia de la llenadora coincide con su hash anotado. La de la envolvedora no: su contenido se editó después de anotar el hash. Restaurarla podría cargar un programa que nadie aprobó, así que se aparta y se notifica. Una discrepancia no prueba un ataque; prueba que el archivo cambió después de anotarse su hash. En HPFL la edición se atribuyó a un ajuste aprobado pero no registrado. El procedimiento se actualizó para que cada cambio produzca una nueva copia y un nuevo hash en el mismo ticket.

11.5 Restauraciones de prueba

Una copia que nunca se ha restaurado es una esperanza, no un plan. Una o dos veces al año, restaure un programa en un PLC de repuesto o de laboratorio y compárelo con el que está en funcionamiento. Anote la restauración de prueba en el registro con la fecha, el dispositivo, la copia utilizada y el resultado. Si una restauración falla, averigüe por qué antes de que un fallo real le obligue a hacerlo. En HPFL podría usarse para ello un PLC de repuesto de la estantería, tras comprobar que figura como repuesto en el registro.

11.6 Con qué frecuencia

Haga una copia tras cada cambio aprobado y en una fecha mensual fija, lo que ocurra primero, para que la copia buena más reciente nunca vaya muy por detrás del programa en funcionamiento. En HPFL las copias de septiembre eran las más recientes antes de la edición del programa de la envolvedora, y por eso un cambio aprobado posterior sin copia nueva causó confusión. Vincule las copias a los tickets de cambio para que cada cambio aprobado produzca una copia y un hash nuevos. Compruebe cada mes que la copia más reciente de cada dispositivo es posterior a su último cambio aprobado. Si no lo es, haga una copia nueva y calcule su hash antes del siguiente turno.

Ejemplo resuelto (HPFL sintética)

Tomás notifica la discrepancia. El ingeniero de control encuentra en el almacén sin conexión una copia más antigua que coincide y compara el archivo editado: alguien añadió una línea al programa de la envolvedora después de la copia de septiembre sin ticket de cambio. La edición se atribuye a un ajuste aprobado pero no registrado; se actualizan el registro y el procedimiento.

Caso sintético — HPFL. Los archivos y los hashes los genera el laboratorio con contenidos inventados.

Errores y límites

Un hash coincidente prueba que el archivo no ha cambiado desde que se anotó, no que la versión anotada fuera buena. Los hashes deben guardarse separados de las copias.

Ejercicios — capítulo 11

Síntesis del capítulo

Las copias se guardan sin conexión, etiquetadas, con su hash y con restauraciones de prueba; una discrepancia detiene la restauración.

Siga estudiando — capítulo 11 de 18

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

Respuestas desarrolladas

EX041. Los programas de PLC-FILL y PLC-WRAP, el proyecto de HMI-1, los archivos de recetas, las configuraciones de FW-1 y de los conmutadores, y los ajustes de VIS-CAM.

EX042. No la restaura; la etiqueta como sospechosa, notifica la discrepancia al ingeniero de control y ayuda a localizar una copia más antigua cuyo hash coincida.

EX043. Imprime un prefijo de hash de 12 caracteres distinto para PLC-FILL_2026-09.bak y MISMATCH - do not restore, porque cualquier cambio altera el valor SHA-256.

EX044. Quien pudiera modificar las copias en el mismo lugar podría reescribir también los hashes guardados para que coincidieran, y la comprobación no probaría nada.