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

Capítulo 23 — Arquitetura e engenharia de segurança: análise de ameaças e falhas

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 23 — Arquitetura e engenharia de segurança: análise de ameaças e falhas

Mapa da aula

Aula 23 publicada. Mapa, exemplo, EX067.

flowchart TD
  N0["23.1 STRIDE sobre o modelo"]
  N1["23.2 Árvore de falhas para a perda de receita"]
  N2["Laboratório — Árvore de falhas para a receita não co"]
  N3["23.3 Combinar as visões"]
  N4["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4
  N4 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX067"]

Desenho lógico

flowchart LR
  N0["23.1 STRIDE sobre o modelo"]
  N1["23.2 Árvore de falhas para a perda de receita"]
  N2["Laboratório — Árvore de falhas para a receita não co"]
  N3["23.3 Combinar as visões"]
  N4["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4 --> Q["EX067"]
[23.1 STRIDE sobre o modelo]
    |
    v
[23.2 Árvore de falhas para a perda de receita]
    |
    v
[Laboratório — Árvore de falhas para a receita não co]
    |
    v
[23.3 Combinar as visões]
    |
    v
[Síntese]
    |
    v
[Exemplo resolvido] --> [Exercício EX067]

Objetivos de aprendizagem

Você vai (1) modelar as ameaças do back-office com STRIDE; (2) construir uma árvore de falhas para uma falha crítica; (3) combinar as visões de ameaças e de falhas em riscos priorizados.

23.1 STRIDE sobre o modelo

Usando o modelo de fluxo de dados do capítulo 22, Sofia e dois engenheiros passam cada elemento pelo STRIDE: spoofing, tampering, repudiation, information disclosure, denial of service e elevation of privilege, seguindo Shostack (2014). Descobrem que a interface de ingestão aceita registros de qualquer dispositivo que apresente um certificado da autoridade interna, inclusive validadores desativados; que as decisões de reembolso não são registradas com a identidade do aprovador, o que permite o repúdio; e que uma rajada de registros malformados poderia esgotar a fila de construção das viagens. Cada ameaça recebe um responsável, uma mitigação proposta e uma ligação com o requisito que afeta.

23.2 Árvore de falhas para a perda de receita

A modelagem de ameaças pergunta o que os atacantes podem fazer; a análise de falhas pergunta como o sistema pode falhar, qualquer que seja a causa. Sofia constrói uma árvore de falhas para o evento de topo em que a receita tarifária de um dia não pode ser conciliada. Ele ocorre se registros de validação forem perdidos ou se o cálculo da tarifa estiver errado. Os registros são perdidos se o buffer do validador transbordar e, ao mesmo tempo, o enlace de upload ficar fora do ar por tempo suficiente. Ela atribui probabilidades sintéticas e calcula a probabilidade do evento de topo com portas AND e OR, supondo independência. O laboratório abaixo mostra o cálculo e qual ramo domina.

Laboratório — Árvore de falhas para a receita não conciliada

# Fault tree for "day's revenue cannot be reconciled" with synthetic daily probabilities (independence assumed).
p_buffer_overflow = 0.02
p_link_down_long = 0.05
p_records_lost = p_buffer_overflow * p_link_down_long          # AND gate
p_tariff_change_day = 0.10
p_calc_error_given_change = 0.08
p_calc_error = p_tariff_change_day * p_calc_error_given_change  # AND gate
p_top = 1 - (1 - p_records_lost) * (1 - p_calc_error)            # OR gate
print(f"records lost      {p_records_lost:.4f}")
print(f"calculation error {p_calc_error:.4f}")
print(f"top event         {p_top:.4f}  (~{p_top*365:.1f} days/year)")

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

records lost      0.0010
calculation error 0.0080
top event         0.0090  (~3.3 days/year)

23.3 Combinar as visões

A árvore de falhas mostra que os erros de cálculo depois de mudanças de tarifa dominam o risco, mais do que os registros perdidos. O modelo de ameaças mostra que uma tabela de tarifas maliciosa enviada por uma conta de fornecedor comprometida poderia causar exatamente essa falha. Combinando as duas visões, Sofia classifica as tabelas de tarifas assinadas e verificadas como a principal mitigação, porque ela trata tanto as causas acidentais quanto as maliciosas da falha mais provável. Ela observa que as premissas de independência nas árvores de falhas podem subestimar o risco quando uma única causa, como uma queda de energia, dispara vários ramos ao mesmo tempo.

Exemplo resolvido

Sofia conduz uma sessão STRIDE que encontra três ameaças, constrói uma árvore de falhas para a receita não conciliada e prioriza as tabelas de tarifas assinadas, porque as duas análises apontam para erros de tarifa.

Caso sintético. As ameaças, as probabilidades e a árvore de falhas são sintéticas; Shostack (2014) é real.

Erros e limites

As probabilidades das árvores de falhas muitas vezes são palpites; sua ordenação é mais útil do que os valores absolutos. O STRIDE pode deixar passar ameaças fora do modelo.

Exercícios

Síntese

A modelagem de ameaças e as árvores de falhas, juntas, revelam quais mitigações reduzem tanto as falhas maliciosas quanto as acidentais.

Continue estudando — aula 23 (capítulo 23 de 50)

← Capítulo 22 · Índice das aulas · Capítulo 24 →

Continue para a próxima aula já escrita.