Capítulo 1 — Computação e arquitetura de serviço
Mapa da aula
Aula 01 publicada. Mapa, exemplo, EX001.
flowchart TD
N0["1.1 As camadas de um serviço de controle supervisóri"]
N1["1.2 Três caminhos, três problemas de proteção"]
N2["1.3 Varredura e atualidade"]
N3["1.4 Plataformas compartilhadas"]
N4["1.6 Atividade prática: desenhe o seu próprio diagram"]
N5["Síntese do capítulo"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5
N5 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX001"]
Desenho lógico
flowchart LR
N0["1.1 As camadas de um serviço de controle supervisóri"]
N1["1.2 Três caminhos, três problemas de proteção"]
N2["1.3 Varredura e atualidade"]
N3["1.4 Plataformas compartilhadas"]
N4["1.6 Atividade prática: desenhe o seu próprio diagram"]
N5["Síntese do capítulo"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> Q["EX001"]
[1.1 As camadas de um serviço de controle supervisóri]
|
v
[1.2 Três caminhos, três problemas de proteção]
|
v
[1.3 Varredura e atualidade]
|
v
[1.4 Plataformas compartilhadas]
|
v
[1.6 Atividade prática: desenhe o seu próprio diagram]
|
v
[Síntese do capítulo]
|
v
[Exemplo resolvido] --> [Exercício EX001]
Objetivos de aprendizagem e conexão
Ao final deste capítulo, você deverá ser capaz de:
- desenhar a arquitetura técnica de um serviço de controle supervisório — dispositivos de campo, enlaces de comunicação, servidores de front end e SCADA, historiador, IHM, estação de engenharia, plano de gerência — e dizer qual componente faz o quê;
- distinguir o caminho de controle, o caminho de monitoramento e o caminho de gerência, e explicar por que um técnico protege cada um de modo diferente;
- calcular um orçamento do ciclo de varredura e usá-lo para prever o que um enlace lento ou morto faz com a atualidade dos dados do operador;
- identificar os componentes de plataforma compartilhados (hosts de virtualização, diretório, tempo, armazenamento) cuja falha atravessa as fronteiras entre serviços.
Este é o primeiro capítulo de um curso prático. Tudo o que vem depois — decodificação de protocolos, endurecimento, detecção, resolução de problemas — pressupõe que você consiga apontar para uma caixa do diagrama e dizer que tráfego ela envia, o que armazena e o que quebra se ela parar. O conhecimento de entrada (redes, sistemas operacionais, scripts) é pressuposto; o elemento novo é o processo físico do outro lado do fio.
1.1 As camadas de um serviço de controle supervisório
A maioria dos serviços de setores críticos que movem água, energia, ar ou pessoas compartilha uma forma em camadas reconhecível. O guia do NIST para tecnologia operacional descreve os mesmos componentes em termos gerais (SP 800-82 Rev. 3); os nomes abaixo são os usados neste livro.
- Dispositivos de campo: sensores (nível, vazão, cloro, pressão, temperatura, corrente), atuadores (bombas, válvulas, disjuntores) e os controladores que os conectam — CLPs (controladores lógicos programáveis), que executam lógica local, e RTUs (unidades terminais remotas), construídas para locais remotos com comunicações limitadas.
- Enlaces de comunicação: fibra, rádio licenciado, roteadores celulares, linhas dedicadas ou a rede MPLS de uma operadora. Sua latência, perda e custo moldam tudo o que está acima deles.
- Processador de front end (FEP) ou servidor SCADA: faz a varredura dos dispositivos de campo, aplica escalas e alarmes e mantém o estado atual do processo.
- Historiador: armazena séries temporais para relatórios, investigações e registros regulatórios.
- IHM (interface humano–máquina): as telas do operador, a partir das quais são emitidos comandos como "ligar bomba 2".
- Estação de engenharia: guarda os projetos dos controladores e as ferramentas do fabricante que alteram a lógica dos controladores; o computador mais poderoso do sistema.
- Plano de gerência: hosts de salto (jump hosts), serviços de diretório, servidores de tempo, backup, gerência de virtualização e o coletor de monitoramento.
1.2 Três caminhos, três problemas de proteção
Um técnico deve ser capaz de traçar três caminhos diferentes no diagrama.
O caminho de controle leva comandos ao processo: IHM → servidor SCADA → enlace → controlador → atuador. A integridade e a disponibilidade desse caminho são o que mantém as pessoas em segurança; uma escrita não autorizada ou corrompida aqui é o pior caso deste livro.
O caminho de monitoramento traz as medições de volta: sensor → controlador → enlace → servidor SCADA → historiador e IHM. Se ele estiver errado, os operadores agem com base em informação falsa — uma falha que pode ser tão perigosa quanto um comando ruim, e mais difícil de notar.
O caminho de gerência altera o próprio sistema: um engenheiro carregando uma nova lógica, um administrador aplicando patches no historiador, um fornecedor se conectando para diagnosticar uma falha. É usado raramente, mas concentra o maior privilégio, e é onde, segundo os relatos, começou a maioria das intrusões reais em ambientes de controle; o alerta da CISA sobre os ataques de dezembro de 2015 a distribuidoras ucranianas descreve acesso remoto e uso de credenciais antes do impacto operacional (CISA IR-ALERT-H-16-056-01).
Os três caminhos muitas vezes compartilham cabos, switches e servidores. Desenhá-los separadamente é como você descobre que um notebook de "monitoramento" no switch do centro de controle também alcança as portas de programação dos controladores.
1.3 Varredura e atualidade
A maioria dos protocolos de estação deste livro é de requisição–resposta: o servidor SCADA pergunta, o dispositivo responde. O tempo para atualizar cada estação uma vez é o ciclo de varredura. Para cada estação, ele é aproximadamente varreduras por ciclo × (tempo de ida e volta do enlace + tempo de resposta do dispositivo). Se o servidor varre as estações uma após a outra num único canal, o ciclo é a soma sobre as estações; se ele tem um canal independente por estação, o ciclo é definido pela estação mais lenta.
Duas consequências importam para o trabalho de segurança. Primeiro, um enlace lento (um roteador celular congestionado, um caminho de rádio degradado) estica o ciclo para todos os varridos depois dele. Segundo, um dispositivo que não responde custa o timeout inteiro a cada varredura, de modo que uma estação morta pode esticar o ciclo mais do que uma lenta. Os requisitos de atualidade — "toda estação atualizada pelo menos a cada 5 s" — dependem, portanto, dos timeouts e do número de tentativas, além da velocidade do enlace, e um controle de segurança que acrescenta latência (uma VPN, um proxy de inspeção) precisa ser verificado frente a esse orçamento antes de ser instalado.
1.4 Plataformas compartilhadas
Os centros de controle modernos executam seus servidores SCADA, historiadores e diretório em hosts de virtualização, muitas vezes compartilhados entre serviços. Um hipervisor, diretório, fonte de tempo ou storage compartilhado é um ponto em que uma falha num setor se torna uma falha em vários. O Laboratório 15, no Capítulo 15, rastreia essas dependências com código; aqui, apenas aprenda a marcar cada componente compartilhado no diagrama com os serviços que dependem dele.
No KVROC, o host esx-02 executa o servidor SCADA, o historiador e o servidor do sistema de gestão predial do hospital, de modo que uma indisponibilidade dele ou um patch ruim pode afetar juntos o monitoramento da água e o da saúde. Marque cada componente compartilhado com todos os serviços que dependem dele e pergunte quem é o dono do host quando esses serviços discordam sobre uma janela de mudança.
1.5 Exemplo resolvido: o centro de operações de Kestrel Vale (sintético)
Você é técnico no Kestrel Vale Regional Operations Centre (KVROC), que opera os sistemas de supervisão da Kestrel Water (12 estações, KW-01 a KW-12), o monitoramento dos sistemas de gestão predial do Kestrel General Hospital e o front end de telecontrole de uma subestação (SS-3) da Kestrel Grid. As RTUs das estações ficam em 10.10.0.0/16 (KW-n é 10.10.n.2); o centro de controle é 10.20.0.0/24 (servidor SCADA scada-01 10.20.0.10, estação de engenharia eng-ws-15 10.20.0.15, historiador hist-02 10.20.0.21); as mesas corporativas ficam em 10.30.0.0/16; a rede de gerência é 10.90.0.0/24 (host de salto jump-01 10.90.0.20). Todos os nomes e endereços são fictícios.
As operações exigem toda estação atualizada em até 5 segundos. O scada-01 varre as doze estações num único canal. O Laboratório 1 calcula o orçamento.
Laboratório 1 (salve como lab01.py e execute com 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")
Saída 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
O resultado diz que o requisito já não é atendido (11,33 s), principalmente por causa das estações celulares e de rádio, sendo KW-06 a mais lenta. Uma KW-06 morta acrescenta outros 3,24 s, porque cada varredura sem resposta custa 1,5 s. Mesmo com um canal por estação, o ciclo é de 6,00 s enquanto a KW-06 estiver morta: canais por estação eliminam o problema da soma, mas não o problema do timeout. Um técnico a quem se pede "acrescentar um túnel criptografado às estações celulares" agora sabe qual pergunta fazer primeiro: quantos milissegundos ele acrescenta por varredura, e o que isso faz com um ciclo que já não atende ao requisito?
1.6 Atividade prática: desenhe o seu próprio diagrama de três caminhos
Usando a descrição do KVROC, desenhe os caminhos de controle, de monitoramento e de gerência em três cores. Marque todo componente que aparece em mais de um caminho e todo componente de plataforma compartilhado. Guarde o desenho: os Capítulos 6, 10 e 15 o refinam.
Use três cores ou três camadas de página, para que um switch ou um host de salto compartilhado se destaque. Depois verifique se a eng-ws-15 aparece tanto no caminho de gerência quanto no de controle: se aparecer, um comprometimento dessa estação alcança todas as estações. Guarde o desenho junto com o orçamento do Laboratório 1, porque uma proposta posterior de túnel ou de criptografia terá de ser julgada frente aos caminhos e ao ciclo de varredura.
1.7 Erros comuns e limites
- Desenhar apenas a rede e esquecer o caminho de gerência, que é onde o privilégio está.
- Tratar o historiador como "apenas TI"; ele costuma ser a ponte entre as redes de controle e corporativa.
- Medir a velocidade do enlace, mas não os timeouts e as novas tentativas; dispositivos mortos dominam os ciclos de varredura.
- Presumir que uma arquitetura paralela resolve a atualidade; ela muda a aritmética, não o timeout.
-
O modelo do Laboratório 1 ignora novas tentativas, a contenção em linhas seriais e o overhead do protocolo; trate seus números como uma primeira estimativa e depois meça.
-
Esquecer que uma estação morta custa o timeout inteiro a cada varredura, de modo que uma única RTU que não responde pode esticar o ciclo mais do que uma lenta.
- Desenhar os caminhos de controle e de monitoramento e deixar de fora o host de salto, o diretório e o servidor de tempo.
- Tratar os números do Laboratório 1 como valores medidos, e não como uma primeira estimativa que ainda precisa ter as novas tentativas e o overhead do protocolo verificados no local.
Exercícios — capítulo 1
EX001 — Classificação de caminhos. Objetivo: separar os três caminhos. Insumos: estes fluxos: IHM → scada-01 "ligar bomba 2"; RTU da KW-04 → scada-01 leitura de nível; eng-ws-15 → KW-04 download de projeto; jump-01 → hist-02 SSH; hist-02 → servidor corporativo de relatórios exportação CSV. Passos: classificar cada um como controle, monitoramento ou gerência (ou uma combinação) e declarar a pior consequência se uma parte não autorizada pudesse alterá-lo. Evidência esperada: uma tabela de cinco linhas. Rubrica: 3 = classes corretas, com o download de projeto reconhecido como a ação de gerência mais perigosa e a exportação CSV reconhecida como um fluxo de monitoramento entre zonas; 2 = uma classificação errada; 1 = classes sem consequências; 0 = nada.
EX002 — Conserte o ciclo no papel. Objetivo: usar o modelo de ciclo de varredura. Insumos: Laboratório 1. Passos: propor duas mudanças que levem o ciclo sequencial abaixo de 5 s com todas as estações saudáveis e dizer qual também limita o efeito de uma estação morta. Alterar o laboratório para testá-las. Evidência esperada: parâmetros modificados e os novos tempos de ciclo impressos. Rubrica: 3 = mudanças realistas (canais separados para os tipos de enlace lentos, menos varreduras por ciclo para as estações lentas, um timeout mais curto com uma política de novas tentativas justificada) e verificadas executando o laboratório; 2 = corretas, mas não verificadas; 1 = apenas "comprar enlaces mais rápidos"; 0 = nada.
EX003 — Impacto do túnel. Objetivo: verificar um controle de segurança frente a um orçamento operacional. Insumos: um túnel criptografado proposto acrescenta 35 ms a cada ida e volta nas cinco estações celulares. Passos: calcular o efeito sobre o ciclo sequencial e sobre o desenho com um canal por estação. Evidência esperada: aritmética e uma recomendação. Rubrica: 3 = aumentos corretos (5 estações × 4 varreduras × 35 ms = 0,70 s no sequencial; 0,14 s no ciclo próprio da estação celular mais lenta) e uma recomendação que vincula o túnel ao novo desenho dos canais; 2 = aritmética certa, recomendação fraca; 1 = apenas qualitativo; 0 = nada.
EX004 — Lista de plataformas compartilhadas. Objetivo: encontrar dependências entre serviços. Insumos: a descrição do KVROC e o seu diagrama. Passos: listar quatro componentes que provavelmente são compartilhados pelos serviços de água, hospital e rede elétrica e, para cada um, a primeira pergunta que você faria ao dono. Evidência esperada: quatro linhas. Rubrica: 3 = por exemplo, hosts de virtualização, diretório, fonte de tempo e coletor de monitoramento, cada um com uma pergunta específica (folga de capacidade, grupo administrativo, redundância da fonte de tempo, comportamento quando cheio); 2 = perguntas genéricas; 1 = apenas componentes; 0 = nada.
Síntese do capítulo
Um serviço de setor crítico é um conjunto de camadas unidas por três caminhos. Comandos, medições e mudanças percorrem rotas diferentes e falham de modos diferentes; o caminho de gerência concentra o maior privilégio. A varredura de requisição–resposta faz da atualidade uma questão de aritmética, e são os timeouts, não a largura de banda, que costumam decidi-la. Cada capítulo seguinte acrescenta uma técnica a um desses caminhos; mantenha, portanto, o diagrama e o orçamento à mão.
Continue estudando — capítulo 01 de 18
← Página do curso · Índice de capítulos do curso · Capítulo 02 →
Siga para a próxima lição escrita.