Capítulo 8 — Arquitetura de computadores
Mapa da aula
Aula 08 publicada. Mapa, exemplo, EX015.
flowchart TD
N0["8.1 O modelo de máquina"]
N1["8.2 PLCs, RTUs e controladores embarcados"]
N2["8.3 Suporte de hardware à segurança"]
N3["8.4 Quando a velocidade cria vazamento"]
N4["8.6 Atividade prática"]
N5["Síntese do capítulo"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5
N5 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX015"]
Desenho lógico
flowchart LR
N0["8.1 O modelo de máquina"]
N1["8.2 PLCs, RTUs e controladores embarcados"]
N2["8.3 Suporte de hardware à segurança"]
N3["8.4 Quando a velocidade cria vazamento"]
N4["8.6 Atividade prática"]
N5["Síntese do capítulo"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> Q["EX015"]
[8.1 O modelo de máquina]
|
v
[8.2 PLCs, RTUs e controladores embarcados]
|
v
[8.3 Suporte de hardware à segurança]
|
v
[8.4 Quando a velocidade cria vazamento]
|
v
[8.6 Atividade prática]
|
v
[Síntese do capítulo]
|
v
[Exemplo resolvido] --> [Exercício EX015]
Objetivos de aprendizagem e conexão
Ao fim deste capítulo você será capaz de (1) descrever como um processador, a hierarquia de memória e a E/S interagem, e por que isso importa para o controle em tempo real; (2) explicar a arquitetura de controladores lógicos programáveis (PLCs), RTUs e controladores embarcados; (3) relacionar recursos de hardware — níveis de privilégio, proteção de memória, inicialização segura, raízes de confiança em hardware — a garantias de segurança; e (4) explicar como otimizações de desempenho, como caches e execução especulativa, criam vulnerabilidades. Ele se apoia no Capítulo 3 e prepara o Capítulo 12 (sistemas operacionais).
8.1 O modelo de máquina
Um processador busca instruções na memória, decodifica-as e executa-as, e lê e escreve dados em registradores e na memória. A memória é uma hierarquia — registradores, caches, memória principal, armazenamento —, cada nível maior e mais lento. Os dispositivos de E/S se conectam por barramentos e interrupções; uma interrupção suspende a execução normal para que o processador atenda a um dispositivo. O determinismo — saber o tempo de pior caso que uma operação leva — importa mais no controle do que a velocidade média: uma rotina de proteção de bomba que normalmente leva 1 ms, mas às vezes 50 ms por causa de uma tempestade de faltas de cache ou da coleta de lixo, pode perder seu prazo.
8.2 PLCs, RTUs e controladores embarcados
Um PLC executa um ciclo de varredura: lê as entradas, executa o programa do usuário, escreve as saídas, realiza comunicações e diagnósticos, e repete — muitas vezes a cada 10–100 ms. Seu programa é escrito em linguagens padronizadas pela IEC 61131-3 (lógica ladder, diagramas de blocos funcionais, texto estruturado). Uma RTU é projetada para instalações remotas: coleta medições, aplica lógica simples e se comunica por enlaces de longa distância, tolerando conectividade intermitente. Ambos têm vida longa: um equipamento instalado hoje pode funcionar por quinze a vinte e cinco anos, então os recursos de segurança que você escolher agora ainda precisarão ser aceitáveis na década de 2040. Muitos controladores legados aceitam mudanças de programa de qualquer pessoa que consiga alcançá-los pela rede; o Stuxnet explorou o caminho de uma estação de engenharia até a lógica do PLC, como analisado por Langner (2011).
8.3 Suporte de hardware à segurança
- Os níveis de privilégio separam o código do kernel do código de usuário; uma falha no código de usuário não consegue sobrescrever diretamente o kernel.
- As unidades de proteção de memória (MPU) e as unidades de gerenciamento de memória (MMU) impõem qual código pode acessar qual memória; a MPU é comum em microcontroladores que não têm uma MMU completa.
- A marcação execute-never impede que regiões de dados sejam executadas.
- A inicialização segura (secure boot) verifica uma assinatura criptográfica em cada estágio do firmware antes de executá-lo, ancorada numa raiz de confiança imutável (código em ROM ou chaves gravadas em fusíveis). Ela protege contra a modificação persistente do firmware, não contra uma imagem corretamente assinada, mas vulnerável.
- Os módulos de plataforma confiável (TPMs) e os elementos seguros armazenam chaves de modo que o software não consiga lê-las.
8.4 Quando a velocidade cria vazamento
Caches e execução especulativa tornam os processadores rápidos ao fazer suposições e manter estado, e esse estado pode vazar. Kocher et al. (2019) mostraram que a execução especulativa pode ser direcionada para ler memória através de fronteiras de proteção (Spectre). Kim et al. (2014) mostraram que acessos repetidos à DRAM podem inverter bits em linhas adjacentes (Rowhammer). Isso importa mais onde código não confiável compartilha o hardware com código confiável — servidores virtualizados do centro de controle, nuvem compartilhada — e menos num PLC de propósito único. A lição de engenharia: o hardware faz parte da superfície de ataque, e um isolamento que depende de hardware compartilhado precisa ser justificado.
8.5 Exemplo resolvido: escolhendo uma plataforma de RTU (sintético)
O TMRP compara duas RTUs candidatas. RTU-A: madura, determinística, sem inicialização segura, atualizações de firmware sem assinatura, mudanças de programa autenticadas apenas por uma senha compartilhada. RTU-B: inicialização segura com firmware assinado pelo fornecedor, autenticação baseada em papéis para mudanças de programa, armazenamento de chaves em hardware, mas uma resposta de pior caso 200 ms mais lenta a requisições de comunicação e um produto novo, com histórico limitado em campo. A equipe pontua as duas contra os requisitos: R1 (telemetria autenticada) precisa de armazenamento de chaves — o que favorece a B; R7 (alarme em até 60 s) é atendido por ambas, já que 200 ms são desprezíveis; a manutenibilidade ao longo de 20 anos favorece um fornecedor com um ciclo de vida de desenvolvimento seguro publicado. O registro de decisão escolhe a B para as novas instalações e um gateway para as instalações legadas com RTU-A, com um piloto para coletar dados de confiabilidade em campo antes da implantação em toda a frota.
8.6 Atividade prática
Para uma família de microcontroladores ou de PLCs de sua escolha, leia o manual público de segurança do fornecedor (ou uma folha de dados) e preencha uma tabela: separação de privilégios, proteção de memória, inicialização segura, atualizações assinadas, armazenamento de chaves, programação autenticada. Marque cada item como "sim / não / configurável / desconhecido", com a citação da fonte. Use apenas documentos públicos. Registre o título, a versão e a data do documento para cada entrada, porque os recursos de segurança mudam entre versões de firmware. Onde o manual for omisso, marque o recurso como desconhecido em vez de adivinhar, e liste a pergunta que você faria ao fornecedor. A tabela é a mesma comparação que a equipe do TMRP fez entre a RTU-A e a RTU-B, e mostra rapidamente se um produto consegue suportar telemetria autenticada e armazenamento de chaves sem um gateway.
8.7 Erros comuns e limites
- Igualar "rápido" a "determinístico".
- Supor que a inicialização segura impede a exploração de firmware assinado.
- Ignorar a vida útil de 20 anos ao escolher recursos criptográficos e de atualização.
- Tratar como absoluto o isolamento de hardware em servidores compartilhados.
- Tratar o marketing do fornecedor como evidência; peça documentação e teste.
A comparação das RTUs mostra esses erros na prática. A RTU-A é determinística, mas não consegue proteger chaves, então a velocidade sozinha não a torna adequada. A inicialização segura da RTU-B não impede uma mudança de lógica maliciosa, mas legitimamente assinada, e é por isso que o acesso de programação baseado em papéis aparece ao lado dela. Ambas ainda precisam ter suporte na década de 2040, e o piloto existe porque as alegações do fornecedor não são evidência de campo.
Exercícios — capítulo 8
EX015 — Orçamento do ciclo de varredura. Objetivo: raciocinar sobre determinismo. Entradas: varredura de PLC de 20 ms nominais e 45 ms no pior caso; um requisito de proteção da bomba de desarmar em até 100 ms após um sinal de sucção baixa, que passa por filtragem (debounce) em duas varreduras consecutivas. Passos: calcule a latência de desarme de pior caso (entrada amostrada logo após uma leitura, duas varreduras para confirmar, escrita da saída). Evidência esperada: cálculo e conclusão. Rubrica: 3 = pior caso correto, incluindo o atraso de amostragem, e julgamento contra os 100 ms; 2 = atraso de amostragem omitido; 1 = apenas a varredura nominal; 0 = nada.
EX016 — O que a inicialização segura compra. Objetivo: delimitar um controle com precisão. Entradas: a RTU-B da §8.5. Passos: liste dois ataques que a inicialização segura impede, dois que ela não impede e o controle complementar para cada um destes últimos. Evidência esperada: tabela. Rubrica: 3 = escopo exato (impede firmware persistente não assinado; não impede explorações em tempo de execução nem mudanças maliciosas de lógica pela programação legítima), controles correspondentes; 2 = um erro; 1 = genérico; 0 = nada.
Síntese do capítulo
A arquitetura determina tanto a temporização quanto a confiança. O controle precisa de desempenho de pior caso, não de média. PLCs e RTUs são máquinas de vida longa, baseadas em varreduras, cujos recursos de segurança ainda precisarão ser adequados daqui a décadas. Os mecanismos de hardware — privilégio, proteção de memória, inicialização segura, armazenamento de chaves — dão garantias específicas e limitadas; os recursos de desempenho podem vazar através de fronteiras. Diga exatamente contra o que cada mecanismo protege.
Continue estudando — capítulo 08 de 50
← Capítulo 07 · Índice de capítulos do curso · Capítulo 09 →
Siga para a próxima lição escrita.