◇ OpenCyber Academy
Engenharia · Capítulo 22 · Português

Capítulo 22 — Segurança de TO, IoT e sistemas ciberfísicos: modelos de sistema e de dados

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 22 — Segurança de TO, IoT e sistemas ciberfísicos: modelos de sistema e de dados

Mapa da aula

Aula 22 publicada. Mapa, exemplo, EX064.

flowchart TD
  N0["22.1 Entidades"]
  N1["22.2 Chaves"]
  N2["22.3 Atributos proibidos"]
  N3["Nota prática"]
  N4["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4
  N4 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX064"]

Desenho lógico

flowchart LR
  N0["22.1 Entidades"]
  N1["22.2 Chaves"]
  N2["22.3 Atributos proibidos"]
  N3["Nota prática"]
  N4["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4 --> Q["EX064"]
[22.1 Entidades]
    |
    v
[22.2 Chaves]
    |
    v
[22.3 Atributos proibidos]
    |
    v
[Nota prática]
    |
    v
[Síntese]
    |
    v
[Exemplo resolvido] --> [Exercício EX064]

Objetivos de aprendizagem

Você vai (1) desenhar um modelo de entidades para ativos, zonas, condutos e constatações; (2) escolher chaves e cardinalidades; (3) manter o conteúdo de exploits fora do modelo.

22.1 Entidades

Plant 1—* Unit; Unit 1—* Asset; Zone 1—* Asset; Conduit — Zone (de/para); Finding — EvidenceObject (por hash); TechniqueTag — Finding. Erros de cardinalidade (vários conjuntos de condutos ativos sem um ponteiro de versão) fazem os auditores perguntarem quais regras estavam em vigor.

O modelo de Lena dá a cada ConduitSet uma versão e registra qual versão estava em vigor em cada momento, para que um auditor veja as regras que valiam num dado dia. Cada Finding se liga à sua evidência por hash, e as tags de técnica se ligam às constatações apenas depois de revisadas.

22.2 Chaves

Os ids das constatações são UUID. A evidência é endereçada pelo conteúdo, via SHA-256. O ConduitSet tem (plant_id, version_int). Nunca use o título como chave das constatações — os títulos mudam.

O esquema de Lena usa essas chaves em todo o CNHP. Uma constatação sobre a FW-12 manteve o seu identificador quando o título foi reescrito depois da revisão, e o seu histórico ficou intacto. Uma evidência com o hash como chave não pode ser trocada em silêncio, já que um arquivo diferente teria uma chave diferente. O número de versão do ConduitSet aumenta a cada mudança publicada e nunca reutiliza um valor antigo.

22.3 Atributos proibidos

Nenhum atributo para payload, shellcode ou ataque passo a passo. Para uma captura do monitor do L2, o EvidenceObject mantém os bytes num bucket lacrado; o modelo guarda apenas o hash, o tipo de mídia e a classe de retenção.

Caso sintético — Ashford Batch Plant. Um esquema inicial tinha notas em texto livre; as pessoas colavam senhas de engenharia. Lena o substituiu por campos estruturados mais um hash de evidência, e um linter rejeita textos com cara de senha nos títulos.

O linter de Lena impõe a lista. Ele roda em todo registro criado ou importado, inclusive nas importações em massa de scanners, e rejeita textos com cara de senha nos títulos. Os registros rejeitados retornam um erro que explica qual campo foi recusado.

22.4 Erros e limites

Modelos que tornam toda técnica do ATT&CK for ICS um campo obrigatório geram tags lixo. Mantenha as tags de técnica opcionais e revisadas.

Na ABP, as tags de técnica são acrescentadas por um analista depois que a constatação é escrita, e uma segunda pessoa as revisa. Uma constatação sem técnica adequada fica sem tag, em vez de ser forçada para a mais próxima. Isso mantém os números de cobertura honestos, porque uma tag lixo contaria como cobertura observada de uma técnica que ninguém testou de fato. As tags são revistas quando a versão do ATT&CK for ICS muda.

Nota prática

Faça exclusão lógica das constatações, com ator e motivo; expurgo definitivo apenas por rotinas de retenção que emitam eventos de auditoria. Um DELETE FROM findings silencioso é um presente para o repúdio.

22.1b Limites de anexos e tempo

Os objetos de evidência precisam de limites de tamanho e de listas de permissões de tipos de mídia. Uploads sem limite viram ataques de disponibilidade e tentam a despejar dados proprietários em massa. Toda entidade mutável do CNHP, de uma constatação a um registro de conduto, precisa de created_at, created_by e, para mudanças de estado, updated_at/updated_by ou um evento somente de acréscimo. Prefira UTC com deslocamentos explícitos nas exportações.

As exportações declaram o seu fuso horário uma vez no cabeçalho do arquivo, além de em cada timestamp. Clientes de API que emitem DELETE em laço durante uma nova tentativa defeituosa têm as credenciais revogadas depois de um limite.

22.5 Exemplo resolvido — modelando uma constatação sem vazar a planta (ABP sintética)

O modelo de dados de Lena para as constatações do CNHP tem as entidades Asset, Zone, Conduit, Finding e Evidence. Uma Finding referencia um Asset por chave, nunca embute o seu endereço IP nem credenciais, e guarda a evidência como um hash mais um ponteiro para o repositório controlado de evidências. A lista de atributos proibidos (senhas, payloads completos de pacotes, valores de receitas) é imposta por uma verificação de esquema que rejeita qualquer registro que contenha esses campos. Quando uma constatação sobre a porta Modbus aberta do PLC-A é exportada para a gerência, ela diz "Asset PLC-A, Conduit L2→L1, ATT&CK for ICS T0869 Standard Application Layer Protocol, severidade alta" — o suficiente para agir, não o suficiente para atacar.

Exercícios

Síntese

Modele ativos, zonas, versões, constatações e hashes — não ataques.

Continue estudando — capítulo 22 de 50

← Capítulo 21 · Índice de capítulos do curso · Capítulo 23 →

Siga para a próxima lição escrita.