OpenCyber Academy
Engenharia · Capítulo 32 · Português
Código do curso: OCA-122Capítulo 32: OCA-122-C032

Capítulo 32 — Arquitetura e engenharia de segurança: confiabilidade

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

Mapa da aula

Aula 32 publicada. Mapa, exemplo, EX094.

flowchart TD
  N0["32.1 Série e paralelo"]
  N1["Laboratório — Disponibilidade em série e em paralelo"]
  N2["32.2 Redundância para serviços de segurança"]
  N3["32.3 Quando a segurança prejudica a confiabilidade"]
  N4["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4
  N4 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX094"]

Desenho lógico

flowchart LR
  N0["32.1 Série e paralelo"]
  N1["Laboratório — Disponibilidade em série e em paralelo"]
  N2["32.2 Redundância para serviços de segurança"]
  N3["32.3 Quando a segurança prejudica a confiabilidade"]
  N4["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4 --> Q["EX094"]
[32.1 Série e paralelo]
    |
    v
[Laboratório — Disponibilidade em série e em paralelo]
    |
    v
[32.2 Redundância para serviços de segurança]
    |
    v
[32.3 Quando a segurança prejudica a confiabilidade]
    |
    v
[Síntese]
    |
    v
[Exemplo resolvido] --> [Exercício EX094]

Objetivos de aprendizagem

Você vai (1) calcular a disponibilidade de componentes em série e em paralelo; (2) projetar redundância para serviços de segurança; (3) reconhecer quando controles de segurança reduzem a confiabilidade.

32.1 Série e paralelo

A engenharia de confiabilidade oferece regras simples. Componentes em série, todos necessários para o serviço, multiplicam suas disponibilidades, de modo que o todo é menos disponível do que qualquer parte. Componentes em paralelo, em que qualquer um basta, se combinam de modo que o todo é mais disponível do que cada um. Sofia aplica isso à ingestão, que precisa em série do balanceador de carga, do serviço de ingestão, do repositório de segredos e do banco de dados. O laboratório abaixo calcula a disponibilidade geral com números sintéticos e mostra como acrescentar uma segunda instância do repositório de segredos em paralelo muda o resultado. Serviços de segurança como os repositórios de segredos costumam ser esquecidos quando a disponibilidade é planejada.

Laboratório — Disponibilidade em série e em paralelo

# Series/parallel availability with synthetic component figures.
comp = {"load balancer": 0.9995, "ingestion": 0.999, "secret store": 0.998, "database": 0.9995}
def series(xs):
    p = 1.0
    for x in xs: p *= x
    return p
def parallel(a, n): return 1 - (1 - a) ** n
base = series(comp.values())
red = series([comp["load balancer"], comp["ingestion"], parallel(comp["secret store"], 2), comp["database"]])
print(f"single secret store: {base:.4f}  (~{(1-base)*8760:.0f} h/yr down)")
print(f"two secret stores:   {red:.4f}  (~{(1-red)*8760:.0f} h/yr down)")

Execute com python3 lab_avail.py. Saída verificada:

single secret store: 0.9960  (~35 h/yr down)
two secret stores:   0.9980  (~18 h/yr down)

32.2 Redundância para serviços de segurança

Autenticação, gestão de chaves e logging são dependências de quase tudo. Se o provedor de identidade falha, a equipe não consegue fazer login; se o repositório de segredos falha, os serviços não conseguem iniciar; se o logging falha, os ataques passam despercebidos. Sofia propõe redundância para cada um: provedores de identidade em cluster em dois sites, repositórios de segredos replicados e buffer local de logs quando o coletor central estiver inacessível. Ela também documenta o que acontece no modo degradado, como os validadores seguirem com listas de bloqueio em cache. Projetar deliberadamente o comportamento degradado é mais seguro do que descobri-lo durante uma indisponibilidade.

32.3 Quando a segurança prejudica a confiabilidade

Alguns controles reduzem a disponibilidade. Uma validação estrita de certificados falha fechada se o serviço de revogação estiver inacessível; um rate limiting agressivo pode bloquear picos legítimos; a autenticação multifator obrigatória falha se o serviço do segundo fator estiver fora do ar. Sofia lista esses casos e decide cada um deliberadamente: a ingestão das validações faz soft-fail nas verificações de revogação por um curto período, usando listas em cache, enquanto o acesso administrativo faz hard-fail. A decisão decorre do ativo e da ameaça: a arrecadação precisa continuar, enquanto o acesso administrativo pode esperar. Confiabilidade e segurança são propriedades do mesmo sistema e precisam ser negociadas explicitamente.

Exemplo resolvido

Sofia calcula a disponibilidade da ingestão com e sem um repositório de segredos redundante, projeta redundância para três serviços de segurança e registra as decisões de falhar aberto e falhar fechado.

Caso sintético. Os números de disponibilidade são sintéticos.

Erros e limites

As premissas de independência superestimam os benefícios do paralelo quando as réplicas compartilham uma causa de falha. As janelas de soft-fail podem ser abusadas.

Exercícios

Síntese

A engenharia de confiabilidade se aplica aos serviços de segurança, e as escolhas entre falhar aberto ou falhar fechado precisam decorrer dos ativos e das ameaças.

Respostas comentadas

EX094. Multiplicam-se, de modo que o serviço é menos disponível do que seu componente mais fraco.

EX095. A disponibilidade geral subiu de 0.9960 para 0.9980, de cerca de 35 para 18 horas de indisponibilidade por ano, porque o repositório de segredos era o elo mais fraco.

EX096. A ingestão das validações faz soft-fail usando listas em cache por pouco tempo; o acesso administrativo faz hard-fail.