Coverage map
Every security outcome this site aims to cover, with its status, the guides, fix cards, labs and projects available for it, and what is still missing; planned outcomes and deliberate exclusions are listed with their reasons.
- 82covered
- 1partial
- 0planned
- 5out of scope
88 outcomes: 81 current, 2 historical references (counted by their status) and 5 out of scope. The material on each row is found from the content at every build. Browse every guide in the library, see the crosswalk by identifier, or download the map as JSON or CSV.
Coverage against public lists
How many entries of each list have a guide here (written about the entry, covering it in a dedicated section, or citing it), and how many have tested fix cards. SSDF counts the practices the guides name.
| List | With a guide | With fix cards |
|---|---|---|
| 2025 CWE Top 25 | 25 of 25 entries | 14 of 25 |
| OWASP Top 10:2025 | 10 of 10 entries | 8 of 10 |
| OWASP API Security Top 10 2023 | 10 of 10 entries | 6 of 10 |
| OWASP Top 10 for LLM Applications 2026 | 10 of 10 entries | 0 of 10 |
| OWASP Top 10 for Agentic Applications 2026 | 10 of 10 entries | 0 of 10 |
| OWASP ASVS 5.0.0 | 17 of 17 chapters | — |
| OWASP Kubernetes Top 10 2025 | 10 of 10 entries | 0 of 10 |
| OWASP Top 10 CI/CD Security Risks | 10 of 10 entries | 0 of 10 |
| OWASP MASVS 2.1.0 | 22 of 24 controls | 0 of 24 |
| OWASP ASVS 5.0.0 requirements | 179 of 345 requirements | 51 of 345 |
| NIST SSDF 1.1 practices | 19 of 19 practices | — |
88 outcomes
Application security23
APP-01Query and interpreter boundariesCovered8 guides · fix cards for 7 weaknesses · 6 labs · deepest: browser lab
Untrusted values cannot become query, command, template or expression structure.
Applies to: Node.js · Python · Java · C# · cross-platform parser design
Available material
- Fix SQL injection in Python sqlite3 · Guided practice
- Keep untrusted values out of executable syntax · Guided practice
- Prevent NoSQL, LDAP, XPath and expression-language injection · Guided practice
- Run external programs without command or argument injection · Guided practice
- Keep untrusted input out of eval, expression languages and templates · Guided practice
- Case study: Log4Shell (CVE-2021-44228) · Guided practice
- Case study: MOVEit Transfer mass exploitation (CVE-2023-34362) · Guided practice
- Case study: Spring4Shell (CVE-2022-22965) · Guided practice
- Fix cards: Code injection
- Fix cards: LDAP filter injection
- Fix cards: NoSQL operator injection
- Fix cards: OS command and argument injection
- Fix cards: Server-side template injection
- Fix cards: SQL injection
- Fix cards: XPath injection
- Actions injection lab: Flag GitHub Actions expression injection
- SQL injection lab: Separate SQL structure from data with sqlite3
- OS command injection lab: Run git without a shell
- SSTI lab: Render a welcome banner without template injection
- XXE lab: Parse an uploaded invoice without resolving external entities
- Pickle deserialization lab: Load a session token without pickle
Where coverage will grow
SQL injection has tested fixes in all ten fix-card stacks, OS command injection in six (Express, Flask, Spring Boot, ASP.NET Core, Next.js and Go), code injection in five (Express, Flask, Spring Boot's SpEL, ASP.NET Core and FastAPI), template injection in four (Express, Flask, Spring Boot and ASP.NET Core), XPath injection in three (Flask, Spring Boot and ASP.NET Core), and NoSQL and LDAP injection in two each (Express and Flask; Spring Boot and Flask). OS command and argument injection, and code, expression-language and template injection, each have a dedicated guide, and browser labs practise SQL injection, command injection and Jinja2 template injection. Not yet covered: command, code, template, XPath, NoSQL and LDAP injection cards for Rails and Laravel (Go has command injection only), and per-stack cards for expression languages other than SpEL.
Identifiers: CWE-89 · CWE-77 · CWE-78 · CWE-88 · CWE-94 · CWE-95 · CWE-90 · CWE-643 · CWE-917 · CWE-943 · CWE-1336
Mapped to: ASVS v5.0.0-1.2.4 (Relevant to the database-query portion)
APP-02Output contexts and rich textCovered3 guides · fix cards for 1 weakness · 2 labs · deepest: browser lab
User content is rendered safely in each parser context: HTML, attributes, URLs, scripts and the DOM.
Applies to: Browser HTML and DOM · server templates
Available material
- Prevent XSS at the output boundary · Guided practice
- Render rich text without granting it application privileges · Guided practice
- Prevent DOM XSS, postMessage abuse and client-side injection · Guided practice
- Fix cards: Cross-site scripting (XSS)
- XSS lab: Render a model’s answer as text instead of active markup
- HTML sanitization lab: Configure a sanitizer for user comments
Where coverage will grow
Server-side output encoding has tested fixes in nine stacks, every fix-card stack except FastAPI. Sanitizer and Trusted Types configurations are taught with examples, without a browser-run regression suite.
APP-03Object, action and field permissionsCovered6 guides · fix cards for 2 weaknesses · 5 labs · 1 project · deepest: local project
Every sensitive read or write checks the current actor, tenant, action and object relationship.
Applies to: HTTP APIs · Node.js and Express
Available material
- Enforce authorization for every object action · Guided practice
- Authorize functions and fields as well as objects · Guided practice
- Authorization models: RBAC, ABAC, ReBAC and policy as code you can test · Guided practice
- Case study: First American's EaglePro document exposure (2019) · Guided practice
- Review tenant boundaries before implementation · Guided practice
- Review a code change through its trust boundaries · Guided practice
- Fix cards: Missing object-level authorization (IDOR and BOLA)
- Fix cards: Mass assignment (over-posting)
- RAG access control lab: Stop a retriever from returning another tenant’s documents
- Excessive agency lab: Bind an agent’s action to the approved arguments
- IDOR lab: Repair an invoice authorization bug
- Mass assignment lab: Update only the fields users may edit
- IAM trust policy lab: Evaluate a role trust policy against the confused deputy
- Local project: Secure a real HTTP API
Where coverage will grow
Add revocation tests across distributed caches and examples for policy engines other than OPA.
Identifiers: CWE-639 · CWE-862 · CWE-863 · CWE-915 · CWE-284 · CWE-285
Mapped to: ASVS v5.0.0-8.2.2 (Relevant to per-object data access) · ASVS v5.0.0-8.4.1 (Relevant to cross-tenant isolation) · WSTG v4.2 WSTG-ATHZ-04 (Supports a method for changing object references across authorized test accounts)
APP-04Browser request and response policyCovered3 guides · fix cards for 3 weaknesses · 3 labs · deepest: browser lab
Browser session authority cannot be exercised from an unauthorized origin, and responses carry the policies the page needs.
Applies to: Cookie-authenticated browsers
Available material
- Protect cookie-authenticated actions against CSRF · Guided practice
- Configure CORS and CSP around the browser capabilities you need · Guided practice
- Configure HTTP security headers from a tested baseline · Guided practice
- Fix cards: Cross-site request forgery (CSRF)
- Fix cards: CORS misconfiguration on credentialed APIs
- Fix cards: Clickjacking
- CSRF lab: Protect an account change from a forged request
- CORS policy lab: Grant CORS to the right origins only
- CSP builder lab: Build a strict Content-Security-Policy
Where coverage will grow
Clickjacking now has tested fix cards (Express and Next.js) that set CSP frame-ancestors and X-Frame-Options. Add browser-engine tests that check SameSite, CORS preflight and CSP enforcement in current Chrome, Firefox and Safari.
Identifiers: CWE-352 · CWE-942 · CWE-346 · CWE-1021 · CWE-1275 · CWE-1385
APP-05Upload and archive lifecycleCovered2 guides · fix cards for 2 weaknesses · 3 labs · 1 project · deepest: local project
Untrusted files stay private, bounded and inside an authorized storage location.
Applies to: File services · archive extraction
Available material
- Design a safer file-upload pipeline · Guided practice
- Extract archives without escaping the destination · Guided practice
- Fix cards: Path traversal
- Fix cards: Unrestricted file upload
- Path traversal lab: Keep archive entries inside their extraction directory
- Path traversal lab: Serve an uploaded file without path traversal
- File upload lab: Accept avatars without publishing pages
- Local project: Keep extracted files inside their boundary
Where coverage will grow
Add malware-scanner outage and image-decoder isolation cases; filesystem race tests remain environment-specific.
Identifiers: CWE-434 · CWE-22 · CWE-23 · CWE-59 · CWE-73 · CWE-646
APP-06Outbound requests and redirectsCovered2 guides · fix cards for 2 weaknesses · 4 labs · deepest: browser lab
Server-side fetches reach only intended destinations, and redirects send users only where the application allows.
Applies to: HTTP clients · DNS · network egress
Available material
- Constrain server-side fetches to their intended destinations · Guided practice
- Redirect users only to destinations you control · Guided practice
- Fix cards: Open redirect
- Fix cards: Server-side request forgery (SSRF)
- SSRF lab: Guard an outbound fetch against SSRF
- SSRF validation lab: Validate a fetch URL with ipaddress
- Open redirect lab: Return users to this site only
- OAuth redirect and PKCE lab: Match redirect URIs and verify PKCE
Where coverage will grow
Add DNS-rebinding and redirect-chain tests against a controlled resolver and egress proxy.
APP-07Business logic and concurrent effectsCovered3 guides · 3 labs · 1 project · deepest: local project
Retries, concurrent requests and unusual sequences preserve balances, stock, workflow order and one logical effect.
Applies to: Python and SQLite · signed HTTP callbacks
Available material
- Preserve business invariants under concurrent requests · Guided practice
- Prevent business-logic flaws with server-side invariants · Guided practice
- Verify webhook deliveries before acting · Guided practice
- Race condition lab: Repair a balance check that races
- Webhook signature and replay lab: Repair a webhook handler that pays twice
- Business logic lab: Price an order without trusting the client
- Local project: Make a checkout transaction atomic
Where coverage will grow
Add durable outbox recovery for external payments; the SQLite project does not establish every database's locking behavior.
Identifiers: CWE-362 · CWE-367 · CWE-837 · CWE-841 · CWE-799
APP-08Threat modeling and design reviewCovered4 guides · deepest: guided practice
Designs are reviewed against named threats before implementation, and each finding becomes a requirement or a test.
Applies to: Application design
Available material
- Choose a threat modeling method and turn its findings into tests · Guided practice
- Review tenant boundaries before implementation · Guided practice
- Threat pattern library for threat modeling · Guided practice
- Worked threat model: a mobile banking app · Guided practice
Where coverage will grow
Add worked models for more architectures, such as event-driven systems and mobile back ends.
APP-09Failure behavior and diagnostic exposureCovered2 guides · deepest: guided practice
Unexpected failures keep security decisions intact and reveal no sensitive internals.
Applies to: Request handlers and workers
Available material
- Handle failures without leaking internals or weakening controls · Guided practice
- Ship without debug modes, verbose errors or exposed files · Guided practice
Where coverage will grow
Add dependency-outage, partial-write and timing regression projects. Production debug and error-detail settings have a guide and a deployment probe, but no per-stack fix cards.
APP-10Security testing and review in the pipelineCovered5 guides · deepest: guided practice
Findings come with a cause, a reproduction, a fix and a regression test, and the pipeline runs the checks that block a release.
Applies to: Source review · dynamic testing · CI pipelines
Available material
- Review a code change through its trust boundaries · Guided practice
- Combine static and dynamic tests around a verified finding · Guided practice
- Place each security control in the pipeline and decide what it blocks · Guided practice
- Fuzz a parser and turn crashes into lasting regressions · Guided practice
- Choose and evaluate application security testing tools · Guided practice
Where coverage will grow
Add a downloadable reference pipeline that runs real scanners end to end, and continuous fuzzing with OSS-Fuzz or ClusterFuzzLite.
Mapped to: SSDF 1.1 PW.8.2 (Relevant to scoped testing and retained outcomes)
APP-11Framework controls and stack-specific fixesCovered3 guides · fix cards in 10 stacks · deepest: fix cards
Middleware, object mapping and response handling keep the framework's protections, and each fix is shown in the team's own stack.
Applies to: Express · Flask · Spring Boot · ASP.NET Core · Next.js · FastAPI · Django · Go net/http · Rails · Laravel
Available material
- Preserve framework security controls across the request lifecycle · Guided practice
- Case study: Spring4Shell (CVE-2022-22965) · Guided practice
- Ship without debug modes, verbose errors or exposed files · Guided practice
- Fix cards and baseline: Node.js and Express (27 cards)
- Fix cards and baseline: Python and Flask (29 cards)
- Fix cards and baseline: Java and Spring Boot (27 cards)
- Fix cards and baseline: C# and ASP.NET Core (26 cards)
- Fix cards and baseline: TypeScript and Next.js (12 cards)
- Fix cards and baseline: Python and FastAPI (13 cards)
- Fix cards and baseline: Python and Django (13 cards)
- Fix cards and baseline: Go and net/http (15 cards)
- Fix cards and baseline: Ruby on Rails (13 cards)
- Fix cards and baseline: PHP and Laravel (13 cards)
Where coverage will grow
Fix cards give tested code for ten stacks: Express, Flask, Spring Boot and ASP.NET Core for 21 to 24 of the 24 weaknesses, Go's net/http for 12, FastAPI, Next.js and Laravel for nine each, and Django and Rails for eight; each stack has a page with its supported versions and production defaults. The newer stacks still lack cards for some weaknesses, such as command injection, deserialization and template injection in Rails and Laravel, and Go web frameworks such as Gin and Echo, Symfony and NestJS have no cards of their own.
APP-12Mobile platform boundariesCovered5 guides · 2 projects · deepest: local project
Storage, deep links, platform permissions and server calls keep their intended authority on Android and iOS.
Applies to: Android · iOS
Available material
- Harden an Android app's storage, network and entry points · Guided practice
- Harden an iOS app's storage, network and entry points · Guided practice
- Review mobile storage, links and platform permissions · Guided practice
- Review trust boundaries in mobile and native clients · Guided practice
- Worked threat model: a mobile banking app · Guided practice
- Local project: Keep an iOS app's storage, links and web bridge in bounds
- Local project: Repair an Android app's links, components, network policy and storage
Where coverage will grow
The iOS project runs XCTest in the Simulator and the Android project runs Robolectric and Android Lint in a container, mapped to MASTG 2.0 tests. Add device and emulator runs for what those can't show: Data Protection classes, App Links and universal-link verification against live association files, runtime permission denial, and App Attest or Play Integrity checked on a server. Every MASVS 2.1 control has a page mapping it to the guides and MASTG tests here; enforced app updates (MASVS-CODE-2), dependency scanning in mobile build systems (MASVS-CODE-3) and implementing the resilience controls (MASVS-RESILIENCE-3 and -4) have no guide yet.
APP-13Desktop and device privilege separationCovered3 guides · 2 projects · deepest: local project
Client content cannot misuse desktop bridges or untrusted update paths.
Applies to: Desktop IPC · embedded devices
Available material
- Constrain desktop IPC and privileged helpers · Guided practice
- Design firmware updates that can recover safely · Guided practice
- Case study: CrowdStrike Channel File 291 (July 2024) · Guided practice
- Local project: Stop untrusted pages from using an Electron bridge
- Local project: Recover from failed firmware updates with A/B slots
Where coverage will grow
Extend the Electron project to the packaged app (fuses, ASAR integrity, code signing) and its auto-updater, and add a project that runs the A/B recovery tests against a real bootloader such as MCUboot or U-Boot in an emulator.
APP-14Disclosure, bug bounty and penetration testingCovered6 guides · deepest: guided practice
Reported defects have a safe intake, an accountable response and a verified fix, and external testing is scoped and retested.
Applies to: Product security response
Available material
- Run coordinated vulnerability disclosure from report to advisory · Guided practice
- Start with a VDP, then add bug bounties and penetration tests · Guided practice
- Respond to an exploited or malicious dependency · Guided practice
- Publish security advisories with CSAF, VEX, CVE records and OSV · Guided practice
- UK Software Security Code of Practice: the 14 principles as engineering practice · Guided practice
- Case study: First American's EaglePro document exposure (2019) · Guided practice
Where coverage will grow
Add complete mock disclosure packets and a CSAF advisory example.
APP-15HTTP framing agreementCovered1 guide · 1 project · deepest: local project
Every HTTP hop agrees on request boundaries before forwarding.
Applies to: HTTP proxies and origin servers
Available material
- Keep HTTP request boundaries consistent across intermediaries · Guided practice
- Local project: Repair a real proxy and shared cache
Where coverage will grow
Test the exact production proxy and origin versions and protocol translation; a small project does not cover every HTTP stack.
Identifiers: CWE-444
APP-16Cache identity and audienceCovered1 guide · 1 project · deepest: local project
Responses are cached only under a key and policy that keep their authorized audience.
Applies to: Reverse proxies · CDNs · application caches
Available material
- Prevent shared-cache poisoning and private-response deception · Guided practice
- Local project: Repair a real proxy and shared cache
Where coverage will grow
Add intermediary-specific cache normalization, Vary and invalidation tests.
Identifiers: CWE-524
APP-17Bounded parsing and deserializationCovered3 guides · fix cards for 2 weaknesses · 5 labs · 1 project · deepest: local project
Serialized input cannot select executable types, unsafe constructors or unbounded object graphs.
Applies to: Java · .NET · Python · Node.js
Available material
- Parse bounded JSON and XML into an explicit application schema · Guided practice
- Keep untrusted values out of executable syntax · Guided practice
- Convert untrusted office documents and PDFs in an isolated parser · Guided practice
- Fix cards: XML external entity (XXE) processing
- Fix cards: Insecure deserialization
- SQL injection lab: Separate SQL structure from data with sqlite3
- OS command injection lab: Run git without a shell
- SSTI lab: Render a welcome banner without template injection
- XXE lab: Parse an uploaded invoice without resolving external entities
- Pickle deserialization lab: Load a session token without pickle
- Local project: Parse bounded JSON and XML invoices safely
Where coverage will grow
Deserialization fix cards cover Node.js, Python, Java and C#, and XXE fix cards cover Python, Java and C#. Library-specific gadget-chain analysis and Go, Ruby and PHP serializers are not covered.
APP-18Prototype pollutionCovered1 guide · 1 project · deepest: local project
Untrusted object keys cannot change inherited behavior or privileged configuration.
Applies to: JavaScript object processing
Available material
- Keep untrusted object keys out of prototype and authority paths · Guided practice
- Local project: Stop prototype pollution at merge and authorization boundaries
Where coverage will grow
Extend the object-processing project to the exact framework, merge library and configuration sinks used in production.
Identifiers: CWE-1321
APP-19Native memory and integer safetyCovered5 guides · 1 lab · 1 project · deepest: local project
Bounds, lengths and lifetimes cannot produce out-of-bounds access, stale pointers or integer overflow.
Applies to: C and C++ · Rust · native extensions
Available material
- Find, fix and contain memory-safety bugs in C and C++ · Guided practice
- Audit unsafe Rust, FFI boundaries and crate dependencies · Guided practice
- Fuzz a parser and turn crashes into lasting regressions · Guided practice
- Case study: Citrix Bleed (CVE-2023-4966) · Guided practice
- Case study: CrowdStrike Channel File 291 (July 2024) · Guided practice
- Buffer over-read lab: Stop a heartbeat over-read
- Local project: Repair a native parser using sanitizer evidence
Where coverage will grow
Extend the C parser project to sustained fuzzing campaigns and real FFI contracts; Go and Swift unsafe code have no material.
Identifiers: CWE-787 · CWE-125 · CWE-416 · CWE-120 · CWE-121 · CWE-122 · CWE-476 · CWE-190
APP-20Spreadsheet and document exportsCovered2 guides · fix cards for 1 weakness · 1 project · deepest: local project
CSV, spreadsheet and document processors treat untrusted cells and content as data.
Applies to: CSV and spreadsheets · document conversion
Available material
- Prevent CRLF header injection, log forging and CSV formula injection · Guided practice
- Convert untrusted office documents and PDFs in an isolated parser · Guided practice
- Fix cards: CSV formula injection
- Local project: Convert untrusted documents in a locked-down container
Where coverage will grow
CSV and XLSX exports have a guide with code, and converting untrusted office documents and PDFs has a guide and a project whose live tests run LibreOffice and Ghostscript in a locked-down container (zip bomb, XXE, no network, deadline). CSV formula injection has tested fix cards in six stacks (Express, Flask, Spring Boot, ASP.NET Core, Django and Rails). Not yet covered: a tested pixel re-rendering pipeline (Dangerzone's design is described, not built), and a tested Kubernetes Job or gVisor variant of the sandbox.
Identifiers: CWE-1236
APP-21Input validation and regular expressionsCovered3 guides · fix cards for 1 weakness · deepest: fix cards
Input is validated against an explicit schema, and no pattern can be driven into catastrophic backtracking.
Applies to: JavaScript · Python · C# · Java
Available material
- Validate input safely and prevent regex denial of service · Guided practice
- Parse bounded JSON and XML into an explicit application schema · Guided practice
- Consume third-party APIs safely (OWASP API10:2023) · Guided practice
- Fix cards: Regular-expression denial of service (ReDoS)
Where coverage will grow
The fix cards cover regular-expression denial of service; schema validation and Unicode normalization are taught in the guide without per-stack cards.
Identifiers: CWE-1333 · CWE-20 · CWE-1284 · CWE-1287 · CWE-235
APP-22Header and log injectionCovered1 guide · fix cards for 1 weakness · deepest: fix cards
Untrusted values cannot add HTTP headers, split responses or forge log records.
Applies to: HTTP servers · application logs
Available material
- Prevent CRLF header injection, log forging and CSV formula injection · Guided practice
- Fix cards: CRLF injection in logs and response headers
Where coverage will grow
The guide has code for nginx, Node.js and Python, and fix cards give tested fixes for Express, Flask and Spring Boot. ASP.NET Core and the newer stacks have no CRLF fix card, and there is no browser lab.
AI-08Smart-contract state invariantsCovered1 guide · deepest: guided practice
Adversarial calls and callbacks preserve explicitly stated economic and state invariants.
Applies to: Smart contracts
Available material
Where coverage will grow
Add a local-chain project with compiler-pinned invariant tests and separate economic assumptions.
Software supply chain11
SUP-01Release inventory completenessCovered2 guides · 1 lab · 1 project · deepest: local project
The inventory describes the packaged artifact, including bundled and generated components.
Applies to: SPDX and CycloneDX · packaged artifacts
Available material
- Generate an SBOM for the software you actually release · Guided practice
- Choose SBOM formats and identify components accurately · Guided practice
- SBOM completeness lab: Find the dependencies missing from a release SBOM
- Local project: Build and verify a signed software release
Where coverage will grow
Add more real ecosystems and container-layer inventory comparison; no file-only checker proves completeness.
SUP-02Inventory changes and advisory applicabilityCovered3 guides · 1 lab · 1 project · deepest: local project
Dependency changes and vulnerability decisions bind to the exact release and configuration.
Applies to: Release inventories · VEX
Available material
- Review SBOM changes between releases · Guided practice
- Triage new dependency vulnerability findings · Guided practice
- Use VEX without losing vulnerability evidence · Guided practice
- SBOM completeness lab: Find the dependencies missing from a release SBOM
- Local project: Build and verify a signed software release
Where coverage will grow
Add reproducible producer and consumer VEX exchanges across independently generated SBOMs.
SUP-03CI/CD trust boundaries and platform hardeningCovered8 guides · 1 lab · 2 projects · deepest: local project
Untrusted change content cannot acquire release credentials or poison trusted outputs.
Applies to: CI workflows and runners
Available material
- Protect the path from pull request to release · Guided practice
- Keep untrusted CI work outside the release boundary · Guided practice
- Harden GitHub Actions against workflow and supply-chain attacks · Guided practice
- Case study: the Codecov Bash Uploader compromise (2021) · Guided practice
- Workload identity federation: short-lived, scoped identities for services and CI · Guided practice
- Place each security control in the pipeline and decide what it blocks · Guided practice
- Case study: the tj-actions/changed-files compromise (CVE-2025-30066) · Guided practice
- Case study: the Nx s1ngularity compromise and its AI-assisted payload (2025) · Guided practice
- Actions injection lab: Flag GitHub Actions expression injection
- Local project: Build and verify a signed software release
- Local project: Repair a security pipeline for GitHub Actions and GitLab CI
Where coverage will grow
GitHub Actions has a hardening guide, a lab and a project, and the security pipeline project also runs on GitLab CI. Jenkins has no hardening guide yet. Against the OWASP Top 10 CI/CD Security Risks, identity inventories across CI/CD systems (CICD-SEC-2), self-managed CI servers and artifact repositories (CICD-SEC-7), reviews of connected third-party apps (CICD-SEC-8) and central pipeline audit logging (CICD-SEC-10) have no guide yet.
SUP-04Artifact identity and provenanceCovered3 guides · 1 lab · 1 project · deepest: local project
Consumers verify bytes, signer policy and build claims for the same intended artifact.
Applies to: Artifact signing and provenance
Available material
- Verify artifact signatures against an explicit trust policy · Guided practice
- Read SLSA provenance and verify the claim you need · Guided practice
- Harden container images from Dockerfile to admission · Guided practice
- Signed artifact provenance lab: Reject a release from the wrong producer
- Local project: Build and verify a signed software release
Where coverage will grow
Add transparency-log and keyless identity verification exercises beyond local signing policies.
SUP-05Deterministic and isolated buildsCovered2 guides · 1 project · deepest: local project
Unexpected output differences are explained against recorded source, inputs and environment.
Applies to: Build systems
Available material
- Investigate build differences and improve reproducibility · Guided practice
- Case study: the SolarWinds Orion build compromise (SUNBURST) · Guided practice
- Local project: Build and verify a signed software release
Where coverage will grow
A full hermetic build environment and an independent rebuild service are not supplied.
SUP-06Dependency intake, confusion and malicious packagesCovered11 guides · 1 lab · deepest: browser lab
Package choice, source mapping, installation and incident containment rest on evidence about real authority and use.
Applies to: Package managers and build agents
Available material
- Review dependency health without treating a score as a guarantee · Guided practice
- Stop dependency confusion and typosquatting at install time · Guided practice
- Investigate a suspected malicious package safely · Guided practice
- Triage new dependency vulnerability findings · Guided practice
- Case study: the Shai-Hulud npm worm (2025-2026) · Guided practice
- Case study: the tj-actions/changed-files compromise (CVE-2025-30066) · Guided practice
- Case study: the xz Utils backdoor (CVE-2024-3094) · Guided practice
- Case study: the SolarWinds Orion build compromise (SUNBURST) · Guided practice
- Case study: the 3CX DesktopApp supply-chain attack (CVE-2023-29059) · Guided practice
- Case study: event-stream and ua-parser-js, two npm package takeovers · Guided practice
- Secure the developer workstation: extensions, package managers, secrets and AI agents · Guided practice
- SBOM completeness lab: Find the dependencies missing from a release SBOM
Where coverage will grow
Add a sandbox for install hooks and a complete dependency replacement case.
SUP-07Publication and update trustCovered5 guides · 1 project · deepest: local project
Only approved source and identity can publish artifacts that clients accept as updates.
Applies to: Package registries · client updates
Available material
- Protect package publication and the update channel · Guided practice
- Case study: the 3CX DesktopApp supply-chain attack (CVE-2023-29059) · Guided practice
- Case study: the polyfill.io CDN takeover (2024) · Guided practice
- Staged rollout and rollback for security-critical updates · Guided practice
- Case study: CrowdStrike Channel File 291 (July 2024) · Guided practice
- Local project: Build and verify a signed software release
Where coverage will grow
The staged rollout guide covers rollout rings, automatic halts, content validation and rollback with runnable checks; production-registry and client rollback exercises with disposable infrastructure are still missing.
SUP-08Supply-chain incident case studiesCovered5 guides · deepest: guided practice
Teams can trace a real supply-chain compromise from entry point to the controls that would have stopped it.
Applies to: Open-source ecosystems · CI/CD
Available material
- Case study: the xz Utils backdoor (CVE-2024-3094) · Guided practice
- Case study: the tj-actions/changed-files compromise (CVE-2025-30066) · Guided practice
- Case study: the Shai-Hulud npm worm (2025-2026) · Guided practice
- Case study: Log4Shell (CVE-2021-44228) · Guided practice
- Case study: the CircleCI security incident (January 2023) · Guided practice
Where coverage will grow
Each case study is current to its own date; later findings about these incidents are not tracked automatically.
SUP-09Source-control hardening and the SLSA Source TrackCovered2 guides · deepest: guided practice
Branch protection, required review and source provenance stop unreviewed changes reaching a release.
Applies to: Git hosting
Available material
- Protect the source repository: rulesets, reviews and signed commits · Guided practice
- Meet the OpenSSF OSPS Baseline as a maintainer: the levels, every Level 1 control on GitHub, and the evidence · Guided practice
Where coverage will grow
Rulesets, CODEOWNERS review, signed commits and push protection have commands and a verification check for GitHub and GitLab, mapped to the SLSA Source track. Generating and verifying source provenance attestations is not exercised yet.
Authoritative source: SLSA 1.2: Source track requirements
SUP-10Open-source baselines for producers and consumersCovered4 guides · deepest: guided practice
Maintainers and consumers apply a published baseline (OpenSSF OSPS Baseline, S2C2F) and keep evidence of it.
Applies to: Open-source projects
Available material
- Meet the OpenSSF OSPS Baseline as a maintainer: the levels, every Level 1 control on GitHub, and the evidence · Guided practice
- Adopt the OpenSSF S2C2F as a consumer: the eight practices, the four maturity levels and a staged plan with evidence · Guided practice
- Protect the source repository: rulesets, reviews and signed commits · Guided practice
- Review dependency health without treating a score as a guarantee · Guided practice
Where coverage will grow
OSPS Baseline v2026.08.28 has a maintainer walkthrough: its families and levels, every Level 1 requirement on GitHub with evidence, the key Level 2 and 3 controls, a tested evidence script and a validated Security Insights file. S2C2F has a consumer walkthrough: its 8 practices, 25 requirements and 4 levels, a tested level calculator and a staged plan. GitLab equivalents for the Baseline controls and a hands-on lab are not covered.
Authoritative source: OpenSSF Open Source Project Security Baseline
SUP-11License complianceCovered2 guides · deepest: guided practice
Each release meets the license obligations of what it ships, with notices and SBOM license data to prove it.
Applies to: Releases · SBOMs
Available material
- Open source license compliance: SPDX expressions, obligations and SBOM checks · Guided practice
- Review dependency health without treating a score as a guarantee · Guided practice
Where coverage will grow
SPDX license expressions, a policy by distribution model, SBOM-based checks in pull requests and release notices are covered. Legal interpretation of individual licenses is out of scope (see OUT-01).
Authoritative source: SPDX License List
Runtime, cloud & APIs12
RUN-01Effective cloud trust and permissionsCovered6 guides · 1 lab · deepest: browser lab
Workload identities can assume only intended roles and reach only required resources.
Applies to: Cloud IAM · service-to-service identity
Available material
- Review cloud permissions and role trust together · Guided practice
- Authenticate workloads and authorize their service actions · Guided practice
- Case study: the CircleCI security incident (January 2023) · Guided practice
- Case study: Microsoft AI researchers' over-permissive SAS token (2023) · Guided practice
- Review infrastructure changes as access changes · Guided practice
- Contain a leaked secret, then investigate and clean up · Guided practice
- IAM trust policy lab: Evaluate a role trust policy against the confused deputy
Where coverage will grow
A browser lab now models role trust-policy evaluation against the confused deputy (sts:ExternalId, aws:SourceArn and aws:SourceAccount). The remaining gap is disposable cloud-account labs that evaluate identity, resource and organization policies together.
RUN-02Workload privilege enforcementCovered4 guides · 2 labs · 1 project · deepest: local project
The deployed workload cannot request or inherit unnecessary host or kernel authority.
Applies to: Kubernetes · containers
Available material
- Run Kubernetes workloads with only the privileges they need · Guided practice
- Prove network and admission policies enforce the intended boundary · Guided practice
- Harden managed Kubernetes on EKS, AKS and GKE · Guided practice
- Case study: ingress-nginx CVE-2025-1974 and the exposed admission webhook (2025) · Guided practice
- Privileged container lab: Reject a privileged workload before deployment
- NetworkPolicy lab: Lock down a shop namespace
- Local project: Verify Kubernetes admission and network boundaries
Where coverage will grow
Cluster admission outcomes must be checked on the installed version; the browser lab checks policy logic only.
RUN-03Network and admission enforcementCovered2 guides · 2 labs · 1 project · deepest: local project
Allowed flows succeed and prohibited flows fail on the real cluster and policy stack.
Applies to: Kubernetes admission · NetworkPolicy
Available material
- Prove network and admission policies enforce the intended boundary · Guided practice
- Case study: ingress-nginx CVE-2025-1974 and the exposed admission webhook (2025) · Guided practice
- Privileged container lab: Reject a privileged workload before deployment
- NetworkPolicy lab: Lock down a shop namespace
- Local project: Verify Kubernetes admission and network boundaries
Where coverage will grow
CNI-specific probes, exception paths and upgrade regressions remain environment-dependent.
RUN-04Infrastructure intent and observed stateCovered4 guides · deepest: guided practice
Security-relevant deployment drift is detected, owned and resolved against desired policy.
Applies to: Infrastructure as code · DNS
Available material
- Review infrastructure changes as access changes · Guided practice
- Test infrastructure policy and detect security-relevant drift · Guided practice
- Prevent subdomain takeover from dangling DNS records · Guided practice
- Authorization models: RBAC, ABAC, ReBAC and policy as code you can test · Guided practice
Where coverage will grow
Add Terraform plan and state integration with cloud observation on disposable resources. Dangling DNS detection is shown with an offline-tested scanner and validated Terraform, not against live zones.
RUN-05API exposure and protocol authorizationCovered3 guides · 1 project · deepest: local project
Every exposed operation is inventoried, authenticated and authorized whatever the listener or protocol.
Applies to: HTTP, GraphQL, WebSocket and gRPC · WebRTC signaling, TURN and media servers
Available material
- Maintain an API inventory and prevent gateway bypass · Guided practice
- Apply security limits to GraphQL, WebSocket and gRPC operations · Guided practice
- Secure WebRTC signaling, TURN relays and media servers · Guided practice
- Local project: Repair a real proxy and shared cache
Where coverage will grow
Add real GraphQL, WebSocket and gRPC servers with operation-level controls and cancellation tests. WebRTC media-server robustness (ASVS V17.2) is described but not load- or fuzz-tested here.
RUN-06Bounded work and recoveryCovered4 guides · fix cards for 1 weakness · 2 projects · deepest: local project
Cost, concurrency, time and durable retries stay within explicit budgets.
Applies to: APIs · background jobs
Available material
- Bound API work, not just request counts · Guided practice
- Bound background jobs and make retries safe · Guided practice
- Apply security limits to GraphQL, WebSocket and gRPC operations · Guided practice
- Keep HTTP services up under application-layer DDoS · Guided practice
- Fix cards: Unbounded resource consumption
- Local project: Make a checkout transaction atomic
- Local project: Enforce retrieval and tool boundaries across crashes
Where coverage will grow
Unbounded resource consumption now has tested fix cards (Express and ASP.NET Core) with body-size, work and rate limits. Add queue and outbox recovery and distributed rate limiting across several processes.
RUN-07Investigable security eventsCovered4 guides · deepest: guided practice
Identity, decision and effect evidence can be correlated without disclosing unnecessary secrets.
Applies to: Application and runtime telemetry
Available material
- Create security logs someone can investigate · Guided practice
- Turn runtime events into a tested investigation and containment path · Guided practice
- Case study: Storm-0558 and the forged Microsoft tokens (2023) · Guided practice
- Detect container and host threats at runtime with eBPF sensors and cloud services · Guided practice
Where coverage will grow
Add an application-to-log-store detection and containment exercise that includes delivery failures.
RUN-08Edge controls and origin correctnessCovered1 guide · 1 project · deepest: local project
Edge rules reduce abuse without replacing origin authorization or blocking legitimate use.
Applies to: WAF · bot controls · origin services
Available material
- Operate edge rules without hiding application defects · Guided practice
- Local project: Repair a real proxy and shared cache
Where coverage will grow
Add provider-specific WAF rule tuning and false-positive measurements on representative traffic.
RUN-09Cloud provider baselinesCovered3 guides · deepest: guided practice
Each cloud account starts from a hardened baseline for identity, logging, metadata access and storage on AWS, Azure and Google Cloud.
Applies to: AWS · Azure · Google Cloud
Available material
- Apply a security baseline across AWS, Azure and Google Cloud · Guided practice
- Prevent subdomain takeover from dangling DNS records · Guided practice
- Case study: Microsoft AI researchers' over-permissive SAS token (2023) · Guided practice
Where coverage will grow
Add provider detection services and CIS Benchmark checks for each provider.
RUN-10Container image securityCovered3 guides · deepest: guided practice
Images are minimal, scanned, signed and rebuilt on a schedule, and the cluster admits only verified images.
Applies to: Containers · Kubernetes admission
Available material
- Harden container images from Dockerfile to admission · Guided practice
- Harden the images you ship against CIS, STIG and SCAP benchmarks · Guided practice
- Sandbox model-generated code and computer-use agents · Guided practice
Where coverage will grow
Add base-image update automation and rebuild cadence examples.
RUN-11Security tool categoriesCovered2 guides · deepest: guided practice
Teams know what each tool category checks (CSPM, CNAPP, CIEM, ASPM, IAST, RASP) and how to evaluate one without vendor claims.
Applies to: Tool evaluation
Available material
- Choose and evaluate application security testing tools · Guided practice
- Choose cloud security posture tools and apply zero trust · Guided practice
Where coverage will grow
Application testing categories (SAST, DAST, IAST, SCA, secrets, IaC, container and API scanning, ASPM) and cloud categories (CSPM, CWPP, CIEM, DSPM, CNAPP) each have an explainer and an evaluation protocol on a seeded target. RASP is only mentioned, in the edge and PCI DSS guides, without an evaluation.
RUN-12Hardening benchmarksCovered3 guides · 1 project · deepest: local project
The images and nodes the team builds and runs (container base images, golden VM images, Kubernetes node images and the container runtime), and the clusters and managed services they use, are configured against a published benchmark, with deviations recorded, approved and expiring.
Applies to: Container images · VM and node images · Kubernetes · cloud services
Available material
- Harden managed Kubernetes on EKS, AKS and GKE · Guided practice
- Apply a security baseline across AWS, Azure and Google Cloud · Guided practice
- Harden the images you ship against CIS, STIG and SCAP benchmarks · Guided practice
- Local project: Gate an image build on a CIS scan and a deviation register
Where coverage will grow
Container images are scanned with OpenSCAP and the SCAP Security Guide in a tested project with a deviation register enforced in CI; managed Kubernetes is checked with kube-bench and the cloud baselines name the CIS Foundations Benchmarks. Golden VM images and running nodes are covered in prose with the tools to use, not in a tested exercise; the worked example uses a CIS profile, not a DISA STIG, and Windows images are not covered. Of the OWASP Kubernetes Top 10 2025 risks, K06 Overly Exposed Kubernetes Components is covered only for the managed API endpoint: exposed kubelets and etcd, and control planes you run yourself, have no guide.
Authoritative source: CIS Benchmarks
Identity & cryptography10
ID-01Authentication, passwords and session stateCovered4 guides · fix cards for 2 weaknesses · 1 lab · 3 projects · deepest: local project
Login, password storage, renewal, logout and revocation keep a coherent authenticated session.
Applies to: Sessions · password verifiers
Available material
- Session management: cookies, timeouts, rotation and revocation · Guided practice
- Password storage: hashing parameters and rehash on login · Guided practice
- Case study: Citrix Bleed (CVE-2023-4966) · Guided practice
- SCIM deprovisioning: make account disablement remove every usable authority · Guided practice
- Fix cards: Weak password hashing
- Fix cards: Session fixation and session cookies
- Password hashing lab: Verify and upgrade an Argon2 password hash on login
- Local project: Secure a real HTTP API
- Local project: Verify tokens through rotation and revocation
- Local project: Prove deprovisioning reaches sessions and queued work
Where coverage will grow
Missing authentication for a critical function (CWE-306) now has tested fix cards (Express, Next.js, Spring Boot and ASP.NET Core). Add session-store failover and sign-out-everywhere integration tests across stacks.
Identifiers: CWE-384 · CWE-613 · CWE-614 · CWE-1004 · CWE-916 · CWE-759 · CWE-521 · CWE-257
ID-02Federated login and token lifecycleCovered6 guides · fix cards for 1 weakness · 3 labs · 1 project · deepest: local project
Callback binding, exact token validation and key rollover keep issuer and audience trust.
Applies to: OAuth, OIDC and JWT
Available material
- OAuth 2.0 and OpenID Connect login: authorization code with PKCE · Guided practice
- Defend OAuth and OIDC against redirect and token attacks · Guided practice
- JWT validation: algorithms, keys, claims and key rollover · Guided practice
- Defend JWTs against forgery, confusion and replay · Guided practice
- Case study: Storm-0558 and the forged Microsoft tokens (2023) · Guided practice
- SAML single sign-on: verify signed assertions without losing the identity boundary · Guided practice
- Fix cards: JWT validation in APIs (bearer tokens)
- JWT validation lab: Validate the purpose and audience of a token
- JWT verification lab: Verify a JWT before trusting it
- OAuth redirect and PKCE lab: Match redirect URIs and verify PKCE
- Local project: Verify tokens through rotation and revocation
Where coverage will grow
Add configurations for several real identity providers and a refresh-token compromise exercise.
ID-03Enterprise SSO assertion validationCovered1 guide · 1 project · deepest: local project
Assertions are accepted only for the intended issuer, recipient, request and replay state.
Applies to: SAML enterprise SSO
Available material
- SAML single sign-on: verify signed assertions without losing the identity boundary · Guided practice
- Local project: Prove deprovisioning reaches sessions and queued work
Where coverage will grow
Provider-specific XML signature libraries and metadata rollover still need integration testing.
ID-04Provisioning and deprovisioningCovered1 guide · 1 project · deepest: local project
Identity changes promptly remove effective access across sessions, groups and queued work.
Applies to: SCIM · directory lifecycle
Available material
- SCIM deprovisioning: make account disablement remove every usable authority · Guided practice
- Local project: Prove deprovisioning reaches sessions and queued work
Where coverage will grow
Add a complete SCIM connector with retry and reconciliation, and provider contract tests.
ID-05MFA, passkeys and account recoveryCovered3 guides · 1 lab · deepest: browser lab
Second factors, passkey enrollment and replacement, and account recovery cannot bypass the intended identity proof.
Applies to: Passkeys · MFA · account recovery
Available material
- Stop account takeover with the right MFA and login defenses · Guided practice
- Passkeys and MFA: WebAuthn enrollment, sign-in and replacement · Guided practice
- Account recovery: password resets, help-desk resets and account linking · Guided practice
- Password reset token lab: Make a recovery credential single-use
Where coverage will grow
Add real WebAuthn browser and authenticator tests, and recovery support-tool controls.
ID-12Account takeover and credential attacksCovered3 guides · deepest: guided practice
Credential stuffing, enumeration and brute force are detected and slowed without locking out legitimate users.
Applies to: Login endpoints · edge controls
Available material
- Stop account takeover with the right MFA and login defenses · Guided practice
- Operate edge rules without hiding application defects · Guided practice
- Case study: event-stream and ua-parser-js, two npm package takeovers · Guided practice
Where coverage will grow
Add measured rate-limit and bot-detection tuning on representative login traffic.
ID-06Secrets and workload identity lifecycleCovered9 guides · fix cards for 1 weakness · 1 lab · deepest: browser lab
Credential issuance, use, rotation, leak detection and revocation keep least privilege and allow recovery.
Applies to: Application secrets · workload identities
Available material
- Secrets management: storage, rotation and leaked-secret response · Guided practice
- Contain a leaked secret, then investigate and clean up · Guided practice
- Workload identity federation: short-lived, scoped identities for services and CI · Guided practice
- Secrets at runtime: Vault, Kubernetes Secrets, CSI driver, External Secrets and SOPS · Guided practice
- Case study: Microsoft AI researchers' over-permissive SAS token (2023) · Guided practice
- Case study: the CircleCI security incident (January 2023) · Guided practice
- Apply a security baseline across AWS, Azure and Google Cloud · Guided practice
- Case study: the LastPass breach (2022) · Guided practice
- Case study: the Okta support-system breach and session tokens in HAR files (2023) · Guided practice
- Fix cards: Hard-coded secrets
- Insecure randomness lab: Generate unguessable API keys
Where coverage will grow
Add vault and KMS integration with expiry, outage and revocation tests.
ID-07Authenticated encryption and algorithm choiceCovered3 guides · fix cards for 1 weakness · 2 labs · 1 project · deepest: local project
Encryption binds each record to its context with unique nonces, and every algorithm and parameter is chosen for its job.
Applies to: Web Crypto AES-GCM · encrypted records
Available material
- AEAD records: AES-GCM nonces, associated data and key limits · Guided practice
- Choose cryptographic algorithms and parameters by job · Guided practice
- Post-quantum migration: cryptographic inventory, hybrid TLS and deadlines · Guided practice
- Fix cards: Insecure randomness for security tokens
- AES-GCM nonce reuse lab: Fix a nonce allocator that breaks after restart
- Insecure randomness lab: Generate unguessable API keys
- Local project: Bind ciphertext to the correct record
Where coverage will grow
Add durable distributed nonce and key allocation and recovery from storage corruption.
Identifiers: CWE-327 · CWE-326 · CWE-328 · CWE-330 · CWE-338 · CWE-323 · CWE-1240
ID-08Key rotation, TLS and post-quantum migrationCovered6 guides · fix cards for 1 weakness · 1 project · deepest: local project
Keys and certificates can be rotated, restored and retired, TLS is configured from a tested baseline, and the cryptographic inventory supports migration.
Applies to: KMS · TLS and PKI · crypto inventory
Available material
- Envelope encryption and key rotation: data keys, KMS keys and backups · Guided practice
- Operate TLS and certificates: configuration, renewal and verification · Guided practice
- Post-quantum migration: cryptographic inventory, hybrid TLS and deadlines · Guided practice
- Case study: certificate expiry outages at Ericsson (2018) and Microsoft Teams (2020), and Equifax's blind spot · Guided practice
- Case study: Storm-0558 and the forged Microsoft tokens (2023) · Guided practice
- Choose cryptographic algorithms and parameters by job · Guided practice
- Fix cards: Improper TLS certificate validation
- Local project: Bind ciphertext to the correct record
Where coverage will grow
Add KMS and PKI renewal and restore exercises, and protocol-specific post-quantum migration tests.
ID-11Data minimization and privacy transformationsCovered2 guides · deepest: guided practice
Collection, linkage, retention and deletion decisions keep documented purposes and boundaries.
Applies to: Application data lifecycle
Available material
- Data minimization and retention: collect less and prove that deletion works · Guided practice
- Tokenization, pseudonymization and privacy transformations: choose deliberately · Guided practice
Where coverage will grow
Add a deletion and backup lifecycle project and measured re-identification examples.
Identifiers: CWE-359
Governance & frameworks15
GOV-01Accountable product security practiceCovered8 guides · deepest: guided practice
Owners and risk-based practices produce repeatable engineering decisions across the lifecycle.
Applies to: Product development lifecycle
Available material
- Start a minimal AppSec program with owners, triggers and metrics · Guided practice
- Run an AppSec program: owners, finding states, deadlines and champions · Guided practice
- Apply NIST SSDF (SP 800-218) to one product: practices, evidence and attestation in 2026 · Guided practice
- Review a code change through its trust boundaries · Guided practice
- Meet the OpenSSF OSPS Baseline as a maintainer: the levels, every Level 1 control on GitHub, and the evidence · Guided practice
- Map PCI DSS Requirement 6 to engineering practice and evidence · Guided practice
- Run a security champions program with protected time and outcome metrics · Guided practice
- Staged rollout and rollback for security-critical updates · Guided practice
- Product release assurance pack (blank and completed synthetic evidence)
Where coverage will grow
The operating plan and assurance packet need organization-specific ownership and observed adoption.
GOV-02Requirement-bound verificationCovered3 guides · 1 lab · 1 project · deepest: local project
A claim joins a scoped requirement, its implementation, a repeatable test and evidence from the exact candidate.
Applies to: Application assurance
Available material
- ASVS 5.0 verification records: requirement, test and evidence another engineer can repeat · Guided practice
- Control mapping between frameworks: state the relationship without overstating equivalence · Guided practice
- Compliance evidence reuse: one evidence set for SSDF, PCI DSS, ISO 27001, SOC 2 and the CRA · Guided practice
- Release evidence lab: Keep stale test evidence out of a release decision
- Local project: Build and verify a signed software release
- Product release assurance pack (blank and completed synthetic evidence)
Where coverage will grow
Coverage is selective; full ASVS level assessments and cross-framework equivalence are not asserted.
Mapped to: SSDF 1.1 PO.4.1 (Relevant to defining security check criteria) · SSDF 1.1 PW.8.2 (Relevant to scoped testing and retained outcomes)
GOV-03Maturity models and framework selectionCovered8 guides · deepest: guided practice
Teams choose the framework that answers their question and assess evidence with stated confidence.
Applies to: Security program assessment
Available material
- Run an OWASP SAMM assessment with evidence and a practical roadmap · Guided practice
- ISO 27001, SOC 2, NIST CSF or FedRAMP: choose the framework by the question it answers · Guided practice
- SOC 2 for engineering teams: CC6, CC7 and CC8 controls and the evidence auditors test · Guided practice
- ISO 27001 secure development: Annex A 8.25 to 8.33 as engineering practice and evidence · Guided practice
- NIST CSF 2.0 for product teams: the outcomes you own and the evidence for them · Guided practice
- BSIMM vs SAMM vs SSDF: what each is for and which to use · Guided practice
- Set remediation SLAs and measure AppSec outcomes · Guided practice
- Run a security champions program with protected time and outcome metrics · Guided practice
- Product release assurance pack (blank and completed synthetic evidence)
Where coverage will grow
BSIMM, SAMM and SSDF have a comparison guide with a worked crosswalk, and SAMM an assessment guide; Microsoft SDL has no explainer or comparison yet.
GOV-04Exceptions, metrics and remediation SLAsCovered4 guides · 1 lab · deepest: browser lab
Unmet controls keep risk ownership and expiry, and the program measures outcomes rather than activity.
Applies to: Release decisions · risk registers
Available material
- Approve, expire and measure security exceptions without hiding risk · Guided practice
- Set remediation SLAs and measure AppSec outcomes · Guided practice
- Case study: First American's EaglePro document exposure (2019) · Guided practice
- Prioritize vulnerabilities by exploitation, exposure and impact · Guided practice
- Release evidence lab: Keep stale test evidence out of a release decision
- Product release assurance pack (blank and completed synthetic evidence)
Where coverage will grow
Templates need real acceptance authority, dates, compensating-control tests and reporting data.
GOV-05Supplier assuranceCovered2 guides · 1 project · deepest: local project
Supplier evidence applies to the actual product, artifact, use and contractual boundary.
Applies to: Procurement · third-party software
Available material
- Supplier software assurance: check SOC 2 reports, SBOMs and signed updates against your use · Guided practice
- NIS2 and DORA for software suppliers: what reaches you and the evidence to keep · Guided practice
- Local project: Build and verify a signed software release
- Product release assurance pack (blank and completed synthetic evidence)
Where coverage will grow
Add supplier evidence challenge-and-response cases and contract-specific follow-up examples.
GOV-06Privacy and regulated data scopeCovered5 guides · deepest: guided practice
Engineering evidence follows documented product, market, data and organizational applicability.
Applies to: Personal and health data
Available material
- GDPR, CCPA, HIPAA or the FTC rule: scope privacy and health-data obligations before choosing controls · Guided practice
- GDPR privacy by design for engineers: Articles 25, 32 and 35 in code · Guided practice
- UK Software Security Code of Practice: the 14 principles as engineering practice · Guided practice
- Regulated product security lifecycles: IEC 62443-4-1, FDA 524B, ISO/SAE 21434 and UN R155/R156 · Guided practice
- Secure WebRTC signaling, TURN relays and media servers · Guided practice
- Product release assurance pack (blank and completed synthetic evidence)
Where coverage will grow
The guides scope GDPR, CCPA and HIPAA for engineering; jurisdiction-specific legal conclusions are out of scope (see OUT-01).
GOV-07EU Cyber Resilience ActCovered2 guides · deepest: guided practice
Products with digital elements meet CRA vulnerability handling and reporting duties with evidence ready for the deadlines.
Applies to: Products sold in the EU
Available material
- Cyber Resilience Act and payment pages: turn product-security obligations into an engineering evidence plan · Guided practice
- Build a runbook for CRA vulnerability and incident reporting · Guided practice
- Product release assurance pack (blank and completed synthetic evidence)
Where coverage will grow
Reporting (from 11 September 2026) has a runbook; Annex I conformity evidence and support-period decisions have no dedicated guide yet.
Authoritative source: Regulation (EU) 2024/2847 (Cyber Resilience Act)
GOV-08PCI DSS secure development and payment pagesCovered2 guides · deepest: guided practice
Requirement 6 and 11.6.1 evidence comes from real engineering records for each release.
Applies to: Cardholder data environments
Available material
- Map PCI DSS Requirement 6 to engineering practice and evidence · Guided practice
- Cyber Resilience Act and payment pages: turn product-security obligations into an engineering evidence plan · Guided practice
- Product release assurance pack (blank and completed synthetic evidence)
Where coverage will grow
Requirement 6.2.2 role-based training has no dedicated guide yet.
GOV-09ISO/IEC 27001 and SOC 2 engineering evidenceCovered4 guides · deepest: guided practice
Engineering supplies evidence for ISO/IEC 27001:2022 Annex A secure-development controls and SOC 2 change and operations criteria.
Applies to: Certified organizations
Available material
- ISO 27001, SOC 2, NIST CSF or FedRAMP: choose the framework by the question it answers · Guided practice
- SOC 2 for engineering teams: CC6, CC7 and CC8 controls and the evidence auditors test · Guided practice
- ISO 27001 secure development: Annex A 8.25 to 8.33 as engineering practice and evidence · Guided practice
- Compliance evidence reuse: one evidence set for SSDF, PCI DSS, ISO 27001, SOC 2 and the CRA · Guided practice
- Product release assurance pack (blank and completed synthetic evidence)
Where coverage will grow
Annex A 8.25 to 8.33 and SOC 2 CC6 to CC8 each have a control-to-evidence guide with a check script, and one evidence set serves both. The SOC 2 criteria outside access, operations and change management (availability, confidentiality, processing integrity and privacy) are not covered.
Authoritative source: ISO/IEC 27001:2022
GOV-10NIS2 and DORA obligations for software teamsCovered1 guide · deepest: guided practice
Teams in scope of NIS2 or DORA know which duties reach software development and suppliers.
Applies to: Organizations in the EU
Available material
- NIS2 and DORA for software suppliers: what reaches you and the evidence to keep · Guided practice
- Product release assurance pack (blank and completed synthetic evidence)
Where coverage will grow
The guide covers who is in scope, Implementing Regulation 2024/2690, DORA contract terms and the register of information, with one assurance pack for both. National NIS2 transpositions are not tracked country by country.
Authoritative source: Directive (EU) 2022/2555 (NIS2)
GOV-11Vulnerability prioritizationCovered3 guides · deepest: guided practice
Remediation order and due dates follow exploitation, exposure and impact evidence, not a single score.
Applies to: Vulnerability management
Available material
- Prioritize vulnerabilities by exploitation, exposure and impact · Guided practice
- Triage new dependency vulnerability findings · Guided practice
- Respond to an exploited or malicious dependency · Guided practice
- Product release assurance pack (blank and completed synthetic evidence)
Where coverage will grow
Scores change over time; recompute priorities on a schedule as EPSS and KEV data update.
GOV-12Security champions and developer trainingCovered3 guides · deepest: guided practice
Champions have protected time and measured outcomes, and developers get training matched to their role.
Applies to: Engineering organizations
Available material
- Run a security champions program with protected time and outcome metrics · Guided practice
- Run a developer security training program that changes code · Guided practice
- Run an AppSec program: owners, finding states, deadlines and champions · Guided practice
- Product release assurance pack (blank and completed synthetic evidence)
Where coverage will grow
Champions and role-based training each have a guide, with the training evidence PCI DSS 6.2.2 and SSDF PO.2.2 ask for; the team plans on /learn/teams/ supply sessions and exercises. There is no material for running live hands-on events such as capture-the-flag days.
GOV-13Secure by Design commitmentsCovered2 guides · deepest: guided practice
Products ship secure by default, and the maker can show progress on the CISA Secure by Design goals.
Applies to: Software manufacturers
Available material
- Apply CISA Secure by Design: principles, pledge goals and evidence · Guided practice
- UK Software Security Code of Practice: the 14 principles as engineering practice · Guided practice
- Product release assurance pack (blank and completed synthetic evidence)
Where coverage will grow
The three principles and the seven pledge goals have engineering actions and evidence checks, and the UK code of practice maps its 14 principles. Secure-by-design guidance from other national agencies is not compared.
Authoritative source: CISA Secure by Design
GOV-14Software attestation for public-sector buyersCovered2 guides · deepest: guided practice
Producers can state which SSDF practices an attestation covers and back each claim with release evidence.
Applies to: US federal suppliers
Available material
- Answer a US federal secure software attestation request in 2026: the CISA form, its SSDF mapping and the evidence behind each statement · Guided practice
- Apply NIST SSDF (SP 800-218) to one product: practices, evidence and attestation in 2026 · Guided practice
- Product release assurance pack (blank and completed synthetic evidence)
Where coverage will grow
The attestation guide walks through each part of the CISA form, the SSDF 1.1 tasks its appendix maps to each statement, the release evidence to keep with a tested check, the POA&M and third-party assessor options, and the status after OMB M-26-05 and the withdrawn FAR case. Agency-specific terms are covered only where public sources show them, such as GSA's copy of the form; other agencies' contract clauses are not tracked.
GOV-15Careers and certificationsCovered1 guide · deepest: guided practice
Readers can see what each security role does and what each certification demonstrates.
Applies to: Practitioners
Available material
- Build an application security career: roles, skills, portfolio and certifications · Guided practice
- Product release assurance pack (blank and completed synthetic evidence)
Where coverage will grow
Application and product security roles have tracks, a skills matrix, portfolio advice and what each certification shows. Adjacent careers such as security operations, governance and risk, and penetration testing are only touched on.
Authoritative source: NICE Workforce Framework for Cybersecurity
AI security10
AI-01Untrusted instruction containmentCovered5 guides · 1 lab · 1 project · deepest: local project
Retrieved text and tool messages cannot grant authority or redirect privileged application behavior.
Applies to: LLM apps · MCP · multi-agent systems
Available material
- Contain prompt injection at the application boundary · Guided practice
- Constrain MCP and multi-agent trust boundaries · Guided practice
- Red-team LLM applications and agents by their effects · Guided practice
- Secure AI-assisted development with coding assistants and agents · Guided practice
- Defend agent memory and context against poisoning (OWASP ASI06) · Guided practice
- Excessive agency lab: Bind an agent’s action to the approved arguments
- Local project: Enforce retrieval and tool boundaries across crashes
Where coverage will grow
Add interoperable MCP transports and delegated-token integration across several services.
Identifiers: LLM01:2026 · ASI01:2026
AI-02Retrieval and memory isolationCovered5 guides · 1 lab · 1 project · deepest: local project
Documents and memory cross no unauthorized tenant or user boundary before reranking, generation or caching.
Applies to: RAG · tenant memory
Available material
- Keep retrieval inside the user’s data boundary · Guided practice
- Defend agent memory and context against poisoning (OWASP ASI06) · Guided practice
- Bound agent spending, memory and recovery · Guided practice
- Assess extraction, membership and inference risks · Guided practice
- Call a hosted LLM API safely · Guided practice
- RAG access control lab: Stop a retriever from returning another tenant’s documents
- Local project: Enforce retrieval and tool boundaries across crashes
Where coverage will grow
Add real vector-store ACL enforcement, deleted-document propagation and cache invalidation tests, and a runnable project that poisons agent memory across sessions and exercises the write gate, quarantine and rollback.
Identifiers: LLM02:2026 · LLM09:2026 · ASI06:2026
AI-03Tool authority and side effectsCovered8 guides · 1 lab · 1 project · deepest: local project
Current access, exact approval, budget and durable execution jointly authorize each agent action.
Applies to: Agent tools · concurrent workers
Available material
- Authorize agent tools outside the model · Guided practice
- Bound agent spending, memory and recovery · Guided practice
- Constrain MCP and multi-agent trust boundaries · Guided practice
- Contain cascading failures and rogue agents · Guided practice
- Contain LLM misinformation (OWASP LLM07:2026) · Guided practice
- Case study: Moffatt v. Air Canada, a chatbot that misstated the refund policy (2022-2024) · Guided practice
- Case study: the Nx s1ngularity compromise and its AI-assisted payload (2025) · Guided practice
- Case study: the Amazon Q Developer extension compromise (2025) · Guided practice
- Excessive agency lab: Bind an agent’s action to the approved arguments
- Local project: Enforce retrieval and tool boundaries across crashes
Where coverage will grow
Add external API side effects with outbox reconciliation and distributed approval consumption.
Identifiers: LLM03:2026 · LLM06:2026 · ASI02:2026 · ASI03:2026 · ASI09:2026
AI-04Generated output handlingCovered2 guides · 1 lab · 1 project · deepest: local project
Generated content stays untrusted at every rendering, parsing and command boundary.
Applies to: Model output consumers
Available material
- Keep generated output out of executable contexts · Guided practice
- Sandbox model-generated code and computer-use agents · Guided practice
- XSS lab: Render a model’s answer as text instead of active markup
- Local project: Run model-generated Python in a locked-down container
Where coverage will grow
Add browser DOM and downstream parser tests beyond the current encoder checks. Run the code-sandbox project under gVisor or a microVM, and add a computer-use exercise with injected on-screen instructions; both are described but not yet tested here.
Identifiers: LLM10:2026 · ASI05:2026
AI-05AI security evaluation and red teamingPartial5 guides · 1 project · deepest: local project
Evaluations observe actual disclosure, effects and resource use across adversarial test sets.
Applies to: AI application evaluation
Available material
- Build evaluations around prohibited outcomes · Guided practice
- Red-team LLM applications and agents by their effects · Guided practice
- Keep secrets and controls out of hidden context (OWASP LLM08:2026) · Guided practice
- Contain LLM misinformation (OWASP LLM07:2026) · Guided practice
- Case study: Moffatt v. Air Canada, a chatbot that misstated the refund policy (2022-2024) · Guided practice
- Local project: Gate model and provider changes on a versioned red-team corpus
What is missing
Publish regression results from real models and providers. The versioned corpus, harness and regression gate exist, but the only recorded A-versus-B comparison comes from a deterministic simulator. Running the corpus against at least two real model versions or providers needs API access (or a local server with tool calling, such as vLLM or Ollama), permission to test them and about 300 trials per model; then commit both results files and the regression report.
Identifiers: LLM07:2026 · LLM08:2026
AI-06Model and data integrityCovered5 guides · deepest: guided practice
Model artifacts and training or retrieval data keep trustworthy provenance and targeted-failure evaluation.
Applies to: Model supply chains · training data
Available material
- Treat model releases as executable supply-chain inputs · Guided practice
- Protect training and retrieval data from targeted poisoning · Guided practice
- Constrain MCP and multi-agent trust boundaries · Guided practice
- Case study: the Nx s1ngularity compromise and its AI-assisted payload (2025) · Guided practice
- Case study: the Amazon Q Developer extension compromise (2025) · Guided practice
Where coverage will grow
Add isolated model-deserialization and dataset-poisoning projects with measured targeted outcomes.
Identifiers: LLM04:2026 · LLM05:2026 · ASI04:2026
AI-07Privacy attack measurementCovered2 guides · deepest: guided practice
Privacy claims account for the attacker's knowledge, base rates and measured error rates.
Applies to: Model privacy evaluations
Available material
- Assess extraction, membership and inference risks · Guided practice
- Call a hosted LLM API safely · Guided practice
Where coverage will grow
Add a reproducible small-model membership-inference evaluation with documented consent and data provenance.
Identifiers: LLM02:2026
AI-09AI-assisted developmentCovered3 guides · deepest: guided practice
Code from assistants and coding agents passes the same review, dependency and secret controls as human code, and agents run with bounded authority.
Applies to: Coding assistants and agents
Available material
- Secure AI-assisted development with coding assistants and agents · Guided practice
- Case study: the Nx s1ngularity compromise and its AI-assisted payload (2025) · Guided practice
- Case study: the Amazon Q Developer extension compromise (2025) · Guided practice
Where coverage will grow
Add measured comparisons of assistant-generated code against the fix cards' regression tests.
AI-10Agent failure containmentCovered1 guide · deepest: guided practice
A compromised or failing agent cannot cascade through other agents or keep acting outside its mandate.
Applies to: Multi-agent systems
Available material
Where coverage will grow
Add a runnable multi-agent project that trips the kill switch, circuit breaker and run limits under injected faults, and a lab on compensating rollback from an operation log.
Authoritative source: OWASP Top 10 for Agentic Applications 2026
Identifiers: ASI08:2026 · ASI10:2026
AI-11AI governance and regulationCovered2 guides · deepest: guided practice
Teams map AI features to the NIST AI RMF and Generative AI Profile, ISO/IEC 42001 and the EU AI Act timeline.
Applies to: AI features
Available material
- Turn NIST AI RMF, ISO/IEC 42001 and EU AI Act duties into engineering evidence · Guided practice
- Build evaluations around prohibited outcomes · Guided practice
Where coverage will grow
Add a worked Annex IV technical documentation and conformity-assessment example. Revisit when the high-risk classification guidelines are final, harmonised standards are cited in the Official Journal and NIST publishes its AI RMF revision.
Authoritative source: NIST AI 600-1: Generative AI Profile
Historical failures (reference)2
Case studies and failure mechanisms of retired cryptography. They explain past incidents and are counted apart from current practice.
ID-09Cryptographic failure mechanismsCovered6 guides · deepest: guided practice
Engineers can tell deterministic leakage, oracles, weak keys, collisions and downgrade conditions apart.
Applies to: Historical constructions
Available material
- ECB mode: why it leaks patterns and what to use instead · Guided practice
- Padding oracle attacks · Guided practice
- Hash collisions and digital signatures: MD5, SHA-1 and what to use · Guided practice
- Weak RSA key generation: shared primes, ROCA and safe keys · Guided practice
- RC4 keystream bias · Guided practice
- 64-bit block ciphers and the Sweet32 mechanism · Guided practice
Where coverage will grow
These references explain why constructions failed; current choices are in the cryptography quick reference.
ID-10Historical incident lessonsCovered10 guides · deepest: guided practice
Incident prerequisites are connected to present inventory and retirement decisions.
Applies to: Legacy protocol and key incidents
Available material
- WEP: RC4 key reuse and weak IVs · Guided practice
- Flame: MD5 certificate forgery · Guided practice
- Lucky Thirteen and POODLE: two different oracles · Guided practice
- FREAK and Logjam: export-grade key exchange · Guided practice
- DROWN: one RSA key across incompatible protocols · Guided practice
- Sweet32: the cost of a small block size · Guided practice
- ROCA: structured RSA key generation · Guided practice
- Case study: the LastPass breach (2022) · Guided practice
- Case study: the Okta support-system breach and session tokens in HAR files (2023) · Guided practice
- Case study: certificate expiry outages at Ericsson (2018) and Microsoft Teams (2020), and Equifax's blind spot · Guided practice
Where coverage will grow
Add migration case studies that show discovery, replacement and verified removal in a modern system.
Out of scope5
Subjects this site deliberately does not cover, with the reason.
OUT-01Legal advice and compliance conclusionsOut of scopeNot covered by design
Readers know where engineering guidance ends and legal advice begins.
Applies to: All
Why it is out of scope
The guides explain engineering duties and evidence, not whether a law applies to a particular organization. Ask counsel for jurisdiction-specific conclusions.
OUT-02Product reviews and vendor rankingsOut of scopeNot covered by design
Readers can evaluate tools against their own requirements.
Applies to: All
Why it is out of scope
The site is vendor-neutral and does not rank or review commercial products; guides give selection criteria and test methods instead.
OUT-03Exploit development and offensive toolingOut of scopeNot covered by design
Exploits shown here demonstrate a weakness well enough to prove the fix.
Applies to: All
Why it is out of scope
Weaponized exploits, exploit chains against real products and offensive tooling. Labs and fix cards include only the minimal exploit a regression test needs.
OUT-04Enterprise IT and network security operationsOut of scopeNot covered by design
Software teams know which controls their own code and pipelines must provide.
Applies to: All
Why it is out of scope
Endpoint protection, email security, corporate network perimeter and SOC staffing. The runtime guides cover the workloads that teams build and run.
OUT-05Hardware and physical securityOut of scopeNot covered by design
Firmware and update paths that software teams own are covered; silicon and physical access are not.
Applies to: All
Why it is out of scope
Chip design, hardware side channels and physical access controls. Firmware updates and secure boot are covered under APP-13.
No outcomes match. Broaden the search or clear the filters.
Baseline standards
- OWASP ASVS 5.0.0: Web application verification requirements.
- OWASP WSTG 4.2: Testing-method reference, separate from a requirement standard.
- OWASP MASVS 2.1.0: Mobile security requirements; the OWASP MASTG (v2.0.0) holds the tests.
- NIST SSDF 1.1 (SP 800-218): Secure development practices. The version 1.2 draft is tracked on the standards page, not used as a baseline.
- OWASP Top 10 2025: Web application risk categories.
- OWASP API Security Top 10 2023: API risk categories.
- OWASP Top 10 for LLM Applications 2026: Risks of applications built on large language models.
- OWASP Top 10 for Agentic Applications 2026: Risks of AI agents that plan and act with tools.
- NIST AI 600-1 Generative AI Profile (July 2024): Generative AI risks and actions, a profile of the NIST AI Risk Management Framework.
- NIST AI 100-2 E2025: Taxonomy and terminology of adversarial machine learning attacks and mitigations.
- OWASP Kubernetes Top 10 2025: Risks of running workloads on Kubernetes.
- OWASP Top 10 CI/CD Security Risks v1.0 (2022): Risks of the systems that build and ship software.
Mapped identifiers refer to these versions; the standards page lists their status and dates. Outcomes without material stay listed as planned.