@clear-capabilities/agentic-security-scanner 0.140.0 → 0.141.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/CHANGELOG.md +148 -0
- package/dist/113.index.js +79 -3
- package/dist/178.index.js +1 -1
- package/dist/238.index.js +77 -1
- package/dist/384.index.js +1 -1
- package/dist/435.index.js +12 -0
- package/dist/526.index.js +79 -3
- package/dist/637.index.js +1 -1
- package/dist/agentic-security.mjs +14 -14
- package/dist/agentic-security.mjs.sha256 +1 -1
- package/dist/compliance-frameworks/ccpa.json +34 -7
- package/dist/compliance-frameworks/eu-ai-act.json +65 -14
- package/dist/compliance-frameworks/gdpr.json +56 -12
- package/dist/compliance-frameworks/hipaa-security-rule.json +68 -15
- package/dist/compliance-frameworks/nist-ai-600-1.json +57 -12
- package/dist/compliance-frameworks/nist-csf-2.json +78 -16
- package/dist/compliance-frameworks/nist-privacy-1-1.json +3 -0
- package/dist/compliance-frameworks/owasp-asvs-5.json +91 -20
- package/dist/compliance-frameworks/owasp-llm-top-10.json +89 -20
- package/package.json +16 -5
- package/src/dataflow/catalog.js +61 -0
- package/src/engine.js +262 -22
- package/src/mcp/tools.js +12 -0
- package/src/posture/accuracy-scorecard.js +57 -0
- package/src/posture/aibom.js +110 -1
- package/src/posture/auditor-walkthrough.js +56 -17
- package/src/posture/compliance-frameworks/ccpa.json +34 -7
- package/src/posture/compliance-frameworks/eu-ai-act.json +65 -14
- package/src/posture/compliance-frameworks/gdpr.json +56 -12
- package/src/posture/compliance-frameworks/hipaa-security-rule.json +68 -15
- package/src/posture/compliance-frameworks/nist-ai-600-1.json +57 -12
- package/src/posture/compliance-frameworks/nist-csf-2.json +78 -16
- package/src/posture/compliance-frameworks/nist-privacy-1-1.json +3 -0
- package/src/posture/compliance-frameworks/owasp-asvs-5.json +91 -20
- package/src/posture/compliance-frameworks/owasp-llm-top-10.json +89 -20
- package/src/posture/concurrency-checker.js +3 -3
- package/src/posture/coverage-strength.js +182 -0
- package/src/posture/epss.js +17 -1
- package/src/posture/family-registry.js +103 -0
- package/src/posture/family-resolve.js +47 -0
- package/src/posture/fix-coverage.js +113 -0
- package/src/posture/fix-metrics.js +76 -0
- package/src/posture/mcp-rug-pull.js +144 -0
- package/src/posture/poc-inprocess.js +217 -1
- package/src/posture/proof-coverage.js +162 -0
- package/src/posture/reachability-filter.js +44 -0
- package/src/posture/sbom.js +12 -3
- package/src/runScan.js +56 -5
- package/src/sast/CLAUDE.md +2 -2
- package/src/sast/claude-md-prompt-injection.js +47 -3
- package/src/sast/cloud-iam.js +23 -0
- package/src/sast/convention-deviation.js +66 -3
- package/src/sast/crypto-protocol.js +23 -0
- package/src/sast/dapp-frontend.js +20 -0
- package/src/sast/iac-cloud-templates.js +337 -0
- package/src/sast/k8s-admission.js +27 -0
- package/src/sast/ml-supply-chain.js +22 -0
- package/src/sast/ruby.js +132 -0
- package/src/sast/web3-advanced.js +26 -0
- package/src/sca/CLAUDE.md +21 -4
- package/src/sca/container.js +18 -1
- package/src/sca/dep-confusion.js +69 -3
|
@@ -4,53 +4,106 @@
|
|
|
4
4
|
"publisher": "US Department of Health and Human Services",
|
|
5
5
|
"license": "US Federal regulation (public)",
|
|
6
6
|
"url": "https://www.ecfr.gov/current/title-45/subtitle-A/subchapter-C/part-164",
|
|
7
|
+
"scope": "SELECTIVE SUBSET. 8 of the Security Rule technical safeguards. Administrative and physical safeguards are outside what a code scanner can observe and are NOT represented here.",
|
|
8
|
+
"controlsDigest": "a99f9c4015ffbf72",
|
|
9
|
+
"controlCount": 8,
|
|
7
10
|
"controls": [
|
|
8
11
|
{
|
|
9
12
|
"id": "§164.308(a)(1)",
|
|
10
13
|
"summary": "Security management process — risk analysis and risk management.",
|
|
11
|
-
"
|
|
12
|
-
"
|
|
14
|
+
"codeTestable": "partial",
|
|
15
|
+
"evidence": [
|
|
16
|
+
"Scan history under .agentic-security/scan-history/.",
|
|
17
|
+
"Triage transitions logged."
|
|
18
|
+
],
|
|
19
|
+
"mapsTo": [
|
|
20
|
+
"module:scan-history",
|
|
21
|
+
"module:triage"
|
|
22
|
+
]
|
|
13
23
|
},
|
|
14
24
|
{
|
|
15
25
|
"id": "§164.308(a)(3)",
|
|
16
26
|
"summary": "Workforce security — authorization and supervision of access.",
|
|
17
|
-
"
|
|
18
|
-
"
|
|
27
|
+
"codeTestable": "yes",
|
|
28
|
+
"evidence": [
|
|
29
|
+
"Zero auth-missing on PHI endpoints.",
|
|
30
|
+
"IAM policy reviewed via cloud-iam scanner."
|
|
31
|
+
],
|
|
32
|
+
"mapsTo": [
|
|
33
|
+
"family:auth-missing",
|
|
34
|
+
"family:iam-overpermissive"
|
|
35
|
+
]
|
|
19
36
|
},
|
|
20
37
|
{
|
|
21
38
|
"id": "§164.308(a)(4)",
|
|
22
39
|
"summary": "Information access management — minimum necessary access.",
|
|
23
|
-
"
|
|
24
|
-
"
|
|
40
|
+
"codeTestable": "yes",
|
|
41
|
+
"evidence": [
|
|
42
|
+
"Zero open findings in family idor / authz / k8s-rbac-cluster-admin."
|
|
43
|
+
],
|
|
44
|
+
"mapsTo": [
|
|
45
|
+
"family:idor",
|
|
46
|
+
"family:authz",
|
|
47
|
+
"family:k8s-rbac-cluster-admin"
|
|
48
|
+
]
|
|
25
49
|
},
|
|
26
50
|
{
|
|
27
51
|
"id": "§164.308(a)(5)",
|
|
28
52
|
"summary": "Security awareness and training.",
|
|
29
|
-
"
|
|
53
|
+
"codeTestable": "no",
|
|
54
|
+
"evidence": [
|
|
55
|
+
"CLAUDE.md / AGENTS.md documents the project's security defaults."
|
|
56
|
+
]
|
|
30
57
|
},
|
|
31
58
|
{
|
|
32
59
|
"id": "§164.312(a)(1)",
|
|
33
60
|
"summary": "Technical safeguards — access control (unique user identification, automatic logoff, encryption/decryption).",
|
|
34
|
-
"
|
|
35
|
-
"
|
|
61
|
+
"codeTestable": "yes",
|
|
62
|
+
"evidence": [
|
|
63
|
+
"Zero hardcoded-secret findings.",
|
|
64
|
+
"Crypto findings cleared on PHI handling code."
|
|
65
|
+
],
|
|
66
|
+
"mapsTo": [
|
|
67
|
+
"family:hardcoded-secret",
|
|
68
|
+
"family:crypto-weak-cipher"
|
|
69
|
+
]
|
|
36
70
|
},
|
|
37
71
|
{
|
|
38
72
|
"id": "§164.312(b)",
|
|
39
73
|
"summary": "Audit controls — record and examine activity in systems containing PHI.",
|
|
40
|
-
"
|
|
41
|
-
"
|
|
74
|
+
"codeTestable": "partial",
|
|
75
|
+
"evidence": [
|
|
76
|
+
"MCP audit log + fix history present and hash-chained."
|
|
77
|
+
],
|
|
78
|
+
"mapsTo": [
|
|
79
|
+
"module:mcp-audit",
|
|
80
|
+
"module:fix-history"
|
|
81
|
+
]
|
|
42
82
|
},
|
|
43
83
|
{
|
|
44
84
|
"id": "§164.312(c)",
|
|
45
85
|
"summary": "Integrity — PHI not altered or destroyed in an unauthorized manner.",
|
|
46
|
-
"
|
|
47
|
-
"
|
|
86
|
+
"codeTestable": "partial",
|
|
87
|
+
"evidence": [
|
|
88
|
+
"last-scan.json HMAC integrity check passing.",
|
|
89
|
+
"Sigstore provenance verified for ML model files (if opt-in)."
|
|
90
|
+
],
|
|
91
|
+
"mapsTo": [
|
|
92
|
+
"module:integrity",
|
|
93
|
+
"module:sigstore-verify"
|
|
94
|
+
]
|
|
48
95
|
},
|
|
49
96
|
{
|
|
50
97
|
"id": "§164.312(e)",
|
|
51
98
|
"summary": "Transmission security — PHI in transit is protected.",
|
|
52
|
-
"
|
|
53
|
-
"
|
|
99
|
+
"codeTestable": "yes",
|
|
100
|
+
"evidence": [
|
|
101
|
+
"Zero TLS-no-verify / TLS-version findings."
|
|
102
|
+
],
|
|
103
|
+
"mapsTo": [
|
|
104
|
+
"family:crypto-tls-no-verify",
|
|
105
|
+
"family:crypto-tls-version"
|
|
106
|
+
]
|
|
54
107
|
}
|
|
55
108
|
]
|
|
56
109
|
}
|
|
@@ -4,48 +4,93 @@
|
|
|
4
4
|
"publisher": "NIST",
|
|
5
5
|
"license": "public-domain (US Federal publication)",
|
|
6
6
|
"url": "https://nvlpubs.nist.gov/nistpubs/ai/NIST.AI.600-1.pdf",
|
|
7
|
+
"scope": "SELECTIVE SUBSET. 6 actions from the Generative AI Profile with a code-observable signal. The profile is far larger; governance, provenance and incident-response actions are organisational and are NOT represented here. The full control catalogue is built and gated separately by scripts/nist-compliance/build-catalog.py.",
|
|
8
|
+
"controlsDigest": "a6ad567713796b05",
|
|
9
|
+
"controlCount": 6,
|
|
7
10
|
"controls": [
|
|
8
11
|
{
|
|
9
12
|
"id": "GV-1.1-001",
|
|
10
13
|
"function": "GOVERN",
|
|
11
14
|
"summary": "Document and disseminate AI policies, processes, and procedures.",
|
|
12
|
-
"
|
|
13
|
-
"
|
|
15
|
+
"codeTestable": "partial",
|
|
16
|
+
"evidence": [
|
|
17
|
+
"CLAUDE.md / SECURITY.md present.",
|
|
18
|
+
".agentic-security/compliance.policy.yml present."
|
|
19
|
+
],
|
|
20
|
+
"mapsTo": [
|
|
21
|
+
"module:compliance-policy"
|
|
22
|
+
]
|
|
14
23
|
},
|
|
15
24
|
{
|
|
16
25
|
"id": "MP-2.3-002",
|
|
17
26
|
"function": "MAP",
|
|
18
27
|
"summary": "Identify and document GAI risks (CBRN, confabulation, harmful bias, prompt injection, IP, etc.).",
|
|
19
|
-
"
|
|
20
|
-
"
|
|
28
|
+
"codeTestable": "partial",
|
|
29
|
+
"evidence": [
|
|
30
|
+
"Threat model artifact.",
|
|
31
|
+
"Attack-taxonomy ATLAS mappings on findings."
|
|
32
|
+
],
|
|
33
|
+
"mapsTo": [
|
|
34
|
+
"module:threat-model-auto",
|
|
35
|
+
"module:attack-taxonomy"
|
|
36
|
+
]
|
|
21
37
|
},
|
|
22
38
|
{
|
|
23
39
|
"id": "MS-2.1-001",
|
|
24
40
|
"function": "MEASURE",
|
|
25
41
|
"summary": "Continuously monitor GAI system for risks identified during the MAP function.",
|
|
26
|
-
"
|
|
27
|
-
"
|
|
42
|
+
"codeTestable": "partial",
|
|
43
|
+
"evidence": [
|
|
44
|
+
"Watch mode artifacts.",
|
|
45
|
+
"Continuous scan history."
|
|
46
|
+
],
|
|
47
|
+
"mapsTo": [
|
|
48
|
+
"module:watch-mode",
|
|
49
|
+
"module:scan-history"
|
|
50
|
+
]
|
|
28
51
|
},
|
|
29
52
|
{
|
|
30
53
|
"id": "MG-3.2-005",
|
|
31
54
|
"function": "MANAGE",
|
|
32
55
|
"summary": "Manage GAI risks tied to prompt injection.",
|
|
33
|
-
"
|
|
34
|
-
"
|
|
56
|
+
"codeTestable": "yes",
|
|
57
|
+
"evidence": [
|
|
58
|
+
"Zero open critical findings in family prompt-injection / llm-app-security."
|
|
59
|
+
],
|
|
60
|
+
"mapsTo": [
|
|
61
|
+
"family:prompt-injection",
|
|
62
|
+
"family:llm-app-security"
|
|
63
|
+
]
|
|
35
64
|
},
|
|
36
65
|
{
|
|
37
66
|
"id": "MG-4.1-001",
|
|
38
67
|
"function": "MANAGE",
|
|
39
68
|
"summary": "Establish processes for managing GAI supply chain risks.",
|
|
40
|
-
"
|
|
41
|
-
"
|
|
69
|
+
"codeTestable": "yes",
|
|
70
|
+
"evidence": [
|
|
71
|
+
"No mlflow-untrusted-uri / hf-datasets-rce / streaming-dataset-url findings.",
|
|
72
|
+
"AIBOM artifact present."
|
|
73
|
+
],
|
|
74
|
+
"mapsTo": [
|
|
75
|
+
"family:mlflow-untrusted-uri",
|
|
76
|
+
"family:hf-datasets-rce",
|
|
77
|
+
"family:streaming-dataset-url",
|
|
78
|
+
"module:aibom"
|
|
79
|
+
]
|
|
42
80
|
},
|
|
43
81
|
{
|
|
44
82
|
"id": "MG-2.4-001",
|
|
45
83
|
"function": "MANAGE",
|
|
46
84
|
"summary": "Establish content provenance / authenticity controls.",
|
|
47
|
-
"
|
|
48
|
-
"
|
|
85
|
+
"codeTestable": "partial",
|
|
86
|
+
"evidence": [
|
|
87
|
+
"Sigstore provenance opt-in configured for model loads.",
|
|
88
|
+
"ATTRIBUTIONS.md generated."
|
|
89
|
+
],
|
|
90
|
+
"mapsTo": [
|
|
91
|
+
"module:sigstore-verify",
|
|
92
|
+
"module:license-attributions"
|
|
93
|
+
]
|
|
49
94
|
}
|
|
50
95
|
]
|
|
51
96
|
}
|
|
@@ -4,70 +4,132 @@
|
|
|
4
4
|
"publisher": "NIST",
|
|
5
5
|
"license": "public-domain (US Federal publication)",
|
|
6
6
|
"url": "https://www.nist.gov/cyberframework",
|
|
7
|
+
"scope": "SELECTIVE SUBSET. 8 subcategories with a code-observable signal. CSF 2.0 has over 100 subcategories; GOVERN in particular is organisational and is NOT represented here.",
|
|
8
|
+
"controlsDigest": "bcff46f53e75f501",
|
|
9
|
+
"controlCount": 8,
|
|
7
10
|
"controls": [
|
|
8
11
|
{
|
|
9
12
|
"id": "GV.PO",
|
|
10
13
|
"function": "GOVERN",
|
|
11
14
|
"category": "Policy",
|
|
12
15
|
"summary": "Organizational cybersecurity policy is established, communicated, and enforced.",
|
|
13
|
-
"
|
|
14
|
-
"
|
|
16
|
+
"codeTestable": "yes",
|
|
17
|
+
"evidence": [
|
|
18
|
+
"Repo contains CLAUDE.md / SECURITY.md / .agentic-security/sca-policy.yml that documents the project's security policy.",
|
|
19
|
+
"Triage decisions reference an organizational policy."
|
|
20
|
+
],
|
|
21
|
+
"mapsTo": [
|
|
22
|
+
"family:hardcoded-secret",
|
|
23
|
+
"family:license-graph"
|
|
24
|
+
]
|
|
15
25
|
},
|
|
16
26
|
{
|
|
17
27
|
"id": "ID.AM",
|
|
18
28
|
"function": "IDENTIFY",
|
|
19
29
|
"category": "Asset Management",
|
|
20
30
|
"summary": "Assets (hardware, software, data) are inventoried.",
|
|
21
|
-
"
|
|
22
|
-
"
|
|
31
|
+
"codeTestable": "partial",
|
|
32
|
+
"evidence": [
|
|
33
|
+
".agentic-security/sbom-history/*.json snapshots present.",
|
|
34
|
+
"ATTRIBUTIONS.md generated."
|
|
35
|
+
],
|
|
36
|
+
"mapsTo": [
|
|
37
|
+
"module:sbom-diff",
|
|
38
|
+
"module:license-attributions"
|
|
39
|
+
]
|
|
23
40
|
},
|
|
24
41
|
{
|
|
25
42
|
"id": "ID.RA",
|
|
26
43
|
"function": "IDENTIFY",
|
|
27
44
|
"category": "Risk Assessment",
|
|
28
45
|
"summary": "Vulnerabilities and threats are identified.",
|
|
29
|
-
"
|
|
30
|
-
"
|
|
46
|
+
"codeTestable": "partial",
|
|
47
|
+
"evidence": [
|
|
48
|
+
"Regular scan history under .agentic-security/scan-history/.",
|
|
49
|
+
"ATT&CK / ATLAS technique mapping on findings."
|
|
50
|
+
],
|
|
51
|
+
"mapsTo": [
|
|
52
|
+
"module:attack-taxonomy",
|
|
53
|
+
"module:exploitability-probability"
|
|
54
|
+
]
|
|
31
55
|
},
|
|
32
56
|
{
|
|
33
57
|
"id": "PR.AA",
|
|
34
58
|
"function": "PROTECT",
|
|
35
59
|
"category": "Identity Management & Access Control",
|
|
36
60
|
"summary": "Access to assets is limited to authorized users.",
|
|
37
|
-
"
|
|
38
|
-
"
|
|
61
|
+
"codeTestable": "yes",
|
|
62
|
+
"evidence": [
|
|
63
|
+
"Zero open critical findings in family auth-missing / authz / iam-overpermissive on the current scan."
|
|
64
|
+
],
|
|
65
|
+
"mapsTo": [
|
|
66
|
+
"family:auth-missing",
|
|
67
|
+
"family:authz",
|
|
68
|
+
"family:iam-overpermissive",
|
|
69
|
+
"family:k8s-rbac-cluster-admin"
|
|
70
|
+
]
|
|
39
71
|
},
|
|
40
72
|
{
|
|
41
73
|
"id": "PR.DS",
|
|
42
74
|
"function": "PROTECT",
|
|
43
75
|
"category": "Data Security",
|
|
44
76
|
"summary": "Data is managed consistent with the organization's risk strategy.",
|
|
45
|
-
"
|
|
46
|
-
"
|
|
77
|
+
"codeTestable": "yes",
|
|
78
|
+
"evidence": [
|
|
79
|
+
"No critical/high crypto findings.",
|
|
80
|
+
"DPIA artifact present (.agentic-security/dpia.md) when handling PII."
|
|
81
|
+
],
|
|
82
|
+
"mapsTo": [
|
|
83
|
+
"family:crypto-tls-version",
|
|
84
|
+
"family:crypto-tls-no-verify",
|
|
85
|
+
"family:crypto-weak-cipher",
|
|
86
|
+
"family:pii-exposure"
|
|
87
|
+
]
|
|
47
88
|
},
|
|
48
89
|
{
|
|
49
90
|
"id": "DE.CM",
|
|
50
91
|
"function": "DETECT",
|
|
51
92
|
"category": "Continuous Monitoring",
|
|
52
93
|
"summary": "Anomalous activity, indicators of compromise are monitored.",
|
|
53
|
-
"
|
|
54
|
-
"
|
|
94
|
+
"codeTestable": "partial",
|
|
95
|
+
"evidence": [
|
|
96
|
+
"Watch mode artifacts at .agentic-security/watch-status.{md,json}.",
|
|
97
|
+
"CVE-alert daemon configured."
|
|
98
|
+
],
|
|
99
|
+
"mapsTo": [
|
|
100
|
+
"module:watch-mode",
|
|
101
|
+
"module:cve-alert-daemon"
|
|
102
|
+
]
|
|
55
103
|
},
|
|
56
104
|
{
|
|
57
105
|
"id": "RS.AN",
|
|
58
106
|
"function": "RESPOND",
|
|
59
107
|
"category": "Analysis",
|
|
60
108
|
"summary": "Notifications from detection systems are investigated.",
|
|
61
|
-
"
|
|
62
|
-
"
|
|
109
|
+
"codeTestable": "partial",
|
|
110
|
+
"evidence": [
|
|
111
|
+
"Triage transitions logged in triage.json.",
|
|
112
|
+
"Triage-memory entries with reasons."
|
|
113
|
+
],
|
|
114
|
+
"mapsTo": [
|
|
115
|
+
"module:triage",
|
|
116
|
+
"module:triage-memory"
|
|
117
|
+
]
|
|
63
118
|
},
|
|
64
119
|
{
|
|
65
120
|
"id": "RC.RP",
|
|
66
121
|
"function": "RECOVER",
|
|
67
122
|
"category": "Recovery Planning",
|
|
68
123
|
"summary": "Recovery plans are executed and improved after an incident.",
|
|
69
|
-
"
|
|
70
|
-
"
|
|
124
|
+
"codeTestable": "partial",
|
|
125
|
+
"evidence": [
|
|
126
|
+
"Fix history under .agentic-security/fix-history/log.json.",
|
|
127
|
+
"Verifier outcomes recorded."
|
|
128
|
+
],
|
|
129
|
+
"mapsTo": [
|
|
130
|
+
"module:fix-history",
|
|
131
|
+
"module:verifier"
|
|
132
|
+
]
|
|
71
133
|
}
|
|
72
134
|
]
|
|
73
135
|
}
|
|
@@ -5,6 +5,9 @@
|
|
|
5
5
|
"license": "public-domain (US Federal publication)",
|
|
6
6
|
"url": "https://www.nist.gov/privacy-framework",
|
|
7
7
|
"note": "Each control carries NIST's own `codeTestable` rating (yes/partial/no). That rating says whether a control COULD be assessed from source code — it does not say this engine assesses it. `mapsTo` is present only where this engine produces a real signal; a control that NIST rates testable but which this engine cannot see is reported as an ENGINE GAP rather than silently passed.",
|
|
8
|
+
"scope": "FULL CATALOGUE, partially assessable. All 104 controls are present and each carries `codeTestable`. 48 are governance controls no scanner can assess; those report `manual`, never `satisfied`. See posture/privacy-framework.js.",
|
|
9
|
+
"controlsDigest": "447154af306c58d3",
|
|
10
|
+
"controlCount": 104,
|
|
8
11
|
"controls": [
|
|
9
12
|
{
|
|
10
13
|
"id": "ID.IM-P1",
|
|
@@ -4,76 +4,147 @@
|
|
|
4
4
|
"publisher": "OWASP Foundation",
|
|
5
5
|
"license": "Creative Commons Attribution-ShareAlike 4.0",
|
|
6
6
|
"url": "https://owasp.org/www-project-application-security-verification-standard/",
|
|
7
|
+
"scope": "SELECTIVE SUBSET. 10 verification requirements with a direct detector behind them. ASVS 5.0 has several hundred requirements across 17 chapters; the remainder are NOT represented here.",
|
|
8
|
+
"controlsDigest": "6c4371a08f010f91",
|
|
9
|
+
"controlCount": 10,
|
|
7
10
|
"controls": [
|
|
8
11
|
{
|
|
9
12
|
"id": "V2.1",
|
|
10
13
|
"category": "Authentication",
|
|
11
14
|
"summary": "Verify that authentication is performed for protected functions.",
|
|
12
|
-
"
|
|
13
|
-
"
|
|
15
|
+
"codeTestable": "yes",
|
|
16
|
+
"evidence": [
|
|
17
|
+
"Zero open critical findings in family auth-missing on the current scan."
|
|
18
|
+
],
|
|
19
|
+
"mapsTo": [
|
|
20
|
+
"family:auth-missing"
|
|
21
|
+
]
|
|
14
22
|
},
|
|
15
23
|
{
|
|
16
24
|
"id": "V2.7",
|
|
17
25
|
"category": "Authentication",
|
|
18
26
|
"summary": "Verify that MFA / secondary authentication is used for high-value operations.",
|
|
19
|
-
"
|
|
20
|
-
"
|
|
27
|
+
"codeTestable": "yes",
|
|
28
|
+
"evidence": [
|
|
29
|
+
"aws-no-mfa-condition zero findings (if AWS in scope)."
|
|
30
|
+
],
|
|
31
|
+
"mapsTo": [
|
|
32
|
+
"family:aws-no-mfa"
|
|
33
|
+
]
|
|
21
34
|
},
|
|
22
35
|
{
|
|
23
36
|
"id": "V4.1",
|
|
24
37
|
"category": "Access Control",
|
|
25
38
|
"summary": "Verify that authorization is enforced for every resource access.",
|
|
26
|
-
"
|
|
27
|
-
"
|
|
39
|
+
"codeTestable": "yes",
|
|
40
|
+
"evidence": [
|
|
41
|
+
"Zero idor / authz findings."
|
|
42
|
+
],
|
|
43
|
+
"mapsTo": [
|
|
44
|
+
"family:idor",
|
|
45
|
+
"family:authz"
|
|
46
|
+
]
|
|
28
47
|
},
|
|
29
48
|
{
|
|
30
49
|
"id": "V5.1",
|
|
31
50
|
"category": "Input Validation",
|
|
32
51
|
"summary": "Verify input validation for type, length, and content.",
|
|
33
|
-
"
|
|
34
|
-
"
|
|
52
|
+
"codeTestable": "yes",
|
|
53
|
+
"evidence": [
|
|
54
|
+
"Zero open critical findings in sqli/xss/command-injection/ldap-injection/xpath-injection."
|
|
55
|
+
],
|
|
56
|
+
"mapsTo": [
|
|
57
|
+
"family:sqli",
|
|
58
|
+
"family:xss",
|
|
59
|
+
"family:command-injection",
|
|
60
|
+
"family:ldap-injection",
|
|
61
|
+
"family:xpath-injection",
|
|
62
|
+
"family:nosql-injection"
|
|
63
|
+
]
|
|
35
64
|
},
|
|
36
65
|
{
|
|
37
66
|
"id": "V6.1",
|
|
38
67
|
"category": "Cryptography",
|
|
39
68
|
"summary": "Verify use of strong cryptography per a documented policy.",
|
|
40
|
-
"
|
|
41
|
-
"
|
|
69
|
+
"codeTestable": "yes",
|
|
70
|
+
"evidence": [
|
|
71
|
+
"Zero open findings in crypto-weak-cipher / crypto-weak-hash / crypto-ecb / crypto-static-iv."
|
|
72
|
+
],
|
|
73
|
+
"mapsTo": [
|
|
74
|
+
"family:crypto-weak-cipher",
|
|
75
|
+
"family:crypto-weak-hash",
|
|
76
|
+
"family:crypto-ecb",
|
|
77
|
+
"family:crypto-static-iv",
|
|
78
|
+
"family:crypto-kdf-weak"
|
|
79
|
+
]
|
|
42
80
|
},
|
|
43
81
|
{
|
|
44
82
|
"id": "V6.2",
|
|
45
83
|
"category": "Cryptography",
|
|
46
84
|
"summary": "Verify all transit data uses TLS ≥ 1.2.",
|
|
47
|
-
"
|
|
48
|
-
"
|
|
85
|
+
"codeTestable": "yes",
|
|
86
|
+
"evidence": [
|
|
87
|
+
"Zero findings in crypto-tls-version / crypto-tls-no-verify."
|
|
88
|
+
],
|
|
89
|
+
"mapsTo": [
|
|
90
|
+
"family:crypto-tls-version",
|
|
91
|
+
"family:crypto-tls-no-verify"
|
|
92
|
+
]
|
|
49
93
|
},
|
|
50
94
|
{
|
|
51
95
|
"id": "V7.1",
|
|
52
96
|
"category": "Error Handling & Logging",
|
|
53
97
|
"summary": "Verify that error handling does not disclose sensitive information.",
|
|
54
|
-
"
|
|
55
|
-
"
|
|
98
|
+
"codeTestable": "yes",
|
|
99
|
+
"evidence": [
|
|
100
|
+
"No findings in family data-exposure."
|
|
101
|
+
],
|
|
102
|
+
"mapsTo": [
|
|
103
|
+
"family:data-exposure"
|
|
104
|
+
]
|
|
56
105
|
},
|
|
57
106
|
{
|
|
58
107
|
"id": "V8.1",
|
|
59
108
|
"category": "Data Protection",
|
|
60
109
|
"summary": "Verify that personal data is protected at rest and in transit.",
|
|
61
|
-
"
|
|
62
|
-
"
|
|
110
|
+
"codeTestable": "yes",
|
|
111
|
+
"evidence": [
|
|
112
|
+
"DPIA artifact at .agentic-security/dpia.md.",
|
|
113
|
+
"Zero pii-exposure findings."
|
|
114
|
+
],
|
|
115
|
+
"mapsTo": [
|
|
116
|
+
"family:pii-exposure",
|
|
117
|
+
"family:training-data-pii"
|
|
118
|
+
]
|
|
63
119
|
},
|
|
64
120
|
{
|
|
65
121
|
"id": "V10.1",
|
|
66
122
|
"category": "Malicious Code",
|
|
67
123
|
"summary": "Verify the application does not include known-malicious or compromised dependencies.",
|
|
68
|
-
"
|
|
69
|
-
"
|
|
124
|
+
"codeTestable": "yes",
|
|
125
|
+
"evidence": [
|
|
126
|
+
".agentic-security/sbom-history snapshots clean.",
|
|
127
|
+
"No dependency-confusion or dependency-drift findings."
|
|
128
|
+
],
|
|
129
|
+
"mapsTo": [
|
|
130
|
+
"family:vulnerable-dep",
|
|
131
|
+
"family:dependency-confusion",
|
|
132
|
+
"family:dependency-drift"
|
|
133
|
+
]
|
|
70
134
|
},
|
|
71
135
|
{
|
|
72
136
|
"id": "V14.1",
|
|
73
137
|
"category": "Configuration",
|
|
74
138
|
"summary": "Verify that build, deployment, and configuration are secure.",
|
|
75
|
-
"
|
|
76
|
-
"
|
|
139
|
+
"codeTestable": "yes",
|
|
140
|
+
"evidence": [
|
|
141
|
+
"No findings in family iam-overpermissive / k8s-rbac-cluster-admin / k8s-pod-security-privileged."
|
|
142
|
+
],
|
|
143
|
+
"mapsTo": [
|
|
144
|
+
"family:iam-overpermissive",
|
|
145
|
+
"family:k8s-rbac-cluster-admin",
|
|
146
|
+
"family:k8s-pod-security-privileged"
|
|
147
|
+
]
|
|
77
148
|
}
|
|
78
149
|
]
|
|
79
150
|
}
|