sota-security-compliance
State-of-the-art security & compliance engineering (2026) for the cybersecurity control frameworks and product-security regulations that drive architecture, code, and CI gates — not the organizational policy binder. Use when work must satisfy or be audited against NIST CSF 2.0, S
Install
npx skills add https://github.com/martinholovsky/SOTA-skills/tree/main/skills/sota-security-compliance
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install martinholovsky-sota-skills@llmmart
git clone https://github.com/martinholovsky/SOTA-skills.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole martinholovsky/sota-skills collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
SOTA Security & Compliance Engineering
The engineering half of cybersecurity regulation: how to make a control framework a property of the codebase, pipeline, and infrastructure rather than a binder of policy documents. A control that lives in a schema, an IAM policy, a CI gate, or a signed SBOM survives staff turnover and an assessor's sampling; a control that lives in a wiki page does not.
This skill is the security/regulation counterpart to sota-privacy-compliance
(which owns personal-data lifecycle, GDPR, SOC 2, ISO 27001). It owns the
cybersecurity control frameworks and product-security regulations — NIST CSF
2.0, SP 800-53, SP 800-171 / CMMC, SSDF (SP 800-218), FedRAMP, the EU Cyber
Resilience Act, and ISA/IEC 62443 for OT.
This is engineering guidance, not legal, certification, or assessment advice. Framework versions, regulation dates, and conformity routes move — every date and version below was verified against a primary source (NIST CSRC, EUR-Lex, the Federal Register, ISA/IEC) as of July 2026 and each rules file cites it. Re-verify before you rely on a deadline, and route scoping/attestation decisions (is this system in CUI scope? which CMMC level? is our product "important" under the CRA?) to your assessor, sponsor, or counsel. This skill tells you how to build the machinery those decisions require.
The boundary — what this skill does and does not own
Every framework here mixes engineering controls with organizational controls. This skill owns only the first; it names the second and routes it out, so you neither skip it nor pretend code can satisfy it.
| In scope (drives code / architecture / gates) | Out of scope (org/governance — note & route out) |
|---|---|
| System/authorization boundary definition, segmentation, zones & conduits | Security-awareness training programs, phishing simulations |
| FIPS-validated crypto selection; encryption at rest/in transit | Personnel screening, background checks, HR onboarding |
| Audit-log families, retention, tamper-evidence | Physical & environmental security (badges, data-center access) |
| SBOM generation, coordinated vuln disclosure, signed update channels | Risk-committee structure, CISO/DPO roles, board reporting |
| Secure-SDLC gates (SAST/DAST/provenance) as CI checks | Written policy authorship, management review cadence |
| Control-as-code mappings + machine-generated evidence | Legal interpretation, contract clauses, insurance |
When a framework requirement is organizational, the finding is "owned by GRC/HR/ legal — here is the engineering hook (an event, an export, an enforcement point) that makes it auditable," not silence and not a code change that pretends to cover it.
Related skills — reference, do not duplicate:
sota-privacy-compliance— personal-data lifecycle, GDPR/CCPA/HIPAA/PCI, SOC 2 & ISO 27001 audit-ready engineering, breach clocks, data residencysota-devsecops— the actual pipeline: SLSA/provenance, SBOM tooling, signing, dependency scanning (SSDF's PS/PW practices live here)sota-secrets-management— key management, FIPS-validated KMS, rotationsota-identity-access— NIST 800-63 assurance levels, MFA, RBAC/ABAC (the IA/AC control families)sota-detection-engineering— detective controls, NIST 800-61 incident response (the DE/RS/RC functions)sota-network-security— segmentation depth, zero-trust, egress control (SC family, 62443 conduits)sota-sandboxing/sota-kubernetes/sota-cloud-infrastructure— the CM/SC hardening controls in practicesota-threat-modeling— the risk analysis that sets 62443 target Security Levels and DPIA/PIA scope
BUILD mode
When designing or implementing a system that must satisfy a framework:
- Scope the boundary first. Before controls, decide what is in the assessed system — the authorization boundary (FedRAMP), CUI enclave (800-171/CMMC), or zone (62443). A tight, honest boundary is the cheapest control decision you will make; a flat network drags the whole estate into scope (rules/02, rules/05).
- Pick the framework spine, then crosswalk down. Use NIST CSF 2.0 as the organizing map, then bind each outcome to a concrete mechanism from an existing sota-* skill and record it as code (rules/01). Do not re-implement encryption, RBAC, or logging here — reference where they already live.
- Encode controls as gates, not prose. Encryption-required, FIPS-crypto-only, boundary-egress-deny, SBOM-present, no-known-exploitable-vulns-at-release become policy-as-code and CI checks that fail the build (rules/01 §evidence, rules/03).
- Build product-security obligations in from day one where the CRA/62443 apply: SBOM in CI, a coordinated-vulnerability-disclosure intake, a signed update channel, and a defined support period are architecture, not paperwork — brutal to retrofit (rules/04, rules/05).
- Emit evidence as a byproduct. Every control's enforcing system should produce its own proof (a CI log, a signed attestation, an IaC diff, a KSI feed). If proving a control needs a screenshot, the control runs only at screenshot time (rules/01).
- Know your regime before architecture freezes (rules/02–05): CUI → 800-171/ CMMC + FIPS crypto + boundary; US-gov cloud → FedRAMP + 800-53 baseline; EU-market product → CRA; OT/industrial/embedded → 62443.
AUDIT mode
When reviewing a codebase/infrastructure against a framework:
Process: (1) Establish the applicable framework(s) and the assessed boundary (rules/02 §scope). (2) Obtain or build the control crosswalk — control → claimed mechanism → evidence source (rules/01). (3) For each control, verify the mechanism actually enforces it and the evidence is machine-generated, not asserted — test the gate, read the policy-as-code, sample the log. (4) Separate engineering findings from organizational ones (the boundary table above) so each lands with the right owner. (5) Map findings to the framework's control IDs so they are traceable to an assessor's language.
Severity conventions:
| Severity | Meaning | Examples |
|---|---|---|
| CRITICAL | Control absent where a regulation/contract mandates it; exploitable or ships now | CUI leaving the boundary unencrypted; product shipped with a known exploitable vuln under CRA; non-FIPS crypto protecting CUI; no vuln-reporting path with a live 24h/72h clock |
| HIGH | Control claimed but not enforced; fails on first assessment/incident | Encryption "policy" with no CI enforcement; SBOM promised but not generated; SSDF attestation signed but PW practices absent; flat network claiming a segmented CDE/zone |
| MEDIUM | Control runs but evidence is manual/stale, or crosswalk is incomplete | Evidence gathered by screenshot; control matrix maps to a wiki not a mechanism; SL-T asserted without a risk assessment behind it |
| LOW | Hardening / traceability hygiene | Control IDs not referenced in code/IaC; exception register lacks expiry; update channel unsigned but not yet required |
Finding format:
[SEVERITY] <title>
Location: <file:line / pipeline stage / IaC resource / boundary component>
Framework: <CSF 2.0 Subcat / 800-53 control / 800-171 req / SSDF task / CRA Annex I / 62443 FR — as applicable>
Owner: <engineering | GRC/org — per the boundary table>
Issue: <control missing / claimed-not-enforced / evidence-not-generated>
Impact: <assessment failure, contract loss, CRA non-conformity, incident exposure>
Fix: <concrete engineering remediation, or the hook if org-owned>
Evidence: <how you verified — the gate you ran, the log you sampled, the policy you read>
Group findings by control family/function, not by file — that is how assessors and sponsors read them.
Rules index
| File | Read this when... |
|---|---|
| rules/01-control-frameworks-as-code.md | Starting any compliance work; choosing NIST CSF 2.0 as a spine; building the control → mechanism → evidence crosswalk; deciding what to reuse from other sota-* skills vs. build; encoding controls as policy-as-code and CI gates |
| rules/02-nist-800-53-171-cmmc-fedramp.md | Handling CUI / selling to US government or defense; scoping an authorization boundary or CUI enclave; picking a 800-53 baseline; FIPS-validated crypto; CMMC level and phase-in; FedRAMP / FedRAMP 20x |
| rules/03-ssdf-secure-sdlc.md | Standing up or auditing a secure SDLC; mapping SSDF (SP 800-218) PO/PS/PW/RV practices to your pipeline; federal secure-software self-attestation; AI/model development (SP 800-218A) |
| rules/04-eu-cyber-resilience-act.md | Placing a product with digital elements on the EU market; SBOM, secure-by-default, no-known-exploitable-vulns; the CVD policy and signed update channel; triaging an inbound report (§3a — what starts the awareness clock, ISO/IEC 30111/29147, and checking the cited code exists); the 24h/72h ENISA reporting clocks; CRA timeline & conformity |
| rules/05-iec-62443-ot-ics.md | Building or auditing OT/ICS/IIoT/embedded/industrial products; zones & conduits segmentation; Security Levels (SL-T/C/A) and the 7 Foundational Requirements; 62443-4-1 vs SSDF; 62443 as a CRA conformity route |
Top 10 non-negotiables
- Scope the boundary before the controls. The assessed system's edge — authorization boundary, CUI enclave, or 62443 zone — is decided, drawn, and enforced by segmentation before control work starts. A flat network makes the whole estate in scope and every control 10× more expensive.
- One control set, many frameworks. Build the mechanism once and crosswalk it; CSF, 800-53, 800-171, SOC 2, ISO 27001, and CRA overwhelmingly ask for the same engineering. Per-framework silos duplicate work and drift.
- A control is the mechanism, not the policy. Every control maps to a running system that enforces it. "We have a policy" with no enforcing mechanism is a finding, not a control.
- Evidence is a byproduct or it is theater. Each control's enforcing system produces its own proof — CI log, signed attestation, IaC history, KSI feed. Screenshots pasted before fieldwork are the smell of a control that runs only then.
- FIPS-validated crypto where the regime demands it. CUI, FedRAMP, and many OT contexts require validated modules (FIPS 140-3), not merely "encryption." A home-rolled or non-validated cipher protecting CUI is a critical finding.
- Ship no known exploitable vulnerabilities. Under the CRA (and as basic hygiene) release gates block known-exploitable vulns; a monitored SLA drives remediation within the support period. "We'll patch it later" is a non-conformity, not a backlog item.
- SBOM, CVD, and a signed update channel are architecture. For any product under the CRA/62443, generate an SBOM in CI, publish a coordinated-vulnerability- disclosure intake, and sign updates over a maintained channel — designed in, not bolted on at audit time. An intake is only half of it: the reporting clock runs from awareness, so the triage that decides whether a report is real, ours and exploitable is on the critical path and needs a written order (rules/04 §3a).
- Secure-SDLC practices are gates, not intentions. SSDF PW/PS practices — threat modeling, SAST/DAST, provenance, protected repos, signing — are CI checks that fail the build. A signed attestation whose practices aren't enforced is the finding assessors hunt.
- Reporting clocks are wired into on-call, not lawyers. Where a regime imposes a 24h/72h reporting clock (CRA, NIS2, DORA), detection and the reporting workflow are engineered and rehearsed; a clock that depends on someone noticing is already breached.
- Separate engineering findings from organizational ones. Every control lands with the owner who can fix it. Blaming code for a training gap — or asking GRC to fix a missing CI gate — wastes both and leaves the real control unbuilt.
Files (sota-skills)
-
rules
-
01-control-frameworks-as-code.md 9.3 KB
# 01 — Control Frameworks as Code (NIST CSF 2.0 spine) The reusable engine under every regime in this skill: pick an organizing spine, crosswalk each outcome to a mechanism that already exists in your stack, and make that mechanism emit its own evidence. Do this once and most of NIST CSF, 800-53, 800-171, SOC 2, ISO 27001, and the CRA fall out as views over the same controls. ## 1. Use NIST CSF 2.0 as the spine, not the control catalog **Status (verified July 2026):** NIST Cybersecurity Framework **2.0** (CSWP 29) was published **26 Feb 2024** and is current, superseding 1.1 (csrc.nist.gov/pubs/cswp/29). CSF is an **outcome map**, not a control list — it says *what* good looks like and defers *how* to "Informative References" (SP 800-53, etc.). That makes it the right top-level structure for a skill or a control program; the concrete requirements come from rules/02–05. **The six Functions** (2.0 added **Govern**, which wraps the other five): | Function | Engineering meaning | Where the mechanism lives | |---|---|---| | **GOVERN** (GV) | Risk strategy, roles, policy, supply-chain oversight | Mostly organizational — note & route out (see SKILL boundary); the engineering hook is policy-as-code + the crosswalk itself | | **IDENTIFY** (ID) | Asset & data inventory, risk assessment | `sota-privacy-compliance` rules/01 (data), `sota-cloud-infrastructure` (asset inventory), `sota-threat-modeling` | | **PROTECT** (PR) | Access control, data security, platform hardening | `sota-identity-access`, `sota-secrets-management`, `sota-network-security`, `sota-sandboxing`, `sota-kubernetes` | | **DETECT** (DE) | Continuous monitoring, anomaly detection | `sota-detection-engineering`, `sota-observability` | | **RESPOND** (RS) | Incident handling, reporting | `sota-detection-engineering` (NIST 800-61), rules/04 clocks | | **RECOVER** (RC) | Restoration, backups, continuity | `sota-cloud-infrastructure` (DR/backups), `sota-databases` | The lesson: this skill's job is **binding and evidence**, not re-implementing PROTECT/DETECT. If you find yourself writing an encryption or RBAC section here, stop — reference the skill that owns it. ## 2. The crosswalk is the deliverable **Rule:** For every control in scope, record three things as code in-repo — the framework control ID, the *mechanism* that enforces it, and the *evidence source* that proves it — with an owner. This single artifact serves every framework at once and is the thing an assessor, a customer, or a future engineer actually uses. ```yaml # GOOD: controls/sc-8.yaml — one control, many frameworks, a real mechanism control: "Transmission confidentiality & integrity" maps: nist_800_53: [SC-8, SC-8(1)] nist_800_171: ["3.13.8"] # verify exact Rev 3 req ID against the 800-171r3 PDF csf_2_0: [PR.DS-02] cra: ["Annex I §1(2)(e)"] # secure by default in transit mechanism: > TLS 1.3 terminated at the mesh; mTLS between services (sota-network-security rules/04); FIPS-validated module in the moderate/CUI boundary (rules/02 §4). evidence: - source: ci_policy query: "opa gate: deny plaintext listeners / TLS<1.2 — see policy/tls.rego" - source: mesh_config query: "istio PeerAuthentication STRICT, exported nightly" owner: platform-team inherited_from: ~ # or the CSP/PaaS control the customer inherits (FedRAMP CRM) ``` ```text BAD: a spreadsheet cell "SC-8 — Encryption in transit — Compliant" with no link to a mechanism or a query. On sampling, two of five services listen plaintext inside the cluster and nobody can produce proof either way. ``` **Build the crosswalk from the mechanism up, not the framework down.** Enumerate what your systems already enforce (from the sota-* skills you apply), then attach control IDs. You will find you already satisfy 70–90% of any framework — the work is *mapping and recording*, the same insight `sota-privacy-compliance` rules/05 makes for SOC 2/ISO. Only the genuine gaps become new engineering. ## 3. Inheritance and shared responsibility Most controls in a cloud system are **inherited** from the platform, not built by you. Record the split explicitly or you will either re-build inherited controls or claim controls you don't own: - **Fully inherited** (e.g., physical security of a hyperscaler region) → reference the provider's attestation; you implement nothing. - **Shared** (e.g., encryption at rest: provider offers KMS, *you* must enable it and manage keys) → your mechanism is "enabled + enforced by policy-as-code." - **Customer** (e.g., your app's authz logic) → wholly yours. FedRAMP calls this the Customer Responsibility Matrix (rules/02); the concept is universal. A control marked "inherited" with no named provider control is a finding. ## 4. Encode controls as gates, not prose **Rule:** Every control that *can* be machine-enforced is a policy-as-code check at CI and at the platform boundary (admission controllers, org policies/SCPs), not a sentence in a PDF. Two products fall out of one policy: the **prevention** (the control) and the **evaluation log** (the evidence). ```rego # GOOD: a CUI/moderate data store cannot ship without validated crypto & boundary # tags — one policy keeps the rules/02 boundary and FIPS requirement honest deny[msg] { r := input.resource_changes[_] r.type in {"aws_s3_bucket", "aws_rds_cluster", "aws_dynamodb_table"} r.change.after.tags.data_category == "cui" not r.change.after.tags.boundary == "authorized" msg := sprintf("%s: CUI resource outside the authorization boundary", [r.address]) } deny[msg] { r := input.resource_changes[_] r.change.after.tags.data_category == "cui" not r.change.after.kms_key_fips_validated # your module verifies the KMS key's module msg := sprintf("%s: CUI at rest without FIPS-validated crypto (rules/02 §4)", [r.address]) } ``` Exceptions live in a register with `policy, resource, justification, compensating control, owner, approved-by, expires` — CI re-fails the build the day an exception expires. An exception that cannot expire is a policy change; argue it as one. (Same discipline as `sota-privacy-compliance` rules/05 §4 and `sota-devsecops`.) ## 5. Baselines and tailoring Frameworks ship **baselines** — predefined control sets keyed to system impact (rules/02). Do not start from a blank catalog: 1. **Categorize the system** (impact: low/moderate/high, per data sensitivity — FIPS 199 in the US context). 2. **Inherit the matching baseline** as your starting control set. 3. **Tailor:** mark inherited controls, scope out non-applicable ones *with justification*, and add compensating controls where you deviate. Record the tailoring — an unjustified scope-out is the first thing an assessor pulls. The tailoring record is the US-framework analog of ISO 27001's Statement of Applicability (`sota-privacy-compliance` rules/05 §2): justify every inclusion and exclusion, as code, reviewed like code. ## 6. Continuous, not point-in-time A control that passed once and is never re-checked is a point-in-time artifact; assessments increasingly want **operating effectiveness over time** (SOC 2 Type II, FedRAMP ConMon, CMMC affirmation). The engineering consequence is the same one that makes automation non-optional: you cannot retro-create a year of operating evidence. So: - Gates run on **every** change, and their logs are retained as the evidence population (`sota-devsecops`). - Drift detection re-checks live infra against policy continuously. - The crosswalk is reviewed at defined cadence; control owners get diffs, not a 300-row spreadsheet to rubber-stamp (the anti-pattern from `sota-privacy-compliance` rules/05 §2b). Where a framework moves toward **machine-readable evidence** (FedRAMP 20x Key Security Indicators, OSCAL control catalogs/SSPs), emit that format directly from the enforcing system rather than transcribing into it — OSCAL SSP/SAP/SAR and component definitions are the interchange target (rules/02). ## Audit checklist - [ ] A control crosswalk exists **as code** in-repo: control ID → enforcing mechanism → evidence source → owner; covers the applicable framework(s), not one silo per framework - [ ] CSF 2.0 (or the mandated framework) used as the organizing spine; controls reference the sota-* skill that owns the mechanism rather than re-implementing it - [ ] Every control maps to a *running mechanism*, not a policy document; spot-check three controls by executing the gate / sampling the log - [ ] Inherited vs shared vs customer responsibility recorded per control; no control claimed as inherited without a named provider control - [ ] Machine-enforceable controls are policy-as-code gates at CI and the platform boundary; exception register with owner + expiry; CI re-fails on expiry - [ ] System categorized (impact level) and the matching baseline inherited then tailored; tailoring (scope-outs, compensating controls) justified as code - [ ] Evidence is generated by the enforcing system (CI log, IaC history, signed attestation, KSI/OSCAL feed) and producible in minutes — no screenshot evidence - [ ] Controls re-evaluated continuously (gates on every change, drift detection), not point-in-time; evidence population generated by reproducible query - [ ] Organizational controls (GOVERN, training, physical) explicitly marked as GRC/org-owned with the engineering hook noted — not silently skipped nor faked in code - [ ] Framework versions/dates in the crosswalk re-verified against primary sources within the last 6 months -
02-nist-800-53-171-cmmc-fedramp.md 9.8 KB
# 02 — NIST 800-53 / 800-171 / CMMC / FedRAMP The US federal control stack. These four are one lineage: **SP 800-53** is the master control catalog; **SP 800-171** is its tailored subset for protecting Controlled Unclassified Information (CUI) on non-federal systems; **CMMC** is the DoD program that *assesses* 800-171 implementation; **FedRAMP** applies 800-53 baselines to cloud services sold to the government. Learn the catalog once; the rest are scopes and assessment wrappers over it. > Statuses verified July 2026 against csrc.nist.gov, fedramp.gov, and the Federal > Register. Re-verify dates before relying on them; route scoping/level decisions > to your assessor or sponsor (engineering guidance, not assessment advice). ## 1. SP 800-53 — the control catalog **Status:** **Rev 5**, finalized 10 Dec 2020 (Rev 5.1.1); the **SP 800-53/53B** catalog and baselines reached **Release 5.2.0 on 27 Aug 2025** — the catalog is current and actively maintained, no Rev 6 (csrc.nist.gov/pubs/sp/800/53/r5/upd1/final). **20 control families**; Rev 5 added **PT** (PII processing) and **SR** (supply- chain risk). The families engineers implement directly: | Family | What it drives in code/infra | |---|---| | **AC** Access Control | RBAC/ABAC, least privilege, session control → `sota-identity-access` | | **AU** Audit & Accountability | auditable events, log content, retention, tamper-evidence → `sota-observability`, `sota-detection-engineering` | | **SC** System & Comms Protection | TLS, boundary/segmentation, FIPS crypto, key mgmt → `sota-network-security`, `sota-secrets-management` | | **SI** System & Info Integrity | flaw remediation, malware, input validation, monitoring → `sota-code-security` | | **CM** Configuration Management | baselines, least functionality, change control → `sota-devsecops`, `sota-kubernetes` | | **IA** Identification & Authentication | MFA, authenticator mgmt (800-63) → `sota-identity-access` | | **SA** System & Services Acquisition | secure SDLC, developer testing (SA-11/SA-15/SA-22) → rules/03 SSDF | **Baselines (800-53B):** **low / moderate / high**, keyed to the system's impact level (FIPS 199 categorization across confidentiality/integrity/availability), plus a **privacy baseline** applied regardless of impact. Start from the baseline and tailor (rules/01 §5) — never a blank catalog. **Interchange format:** NIST publishes the catalog and baselines in **OSCAL** (machine-readable JSON/XML/YAML). Consume OSCAL for the control catalog and emit OSCAL SSP/SAP/SAR from your crosswalk (rules/01 §2) rather than hand-maintaining Word documents. ## 2. SP 800-171 — protecting CUI on your systems **Status:** **Rev 3 is FINAL — published 14 May 2024** (csrc.nist.gov/pubs/sp/800/171/r3/final), superseding Rev 2. Re-derived from 800-53 Rev 5 moderate baseline; introduces **organization-defined parameters (ODPs)** and reorganizes into **17 families** (Rev 2 had 14 — Rev 3 adds Planning, System & Services Acquisition, and Supply Chain Risk Management). > **Version caveat that bites right now:** CMMC Level 2 is currently pinned to > **800-171 Rev 2** (110 controls) via the DoD rule text, even though Rev 3 is the > current NIST publication. Which revision your contract requires is a > **contract-level fact** — verify against the DFARS clause / SSP template before > building to Rev 3 numbering. Rev 3 also **renumbered** some requirements, so > confirm exact IDs against the 800-171r3 PDF, not memory. **What CUI is:** government-created or -owned information that is not classified but requires safeguarding (contract data, technical drawings, etc.). If you process, store, or transmit CUI on a non-federal system, 800-171 applies. **The requirements that drive architecture** (Rev 2 numbering shown; map forward carefully): - **Define and isolate the CUI boundary** — boundary protection (3.13.1) and subnetworks for publicly accessible components (3.13.5). This is the single biggest design decision: a **CUI enclave** (segmented network/accounts/identity) keeps scope small; a flat network puts the whole company in scope. - **FIPS-validated cryptography** to protect CUI confidentiality (3.13.11) — a *validated module* (FIPS 140-3, CMVP certificate), not merely "AES somewhere." See §4. - **Audit logging & retention** (3.3.x) — auditable events, protected logs, reviewed. - **Separation of duties + least privilege** (3.1.x) and **MFA** (3.5.3) for network/privileged access. - **SPRS score:** DoD contractors self-assess against 800-171 and post a score to the Supplier Performance Risk System; the SSP + POA&M are the assessable artifacts. Generate them from the crosswalk (rules/01), don't hand-write. ## 3. CMMC — assessing 800-171 for DoD **Status:** the **CMMC program rule (32 CFR Part 170)** was published 15 Oct 2024 and became **effective 16 Dec 2024**. The **acquisition rule (48 CFR / DFARS, Case 2019-D041)** that lets DoD put CMMC clauses into contracts was published 10 Sep 2025, **effective 10 Nov 2025** (Federal Register 2024-22905 and 2025-17359). CMMC is live; contract requirements are phasing in. **Three levels:** - **Level 1 (Foundational)** — Federal Contract Information (FCI); 15 requirements from FAR 52.204-21; **annual self-assessment**. - **Level 2 (Advanced)** — CUI; **maps to NIST SP 800-171 (110 controls)**; self-assessment *or* third-party assessment by a **C3PAO** depending on the contract. - **Level 3 (Expert)** — adds a subset of **SP 800-172** (enhanced controls for advanced persistent threats); government-led assessment. **Phase-in** (per 32 CFR 170, clock from the 48 CFR effective date 10 Nov 2025): Phase 1 (self-assessments) now → **Phase 2 (~Nov 2026)** L2 C3PAO certification in solicitations → Phase 3 (~2027) L3 → Phase 4 (~2028) full inclusion. *Dates are DoD-planned and can slip — verify against the actual DFARS clause at contract time.* Engineering consequence: implement the 800-171 controls in §2, maintain an SSP + POA&M as living, assessable evidence, and re-affirm annually. ## 4. FIPS-validated cryptography — the recurring hard requirement CUI, FedRAMP, and many OT/federal contexts require **FIPS 140-3 validated cryptographic modules** — not just "strong encryption." Engineering consequences: - Use a crypto module holding a current **CMVP certificate** (check the module and version on the NIST CMVP list; "FIPS-capable" ≠ "validated" ≠ "operating in FIPS mode"). Verify the *module* your runtime actually loads. - In cloud: use the provider's **FIPS-validated endpoints/KMS** and record the module in the crosswalk (`sota-secrets-management`). A non-validated library (or a validated one running outside FIPS mode) protecting CUI is a **critical** finding. - Don't roll your own or use a non-validated cipher for in-scope data. This is the one place "the crypto works fine" is not the standard — validation is the requirement. ## 5. FedRAMP — 800-53 for government cloud **Status:** the traditional program uses **800-53 Rev 5 baselines** at **Low / Moderate / High** impact (FIPS 199), via **Agency ATO** or PMO paths. **FedRAMP 20x is a real, active initiative** (fedramp.gov/20x) reframing authorization toward continuous, **machine-readable evidence** (Key Security Indicators) over document-heavy SSPs — first 20x pilot authorizations issued **6 Mar 2026**, with wider submission planned for **FY26 Q4**; consolidated program rules took effect **4 Jul 2026**, and new Rev 5 certifications stop being accepted **11 Jun 2027**. *Future-phase dates are FedRAMP estimates — re-verify at fedramp.gov/changelog.* **Engineering implications (both paths):** - **Authorization boundary:** a hard, documented edge around the service; every component and data flow that touches federal data is inside it and inventoried. Scope discipline is the whole game (as with the CUI enclave, §2). - **Complete asset inventory**, reconciled continuously — a stale inventory is the most common ConMon finding. - **Continuous monitoring (ConMon):** scanning, POA&M management, and change control run monthly, not at audit time. - **20x-shaped work:** emit control evidence as **machine-readable KSIs** straight from the enforcing system (rules/01 §6) rather than transcribing into an SSP. - **Customer Responsibility Matrix:** document which controls the consuming agency inherits from you vs. must implement themselves (rules/01 §3). ## Audit checklist - [ ] System categorized (impact level / FIPS 199) and the correct 800-53 baseline (low/moderate/high) inherited then tailored, with justification as code - [ ] If CUI is present: a defined, segmented CUI enclave/boundary — verified in network/IAM config, not asserted; publicly accessible components subnetworked - [ ] FIPS-validated (140-3, CMVP-certificated) crypto module protects CUI/federal data at rest and in transit; the *loaded* module verified, and it runs in FIPS mode - [ ] 800-171 revision in use matches the **contract** requirement (CMMC L2 may pin Rev 2); exact requirement IDs confirmed against the primary PDF, not memory - [ ] CMMC level matches the contract; SSP + POA&M generated from the control crosswalk and kept current; SPRS score posted where required; annual affirmation wired - [ ] AU/audit-logging controls implemented with retention + tamper-evidence; logs reviewed (mechanism, not manual promise) - [ ] AC/IA controls: least privilege, separation of duties, MFA for privileged/network access — enforced by the IdP, not policy prose (`sota-identity-access`) - [ ] FedRAMP (if applicable): authorization boundary drawn and enforced; asset inventory reconciled continuously; ConMon (scans/POA&M/change control) operating monthly; CRM published - [ ] Where FedRAMP 20x applies, control evidence emitted as machine-readable KSIs from the enforcing system; OSCAL used for SSP/SAP/SAR interchange - [ ] All statuses/dates in this file re-verified against primary sources (CSRC, fedramp.gov, Federal Register) within the last 6 months -
03-ssdf-secure-sdlc.md 7.7 KB
# 03 — Secure SDLC: NIST SSDF (SP 800-218) The framework that turns "we develop securely" from a claim into an assessable set of practices. The SSDF is deliberately high-level and tool-agnostic; its value here is as a **checklist to crosswalk your existing pipeline against** (rules/01), and as the thing US federal buyers make you **attest to**. Almost none of it is new engineering if you already apply `sota-devsecops`, `sota-testing`, and `sota-secrets-management` — the work is mapping and closing gaps. > **Status (verified July 2026):** the operative version is **SSDF v1.1, SP > 800-218, published 3 Feb 2022** (csrc.nist.gov/pubs/sp/800/218/final). A **Rev 1 > (SSDF v1.2)** initial public draft appeared **Dec 2025** — *draft, not a > baseline; do not cite as current.* **SP 800-218A** (AI/model development > profile) is **final, 26 Jul 2024**. Re-verify before relying on any of these. ## 1. The four practice groups SSDF organizes practices into four groups. Map each to the sota-* skill and CI stage that already implements it: | Group | Intent | Where it lives in your stack | |---|---|---| | **PO — Prepare the Organization** | Define security requirements, roles, toolchains, and criteria *before* coding | Governance + `sota-devsecops` (pipeline setup), `sota-docs-workflow` (requirements) | | **PS — Protect the Software** | Protect code and releases from tampering | Source integrity, branch protection, artifact **signing & provenance (SLSA/Sigstore)**, protected registries → `sota-devsecops`, `sota-secrets-management` | | **PW — Produce Well-Secured Software** | The design/code core: build security in | **Threat modeling** (`sota-threat-modeling`), secure defaults & secure coding (`sota-code-security` + language skills), **SAST/DAST/secret-scanning**, code review, vetting reused components → `sota-devsecops`, `sota-testing` | | **RV — Respond to Vulnerabilities** | Find, triage, remediate, and root-cause post-release | VDP/CVD intake, scanning, SLA-tracked remediation → rules/04 (CRA overlaps), `sota-devsecops` | **PW drives architecture and code most directly**; PS drives the pipeline; RV drives operations. PO is largely governance with a few engineering hooks (the toolchain and the security-requirements definition). ## 2. Make each practice a gate, not an intention The failure mode assessors hunt is a **signed attestation whose practices aren't enforced**. Encode the machine-checkable practices as CI gates so the attestation is backed by a mechanism (rules/01 §4): - **PW.7 / PW.8 (review & testing)** → SAST, DAST, and secret-scanning gates that fail the build; test-coverage and security-test suites (`sota-testing`, including its security-testing/WSTG rules). - **PW.4 (reuse secure components)** → dependency scanning + an allowlist/denylist; SBOM generation (rules/04); no unvetted transitive pull-through. - **PS.1 / PS.2 (protect & provide provenance)** → signed commits, SHA-pinned actions, **build provenance (SLSA)** and artifact signing (`sota-devsecops`). - **PS.3 (archive & protect each release)** → immutable, signed release artifacts with retained provenance. - **PW.1 (threat modeling / secure design)** → a design-review gate that references the threat model (`sota-threat-modeling` rules/06) for features crossing trust boundaries. - **RV.1 (identify vulns continuously)** → scheduled dependency/container/runtime scanning with SLA-tracked tickets; **RV.2** remediation; **RV.3** root-cause. The crosswalk row for each practice cites the gate and its evidence — the CI log *is* the operating evidence (rules/01 §6). ## 3. Federal secure-software self-attestation **Status (needs verification — enforcement scope has shifted across administrations):** under OMB M-22-18 / M-23-16, software producers selling to the US government are required to **self-attest** to SSDF-aligned practices via the **CISA Secure Software Development Attestation Form**, with artifacts submitted through CISA's repository (cisa.gov/secure-software-attestation-form). *Confirm the current mandate, covered-software scope, and deadlines before asserting them* — this is the most politically volatile item in this skill. **Engineering consequence regardless of the mandate's status:** an attestation is a **signed claim by a named officer**. Before anyone signs, the PW/PS/RV practices must be *demonstrably enforced* — because the attestation is only as true as the gates behind it, and a false attestation carries legal exposure (False Claims Act risk in the US). Treat "can we sign this honestly?" as "are these practices gates in CI?" Produce the artifacts (SBOM, provenance, scan results) the form references straight from the pipeline. ## 4. SP 800-218A — AI / model development If you develop or fine-tune AI models, **SP 800-218A** (final, Jul 2024) augments the SSDF with model-specific tasks. The additions that drive engineering: - **Training-data provenance & integrity** — data lineage, poisoning defenses, and the same inventory discipline as `sota-privacy-compliance` rules/01 extended to datasets (see `sota-ml-engineering` for leakage/lineage mechanics). - **Model weights as high-value assets** — protect and sign them like release artifacts (PS practices applied to weights); access-control and provenance for checkpoints. - **Dual-use foundation-model considerations** and eval/misuse testing before release (`sota-llm-engineering` evals, `sota-code-security` rules/08 for prompt-injection/agent surface). This is the crosswalk target when an SSDF attestation or a customer questionnaire asks about AI development specifically. ## 5. Don't rebuild — reference The SSDF is intentionally a *reference framework*; the concrete SOTA practice for every task it names already lives in this library. This rule's job is to give you the **mapping** and the **attestation discipline**, not a second copy of the pipeline guidance. When a PW/PS/RV practice needs implementing, jump to: - `sota-devsecops` — the pipeline, SLSA/Sigstore provenance, SBOM, dependency & IaC scanning, admission control - `sota-testing` — SAST/DAST placement, security testing (WSTG), fuzzing, mutation - `sota-code-security` + the language skills — secure coding, the vuln classes - `sota-secrets-management` — signing keys, protected credentials - `sota-threat-modeling` — the PW.1 design analysis ## Audit checklist - [ ] SSDF practices (PO/PS/PW/RV) crosswalked to concrete pipeline stages and sota-* mechanisms (rules/01); gaps tracked, not hand-waved - [ ] PW machine-checkable practices are CI gates that fail the build: SAST, DAST, secret-scanning, dependency scanning, test suites - [ ] PS: signed commits, SHA-pinned actions, build provenance (SLSA) and artifact signing; releases immutable, signed, provenance retained - [ ] PW.1 secure-design/threat-modeling gate for features crossing trust boundaries, referencing the threat model - [ ] RV: continuous vuln identification (deps/containers/runtime) with SLA-tracked remediation and root-cause analysis - [ ] If federal self-attestation applies: the attested practices are demonstrably enforced *before* signing; SBOM/provenance/scan artifacts produced from the pipeline; current mandate/scope/deadline verified (not assumed) - [ ] If developing/fine-tuning AI: SP 800-218A additions applied — training-data provenance/integrity, model weights protected & signed as high-value assets, eval/misuse testing before release - [ ] Attestation, if any, backed by mechanisms not prose — no signed claim without an enforcing gate (False Claims exposure) - [ ] SSDF version referenced is the current final (v1.1 / SP 800-218) unless a newer revision has been finalized; drafts not cited as baseline - [ ] No pipeline guidance duplicated here — implementation deferred to `sota-devsecops` / `sota-testing` / `sota-code-security` -
04-eu-cyber-resilience-act.md 14.2 KB
# 04 — EU Cyber Resilience Act (CRA) The first horizontal EU law that makes **product cybersecurity** a legal requirement for placing a "product with digital elements" on the EU market. Unlike the framework crosswalks elsewhere in this skill, the CRA is binding regulation with CE-marking, penalties, and hard reporting clocks — and its obligations are overwhelmingly *engineering* obligations (SBOM, vulnerability handling, secure-by- default, a maintained update channel). Retrofitting them is brutal; design them in. > **Status (verified July 2026 against EUR-Lex and the European Commission):** > Regulation **(EU) 2024/2847**, in force **10 Dec 2024**. Phased application: > **conformity-assessment/notified-body provisions from 11 Jun 2026**; > **reporting obligations (Art. 14) from 11 Sep 2026**; **main/essential > requirements from 11 Dec 2027**. Article sub-numbering below should be confirmed > against EUR-Lex before quoting verbatim; the dates and Art. 14 clocks are > corroborated by the Commission's summary page. Re-verify — and route > product-class/conformity-route decisions to counsel or a notified body. ## 1. Does it apply? Scope - **Product with digital elements (PDE):** any software or hardware product (plus its remote data-processing solutions) whose intended or reasonably foreseeable use includes a direct or indirect logical/physical data connection to a device or network. Components placed on the market separately are covered. - **Risk tiers → conformity route:** **default** (self-assessment, Module A) → **"important" products (Annex III), Class I and Class II** → **"critical" products (Annex IV)**. Higher tiers require stricter routes — third-party (notified-body) assessment or an EU cybersecurity certification scheme. - **Open-source nuance:** non-commercial OSS is out of scope. The **open-source software steward** role (Art. 24) carries a lighter, tailored regime (a cybersecurity policy, vulnerability handling, cooperation) and stewards are **not subject to the penalty regime**. Commercial productization of OSS pulls you back into full manufacturer obligations. If you sell software/hardware into the EU and it talks to a network or device, assume in-scope and confirm the tier — the tier decides how heavy the conformity route is, not whether the essential requirements apply. ## 2. Essential requirements → engineering work (Annex I) Annex I has two parts: **Part I = product security properties**; **Part II = vulnerability-handling process**. Both are engineering. **Part I — secure by design & default:** - Ship **without known exploitable vulnerabilities** → a **release gate** that blocks known-exploitable findings; a mechanism to know your components' CVE status (ties to the SBOM below and to `sota-devsecops` scanning). - **Secure default configuration** — hardened out of the box, no default credentials, minimal attack surface, secure-by-default TLS/auth (`sota-code-security`, `sota-network-security`). - Protect **confidentiality/integrity** of data and commands (encryption, authenticated updates), **minimize attack surface**, and provide **security-relevant logging** (`sota-observability`). **Part II — vulnerability handling (for the whole support period):** - **SBOM** covering at least the top-level dependencies → **generate in CI/CD** (SPDX or CycloneDX), keep it current per release, and be able to produce it (`sota-devsecops`). Pair with **VEX** to communicate which listed components are actually exploitable. - **Coordinated Vulnerability Disclosure (CVD) policy** → a published intake (`security.txt`, a disclosure address/portal) and a documented handling process. - **Timely security updates** over the **support period — by default at least 5 years** (or the product's expected use time if shorter; confirm the exact Article reference in EUR-Lex): a **signed update channel** and a maintained long-lived branch. Updates must be **without delay** and **free** for security fixes; separable from feature updates. ## 3. The reporting clocks (Article 14) — wire them into on-call For an **actively exploited vulnerability** in your product **or** a **severe incident** affecting its security, report to the designated coordinating **CSIRT** *and* **ENISA** via the single reporting platform: | Stage | Deadline | |---|---| | **Early warning** | **≤ 24 hours** of awareness | | **Notification** | **≤ 72 hours** of awareness | | **Vulnerability final report** | ≤ 14 days after a corrective/mitigating measure is available | | **Severe-incident final report** | ≤ 1 month after the incident notification | Engineering consequence: this is a **detection + telemetry + workflow** problem, not a legal one. You need to *know* within hours that a vuln in your product is being exploited (threat intel, telemetry, disclosure intake — `sota-detection- engineering`, `sota-observability`) and a rehearsed reporting runbook. A clock that depends on someone happening to notice is already blown. These clocks sit alongside NIS2 (24h/72h) and DORA (4h/24h/72h) covered in `sota-privacy-compliance` rules/04 §6 — build one incident pipeline that satisfies the strictest applicable clock. ## 3a. Triaging a report someone else sent you — what actually starts the clock §2 gives you an **intake** (CVD policy, `security.txt`, a portal) and §3 gives you the **outbound** clocks. The decision in between — is this real, is it ours, is it exploitable — is the part with no obligation attached and the part the clocks depend on, because Article 14 runs from **awareness** and an untriaged report is precisely the state where "are we aware?" is undecided. §3's warning that *"a clock that depends on someone happening to notice is already blown"* applies to your own inbox, not just to telemetry. The standards that own this are **ISO/IEC 30111:2019** (vulnerability *handling* — the internal process: investigate, verify, prioritize, remediate) paired with **ISO/IEC 29147:2018** (vulnerability *disclosure* — the external interface to finders and users). 30111 is the one most teams have never read; it is the process behind the mailbox 29147 tells you to publish. *Both are under revision as ISO/IEC AWI 29147 / AWI 30111 — confirm the current edition before citing one in an assessment.* **R3a — write down when your clock starts, then triage against a fixed order.** 1. **Acknowledge on a stated SLA.** 29147 expects a responsive interface; silence is what turns a coordinated report into a public one. 2. **Reproduce before you rate.** A report is a *claim*. Rating from the reporter's summary is how a fabricated finding acquires a CVSS score and a deadline. 3. **Check that the cited code exists.** The 2026-specific step, and the cheapest: a machine-generated report is internally consistent, formatted like expertise, and may reference functions, files or call paths that are not in your tree. curl has published a worked example of exactly this shape. Grep the identifiers the report names *before* reading its argument — if they do not exist, you are done, and you learned it in a minute rather than an afternoon. 4. **Scope it: ours, a dependency, or documented behaviour?** A vulnerable dependency that your build does not reach is a **VEX** statement (§2) and an upstream conversation, not a product vulnerability and not an Article 14 report. Intended behaviour that surprises the reporter is a documentation fix. 5. **Rate it on `sota/rules/03` §1** — impact × exploitability in context — not on the reporter's claimed severity and not on CVSS alone (§1 there: CVSS may inform a rating; it is never the rating). 6. **Decide the clock explicitly and record the decision either way**, with its timestamp: does this meet "actively exploited vulnerability" or "severe incident" under §3? A recorded *no* is what makes a later *yes* defensible; an unrecorded no is indistinguishable from never having looked. 7. **Close the loop with the reporter**, including on reject. The reporter is the control that finds your next one. **Triage capacity is a security property, not a nicety.** Inbound reports now arrive at machine speed while triage stays human-speed, and the failure mode is not a wrong decision — it is a queue nobody reads, which looks exactly like having no reports. curl, which has handled well over a thousand reports, paused intake entirely for a month in July 2026 to recover maintainer capacity; treat that as evidence that the queue is a resource to be budgeted, and note that pausing intake does **not** pause a regulatory clock. **The one lever you have on inbound quality is publishing what a usable report contains.** Put it next to the intake address, and make the bar concrete rather than polite: a human-written first paragraph saying what breaks and what that leads to; a **self-contained reproducer** the team can build and run; the affected versions, with the earliest found by bisecting; ideally a patch; and a reporter who stays reachable. That list is Daniel Stenberg's, published from curl's intake in June 2026, and it doubles as your triage rubric — a report missing the reproducer is not yet a finding, whoever or whatever wrote it. ## 4. Conformity & the harmonized-standards route - **CE marking** signals CRA conformity. **Presumption of conformity** flows from **harmonized standards** being drafted by CEN/CENELEC under a Commission standardization request (a horizontal **EN 40000** series for all digital products, plus vertical/OT tracks). - **Conformity routes — the split is conditional, not categorical.** Article 32(1) makes the **internal control procedure (Module A)** available, and 32(2) sends a **class I** important product to the stricter routes (module B+C, or module H) only *"where the manufacturer has not applied or has applied only in part"* harmonised standards, common specifications or a qualifying certification scheme at assurance level at least `substantial` — or where none exist. **Fully apply them and Module A remains open to class I.** Article 32(5) also provides a distinct route for products qualifying as free and open-source software. Critical products are the genuinely stricter case. Verified 2026-09-16 against the Article 32 text; check which harmonised standards actually exist at your date of use, because "fully applied" is doing the work in that sentence. ([Regulation (EU) 2024/2847, Art. 32](https://eur-lex.europa.eu/eli/reg/2024/2847/oj/eng)) - **ISA/IEC 62443 and NIST frameworks** are widely expected to *inform* the harmonized standards and are common industry mappings — CEN/CENELEC is adapting **EN IEC 62443-4-1 / 4-2** as the OT/industrial route (rules/05). **But being a formally-recognized presumption-of-conformity route depends on the harmonized standards actually cited in the Official Journal**, which are still being finalized (target dates around late 2026). *Flag: evolving — confirm the published hEN list at use time before claiming conformity via a standard.* **Practical stance:** build to Annex I now (SBOM, CVD, signed updates, secure-by- default, no-known-exploitable-vulns, the reporting pipeline). Those are true regardless of which harmonized standard you later certify against, and they are the expensive-to-retrofit parts. Track the hEN list; don't wait for it to start. ## 5. What this shares with the rest of the library The CRA is mostly a **repackaging of good product-security engineering** with legal teeth and deadlines. Reuse, don't rebuild: - SBOM/provenance/signing → `sota-devsecops`; secure-by-default & vuln classes → `sota-code-security` + language skills; update-channel signing keys → `sota-secrets-management`; the incident/reporting pipeline → `sota-detection- engineering` + `sota-observability`; OT products → rules/05 (62443). ## Audit checklist - [ ] CRA applicability determined: is it a PDE placed on the EU market? tier (default / important Class I–II / critical) identified; OSS-steward status if relevant - [ ] Release gate blocks **known exploitable vulnerabilities** at ship; component CVE status known via SBOM + scanning - [ ] **SBOM generated in CI/CD** (SPDX/CycloneDX), current per release, producible on request; VEX used to scope exploitability - [ ] Secure-by-default config verified: no default credentials, hardened defaults, minimal attack surface, authenticated/encrypted comms and updates - [ ] **Coordinated Vulnerability Disclosure** intake published (security.txt / portal) with a documented handling process - [ ] The handling process is **written and ordered**, not just claimed: acknowledge SLA → reproduce → confirm the cited code exists → scope (ours / dependency-VEX / documented behaviour) → rate on `sota/rules/03` §1 → clock decision → reporter closed out (ISO/IEC 30111:2019 is the standard for this half; 29147:2018 for the interface) - [ ] **When awareness begins is defined in writing** and a clock decision is recorded for every report **including the rejects**, with a timestamp — an unrecorded "not reportable" is indistinguishable from never having looked, and Article 14's 24h runs from awareness - [ ] Triage capacity is budgeted and the queue's age is visible: an unread backlog is indistinguishable from having no reports, and pausing intake does not pause the clock - [ ] The intake page states what a usable report must contain (human-written summary, self-contained reproducer, affected + earliest versions, ideally a patch) — the only lever on inbound quality, and the rubric triage then applies - [ ] **Signed update channel** and a maintained branch covering the support period (default ≥ 5 years / expected use time); security updates delivered without delay, free, separable - [ ] Article 14 reporting pipeline built and rehearsed: detection → 24h early warning / 72h notification to CSIRT + ENISA; final reports (14 days / 1 month) covered; unified with NIS2/DORA clocks where applicable - [ ] Conformity route chosen for the tier (self-assessment vs notified body / certification scheme); CE-marking obligations understood - [ ] Harmonized-standard reliance (incl. 62443 for OT) confirmed against the current OJ-published hEN list, not assumed - [ ] All CRA dates/Article references re-verified against EUR-Lex / the Commission within the last 6 months (timeline is live: reporting from 11 Sep 2026, main obligations from 11 Dec 2027) -
05-iec-62443-ot-ics.md 8.2 KB
# 05 — ISA/IEC 62443 for OT / ICS / Embedded The cybersecurity standard for **operational technology**: industrial control systems (ICS), industrial automation and control systems (IACS), IIoT, and embedded industrial products. Its models — **zones and conduits**, **Security Levels**, the **7 Foundational Requirements** — assume a control-system, availability-first, physical-process context that general IT frameworks don't. If your code runs a turbine, a PLC, a medical device, or a factory line, this is your frame. > **Scope honestly.** 62443 is **not** the right frame for general IT / SaaS / web > apps — those fit ISO 27001, OWASP/ASVS, and NIST CSF/SSDF (rules/01–03). Reach > for 62443 when the system is OT/ICS/IACS/embedded/industrial. Statuses below > verified July 2026 against ISA, IEC, ISAGCA, and ISASecure; certification-scheme > and CRA-harmonization details are evolving — re-verify at use time. ## 1. Family structure — the parts engineers touch The series has four groups: **General (1-x)**, **Policies & Procedures (2-x)**, **System (3-x)**, **Component (4-x)**. The engineering-facing parts: | Part | What it governs | |---|---| | **62443-4-1** (2018) | **Secure product development lifecycle** — requirements on the *supplier's development process*: security requirements definition, secure-by-design, secure implementation, verification/validation testing, defect & patch management, product end-of-life. Prescriptive enough to certify against. | | **62443-4-2** (2019) | **Technical security requirements for components** — four component types: software application, embedded device, host device, network device. | | **62443-3-3** (2013) | **System security requirements + Security Levels** — system-level SRs mapped to the 7 FRs and the four SLs. | | **62443-3-2** | Risk assessment & system design for zones/conduits — sets target SLs. | | **62443-2-1 / 2-4** | The security *program* (CSMS) for asset owners / service providers — largely organizational (route out per the SKILL boundary). | ## 2. 62443-4-1 vs NIST SSDF — companions, not competitors Both cover secure development. The difference is prescription: - **SSDF (rules/03)** is broad, tool-agnostic, and **non-certifiable** — a reference framework. - **62443-4-1** is **narrower and certification-oriented** (measurable process requirements, supports the ISASecure **SDLA** certification). It gives prescriptive, auditable detail for the same practices SSDF names at a higher level. **Practical stance:** if you already run an SSDF-aligned SDLC (rules/03), you have most of 62443-4-1; the gap is the *measurable process artifacts* and end-of- life/patch-management rigor that a 4-1 audit expects. Crosswalk them (rules/01) — one secure-SDLC, two framings. ## 3. Zones and conduits — the segmentation model The architecture-driving core. Partition the IACS into **zones** (groupings of assets by risk, function, and required security) and force all inter-zone communication through controlled **conduits**: - A zone groups assets with a common security requirement (e.g., the control zone vs. a DMZ vs. the enterprise/IT zone). Assign each zone a **target Security Level** from a risk assessment (62443-3-2). - A conduit is the *only* sanctioned path between zones — a controlled channel (firewall, data diode, gateway) where you enforce and monitor traffic. No side-channels, no flat OT network. - This is the OT expression of segmentation and blast-radius control that `sota-network-security` covers for IT — apply that skill's depth (default-deny, egress control) at the conduit, respecting OT constraints (availability first, legacy protocols, no casual patching). A flat OT network with no zone/conduit model is the equivalent of the flat-network finding in rules/02 — it makes everything one blast radius and defeats SL assignment. ## 4. Security Levels (SL 0–4) and the 7 Foundational Requirements **Security Levels** express resistance to escalating attacker capability: - **SL 0** none · **SL 1** casual/accidental · **SL 2** intentional, low resources/ skill · **SL 3** sophisticated, moderate resources (sector specialists) · **SL 4** nation-state, high resources. Each zone carries an **SL vector** — one value per Foundational Requirement — in three forms you must keep straight: - **SL-T (Target):** required level, from the risk assessment. - **SL-C (Capability):** what a properly-configured component/system *can* deliver. - **SL-A (Achieved):** the actual level after deployment. **Design obligation: ensure SL-C and SL-A ≥ SL-T for every zone.** Asserting an SL-T with no risk assessment behind it, or deploying components whose SL-C can't meet the target, is the core 62443 finding. **The 7 Foundational Requirements** (all SRs in 3-3 and component requirements in 4-2 map to these): 1. **Identification & Authentication Control (IAC)** — who/what is acting. 2. **Use Control (UC)** — least privilege / authorized actions only. 3. **System Integrity (SI)** — code/config/data not tampered. 4. **Data Confidentiality (DC)** — protect data at rest/in transit. 5. **Restricted Data Flow (RDF)** — zones & conduits enforcement. 6. **Timely Response to Events (TRE)** — detection, logging, response. 7. **Resource Availability (RA)** — availability against DoS/degradation (the FR that most distinguishes OT: availability is the top priority, not confidentiality). The mechanisms behind FR1–FR4, FR6 live in `sota-identity-access`, `sota-code-security`, `sota-secrets-management`, `sota-detection-engineering`; FR5 in the zone/conduit design (§3); FR7 in resilience/DR (`sota-cloud-infrastructure`, `sota-architecture`) adapted to OT. ## 5. Certification and the CRA link - **Certification exists.** **ISASecure** (an ISO/IEC 17065 scheme) certifies: **SDLA** → against 62443-4-1 (the dev process); **CSA** (Component Security Assurance) → 4-2 (a component); **SSA** (System Security Assurance) → 3-3 (a system). *A separate IECEE CB scheme also covers 62443 — confirm scope from a primary IECEE source before relying on it.* - **CRA route (rules/04 §4):** CEN/CENELEC (TC65X WG3) is **adapting EN IEC 62443-4-1 / 4-2 into CRA harmonized standards** for OT/industrial "important products" (CRA Annex III), which would grant presumption of conformity. Target dates cluster around **late 2026**, with a compressed runway before CRA obligations apply (Dec 2027). *Flag: EN designations and dates are reported inconsistently and are moving — verify against the OJ-published hEN list.* **So for an OT/industrial product sold into the EU:** 62443-4-1/4-2 is likely your *most direct* path to both a recognized OT security posture and (once harmonized) CRA conformity. Build to it now; certify when the hENs land. ## Audit checklist - [ ] 62443 is the *appropriate* frame — system is OT/ICS/IACS/embedded/industrial (not general IT/SaaS, which routes to ISO 27001 / CSF / SSDF) - [ ] Zones and conduits defined: assets grouped into zones by risk/function; all inter-zone traffic forced through controlled, monitored conduits; no flat OT network - [ ] Each zone has a **target Security Level (SL-T)** derived from a documented risk assessment (62443-3-2), not asserted - [ ] Components/systems meet the target: **SL-C and SL-A ≥ SL-T** per zone, per FR; components selected/configured to their required capability level - [ ] The 7 Foundational Requirements addressed with named mechanisms (IAC, UC, SI, DC, RDF, TRE, RA) — availability (FR7) treated as top priority per OT context - [ ] Secure development per **62443-4-1** crosswalked to the SSDF SDLC (rules/03); measurable process artifacts, defect/patch management, and product end-of-life defined - [ ] Component technical requirements (**4-2**) and system requirements (**3-3**) met for the relevant component types - [ ] Patch/update strategy fits OT constraints (availability, maintenance windows, legacy) while still delivering security fixes over the support period - [ ] If EU-market: 62443 harmonization path to CRA conformity tracked against the current OJ hEN list (rules/04); certification (ISASecure SDLA/CSA/SSA) pursued where required - [ ] 62443 part versions, certification-scheme scope, and CRA-harmonization status re-verified against primary sources within the last 6 months
-
-
SKILL.md 13 KB
--- name: sota-security-compliance description: >- State-of-the-art security & compliance engineering (2026) for the cybersecurity control frameworks and product-security regulations that drive architecture, code, and CI gates — not the organizational policy binder. Use when work must satisfy or be audited against NIST CSF 2.0, SP 800-53, SP 800-171 / CMMC, the Secure Software Development Framework (SSDF, SP 800-218), FedRAMP, the EU Cyber Resilience Act (CRA), or ISA/IEC 62443 (OT/ICS/embedded). Covers control-framework-as-code crosswalks (control → engineering mechanism → evidence), CUI boundaries, FIPS-validated crypto, SBOM + coordinated vulnerability disclosure + security-update obligations, secure-SDLC gates, and OT zones/conduits & security levels. Complements sota-privacy-compliance (personal data, GDPR, SOC 2, ISO 27001). Trigger keywords: compliance, NIST, CSF, 800-53, 800-171, CMMC, CUI, SSDF, FedRAMP, CRA, Cyber Resilience Act, SBOM, VEX, CVD, IEC 62443, OT security, ICS, security levels, zones and conduits, FIPS 140. --- # SOTA Security & Compliance Engineering The engineering half of cybersecurity regulation: how to make a control framework a property of the codebase, pipeline, and infrastructure rather than a binder of policy documents. A control that lives in a schema, an IAM policy, a CI gate, or a signed SBOM survives staff turnover and an assessor's sampling; a control that lives in a wiki page does not. This skill is the **security/regulation counterpart** to `sota-privacy-compliance` (which owns personal-data lifecycle, GDPR, SOC 2, ISO 27001). It owns the cybersecurity *control frameworks* and *product-security regulations* — NIST CSF 2.0, SP 800-53, SP 800-171 / CMMC, SSDF (SP 800-218), FedRAMP, the EU Cyber Resilience Act, and ISA/IEC 62443 for OT. > **This is engineering guidance, not legal, certification, or assessment advice.** > Framework versions, regulation dates, and conformity routes move — every date > and version below was verified against a primary source (NIST CSRC, EUR-Lex, the > Federal Register, ISA/IEC) as of **July 2026** and each rules file cites it. > Re-verify before you rely on a deadline, and route scoping/attestation decisions > (is this system in CUI scope? which CMMC level? is our product "important" under > the CRA?) to your assessor, sponsor, or counsel. This skill tells you how to > build the machinery those decisions require. ## The boundary — what this skill does and does not own Every framework here mixes **engineering controls** with **organizational controls**. This skill owns only the first; it names the second and routes it out, so you neither skip it nor pretend code can satisfy it. | In scope (drives code / architecture / gates) | Out of scope (org/governance — note & route out) | |---|---| | System/authorization boundary definition, segmentation, zones & conduits | Security-awareness training programs, phishing simulations | | FIPS-validated crypto selection; encryption at rest/in transit | Personnel screening, background checks, HR onboarding | | Audit-log families, retention, tamper-evidence | Physical & environmental security (badges, data-center access) | | SBOM generation, coordinated vuln disclosure, signed update channels | Risk-committee structure, CISO/DPO roles, board reporting | | Secure-SDLC gates (SAST/DAST/provenance) as CI checks | Written policy authorship, management review cadence | | Control-as-code mappings + machine-generated evidence | Legal interpretation, contract clauses, insurance | When a framework requirement is organizational, the finding is *"owned by GRC/HR/ legal — here is the engineering hook (an event, an export, an enforcement point) that makes it auditable,"* not silence and not a code change that pretends to cover it. **Related skills — reference, do not duplicate:** - `sota-privacy-compliance` — personal-data lifecycle, GDPR/CCPA/HIPAA/PCI, SOC 2 & ISO 27001 audit-ready engineering, breach clocks, data residency - `sota-devsecops` — the actual pipeline: SLSA/provenance, SBOM tooling, signing, dependency scanning (SSDF's PS/PW practices live here) - `sota-secrets-management` — key management, FIPS-validated KMS, rotation - `sota-identity-access` — NIST 800-63 assurance levels, MFA, RBAC/ABAC (the IA/AC control families) - `sota-detection-engineering` — detective controls, NIST 800-61 incident response (the DE/RS/RC functions) - `sota-network-security` — segmentation depth, zero-trust, egress control (SC family, 62443 conduits) - `sota-sandboxing` / `sota-kubernetes` / `sota-cloud-infrastructure` — the CM/SC hardening controls in practice - `sota-threat-modeling` — the risk analysis that sets 62443 target Security Levels and DPIA/PIA scope ## BUILD mode When designing or implementing a system that must satisfy a framework: 1. **Scope the boundary first.** Before controls, decide what is *in* the assessed system — the authorization boundary (FedRAMP), CUI enclave (800-171/CMMC), or zone (62443). A tight, honest boundary is the cheapest control decision you will make; a flat network drags the whole estate into scope (rules/02, rules/05). 2. **Pick the framework spine, then crosswalk down.** Use NIST CSF 2.0 as the organizing map, then bind each outcome to a concrete mechanism from an existing sota-* skill and record it as code (rules/01). Do not re-implement encryption, RBAC, or logging here — reference where they already live. 3. **Encode controls as gates, not prose.** Encryption-required, FIPS-crypto-only, boundary-egress-deny, SBOM-present, no-known-exploitable-vulns-at-release become policy-as-code and CI checks that fail the build (rules/01 §evidence, rules/03). 4. **Build product-security obligations in from day one** where the CRA/62443 apply: SBOM in CI, a coordinated-vulnerability-disclosure intake, a signed update channel, and a defined support period are architecture, not paperwork — brutal to retrofit (rules/04, rules/05). 5. **Emit evidence as a byproduct.** Every control's enforcing system should produce its own proof (a CI log, a signed attestation, an IaC diff, a KSI feed). If proving a control needs a screenshot, the control runs only at screenshot time (rules/01). 6. **Know your regime before architecture freezes** (rules/02–05): CUI → 800-171/ CMMC + FIPS crypto + boundary; US-gov cloud → FedRAMP + 800-53 baseline; EU-market product → CRA; OT/industrial/embedded → 62443. ## AUDIT mode When reviewing a codebase/infrastructure against a framework: **Process:** (1) Establish the applicable framework(s) and the assessed boundary (rules/02 §scope). (2) Obtain or build the control crosswalk — control → claimed mechanism → evidence source (rules/01). (3) For each control, verify the mechanism *actually enforces* it and the evidence is machine-generated, not asserted — test the gate, read the policy-as-code, sample the log. (4) Separate engineering findings from organizational ones (the boundary table above) so each lands with the right owner. (5) Map findings to the framework's control IDs so they are traceable to an assessor's language. **Severity conventions:** | Severity | Meaning | Examples | |---|---|---| | CRITICAL | Control absent where a regulation/contract mandates it; exploitable or ships now | CUI leaving the boundary unencrypted; product shipped with a known exploitable vuln under CRA; non-FIPS crypto protecting CUI; no vuln-reporting path with a live 24h/72h clock | | HIGH | Control claimed but not enforced; fails on first assessment/incident | Encryption "policy" with no CI enforcement; SBOM promised but not generated; SSDF attestation signed but PW practices absent; flat network claiming a segmented CDE/zone | | MEDIUM | Control runs but evidence is manual/stale, or crosswalk is incomplete | Evidence gathered by screenshot; control matrix maps to a wiki not a mechanism; SL-T asserted without a risk assessment behind it | | LOW | Hardening / traceability hygiene | Control IDs not referenced in code/IaC; exception register lacks expiry; update channel unsigned but not yet required | **Finding format:** ``` [SEVERITY] <title> Location: <file:line / pipeline stage / IaC resource / boundary component> Framework: <CSF 2.0 Subcat / 800-53 control / 800-171 req / SSDF task / CRA Annex I / 62443 FR — as applicable> Owner: <engineering | GRC/org — per the boundary table> Issue: <control missing / claimed-not-enforced / evidence-not-generated> Impact: <assessment failure, contract loss, CRA non-conformity, incident exposure> Fix: <concrete engineering remediation, or the hook if org-owned> Evidence: <how you verified — the gate you ran, the log you sampled, the policy you read> ``` Group findings by control family/function, not by file — that is how assessors and sponsors read them. ## Rules index | File | Read this when... | |---|---| | [rules/01-control-frameworks-as-code.md](rules/01-control-frameworks-as-code.md) | Starting any compliance work; choosing NIST CSF 2.0 as a spine; building the control → mechanism → evidence crosswalk; deciding what to reuse from other sota-* skills vs. build; encoding controls as policy-as-code and CI gates | | [rules/02-nist-800-53-171-cmmc-fedramp.md](rules/02-nist-800-53-171-cmmc-fedramp.md) | Handling CUI / selling to US government or defense; scoping an authorization boundary or CUI enclave; picking a 800-53 baseline; FIPS-validated crypto; CMMC level and phase-in; FedRAMP / FedRAMP 20x | | [rules/03-ssdf-secure-sdlc.md](rules/03-ssdf-secure-sdlc.md) | Standing up or auditing a secure SDLC; mapping SSDF (SP 800-218) PO/PS/PW/RV practices to your pipeline; federal secure-software self-attestation; AI/model development (SP 800-218A) | | [rules/04-eu-cyber-resilience-act.md](rules/04-eu-cyber-resilience-act.md) | Placing a product with digital elements on the EU market; SBOM, secure-by-default, no-known-exploitable-vulns; the CVD policy and signed update channel; **triaging an inbound report** (§3a — what starts the awareness clock, ISO/IEC 30111/29147, and checking the cited code exists); the 24h/72h ENISA reporting clocks; CRA timeline & conformity | | [rules/05-iec-62443-ot-ics.md](rules/05-iec-62443-ot-ics.md) | Building or auditing OT/ICS/IIoT/embedded/industrial products; zones & conduits segmentation; Security Levels (SL-T/C/A) and the 7 Foundational Requirements; 62443-4-1 vs SSDF; 62443 as a CRA conformity route | ## Top 10 non-negotiables 1. **Scope the boundary before the controls.** The assessed system's edge — authorization boundary, CUI enclave, or 62443 zone — is decided, drawn, and enforced by segmentation before control work starts. A flat network makes the whole estate in scope and every control 10× more expensive. 2. **One control set, many frameworks.** Build the mechanism once and crosswalk it; CSF, 800-53, 800-171, SOC 2, ISO 27001, and CRA overwhelmingly ask for the same engineering. Per-framework silos duplicate work and drift. 3. **A control is the mechanism, not the policy.** Every control maps to a running system that enforces it. "We have a policy" with no enforcing mechanism is a finding, not a control. 4. **Evidence is a byproduct or it is theater.** Each control's enforcing system produces its own proof — CI log, signed attestation, IaC history, KSI feed. Screenshots pasted before fieldwork are the smell of a control that runs only then. 5. **FIPS-validated crypto where the regime demands it.** CUI, FedRAMP, and many OT contexts require validated modules (FIPS 140-3), not merely "encryption." A home-rolled or non-validated cipher protecting CUI is a critical finding. 6. **Ship no known exploitable vulnerabilities.** Under the CRA (and as basic hygiene) release gates block known-exploitable vulns; a monitored SLA drives remediation within the support period. "We'll patch it later" is a non-conformity, not a backlog item. 7. **SBOM, CVD, and a signed update channel are architecture.** For any product under the CRA/62443, generate an SBOM in CI, publish a coordinated-vulnerability- disclosure intake, and sign updates over a maintained channel — designed in, not bolted on at audit time. **An intake is only half of it**: the reporting clock runs from *awareness*, so the triage that decides whether a report is real, ours and exploitable is on the critical path and needs a written order (rules/04 §3a). 8. **Secure-SDLC practices are gates, not intentions.** SSDF PW/PS practices — threat modeling, SAST/DAST, provenance, protected repos, signing — are CI checks that fail the build. A signed attestation whose practices aren't enforced is the finding assessors hunt. 9. **Reporting clocks are wired into on-call, not lawyers.** Where a regime imposes a 24h/72h reporting clock (CRA, NIS2, DORA), detection and the reporting workflow are engineered and rehearsed; a clock that depends on someone noticing is already breached. 10. **Separate engineering findings from organizational ones.** Every control lands with the owner who can fix it. Blaming code for a training gap — or asking GRC to fix a missing CI gate — wastes both and leaves the real control unbuilt.
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.