ワンクリックで
stride-dread
STRIDE threat enumeration (prose judgment) + deterministic DREAD severity scoring (executable script)
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
STRIDE threat enumeration (prose judgment) + deterministic DREAD severity scoring (executable script)
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
| name | stride-dread |
| description | STRIDE threat enumeration (prose judgment) + deterministic DREAD severity scoring (executable script) |
| version | 2.0.0 |
| source | derived from .claude/agents/_archive/sec.md (2026-04-22); L3 scorer added 2026-05-20 |
| when_to_use | ["Reviewing authentication, authorization, or session management","Designing APIs that handle user data or PII","Reviewing cryptography, secrets management, or key storage","Performing threat modeling on new architecture","Security-critical code review (auth, crypto, data handling)"] |
| allowed-tools | ["Read","Grep","Glob","Bash"] |
Use this skill for structured threat identification and severity scoring. Apply before code review, not after.
STRIDE enumeration is prose judgment — the model reasons through each category. DREAD scoring is deterministic arithmetic — the script computes it exactly and consistently. Never re-derive DREAD scores by hand; always run the scorer.
Enumerate ALL six categories before reviewing code. Never skip categories — absence of a threat is still a finding.
| Category | Question to Answer |
|---|---|
| Spoofing | Can an attacker impersonate a user, service, or system component? |
| Tampering | Can data be modified in transit, at rest, or in processing? |
| Repudiation | Can actions be denied without an audit trail? |
| Information Disclosure | Can sensitive data leak to unauthorized parties? |
| Denial of Service | Can availability be degraded or exhausted? |
| Elevation of Privilege | Can an attacker gain access beyond their authorization? |
Rate each identified threat 1–10 on each of the five DREAD dimensions. The script computes the per-finding average and assigns a severity band.
| Key | Dimension | 1 | 5 | 10 |
|---|---|---|---|---|
| D | Damage potential | Minimal | User data exposed | Mass compromise |
| R | Reproducibility | Requires specific state | Usually reproducible | Always reproducible |
| E | Exploitability | Expert + physical access | Authenticated user | Anyone, unauthenticated |
| A | Affected users | Single user | Subset of users | All users |
| D2 | Discoverability | Obscure internals | Documented behavior | Visible in source/network |
Band thresholds (documented in script, not guessed):
After enumerating STRIDE threats, assemble findings as a JSON array and run the scorer. Consume its output only — the script source never enters context.
Format each finding:
[
{
"title": "Short description of the threat",
"D": 8,
"R": 7,
"E": 6,
"A": 9,
"D2": 5
}
]
Run via Bash (file argument):
python .claude/skills/security/stride-dread/scripts/dread_score.py findings.json
Run via Bash (stdin):
echo '<json array>' | python .claude/skills/security/stride-dread/scripts/dread_score.py -
The script outputs:
findings (score + band appended) and a summary of band counts.Error handling: The script exits non-zero with a clear error message to stderr on invalid dimensions (out of 1-10 range), malformed JSON, or missing fields. Fix the input and re-run — never manually patch the score.
What the agent does with the output:
python .claude/skills/security/stride-dread/scripts/dread_score.py findings.jsonCross-reference findings against OWASP Top 10. Any miss here is a gap in the review.
For any code handling secrets (API keys, tokens, passwords):
If ANY step is missing, flag as High severity minimum.
Self-Critique: "Can I classify every finding under STRIDE? Did I run the scorer (not eyeball it)? Would a pentester find something I missed in 10 minutes of black-box testing?"