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

Capítulo 23 — Segurança ofensiva autorizada e red team: 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 — Segurança ofensiva autorizada e red team: análise de ameaças e falhas

Mapa da aula

Aula 23 publicada. Mapa, exemplo, EX067.

flowchart TD
  N0["23.1 A ferramenta pode falhar de forma perigosa"]
  N1["23.2 STRIDE na plataforma"]
  N2["23.3 As ameaças do engajamento ficam nos documentos"]
  N3["23.2b Casos de abuso vs. casos de mau uso"]
  N4["23.3b Alimentando o backlog"]
  N5["23.1b Presumindo o comprometimento do jumphost"]
  N6["23.4b Classificando as ameaças à plataforma"]
  N7["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7
  N7 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX067"]

Desenho lógico

flowchart LR
  N0["23.1 A ferramenta pode falhar de forma perigosa"]
  N1["23.2 STRIDE na plataforma"]
  N2["23.3 As ameaças do engajamento ficam nos documentos"]
  N3["23.2b Casos de abuso vs. casos de mau uso"]
  N4["23.3b Alimentando o backlog"]
  N5["23.1b Presumindo o comprometimento do jumphost"]
  N6["23.4b Classificando as ameaças à plataforma"]
  N7["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7 --> Q["EX067"]
[23.1 A ferramenta pode falhar de forma perigosa]
    |
    v
[23.2 STRIDE na plataforma]
    |
    v
[23.3 As ameaças do engajamento ficam nos documentos]
    |
    v
[23.2b Casos de abuso vs. casos de mau uso]
    |
    v
[23.3b Alimentando o backlog]
    |
    v
[23.1b Presumindo o comprometimento do jumphost]
    |
    v
[23.4b Classificando as ameaças à plataforma]
    |
    v
[Síntese]
    |
    v
[Exemplo resolvido] --> [Exercício EX067]

Objetivos de aprendizagem

Você vai (1) enumerar as falhas da própria plataforma de avaliação; (2) usar uma passada leve de STRIDE sobre as ferramentas; (3) levar os resultados para os requisitos.

23.1 A ferramenta pode falhar de forma perigosa

O TrackScope falhando aberto, o FindingsDesk perdendo eventos de negação, o PulseMap contando cobertura sem denominador — essas são ameaças à segurança e à honestidade, não só à confidencialidade da ferramenta. Uma verificação de escopo que falha aberta prejudica mais o cliente do que uma interface lenta. Eventos de negação perdidos escondem quebras da ROE até o relatório. Cobertura sem denominador é um gráfico de marketing. Sam classifica essas falhas ao lado das ameaças à confidencialidade em toda revisão de design, com um dono separado para as falhas de honestidade e para as de vazamento de dados. Um bug de escopo que falha aberto é tratado como P1 mesmo quando nenhum dado saiu do ambiente, porque a próxima sondagem poderia ter sido o host de sinalização excluído do exemplo de classificação.

23.2 STRIDE na plataforma

Falsificação (spoofing): conta de avaliação falsa. Adulteração (tampering): editar a severidade de um achado depois da lacração. Repúdio: nenhum autor nos eventos de negação. Divulgação de informação: bucket de evidências legível por qualquer um. Negação de serviço: scanner inundando o cliente. Elevação: o papel de operador consegue ampliar o escopo sozinho. Cada linha recebe um requisito de mitigação. Cada linha vira uma mitigação com um dono, não um slide. Contas falsificadas exigem um vínculo forte com o IdP; edições de severidade depois da lacração exigem imutabilidade ou controle duplo; autores ausentes exigem campos obrigatórios. Inundações de scanner são problemas de ROE e de limite de taxa tanto quanto de disponibilidade. Sam acompanha as seis linhas no backlog até que cada uma tenha um teste.

23.3 As ameaças do engajamento ficam nos documentos de escopo

As ameaças ao cliente pertencem ao cenário guiado por ameaças do engajamento (se houver), não a funcionalidades do TrackScope. Não construa uma "exploração automatizada" para satisfazer uma linha do STRIDE. Manter as ameaças do cenário do cliente fora do backlog do produto impede que o TrackScope desenvolva um motor de exploração. Exercícios guiados por ameaças pertencem ao pacote do engajamento, com sua própria autorização. Sam fecha pedidos de funcionalidade que tentam infiltrar táticas de engajamento em épicos da plataforma.

Caso sintético — Riverstone Transit. A linha STRIDE "falha aberta" virou o requisito de segurança S-3 (Capítulo 21). A linha "ampliação de escopo por uma só pessoa" virou a etapa de aprovação dupla (Capítulo 14).

23.4 Erros e limites

O STRIDE é um estímulo, não uma prova. Revisite-o depois de mudanças na arquitetura. Uma passada de STRIDE do ano passado não enxerga a fronteira de confiança de um novo adaptador SaaS. A revisita é disparada por mudanças na arquitetura, não só pelo calendário. Sam agenda uma passada de ameaças quando qualquer nova saída ou provedor de identidade é acrescentado, e o log de mudanças da lista de ameaças cita o pull request que acrescentou cada adaptador, para que as linhas desatualizadas fiquem óbvias. A linha do adaptador de logs SaaS foi acrescentada na mesma semana de seu pull request; sem essa citação, a revisão do semestre seguinte teria presumido que o antigo modelo, só com o jumphost, ainda valia.

23.2b Casos de abuso vs. casos de mau uso

Casos de abuso são ações intencionais de um adversário contra a plataforma (forjar uma assinatura de política). Casos de mau uso são operadores honestos cometendo erros perigosos (colar um CIDR que inclui um parceiro). Desenhe controles para os dois; treinamento sozinho não impede o mau uso quando a interface faz da ampliação de escopo um único clique. Um botão de ampliação de escopo com um único clique atrai o mau uso mesmo entre funcionários honestos. Forjar uma assinatura de política é abuso e exige verificações criptográficas. Treinamento sem atrito na interface falha na primeira sexta-feira corrida. Sam exige uma segunda pessoa ou um atraso em toda ação de ampliação.

23.3b Alimentando o backlog

As linhas do STRIDE viram issues com links para os requisitos. Linhas sem dono são teatro. Revise a lista de ameaças ao acrescentar uma nova fronteira de confiança (por exemplo, um novo adaptador SaaS) — não só no início do programa. Linhas do STRIDE sem dono são decoração. Links para ids de requisitos tornam as mitigações entregáveis. Novas fronteiras de confiança reabrem a lista mesmo no meio do programa. A definição de pronto de Sam para uma linha de ameaça inclui um teste com merge ou um risco aceito com o nome de um executivo, e o quadro do sprint mostra essas linhas ao lado das funcionalidades, para que o trabalho de segurança não se esconda numa planilha paralela.

23.1b Presumindo o comprometimento do jumphost

Inclua "jumphost comprometido" no modelo de ameaças da plataforma: credenciais de vida curta, listas de saída permitida e revogação rápida. Se a sua resposta for só "confie no jumphost", a análise está incompleta. Credenciais de vida curta e listas de saída permitida pressupõem que o host será roubado algum dia. A revogação rápida é praticada, não esperada. Confiança sem esses controles é esperança. O exercício de mesa de Sam sempre inclui uma hora de jumphost roubado. Os exercícios de revogação usam uma imagem reserva de jumphost, reconstruída depois a partir da branch dourada, para que os engajamentos de produção não sejam interrompidos e não se acumulem resquícios.

23.4b Classificando as ameaças à plataforma

Sam classifica os achados do STRIDE pela consequência para o cliente: um arquivo de escopo adulterado que deixa o teste alcançar um host de sinalização ferroviária excluído vem primeiro; um login de painel falsificado que vaza gráficos de cobertura fica mais abaixo. A classificação decide quais mitigações entram antes do próximo engajamento. A consequência para o cliente vale mais que a esperteza do ataque. Hosts de sinalização vêm antes de métricas de vaidade do painel. A classificação define a ordem das mitigações antes da próxima janela. Sam publica as cinco primeiras no quadro da equipe durante o planejamento.

Exercícios

Síntese

Analise como sua plataforma pode prejudicar o cliente ou mentir; mitigue isso primeiro.

Continue estudando — capítulo 23 de 50

← Capítulo 22 (rascunho) · Índice de capítulos do curso · Capítulo 24 (rascunho) →