Actors and identities
Identify end users, administrators, service identities, third parties, support personnel, automation, external systems, and unauthenticated actors. Record how each authenticates and what authority it can exercise.
Threat modeling is a structured way to ask what the system is protecting, who or what can interact with it, where trust changes, how an attacker could abuse intended functionality, which controls reduce those paths, and what evidence will show the design works. It is most valuable when performed while architecture can still change.
NIST’s Secure Software Development Framework calls for secure development practices across the lifecycle, while CISA’s Secure by Design work emphasizes shifting security responsibility upstream into product design and defaults. This guide turns those principles into a repeatable architecture-review workflow.
Require architecture review for new internet-facing services, new authentication or authorization models, privileged workflows, sensitive-data processing, cross-tenant designs, external integrations, major cloud migrations, new public APIs, payment or identity flows, new administrative planes, AI or automation that can take consequential actions, and material changes to existing trust boundaries.
Use lighter review for low-risk changes and deeper review for systems with high consequence. The process should help teams ship safely rather than force every change through the same committee. A small internal tool with no sensitive data does not need the same modeling depth as a public multi-tenant platform handling regulated records.
Repeat the model when architecture changes materially. A threat model from launch does not remain current after adding mobile clients, federated identity, third-party APIs, new cloud regions, public sharing, service accounts, or administrative automation.
Identify end users, administrators, service identities, third parties, support personnel, automation, external systems, and unauthenticated actors. Record how each authenticates and what authority it can exercise.
Map sensitive and security-relevant data from creation through processing, storage, transfer, export, logging, analytics, backup, and deletion. Mark where classification, ownership, or legal obligations change.
Mark transitions between browser and service, public internet and internal network, tenant and tenant, workload and control plane, user and administrator, application and database, service and supplier, managed and unmanaged device, and production and non-production environments.
Identify identity providers, key stores, secrets, administrative APIs, deployment systems, security tooling, payment services, data stores, backup systems, and other components whose compromise would create disproportionate impact.
Use structured categories such as spoofing, tampering, repudiation, information disclosure, denial of service, and elevation of privilege if they help the team reason consistently. Also use abuse cases tied to the product: cross-tenant access, invitation abuse, password reset takeover, payment manipulation, object enumeration, bulk export, malicious file processing, webhook abuse, SSRF, excessive automation, admin impersonation, or logging suppression.
Consider the attacker’s starting position. What can an unauthenticated user do? What changes if the attacker controls a normal account, a compromised endpoint, a vendor account, a service credential, an administrator session, or an internal network position? Different starting assumptions reveal different trust failures.
Model failure conditions as well as malicious activity. What happens if the identity provider is unavailable, the logging pipeline fails, a vendor API returns corrupted data, a queue replays requests, a backup is stale, or a policy engine cannot be reached? Security controls that fail open can create attack paths during outages.
Define authentication strength, session handling, tenant binding, least privilege, privileged elevation, service identity, object-level authorization, delegation, and recovery. Authorization should derive from trusted server-side context rather than attacker-controlled identifiers.
Define encryption, key ownership, classification, retention, export, masking, logging redaction, backup, and deletion. Protect sensitive data in temporary stores and telemetry as well as primary databases.
Validate untrusted input, constrain outbound requests, authenticate webhooks, protect parsers and file processors, validate redirect destinations, restrict dangerous protocols, and define trust requirements for third-party APIs.
Decide which abuse paths must generate logs or alerts, what context responders need, how compromised identities or integrations are revoked, and how the service returns to a trusted state after a security event.
For each material threat, document whether the design prevents it, detects it, limits consequence, transfers responsibility, accepts residual risk, or needs additional work. Assign an owner and target milestone for unresolved items.
Make important design decisions durable. Record why a particular authentication model, network boundary, tenant-isolation mechanism, encryption design, administrative workflow, external dependency, or logging architecture was chosen. Future teams need to understand the security assumptions before changing them.
Escalate risks that exceed the team’s authority. Product engineers should not silently accept organization-level legal, safety, privacy, or business-continuity consequences simply because a launch date is approaching.
High-risk projects and material architecture changes receiving threat modeling before production deployment.
Threat-model findings still open at release, segmented by consequence, owner, and approved acceptance.
Material threats with a corresponding automated test, security test, configuration check, detection test, or recovery exercise.
Production vulnerabilities or incidents caused by threat classes already identified in prior models, indicating weak remediation or poor reuse of lessons.
Define review triggers, a one-page threat-model template, trust-boundary conventions, risk escalation, and a pilot group of high-impact services.
Run facilitated models on pilot systems, convert threats into backlog items and tests, document architecture decisions, and create reusable threat patterns for identity, data, APIs, and integrations.
Integrate modeling into design review, measure open design risk and verification coverage, train engineering leads to facilitate lighter reviews, and feed production incidents back into the threat library.
Follow the next implementation topic without returning to search.
Design and operate APIs with current security controls
Continue readingIntegrate compliance evidence into CI workflows
Continue readingDefine, deploy, monitor, and govern secure configuration baselines and exceptions
Continue readingUse the source-backed research to pressure-test assumptions, then build a reusable evaluation brief before you compare products, scope implementation, or request a fit review.