Projeto 02: Modelagem de Ameaças com Framework STRIDE 🎯
Escopo do Projeto
Objetivo: Executar a modelagem de ameaças de uma arquitetura de microsserviços aplicando a metodologia STRIDE (Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service e Elevation of Privilege).
🎯 1. Contexto & Desafio Prático
A segurança preventiva de software começa antes da primeira linha de código ser escrita. Você analisará o fluxo de dados de uma carteira digital (Fintech), mapeando todos os pontos de entrada de dados não confiáveis e determinando as contramedidas necessárias para neutralizar as 6 categorias de ameaça do STRIDE.
📋 2. Requisitos Técnicos Obrigatórios
- R1 (Diagrama de Fluxo de Dados - DFD): Elaborar o DFD de Nível 1 destacando fronteiras de confiança (Trust Boundaries), processos, datastores e fluxos de rede.
- R2 (Matriz STRIDE Exaustiva): Mapear no mínimo 1 ameaça real para cada letra do acrônimo STRIDE sobre os elementos da arquitetura.
- R3 (Contramedidas de Engenharia): Para cada ameaça levantada, associar a tecnologia de mitigação mandatória (ex: MTLS para Spoofing, HMAC para Tampering).
- R4 (Cálculo de Severidade DREAD ou CVSS): Priorizar as vulnerabilidades atribuindo escores de risco objetivo.
📐 3. Diagrama Conceitual & Arquitetura
graph LR
User["Cliente Web"] -->|Trust Boundary 1| API["API Gateway (Borda)"]
API -->|Trust Boundary 2| Core["Core Banking Service"]
Core --> DB[("PostgreSQL Aurora")]
Threat1["Spoofing: Impersonar Usuário"] -.-> User
Threat2["Tampering: Alterar Valor do Pix"] -.-> API
Threat3["Info Disclosure: Vazamento de Saldo"] -.-> DB
style User fill:#e1f5fe,stroke:#01579b
style API fill:#fff3e0,stroke:#e65100
style Core fill:#f3e5f5,stroke:#7b1fa2
style DB fill:#e8f5e9,stroke:#2e7d32
style Threat1 fill:#ffebee,stroke:#c62828
style Threat2 fill:#ffebee,stroke:#c62828
style Threat3 fill:#ffebee,stroke:#c62828 💻 4. Especificação Técnica & Código de Referência
// stride_threat_matrix.md
| Categoria | Ameaça Identificada | Impacto | Contramedida de Engenharia |
| :--- | :--- | :---: | :--- |
| **S (Spoofing)** | Atacante forja token de acesso de outro usuário | Crítico | JWT assinado com chave assimétrica Ed25519 e verificação OIDC |
| **T (Tampering)** | Adulteração do payload da transação financeira em trânsito | Crítico | Cifragem autenticada AES-GCM com validação de tag e TLS 1.3 estrito |
| **R (Repudiation)**| Usuário nega ter efetuado transferência de alto valor | Alto | Assinatura digital do comprovante e auditoria criptográfica em Hash Chain |
| **I (Info Leak)** | Vazamento de dados de cartão em logs de erro | Alto | Sanitização automática de logs e mascaramento de campos confidenciais |
| **D (DoS)** | Exaustão de conexões via flood de requisições maliciosas | Médio | Rate limiting dinâmico em Redis e Web Application Firewall (WAF) |
| **E (Elevation)** | Usuário comum altera ID no header para virar Administrador | Crítico | Validação de escopos RBAC na camada de domínio com tokens opacos |
📦 5. Critérios de Avaliação e Entrega
- DFD completo com demarcação clara das fronteiras de confiança.
- Matriz STRIDE cobrindo as 6 categorias com contramedidas técnicas viáveis.
- Priorização clara dos riscos pelo impacto de negócio.