{"slug":"security-threat-model","title":"security-threat-model","summary":"Repository-grounded threat modeling that enumerates trust boundaries, assets, attacker capabilities, abuse paths, and mitigations, and writes a concise Markdown threat model. Trigger only when the user explicitly asks to threat model a codebase or path, enumerate threats/abuse pa","platform":"ChatGPT","tags":[],"authorName":"LLM Mart","authorSlug":"llm-mart","score":0,"source":"github","price":null,"verified":false,"createdAt":"2026-08-12T22:20:10.891669Z","repo":{"url":"https://github.com/openai/skills","stars":27615,"forks":1868,"license":null,"updatedAt":"2026-09-08T20:35:26Z"},"bodyHtml":"<hr>\n<h2>name: \"security-threat-model\"\ndescription: \"Repository-grounded threat modeling that enumerates trust boundaries, assets, attacker capabilities, abuse paths, and mitigations, and writes a concise Markdown threat model. Trigger only when the user explicitly asks to threat model a codebase or path, enumerate threats/abuse paths, or perform AppSec threat modeling. Do not trigger for general architecture summaries, code review, or non-security design work.\"</h2>\n<h1>Threat Model Source Code Repo</h1>\n<p>Deliver an actionable AppSec-grade threat model that is specific to the repository or a project path, not a generic checklist. Anchor every architectural claim to evidence in the repo and keep assumptions explicit. Prioritizing realistic attacker goals and concrete impacts over generic checklists.</p>\n<h2>Quick start</h2>\n<ol>\n<li>Collect (or infer) inputs:</li>\n</ol>\n<ul>\n<li>Repo root path and any in-scope paths.</li>\n<li>Intended usage, deployment model, internet exposure, and auth expectations (if known).</li>\n<li>Any existing repository summary or architecture spec.</li>\n<li>Use prompts in <code>references/prompt-template.md</code> to generate a repository summary.</li>\n<li>Follow the required output contract in <code>references/prompt-template.md</code>. Use it verbatim when possible.</li>\n</ul>\n<h2>Workflow</h2>\n<h3>1) Scope and extract the system model</h3>\n<ul>\n<li>Identify primary components, data stores, and external integrations from the repo summary.</li>\n<li>Identify how the system runs (server, CLI, library, worker) and its entrypoints.</li>\n<li>Separate runtime behavior from CI/build/dev tooling and from tests/examples.</li>\n<li>Map the in-scope locations to those components and exclude out-of-scope items explicitly.</li>\n<li>Do not claim components, flows, or controls without evidence.</li>\n</ul>\n<h3>2) Derive boundaries, assets, and entry points</h3>\n<ul>\n<li>Enumerate trust boundaries as concrete edges between components, noting protocol, auth, encryption, validation, and rate limiting.</li>\n<li>List assets that drive risk (data, credentials, models, config, compute resources, audit logs).</li>\n<li>Identify entry points (endpoints, upload surfaces, parsers/decoders, job triggers, admin tooling, logging/error sinks).</li>\n</ul>\n<h3>3) Calibrate assets and attacker capabilities</h3>\n<ul>\n<li>List the assets that drive risk (credentials, PII, integrity-critical state, availability-critical components, build artifacts).</li>\n<li>Describe realistic attacker capabilities based on exposure and intended usage.</li>\n<li>Explicitly note non-capabilities to avoid inflated severity.</li>\n</ul>\n<h3>4) Enumerate threats as abuse paths</h3>\n<ul>\n<li>Prefer attacker goals that map to assets and boundaries (exfiltration, privilege escalation, integrity compromise, denial of service).</li>\n<li>Classify each threat and tie it to impacted assets.</li>\n<li>Keep the number of threats small but high quality.</li>\n</ul>\n<h3>5) Prioritize with explicit likelihood and impact reasoning</h3>\n<ul>\n<li>Use qualitative likelihood and impact (low/medium/high) with short justifications.</li>\n<li>Set overall priority (critical/high/medium/low) using likelihood x impact, adjusted for existing controls.</li>\n<li>State which assumptions most influence the ranking.</li>\n</ul>\n<h3>6) Validate service context and assumptions with the user</h3>\n<ul>\n<li>Summarize key assumptions that materially affect threat ranking or scope, then ask the user to confirm or correct them.</li>\n<li>Ask 1–3 targeted questions to resolve missing context (service owner and environment, scale/users, deployment model, authn/authz, internet exposure, data sensitivity, multi-tenancy).</li>\n<li>Pause and wait for user feedback before producing the final report.</li>\n<li>If the user declines or can’t answer, state which assumptions remain and how they influence priority.</li>\n</ul>\n<h3>7) Recommend mitigations and focus paths</h3>\n<ul>\n<li>Distinguish existing mitigations (with evidence) from recommended mitigations.</li>\n<li>Tie mitigations to concrete locations (component, boundary, or entry point) and control types (authZ checks, input validation, schema enforcement, sandboxing, rate limits, secrets isolation, audit logging).</li>\n<li>Prefer specific implementation hints over generic advice (e.g., \"enforce schema at gateway for upload payloads\" vs \"validate inputs\").</li>\n<li>Base recommendations on validated user context; if assumptions remain unresolved, mark recommendations as conditional.</li>\n</ul>\n<h3>8) Run a quality check before finalizing</h3>\n<ul>\n<li>Confirm all discovered entrypoints are covered.</li>\n<li>Confirm each trust boundary is represented in threats.</li>\n<li>Confirm runtime vs CI/dev separation.</li>\n<li>Confirm user clarifications (or explicit non-responses) are reflected.</li>\n<li>Confirm assumptions and open questions are explicit.</li>\n<li>Confirm that the format of the report matches closely the required output format defined in prompt template: <code>references/prompt-template.md</code></li>\n<li>Write the final Markdown to a file named <code>&lt;repo-or-dir-name&gt;-threat-model.md</code> (use the basename of the repo root, or the in-scope directory if you were asked to model a subpath).</li>\n</ul>\n<h2>Risk prioritization guidance (illustrative, not exhaustive)</h2>\n<ul>\n<li>High: pre-auth RCE, auth bypass, cross-tenant access, sensitive data exfiltration, key or token theft, model or config integrity compromise, sandbox escape.</li>\n<li>Medium: targeted DoS of critical components, partial data exposure, rate-limit bypass with measurable impact, log/metrics poisoning that affects detection.</li>\n<li>Low: low-sensitivity info leaks, noisy DoS with easy mitigation, issues requiring unlikely preconditions.</li>\n</ul>\n<h2>References</h2>\n<ul>\n<li>Output contract and full prompt template: <code>references/prompt-template.md</code></li>\n<li>Optional controls/asset list: <code>references/security-controls-and-assets.md</code></li>\n</ul>\n<p>Only load the reference files you need. Keep the final result concise, grounded, and reviewable.</p>\n","files":[{"path":"agents/openai.yaml","sizeBytes":254,"isText":true},{"path":"LICENSE.txt","sizeBytes":10776,"isText":true},{"path":"references/prompt-template.md","sizeBytes":12642,"isText":true},{"path":"references/security-controls-and-assets.md","sizeBytes":1680,"isText":true},{"path":"SKILL.md","sizeBytes":5561,"isText":true}],"reviewScore":null,"reviewSummary":null,"trust":{"provenance":"human-reviewed","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow.","bodySource":null},"bodyLocked":false,"purchaseUrl":null,"sourceUrl":null,"report":{"provenance":"human-reviewed","screen":{"ran":true,"outcome":"flagged-cleared-by-moderator","suspicious":1,"notes":0,"hiddenCharacters":false},"virusScan":{"engine":"clamav","status":"clean","scannedAt":"2026-08-12T22:21:12.714258Z","sha256":"F09A5F541158024AF7560A33208E2E7302F4A613C5D36FF6D41FE7A6E8B9FB99","sizeBytes":13191},"review":null,"source":{"repositoryUrl":"https://github.com/openai/skills","path":"skills/.curated/security-threat-model","license":null,"commit":"49f948faa9258a0c61caceaf225e179651397431","subtreeSha":"4A2B187F75C5478A5FD1F4C18D47C2277EB839CB271F4F3D38636DD0E3D09964","lastSyncedAt":"2026-09-25T06:49:08.341535Z"},"reviewedAt":"2026-08-13T16:10:21.611225Z","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow."},"install":[{"target":"skills-cli","command":"npx skills add https://github.com/openai/skills/tree/main/skills/.curated/security-threat-model"},{"target":"claude-code","command":"claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install openai-skills@llmmart"},{"target":"git","command":"git clone https://github.com/openai/skills.git"}]}