@blamejs/exceptd-skills 0.13.3 → 0.13.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +41 -4
- package/CHANGELOG.md +64 -0
- package/README.md +79 -13
- package/bin/exceptd.js +117 -9
- package/data/_indexes/_meta.json +44 -44
- package/data/_indexes/activity-feed.json +3 -3
- package/data/_indexes/catalog-summaries.json +3 -3
- package/data/_indexes/chains.json +0 -32
- package/data/_indexes/handoff-dag.json +127 -57
- package/data/_indexes/section-offsets.json +465 -411
- package/data/_indexes/summary-cards.json +34 -34
- package/data/_indexes/token-budget.json +298 -268
- package/data/cve-catalog.json +4 -146
- package/data/exploit-availability.json +0 -27
- package/data/framework-control-gaps.json +2 -2
- package/data/playbooks/ai-discovered-cve-triage.json +1146 -0
- package/data/playbooks/cicd-pipeline-compromise.json +3 -0
- package/data/playbooks/cred-stores.json +1 -0
- package/data/playbooks/crypto.json +3 -0
- package/data/playbooks/framework.json +3 -0
- package/data/playbooks/idp-incident.json +2 -1
- package/data/playbooks/kernel.json +1 -0
- package/data/playbooks/mcp.json +27 -2
- package/data/playbooks/post-quantum-migration.json +1268 -0
- package/data/playbooks/runtime.json +1 -0
- package/data/playbooks/sbom.json +3 -0
- package/data/playbooks/supply-chain-recovery.json +1332 -0
- package/data/zeroday-lessons.json +0 -89
- package/lib/schemas/cve-catalog.schema.json +2 -1
- package/lib/schemas/playbook.schema.json +5 -0
- package/lib/validate-cve-catalog.js +27 -0
- package/manifest.json +80 -80
- package/orchestrator/index.js +58 -1
- package/package.json +1 -1
- package/sbom.cdx.json +99 -66
- package/skills/age-gates-child-safety/skill.md +2 -0
- package/skills/ai-attack-surface/skill.md +2 -0
- package/skills/ai-c2-detection/skill.md +2 -0
- package/skills/ai-risk-management/skill.md +2 -0
- package/skills/api-security/skill.md +2 -0
- package/skills/attack-surface-pentest/skill.md +2 -0
- package/skills/cloud-security/skill.md +2 -0
- package/skills/compliance-theater/skill.md +28 -2
- package/skills/container-runtime-security/skill.md +2 -0
- package/skills/coordinated-vuln-disclosure/skill.md +1 -1
- package/skills/defensive-countermeasure-mapping/skill.md +2 -0
- package/skills/dlp-gap-analysis/skill.md +2 -0
- package/skills/exploit-scoring/skill.md +30 -1
- package/skills/framework-gap-analysis/skill.md +28 -1
- package/skills/fuzz-testing-strategy/skill.md +4 -2
- package/skills/global-grc/skill.md +2 -0
- package/skills/identity-assurance/skill.md +2 -0
- package/skills/kernel-lpe-triage/skill.md +2 -0
- package/skills/mcp-agent-trust/skill.md +4 -0
- package/skills/mlops-security/skill.md +2 -0
- package/skills/ot-ics-security/skill.md +2 -0
- package/skills/policy-exception-gen/skill.md +28 -1
- package/skills/pqc-first/skill.md +2 -0
- package/skills/rag-pipeline-security/skill.md +2 -0
- package/skills/researcher/skill.md +2 -0
- package/skills/sector-energy/skill.md +2 -0
- package/skills/sector-federal-government/skill.md +2 -0
- package/skills/sector-financial/skill.md +2 -0
- package/skills/sector-healthcare/skill.md +2 -0
- package/skills/security-maturity-tiers/skill.md +2 -0
- package/skills/skill-update-loop/skill.md +2 -0
- package/skills/supply-chain-integrity/skill.md +2 -0
- package/skills/threat-model-currency/skill.md +37 -1
- package/skills/threat-modeling-methodology/skill.md +2 -0
- package/skills/webapp-security/skill.md +2 -0
- package/skills/zeroday-gap-learn/skill.md +33 -1
|
@@ -0,0 +1,1268 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_meta": {
|
|
3
|
+
"id": "post-quantum-migration",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"last_threat_review": "2026-05-18",
|
|
6
|
+
"threat_currency_score": 94,
|
|
7
|
+
"changelog": [
|
|
8
|
+
{
|
|
9
|
+
"version": "1.0.0",
|
|
10
|
+
"date": "2026-05-18",
|
|
11
|
+
"summary": "Initial seven-phase post-quantum migration POSTURE playbook. Distinct from `crypto` (general crypto-hygiene + handshake-level PQC readiness) and `crypto-codebase` (source-tree audit): post-quantum-migration covers the operational migration programme — per-asset classical-asymmetric inventory, migration-blocker enumeration (legacy HSMs without FIPS 203/204/205 firmware, embedded TLS stacks, downstream interop dependencies, third-party SaaS without PQC roadmap), per-regulator deadline tracking (CNSA 2.0 2027 mandatory, OMB M-23-02 annual, NIST SP 800-227, ETSI TS 119 312, BSI TR-02102), and the harvest-now-decrypt-later exposure-window analysis that bounds material risk against published CRQC estimates. Closes the GRC loop with NIST 800-53 SC-13(PQC sub-control) gap, ISO 27001 A.8.24 no-PQC-amendment gap, NIS2 Art.21(2)(h) cryptographic-inventory enforcement gap, DORA Art.9 financial-sector PQC migration-plan gap, and EU CRA Annex I 'state-of-the-art' interpretive gap. Cross-walks to crypto for handshake-level readiness and to framework for compliance-theater detection on the programme-level controls.",
|
|
12
|
+
"cves_added": [],
|
|
13
|
+
"framework_gaps_updated": [
|
|
14
|
+
"nist-800-53-SC-13-pqc-subcontrol",
|
|
15
|
+
"iso-27001-2022-A.8.24-pqc-amendment",
|
|
16
|
+
"iso-27001-2022-A.8.25-crypto-agility",
|
|
17
|
+
"nis2-art21-2h-pqc-enforcement",
|
|
18
|
+
"dora-art9-pqc-migration-plan",
|
|
19
|
+
"eu-cra-annex-i-state-of-the-art-pqc"
|
|
20
|
+
]
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"owner": "@blamejs/platform-security",
|
|
24
|
+
"air_gap_mode": false,
|
|
25
|
+
"scope": "cross-cutting",
|
|
26
|
+
"preconditions": [
|
|
27
|
+
{
|
|
28
|
+
"id": "asset-inventory-readable",
|
|
29
|
+
"description": "Agent must be able to read the operator's asset inventory: CMDB extracts, cryptographic-asset registers, vendor product registry, HSM/KMS configuration files, third-party SaaS dependency list. Pure-runtime hosts with no inventory access mark the playbook visibility_gap=no_asset_inventory.",
|
|
30
|
+
"check": "agent_has_filesystem_read == true OR agent_has_cmdb_api_token == true",
|
|
31
|
+
"on_fail": "halt"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"id": "operator-owns-migration-programme",
|
|
35
|
+
"description": "The operator must own (or hold explicit written authorisation for) the cryptographic migration programme being inventoried, including per-asset migration decisions and per-regulator deadline commitments.",
|
|
36
|
+
"check": "operator_ownership_attested == true",
|
|
37
|
+
"on_fail": "halt"
|
|
38
|
+
}
|
|
39
|
+
],
|
|
40
|
+
"mutex": [],
|
|
41
|
+
"feeds_into": [
|
|
42
|
+
{
|
|
43
|
+
"playbook_id": "crypto",
|
|
44
|
+
"condition": "any per_asset.handshake_readiness_unknown == true"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"playbook_id": "framework",
|
|
48
|
+
"condition": "analyze.compliance_theater_check.verdict == 'theater'"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"playbook_id": "sbom",
|
|
52
|
+
"condition": "finding.includes_classical_dependency_in_long_retention_product == true"
|
|
53
|
+
}
|
|
54
|
+
]
|
|
55
|
+
},
|
|
56
|
+
"domain": {
|
|
57
|
+
"name": "Post-quantum cryptography migration posture",
|
|
58
|
+
"attack_class": "pqc-exposure",
|
|
59
|
+
"atlas_refs": [],
|
|
60
|
+
"attack_refs": [
|
|
61
|
+
"T1040",
|
|
62
|
+
"T1557",
|
|
63
|
+
"T1573",
|
|
64
|
+
"T1600"
|
|
65
|
+
],
|
|
66
|
+
"cve_refs": [],
|
|
67
|
+
"cwe_refs": [
|
|
68
|
+
"CWE-310",
|
|
69
|
+
"CWE-326",
|
|
70
|
+
"CWE-327"
|
|
71
|
+
],
|
|
72
|
+
"d3fend_refs": [
|
|
73
|
+
"D3-MENCR",
|
|
74
|
+
"D3-FE"
|
|
75
|
+
],
|
|
76
|
+
"frameworks_in_scope": [
|
|
77
|
+
"nist-800-53",
|
|
78
|
+
"nist-csf-2",
|
|
79
|
+
"iso-27001-2022",
|
|
80
|
+
"soc2",
|
|
81
|
+
"pci-dss-4",
|
|
82
|
+
"nis2",
|
|
83
|
+
"dora",
|
|
84
|
+
"eu-cra",
|
|
85
|
+
"uk-caf",
|
|
86
|
+
"au-ism",
|
|
87
|
+
"au-essential-8",
|
|
88
|
+
"sg-mas-trm",
|
|
89
|
+
"jp-nisc",
|
|
90
|
+
"in-cert",
|
|
91
|
+
"ca-osfi-b10",
|
|
92
|
+
"hipaa",
|
|
93
|
+
"cmmc",
|
|
94
|
+
"nerc-cip"
|
|
95
|
+
]
|
|
96
|
+
},
|
|
97
|
+
"phases": {
|
|
98
|
+
"govern": {
|
|
99
|
+
"jurisdiction_obligations": [
|
|
100
|
+
{
|
|
101
|
+
"jurisdiction": "EU",
|
|
102
|
+
"regulation": "NIS2 Art.21(2)(h)",
|
|
103
|
+
"obligation": "maintain_cryptographic_inventory",
|
|
104
|
+
"window_hours": 720,
|
|
105
|
+
"clock_starts": "manual",
|
|
106
|
+
"evidence_required": [
|
|
107
|
+
"per_asset_cryptographic_inventory",
|
|
108
|
+
"pqc_migration_plan_with_per_asset_target_dates",
|
|
109
|
+
"classical_algorithm_sunset_register"
|
|
110
|
+
]
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"jurisdiction": "EU",
|
|
114
|
+
"regulation": "DORA Art.9",
|
|
115
|
+
"obligation": "submit_cryptographic_resilience_evidence",
|
|
116
|
+
"window_hours": 720,
|
|
117
|
+
"clock_starts": "manual",
|
|
118
|
+
"evidence_required": [
|
|
119
|
+
"financial_records_retention_horizon_matrix",
|
|
120
|
+
"per_asset_pqc_migration_status",
|
|
121
|
+
"third_party_provider_pqc_roadmap_attestation"
|
|
122
|
+
]
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"jurisdiction": "EU",
|
|
126
|
+
"regulation": "EU CRA Annex I",
|
|
127
|
+
"obligation": "submit_state_of_the_art_cryptography_evidence",
|
|
128
|
+
"window_hours": 8760,
|
|
129
|
+
"clock_starts": "manual",
|
|
130
|
+
"evidence_required": [
|
|
131
|
+
"product_cryptographic_inventory",
|
|
132
|
+
"pqc_migration_plan_for_products_with_operational_life_gt_5y",
|
|
133
|
+
"classical_algorithm_sunset_register_per_product"
|
|
134
|
+
]
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"jurisdiction": "US-Federal",
|
|
138
|
+
"regulation": "OMB M-23-02 + NSM-10",
|
|
139
|
+
"obligation": "submit_federal_pqc_migration_inventory",
|
|
140
|
+
"window_hours": 8760,
|
|
141
|
+
"clock_starts": "manual",
|
|
142
|
+
"evidence_required": [
|
|
143
|
+
"federal_pqc_inventory",
|
|
144
|
+
"annual_migration_progress_report",
|
|
145
|
+
"high_value_asset_pqc_migration_prioritisation"
|
|
146
|
+
]
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"jurisdiction": "US-Federal",
|
|
150
|
+
"regulation": "CNSA 2.0 (NSS systems)",
|
|
151
|
+
"obligation": "complete_pqc_migration",
|
|
152
|
+
"window_hours": 35040,
|
|
153
|
+
"clock_starts": "manual",
|
|
154
|
+
"evidence_required": [
|
|
155
|
+
"nss_pqc_completion_attestation",
|
|
156
|
+
"exception_register_for_unmigrated_assets"
|
|
157
|
+
]
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"jurisdiction": "AU",
|
|
161
|
+
"regulation": "ACSC ISM-1546 / ISM-0457",
|
|
162
|
+
"obligation": "submit_approved_algorithm_attestation",
|
|
163
|
+
"window_hours": 8760,
|
|
164
|
+
"clock_starts": "manual",
|
|
165
|
+
"evidence_required": [
|
|
166
|
+
"approved_algorithm_register",
|
|
167
|
+
"transition_plan_for_non_approved_algorithms"
|
|
168
|
+
]
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"jurisdiction": "DE",
|
|
172
|
+
"regulation": "BSI TR-02102 (German Federal Office for Information Security)",
|
|
173
|
+
"obligation": "submit_cryptographic_recommendation_alignment",
|
|
174
|
+
"window_hours": 8760,
|
|
175
|
+
"clock_starts": "manual",
|
|
176
|
+
"evidence_required": [
|
|
177
|
+
"per_asset_alignment_with_tr_02102_recommendations",
|
|
178
|
+
"deviation_register_with_justification"
|
|
179
|
+
]
|
|
180
|
+
}
|
|
181
|
+
],
|
|
182
|
+
"theater_fingerprints": [
|
|
183
|
+
{
|
|
184
|
+
"pattern_id": "pqc-policy-without-inventory",
|
|
185
|
+
"claim": "We have a published cryptographic-migration policy that names PQC — our migration programme is in flight.",
|
|
186
|
+
"fast_detection_test": "Diff the policy against the asset register. A policy is only a programme when it binds to (a) per-asset current algorithm + key size, (b) per-asset data sensitivity horizon, (c) per-asset PQC migration target + algorithm choice, (d) per-asset classical-algorithm sunset date with assigned owner, (e) per-asset migration-blocker + dependency record. Absence of any of those five fields turns the policy into a document, not a programme. Inventory IS the programme.",
|
|
187
|
+
"implicated_controls": [
|
|
188
|
+
"nis2-art21-2h",
|
|
189
|
+
"dora-art9",
|
|
190
|
+
"iso-27001-2022-A.8.24",
|
|
191
|
+
"us-omb-m-23-02"
|
|
192
|
+
]
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"pattern_id": "vendor-roadmap-as-migration-plan",
|
|
196
|
+
"claim": "Our HSM / KMS / TLS gateway vendor has a published PQC roadmap, so our migration is on track.",
|
|
197
|
+
"fast_detection_test": "Read the vendor's published PQC roadmap and cross-walk against the operator's enforceable contractual commitments. Roadmap WITHOUT a contractual delivery date is marketing. The migration plan must record (a) the operator's contractual SLA for vendor PQC delivery, (b) the operator's alternative-vendor migration ETA if vendor misses the SLA, (c) the operator's compensating-control posture for the gap window. A 'vendor has a roadmap' line in the migration plan with no SLA is theater.",
|
|
198
|
+
"implicated_controls": [
|
|
199
|
+
"nis2-art21-2h",
|
|
200
|
+
"dora-art9",
|
|
201
|
+
"nis2-art21-2d"
|
|
202
|
+
]
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
"pattern_id": "openssl-version-bump-as-migration-progress",
|
|
206
|
+
"claim": "We upgraded openssl across the fleet to a version that supports ML-KEM, so the PQC migration is complete on the TLS plane.",
|
|
207
|
+
"fast_detection_test": "Library upgrade enables capability; the programme question is whether assets are CONFIGURED to use the capability. Run a sample: openssl s_client -connect <prod_endpoint>:443 -tls1_3 -groups X25519MLKEM768 against five randomly-chosen production endpoints. If the hybrid group is not negotiated on any of the five, capability without configuration is theater. The migration plan must capture configuration deployment per asset, not just library version.",
|
|
208
|
+
"implicated_controls": [
|
|
209
|
+
"nist-800-53-SC-8",
|
|
210
|
+
"nist-800-53-SC-13",
|
|
211
|
+
"iso-27001-2022-A.8.24"
|
|
212
|
+
]
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
"pattern_id": "hndl-as-future-problem",
|
|
216
|
+
"claim": "Harvest-now-decrypt-later is a future concern; we will migrate when CRQC is closer.",
|
|
217
|
+
"fast_detection_test": "Read the data-retention policy and compute the CRQC-overlap window: data with retention horizon Y years recorded today is decryptable on the CRQC day in year X. If X-Y < operator's aggressive-CRQC estimate (peer-reviewed 5-8 years from mid-2026), the recording happens today and the decryption happens within the data's sensitivity window. HNDL is not future — the recording surface is operational now. The 'future problem' framing is itself the theater.",
|
|
218
|
+
"implicated_controls": [
|
|
219
|
+
"nis2-art21-2h",
|
|
220
|
+
"dora-art9",
|
|
221
|
+
"iso-27001-2022-A.8.10"
|
|
222
|
+
]
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
"pattern_id": "fips-203-validated-module-as-readiness-proof",
|
|
226
|
+
"claim": "We deployed a FIPS 203-validated module, so we are PQC-ready.",
|
|
227
|
+
"fast_detection_test": "A FIPS 203 validation certifies that one module correctly implements ML-KEM. Programme readiness requires (a) all asymmetric crypto in the asset's flow uses PQC or hybrid, (b) the certificate chain uses ML-DSA or hybrid signatures, (c) the peer entity also supports the negotiated PQC algorithm, (d) the operator has a downgrade-detection control. A single validated module without (a)-(d) covers one corner of one flow.",
|
|
228
|
+
"implicated_controls": [
|
|
229
|
+
"nist-800-53-SC-13",
|
|
230
|
+
"fips-140-3"
|
|
231
|
+
]
|
|
232
|
+
}
|
|
233
|
+
],
|
|
234
|
+
"framework_context": {
|
|
235
|
+
"gap_summary": "Frameworks treat PQC migration as policy + algorithm-selection rather than as a per-asset migration programme with enforceable deadlines. NIST 800-53 SC-13 cites FIPS-validated modules without distinguishing classical-only validations from FIPS 203/204/205 PQC validations; SC-8 does not require hybrid KEX. ISO 27001:2022 A.8.24 was published before FIPS 203/204/205 finalisation and has no scheduled amendment. PCI DSS 4.0 §3.6/§4.2.1 defines 'strong cryptography' with classical minimums, no PQC obligation for cardholder data with > 10y retention. NIS2 Art.21(2)(h) names cryptography as essential measure but defers algorithm specifics to implementing acts not yet published. DORA Art.9 inherits NIS2's gap. EU CRA Annex I uses 'state-of-the-art' as the standard, leaving PQC binding to interpretation. The US federal cycle is further along (CNSA 2.0 2027 deadline, OMB M-23-02 annual inventory, NIST SP 800-227 PQC-transition recommendations, NIST IR 8547 published migration roadmap) but the 800-53 control catalogue is unchanged. AU ISM-1546 transitions to PQC quarterly via approved-algorithm list updates but ISM remains advisory rather than binding for non-federal entities. The result: an organisation with no asset inventory, no per-asset migration plan, no vendor SLA, and no exposure-window analysis can satisfy every framework's literal language while being HNDL-vulnerable today across its long-retention data surface.",
|
|
236
|
+
"lag_score": 365,
|
|
237
|
+
"per_framework_gaps": [
|
|
238
|
+
{
|
|
239
|
+
"framework": "nist-800-53",
|
|
240
|
+
"control_id": "SC-13 — Cryptographic Protection",
|
|
241
|
+
"designed_for": "Cryptographic-module validation against FIPS standards.",
|
|
242
|
+
"insufficient_because": "Cites FIPS-validated modules without a PQC sub-control. A FIPS 140-3 validated module that implements only classical algorithms passes SC-13 and is HNDL-vulnerable. No control text requires per-asset migration tracking, no requirement to bind to FIPS 203/204/205 for data with sensitivity horizon > CRQC estimate."
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
"framework": "nist-800-53",
|
|
246
|
+
"control_id": "SC-12 — Cryptographic Key Establishment and Management",
|
|
247
|
+
"designed_for": "Key generation, distribution, storage, and destruction lifecycle.",
|
|
248
|
+
"insufficient_because": "Key-lifecycle language is algorithm-agnostic. No requirement for the key-management system to support hybrid (classical + PQC) keys, no requirement to track key sensitivity horizon against CRQC estimate."
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
"framework": "iso-27001-2022",
|
|
252
|
+
"control_id": "A.8.24 — Use of cryptography",
|
|
253
|
+
"designed_for": "Cryptographic policy + algorithm selection.",
|
|
254
|
+
"insufficient_because": "Published 2022 before FIPS 203/204/205 finalisation. Names no algorithms, no sunset dates, no migration tempo. Compliant policy can be entirely classical. No scheduled amendment as of 2026-05."
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
"framework": "iso-27001-2022",
|
|
258
|
+
"control_id": "A.8.25 — Secure development lifecycle",
|
|
259
|
+
"designed_for": "Security in development methodology.",
|
|
260
|
+
"insufficient_because": "Does not require crypto-agility — the ability to swap algorithms without re-architecting. Without crypto-agility, every PQC migration is a re-engineering project; the control does not surface this as a deficiency, leaving every classical-only design 'compliant' until the day migration becomes mandatory."
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
"framework": "pci-dss-4",
|
|
264
|
+
"control_id": "3.6 / 4.2.1 — Strong cryptography",
|
|
265
|
+
"designed_for": "Strong cryptography for cardholder data at rest and in transit.",
|
|
266
|
+
"insufficient_because": "Defines 'strong cryptography' with classical minimums (AES-128, ECC 224-bit). No PQC obligation. A PCI-compliant card processor today is HNDL-vulnerable for any cardholder data with > 10-year retention (regulatory + dispute window)."
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
"framework": "nis2",
|
|
270
|
+
"control_id": "Art.21(2)(h) — Use of cryptography",
|
|
271
|
+
"designed_for": "Cryptographic measures as essential cybersecurity measure.",
|
|
272
|
+
"insufficient_because": "Names cryptography as essential measure; defers algorithm specifics to implementing acts not yet published. Permits classical-only posture today. No per-asset inventory enforcement, no per-asset migration deadline. Implementing acts to bind PQC remain in draft as of 2026-05."
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
"framework": "dora",
|
|
276
|
+
"control_id": "Art.9 — ICT systems, protocols and tools (cryptographic resilience)",
|
|
277
|
+
"designed_for": "Cryptographic resilience for financial-entity ICT systems.",
|
|
278
|
+
"insufficient_because": "Inherits NIS2's gap. Financial-entity HNDL exposure is acute (long-retention financial records, customer-lifetime PII, regulatory-record retention) but the framework cadence is months behind operational PQC readiness. No RTS/ITS naming PQC migration deadlines."
|
|
279
|
+
},
|
|
280
|
+
{
|
|
281
|
+
"framework": "eu-cra",
|
|
282
|
+
"control_id": "Annex I — Essential cybersecurity requirements",
|
|
283
|
+
"designed_for": "Manufacturer obligation to ship 'state-of-the-art' cryptography for products with digital elements.",
|
|
284
|
+
"insufficient_because": "'State-of-the-art' is interpretive. Without binding PQC reference in an implementing act, products ship classical-only. Operational life of products with digital elements routinely exceeds 5 years; HNDL exposure tracks operational life."
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
"framework": "uk-caf",
|
|
288
|
+
"control_id": "B3 — Data security",
|
|
289
|
+
"designed_for": "NCSC CAF outcome that data is protected from compromise, including by cryptographic means.",
|
|
290
|
+
"insufficient_because": "Outcome-based — does not name algorithms or migration tempo. An entirely classical posture can be assessed as 'achieving' the outcome despite the HNDL adversary recording today against a CRQC decrypt date inside the data retention window."
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
"framework": "au-essential-8",
|
|
294
|
+
"control_id": "Strategy 8 — Regular backups (encryption at rest)",
|
|
295
|
+
"designed_for": "Resilient backups including encryption at rest.",
|
|
296
|
+
"insufficient_because": "Encryption at rest uses classical algorithms by default. Long-retention backups encrypted classically are HNDL-exposed for the retention period; the strategy makes no reference to PQC or algorithm-currency."
|
|
297
|
+
},
|
|
298
|
+
{
|
|
299
|
+
"framework": "au-ism",
|
|
300
|
+
"control_id": "ISM-0457 / ISM-1546",
|
|
301
|
+
"designed_for": "Approved cryptographic algorithms for protecting Australian Government information.",
|
|
302
|
+
"insufficient_because": "ISM transition guidance is advisory in 2026-05. Quarterly publishing cadence lags FIPS 203/204/205 finalisation. Approved-algorithm list mixes classical and PQC entries without binding migration deadlines."
|
|
303
|
+
},
|
|
304
|
+
{
|
|
305
|
+
"framework": "sg-mas-trm",
|
|
306
|
+
"control_id": "MAS TRM §11.1 — Cryptography",
|
|
307
|
+
"designed_for": "Cryptographic standards for Singapore financial institutions.",
|
|
308
|
+
"insufficient_because": "Cites international standards without a binding PQC migration deadline. No SG-specific guidance on per-asset inventory or HNDL exposure analysis. Cross-border financial-record retention horizon routinely 7-10 years; HNDL exposure proportional."
|
|
309
|
+
},
|
|
310
|
+
{
|
|
311
|
+
"framework": "jp-nisc",
|
|
312
|
+
"control_id": "NISC CSP guidance on PQC",
|
|
313
|
+
"designed_for": "Japanese central-government cryptographic recommendations.",
|
|
314
|
+
"insufficient_because": "CRYPTREC recommendations include PQC candidates but binding adoption for non-federal entities is voluntary. Long-tail enterprise migration unconstrained."
|
|
315
|
+
},
|
|
316
|
+
{
|
|
317
|
+
"framework": "hipaa",
|
|
318
|
+
"control_id": "Security Rule §164.312(a)(2)(iv) — Encryption and decryption",
|
|
319
|
+
"designed_for": "Addressable implementation specification for encryption of ePHI.",
|
|
320
|
+
"insufficient_because": "Encryption requirement is technology-agnostic. PHI retention horizon routinely exceeds 25 years (paediatric records to age of majority + 7 years, mental health, generational genetic data). HNDL exposure across the full retention window with no framework signal."
|
|
321
|
+
}
|
|
322
|
+
]
|
|
323
|
+
},
|
|
324
|
+
"skill_preload": [
|
|
325
|
+
"pqc-first",
|
|
326
|
+
"framework-gap-analysis",
|
|
327
|
+
"compliance-theater",
|
|
328
|
+
"global-grc",
|
|
329
|
+
"policy-exception-gen",
|
|
330
|
+
"security-maturity-tiers"
|
|
331
|
+
]
|
|
332
|
+
},
|
|
333
|
+
"direct": {
|
|
334
|
+
"threat_context": "Post-quantum migration landscape mid-2026: FIPS 203 (ML-KEM), FIPS 204 (ML-DSA), FIPS 205 (SLH-DSA) finalised 2024-08-13 — production-ready for 21 months. NIST SP 800-227 (Recommendations for Discrete Logarithm Cryptography post-PQ transition) published Q1 2025. NIST IR 8547 (migration roadmap) draft published 2024; final expected mid-2026. CNSA 2.0 binding deadline for US NSS systems is 2027 (preferred) and 2030 (mandatory). OMB M-23-02 + NSM-10 mandate annual federal PQC inventory submission. ETSI TS 119 312 v1.5.1 updates cryptographic-suite recommendations to include PQC profiles. BSI TR-02102 publishes annual PQC migration recommendations. EU ENISA's PQC transition guidance is advancing toward binding Member State implementation through 2027-2028. The deployment gap is operational, not technical: OpenSSL 3.5 ships native ML-KEM/ML-DSA/SLH-DSA, OpenSSH 9.0+ ships sntrup761x25519, Chrome (v124+) negotiates X25519MLKEM768 with capable servers — yet a randomly-sampled enterprise endpoint in mid-2026 typically does not negotiate the hybrid group. The migration blockers are programme blockers, not algorithm blockers: legacy HSMs without PQC firmware (Thales Luna G7 awaiting PQC, AWS CloudHSM ML-KEM in beta, Entrust nShield 5 roadmap), embedded TLS stacks (mbedTLS, wolfSSL, BoringSSL forks shipping in operator products), third-party SaaS without PQC commitment (most CRM, ERP, payroll providers as of mid-2026), and downstream interop (a hybrid-only configuration breaks legacy peers that do not negotiate the hybrid group). HNDL is operational reality: state-level adversaries have been recording encrypted traffic at scale since 2013 (publicly known). Aggressive academic CRQC estimates now appear in peer-reviewed cryptanalysis literature in the 5-8 year horizon from mid-2026; conservative estimates 12-15 years. Either horizon makes today's classical-only TLS handshakes already-exfiltrated within the data's sensitivity window for any record with retention > 5 years.",
|
|
335
|
+
"rwep_threshold": {
|
|
336
|
+
"escalate": 70,
|
|
337
|
+
"monitor": 45,
|
|
338
|
+
"close": 25
|
|
339
|
+
},
|
|
340
|
+
"framework_lag_declaration": "NIST 800-53 SC-12/SC-13, ISO 27001:2022 A.8.24/A.8.25, PCI DSS 4.0 §3.6/§4.2.1, NIS2 Art.21(2)(h), DORA Art.9, EU CRA Annex I, UK CAF B3, AU ISM-0457/1546, SG MAS TRM §11.1, HIPAA §164.312(a)(2)(iv) all permit fully-classical cryptographic posture as compliant. NIST itself is the exception via NIST IR 8547 + FIPS 203/204/205 + OMB M-23-02 + CNSA 2.0 — but the 800-53 control catalogue is unchanged. ISO 27001:2022 was published before PQC finalisation and has no scheduled amendment. PCI Council and EU regulators publicly aware but have not amended binding controls. Lag = ~365 days behind operational PQC readiness (FIPS 203/204/205 finalised 2024-08-13) and 5-15 years behind the CRQC horizon that drives HNDL. Compensating controls (per-asset inventory + per-asset migration plan + vendor SLA + exposure-window analysis + downgrade-detection monitoring) must close this programme-level gap before SLA-only compliance can be accepted. None of the frameworks in scope require any of those five compensating controls.",
|
|
341
|
+
"skill_chain": [
|
|
342
|
+
{
|
|
343
|
+
"skill": "pqc-first",
|
|
344
|
+
"purpose": "Enumerate per-asset asymmetric cryptography in use; classify by sensitivity horizon; identify migration blockers; produce per-asset migration plan with target algorithm + sunset date.",
|
|
345
|
+
"required": true
|
|
346
|
+
},
|
|
347
|
+
{
|
|
348
|
+
"skill": "framework-gap-analysis",
|
|
349
|
+
"purpose": "Map each per-asset gap to the framework control that should have caught it; surface which jurisdictions have binding deadlines vs advisory guidance.",
|
|
350
|
+
"required": true
|
|
351
|
+
},
|
|
352
|
+
{
|
|
353
|
+
"skill": "compliance-theater",
|
|
354
|
+
"purpose": "Run the five theater tests in govern.theater_fingerprints; emit verdict per pattern.",
|
|
355
|
+
"required": true
|
|
356
|
+
},
|
|
357
|
+
{
|
|
358
|
+
"skill": "global-grc",
|
|
359
|
+
"purpose": "Cross-walk findings to per-jurisdiction obligations (CNSA 2.0, OMB M-23-02, NIS2 Art.21(2)(h), DORA Art.9, EU CRA Annex I, BSI TR-02102, ACSC ISM) and notification clocks.",
|
|
360
|
+
"skip_if": "jurisdiction_obligations.length == 0",
|
|
361
|
+
"required": false
|
|
362
|
+
},
|
|
363
|
+
{
|
|
364
|
+
"skill": "security-maturity-tiers",
|
|
365
|
+
"purpose": "Place the operator's migration programme on a maturity tier (no-inventory / inventory-without-plan / inventory-with-plan / plan-with-vendor-SLAs / plan-in-execution / plan-substantially-complete) to bound the residual-risk statement.",
|
|
366
|
+
"required": true
|
|
367
|
+
},
|
|
368
|
+
{
|
|
369
|
+
"skill": "policy-exception-gen",
|
|
370
|
+
"purpose": "Generate auditor-ready exception language for assets that cannot reach hybrid PQC in this cycle.",
|
|
371
|
+
"skip_if": "close.exception_generation.trigger_condition == false",
|
|
372
|
+
"required": false
|
|
373
|
+
}
|
|
374
|
+
],
|
|
375
|
+
"token_budget": {
|
|
376
|
+
"estimated_total": 22500,
|
|
377
|
+
"breakdown": {
|
|
378
|
+
"govern": 3000,
|
|
379
|
+
"direct": 1800,
|
|
380
|
+
"look": 2600,
|
|
381
|
+
"detect": 3200,
|
|
382
|
+
"analyze": 5000,
|
|
383
|
+
"validate": 4100,
|
|
384
|
+
"close": 2800
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
},
|
|
388
|
+
"look": {
|
|
389
|
+
"artifacts": [
|
|
390
|
+
{
|
|
391
|
+
"id": "cryptographic-asset-register",
|
|
392
|
+
"type": "config_file",
|
|
393
|
+
"source": "Read the operator's cryptographic asset register if one exists: typical paths include /etc/crypto-inventory.{yaml,json,csv}, organisation-owned `crypto-register/` directory, GRC platform export (ServiceNow GRC, Archer, OneTrust). If absent, this absence is itself the load-bearing finding for NIS2 Art.21(2)(h) compliance.",
|
|
394
|
+
"description": "The per-asset cryptographic register. Each entry should declare: asset_id, asset_owner, data_sensitivity_horizon_years, current_algorithm, current_key_size, pqc_migration_target, classical_sunset_date, migration_blocker, vendor_dependency, compensating_controls. Absence of register OR absence of any one of those fields per entry is a finding.",
|
|
395
|
+
"required": true,
|
|
396
|
+
"air_gap_alternative": "Walk the operator's CMDB / asset list + per-asset configuration files locally; reconstruct register from filesystem inventory."
|
|
397
|
+
},
|
|
398
|
+
{
|
|
399
|
+
"id": "asset-cmdb-extract",
|
|
400
|
+
"type": "config_file",
|
|
401
|
+
"source": "CMDB / asset-inventory export covering every system that processes, stores, or transmits sensitive data. Examples: ServiceNow CMDB export, Snipe-IT API dump, AWS Config inventory, Azure Resource Graph query, GCP Asset Inventory export. Capture asset_id, owner, environment, data classification, retention policy reference.",
|
|
402
|
+
"description": "The denominator for the migration programme. Every asset needs a row in the cryptographic register; missing rows in the register that exist in the CMDB are an inventory gap.",
|
|
403
|
+
"required": true,
|
|
404
|
+
"air_gap_alternative": "Local filesystem walk + locally-cached CMDB extract; mark cloud-resource inventory as inventory_gap=cloud_api_unavailable."
|
|
405
|
+
},
|
|
406
|
+
{
|
|
407
|
+
"id": "hsm-kms-inventory",
|
|
408
|
+
"type": "config_file",
|
|
409
|
+
"source": "List the operator's HSM + KMS deployments: AWS CloudHSM cluster IDs + firmware versions, AWS KMS key list + algorithm spec, Azure Key Vault HSM-backed key inventory, GCP Cloud HSM key inventory, on-prem Thales Luna / Entrust nShield / Utimaco / Atos / Yubico HSM2 firmware versions. Capture vendor + model + firmware-version + supported-algorithm list per appliance.",
|
|
410
|
+
"description": "HSM/KMS PQC capability is the most common migration blocker. Vendor + firmware + algorithm support determines per-asset migration timeline.",
|
|
411
|
+
"required": true,
|
|
412
|
+
"air_gap_alternative": "If cloud HSM APIs unreachable, fall back to operator's HSM purchase records + vendor advisory PDFs; mark live HSM state as inventory_gap=hsm_api_unavailable."
|
|
413
|
+
},
|
|
414
|
+
{
|
|
415
|
+
"id": "tls-library-inventory",
|
|
416
|
+
"type": "config_file",
|
|
417
|
+
"source": "Per-asset TLS library + version inventory: openssl version + libssl path on Linux hosts, schannel version on Windows, embedded TLS library + version in operator-shipped products (mbedTLS, wolfSSL, BoringSSL, BearSSL, s2n-tls). For container fleet, parse base-image labels + vendored library manifests.",
|
|
418
|
+
"description": "Library-version inventory bounds capability. OpenSSL 3.5+, BoringSSL with ML-KEM patches, wolfSSL with PQC build flags, s2n-tls with PQC-enabled — these support PQC. Earlier versions cannot without provider augmentation.",
|
|
419
|
+
"required": true,
|
|
420
|
+
"air_gap_alternative": "Local host filesystem walk only."
|
|
421
|
+
},
|
|
422
|
+
{
|
|
423
|
+
"id": "certificate-pki-inventory",
|
|
424
|
+
"type": "config_file",
|
|
425
|
+
"source": "Internal CA + external CA certificate inventory: openssl x509 -in <each cert> -noout -text for every cert in /etc/ssl/certs, /etc/pki, organisation-owned CA distribution points. Cross-reference against the operator's PKI runbook for CA hierarchy + cross-signing relationships.",
|
|
426
|
+
"description": "Certificate algorithm + sensitivity-horizon mapping. RSA-only or ECDSA-only certs protecting long-retention data flows are HNDL-recordable.",
|
|
427
|
+
"required": true,
|
|
428
|
+
"air_gap_alternative": "Local cert-store walk only; cross-signing visibility may be incomplete in air-gap mode."
|
|
429
|
+
},
|
|
430
|
+
{
|
|
431
|
+
"id": "vendor-pqc-roadmap-attestations",
|
|
432
|
+
"type": "config_file",
|
|
433
|
+
"source": "Per-vendor PQC roadmap + commitment evidence: vendor advisory PDFs, MSA / DPA amendments naming PQC delivery dates, support-portal commitments, vendor's published PQC migration milestone announcements. One entry per third-party SaaS or hardware vendor that handles operator data.",
|
|
434
|
+
"description": "Vendor roadmap is the migration-plan input for assets the operator does not own. A vendor without a committed delivery date is a migration blocker that requires alternative-vendor planning.",
|
|
435
|
+
"required": true,
|
|
436
|
+
"air_gap_alternative": "Locally cached vendor PDFs + MSA archive only."
|
|
437
|
+
},
|
|
438
|
+
{
|
|
439
|
+
"id": "data-retention-policy",
|
|
440
|
+
"type": "config_file",
|
|
441
|
+
"source": "Read the operator's data-retention policy: per-data-class retention horizon, regulatory basis (GDPR Art.5 + sectoral retention), records-management runbook. Map data classes to assets via the cryptographic asset register.",
|
|
442
|
+
"description": "Retention horizon × current algorithm × CRQC estimate = HNDL exposure window per asset. Without a retention policy, exposure cannot be computed.",
|
|
443
|
+
"required": true,
|
|
444
|
+
"air_gap_alternative": "Local policy filesystem walk."
|
|
445
|
+
},
|
|
446
|
+
{
|
|
447
|
+
"id": "compensating-control-inventory",
|
|
448
|
+
"type": "config_file",
|
|
449
|
+
"source": "Inventory of compensating controls in place for the HNDL gap window: VPN PQC tunnel overlay (Wireguard with PQC PSK augmentation, AWS Site-to-Site VPN with IKEv2 PQC, IPsec with hybrid keying), network segmentation for classical-only assets, shortened retention for classical-protected data, downgrade-detection monitoring.",
|
|
450
|
+
"description": "What the operator runs today to mitigate the gap. Maps to the residual-risk acceptance.",
|
|
451
|
+
"required": false
|
|
452
|
+
},
|
|
453
|
+
{
|
|
454
|
+
"id": "regulator-deadline-tracker",
|
|
455
|
+
"type": "config_file",
|
|
456
|
+
"source": "Per-jurisdiction PQC migration deadline tracker: CNSA 2.0 2027/2030 NSS deadlines if operator is US federal, OMB M-23-02 annual cycle, BSI TR-02102 yearly publication, ENISA implementing acts, ACSC ISM quarterly cycle, MAS TRM updates.",
|
|
457
|
+
"description": "Per-jurisdiction binding deadlines that the migration plan must align to. Absence = no programme orchestration against external clocks.",
|
|
458
|
+
"required": false
|
|
459
|
+
}
|
|
460
|
+
],
|
|
461
|
+
"collection_scope": {
|
|
462
|
+
"time_window": "current",
|
|
463
|
+
"asset_scope": "operator_full_asset_estate",
|
|
464
|
+
"depth": "deep",
|
|
465
|
+
"sampling": "complete register reconciliation against CMDB. Sample (5%, min 20 assets) for handshake-level validation via the crypto playbook. Re-collect on every regulator deadline shift, every vendor PQC milestone, every HSM firmware update."
|
|
466
|
+
},
|
|
467
|
+
"environment_assumptions": [
|
|
468
|
+
{
|
|
469
|
+
"assumption": "operator owns the cryptographic migration programme and the underlying assets",
|
|
470
|
+
"if_false": "Halt with authorisation_required."
|
|
471
|
+
},
|
|
472
|
+
{
|
|
473
|
+
"assumption": "CMDB / asset inventory is reachable and reasonably complete",
|
|
474
|
+
"if_false": "The denominator for the migration programme is unknown. Mark cryptographic-asset-register as visibility_gap=no_cmdb and downgrade overall confidence to medium; the absence of an asset register is itself a top finding."
|
|
475
|
+
},
|
|
476
|
+
{
|
|
477
|
+
"assumption": "data-retention policy is documented",
|
|
478
|
+
"if_false": "HNDL exposure window per asset is uncomputable. Mark exposure-analysis as inconclusive; raise undefined-retention as a separate finding under NIS2 Art.21(2)(c)/(h) and DORA Art.9."
|
|
479
|
+
},
|
|
480
|
+
{
|
|
481
|
+
"assumption": "vendor PQC roadmaps are obtainable",
|
|
482
|
+
"if_false": "Vendor-dependent assets cannot be planned. Mark each affected asset as migration_blocker=vendor_roadmap_unknown and escalate vendor-engagement as a programme-level action."
|
|
483
|
+
}
|
|
484
|
+
],
|
|
485
|
+
"fallback_if_unavailable": [
|
|
486
|
+
{
|
|
487
|
+
"artifact_id": "cryptographic-asset-register",
|
|
488
|
+
"fallback_action": "escalate_to_human",
|
|
489
|
+
"confidence_impact": "high"
|
|
490
|
+
},
|
|
491
|
+
{
|
|
492
|
+
"artifact_id": "asset-cmdb-extract",
|
|
493
|
+
"fallback_action": "escalate_to_human",
|
|
494
|
+
"confidence_impact": "high"
|
|
495
|
+
},
|
|
496
|
+
{
|
|
497
|
+
"artifact_id": "hsm-kms-inventory",
|
|
498
|
+
"fallback_action": "use_compensating_artifact",
|
|
499
|
+
"confidence_impact": "medium"
|
|
500
|
+
},
|
|
501
|
+
{
|
|
502
|
+
"artifact_id": "vendor-pqc-roadmap-attestations",
|
|
503
|
+
"fallback_action": "mark_inconclusive",
|
|
504
|
+
"confidence_impact": "medium"
|
|
505
|
+
},
|
|
506
|
+
{
|
|
507
|
+
"artifact_id": "data-retention-policy",
|
|
508
|
+
"fallback_action": "escalate_to_human",
|
|
509
|
+
"confidence_impact": "high"
|
|
510
|
+
},
|
|
511
|
+
{
|
|
512
|
+
"artifact_id": "regulator-deadline-tracker",
|
|
513
|
+
"fallback_action": "mark_inconclusive",
|
|
514
|
+
"confidence_impact": "low"
|
|
515
|
+
}
|
|
516
|
+
]
|
|
517
|
+
},
|
|
518
|
+
"detect": {
|
|
519
|
+
"indicators": [
|
|
520
|
+
{
|
|
521
|
+
"id": "no-cryptographic-asset-register",
|
|
522
|
+
"type": "behavioral_signal",
|
|
523
|
+
"value": "The cryptographic-asset-register artefact is empty / not found / does not enumerate per-asset rows. The CMDB extract returns N>0 assets that process sensitive data and the register returns 0 corresponding entries.",
|
|
524
|
+
"description": "Absence of register = NIS2 Art.21(2)(h) cryptographic-inventory obligation unmet. The migration programme cannot exist without the denominator.",
|
|
525
|
+
"confidence": "deterministic",
|
|
526
|
+
"deterministic": true,
|
|
527
|
+
"false_positive_checks_required": [
|
|
528
|
+
"Confirm the absence is not a search-path issue: check additional register locations (organisation-owned GRC platform, OneTrust / Archer / ServiceNow GRC module, operator's chosen records-management system). If a register exists in a non-default location, retrieve and re-evaluate.",
|
|
529
|
+
"Confirm the CMDB is itself complete: if the CMDB returns 0 assets in scope (e.g. a brand-new entity), then no register is needed yet and this indicator should not fire. The finding is conditional on CMDB-says-assets-exist + register-says-no-rows."
|
|
530
|
+
]
|
|
531
|
+
},
|
|
532
|
+
{
|
|
533
|
+
"id": "register-incomplete-per-asset-fields",
|
|
534
|
+
"type": "behavioral_signal",
|
|
535
|
+
"value": "The cryptographic-asset-register exists but rows are missing one or more required fields: data_sensitivity_horizon_years, pqc_migration_target, classical_sunset_date, migration_blocker, vendor_dependency.",
|
|
536
|
+
"description": "Register-without-fields = inventory without programme. Each missing field corresponds to a binding NIS2/DORA/CRA/OMB requirement.",
|
|
537
|
+
"confidence": "deterministic",
|
|
538
|
+
"deterministic": true,
|
|
539
|
+
"false_positive_checks_required": [
|
|
540
|
+
"Confirm the missing field is not externally referenced (e.g. data_sensitivity_horizon_years may live in the data-retention-policy artefact rather than the register row, joined by data_class_id). If the join resolves the field, demote.",
|
|
541
|
+
"Confirm the asset is not explicitly marked as out-of-scope for the migration programme (e.g. an ephemeral dev sandbox with retention < 30 days documented in the asset row). Out-of-scope assets do not need migration-target fields populated."
|
|
542
|
+
]
|
|
543
|
+
},
|
|
544
|
+
{
|
|
545
|
+
"id": "hsm-firmware-no-pqc",
|
|
546
|
+
"type": "log_pattern",
|
|
547
|
+
"value": "Within the hsm-kms-inventory artefact: at least one HSM/KMS appliance reports a firmware version whose vendor advisory documents 'PQC not supported' OR 'PQC roadmap TBD' for the algorithms ML-KEM, ML-DSA, SLH-DSA. Cross-reference vendor-pqc-roadmap-attestations — if the vendor commitment is 'TBD' or beyond the operator's binding deadline, the appliance is a migration blocker.",
|
|
548
|
+
"description": "HSM/KMS without PQC firmware = migration blocker for every key the appliance custodies.",
|
|
549
|
+
"confidence": "deterministic",
|
|
550
|
+
"deterministic": true,
|
|
551
|
+
"false_positive_checks_required": [
|
|
552
|
+
"Confirm the firmware version is the appliance's CURRENT version. Vendors typically ship PQC support in newer firmware lines; if a newer firmware is published and the operator has not upgraded, the finding is operator-side, not vendor-side. The remediation path differs.",
|
|
553
|
+
"Confirm the appliance is actually in the path for long-retention-data assets. An HSM that custodies only short-lived dev / ephemeral keys is lower-blast-radius than one that custodies the production CA root."
|
|
554
|
+
]
|
|
555
|
+
},
|
|
556
|
+
{
|
|
557
|
+
"id": "vendor-no-pqc-commitment",
|
|
558
|
+
"type": "log_pattern",
|
|
559
|
+
"value": "Within the vendor-pqc-roadmap-attestations artefact: at least one vendor handling operator data records no committed delivery date for PQC support, OR the committed date is beyond the operator's binding regulatory deadline for the affected jurisdiction.",
|
|
560
|
+
"description": "Vendor without PQC commitment = persistent migration blocker requiring alternative-vendor or contractual escalation.",
|
|
561
|
+
"confidence": "high",
|
|
562
|
+
"deterministic": false,
|
|
563
|
+
"false_positive_checks_required": [
|
|
564
|
+
"Confirm the data routed through the vendor has retention horizon > CRQC estimate. A vendor handling only sub-1-year data with no PQC commitment is a lower-priority finding.",
|
|
565
|
+
"Confirm the vendor genuinely lacks commitment vs. the operator has not asked. Sometimes the contractual SLA exists but is not centrally tracked; check the legal / vendor-management archive before flagging."
|
|
566
|
+
]
|
|
567
|
+
},
|
|
568
|
+
{
|
|
569
|
+
"id": "long-retention-classical-only-asset",
|
|
570
|
+
"type": "log_pattern",
|
|
571
|
+
"value": "Cross-join cryptographic-asset-register × data-retention-policy: any asset with retention_horizon_years > 5 AND current_algorithm in {RSA-1024, RSA-2048, RSA-3072, ECDSA-P256, ECDSA-P384, ECDH-X25519, ECDH-P256, ECDH-P384} AND pqc_migration_target == null OR classical_sunset_date == null OR classical_sunset_date > today + retention_horizon_years.",
|
|
572
|
+
"description": "Asset with retention horizon exceeding aggressive CRQC estimate, currently protected by classical-only crypto, with no migration plan. Primary HNDL-exposure indicator.",
|
|
573
|
+
"confidence": "deterministic",
|
|
574
|
+
"deterministic": true,
|
|
575
|
+
"false_positive_checks_required": [
|
|
576
|
+
"Confirm the asset is in the recording surface — a fully air-gapped asset behind a network boundary not reachable by the HNDL adversary's recording capability has lower exposure. Score by reachability of the recording surface, not abstract retention alone.",
|
|
577
|
+
"Confirm the classical-only protection is the ONLY layer. Layered envelopes (e.g. AES-256 symmetric over PQC-wrapped key) are not classical-only even if the outer transport is classical. Read the data-flow diagram, not just the transport summary.",
|
|
578
|
+
"Confirm sensitivity horizon truly extends beyond CRQC. If the data class becomes worthless before CRQC (e.g. ephemeral session keys, expired ad-targeting profiles), the asset's exposure window collapses."
|
|
579
|
+
]
|
|
580
|
+
},
|
|
581
|
+
{
|
|
582
|
+
"id": "policy-without-vendor-sla",
|
|
583
|
+
"type": "log_pattern",
|
|
584
|
+
"value": "The operator's PQC migration policy names vendor PQC roadmap as a dependency AND the vendor-pqc-roadmap-attestations artefact contains no contractual SLA / MSA amendment / DPA addendum binding the vendor to a delivery date.",
|
|
585
|
+
"description": "Policy that depends on vendor roadmap without contractual SLA = vendor-roadmap-as-migration-plan theater.",
|
|
586
|
+
"confidence": "high",
|
|
587
|
+
"deterministic": false
|
|
588
|
+
},
|
|
589
|
+
{
|
|
590
|
+
"id": "regulator-deadline-missing-or-stale",
|
|
591
|
+
"type": "log_pattern",
|
|
592
|
+
"value": "regulator-deadline-tracker artefact is empty OR contains deadlines whose last-reviewed date is > 180 days old. Cross-reference: CNSA 2.0, OMB M-23-02, NIS2 Art.21(2)(h) implementing-act publications, BSI TR-02102 yearly publication, ACSC ISM quarterly cycle.",
|
|
593
|
+
"description": "Regulator-deadline tracker stale = programme not orchestrated against external clocks; high risk of missing binding deadlines.",
|
|
594
|
+
"confidence": "high",
|
|
595
|
+
"deterministic": false,
|
|
596
|
+
"false_positive_checks_required": [
|
|
597
|
+
"Confirm the operator is in jurisdictions where these deadlines bind. A non-federal-US, non-EU, non-AU entity may have a narrower deadline tracker by design.",
|
|
598
|
+
"Confirm the staleness is not coverage-completeness: an updated-yesterday tracker that still misses a jurisdiction is worse than a 180-day-stale tracker that names every binding deadline."
|
|
599
|
+
]
|
|
600
|
+
},
|
|
601
|
+
{
|
|
602
|
+
"id": "no-downgrade-detection",
|
|
603
|
+
"type": "behavioral_signal",
|
|
604
|
+
"value": "The compensating-control-inventory artefact does not enumerate a control that detects classical-fallback negotiation on services configured for hybrid PQC. Typical signals: server-side handshake-log analytics flagging non-hybrid completed handshakes, SIEM rule on `selected_group != X25519MLKEM768 AND service in hybrid_pqc_inventory`.",
|
|
605
|
+
"description": "No downgrade detection = hybrid configuration silently regresses without operator awareness during the compatibility window.",
|
|
606
|
+
"confidence": "high",
|
|
607
|
+
"deterministic": false
|
|
608
|
+
},
|
|
609
|
+
{
|
|
610
|
+
"id": "embedded-tls-stack-classical-only",
|
|
611
|
+
"type": "log_pattern",
|
|
612
|
+
"value": "Within the tls-library-inventory artefact: an operator-shipped product (firmware, IoT, embedded device) declares an embedded TLS stack (mbedTLS < 3.6, wolfSSL without --enable-experimental --enable-mlkem build flags, BoringSSL without PQC patch, BearSSL) AND the product is in active customer deployment.",
|
|
613
|
+
"description": "Embedded TLS stack classical-only = product fleet HNDL-exposed for the full operational life of every deployed unit.",
|
|
614
|
+
"confidence": "deterministic",
|
|
615
|
+
"deterministic": true,
|
|
616
|
+
"false_positive_checks_required": [
|
|
617
|
+
"Confirm the embedded product handles data with retention > 5 years AND is in a reachable recording surface. Embedded telemetry beacons sending public weather data may not be in scope.",
|
|
618
|
+
"Confirm there is no firmware update channel that can deliver a PQC-capable stack. If the channel exists and the operator's plan includes the upgrade, the finding shifts from migration-blocker to migration-in-progress.",
|
|
619
|
+
"Confirm the device is not behind a PQC-capable gateway. A classical-only embedded device behind a PQC tunnel inherits the gateway's hybrid posture for the upstream link."
|
|
620
|
+
]
|
|
621
|
+
}
|
|
622
|
+
],
|
|
623
|
+
"false_positive_profile": [
|
|
624
|
+
{
|
|
625
|
+
"indicator_id": "no-cryptographic-asset-register",
|
|
626
|
+
"benign_pattern": "Operator is a brand-new entity in onboarding phase; CMDB itself is empty.",
|
|
627
|
+
"distinguishing_test": "Confirm CMDB returns N > 0 assets that handle sensitive data. If N == 0, the register's absence is correctly explained by no in-scope estate."
|
|
628
|
+
},
|
|
629
|
+
{
|
|
630
|
+
"indicator_id": "long-retention-classical-only-asset",
|
|
631
|
+
"benign_pattern": "Asset is documented as handling only data with sensitivity that expires within the retention horizon (e.g. ad-targeting profiles invalid after 90 days even if technically retained for 3 years).",
|
|
632
|
+
"distinguishing_test": "Distinguish retention-for-compliance from retention-because-data-is-still-sensitive. If the data is retained only to satisfy a regulatory minimum and ceases to have intelligence value within the horizon, downgrade severity."
|
|
633
|
+
},
|
|
634
|
+
{
|
|
635
|
+
"indicator_id": "vendor-no-pqc-commitment",
|
|
636
|
+
"benign_pattern": "Vendor handles only short-lived ephemeral data with no HNDL exposure.",
|
|
637
|
+
"distinguishing_test": "Verify the data class routed to the vendor has retention < CRQC-aggressive estimate AND the data ceases to have value before CRQC. If both hold, demote to low."
|
|
638
|
+
}
|
|
639
|
+
],
|
|
640
|
+
"minimum_signal": {
|
|
641
|
+
"detected": "At least one of {no-cryptographic-asset-register, register-incomplete-per-asset-fields, long-retention-classical-only-asset, hsm-firmware-no-pqc, embedded-tls-stack-classical-only} fires AND the operator is in scope for any binding jurisdictional deadline.",
|
|
642
|
+
"inconclusive": "CMDB or retention-policy artefacts incomplete; cannot compute per-asset exposure window. Register may exist but cannot be reconciled.",
|
|
643
|
+
"not_detected": "Cryptographic-asset-register present + complete for every CMDB asset, every entry has populated pqc_migration_target + classical_sunset_date, vendor-pqc-roadmap-attestations has contractual SLA for every vendor-dependent asset, downgrade-detection control is active, regulator-deadline tracker is current within 90 days."
|
|
644
|
+
}
|
|
645
|
+
},
|
|
646
|
+
"analyze": {
|
|
647
|
+
"rwep_inputs": [
|
|
648
|
+
{
|
|
649
|
+
"signal_id": "no-cryptographic-asset-register",
|
|
650
|
+
"rwep_factor": "blast_radius",
|
|
651
|
+
"weight": 30,
|
|
652
|
+
"notes": "Programme blast radius = whole estate. Register absence implicates every asset."
|
|
653
|
+
},
|
|
654
|
+
{
|
|
655
|
+
"signal_id": "no-cryptographic-asset-register",
|
|
656
|
+
"rwep_factor": "active_exploitation",
|
|
657
|
+
"weight": 20,
|
|
658
|
+
"notes": "HNDL recording is operational today against the whole estate by default when no inventory drives selective hardening."
|
|
659
|
+
},
|
|
660
|
+
{
|
|
661
|
+
"signal_id": "long-retention-classical-only-asset",
|
|
662
|
+
"rwep_factor": "active_exploitation",
|
|
663
|
+
"weight": 20,
|
|
664
|
+
"notes": "Per-asset HNDL recording is operational. Confirmed adversary capability at the recording-collection step."
|
|
665
|
+
},
|
|
666
|
+
{
|
|
667
|
+
"signal_id": "long-retention-classical-only-asset",
|
|
668
|
+
"rwep_factor": "blast_radius",
|
|
669
|
+
"weight": 25,
|
|
670
|
+
"notes": "Per-asset blast radius proportional to retention horizon × data sensitivity."
|
|
671
|
+
},
|
|
672
|
+
{
|
|
673
|
+
"signal_id": "hsm-firmware-no-pqc",
|
|
674
|
+
"rwep_factor": "blast_radius",
|
|
675
|
+
"weight": 25,
|
|
676
|
+
"notes": "HSM blast radius = every key custodied. Often includes CA root + signing keys."
|
|
677
|
+
},
|
|
678
|
+
{
|
|
679
|
+
"signal_id": "embedded-tls-stack-classical-only",
|
|
680
|
+
"rwep_factor": "blast_radius",
|
|
681
|
+
"weight": 25,
|
|
682
|
+
"notes": "Embedded fleet HNDL-exposure persists for the full operational life of each unit."
|
|
683
|
+
},
|
|
684
|
+
{
|
|
685
|
+
"signal_id": "vendor-no-pqc-commitment",
|
|
686
|
+
"rwep_factor": "patch_available",
|
|
687
|
+
"weight": -5,
|
|
688
|
+
"notes": "Vendor-side; operator cannot patch unilaterally. Modest mitigation via alternative-vendor planning."
|
|
689
|
+
},
|
|
690
|
+
{
|
|
691
|
+
"signal_id": "no-downgrade-detection",
|
|
692
|
+
"rwep_factor": "active_exploitation",
|
|
693
|
+
"weight": 5,
|
|
694
|
+
"notes": "Silent regression risk during compatibility window."
|
|
695
|
+
},
|
|
696
|
+
{
|
|
697
|
+
"signal_id": "no-cryptographic-asset-register",
|
|
698
|
+
"rwep_factor": "ai_weaponization",
|
|
699
|
+
"weight": 5,
|
|
700
|
+
"notes": "AI-accelerated cryptanalysis tooling shortens the CRQC horizon estimate."
|
|
701
|
+
}
|
|
702
|
+
],
|
|
703
|
+
"blast_radius_model": {
|
|
704
|
+
"scope_question": "If an adversary records the operator's classical-encrypted traffic + retains operator-shipped product captures today and decrypts on the CRQC day (mid-2030s), what scope of compromise is the operator's MIGRATION PROGRAMME failure realistically delivering?",
|
|
705
|
+
"scoring_rubric": [
|
|
706
|
+
{
|
|
707
|
+
"condition": "Operator estate handles only ephemeral data with < 1-year sensitivity horizon AND no operator-shipped products.",
|
|
708
|
+
"blast_radius_score": 1,
|
|
709
|
+
"description": "Data stale by CRQC day; programme failure carries minimal HNDL cost."
|
|
710
|
+
},
|
|
711
|
+
{
|
|
712
|
+
"condition": "Operator estate handles internal corporate data with 1-3 year horizon; no regulated PII at scale.",
|
|
713
|
+
"blast_radius_score": 2,
|
|
714
|
+
"description": "Programme failure produces embarrassment + competitive cost; no regulatory notification obligations."
|
|
715
|
+
},
|
|
716
|
+
{
|
|
717
|
+
"condition": "Operator estate handles personal data (GDPR / HIPAA / PCI) with 3-10 year retention.",
|
|
718
|
+
"blast_radius_score": 3,
|
|
719
|
+
"description": "Programme failure produces delayed-clock notification obligations the framework does not yet contemplate; class-action exposure across affected data subjects."
|
|
720
|
+
},
|
|
721
|
+
{
|
|
722
|
+
"condition": "Operator estate handles financial transaction logs, long-retention healthcare records, IP/trade secrets, 10-25 year sensitivity OR ships products with > 5 year operational life under EU CRA scope.",
|
|
723
|
+
"blast_radius_score": 4,
|
|
724
|
+
"description": "Programme failure produces massive long-tail decryption event + significant material loss + regulatory action under multiple jurisdictions."
|
|
725
|
+
},
|
|
726
|
+
{
|
|
727
|
+
"condition": "Operator estate handles classified, state-sensitive, biometric template, or generational sensitivity data (25+ year horizon) OR is in CNSA 2.0 scope.",
|
|
728
|
+
"blast_radius_score": 5,
|
|
729
|
+
"description": "Programme failure delivers strategic, category-defining compromise on CRQC day. Loss is irreversible."
|
|
730
|
+
}
|
|
731
|
+
]
|
|
732
|
+
},
|
|
733
|
+
"compliance_theater_check": {
|
|
734
|
+
"claim": "Cryptographic migration is in flight per NIS2 Art.21(2)(h), DORA Art.9, OMB M-23-02, EU CRA Annex I — the migration policy is published, the algorithms are selected, and FIPS-validated modules are deployed.",
|
|
735
|
+
"audit_evidence": "Published cryptographic-migration policy, FIPS 140-3 validated module deployment record, vendor announcements of PQC roadmap, NIST SP 800-227 alignment statement.",
|
|
736
|
+
"reality_test": "Pull the cryptographic-asset-register. Confirm (a) row count matches CMDB asset count for in-scope assets, (b) every row has populated data_sensitivity_horizon_years + current_algorithm + pqc_migration_target + classical_sunset_date + migration_blocker + vendor_dependency fields, (c) every vendor named as dependency has a contractual SLA naming a delivery date, (d) every classical_sunset_date precedes the asset's data_sensitivity_horizon expiry, (e) a downgrade-detection control is active on every asset migrated to hybrid configuration. Theater verdict if any of (a)-(e) fails: the policy exists but the programme does not.",
|
|
737
|
+
"theater_verdict_if_gap": "Operator demonstrates a published migration policy, vendor roadmap citations, and FIPS-validated module deployments while having no per-asset register, no per-asset migration targets, no vendor SLAs, and no downgrade detection. Either (a) build the per-asset register with all six fields and bring it under regulatory submission cadence, (b) escalate vendors without delivery SLAs to alternative-vendor or contractual-escalation, (c) deploy downgrade detection on every hybrid-configured asset, (d) reconcile classical sunset dates against retention horizons asset-by-asset, OR (e) generate a defensible policy exception via policy-exception-gen acknowledging the HNDL acceptance + crypto-agility roadmap."
|
|
738
|
+
},
|
|
739
|
+
"framework_gap_mapping": [
|
|
740
|
+
{
|
|
741
|
+
"finding_id": "pqc-migration-programme-failure",
|
|
742
|
+
"framework": "nist-800-53",
|
|
743
|
+
"claimed_control": "SC-13 — Cryptographic Protection",
|
|
744
|
+
"actual_gap": "Cites FIPS-validated modules without distinguishing classical-only validations from FIPS 203/204/205 PQC validations. No per-asset migration tracking. No HNDL exposure analysis.",
|
|
745
|
+
"required_control": "Add SC-13(PQC) sub-control: any data with sensitivity horizon > aggressive-CRQC-estimate must be protected by FIPS 203/204/205 hybrid or PQC-pure algorithms. Per-asset inventory + sunset register + migration milestones tied to OMB M-23-02 annual cycle."
|
|
746
|
+
},
|
|
747
|
+
{
|
|
748
|
+
"finding_id": "pqc-migration-programme-failure",
|
|
749
|
+
"framework": "nist-800-53",
|
|
750
|
+
"claimed_control": "SC-12 — Cryptographic Key Establishment and Management",
|
|
751
|
+
"actual_gap": "Key-lifecycle controls are algorithm-agnostic. No requirement for KMS to support hybrid keys or track key sensitivity horizon vs. CRQC estimate.",
|
|
752
|
+
"required_control": "Add SC-12(PQC) sub-control requiring KMS to support FIPS 203/204/205 algorithms + hybrid key types; per-key sensitivity-horizon attribute + automated classical-key sunset enforcement."
|
|
753
|
+
},
|
|
754
|
+
{
|
|
755
|
+
"finding_id": "pqc-migration-programme-failure",
|
|
756
|
+
"framework": "iso-27001-2022",
|
|
757
|
+
"claimed_control": "A.8.24 — Use of cryptography",
|
|
758
|
+
"actual_gap": "Published 2022 before PQC finalisation. No algorithm-currency requirement. No per-asset migration tracking.",
|
|
759
|
+
"required_control": "Amendment requiring: (a) per-asset cryptographic register, (b) per-asset sunset dates aligned to retention horizon, (c) hybrid PQC default for new deployments protecting data with horizon > 5 years, (d) crypto-agility built into architecture decisions."
|
|
760
|
+
},
|
|
761
|
+
{
|
|
762
|
+
"finding_id": "pqc-migration-programme-failure",
|
|
763
|
+
"framework": "iso-27001-2022",
|
|
764
|
+
"claimed_control": "A.8.25 — Secure development lifecycle",
|
|
765
|
+
"actual_gap": "Does not require crypto-agility. PQC migration becomes re-engineering project that the control does not flag.",
|
|
766
|
+
"required_control": "Add crypto-agility requirement to A.8.25: design must support algorithm substitution without re-architecting. Conformance test: substitute one asymmetric algorithm with a hybrid PQC equivalent and confirm no architectural change required."
|
|
767
|
+
},
|
|
768
|
+
{
|
|
769
|
+
"finding_id": "pqc-migration-programme-failure",
|
|
770
|
+
"framework": "pci-dss-4",
|
|
771
|
+
"claimed_control": "§3.6 / §4.2.1 — Strong cryptography",
|
|
772
|
+
"actual_gap": "'Strong cryptography' defined with classical minimums. No PQC obligation for long-retention cardholder data.",
|
|
773
|
+
"required_control": "Update 'strong cryptography' definition: FIPS 203/204/205 hybrid mandatory for cardholder data with retention > 5 years. Per-merchant cryptographic register filed with QSA."
|
|
774
|
+
},
|
|
775
|
+
{
|
|
776
|
+
"finding_id": "pqc-migration-programme-failure",
|
|
777
|
+
"framework": "nis2",
|
|
778
|
+
"claimed_control": "Art.21(2)(h) — Use of cryptography",
|
|
779
|
+
"actual_gap": "Names cryptography as essential measure; defers algorithm specifics to implementing acts. No per-asset enforcement.",
|
|
780
|
+
"required_control": "Implementing act to bind 'appropriate cryptography' to NIST PQC standards for essential entities. Per-essential-entity register submission cadence (annual). Per-asset migration deadlines aligned to CRQC horizon."
|
|
781
|
+
},
|
|
782
|
+
{
|
|
783
|
+
"finding_id": "pqc-migration-programme-failure",
|
|
784
|
+
"framework": "dora",
|
|
785
|
+
"claimed_control": "Art.9 — ICT systems, protocols and tools (cryptographic resilience)",
|
|
786
|
+
"actual_gap": "Cryptographic-resilience language inherits NIS2 gap. Financial-entity HNDL exposure acute, framework cadence months behind.",
|
|
787
|
+
"required_control": "RTS/ITS requiring financial-entity cryptographic register with PQC migration timelines + per-vendor SLAs + downgrade detection. Annual ESA submission cadence."
|
|
788
|
+
},
|
|
789
|
+
{
|
|
790
|
+
"finding_id": "pqc-migration-programme-failure",
|
|
791
|
+
"framework": "eu-cra",
|
|
792
|
+
"claimed_control": "Annex I — Essential cybersecurity requirements",
|
|
793
|
+
"actual_gap": "'State-of-the-art' cryptography interpretive; no binding PQC reference. Products with > 5y operational life ship classical-only.",
|
|
794
|
+
"required_control": "Implementing act binding 'state-of-the-art' to NIST FIPS 203/204/205 for products with > 5-year operational life. Per-product cryptographic register accompanying CE marking."
|
|
795
|
+
},
|
|
796
|
+
{
|
|
797
|
+
"finding_id": "pqc-migration-programme-failure",
|
|
798
|
+
"framework": "uk-caf",
|
|
799
|
+
"claimed_control": "B3 — Data security",
|
|
800
|
+
"actual_gap": "Outcome-based; does not name algorithms or migration tempo. Classical posture can be 'achieving' the outcome despite HNDL exposure.",
|
|
801
|
+
"required_control": "NCSC profile addendum: data with retention > 5y in scope must demonstrate FIPS 203/204/205 hybrid protection or documented HNDL acceptance with compensating controls."
|
|
802
|
+
},
|
|
803
|
+
{
|
|
804
|
+
"finding_id": "pqc-migration-programme-failure",
|
|
805
|
+
"framework": "au-ism",
|
|
806
|
+
"claimed_control": "ISM-0457 / ISM-1546 — Approved cryptographic algorithms / Transition",
|
|
807
|
+
"actual_gap": "ISM transition guidance advisory; quarterly cadence lags FIPS 203/204/205. Mixed classical + PQC approved-algorithm list without binding migration deadlines.",
|
|
808
|
+
"required_control": "ISM update binding PQC migration deadlines per data classification + per asset class; per-Department register submission cadence aligned to ACSC quarterly cycle."
|
|
809
|
+
},
|
|
810
|
+
{
|
|
811
|
+
"finding_id": "pqc-migration-programme-failure",
|
|
812
|
+
"framework": "hipaa",
|
|
813
|
+
"claimed_control": "Security Rule §164.312(a)(2)(iv) — Encryption and decryption",
|
|
814
|
+
"actual_gap": "Encryption requirement technology-agnostic. PHI retention horizon routinely > 25 years; HNDL exposure across full retention.",
|
|
815
|
+
"required_control": "OCR guidance requiring covered entities + business associates to maintain per-asset cryptographic register + PQC migration plan with sunset dates for PHI flows."
|
|
816
|
+
}
|
|
817
|
+
],
|
|
818
|
+
"escalation_criteria": [
|
|
819
|
+
{
|
|
820
|
+
"condition": "no-cryptographic-asset-register == fired AND jurisdiction_obligations contains NIS2-Art21-2h",
|
|
821
|
+
"action": "notify_legal"
|
|
822
|
+
},
|
|
823
|
+
{
|
|
824
|
+
"condition": "blast_radius_score >= 4",
|
|
825
|
+
"action": "raise_severity"
|
|
826
|
+
},
|
|
827
|
+
{
|
|
828
|
+
"condition": "long-retention-classical-only-asset == fired AND asset.data_sensitivity_horizon_years >= 10",
|
|
829
|
+
"action": "page_on_call"
|
|
830
|
+
},
|
|
831
|
+
{
|
|
832
|
+
"condition": "hsm-firmware-no-pqc == fired AND any_affected_key_role == 'ca_root'",
|
|
833
|
+
"action": "trigger_playbook",
|
|
834
|
+
"target_playbook": "crypto"
|
|
835
|
+
},
|
|
836
|
+
{
|
|
837
|
+
"condition": "compliance_theater_check.verdict == 'theater'",
|
|
838
|
+
"action": "trigger_playbook",
|
|
839
|
+
"target_playbook": "framework"
|
|
840
|
+
},
|
|
841
|
+
{
|
|
842
|
+
"condition": "embedded-tls-stack-classical-only == fired AND product_in_eu_cra_scope == true",
|
|
843
|
+
"action": "notify_legal"
|
|
844
|
+
}
|
|
845
|
+
]
|
|
846
|
+
},
|
|
847
|
+
"validate": {
|
|
848
|
+
"remediation_paths": [
|
|
849
|
+
{
|
|
850
|
+
"id": "build-per-asset-register",
|
|
851
|
+
"description": "Establish a per-asset cryptographic register covering every CMDB asset in scope. Required fields per row: asset_id, owner, data_sensitivity_horizon_years, current_algorithm, current_key_size, pqc_migration_target, classical_sunset_date, migration_blocker, vendor_dependency, compensating_controls. Bring under regulatory submission cadence for the operator's jurisdictions.",
|
|
852
|
+
"preconditions": [
|
|
853
|
+
"cmdb_extract_obtainable == true",
|
|
854
|
+
"data_retention_policy_documented == true",
|
|
855
|
+
"operator_assigns_register_owner == true"
|
|
856
|
+
],
|
|
857
|
+
"priority": 1,
|
|
858
|
+
"compensating_controls": [
|
|
859
|
+
"interim_high_value_asset_prioritisation",
|
|
860
|
+
"vendor_engagement_for_unattested_dependencies"
|
|
861
|
+
],
|
|
862
|
+
"estimated_time_hours": 80
|
|
863
|
+
},
|
|
864
|
+
{
|
|
865
|
+
"id": "obtain-vendor-pqc-slas",
|
|
866
|
+
"description": "For every vendor named as migration dependency: open contractual addendum naming the PQC delivery date, the operator's compensating-control posture during the gap, and the alternative-vendor plan if vendor misses SLA. File the addendum in the vendor-management archive.",
|
|
867
|
+
"preconditions": [
|
|
868
|
+
"vendor_inventory_complete == true",
|
|
869
|
+
"operator_legal_team_engaged == true"
|
|
870
|
+
],
|
|
871
|
+
"priority": 2,
|
|
872
|
+
"compensating_controls": [
|
|
873
|
+
"alternative_vendor_shortlist_per_dependency",
|
|
874
|
+
"data_minimisation_for_vendor_handled_data"
|
|
875
|
+
],
|
|
876
|
+
"estimated_time_hours": 60
|
|
877
|
+
},
|
|
878
|
+
{
|
|
879
|
+
"id": "deploy-downgrade-detection",
|
|
880
|
+
"description": "On every asset migrated to hybrid PQC configuration: deploy a downgrade-detection control. Sample patterns: server-side handshake-log analytics + SIEM rule on selected_group != hybrid for services in hybrid_pqc_inventory; sshd LogLevel VERBOSE + audit on kex_completion line; Caddy / nginx access log enriched with negotiated TLS group.",
|
|
881
|
+
"preconditions": [
|
|
882
|
+
"siem_or_log_aggregation_available == true",
|
|
883
|
+
"hybrid_configured_asset_inventory_present == true"
|
|
884
|
+
],
|
|
885
|
+
"priority": 2,
|
|
886
|
+
"compensating_controls": [
|
|
887
|
+
"alerting_on_downgrade_threshold_per_service",
|
|
888
|
+
"weekly_downgrade_report_to_security_team"
|
|
889
|
+
],
|
|
890
|
+
"estimated_time_hours": 12
|
|
891
|
+
},
|
|
892
|
+
{
|
|
893
|
+
"id": "schedule-hsm-firmware-upgrades",
|
|
894
|
+
"description": "For every HSM/KMS flagged as PQC-incapable: schedule firmware upgrade (vendor support contract) OR migration to a PQC-capable alternative. Pair with a key-migration plan: every classical-only key custodied by the appliance migrates to a hybrid key on the new firmware OR is sunset before the appliance.",
|
|
895
|
+
"preconditions": [
|
|
896
|
+
"vendor_pqc_firmware_published == true OR alternative_appliance_procurable == true",
|
|
897
|
+
"key_migration_window_within_jurisdiction_deadline == true"
|
|
898
|
+
],
|
|
899
|
+
"priority": 3,
|
|
900
|
+
"compensating_controls": [
|
|
901
|
+
"network_segmentation_for_classical_only_hsm",
|
|
902
|
+
"shortened_retention_for_keys_pending_migration"
|
|
903
|
+
],
|
|
904
|
+
"estimated_time_hours": 40
|
|
905
|
+
},
|
|
906
|
+
{
|
|
907
|
+
"id": "establish-regulator-deadline-tracker",
|
|
908
|
+
"description": "Build a per-jurisdiction PQC deadline tracker covering every binding regulation the operator is subject to. Refresh on the regulator's publication cadence (BSI TR-02102 annual, ACSC ISM quarterly, OMB annual). Surface upcoming deadlines into the migration programme's schedule.",
|
|
909
|
+
"preconditions": [
|
|
910
|
+
"operator_jurisdictional_scope_documented == true"
|
|
911
|
+
],
|
|
912
|
+
"priority": 4,
|
|
913
|
+
"compensating_controls": [
|
|
914
|
+
"automated_regulator_publication_monitoring",
|
|
915
|
+
"quarterly_deadline_review_with_legal"
|
|
916
|
+
],
|
|
917
|
+
"estimated_time_hours": 16
|
|
918
|
+
},
|
|
919
|
+
{
|
|
920
|
+
"id": "embedded-product-firmware-migration",
|
|
921
|
+
"description": "For embedded products in customer deployment: schedule firmware update path that delivers a PQC-capable TLS stack OR document end-of-life + customer-migration plan if no update path exists. For products in EU CRA scope, file the migration plan as part of conformance documentation.",
|
|
922
|
+
"preconditions": [
|
|
923
|
+
"firmware_update_channel_exists == true OR end_of_life_communicable_to_customers == true"
|
|
924
|
+
],
|
|
925
|
+
"priority": 4,
|
|
926
|
+
"compensating_controls": [
|
|
927
|
+
"pqc_gateway_for_classical_only_devices",
|
|
928
|
+
"customer_notification_of_hndl_exposure"
|
|
929
|
+
],
|
|
930
|
+
"estimated_time_hours": 200
|
|
931
|
+
},
|
|
932
|
+
{
|
|
933
|
+
"id": "policy-exception",
|
|
934
|
+
"description": "For any asset that cannot reach hybrid PQC posture within the migration cycle: generate auditor-ready policy exception with crypto-agility roadmap + compensating controls + time-bound risk acceptance + alternative-vendor or end-of-life plan.",
|
|
935
|
+
"preconditions": [
|
|
936
|
+
"remediation_paths[1..6] blocked for the specific asset",
|
|
937
|
+
"ciso_acceptance_obtainable == true"
|
|
938
|
+
],
|
|
939
|
+
"priority": 7,
|
|
940
|
+
"compensating_controls": [
|
|
941
|
+
"network_segmentation",
|
|
942
|
+
"vpn_pqc_tunnel_overlay",
|
|
943
|
+
"shortened_retention_for_classical_protected_data",
|
|
944
|
+
"downgrade_detection_alerting",
|
|
945
|
+
"annual_crypto_agility_review",
|
|
946
|
+
"vendor_pqc_roadmap_tracking"
|
|
947
|
+
],
|
|
948
|
+
"estimated_time_hours": 8
|
|
949
|
+
}
|
|
950
|
+
],
|
|
951
|
+
"validation_tests": [
|
|
952
|
+
{
|
|
953
|
+
"id": "register-row-count-matches-cmdb",
|
|
954
|
+
"test": "Compute COUNT(cryptographic-asset-register) WHERE in_scope = true. Compare against COUNT(asset-cmdb-extract) WHERE handles_sensitive_data = true. Confirm equal.",
|
|
955
|
+
"expected_result": "Register row count equals CMDB in-scope asset count.",
|
|
956
|
+
"test_type": "functional"
|
|
957
|
+
},
|
|
958
|
+
{
|
|
959
|
+
"id": "every-row-has-required-fields",
|
|
960
|
+
"test": "For each row in the register, assert all of: data_sensitivity_horizon_years, current_algorithm, pqc_migration_target, classical_sunset_date, migration_blocker, vendor_dependency populated (non-null).",
|
|
961
|
+
"expected_result": "100% of register rows have all required fields.",
|
|
962
|
+
"test_type": "functional"
|
|
963
|
+
},
|
|
964
|
+
{
|
|
965
|
+
"id": "sunset-date-precedes-retention-horizon",
|
|
966
|
+
"test": "For each register row with classical-only current_algorithm: assert classical_sunset_date < today + retention_horizon_years.",
|
|
967
|
+
"expected_result": "0 rows where sunset date falls outside the retention horizon.",
|
|
968
|
+
"test_type": "functional"
|
|
969
|
+
},
|
|
970
|
+
{
|
|
971
|
+
"id": "vendor-sla-present-per-dependency",
|
|
972
|
+
"test": "For each register row with non-null vendor_dependency: assert a contractual SLA exists in vendor-pqc-roadmap-attestations with a delivery date.",
|
|
973
|
+
"expected_result": "100% of vendor-dependent rows have an SLA on file.",
|
|
974
|
+
"test_type": "functional"
|
|
975
|
+
},
|
|
976
|
+
{
|
|
977
|
+
"id": "downgrade-detection-active-on-hybrid-assets",
|
|
978
|
+
"test": "For each register row where pqc_migration_target indicates hybrid PQC AND classical_sunset_date is past: confirm a downgrade-detection control fires when a synthetic classical-only handshake is attempted against the service.",
|
|
979
|
+
"expected_result": "Synthetic classical-handshake triggers an alert within the SIEM / log-analytics threshold.",
|
|
980
|
+
"test_type": "exploit_replay"
|
|
981
|
+
},
|
|
982
|
+
{
|
|
983
|
+
"id": "regulator-deadline-tracker-current",
|
|
984
|
+
"test": "Read the regulator-deadline-tracker artefact. Assert last_reviewed dates are within the regulator's publication cadence (annual for BSI / OMB, quarterly for ACSC).",
|
|
985
|
+
"expected_result": "Every tracked deadline last_reviewed within its publication cadence.",
|
|
986
|
+
"test_type": "functional"
|
|
987
|
+
},
|
|
988
|
+
{
|
|
989
|
+
"id": "embedded-product-migration-documented",
|
|
990
|
+
"test": "For each embedded product in customer deployment with classical-only TLS stack: confirm either (a) firmware update path documented with target ship date, OR (b) end-of-life + customer-migration plan documented and filed.",
|
|
991
|
+
"expected_result": "Every embedded-product row has a documented migration or end-of-life plan.",
|
|
992
|
+
"test_type": "functional"
|
|
993
|
+
}
|
|
994
|
+
],
|
|
995
|
+
"residual_risk_statement": {
|
|
996
|
+
"risk": "Operator estate retains classical-only cryptographic protection for assets whose migration is blocked by vendor or embedded constraints, leaving an HNDL-exposure window for data with sensitivity horizon overlapping CRQC estimates.",
|
|
997
|
+
"why_remains": "PQC migration is multi-year and depends on vendor + ecosystem readiness outside operator control. HSM/KMS firmware lines, embedded TLS stacks, and third-party SaaS providers have heterogeneous PQC delivery cadences. Crypto-agility is an architecture investment, not a single fix. Until vendor SLAs and ecosystem readiness close, the operator carries HNDL exposure across the unmigrated subset.",
|
|
998
|
+
"acceptance_level": "ciso",
|
|
999
|
+
"compensating_controls_in_place": [
|
|
1000
|
+
"per_asset_register_with_sunset_dates",
|
|
1001
|
+
"vendor_sla_tracking_with_alternative_vendor_plans",
|
|
1002
|
+
"downgrade_detection_on_hybrid_configured_assets",
|
|
1003
|
+
"network_segmentation_for_classical_only_assets",
|
|
1004
|
+
"vpn_pqc_tunnel_overlay_where_feasible",
|
|
1005
|
+
"shortened_retention_where_business_allows",
|
|
1006
|
+
"annual_crypto_agility_programme_review"
|
|
1007
|
+
]
|
|
1008
|
+
},
|
|
1009
|
+
"evidence_requirements": [
|
|
1010
|
+
{
|
|
1011
|
+
"evidence_type": "attestation",
|
|
1012
|
+
"description": "Cryptographic-asset-register snapshot (signed) with row count matching CMDB in-scope asset count + all required fields populated + sunset dates precede retention horizons.",
|
|
1013
|
+
"retention_period": "7_years",
|
|
1014
|
+
"framework_satisfied": [
|
|
1015
|
+
"nis2-art21-2h",
|
|
1016
|
+
"dora-art9",
|
|
1017
|
+
"iso-27001-2022-A.8.24",
|
|
1018
|
+
"us-omb-m-23-02",
|
|
1019
|
+
"eu-cra-annex-i"
|
|
1020
|
+
]
|
|
1021
|
+
},
|
|
1022
|
+
{
|
|
1023
|
+
"evidence_type": "attestation",
|
|
1024
|
+
"description": "Vendor-SLA pack with contractual addenda for every vendor-dependent asset + alternative-vendor shortlist per dependency.",
|
|
1025
|
+
"retention_period": "7_years",
|
|
1026
|
+
"framework_satisfied": [
|
|
1027
|
+
"dora-art9",
|
|
1028
|
+
"nis2-art21-2d",
|
|
1029
|
+
"nis2-art21-2h",
|
|
1030
|
+
"iso-27001-2022-A.5.19"
|
|
1031
|
+
]
|
|
1032
|
+
},
|
|
1033
|
+
{
|
|
1034
|
+
"evidence_type": "scan_report",
|
|
1035
|
+
"description": "Downgrade-detection control conformance test: synthetic classical-handshake against every hybrid-configured asset; expected alert generated.",
|
|
1036
|
+
"retention_period": "1_year",
|
|
1037
|
+
"framework_satisfied": [
|
|
1038
|
+
"nist-800-53-SC-8",
|
|
1039
|
+
"nist-800-53-SI-4",
|
|
1040
|
+
"iso-27001-2022-A.8.16"
|
|
1041
|
+
]
|
|
1042
|
+
},
|
|
1043
|
+
{
|
|
1044
|
+
"evidence_type": "scan_report",
|
|
1045
|
+
"description": "Regulator-deadline tracker snapshot showing per-jurisdiction binding deadlines + last_reviewed dates within publication cadence.",
|
|
1046
|
+
"retention_period": "audit_cycle",
|
|
1047
|
+
"framework_satisfied": [
|
|
1048
|
+
"us-omb-m-23-02",
|
|
1049
|
+
"us-cnsa-2-0",
|
|
1050
|
+
"bsi-tr-02102",
|
|
1051
|
+
"acsc-ism-1546"
|
|
1052
|
+
]
|
|
1053
|
+
},
|
|
1054
|
+
{
|
|
1055
|
+
"evidence_type": "attestation",
|
|
1056
|
+
"description": "Embedded-product migration plan filings (firmware update channel + ship date OR end-of-life + customer-migration plan) for every operator-shipped product in EU CRA scope.",
|
|
1057
|
+
"retention_period": "7_years",
|
|
1058
|
+
"framework_satisfied": [
|
|
1059
|
+
"eu-cra-annex-i",
|
|
1060
|
+
"eu-cra-art-13"
|
|
1061
|
+
]
|
|
1062
|
+
}
|
|
1063
|
+
],
|
|
1064
|
+
"regression_trigger": [
|
|
1065
|
+
{
|
|
1066
|
+
"condition": "new_FIPS_PQC_standard_published",
|
|
1067
|
+
"interval": "on_event"
|
|
1068
|
+
},
|
|
1069
|
+
{
|
|
1070
|
+
"condition": "NIST_IR_8547_amendment",
|
|
1071
|
+
"interval": "on_event"
|
|
1072
|
+
},
|
|
1073
|
+
{
|
|
1074
|
+
"condition": "CNSA_2_0_milestone_published",
|
|
1075
|
+
"interval": "on_event"
|
|
1076
|
+
},
|
|
1077
|
+
{
|
|
1078
|
+
"condition": "vendor_pqc_firmware_release_for_inventoried_appliance",
|
|
1079
|
+
"interval": "on_event"
|
|
1080
|
+
},
|
|
1081
|
+
{
|
|
1082
|
+
"condition": "new_CRQC_estimate_published_in_peer_reviewed_literature",
|
|
1083
|
+
"interval": "on_event"
|
|
1084
|
+
},
|
|
1085
|
+
{
|
|
1086
|
+
"condition": "annual_register_submission_cycle",
|
|
1087
|
+
"interval": "365d"
|
|
1088
|
+
},
|
|
1089
|
+
{
|
|
1090
|
+
"condition": "quarterly_programme_review",
|
|
1091
|
+
"interval": "90d"
|
|
1092
|
+
}
|
|
1093
|
+
]
|
|
1094
|
+
},
|
|
1095
|
+
"close": {
|
|
1096
|
+
"evidence_package": {
|
|
1097
|
+
"bundle_format": "csaf-2.0",
|
|
1098
|
+
"contents": [
|
|
1099
|
+
"cryptographic_asset_register",
|
|
1100
|
+
"vendor_sla_pack",
|
|
1101
|
+
"downgrade_detection_conformance_report",
|
|
1102
|
+
"regulator_deadline_tracker_snapshot",
|
|
1103
|
+
"embedded_product_migration_plan_filings",
|
|
1104
|
+
"framework_gap_mapping",
|
|
1105
|
+
"compliance_theater_verdict",
|
|
1106
|
+
"residual_risk_statement",
|
|
1107
|
+
"attestation"
|
|
1108
|
+
],
|
|
1109
|
+
"destination": "local_only",
|
|
1110
|
+
"signed": true
|
|
1111
|
+
},
|
|
1112
|
+
"learning_loop": {
|
|
1113
|
+
"enabled": true,
|
|
1114
|
+
"lesson_template": {
|
|
1115
|
+
"attack_vector": "Harvest-now-decrypt-later at the programme level: operator has no per-asset register, no per-asset migration target, no vendor SLA, no downgrade detection, no regulator-deadline orchestration. Adversary records classical-encrypted traffic against operator's whole estate today; CRQC-day decryption recovers data across the full retention horizon.",
|
|
1116
|
+
"control_gap": "Frameworks treat PQC migration as policy + algorithm selection rather than as a per-asset migration programme. None require per-asset register + sunset dates + vendor SLAs + downgrade detection as a binding control set.",
|
|
1117
|
+
"framework_gap": "NIST SC-12/SC-13, ISO A.8.24/A.8.25, PCI 3.6/4.2.1, NIS2 Art.21(2)(h), DORA Art.9, EU CRA Annex I, UK CAF B3, AU ISM-0457/1546, SG MAS TRM §11.1, HIPAA §164.312(a)(2)(iv) all permit classical-only posture as compliant. Federal cycle (CNSA 2.0, OMB M-23-02, NIST SP 800-227, NIST IR 8547) further along but commercial framework cadence ~365 days behind operational PQC readiness.",
|
|
1118
|
+
"new_control_requirement": "Add a 'cryptographic migration programme' sub-control across the eleven framework controls listed above requiring: (a) per-asset cryptographic register with mandatory fields, (b) per-vendor SLA naming PQC delivery date, (c) per-asset classical sunset date preceding retention horizon, (d) downgrade-detection control on every hybrid-configured asset, (e) per-jurisdiction regulator-deadline tracker refreshed at publication cadence, (f) annual programme review against published CRQC estimates and FIPS PQC standard amendments."
|
|
1119
|
+
},
|
|
1120
|
+
"feeds_back_to_skills": [
|
|
1121
|
+
"pqc-first",
|
|
1122
|
+
"framework-gap-analysis",
|
|
1123
|
+
"compliance-theater",
|
|
1124
|
+
"global-grc",
|
|
1125
|
+
"security-maturity-tiers",
|
|
1126
|
+
"zeroday-gap-learn"
|
|
1127
|
+
]
|
|
1128
|
+
},
|
|
1129
|
+
"notification_actions": [
|
|
1130
|
+
{
|
|
1131
|
+
"obligation_ref": "EU/NIS2 Art.21(2)(h) 720h",
|
|
1132
|
+
"deadline": "computed_at_runtime",
|
|
1133
|
+
"recipient": "internal_legal",
|
|
1134
|
+
"evidence_attached": [
|
|
1135
|
+
"per_asset_cryptographic_inventory",
|
|
1136
|
+
"pqc_migration_plan_with_per_asset_target_dates",
|
|
1137
|
+
"classical_algorithm_sunset_register"
|
|
1138
|
+
],
|
|
1139
|
+
"draft_notification": "NIS2 Art.21(2)(h) cryptographic-inventory submission: ${entity_name} (essential entity, jurisdiction ${member_state}) maintains a per-asset cryptographic register dated ${register_snapshot_date}. In-scope assets: ${in_scope_asset_count}. Assets currently protected by hybrid PQC: ${hybrid_pqc_count}. Assets with documented classical sunset dates: ${classical_with_sunset_count}. Assets requiring policy exception: ${exception_count}. Per-vendor SLA coverage: ${vendor_sla_coverage_pct}%. Next register submission cycle: ${next_submission_date}."
|
|
1140
|
+
},
|
|
1141
|
+
{
|
|
1142
|
+
"obligation_ref": "EU/DORA Art.9 720h",
|
|
1143
|
+
"deadline": "computed_at_runtime",
|
|
1144
|
+
"recipient": "internal_legal",
|
|
1145
|
+
"evidence_attached": [
|
|
1146
|
+
"financial_records_retention_horizon_matrix",
|
|
1147
|
+
"per_asset_pqc_migration_status",
|
|
1148
|
+
"third_party_provider_pqc_roadmap_attestation"
|
|
1149
|
+
],
|
|
1150
|
+
"draft_notification": "DORA Art.9 cryptographic-resilience submission: ${financial_entity_name} attests cryptographic resilience per Art.9. Financial-records retention horizon: ${retention_horizon_summary}. Per-asset PQC migration status: ${pqc_migration_summary}. Third-party-provider PQC roadmap coverage: ${tpp_pqc_coverage_pct}%. Compensating-control posture for unmigrated assets: ${compensating_controls_summary}. Programme review cadence: ${review_cadence}."
|
|
1151
|
+
},
|
|
1152
|
+
{
|
|
1153
|
+
"obligation_ref": "EU/EU CRA Annex I 8760h",
|
|
1154
|
+
"deadline": "computed_at_runtime",
|
|
1155
|
+
"recipient": "internal_legal",
|
|
1156
|
+
"evidence_attached": [
|
|
1157
|
+
"product_cryptographic_inventory",
|
|
1158
|
+
"pqc_migration_plan_for_products_with_operational_life_gt_5y",
|
|
1159
|
+
"classical_algorithm_sunset_register_per_product"
|
|
1160
|
+
],
|
|
1161
|
+
"draft_notification": "EU CRA Annex I state-of-the-art cryptography evidence: ${manufacturer_name} attests that all in-scope products with operational life > 5 years are tracked in the product cryptographic inventory with PQC migration milestones. Affected product count: ${affected_product_count}. Products shipping hybrid PQC by default: ${hybrid_default_count}. Products with documented end-of-life migration: ${eol_migration_count}. Customer notification status: ${customer_notification_status}."
|
|
1162
|
+
},
|
|
1163
|
+
{
|
|
1164
|
+
"obligation_ref": "US-Federal/OMB M-23-02 + NSM-10 8760h",
|
|
1165
|
+
"deadline": "computed_at_runtime",
|
|
1166
|
+
"recipient": "internal_legal",
|
|
1167
|
+
"evidence_attached": [
|
|
1168
|
+
"federal_pqc_inventory",
|
|
1169
|
+
"annual_migration_progress_report",
|
|
1170
|
+
"high_value_asset_pqc_migration_prioritisation"
|
|
1171
|
+
],
|
|
1172
|
+
"draft_notification": "OMB M-23-02 annual PQC migration inventory: ${federal_entity} reports ${total_assets} cryptographic assets inventoried, ${hybrid_pqc_count} migrated to PQC, ${high_value_assets_migrated} of ${high_value_assets_total} HVAs migrated. Per CNSA 2.0 binding deadline of 2030, current trajectory: ${on_track_or_off_track}. Programme owner: ${programme_owner}."
|
|
1173
|
+
},
|
|
1174
|
+
{
|
|
1175
|
+
"obligation_ref": "US-Federal/CNSA 2.0 (NSS systems) 35040h",
|
|
1176
|
+
"deadline": "computed_at_runtime",
|
|
1177
|
+
"recipient": "internal_legal",
|
|
1178
|
+
"evidence_attached": [
|
|
1179
|
+
"nss_pqc_completion_attestation",
|
|
1180
|
+
"exception_register_for_unmigrated_assets"
|
|
1181
|
+
],
|
|
1182
|
+
"draft_notification": "CNSA 2.0 NSS PQC migration attestation: ${nss_entity} attests PQC migration status for NSS systems. Systems migrated: ${nss_migrated_count}. Systems on documented exception register: ${nss_exception_count}. Remediation milestones for unmigrated systems: ${remediation_milestones}."
|
|
1183
|
+
},
|
|
1184
|
+
{
|
|
1185
|
+
"obligation_ref": "AU/ACSC ISM-1546 / ISM-0457 8760h",
|
|
1186
|
+
"deadline": "computed_at_runtime",
|
|
1187
|
+
"recipient": "internal_legal",
|
|
1188
|
+
"evidence_attached": [
|
|
1189
|
+
"approved_algorithm_register",
|
|
1190
|
+
"transition_plan_for_non_approved_algorithms"
|
|
1191
|
+
],
|
|
1192
|
+
"draft_notification": "ACSC ISM approved-algorithm attestation: ${au_entity} attests per-asset alignment with ISM-0457 approved-algorithm list and ISM-1546 transition guidance. Assets on approved-algorithm list: ${approved_count}. Assets with documented transition plan: ${transition_plan_count}. Quarterly review cycle: ${quarterly_cycle_date}."
|
|
1193
|
+
},
|
|
1194
|
+
{
|
|
1195
|
+
"obligation_ref": "DE/BSI TR-02102 (German Federal Office for Information Security) 8760h",
|
|
1196
|
+
"deadline": "computed_at_runtime",
|
|
1197
|
+
"recipient": "internal_legal",
|
|
1198
|
+
"evidence_attached": [
|
|
1199
|
+
"per_asset_alignment_with_tr_02102_recommendations",
|
|
1200
|
+
"deviation_register_with_justification"
|
|
1201
|
+
],
|
|
1202
|
+
"draft_notification": "BSI TR-02102 alignment evidence: ${de_entity} attests per-asset alignment with the current TR-02102 recommendations. Aligned assets: ${aligned_count}. Documented deviations with justification: ${deviation_count}. Next TR-02102 publication cycle review: ${next_review_date}."
|
|
1203
|
+
}
|
|
1204
|
+
],
|
|
1205
|
+
"exception_generation": {
|
|
1206
|
+
"trigger_condition": "remediation_blocked == true OR vendor_patch_pending == true OR architectural_impossibility == true",
|
|
1207
|
+
"exception_template": {
|
|
1208
|
+
"scope": "Asset(s) ${asset_list} cannot reach hybrid PQC posture within this migration cycle. Blocking factors: ${blocking_factors} (e.g. legacy HSM firmware lacking PQC, vendor SaaS without PQC commitment, embedded device end-of-life firmware, downstream interop dependencies).",
|
|
1209
|
+
"duration": "until_vendor_pqc_or_180d",
|
|
1210
|
+
"compensating_controls": [
|
|
1211
|
+
"network_segmentation_isolating_classical_only_handshake_from_long_retention_data_flows",
|
|
1212
|
+
"vpn_pqc_tunnel_overlay_for_traffic_to_or_from_affected_assets",
|
|
1213
|
+
"shortened_retention_policy_for_data_protected_only_by_classical_crypto",
|
|
1214
|
+
"downgrade_detection_monitoring_alerting_on_unexpected_classical_negotiation",
|
|
1215
|
+
"annual_crypto_agility_review",
|
|
1216
|
+
"vendor_pqc_roadmap_tracking_with_alternative_vendor_plan"
|
|
1217
|
+
],
|
|
1218
|
+
"risk_acceptance_owner": "ciso",
|
|
1219
|
+
"auditor_ready_language": "Pursuant to ${framework_id} ${control_id} (Cryptographic Protection / Use of Cryptography / Cryptographic Resilience / Essential Cybersecurity Requirements), the organisation documents a time-bound risk acceptance for asset(s) ${asset_list} that cannot reach hybrid post-quantum cryptography posture within the current migration cycle. The accepted risk class is harvest-now-decrypt-later (HNDL): adversaries with traffic-recording capability today may decrypt recorded handshakes and protected data on the cryptographically-relevant quantum computer (CRQC) date, currently estimated at 2030-2035 per aggressive academic cryptanalysis and 2035-2040 per conservative industry assessment. The organisation accepts that current framework controls define 'strong cryptography' against a classical threat model and do not require PQC for the affected asset(s). Documented gap reference: ${exceptd_framework_gap_mapping_ref}. Compensating controls in place during the exception window: ${compensating_controls}. Crypto-agility roadmap: ${crypto_agility_roadmap}. Vendor SLA status: ${vendor_sla_status}. Alternative-vendor plan: ${alternative_vendor_plan}. Risk accepted by ${ciso_name} on ${acceptance_date}. Time-bound until ${duration_expiry} (vendor PQC firmware publication, sensitivity-horizon expiry of protected data, alternative-vendor migration complete, OR ${default_180d_expiry}, whichever is first). Re-evaluation triggers: vendor publishes PQC support, NIST issues PQC amendment to 800-53, new CRQC estimate published in peer-reviewed cryptanalysis literature, OR scheduled expiry."
|
|
1220
|
+
}
|
|
1221
|
+
},
|
|
1222
|
+
"regression_schedule": {
|
|
1223
|
+
"next_run": "computed_at_runtime",
|
|
1224
|
+
"trigger": "both",
|
|
1225
|
+
"notify_on_skip": true
|
|
1226
|
+
}
|
|
1227
|
+
}
|
|
1228
|
+
},
|
|
1229
|
+
"directives": [
|
|
1230
|
+
{
|
|
1231
|
+
"id": "full-programme-audit",
|
|
1232
|
+
"title": "Full PQC migration programme audit — per-asset register + vendor SLAs + downgrade detection + regulator deadlines",
|
|
1233
|
+
"applies_to": {
|
|
1234
|
+
"always": true
|
|
1235
|
+
}
|
|
1236
|
+
},
|
|
1237
|
+
{
|
|
1238
|
+
"id": "hndl-exposure-window-analysis",
|
|
1239
|
+
"title": "HNDL exposure-window analysis across operator estate (T1040 / T1557)",
|
|
1240
|
+
"applies_to": {
|
|
1241
|
+
"attack_technique": "T1040"
|
|
1242
|
+
}
|
|
1243
|
+
},
|
|
1244
|
+
{
|
|
1245
|
+
"id": "cnsa-2-0-nss-readiness",
|
|
1246
|
+
"title": "CNSA 2.0 NSS migration readiness check",
|
|
1247
|
+
"applies_to": {
|
|
1248
|
+
"always": true
|
|
1249
|
+
},
|
|
1250
|
+
"phase_overrides": {
|
|
1251
|
+
"direct": {
|
|
1252
|
+
"rwep_threshold": {
|
|
1253
|
+
"escalate": 80,
|
|
1254
|
+
"monitor": 55,
|
|
1255
|
+
"close": 25
|
|
1256
|
+
}
|
|
1257
|
+
}
|
|
1258
|
+
}
|
|
1259
|
+
},
|
|
1260
|
+
{
|
|
1261
|
+
"id": "eu-cra-annex-i-readiness",
|
|
1262
|
+
"title": "EU CRA Annex I product-cryptography readiness check for manufacturers",
|
|
1263
|
+
"applies_to": {
|
|
1264
|
+
"always": true
|
|
1265
|
+
}
|
|
1266
|
+
}
|
|
1267
|
+
]
|
|
1268
|
+
}
|