◇ OpenCyber Academy
Técnico · Capítulo 1 · Português

Capítulo 1 — Computação e arquitetura de serviço

Ensino gratuito e aberto para quem deseja proteger pessoas e tecnologias. Não é preciso criar uma conta para estudar ou consultar as respostas.

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:

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.

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

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.