@marinjursic/prc-linux-arm64 0.1.0
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/LICENSE +21 -0
- package/README.md +3 -0
- package/bin/LICENSE +21 -0
- package/bin/README.md +335 -0
- package/bin/THIRD_PARTY_NOTICES.md +74 -0
- package/bin/adapters/checkov-v3.3.8.yaml +50 -0
- package/bin/adapters/gitleaks-v8.30.0.yaml +63 -0
- package/bin/adapters/grype-v0.116.1.yaml +58 -0
- package/bin/adapters/syft-v1.51.0.yaml +54 -0
- package/bin/catalog/assertions/core-repository.yaml +625 -0
- package/bin/catalog/assertions/iac.yaml +24 -0
- package/bin/catalog/assertions/supply-chain.yaml +45 -0
- package/bin/catalog/control-contracts.json +1 -0
- package/bin/catalog/control-id-registry.json +110470 -0
- package/bin/catalog/objectives/core-repository.yaml +243 -0
- package/bin/catalog/objectives/iac.yaml +13 -0
- package/bin/catalog/objectives/supply-chain.yaml +13 -0
- package/bin/catalog/profiles/api.yaml +12 -0
- package/bin/catalog/profiles/core-repository.yaml +49 -0
- package/bin/catalog/profiles/iac.yaml +18 -0
- package/bin/catalog/profiles/kubernetes.yaml +15 -0
- package/bin/catalog/profiles/quick.yaml +27 -0
- package/bin/catalog/profiles/supply-chain.yaml +20 -0
- package/bin/docs/architecture/adapters.md +380 -0
- package/bin/docs/architecture/agent-providers.md +188 -0
- package/bin/docs/architecture/applicability.md +80 -0
- package/bin/docs/architecture/catalog-integrity.md +85 -0
- package/bin/docs/architecture/evidence-and-results.md +154 -0
- package/bin/docs/architecture/execution-plans.md +61 -0
- package/bin/docs/architecture/product-contract.md +76 -0
- package/bin/docs/architecture/publisher-trust.md +68 -0
- package/bin/docs/architecture/remediation-contract.md +113 -0
- package/bin/docs/architecture/trust-model.md +95 -0
- package/bin/docs/assets/hero.svg +37 -0
- package/bin/docs/assets/logo.svg +13 -0
- package/bin/docs/assets/production-readiness-scan-demo-poster.png +0 -0
- package/bin/docs/assets/production-readiness-scan-demo.gif +0 -0
- package/bin/docs/assets/production-readiness-scan-demo.mp4 +0 -0
- package/bin/docs/assets/social-card.png +0 -0
- package/bin/docs/assets/social-card.svg +40 -0
- package/bin/docs/checklists/00-readiness-principle.md +17 -0
- package/bin/docs/checklists/01-release-foundations.md +91 -0
- package/bin/docs/checklists/02-product-risk-architecture.md +136 -0
- package/bin/docs/checklists/03-source-build-supply-chain.md +97 -0
- package/bin/docs/checklists/04-environments-quality-experience.md +226 -0
- package/bin/docs/checklists/05-application-security.md +320 -0
- package/bin/docs/checklists/06-data-privacy-performance.md +166 -0
- package/bin/docs/checklists/07-reliability-operations.md +355 -0
- package/bin/docs/checklists/08-maintenance-vendors-compliance.md +112 -0
- package/bin/docs/checklists/09-conditional-modules.md +229 -0
- package/bin/docs/checklists/10-evidence-and-decision.md +111 -0
- package/bin/docs/engineering/00-overview.md +51 -0
- package/bin/docs/engineering/01-governance-and-foundations.md +919 -0
- package/bin/docs/engineering/02-product-and-requirements.md +186 -0
- package/bin/docs/engineering/03-user-experience-web-and-content.md +1352 -0
- package/bin/docs/engineering/04-architecture-and-design.md +387 -0
- package/bin/docs/engineering/05-code-quality-and-implementation.md +1103 -0
- package/bin/docs/engineering/06-application-services-and-apis.md +476 -0
- package/bin/docs/engineering/07-data-and-information-lifecycle.md +1009 -0
- package/bin/docs/engineering/08-security-and-cryptography.md +1215 -0
- package/bin/docs/engineering/09-privacy-and-data-protection.md +205 -0
- package/bin/docs/engineering/10-verification-and-testing.md +841 -0
- package/bin/docs/engineering/11-developer-experience-platform-and-delivery.md +1013 -0
- package/bin/docs/engineering/12-operations-sre-and-support.md +795 -0
- package/bin/docs/engineering/13-documentation-and-knowledge.md +349 -0
- package/bin/docs/engineering/14-trust-safety-and-ecosystems.md +330 -0
- package/bin/docs/engineering/15-ai-ml-and-ai-assisted-development.md +785 -0
- package/bin/docs/engineering/16-specialized-domains-and-release-assurance.md +775 -0
- package/bin/docs/engineering/source-manifest.md +479 -0
- package/bin/docs/guides/ai-assisted-review.md +61 -0
- package/bin/docs/guides/getting-started.md +78 -0
- package/bin/docs/index.md +66 -0
- package/bin/docs/prompts/evidence-challenge.md +26 -0
- package/bin/docs/prompts/full-readiness-review.md +34 -0
- package/bin/docs/prompts/release-diff-review.md +31 -0
- package/bin/docs/records/evidence-record.md +42 -0
- package/bin/docs/records/go-no-go-decision.md +63 -0
- package/bin/docs/records/release-assessment.md +124 -0
- package/bin/docs/records/risk-exception.md +64 -0
- package/bin/docs/references.md +52 -0
- package/bin/docs/scanner/ai-control-review.md +208 -0
- package/bin/docs/scanner/benchmarks.md +122 -0
- package/bin/docs/scanner/cli-contract.md +130 -0
- package/bin/docs/scanner/configuration.md +101 -0
- package/bin/docs/scanner/control-contracts.md +47 -0
- package/bin/docs/scanner/core-repository.md +62 -0
- package/bin/docs/scanner/diff-and-invalidation.md +79 -0
- package/bin/docs/scanner/doctor.md +71 -0
- package/bin/docs/scanner/getting-started.md +355 -0
- package/bin/docs/scanner/go-http-timeouts.md +96 -0
- package/bin/docs/scanner/infrastructure-policy.md +64 -0
- package/bin/docs/scanner/kubernetes-workloads.md +63 -0
- package/bin/docs/scanner/mcp-agent-integration.md +138 -0
- package/bin/docs/scanner/openapi-contracts.md +75 -0
- package/bin/docs/scanner/private-key-armor.md +44 -0
- package/bin/docs/scanner/releases.md +160 -0
- package/bin/docs/scanner/remediation.md +273 -0
- package/bin/docs/scanner/risk-exceptions.md +52 -0
- package/bin/docs/scanner/security-walkthrough.md +236 -0
- package/bin/docs/scanner/state-and-history.md +113 -0
- package/bin/docs/scanner/supply-chain.md +132 -0
- package/bin/docs/scanner/test-discovery.md +60 -0
- package/bin/docs/stylesheets/extra.css +183 -0
- package/bin/fixtures/benchmarks/core-native/suite-comprehensive.yaml +302 -0
- package/bin/fixtures/benchmarks/core-native/suite.yaml +59 -0
- package/bin/fixtures/benchmarks/core-native/targets/baseline/README.md +3 -0
- package/bin/fixtures/benchmarks/core-native/targets/baseline/app.go +1 -0
- package/bin/fixtures/benchmarks/core-native/targets/conflict-template/app.js +5 -0
- package/bin/fixtures/benchmarks/core-native/targets/container-risky-template/Dockerfile +2 -0
- package/bin/fixtures/benchmarks/core-native/targets/container-valid/Dockerfile +2 -0
- package/bin/fixtures/benchmarks/core-native/targets/dependency-lock-missing/package.json +5 -0
- package/bin/fixtures/benchmarks/core-native/targets/dependency-lock-present/package-lock.json +6 -0
- package/bin/fixtures/benchmarks/core-native/targets/dependency-lock-present/package.json +5 -0
- package/bin/fixtures/benchmarks/core-native/targets/empty-manifest-template/package.json +1 -0
- package/bin/fixtures/benchmarks/core-native/targets/final-newline-template/app.py +1 -0
- package/bin/fixtures/benchmarks/core-native/targets/foundation-present/.github/CODEOWNERS +1 -0
- package/bin/fixtures/benchmarks/core-native/targets/foundation-present/.github/dependabot.yml +6 -0
- package/bin/fixtures/benchmarks/core-native/targets/foundation-present/.github/workflows/validate.yml +15 -0
- package/bin/fixtures/benchmarks/core-native/targets/foundation-present/CODE_OF_CONDUCT.md +3 -0
- package/bin/fixtures/benchmarks/core-native/targets/foundation-present/CONTRIBUTING.md +3 -0
- package/bin/fixtures/benchmarks/core-native/targets/foundation-present/LICENSE +1 -0
- package/bin/fixtures/benchmarks/core-native/targets/foundation-present/README.md +3 -0
- package/bin/fixtures/benchmarks/core-native/targets/foundation-present/SECURITY.md +3 -0
- package/bin/fixtures/benchmarks/core-native/targets/foundation-present/package-lock.json +6 -0
- package/bin/fixtures/benchmarks/core-native/targets/foundation-present/package.json +7 -0
- package/bin/fixtures/benchmarks/core-native/targets/foundation-present/tests/example.test.js +3 -0
- package/bin/fixtures/benchmarks/core-native/targets/go-http-server-timeout-risky-template/go.mod +3 -0
- package/bin/fixtures/benchmarks/core-native/targets/go-http-server-timeout-risky-template/server.go +18 -0
- package/bin/fixtures/benchmarks/core-native/targets/go-http-timeout-malformed-template/client.go +3 -0
- package/bin/fixtures/benchmarks/core-native/targets/go-http-timeout-malformed-template/go.mod +3 -0
- package/bin/fixtures/benchmarks/core-native/targets/go-http-timeout-risky-template/client.go +7 -0
- package/bin/fixtures/benchmarks/core-native/targets/go-http-timeout-risky-template/go.mod +3 -0
- package/bin/fixtures/benchmarks/core-native/targets/go-http-timeout-safe/client.go +22 -0
- package/bin/fixtures/benchmarks/core-native/targets/go-http-timeout-safe/go.mod +3 -0
- package/bin/fixtures/benchmarks/core-native/targets/go-http-timeout-safe/hazards_test.go +8 -0
- package/bin/fixtures/benchmarks/core-native/targets/kubernetes-risky-template/deployment.yaml +27 -0
- package/bin/fixtures/benchmarks/core-native/targets/kubernetes-valid/deployment.yaml +26 -0
- package/bin/fixtures/benchmarks/core-native/targets/openapi-operation-ids-risky-template/openapi.yaml +17 -0
- package/bin/fixtures/benchmarks/core-native/targets/openapi-operation-responses-risky-template/openapi.yaml +11 -0
- package/bin/fixtures/benchmarks/core-native/targets/openapi-root-malformed-template/openapi.yaml +5 -0
- package/bin/fixtures/benchmarks/core-native/targets/openapi-root-risky-template/openapi.yaml +5 -0
- package/bin/fixtures/benchmarks/core-native/targets/openapi-root-valid/openapi.yaml +17 -0
- package/bin/fixtures/benchmarks/core-native/targets/package-test-command/app.js +3 -0
- package/bin/fixtures/benchmarks/core-native/targets/package-test-command/package.json +7 -0
- package/bin/fixtures/benchmarks/core-native/targets/package-test-placeholder/app.js +3 -0
- package/bin/fixtures/benchmarks/core-native/targets/package-test-placeholder/package.json +7 -0
- package/bin/fixtures/benchmarks/core-native/targets/private-key-template/deploy.pem +3 -0
- package/bin/fixtures/benchmarks/core-native/targets/readme-missing/fixture.txt +1 -0
- package/bin/fixtures/benchmarks/core-native/targets/runtime-missing/package-lock.json +6 -0
- package/bin/fixtures/benchmarks/core-native/targets/runtime-missing/package.json +4 -0
- package/bin/fixtures/benchmarks/core-native/targets/terraform-locked/.terraform.lock.hcl +3 -0
- package/bin/fixtures/benchmarks/core-native/targets/terraform-locked/main.tf +7 -0
- package/bin/fixtures/benchmarks/core-native/targets/terraform-unlocked-template/.terraform.lock.hcl +3 -0
- package/bin/fixtures/benchmarks/core-native/targets/terraform-unlocked-template/main.tf +7 -0
- package/bin/fixtures/benchmarks/core-native/targets/test-declaration-valid/app.py +2 -0
- package/bin/fixtures/benchmarks/core-native/targets/test-declaration-valid/tests/test_app.py +5 -0
- package/bin/fixtures/benchmarks/core-native/targets/test-path-without-declaration/app.py +2 -0
- package/bin/fixtures/benchmarks/core-native/targets/test-path-without-declaration/tests/test_app.py +1 -0
- package/bin/fixtures/benchmarks/core-native/targets/workflow-malformed/.github/workflows/validate.yml +1 -0
- package/bin/fixtures/benchmarks/core-native/targets/workflow-no-jobs/.github/workflows/empty.yml +9 -0
- package/bin/fixtures/benchmarks/core-native/targets/workflow-risky/.github/workflows/risky.yml +10 -0
- package/bin/fixtures/benchmarks/core-native/targets/workflow-valid/.github/workflows/validate.yml +14 -0
- package/bin/packs/core-foundation.yaml +25 -0
- package/bin/packs/core-native.yaml +59 -0
- package/bin/prc +0 -0
- package/bin/schemas/adapter-execution-v0.1.schema.json +101 -0
- package/bin/schemas/adapter-execution-v0.2.schema.json +128 -0
- package/bin/schemas/adapter-execution.schema.json +145 -0
- package/bin/schemas/adapter-fixture-report.schema.json +59 -0
- package/bin/schemas/adapter-fixture-suite.schema.json +104 -0
- package/bin/schemas/adapter-manifest-v0.1.schema.json +55 -0
- package/bin/schemas/adapter-manifest-v0.2.schema.json +122 -0
- package/bin/schemas/adapter-manifest-v0.3.schema.json +172 -0
- package/bin/schemas/adapter-manifest.schema.json +299 -0
- package/bin/schemas/adapter-message.schema.json +136 -0
- package/bin/schemas/adapter-registry-report.schema.json +13 -0
- package/bin/schemas/adapter-registry.schema.json +47 -0
- package/bin/schemas/agent-execution-v0.1.schema.json +26 -0
- package/bin/schemas/agent-execution.schema.json +26 -0
- package/bin/schemas/agent-failure-v0.1.schema.json +102 -0
- package/bin/schemas/agent-failure.schema.json +102 -0
- package/bin/schemas/agent-output-v0.1.schema.json +36 -0
- package/bin/schemas/agent-output.schema.json +36 -0
- package/bin/schemas/agent-task-v0.1.schema.json +44 -0
- package/bin/schemas/agent-task.schema.json +46 -0
- package/bin/schemas/assertion-catalog.schema.json +69 -0
- package/bin/schemas/benchmark-report.schema.json +94 -0
- package/bin/schemas/benchmark-suite.schema.json +116 -0
- package/bin/schemas/catalog-bundle.schema.json +27 -0
- package/bin/schemas/catalog-manifest.schema.json +23 -0
- package/bin/schemas/checkov-iac-policy-report.schema.json +82 -0
- package/bin/schemas/control-contracts.schema.json +44 -0
- package/bin/schemas/control-review-output.schema.json +51 -0
- package/bin/schemas/doctor.schema.json +53 -0
- package/bin/schemas/evidence-v0.1.schema.json +21 -0
- package/bin/schemas/evidence.schema.json +21 -0
- package/bin/schemas/finding-v0.1.schema.json +70 -0
- package/bin/schemas/finding.schema.json +70 -0
- package/bin/schemas/fix-contract-v0.1.schema.json +35 -0
- package/bin/schemas/fix-contract-v0.2.schema.json +46 -0
- package/bin/schemas/fix-contract-v0.3.schema.json +49 -0
- package/bin/schemas/fix-contract.schema.json +49 -0
- package/bin/schemas/grype-vulnerability-report.schema.json +88 -0
- package/bin/schemas/history.schema.json +37 -0
- package/bin/schemas/invalidation.schema.json +86 -0
- package/bin/schemas/inventory-v0.1.schema.json +42 -0
- package/bin/schemas/inventory-v0.2.schema.json +95 -0
- package/bin/schemas/inventory-v0.3.schema.json +139 -0
- package/bin/schemas/inventory.schema.json +139 -0
- package/bin/schemas/objective-catalog.schema.json +62 -0
- package/bin/schemas/pack-report.schema.json +16 -0
- package/bin/schemas/pack.schema.json +53 -0
- package/bin/schemas/plan-v0.1.schema.json +31 -0
- package/bin/schemas/plan-v0.2.schema.json +32 -0
- package/bin/schemas/plan-v0.3.schema.json +44 -0
- package/bin/schemas/plan-v0.4.schema.json +48 -0
- package/bin/schemas/plan-v0.5.schema.json +49 -0
- package/bin/schemas/plan-v0.6.schema.json +137 -0
- package/bin/schemas/plan.schema.json +137 -0
- package/bin/schemas/profile.schema.json +42 -0
- package/bin/schemas/project-config.schema.json +128 -0
- package/bin/schemas/release-manifest-v0.1.schema.json +86 -0
- package/bin/schemas/release-manifest-v0.2.schema.json +146 -0
- package/bin/schemas/release-manifest-v0.3.schema.json +146 -0
- package/bin/schemas/release-manifest.schema.json +6 -0
- package/bin/schemas/remediation-candidate-v0.1.schema.json +51 -0
- package/bin/schemas/remediation-candidate-v0.2.schema.json +51 -0
- package/bin/schemas/remediation-candidate-v0.3.schema.json +51 -0
- package/bin/schemas/remediation-candidate-v0.4.schema.json +69 -0
- package/bin/schemas/remediation-candidate.schema.json +69 -0
- package/bin/schemas/remediation-run-v0.1.schema.json +69 -0
- package/bin/schemas/remediation-run-v0.2.schema.json +78 -0
- package/bin/schemas/remediation-run-v0.3.schema.json +86 -0
- package/bin/schemas/remediation-run-v0.4.schema.json +86 -0
- package/bin/schemas/remediation-run-v0.5.schema.json +131 -0
- package/bin/schemas/remediation-run-v0.6.schema.json +143 -0
- package/bin/schemas/remediation-run-v0.7.schema.json +160 -0
- package/bin/schemas/remediation-run-v0.8.schema.json +161 -0
- package/bin/schemas/remediation-run.schema.json +161 -0
- package/bin/schemas/risk-exception-verification.schema.json +17 -0
- package/bin/schemas/risk-exception.schema.json +137 -0
- package/bin/schemas/run-result-v0.1.schema.json +54 -0
- package/bin/schemas/run-result-v0.10.schema.json +64 -0
- package/bin/schemas/run-result-v0.11.schema.json +146 -0
- package/bin/schemas/run-result-v0.2.schema.json +60 -0
- package/bin/schemas/run-result-v0.3.schema.json +52 -0
- package/bin/schemas/run-result-v0.4.schema.json +52 -0
- package/bin/schemas/run-result-v0.5.schema.json +60 -0
- package/bin/schemas/run-result-v0.6.schema.json +61 -0
- package/bin/schemas/run-result-v0.7.schema.json +61 -0
- package/bin/schemas/run-result-v0.8.schema.json +61 -0
- package/bin/schemas/run-result-v0.9.schema.json +77 -0
- package/bin/schemas/run-result.schema.json +165 -0
- package/bin/schemas/signature-verification.schema.json +22 -0
- package/bin/schemas/signature.schema.json +18 -0
- package/bin/schemas/state-check-v0.1.schema.json +27 -0
- package/bin/schemas/state-check.schema.json +28 -0
- package/bin/schemas/trust-store.schema.json +50 -0
- package/bin/schemas/verification-execution-v0.1.schema.json +105 -0
- package/bin/schemas/verification-execution.schema.json +105 -0
- package/bin/schemas/version-v0.1.schema.json +27 -0
- package/bin/schemas/version.schema.json +27 -0
- package/manifest.json +9 -0
- package/package.json +28 -0
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
# Environments, quality, and experience
|
|
2
|
+
|
|
3
|
+
> Verify configuration, functional correctness, testing, frontend behavior, and accessibility.
|
|
4
|
+
|
|
5
|
+
Sections 10–14 of the master checklist. For each applicable item, capture status, owner, evidence, release, environment, reviewer, and evidence age.
|
|
6
|
+
|
|
7
|
+
## 10. Environments, configuration, and secrets
|
|
8
|
+
|
|
9
|
+
### 10.1 Environment separation
|
|
10
|
+
|
|
11
|
+
- [ ] **PRC-10-001** — Development, testing, staging, and production are meaningfully separated.
|
|
12
|
+
- [ ] **PRC-10-002** — Production credentials do not work in non-production environments.
|
|
13
|
+
- [ ] **PRC-10-003** — Non-production users cannot reach production control planes.
|
|
14
|
+
- [ ] **PRC-10-004** — Staging is sufficiently production-like to validate topology, integrations, migrations, and deployment behavior.
|
|
15
|
+
- [ ] **PRC-10-005** — Production data is not copied to non-production without authorization and protection.
|
|
16
|
+
- [ ] **PRC-10-006** — Test accounts, bypasses, simulators, and debug endpoints are absent or inaccessible in production.
|
|
17
|
+
- [ ] **PRC-10-007** — Non-production email, payment, notifications, and webhooks cannot accidentally contact real users.
|
|
18
|
+
- [ ] **PRC-10-008** — Environment boundaries are documented and tested.
|
|
19
|
+
- [ ] **PRC-10-009** — Production access is logged and periodically reviewed.
|
|
20
|
+
|
|
21
|
+
### 10.2 Configuration
|
|
22
|
+
|
|
23
|
+
- [ ] **PRC-10-010** — Configuration is version-controlled or otherwise auditable.
|
|
24
|
+
- [ ] **PRC-10-011** — Configuration changes require review and approval.
|
|
25
|
+
- [ ] **PRC-10-012** — Configuration has schema and type validation.
|
|
26
|
+
- [ ] **PRC-10-013** — Missing configuration fails safely rather than activating insecure defaults.
|
|
27
|
+
- [ ] **PRC-10-014** — Secure defaults are used.
|
|
28
|
+
- [ ] **PRC-10-015** — Environment-specific values are explicit.
|
|
29
|
+
- [ ] **PRC-10-016** — Configuration drift is detected.
|
|
30
|
+
- [ ] **PRC-10-017** — Production configuration can be reconstructed.
|
|
31
|
+
- [ ] **PRC-10-018** — Configuration rollback is tested.
|
|
32
|
+
- [ ] **PRC-10-019** — Debug mode, verbose exception output, profiling, test routes, and development consoles are disabled.
|
|
33
|
+
- [ ] **PRC-10-020** — Time zones, locales, character encodings, and units are explicit.
|
|
34
|
+
- [ ] **PRC-10-021** — Time synchronization is monitored.
|
|
35
|
+
- [ ] **PRC-10-022** — Resource limits and timeouts are explicitly configured.
|
|
36
|
+
- [ ] **PRC-10-023** — Production source maps and diagnostic artifacts do not expose secrets or inappropriate internal information.
|
|
37
|
+
- [ ] **PRC-10-024** — Configuration ownership and expiration dates are recorded.
|
|
38
|
+
- [ ] **PRC-10-025** — Emergency configuration changes are captured and reviewed.
|
|
39
|
+
|
|
40
|
+
### 10.3 Feature flags
|
|
41
|
+
|
|
42
|
+
- [ ] **PRC-10-026** — Every flag has an owner.
|
|
43
|
+
- [ ] **PRC-10-027** — Every flag has a documented purpose.
|
|
44
|
+
- [ ] **PRC-10-028** — Default behavior is safe when the flag service fails.
|
|
45
|
+
- [ ] **PRC-10-029** — Flag state is included in release and incident records.
|
|
46
|
+
- [ ] **PRC-10-030** — Access to change high-impact flags is restricted and audited.
|
|
47
|
+
- [ ] **PRC-10-031** — Flag combinations are tested.
|
|
48
|
+
- [ ] **PRC-10-032** — A kill switch exists for high-risk new functionality where appropriate.
|
|
49
|
+
- [ ] **PRC-10-033** — Flag changes can be rolled back quickly.
|
|
50
|
+
- [ ] **PRC-10-034** — Temporary flags have removal dates.
|
|
51
|
+
- [ ] **PRC-10-035** — Stale flags and dead code are removed.
|
|
52
|
+
|
|
53
|
+
### 10.4 Secrets
|
|
54
|
+
|
|
55
|
+
- [ ] **PRC-10-036** — Secrets are stored in an approved secret-management system.
|
|
56
|
+
- [ ] **PRC-10-037** — No secrets exist in source, images, frontend bundles, logs, tickets, documentation, chat history, or analytics.
|
|
57
|
+
- [ ] **PRC-10-038** — Secrets are unique across environments.
|
|
58
|
+
- [ ] **PRC-10-039** — Each workload uses its own scoped identity or credential.
|
|
59
|
+
- [ ] **PRC-10-040** — Credentials follow least privilege.
|
|
60
|
+
- [ ] **PRC-10-041** — Short-lived credentials are preferred where supported.
|
|
61
|
+
- [ ] **PRC-10-042** — Secret retrieval and use are audited.
|
|
62
|
+
- [ ] **PRC-10-043** — Secret rotation has been tested.
|
|
63
|
+
- [ ] **PRC-10-044** — Emergency revocation has been tested.
|
|
64
|
+
- [ ] **PRC-10-045** — Credential expiry and rotation failures are monitored.
|
|
65
|
+
- [ ] **PRC-10-046** — Old credentials are invalidated after rotation.
|
|
66
|
+
- [ ] **PRC-10-047** — Backup and recovery procedures preserve or reconstruct necessary secrets securely.
|
|
67
|
+
- [ ] **PRC-10-048** — Break-glass credentials are protected, monitored, and periodically tested.
|
|
68
|
+
- [ ] **PRC-10-049** — No default or vendor-supplied credentials remain.
|
|
69
|
+
- [ ] **PRC-10-050** — Suspected historical secret exposure has been addressed by rotation, not merely deletion from source.
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## 11. Functional correctness and business logic
|
|
74
|
+
|
|
75
|
+
- [ ] **PRC-11-001** — Every requirement maps to at least one verification activity.
|
|
76
|
+
- [ ] **PRC-11-002** — Every critical user journey passes end to end.
|
|
77
|
+
- [ ] **PRC-11-003** — Positive, negative, boundary, and invalid-input cases pass.
|
|
78
|
+
- [ ] **PRC-11-004** — Empty-state behavior is correct.
|
|
79
|
+
- [ ] **PRC-11-005** — Maximum-size and high-volume behavior is correct.
|
|
80
|
+
- [ ] **PRC-11-006** — Duplicate submissions do not create unintended duplicate effects.
|
|
81
|
+
- [ ] **PRC-11-007** — Refresh, retry, browser navigation, and network interruption do not corrupt state.
|
|
82
|
+
- [ ] **PRC-11-008** — Concurrent requests do not violate business invariants.
|
|
83
|
+
- [ ] **PRC-11-009** — Race conditions have been tested around balances, inventory, permissions, limits, and state transitions.
|
|
84
|
+
- [ ] **PRC-11-010** — State transitions reject invalid orderings.
|
|
85
|
+
- [ ] **PRC-11-011** — Operations that must be idempotent are demonstrably idempotent.
|
|
86
|
+
- [ ] **PRC-11-012** — Partial failures cannot leave an ambiguous or silently inconsistent result.
|
|
87
|
+
- [ ] **PRC-11-013** — Transactions are atomic where required.
|
|
88
|
+
- [ ] **PRC-11-014** — Eventually consistent operations expose correct pending and completion states.
|
|
89
|
+
- [ ] **PRC-11-015** — Reconciliation detects missing, duplicated, or mismatched records.
|
|
90
|
+
- [ ] **PRC-11-016** — Numeric precision and rounding are correct.
|
|
91
|
+
- [ ] **PRC-11-017** — Money calculations use correct decimal, currency, tax, and rounding rules.
|
|
92
|
+
- [ ] **PRC-11-018** — Time calculations handle time zones, daylight-saving changes, leap years, month boundaries, and clock differences.
|
|
93
|
+
- [ ] **PRC-11-019** — Unicode, normalization, collation, and case behavior do not create duplicates or bypasses.
|
|
94
|
+
- [ ] **PRC-11-020** — Limits and quotas are enforced server-side.
|
|
95
|
+
- [ ] **PRC-11-021** — Approval and four-eyes workflows cannot be bypassed.
|
|
96
|
+
- [ ] **PRC-11-022** — Cancellation, refund, reversal, deletion, and undo operations are complete.
|
|
97
|
+
- [ ] **PRC-11-023** — Account suspension and termination affect every relevant session, token, worker, and integration.
|
|
98
|
+
- [ ] **PRC-11-024** — Import and export behavior is complete and validated.
|
|
99
|
+
- [ ] **PRC-11-025** — Long-running operations can resume safely or fail clearly.
|
|
100
|
+
- [ ] **PRC-11-026** — Scheduled jobs handle missed runs, overlapping runs, retries, and duplicate execution.
|
|
101
|
+
- [ ] **PRC-11-027** — Background jobs preserve user, authorization, and tenant context.
|
|
102
|
+
- [ ] **PRC-11-028** — Dead-lettered operations can be inspected and replayed safely.
|
|
103
|
+
- [ ] **PRC-11-029** — Administrative actions produce the intended effect and audit trail.
|
|
104
|
+
- [ ] **PRC-11-030** — Support tools cannot create states impossible through the normal product.
|
|
105
|
+
- [ ] **PRC-11-031** — Failure defaults to the safer state.
|
|
106
|
+
- [ ] **PRC-11-032** — Error messages tell users what they can do next without exposing sensitive details.
|
|
107
|
+
- [ ] **PRC-11-033** — Known limitations are documented accurately.
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## 12. Testing strategy and evidence
|
|
112
|
+
|
|
113
|
+
OWASP ASVS 5.0.0 is the current stable application-security verification standard and provides testable requirements independent of a specific implementation technology. OWASP WSTG and SAMM complement it with testing and program-lifecycle practices. ([owasp.org](https://owasp.org/www-project-application-security-verification-standard/))
|
|
114
|
+
|
|
115
|
+
- [ ] **PRC-12-001** — A documented test strategy exists for the release risk level.
|
|
116
|
+
- [ ] **PRC-12-002** — Tests cover unit, component, integration, contract, system, end-to-end, smoke, and regression levels as appropriate.
|
|
117
|
+
- [ ] **PRC-12-003** — Tests prioritize critical and high-risk behavior rather than relying solely on aggregate coverage.
|
|
118
|
+
- [ ] **PRC-12-004** — Coverage gaps in critical code are explicitly reviewed.
|
|
119
|
+
- [ ] **PRC-12-005** — Test data is representative of real size, shape, encoding, and edge conditions.
|
|
120
|
+
- [ ] **PRC-12-006** — Personal or confidential test data is synthetic, masked, or properly authorized.
|
|
121
|
+
- [ ] **PRC-12-007** — Tests are deterministic enough to act as release gates.
|
|
122
|
+
- [ ] **PRC-12-008** — Flaky gating tests are fixed or formally quarantined with risk review.
|
|
123
|
+
- [ ] **PRC-12-009** — Test failures cannot be dismissed without evidence.
|
|
124
|
+
- [ ] **PRC-12-010** — Tests validate failure and recovery, not only successful operation.
|
|
125
|
+
- [ ] **PRC-12-011** — Contract tests cover internal and external interfaces.
|
|
126
|
+
- [ ] **PRC-12-012** — Compatibility tests cover supported clients and versions.
|
|
127
|
+
- [ ] **PRC-12-013** — Migration, upgrade, mixed-version, downgrade, rollback, and roll-forward scenarios are tested.
|
|
128
|
+
- [ ] **PRC-12-014** — Performance tests cover load, stress, spike, endurance, and capacity limits.
|
|
129
|
+
- [ ] **PRC-12-015** — Resilience tests inject relevant dependency, network, storage, and resource failures.
|
|
130
|
+
- [ ] **PRC-12-016** — Security testing covers source, dependencies, deployed behavior, infrastructure, configuration, and business logic.
|
|
131
|
+
- [ ] **PRC-12-017** — Accessibility testing combines automation with manual keyboard and assistive-technology checks.
|
|
132
|
+
- [ ] **PRC-12-018** — Property-based, fuzz, mutation, model-based, or combinatorial testing is used for high-risk parsers and stateful logic where useful.
|
|
133
|
+
- [ ] **PRC-12-019** — Critical calculations use independent test or reconciliation methods.
|
|
134
|
+
- [ ] **PRC-12-020** — Tests run against production-like topology and configuration.
|
|
135
|
+
- [ ] **PRC-12-021** — Tests verify the actual artifact intended for production.
|
|
136
|
+
- [ ] **PRC-12-022** — Evidence identifies test version, data, environment, build, and result.
|
|
137
|
+
- [ ] **PRC-12-023** — Failed tests are linked to fixes and successful retests.
|
|
138
|
+
- [ ] **PRC-12-024** — Material changes trigger the relevant regression suite.
|
|
139
|
+
- [ ] **PRC-12-025** — Independent user acceptance is complete.
|
|
140
|
+
- [ ] **PRC-12-026** — An independent penetration test is completed where risk, contract, or regulation warrants it.
|
|
141
|
+
- [ ] **PRC-12-027** — Testing limitations and untested conditions are disclosed in the readiness decision.
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## 13. Frontend, usability, and browser behavior
|
|
146
|
+
|
|
147
|
+
- [ ] **PRC-13-001** — A supported browser and device matrix is documented.
|
|
148
|
+
- [ ] **PRC-13-002** — Unsupported clients receive reasonable behavior or a clear message.
|
|
149
|
+
- [ ] **PRC-13-003** — Critical journeys work on every supported browser.
|
|
150
|
+
- [ ] **PRC-13-004** — Layout works at supported viewport sizes.
|
|
151
|
+
- [ ] **PRC-13-005** — Portrait and landscape behavior is correct where relevant.
|
|
152
|
+
- [ ] **PRC-13-006** — Zoom and text enlargement do not hide essential functionality.
|
|
153
|
+
- [ ] **PRC-13-007** — Touch, mouse, keyboard, and assistive input work appropriately.
|
|
154
|
+
- [ ] **PRC-13-008** — Loading, empty, success, warning, error, partial, timeout, and offline states are designed.
|
|
155
|
+
- [ ] **PRC-13-009** — Forms preserve appropriate input after recoverable errors.
|
|
156
|
+
- [ ] **PRC-13-010** — Validation is understandable and points to the affected field.
|
|
157
|
+
- [ ] **PRC-13-011** — Back, forward, refresh, bookmarks, and deep links behave correctly.
|
|
158
|
+
- [ ] **PRC-13-012** — Multiple tabs and windows do not corrupt session or workflow state.
|
|
159
|
+
- [ ] **PRC-13-013** — Client-side caching does not expose another user’s data.
|
|
160
|
+
- [ ] **PRC-13-014** — Browser storage contains no unnecessary sensitive data.
|
|
161
|
+
- [ ] **PRC-13-015** — Logout and account deletion clear appropriate client state.
|
|
162
|
+
- [ ] **PRC-13-016** — Client-side authorization is never treated as the security boundary.
|
|
163
|
+
- [ ] **PRC-13-017** — Client-side execution being unavailable or failing degrades acceptably where required.
|
|
164
|
+
- [ ] **PRC-13-018** — Third-party script failure does not break critical operation unnecessarily.
|
|
165
|
+
- [ ] **PRC-13-019** — No unhandled exceptions or material console errors remain.
|
|
166
|
+
- [ ] **PRC-13-020** — Source maps, diagnostic data, and stack traces are appropriately restricted.
|
|
167
|
+
- [ ] **PRC-13-021** — Error pages do not expose internals.
|
|
168
|
+
- [ ] **PRC-13-022** — Download, print, copy, paste, and upload behaviors work where supported.
|
|
169
|
+
- [ ] **PRC-13-023** — Long text, translated text, unusual names, and bidirectional text are handled.
|
|
170
|
+
- [ ] **PRC-13-024** — Destructive operations require suitable confirmation or reversal.
|
|
171
|
+
- [ ] **PRC-13-025** — Navigation and controls are consistent.
|
|
172
|
+
- [ ] **PRC-13-026** — Users are not trapped in dead ends.
|
|
173
|
+
- [ ] **PRC-13-027** — Session timeout warnings and recovery preserve work where appropriate.
|
|
174
|
+
- [ ] **PRC-13-028** — Autosave behavior is transparent and reliable.
|
|
175
|
+
- [ ] **PRC-13-029** — User feedback is not lost during asynchronous operations.
|
|
176
|
+
- [ ] **PRC-13-030** — Client and server validation produce consistent outcomes.
|
|
177
|
+
- [ ] **PRC-13-031** — Analytics and experimentation code do not alter critical behavior.
|
|
178
|
+
- [ ] **PRC-13-032** — Dark patterns, deceptive defaults, and misleading urgency are absent.
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## 14. Accessibility
|
|
183
|
+
|
|
184
|
+
WCAG 2.2 is a technology-neutral W3C Recommendation. It requires both testable technical conformance and human evaluation; W3C also notes that even the highest conformance level cannot meet every possible user need. A strong general baseline is **WCAG 2.2 Level AA**, with stricter controls where law, contract, or user risk requires them. ([w3.org](https://www.w3.org/TR/WCAG22/))
|
|
185
|
+
|
|
186
|
+
- [ ] **PRC-14-001** — The required WCAG version and conformance level are documented.
|
|
187
|
+
- [ ] **PRC-14-002** — Automated accessibility scans pass within the accepted threshold.
|
|
188
|
+
- [ ] **PRC-14-003** — Critical journeys have been tested manually using only a keyboard.
|
|
189
|
+
- [ ] **PRC-14-004** — No keyboard trap exists.
|
|
190
|
+
- [ ] **PRC-14-005** — Focus order follows a meaningful sequence.
|
|
191
|
+
- [ ] **PRC-14-006** — Focus is visibly indicated.
|
|
192
|
+
- [ ] **PRC-14-007** — Focus is not obscured by sticky headers, dialogs, banners, or overlays.
|
|
193
|
+
- [ ] **PRC-14-008** — Page titles, headings, landmarks, regions, and lists use meaningful semantics.
|
|
194
|
+
- [ ] **PRC-14-009** — Every interactive control has an accessible name, role, state, and value.
|
|
195
|
+
- [ ] **PRC-14-010** — Custom controls expose equivalent semantics and keyboard behavior.
|
|
196
|
+
- [ ] **PRC-14-011** — Images have appropriate alternative text or are correctly marked decorative.
|
|
197
|
+
- [ ] **PRC-14-012** — Audio and video have required captions, transcripts, and descriptions.
|
|
198
|
+
- [ ] **PRC-14-013** — Information is not communicated by color alone.
|
|
199
|
+
- [ ] **PRC-14-014** — Text and meaningful visual elements meet contrast requirements.
|
|
200
|
+
- [ ] **PRC-14-015** — Content reflows and remains usable when zoomed.
|
|
201
|
+
- [ ] **PRC-14-016** — Text spacing changes do not break content.
|
|
202
|
+
- [ ] **PRC-14-017** — Touch and pointer targets are sufficiently usable.
|
|
203
|
+
- [ ] **PRC-14-018** — Dragging has a non-drag alternative where required.
|
|
204
|
+
- [ ] **PRC-14-019** — Motion, animation, autoplay, and flashing are controlled safely.
|
|
205
|
+
- [ ] **PRC-14-020** — “Reduce motion” or equivalent preferences are respected where relevant.
|
|
206
|
+
- [ ] **PRC-14-021** — Forms have explicit labels and understandable instructions.
|
|
207
|
+
- [ ] **PRC-14-022** — Required fields and formats are conveyed accessibly.
|
|
208
|
+
- [ ] **PRC-14-023** — Errors are identified, described, and associated with fields.
|
|
209
|
+
- [ ] **PRC-14-024** — Error summaries and status changes are announced to assistive technologies.
|
|
210
|
+
- [ ] **PRC-14-025** — Authentication does not rely solely on inaccessible puzzles or memory tests.
|
|
211
|
+
- [ ] **PRC-14-026** — Time limits can be extended or disabled where required.
|
|
212
|
+
- [ ] **PRC-14-027** — Repeated entry of the same information is minimized.
|
|
213
|
+
- [ ] **PRC-14-028** — Help is located consistently.
|
|
214
|
+
- [ ] **PRC-14-029** — Language and text direction are declared correctly.
|
|
215
|
+
- [ ] **PRC-14-030** — Tables expose proper headers and relationships.
|
|
216
|
+
- [ ] **PRC-14-031** — Dialogs, menus, tabs, tooltips, and notifications follow accessible interaction patterns.
|
|
217
|
+
- [ ] **PRC-14-032** — Dynamic content changes are announced appropriately.
|
|
218
|
+
- [ ] **PRC-14-033** — Downloaded documents are accessible.
|
|
219
|
+
- [ ] **PRC-14-034** — Third-party embedded components meet the required level or have an accessible alternative.
|
|
220
|
+
- [ ] **PRC-14-035** — Testing includes representative screen-reader combinations.
|
|
221
|
+
- [ ] **PRC-14-036** — Testing includes users with disabilities where the product’s impact warrants it.
|
|
222
|
+
- [ ] **PRC-14-037** — An accessibility statement and issue-reporting path exist.
|
|
223
|
+
- [ ] **PRC-14-038** — Accessibility defects have owners, severity, and remediation dates.
|
|
224
|
+
- [ ] **PRC-14-039** — Accessibility remains part of regression testing after launch.
|
|
225
|
+
|
|
226
|
+
---
|
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
# Application security
|
|
2
|
+
|
|
3
|
+
> Review interfaces, identity, authorization, sessions, untrusted input, files, transport, and cryptography.
|
|
4
|
+
|
|
5
|
+
Sections 15–22 of the master checklist. For each applicable item, capture status, owner, evidence, release, environment, reviewer, and evidence age.
|
|
6
|
+
|
|
7
|
+
## 15. APIs, web services, and integrations
|
|
8
|
+
|
|
9
|
+
- [ ] **PRC-15-001** — Maintain a complete API inventory.
|
|
10
|
+
- [ ] **PRC-15-002** — Every API has an owner and documented consumers.
|
|
11
|
+
- [ ] **PRC-15-003** — Interface schemas and behavior are versioned.
|
|
12
|
+
- [ ] **PRC-15-004** — Authentication is enforced on every protected operation.
|
|
13
|
+
- [ ] **PRC-15-005** — Authorization is evaluated for every object, property, operation, and tenant.
|
|
14
|
+
- [ ] **PRC-15-006** — Input is validated against an explicit schema.
|
|
15
|
+
- [ ] **PRC-15-007** — Unknown or prohibited fields are rejected or handled safely.
|
|
16
|
+
- [ ] **PRC-15-008** — Content types and character encodings are constrained.
|
|
17
|
+
- [ ] **PRC-15-009** — Request body, URL, header, nesting, field, query, and batch sizes are bounded.
|
|
18
|
+
- [ ] **PRC-15-010** — Expensive queries and filters have cost controls.
|
|
19
|
+
- [ ] **PRC-15-011** — Pagination has safe maximums.
|
|
20
|
+
- [ ] **PRC-15-012** — Sorting and filtering cannot bypass access control.
|
|
21
|
+
- [ ] **PRC-15-013** — Mass assignment and unexpected property binding are prevented.
|
|
22
|
+
- [ ] **PRC-15-014** — HTTP methods have correct and consistent semantics.
|
|
23
|
+
- [ ] **PRC-15-015** — Idempotency is implemented where retries can repeat effects.
|
|
24
|
+
- [ ] **PRC-15-016** — Concurrency control prevents lost updates where required.
|
|
25
|
+
- [ ] **PRC-15-017** — Timeouts exist for all outbound calls.
|
|
26
|
+
- [ ] **PRC-15-018** — Retries are bounded and use backoff and jitter.
|
|
27
|
+
- [ ] **PRC-15-019** — Retries occur only for safe or idempotent operations.
|
|
28
|
+
- [ ] **PRC-15-020** — Circuit breaking or equivalent isolation exists for unstable dependencies.
|
|
29
|
+
- [ ] **PRC-15-021** — Errors use consistent safe structures and appropriate status codes.
|
|
30
|
+
- [ ] **PRC-15-022** — Error responses do not expose stack traces, queries, secrets, or internal topology.
|
|
31
|
+
- [ ] **PRC-15-023** — Rate limits and quotas protect users, tenants, infrastructure, and dependencies.
|
|
32
|
+
- [ ] **PRC-15-024** — Rate limits cannot be trivially bypassed through alternate identifiers or routes.
|
|
33
|
+
- [ ] **PRC-15-025** — CORS uses explicit trusted origins where cross-origin access is needed.
|
|
34
|
+
- [ ] **PRC-15-026** — Credentialed cross-origin requests do not use wildcard origins.
|
|
35
|
+
- [ ] **PRC-15-027** — Browser-authenticated state-changing operations have CSRF protection.
|
|
36
|
+
- [ ] **PRC-15-028** — Sensitive credentials and tokens never appear in URLs.
|
|
37
|
+
- [ ] **PRC-15-029** — Redirects and callback destinations are strictly validated.
|
|
38
|
+
- [ ] **PRC-15-030** — Server-side outbound destinations are constrained to prevent SSRF.
|
|
39
|
+
- [ ] **PRC-15-031** — URL parsing is consistent across proxies, application code, and security controls.
|
|
40
|
+
- [ ] **PRC-15-032** — Host-header and forwarded-header trust is explicitly configured.
|
|
41
|
+
- [ ] **PRC-15-033** — Request smuggling, response splitting, cache poisoning, and parser ambiguity have been assessed.
|
|
42
|
+
- [ ] **PRC-15-034** — Webhooks are authenticated or signed.
|
|
43
|
+
- [ ] **PRC-15-035** — Webhooks include replay protection.
|
|
44
|
+
- [ ] **PRC-15-036** — Webhook consumers are idempotent.
|
|
45
|
+
- [ ] **PRC-15-037** — Webhook retries, ordering, failure, and reconciliation are defined.
|
|
46
|
+
- [ ] **PRC-15-038** — API keys are scoped, rotated, revocable, and attributable.
|
|
47
|
+
- [ ] **PRC-15-039** — Secrets are not returned in responses or documentation examples.
|
|
48
|
+
- [ ] **PRC-15-040** — Backward compatibility is tested.
|
|
49
|
+
- [ ] **PRC-15-041** — Breaking-change and deprecation policies exist.
|
|
50
|
+
- [ ] **PRC-15-042** — Old versions have retirement dates and monitoring.
|
|
51
|
+
- [ ] **PRC-15-043** — Contract tests cover external providers and consumers.
|
|
52
|
+
- [ ] **PRC-15-044** — API documentation matches deployed behavior.
|
|
53
|
+
- [ ] **PRC-15-045** — Production examples contain no real credentials or personal data.
|
|
54
|
+
|
|
55
|
+
### 15.1 Conditional interface checks
|
|
56
|
+
|
|
57
|
+
- [ ] **PRC-15-046** — Graph-based APIs limit depth, breadth, recursion, aliases, batching, and computational cost.
|
|
58
|
+
- [ ] **PRC-15-047** — Graph schema introspection exposure is intentionally decided.
|
|
59
|
+
- [ ] **PRC-15-048** — WebSocket or streaming connections authenticate securely.
|
|
60
|
+
- [ ] **PRC-15-049** — Streaming connections verify origin where browser initiated.
|
|
61
|
+
- [ ] **PRC-15-050** — Authorization changes and logout invalidate long-lived connections.
|
|
62
|
+
- [ ] **PRC-15-051** — Reconnect, ordering, deduplication, backpressure, and heartbeat behavior are tested.
|
|
63
|
+
- [ ] **PRC-15-052** — File-transfer APIs apply the file-security controls in this checklist.
|
|
64
|
+
- [ ] **PRC-15-053** — Partner and machine-to-machine APIs use appropriately scoped identities.
|
|
65
|
+
- [ ] **PRC-15-054** — Public APIs have abuse controls, usage policies, and security contact information.
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## 16. Identity, authentication, and account recovery
|
|
70
|
+
|
|
71
|
+
NIST SP 800-63 Revision 4, finalized in July 2025, provides current risk-based guidance for identity proofing, authentication, authenticators, and federation. OAuth deployments should also follow the current OAuth 2.0 Security Best Current Practice. ([pages.nist.gov](https://pages.nist.gov/800-63-4/))
|
|
72
|
+
|
|
73
|
+
- [ ] **PRC-16-001** — Inventory every login, enrollment, recovery, federation, API, support, and administrative authentication path.
|
|
74
|
+
- [ ] **PRC-16-002** — Select identity and authentication assurance appropriate to the harm of account compromise.
|
|
75
|
+
- [ ] **PRC-16-003** — Require stronger authentication for privileged and high-impact accounts.
|
|
76
|
+
- [ ] **PRC-16-004** — Support phishing-resistant authentication where risk warrants it.
|
|
77
|
+
- [ ] **PRC-16-005** — Multifactor enrollment is protected from account takeover.
|
|
78
|
+
- [ ] **PRC-16-006** — New authenticators require appropriate reauthentication.
|
|
79
|
+
- [ ] **PRC-16-007** — Removing or replacing an authenticator requires appropriate verification.
|
|
80
|
+
- [ ] **PRC-16-008** — Password handling follows current guidance.
|
|
81
|
+
- [ ] **PRC-16-009** — Passwords are not silently truncated or transformed unexpectedly.
|
|
82
|
+
- [ ] **PRC-16-010** — Common and compromised passwords are rejected where password authentication is used.
|
|
83
|
+
- [ ] **PRC-16-011** — Password managers and paste are supported.
|
|
84
|
+
- [ ] **PRC-16-012** — Login defenses address credential stuffing and brute force.
|
|
85
|
+
- [ ] **PRC-16-013** — Defenses avoid creating trivial denial-of-service against legitimate users.
|
|
86
|
+
- [ ] **PRC-16-014** — Login, registration, and recovery responses do not unnecessarily disclose whether an account exists.
|
|
87
|
+
- [ ] **PRC-16-015** — Account enrollment verifies the correct communication channel or identity evidence.
|
|
88
|
+
- [ ] **PRC-16-016** — Account recovery is no weaker than normal authentication.
|
|
89
|
+
- [ ] **PRC-16-017** — Recovery cannot be redirected through an unverified channel.
|
|
90
|
+
- [ ] **PRC-16-018** — Recovery tokens are single-use, short-lived, random, and stored safely.
|
|
91
|
+
- [ ] **PRC-16-019** — Password or authenticator reset invalidates appropriate sessions and recovery material.
|
|
92
|
+
- [ ] **PRC-16-020** — High-risk operations require recent authentication.
|
|
93
|
+
- [ ] **PRC-16-021** — Email, phone, payout, identity, and security-setting changes notify the user appropriately.
|
|
94
|
+
- [ ] **PRC-16-022** — Changes to recovery information use delayed or additional verification where warranted.
|
|
95
|
+
- [ ] **PRC-16-023** — Default credentials are absent.
|
|
96
|
+
- [ ] **PRC-16-024** — Test, dormant, abandoned, and terminated accounts are disabled.
|
|
97
|
+
- [ ] **PRC-16-025** — Service accounts cannot use interactive recovery mechanisms inappropriately.
|
|
98
|
+
- [ ] **PRC-16-026** — Authentication events are audited.
|
|
99
|
+
- [ ] **PRC-16-027** — Suspicious authentication can trigger step-up controls or investigation.
|
|
100
|
+
- [ ] **PRC-16-028** — Users can review and revoke relevant sessions and devices.
|
|
101
|
+
- [ ] **PRC-16-029** — Clock skew and token timing behavior are tested.
|
|
102
|
+
- [ ] **PRC-16-030** — Recovery codes are protected, single-use, and regenerated securely.
|
|
103
|
+
- [ ] **PRC-16-031** — Support personnel cannot bypass identity checks without a controlled, audited exception process.
|
|
104
|
+
- [ ] **PRC-16-032** — Social-engineering resistance is included in support procedures.
|
|
105
|
+
|
|
106
|
+
### 16.1 Federation and delegated authorization
|
|
107
|
+
|
|
108
|
+
- [ ] **PRC-16-033** — Issuer, audience, signature, algorithm, expiration, nonce, and state are validated.
|
|
109
|
+
- [ ] **PRC-16-034** — Redirect URIs are matched exactly according to the protocol’s security requirements.
|
|
110
|
+
- [ ] **PRC-16-035** — Authorization-code flows use current protections such as proof-key mechanisms where applicable.
|
|
111
|
+
- [ ] **PRC-16-036** — Deprecated or insecure delegated-authorization flows are not used.
|
|
112
|
+
- [ ] **PRC-16-037** — Token substitution and mix-up attacks are addressed.
|
|
113
|
+
- [ ] **PRC-16-038** — Identity-provider accounts are linked only after secure verification.
|
|
114
|
+
- [ ] **PRC-16-039** — Automatic account linking cannot merge an attacker’s identity with a victim’s account.
|
|
115
|
+
- [ ] **PRC-16-040** — Tokens are scoped to the minimum required audience and permissions.
|
|
116
|
+
- [ ] **PRC-16-041** — Access and refresh tokens are stored and transmitted safely.
|
|
117
|
+
- [ ] **PRC-16-042** — Refresh-token rotation and reuse detection are applied where appropriate.
|
|
118
|
+
- [ ] **PRC-16-043** — Revocation, logout, key rotation, and identity-provider outage behavior are tested.
|
|
119
|
+
- [ ] **PRC-16-044** — Federation metadata and signing keys are refreshed safely.
|
|
120
|
+
- [ ] **PRC-16-045** — Identity claims are not trusted beyond their documented assurance.
|
|
121
|
+
- [ ] **PRC-16-046** — Tenant or organization selection cannot be manipulated to cross boundaries.
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## 17. Authorization, privileges, and tenant isolation
|
|
126
|
+
|
|
127
|
+
- [ ] **PRC-17-001** — Authorization is denied by default.
|
|
128
|
+
- [ ] **PRC-17-002** — Authorization is enforced server-side at every trusted boundary.
|
|
129
|
+
- [ ] **PRC-17-003** — A current role-permission-resource matrix exists.
|
|
130
|
+
- [ ] **PRC-17-004** — Every endpoint and action maps to a required permission.
|
|
131
|
+
- [ ] **PRC-17-005** — Access checks use the current user, tenant, resource, and operation.
|
|
132
|
+
- [ ] **PRC-17-006** — Object ownership is verified on every direct and indirect object reference.
|
|
133
|
+
- [ ] **PRC-17-007** — Horizontal privilege escalation has been tested.
|
|
134
|
+
- [ ] **PRC-17-008** — Vertical privilege escalation has been tested.
|
|
135
|
+
- [ ] **PRC-17-009** — Function-level and property-level authorization have been tested.
|
|
136
|
+
- [ ] **PRC-17-010** — Bulk, export, search, reporting, and aggregation endpoints enforce the same controls as individual records.
|
|
137
|
+
- [ ] **PRC-17-011** — Hidden fields and client-side controls cannot grant access.
|
|
138
|
+
- [ ] **PRC-17-012** — Role changes take effect promptly across sessions, caches, queues, and services.
|
|
139
|
+
- [ ] **PRC-17-013** — Removed users lose access to shared resources.
|
|
140
|
+
- [ ] **PRC-17-014** — Nested groups and inherited permissions are tested.
|
|
141
|
+
- [ ] **PRC-17-015** — Temporary permissions expire automatically.
|
|
142
|
+
- [ ] **PRC-17-016** — Privileged access follows least privilege and just-in-time principles where practical.
|
|
143
|
+
- [ ] **PRC-17-017** — High-impact actions require additional approval where appropriate.
|
|
144
|
+
- [ ] **PRC-17-018** — Administrative, support, and impersonation actions require reason, authorization, visible indication, and audit.
|
|
145
|
+
- [ ] **PRC-17-019** — Impersonation never exposes secrets the support user should not receive.
|
|
146
|
+
- [ ] **PRC-17-020** — Emergency access is time-bounded and reviewed.
|
|
147
|
+
- [ ] **PRC-17-021** — Authorization decisions are logged at an appropriate level.
|
|
148
|
+
- [ ] **PRC-17-022** — Background jobs retain correct authorization and tenant context.
|
|
149
|
+
- [ ] **PRC-17-023** — Caches do not return data authorized for another principal.
|
|
150
|
+
- [ ] **PRC-17-024** — Search indexes preserve authorization boundaries.
|
|
151
|
+
- [ ] **PRC-17-025** — Files, exports, backups, logs, and analytics preserve tenant boundaries.
|
|
152
|
+
- [ ] **PRC-17-026** — Queue messages cannot be reassigned across tenants through manipulated metadata.
|
|
153
|
+
- [ ] **PRC-17-027** — Tenant-specific encryption, keys, domains, and configuration are isolated as designed.
|
|
154
|
+
- [ ] **PRC-17-028** — Resource identifiers alone are never treated as authorization.
|
|
155
|
+
- [ ] **PRC-17-029** — Side channels do not disclose another tenant’s existence, activity, identifiers, or resource usage.
|
|
156
|
+
- [ ] **PRC-17-030** — Automated tests cover every role × operation × resource-state combination considered material.
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## 18. Sessions, cookies, and tokens
|
|
161
|
+
|
|
162
|
+
- [ ] **PRC-18-001** — Session identifiers have sufficient unpredictability.
|
|
163
|
+
- [ ] **PRC-18-002** — Session identifiers are generated using a cryptographically secure source.
|
|
164
|
+
- [ ] **PRC-18-003** — Session identifiers are never accepted from insecure or unintended channels.
|
|
165
|
+
- [ ] **PRC-18-004** — Browser cookies use `Secure` where transmitted over HTTPS.
|
|
166
|
+
- [ ] **PRC-18-005** — Sensitive browser cookies use `HttpOnly` unless script access is essential and justified.
|
|
167
|
+
- [ ] **PRC-18-006** — `SameSite` behavior is intentionally selected and tested.
|
|
168
|
+
- [ ] **PRC-18-007** — Cookie domain and path scope are as narrow as practical.
|
|
169
|
+
- [ ] **PRC-18-008** — Cross-subdomain cookie trust is explicitly assessed.
|
|
170
|
+
- [ ] **PRC-18-009** — Session identifiers rotate after login and privilege changes.
|
|
171
|
+
- [ ] **PRC-18-010** — Session fixation is prevented.
|
|
172
|
+
- [ ] **PRC-18-011** — Idle and absolute timeouts match risk and user needs.
|
|
173
|
+
- [ ] **PRC-18-012** — Logout invalidates the server-side session or otherwise revokes access.
|
|
174
|
+
- [ ] **PRC-18-013** — Account recovery and credential change invalidate appropriate sessions.
|
|
175
|
+
- [ ] **PRC-18-014** — Concurrent-session policy is defined.
|
|
176
|
+
- [ ] **PRC-18-015** — Users can identify and revoke sessions where appropriate.
|
|
177
|
+
- [ ] **PRC-18-016** — “Remember me” behavior has separate, appropriately constrained credentials.
|
|
178
|
+
- [ ] **PRC-18-017** — Sensitive state-changing actions have CSRF protection.
|
|
179
|
+
- [ ] **PRC-18-018** — Tokens validate issuer, audience, subject, type, signature, algorithm, expiry, and not-before values.
|
|
180
|
+
- [ ] **PRC-18-019** — A token intended for one purpose cannot be accepted for another.
|
|
181
|
+
- [ ] **PRC-18-020** — Token replay risk is addressed.
|
|
182
|
+
- [ ] **PRC-18-021** — Refresh credentials are rotated or otherwise protected against replay where appropriate.
|
|
183
|
+
- [ ] **PRC-18-022** — Tokens and session identifiers are absent from URLs, referrers, analytics, logs, and error reports.
|
|
184
|
+
- [ ] **PRC-18-023** — Client-side storage of tokens is minimized and threat-modeled.
|
|
185
|
+
- [ ] **PRC-18-024** — Logout, revocation, and compromise behavior is tested across all application components.
|
|
186
|
+
- [ ] **PRC-18-025** — Session-related logs do not expose reusable credentials.
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## 19. Input validation, encoding, injection, and unsafe processing
|
|
191
|
+
|
|
192
|
+
- [ ] **PRC-19-001** — All untrusted input is identified.
|
|
193
|
+
- [ ] **PRC-19-002** — Validation occurs at the trusted server-side boundary.
|
|
194
|
+
- [ ] **PRC-19-003** — Inputs are validated for type, syntax, range, length, structure, and allowed values.
|
|
195
|
+
- [ ] **PRC-19-004** — Canonicalization and normalization occur before security-sensitive comparisons.
|
|
196
|
+
- [ ] **PRC-19-005** — Validation uses allowlists where a finite valid set exists.
|
|
197
|
+
- [ ] **PRC-19-006** — Database operations use safe parameter binding.
|
|
198
|
+
- [ ] **PRC-19-007** — Operating-system operations avoid command construction from untrusted input.
|
|
199
|
+
- [ ] **PRC-19-008** — Directory, query, search, template, expression, mail, logging, and interpreter contexts use appropriate safe APIs.
|
|
200
|
+
- [ ] **PRC-19-009** — Output is encoded for its exact destination context.
|
|
201
|
+
- [ ] **PRC-19-010** — HTML or rich-text content is sanitized with an appropriate maintained sanitizer.
|
|
202
|
+
- [ ] **PRC-19-011** — Untrusted input cannot escape into executable script, style, markup, query, command, or template contexts.
|
|
203
|
+
- [ ] **PRC-19-012** — Dynamic evaluation of untrusted input is absent.
|
|
204
|
+
- [ ] **PRC-19-013** — Unsafe deserialization is avoided.
|
|
205
|
+
- [ ] **PRC-19-014** — Deserialization permits only expected types and bounded structures.
|
|
206
|
+
- [ ] **PRC-19-015** — XML processing disables unnecessary external entity and external resource behavior.
|
|
207
|
+
- [ ] **PRC-19-016** — Path traversal and archive traversal are prevented.
|
|
208
|
+
- [ ] **PRC-19-017** — Symbolic-link and filesystem race behavior is controlled.
|
|
209
|
+
- [ ] **PRC-19-018** — Server-side request forgery protections constrain protocol, destination, redirects, DNS resolution, and metadata endpoints.
|
|
210
|
+
- [ ] **PRC-19-019** — Regular expressions cannot be used for practical resource-exhaustion attacks.
|
|
211
|
+
- [ ] **PRC-19-020** — Header, response-splitting, log, CSV, formula, and email injection are addressed.
|
|
212
|
+
- [ ] **PRC-19-021** — Open redirects are prevented.
|
|
213
|
+
- [ ] **PRC-19-022** — Object and property injection through automatic binding or merge behavior is addressed.
|
|
214
|
+
- [ ] **PRC-19-023** — Unicode confusables and normalization do not bypass validation or identity checks.
|
|
215
|
+
- [ ] **PRC-19-024** — Error handling does not reflect unsafe input into executable contexts.
|
|
216
|
+
- [ ] **PRC-19-025** — Security tests cover injection across every supported parser and protocol.
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
## 20. File upload, download, and content processing
|
|
221
|
+
|
|
222
|
+
- [ ] **PRC-20-001** — File upload is enabled only where necessary.
|
|
223
|
+
- [ ] **PRC-20-002** — Maximum file size is enforced before excessive processing.
|
|
224
|
+
- [ ] **PRC-20-003** — File count, archive depth, expanded size, dimensions, page count, and processing time are bounded.
|
|
225
|
+
- [ ] **PRC-20-004** — File type is checked using content, structure, and expected extension rather than user-supplied metadata alone.
|
|
226
|
+
- [ ] **PRC-20-005** — Allowed types are explicitly listed.
|
|
227
|
+
- [ ] **PRC-20-006** — Active or executable content is rejected or neutralized where not required.
|
|
228
|
+
- [ ] **PRC-20-007** — Uploaded content is malware-scanned where risk warrants it.
|
|
229
|
+
- [ ] **PRC-20-008** — Files remain quarantined until required validation completes.
|
|
230
|
+
- [ ] **PRC-20-009** — User-provided filenames are not used as trusted filesystem paths.
|
|
231
|
+
- [ ] **PRC-20-010** — Stored filenames are non-predictable where guessing would create risk.
|
|
232
|
+
- [ ] **PRC-20-011** — Upload storage is non-executable.
|
|
233
|
+
- [ ] **PRC-20-012** — Untrusted files use an isolated origin where browser execution could be dangerous.
|
|
234
|
+
- [ ] **PRC-20-013** — Access control is checked when files are uploaded, listed, previewed, transformed, and downloaded.
|
|
235
|
+
- [ ] **PRC-20-014** — Download responses use safe content type and disposition behavior.
|
|
236
|
+
- [ ] **PRC-20-015** — Browser content sniffing is prevented.
|
|
237
|
+
- [ ] **PRC-20-016** — Archive extraction prevents traversal, symbolic-link abuse, and resource exhaustion.
|
|
238
|
+
- [ ] **PRC-20-017** — Image, document, media, and metadata parsers are patched and isolated appropriately.
|
|
239
|
+
- [ ] **PRC-20-018** — Re-encoding or content disarm is used where warranted.
|
|
240
|
+
- [ ] **PRC-20-019** — Generated exports escape spreadsheet formulas and other active content.
|
|
241
|
+
- [ ] **PRC-20-020** — Temporary files have restricted permissions and reliable deletion.
|
|
242
|
+
- [ ] **PRC-20-021** — Abandoned, failed, and orphaned uploads are cleaned up.
|
|
243
|
+
- [ ] **PRC-20-022** — Retention and deletion rules apply to stored files and derived versions.
|
|
244
|
+
- [ ] **PRC-20-023** — File-processing failure cannot expose internal paths or parser details.
|
|
245
|
+
- [ ] **PRC-20-024** — Large or malicious uploads cannot starve shared resources.
|
|
246
|
+
- [ ] **PRC-20-025** — Download links expire or are access-controlled appropriately.
|
|
247
|
+
- [ ] **PRC-20-026** — Content moderation and legal controls are applied where users can share files with others.
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
## 21. Transport, browser security, DNS, and network exposure
|
|
252
|
+
|
|
253
|
+
- [ ] **PRC-21-001** — All user and administrative traffic uses an approved encrypted transport configuration.
|
|
254
|
+
- [ ] **PRC-21-002** — Plaintext access is redirected or rejected safely.
|
|
255
|
+
- [ ] **PRC-21-003** — Certificates cover the correct names and trust chains.
|
|
256
|
+
- [ ] **PRC-21-004** — Certificate issuance, renewal, expiration, and revocation are monitored.
|
|
257
|
+
- [ ] **PRC-21-005** — Internal service traffic is encrypted where the threat model requires it.
|
|
258
|
+
- [ ] **PRC-21-006** — Mutual authentication is used for high-risk service connections where warranted.
|
|
259
|
+
- [ ] **PRC-21-007** — Mixed active content is absent.
|
|
260
|
+
- [ ] **PRC-21-008** — Strict transport policy is enabled after confirming subdomain and recovery readiness.
|
|
261
|
+
- [ ] **PRC-21-009** — Sensitive responses have appropriate cache controls.
|
|
262
|
+
- [ ] **PRC-21-010** — Shared caches cannot store or serve personalized data incorrectly.
|
|
263
|
+
- [ ] **PRC-21-011** — Content Security Policy is designed, deployed, and monitored where applicable.
|
|
264
|
+
- [ ] **PRC-21-012** — Framing is restricted to intended parents.
|
|
265
|
+
- [ ] **PRC-21-013** — MIME sniffing is disabled.
|
|
266
|
+
- [ ] **PRC-21-014** — Referrer leakage is controlled.
|
|
267
|
+
- [ ] **PRC-21-015** — Browser capability permissions are restricted.
|
|
268
|
+
- [ ] **PRC-21-016** — Cross-origin opener, resource, and embedding policies are assessed where isolation matters.
|
|
269
|
+
- [ ] **PRC-21-017** — CORS configuration is explicit and tested.
|
|
270
|
+
- [ ] **PRC-21-018** — Third-party scripts and resources are inventoried and justified.
|
|
271
|
+
- [ ] **PRC-21-019** — External static resources use integrity protection or an equivalently controlled delivery method where practical.
|
|
272
|
+
- [ ] **PRC-21-020** — Security headers are present on normal, error, redirect, authentication, and static responses as applicable.
|
|
273
|
+
- [ ] **PRC-21-021** — Ingress rules expose only required services and ports.
|
|
274
|
+
- [ ] **PRC-21-022** — Administrative services are not publicly exposed unnecessarily.
|
|
275
|
+
- [ ] **PRC-21-023** — Egress is restricted where practical, especially for high-value workloads.
|
|
276
|
+
- [ ] **PRC-21-024** — Proxy and load-balancer header trust is configured explicitly.
|
|
277
|
+
- [ ] **PRC-21-025** — The origin cannot be bypassed unintentionally when a CDN, WAF, or reverse proxy is relied upon.
|
|
278
|
+
- [ ] **PRC-21-026** — DDoS and volumetric-abuse protections match expected risk.
|
|
279
|
+
- [ ] **PRC-21-027** — Network segmentation limits lateral movement.
|
|
280
|
+
- [ ] **PRC-21-028** — Production networks do not trust development or office networks implicitly.
|
|
281
|
+
- [ ] **PRC-21-029** — Domain ownership is documented.
|
|
282
|
+
- [ ] **PRC-21-030** — Registrar access uses strong authentication and restricted roles.
|
|
283
|
+
- [ ] **PRC-21-031** — Domain transfer and modification protections are enabled.
|
|
284
|
+
- [ ] **PRC-21-032** — DNS records are inventoried.
|
|
285
|
+
- [ ] **PRC-21-033** — Dangling DNS records and abandoned hosted resources are removed.
|
|
286
|
+
- [ ] **PRC-21-034** — Subdomain takeover has been tested.
|
|
287
|
+
- [ ] **PRC-21-035** — DNS changes, TTLs, failover, and recovery are documented.
|
|
288
|
+
- [ ] **PRC-21-036** — DNS-security extensions are evaluated according to threat and operational capability.
|
|
289
|
+
- [ ] **PRC-21-037** — A standards-compliant `security.txt` or equivalent vulnerability-reporting path is published where appropriate.
|
|
290
|
+
- [ ] **PRC-21-038** — External attack-surface monitoring detects newly exposed hosts and services.
|
|
291
|
+
|
|
292
|
+
---
|
|
293
|
+
|
|
294
|
+
## 22. Cryptography and key management
|
|
295
|
+
|
|
296
|
+
- [ ] **PRC-22-001** — Cryptographic requirements derive from a documented threat and data classification.
|
|
297
|
+
- [ ] **PRC-22-002** — Only approved, maintained algorithms and protocol implementations are used.
|
|
298
|
+
- [ ] **PRC-22-003** — Custom cryptographic algorithms and ad hoc protocol designs are absent.
|
|
299
|
+
- [ ] **PRC-22-004** — Encryption provides integrity and authentication as required, not merely confidentiality.
|
|
300
|
+
- [ ] **PRC-22-005** — Passwords use a current adaptive one-way password-hashing method.
|
|
301
|
+
- [ ] **PRC-22-006** — Encryption keys are stored separately from protected data where practical.
|
|
302
|
+
- [ ] **PRC-22-007** — Keys are absent from source code, logs, artifacts, frontend code, and ordinary configuration files.
|
|
303
|
+
- [ ] **PRC-22-008** — Key access follows least privilege.
|
|
304
|
+
- [ ] **PRC-22-009** — Production and non-production use separate keys.
|
|
305
|
+
- [ ] **PRC-22-010** — Different purposes use separate keys where appropriate.
|
|
306
|
+
- [ ] **PRC-22-011** — Key generation uses approved secure randomness.
|
|
307
|
+
- [ ] **PRC-22-012** — Nonces and initialization values meet uniqueness and unpredictability requirements.
|
|
308
|
+
- [ ] **PRC-22-013** — Key rotation and versioning are supported.
|
|
309
|
+
- [ ] **PRC-22-014** — Rotation does not make existing required data unrecoverable.
|
|
310
|
+
- [ ] **PRC-22-015** — Compromised keys can be revoked promptly.
|
|
311
|
+
- [ ] **PRC-22-016** — Key compromise has a tested response playbook.
|
|
312
|
+
- [ ] **PRC-22-017** — Required keys are included securely in continuity and recovery planning.
|
|
313
|
+
- [ ] **PRC-22-018** — Key deletion and cryptographic erasure behavior are defined.
|
|
314
|
+
- [ ] **PRC-22-019** — Certificates, signing keys, token keys, encryption keys, and webhook keys each have lifecycle owners.
|
|
315
|
+
- [ ] **PRC-22-020** — Signature verification rejects inappropriate algorithms, keys, or malformed input.
|
|
316
|
+
- [ ] **PRC-22-021** — Random identifiers and security tokens use cryptographically secure generation.
|
|
317
|
+
- [ ] **PRC-22-022** — Cryptographic dependencies are inventoried for future algorithm migration.
|
|
318
|
+
- [ ] **PRC-22-023** — Sensitive plaintext is not copied into analytics, logs, caches, search indexes, or backups unnecessarily.
|
|
319
|
+
|
|
320
|
+
---
|