Capítulo 11 — Cópias de segurança e restauração
Mapa da aula
Aula 11 publicada. Mapa, exemplo, EX041.
flowchart TD
N0["11.1 O que copiar"]
N1["11.2 Onde guardar as cópias"]
N2["11.3 Verificando a integridade"]
N3["11.4 Lendo o resultado"]
N4["11.5 Testes de restauração"]
N5["11.6 Com que frequência"]
N6["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6
N6 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX041"]
Desenho lógico
flowchart LR
N0["11.1 O que copiar"]
N1["11.2 Onde guardar as cópias"]
N2["11.3 Verificando a integridade"]
N3["11.4 Lendo o resultado"]
N4["11.5 Testes de restauração"]
N5["11.6 Com que frequência"]
N6["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> Q["EX041"]
[11.1 O que copiar]
|
v
[11.2 Onde guardar as cópias]
|
v
[11.3 Verificando a integridade]
|
v
[11.4 Lendo o resultado]
|
v
[11.5 Testes de restauração]
|
v
[11.6 Com que frequência]
|
v
[Síntese]
|
v
[Exemplo resolvido] --> [Exercício EX041]
Objetivos de aprendizagem
Você vai (1) listar o que precisa de cópia de segurança numa linha; (2) verificar a integridade das cópias com hashes; e (3) explicar por que uma restauração precisa ser testada.
11.1 O que copiar
Programas dos CLPs, projetos e telas das IHMs, arquivos de receita, configurações dos dispositivos (switches, firewall, ajustes da câmera) e os dados de licença do software de engenharia. Sem eles, recuperar-se de uma falha ou de um ataque significa reconstruir de memória.
Na HPFL, isso significa os programas do PLC-FILL e do PLC-WRAP, o projeto da HMI-1, os arquivos de receita, os ajustes da VIS-CAM e as configurações do FW-1 e dos switches da linha. Liste cada item no registro de ativos com a data da sua última cópia. Um item que falta na lista provavelmente também falta nas cópias.
11.2 Onde guardar as cópias
Pelo menos uma cópia fora da rede da linha, de preferência offline, para que um malware que cifre a linha não consiga alcançá-la. Etiquete cada uma com dispositivo, data e versão.
Na HPFL, o engenheiro de controle mantém um armazenamento offline, que foi onde se encontrou uma cópia mais antiga e íntegra do programa da embaladora. Mantenha pelo menos duas cópias de cada cópia de segurança importante e registre onde cada uma está. Verifique se a cópia offline pode ser acessada durante um turno da noite. Anote quem pode levar uma cópia para fora da instalação.
11.3 Verificando a integridade
Um hash, como o SHA-256, é uma impressão digital de um arquivo: qualquer mudança dá um valor diferente. Registre o hash quando a cópia é feita; confira-o 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'}")
Execute com python3 lab_hash.py. Saída verificada:
PLC-FILL_2026-09.bak 0278a5f83d56 MATCH
PLC-WRAP_2026-09.bak 9974ecb17bab MISMATCH - do not restore
Guarde os hashes separados das cópias, por exemplo no chamado de mudança ou num registro, para que quem alterar uma cópia não consiga alterar também o seu hash. O Laboratório 11 confere dois arquivos de cópia contra os hashes registrados e mostra como é uma divergência.
11.4 Lendo o resultado
A cópia da enchedora corresponde ao hash registrado. A cópia da embaladora não: o seu conteúdo foi editado depois que o hash foi registrado. Restaurá-la poderia carregar um programa que ninguém aprovou, então ela é posta de lado e relatada.
Uma divergência não prova um ataque; prova que o arquivo mudou depois que o seu hash foi registrado. Na HPFL, a edição foi rastreada até um ajuste aprovado, mas não registrado. O procedimento foi atualizado para que toda mudança produza uma nova cópia e um novo hash no mesmo chamado.
11.5 Testes de restauração
Uma cópia nunca restaurada é uma esperança, não um plano. Uma ou duas vezes por ano, restaure um programa num CLP de reserva ou de laboratório e compare-o com o que está em funcionamento.
Registre o teste de restauração no registro de ativos, com a data, o dispositivo, a cópia usada e o resultado. Se uma restauração falhar, descubra o porquê antes que uma falha real force a pergunta. Na HPFL, um CLP de reserva da prateleira poderia ser usado para isso, depois de verificar que ele está marcado como reserva no registro.
11.6 Com que frequência
Faça cópias depois de cada mudança aprovada e numa data mensal fixa, o que vier primeiro, para que a cópia boa mais recente nunca fique muito atrás do programa em funcionamento.
Na HPFL, as cópias de setembro eram as mais recentes antes da edição da embaladora, e é por isso que uma mudança aprovada posterior, sem uma nova cópia, causou confusão. Vincule as cópias aos chamados de mudança, para que cada mudança aprovada produza uma cópia e um hash novos. Verifique mensalmente se a cópia mais recente de cada dispositivo é mais nova do que a sua última mudança aprovada. Se não for, faça uma nova cópia e registre o hash antes do próximo turno.
Exemplo resolvido (HPFL sintética)
Tomás relata a divergência. O engenheiro de controle encontra uma cópia mais antiga e íntegra no armazenamento offline e compara o arquivo editado: alguém acrescentou uma linha ao programa da embaladora depois da cópia de setembro, sem chamado de mudança. A edição é rastreada até um ajuste aprovado, mas não registrado; o registro de ativos e o procedimento são atualizados.
Caso sintético — HPFL. Os arquivos e hashes são produzidos pelo laboratório com conteúdo inventado.
Erros e limites
Um hash que corresponde prova que o arquivo não mudou desde o registro, não que a versão registrada era boa. Os hashes precisam ser guardados separados das cópias.
Exercícios
- EX041 — Lista de cópias. Nomeie cinco coisas que precisam de cópia de segurança na linha da HPFL. Rubrica: 3 = cinco itens corretos; 2 = quatro; 1 = dois; 0 = nenhum.
- EX042 — Decisão diante da divergência. O que Tomás faz com a cópia da embaladora marcada MISMATCH? Rubrica: 3 = não restaurar; pôr de lado; relatar; encontrar uma cópia verificada; 2 = só relatar; 1 = restaurar mesmo assim; 0 = nenhum.
- EX043 — Um byte alterado. Se um caractere dos dados da enchedora fosse alterado, o que o laboratório imprimiria para esse arquivo? Rubrica: 3 = hash diferente e "MISMATCH - do not restore"; 2 = divergência; 1 = correspondência; 0 = nenhum.
- EX044 — Onde guardar os hashes. Por que os hashes são guardados separados dos arquivos de cópia? Rubrica: 3 = um atacante que altere as cópias poderia alterar também os hashes no mesmo lugar; 2 = vago; 1 = espaço; 0 = nenhum.
Síntese
As cópias de segurança ficam offline, etiquetadas, com hash e testadas por restauração; uma divergência impede a restauração.
Continue estudando — capítulo 11 de 18
← Capítulo 10 · Índice de capítulos do curso · Capítulo 12 →
Siga para a próxima lição escrita.