Threat Model Analyst
SkillSecurityUse when a repository, system, or major change needs a structured STRIDE-A threat model — map architecture, data flows, trust boundaries, abuse cases, and prioritized findings, or update an existing model with a change-focused diff.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Threat Model Analyst skill
What this skill tells your AI
The instructions your AI receives, as published by drvoss/everything-copilot-cli in skills/security/threat-model-analyst/SKILL.md and read by ahel’s review.
Perform architecture-first security analysis using STRIDE-A: classic STRIDE plus explicit abuse-case thinking.
When to Use
- A new system or subsystem needs an initial threat model
- A major change landed and the question is "what changed security-wise?"
- You need to reason about trust boundaries, data flows, or risky integrations before implementation
- A security review needs architecture evidence, not only code-pattern scanning
When NOT to Use
| Instead of threat-model-analyst | Use |
|---|---|
| Code-level vulnerability scanning | security-scan or pr-security-review |
| Broad repository posture scoring | evaluate-repository |
| Agent-specific OWASP checklist review | agent-owasp-check |
| Supply-chain integrity validation | agent-supply-chain |
Modes
Single Analysis
Use when there is no prior threat model or when the whole system needs review.
Incremental Analysis
Use when a previous threat model exists and you need to compare the current system or a specific commit against that baseline.
Incremental mode is often the better day-to-day workflow because it highlights:
- new threats
- resolved threats
- still-present threats
- trust-boundary changes
- differences in severity or exploitability
Workflow
1. Define scope and assets
Clarify:
- what system or subsystem is in scope
- what assets matter most
- what actors exist
- what trust boundaries separate them
List obvious inputs and high-value outcomes before reading code in detail.
2. Build an architecture and data-flow sketch
You do not need perfect diagrams before analysis, but you do need a concrete model of:
- components
- entry points
- data stores
- external systems
- privileged execution zones
- trust boundaries between them
Represent the system as a lightweight DFD or component map if helpful.
3. Apply STRIDE-A to each component and flow
For each component or trust boundary, ask:
| Dimension | Question |
|---|---|
| Spoofing | Who could impersonate a user, service, or agent? |
| Tampering | What data or configuration could be modified without detection? |
| Repudiation | What actions would be hard to prove later? |
| Information Disclosure | What could leak across the boundary? |
| Denial of Service | What could exhaust or block the system? |
| Elevation of Privilege | What paths raise privileges unexpectedly? |
| Abuse | What realistic misuse path would an attacker or insider choose? |
4. Score and prioritize findings
For each finding, record:
- affected component or trust boundary
- short threat statement
- exploit path
- likely impact
- mitigating controls already present
- suggested remediation
Map to CWE, OWASP, or CVSS only when it clarifies the issue instead of bloating the report.
5. Run incremental analysis for changes
When comparing against a prior threat model, explicitly classify each item as:
- new
- resolved
- still present
- changed severity
This is especially useful for:
- new integrations
- changed authentication flows
- new background jobs or agents
- infrastructure moves
- CI/CD or deployment changes
6. Produce a concise decision-ready report
A good threat model report should leave the reader with:
- the architecture in scope
- the highest-risk boundaries
- the top findings in priority order
- what changed since the last model, if applicable
- the next mitigation step
Suggested structure:
## Architecture Overview
- ...
## Trust Boundaries
- ...
## STRIDE-A Findings
- [High] ...
- [Medium] ...
## Change Diff
- New: ...
- Resolved: ...
- Still present: ...
## Next Mitigations
- ...
Common Rationalizations
| Rationalization | Reality |
|---|---|
| "We'll just scan the code for vulnerabilities." | Code scanning misses architecture flaws, broken trust boundaries, and misuse paths. |
| "The old threat model is close enough." | Architecture drift makes stale threat models dangerously reassuring. |
| "Abuse cases are too speculative." | Real attackers optimize for abuse paths, not textbook categories. |
Red Flags
- No one can name the trust boundaries in the system
- External systems are treated as trusted by default
- Authentication or authorization changes are documented only at code level
- A prior threat model exists but no change diff was done after a major update
Verification
- The system scope and assets are explicit
- Components, flows, and trust boundaries were identified
- STRIDE-A was applied to each meaningful boundary or component
- Findings are prioritized instead of left as an unranked brainstorm
- Incremental changes are called out separately when a baseline exists
See Also
security-scan- inspect code-level vulnerabilities after the model identifies hot spotsagent-owasp-check- review agent-specific OWASP ASI riskssecurity-audit- broader workflow for OWASP plus STRIDE review
Signals
- GitHub stars
- 46
- Forks
- 11
- Last commit
- Aug 2026
Advanced
- Catalog kind
- skill
- Gateway key
threat-model-analyst- Source
- github.com/drvoss/everything-copilot-cli