skills/sentinel/skills/stride/SKILL.md
STRIDE threat modeling. Use when the user asks to "run STRIDE", "threat model with STRIDE", "check for spoofing/tampering/repudiation/info disclosure/DoS/ privilege escalation", or invokes /sentinel:stride. Analyzes the codebase across all 6 STRIDE threat categories (Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, Elevation of Privilege).
npx skillsauth add 0x1337c0d3/claude-security strideInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Analyze the codebase across all 6 STRIDE threat categories. Each category maps to a violated security property and a set of concrete code patterns to detect.
Load ../../references/stride.md for the full STRIDE category definitions,
applicable controls, CWE mappings, and OWASP cross-references.
/sentinel:stride # Full STRIDE analysis (all 6 categories)
/sentinel:stride --only S,E # Only Spoofing and Elevation of Privilege
/sentinel:stride --depth deep # Trace data flows across trust boundaries
/sentinel:stride --fix # Include fix suggestions inline
| Letter | Category | Security Property | Finding Prefix | Focus |
|--------|----------|-------------------|----------------|-------|
| S | Spoofing | Authentication | SPOOF | Token forgery, session fixation, credential theft, identity impersonation |
| T | Tampering | Integrity | TAMP | SQL injection, parameter tampering, MITM, file modification, XSS |
| R | Repudiation | Non-repudiation | REPUD | Missing audit logs, log tampering, insufficient forensic evidence |
| I | Information Disclosure | Confidentiality | DISC | Error message leaks, sensitive data in logs, cleartext transmission |
| D | Denial of Service | Availability | DOS | Resource exhaustion, ReDoS, no rate limiting, decompression bombs |
| E | Elevation of Privilege | Authorization | PRIV | Broken access control, IDOR, JWT manipulation, role confusion |
Default scope: full codebase. Build a focused file list for each category:
| Category | File Patterns to Prioritize | |----------|---------------------------| | S - Spoofing | Auth controllers, session middleware, token validation, login/register routes | | T - Tampering | Input handlers, database queries, API endpoints, file operations | | R - Repudiation | Logging config, audit trail, transaction records, security event handlers | | I - Info Disclosure | Error handlers, API responses, log statements, config files, env vars | | D - DoS | Input parsers, regex patterns, resource allocation, file uploads, rate limiting | | E - Privilege Escalation | Authorization middleware, role checks, admin routes, RBAC config |
Work through each relevant category (all 6 by default, or --only selection).
For each category, look for the patterns below and produce findings.
alg: none accepted or algorithm not validatedMath.random() or non-cryptographic RNG== instead of constant-time comparisonstate parameter missing or not validatedexp claim check)HttpOnly, Secure, or SameSite flagsX-HTTP-Method-Overrideexec, system)../ in file operations)/debug, /metrics with internals)LIMIT, no pagination)role or isAdmin claim modifiable without signature verificationFor each finding:
[STRIDE-XXX] Title
Category: [S/T/R/I/D/E] | Severity: CRITICAL/HIGH/MEDIUM/LOW | CWE: CWE-XXX
Location: file:line | Confidence: HIGH/MEDIUM/LOW
STRIDE category: [Category name] — [Security property violated]
Attack scenario:
1. [Attacker action]
2. [What the code fails to do]
3. [Impact]
Evidence:
[vulnerable code snippet]
Fix:
[corrected code + one-line explanation]
OWASP: [OWASP 2021 category] | Compliance: [relevant frameworks]
Build a matrix showing which STRIDE categories produced findings per component:
| Component | S | T | R | I | D | E | Findings |
|-----------|---|---|---|---|---|---|----------|
| Auth controller | X | | | | | X | SPOOF-001, PRIV-002 |
| API gateway | | X | | X | X | | TAMP-001, DISC-003 |
Produce findings ranked by severity. Then the threat matrix. Then write report:
OUTPUT_DIR=$(git rev-parse --show-toplevel 2>/dev/null || echo "$PWD")
REPORT_FILE="${OUTPUT_DIR}/stride-$(date +%Y%m%d).md"
Save the full report to ${REPORT_FILE}.
If Sentinel has run recently (check for reports/security-*.md):
| Severity | Criteria | |----------|----------| | CRITICAL | Auth bypass (S/E), RCE via injection (T), mass data disclosure (I) | | HIGH | SQLi, stored XSS, IDOR on sensitive data, no rate limit on auth | | MEDIUM | Reflected XSS, log gaps, excessive data exposure, ReDoS on public input | | LOW | Missing security headers, verbose errors, minor info disclosure |
Format your final output following the standard Sentinel report structure defined in
${CLAUDE_SKILL_DIR}/../../templates/report.md. Use your skill's domain-specific
finding IDs (e.g. STRIDE-SPOOF-001, RT-SK-001, API-001) in the Finding ID column.
Include the Security Scorecard and Findings sections as a minimum. Omit the
Cross-Validation Summary section if you ran only AI analysis (no tool comparison).
data-ai
Adversarial analysis from 6 attacker personas. Use when the user asks to "red team this", "think like an attacker", "simulate an attack", "threat model as an adversary", or wants to understand how their app would be attacked by a script kiddie, insider, organized crime, nation-state, hacktivist, or supply chain attacker. Invoke with /sentinel:red-team.
testing
Detect race condition vulnerabilities. Use when the user asks to "check for race conditions", "find TOCTOU bugs", "analyze concurrency issues", "detect double-spend vulnerabilities", "check for check-then-act patterns", or mentions "race condition", "TOCTOU", "double-spend", "concurrency", "atomicity", or "thread safety" in a security context. Invoke with /sentinel:race-conditions.
testing
Detect business logic security vulnerabilities. Use when the user asks to "check business logic security", "find logic flaws", "audit workflow security", "check for coupon abuse", "detect negative amount exploits", "analyze state machine security", or mentions "business logic", "workflow bypass", "negative amount", "coupon abuse", "self-referral", "state manipulation", or "price manipulation" in a security context. Invoke with /sentinel:business-logic.
tools
Intelligence-driven security analysis — the reasoning layer that complements Sentinel's tool-based scanning. Use this skill when the user says "analyze these findings", "explain this vulnerability", "is this exploitable", "false positive?", "fix this security issue", "threat model this", "audit my Dockerfile/Terraform/k8s/GitHub Actions", "harden this config", "review my auth code", "is this JWT safe", "check for secrets", or pastes Sentinel's consolidated.json for deeper analysis. Also trigger on any security question after `/sentinel:sentinel` has run. Works without any tools installed — pure Claude intelligence. Part of the Sentinel plugin (github.com/alissonlinneker/sentinel-claude-skill).