5 lessons

Secure Software Design

Secure defaults, fail closed, complete mediation, minimal trusted computing base, error handling that does not leak, and audit logs that answer questions.

AssetThreatAttack SurfaceTrust BoundaryVulnerabilityExploit PathImpactMitigationDefense in DepthResidual Risk

Every lesson below identifies the asset, attacker capability and boundary before naming the vulnerability. Controls are split into prevention, detection and recovery; residual risk is explicit.