Threat Modeling and Secure Design Principles
Engineer/DeveloperSecurity Specialist
No contributors yet. Be the first to contribute!
🔑 Key Takeaway: Threat modeling before build chooses which controls matter. Secure design principles keep residual risk from depending on a single lucky check.
Threat modeling and secure design identify and mitigate security threats during design—before code cements bad assumptions. For broader organizational threat-modeling practice, see the dedicated Threat Modeling framework.
Threat modeling
- Identify assets
- Name what needs protection: user funds, sensitive data, credentials, admin keys, intellectual property, and reputation-critical services.
- Identify threats
- Enumerate threats against those assets. STRIDE (Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, Elevation of Privilege) is one common structure—not the only valid one.
- Assess risks
- Rank threats by likelihood and impact in the real deployment context.
- Develop mitigations
- Design controls that reduce the top risks first; accept residual risk consciously.
- Validate and iterate
- Update the model as architecture, trust boundaries, and assets change.
Secure design principles
- Least privilege
- Grant users and systems only the access required for the function.
- Defense in depth
- Layer independent controls so single failures do not equal total loss.
- Fail securely
- On error, prefer closed/safe states; do not leak secrets in failure paths.
- Secure defaults
- Ship restrictive defaults; require deliberate action to weaken security.
- Separation of duties
- Split powerful actions so one person or service cannot unilaterally abuse the system.
- Secure by design
- Treat security as a first-class design constraint at every major architecture decision.
Further Reading
- Threat Modeling framework
- OWASP Threat Modeling
- Microsoft SDL — Threat modeling
- NIST SSDF (SP 800-218)