Modelar ameaças

Fronteiras de confiança, árvores de ataque, STRIDE e validação de hipóteses.

TLDR

Perguntar sobre esta página

ChatGPTClaudePerplexityGrokGeminiCopiar e abrirDeepSeekCopiar e abrir

Fluxos e fronteiras

  1. Identifica ativos, componentes, dados trocados e quem controla cada entrada.
  2. Marca as fronteiras de confiança e a entidade que decide cada operação.
  3. Descreve capacidades do atacante, condição vulnerável, sequência de ações e efeito observável.
  4. Liga a defesa à condição explorada e declara o risco residual.

O navegador não decide preços. Para produto=7, quantidade=2, preco=1, o servidor consulta o preço autorizado 30 e calcula 2×30=602\times30=60. Validar que o preço recebido é positivo não estabelece a política. A confirmação de pagamento exige origem validada e correspondência com a encomenda e o montante.

STRIDE

ClassePergunta concreta
SpoofingUma sessão roubada permite assumir outra identidade?
TamperingO cliente pode alterar o preço aceite pelo servidor?
RepudiationHá registos protegidos que liguem a ação à identidade?
Information disclosureA conta pode ler uma fatura alheia?
Denial of serviceQue recurso se esgota e onde se limita?
Elevation of privilegeQuem pode alterar papéis ou ganhar autoridade?

Uma ameaça pode pertencer a várias classes. A etiqueta ajuda a procurar condições, mas não demonstra explorabilidade.

Árvores de ataque

  • Numa porta OU, basta um ramo. Impedir roubo de sessão deixa possível o ramo da autorização.
  • Numa porta E, todos os requisitos são necessários. Multiplicar probabilidades exige independência; somar ramos OU exige tratar a sua sobreposição.
  • Tratar todos os ramos desenhados cobre o modelo, não todos os ataques possíveis.

Evidência e autorização por objeto

GET /faturas/42 com sessão válida só deve devolver a fatura se aquela conta tiver permissão sobre o objeto. Testa a própria fatura, que deve ser permitida, e uma alheia, que deve ser negada. UUIDs dificultam descoberta, mas não substituem autorização.

CWE identifica uma classe de fraqueza; CVE identifica uma vulnerabilidade num produto/versão; um exploit demonstra um caminho. Confirma versão, configuração, acesso e mitigações antes de concluir que o caso é explorável.

Black-box parte de pouco conhecimento interno; white-box inclui conhecimento privilegiado. Ambos exigem âmbito e autorização. Uma campanha sem falhas encontradas não prova ausência de vulnerabilidades.

Análise completa da autorização.

À tua maneira

Aparência

Modo de cor
Tema
Cor de destaque

Leitura

Fonte de leitura

Álgebra, lógica e uma ideia de cada vez.

Código

Fonte do código

Navegação

Cursor de leitura, sem edição. h, j, k, l movem; / pesquisa nesta página. v seleciona caracteres; V seleciona linhas; y copia. Tab permite destacar ou comentar. Espaço ou Enter abre blocos recolhíveis. Nos cartões, h, j, k, l mudam o foco.

CSS personalizado

Ativa uma sugestão ou guarda o teu CSS. Só muda este navegador.

Usa --page, --text e --accent para acompanhar o tema.

Seletores e recuperação

.site-header, .prose, .course-card, [data-reading-history], [data-playground] e .page-actions.

Abre a aparência com a tecla vírgula ou no rodapé. Se o CSS esconder os controlos, abre esta página sem CSS personalizado.

Pesquisar

Escreve para pesquisar em todo o site.

para escolher · Enter para abrir · Esc para fechar

Copiar fórmula

A cópia automática não está disponível. Copia o LaTeX abaixo.

Pesquisar nesta página

Enter procura · n / N repetem · Esc cancela. Ctrl / Cmd K pesquisa todo o site.

Atalhos de teclado

Clica numa tecla para a mudar. Esc cancela. Backspace desativa.

PesquisarCtrl / Cmd K

Os atalhos não interferem enquanto escreves. Tab e Enter funcionam sempre.