Threat Modeling Template
1. System Overview
Description
[Brief description of the system being modeled]
Architecture Diagram
Components
| Component |
Description |
Technology |
| Frontend |
Web UI |
React |
| API |
REST API |
Node.js |
| Database |
Data storage |
PostgreSQL |
Data Flows
| # |
From |
To |
Data |
Protocol |
| 1 |
Client |
API |
User requests |
HTTPS |
| 2 |
API |
DB |
Queries |
TCP/TLS |
2. Trust Boundaries
3. Threat Identification (STRIDE)
Spoofing
| ID |
Threat |
Component |
Mitigation |
| S1 |
Session hijacking |
API |
Use secure cookies, short TTL |
| S2 |
API impersonation |
Client |
Certificate pinning |
Tampering
| ID |
Threat |
Component |
Mitigation |
| T1 |
Request modification |
API |
Input validation, signing |
| T2 |
Data modification |
DB |
Access controls, audit logs |
Repudiation
| ID |
Threat |
Component |
Mitigation |
| R1 |
Action denial |
API |
Comprehensive logging |
Information Disclosure
| ID |
Threat |
Component |
Mitigation |
| I1 |
Data leak |
API |
Encryption, access controls |
| I2 |
Error messages |
All |
Generic error responses |
Denial of Service
| ID |
Threat |
Component |
Mitigation |
| D1 |
Resource exhaustion |
API |
Rate limiting, auto-scaling |
Elevation of Privilege
| ID |
Threat |
Component |
Mitigation |
| E1 |
IDOR |
API |
Authorization checks |
| E2 |
SQL injection |
DB |
Parameterized queries |
4. Risk Assessment
| Threat ID |
Likelihood |
Impact |
Risk |
Priority |
| S1 |
Medium |
High |
High |
P1 |
| E2 |
Low |
Critical |
High |
P1 |
5. Mitigations
| Threat ID |
Mitigation |
Status |
Owner |
| S1 |
Implement secure session management |
In Progress |
Auth Team |
| E2 |
Use ORM with parameterized queries |
Done |
Backend Team |
6. Residual Risks
[List any accepted risks with justification]