Claude Skill

threat-modeling

Identifies what could go wrong in a system before it is built or changed — the assets worth attacking, the entry points, the trust boundaries, and the controls that actually address the realistic threats. Use this when designing a feature or system, when a change touches authenti

LLM Mart · 0 points · 17 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download cbrock84-headcount-plugins_security_skills_threat-modeling-98d1c17.zip · 2 KB
Part of cbrock84/headcount — 160 skills

Install

skills CLI npx skills add https://github.com/cbrock84/headcount/tree/main/plugins/security/skills/threat-modeling
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install cbrock84-headcount@llmmart
Git git clone https://github.com/cbrock84/headcount.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole cbrock84/headcount collection as a plugin from our marketplace. Git is the plain clone.

Skill manifest

Threat modeling

Done at design time this is cheap and changes the design. Done after launch it produces a list of things that are expensive to fix, so the timing is most of the value.

Four questions, in order

1. What are we building? A diagram of the actual data flow — not the org chart, not the marketing architecture. Components, the data moving between them, and where each store lives. If nobody can draw it, that is the first finding.

Mark the trust boundaries: every point where data crosses from something you control to something you do not, or from one privilege level to another. Almost every real vulnerability lives on a boundary.

2. What can go wrong? Walk each boundary and each asset. A usable prompt set:

  • Spoofing — can someone claim to be another user, service, or system?
  • Tampering — can data be modified in transit, at rest, or in the client?
  • Repudiation — can someone deny an action, and would we be able to show otherwise?
  • Information disclosure — what leaks: to other users, to logs, to error messages, to the client bundle?
  • Denial of service — what is unbounded? Uploads, queries, retries, fan-out.
  • Elevation of privilege — can a user reach data or actions belonging to another tenant, role, or account?

Two that catch more real bugs than the classic list: what does the client enforce that the server does not, and what happens on the second attempt — replay, race, and double-submit.

3. What are we going to do about it? For each realistic threat: mitigate, transfer, avoid, or accept. Accepting is legitimate; accepting silently is not.

Prioritize by attacker effort against impact, not by how alarming it sounds. A trivially exploitable tenant-isolation bug outranks a theoretical timing attack every time.

4. Did we do a good job? Re-check the model when the design changes. A threat model that describes last quarter's architecture is worse than none, because it produces false confidence.

Scoping

Model per feature or per boundary, not per system. A whole-system model is too big to finish and too vague to act on.

Timebox it. An hour on a specific feature with the engineers who will build it beats a week-long exercise producing a document nobody reads.

Sources

references/sources.md in this skill lists the outside authorities that settle the questions here — what each one is authoritative for, and what you may do with it. Check them before answering on anything they cover, and cite what you used. Most are free to read and not free to reproduce; the use note on each is binding.

Never

  • Model the system as designed rather than as built. Ask what actually got shipped.
  • Assume internal traffic is trusted. That assumption is what turns one compromised service into an incident.
  • Accept "the framework handles that" without checking that it is configured to.
Files (headcount)
  • references
    • sources.md 1.2 KB
      # Sources — `security:threat-modeling`
      
      <!-- Generated by scripts/build-sources.py from sources/*.toml. Do not edit. -->
      
      Check these before answering on anything they cover, and cite what you used. The use note on each one is binding: most of what a professional cites is free to read and not free to reproduce.
      
      ## MITRE ATT&CK
      
      The MITRE Corporation · global · free to use with attribution — credit the publisher
      
      <https://attack.mitre.org/>
      
      Machine-readable: <https://github.com/mitre-attack/attack-stix-data>
      
      **Authoritative for:** The shared vocabulary for adversary tactics and techniques — what to name a behavior so a detection, a threat model and an incident report refer to the same thing.
      
      ## OWASP Top 10
      
      OWASP Foundation · global · CC BY-SA — quote with attribution; share-alike, so do not fold into this repository
      
      <https://owasp.org/www-project-top-ten/>
      
      **Authoritative for:** The application-security risk categories a customer questionnaire or a pen-test report will be organized around.
      
      ---
      
      Sources are maintained in `sources/` upstream, not here. If one is wrong, out of date, or missing, fix it there — this file is regenerated and an edit to it is lost.
      
  • SKILL.md 3.3 KB
    ---
    name: threat-modeling
    description: Identifies what could go wrong in a system before it is built or changed — the assets worth attacking, the entry points, the trust boundaries, and the controls that actually address the realistic threats. Use this when designing a feature or system, when a change touches authentication, data handling, payments, or external input, before a security review, or when deciding which security work is worth doing at all.
    ---
    
    # Threat modeling
    
    Done at design time this is cheap and changes the design. Done after launch it produces a list of
    things that are expensive to fix, so the timing is most of the value.
    
    ## Four questions, in order
    
    **1. What are we building?** A diagram of the actual data flow — not the org chart, not the
    marketing architecture. Components, the data moving between them, and where each store lives. If
    nobody can draw it, that is the first finding.
    
    Mark the **trust boundaries**: every point where data crosses from something you control to
    something you do not, or from one privilege level to another. Almost every real vulnerability lives
    on a boundary.
    
    **2. What can go wrong?** Walk each boundary and each asset. A usable prompt set:
    
    - **Spoofing** — can someone claim to be another user, service, or system?
    - **Tampering** — can data be modified in transit, at rest, or in the client?
    - **Repudiation** — can someone deny an action, and would we be able to show otherwise?
    - **Information disclosure** — what leaks: to other users, to logs, to error messages, to the
      client bundle?
    - **Denial of service** — what is unbounded? Uploads, queries, retries, fan-out.
    - **Elevation of privilege** — can a user reach data or actions belonging to another tenant, role,
      or account?
    
    Two that catch more real bugs than the classic list: **what does the client enforce that the server
    does not**, and **what happens on the second attempt** — replay, race, and double-submit.
    
    **3. What are we going to do about it?** For each realistic threat: mitigate, transfer, avoid, or
    accept. Accepting is legitimate; accepting silently is not.
    
    Prioritize by attacker effort against impact, not by how alarming it sounds. A trivially exploitable
    tenant-isolation bug outranks a theoretical timing attack every time.
    
    **4. Did we do a good job?** Re-check the model when the design changes. A threat model that
    describes last quarter's architecture is worse than none, because it produces false confidence.
    
    ## Scoping
    
    Model per feature or per boundary, not per system. A whole-system model is too big to finish and too
    vague to act on.
    
    Timebox it. An hour on a specific feature with the engineers who will build it beats a week-long
    exercise producing a document nobody reads.
    
    ## Sources
    
    `references/sources.md` in this skill lists the outside authorities that settle the questions
    here — what each one is authoritative for, and what you may do with it. Check them before
    answering on anything they cover, and cite what you used. Most are free to read and not free
    to reproduce; the use note on each is binding.
    
    ## Never
    
    - Model the system as designed rather than as built. Ask what actually got shipped.
    - Assume internal traffic is trusted. That assumption is what turns one compromised service into
      an incident.
    - Accept "the framework handles that" without checking that it is configured to.
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related