Threat Model Analyst

SkillSecurity

Use 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.

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-analystUse
Code-level vulnerability scanningsecurity-scan or pr-security-review
Broad repository posture scoringevaluate-repository
Agent-specific OWASP checklist reviewagent-owasp-check
Supply-chain integrity validationagent-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:

DimensionQuestion
SpoofingWho could impersonate a user, service, or agent?
TamperingWhat data or configuration could be modified without detection?
RepudiationWhat actions would be hard to prove later?
Information DisclosureWhat could leak across the boundary?
Denial of ServiceWhat could exhaust or block the system?
Elevation of PrivilegeWhat paths raise privileges unexpectedly?
AbuseWhat 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

RationalizationReality
"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

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