Modelar ameaças
Fronteiras de confiança, árvores de ataque, STRIDE e validação de hipóteses.
Fluxos e fronteiras
- Identifica ativos, componentes, dados trocados e quem controla cada entrada.
- Marca as fronteiras de confiança e a entidade que decide cada operação.
- Descreve capacidades do atacante, condição vulnerável, sequência de ações e efeito observável.
- 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 . 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
| Classe | Pergunta concreta |
|---|---|
| Spoofing | Uma sessão roubada permite assumir outra identidade? |
| Tampering | O cliente pode alterar o preço aceite pelo servidor? |
| Repudiation | Há registos protegidos que liguem a ação à identidade? |
| Information disclosure | A conta pode ler uma fatura alheia? |
| Denial of service | Que recurso se esgota e onde se limita? |
| Elevation of privilege | Quem 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.