@clear-capabilities/agentic-security-scanner 0.80.0 → 0.86.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.
Files changed (68) hide show
  1. package/dist/178.index.js +1 -1
  2. package/dist/384.index.js +1 -1
  3. package/dist/637.index.js +1 -1
  4. package/dist/838.index.js +1 -1
  5. package/dist/839.index.js +170 -0
  6. package/dist/985.index.js +51 -1
  7. package/dist/agentic-security.mjs +83 -83
  8. package/dist/agentic-security.mjs.sha256 +1 -1
  9. package/package.json +3 -3
  10. package/src/.agentic-security/findings.json +21283 -8189
  11. package/src/.agentic-security/last-scan.json +21283 -8189
  12. package/src/.agentic-security/last-scan.json.sig +1 -1
  13. package/src/.agentic-security/scan-history.json +512 -128
  14. package/src/.agentic-security/streak.json +3 -3
  15. package/src/engine.js +41 -0
  16. package/src/mcp/.agentic-security/findings.json +4 -4
  17. package/src/mcp/.agentic-security/last-scan.json +4 -4
  18. package/src/mcp/.agentic-security/last-scan.json.sig +1 -1
  19. package/src/mcp/.agentic-security/scan-history.json +188 -0
  20. package/src/mcp/.agentic-security/streak.json +5 -5
  21. package/src/mcp/tools.js +51 -1
  22. package/src/posture/.agentic-security/dpia.md +26 -0
  23. package/src/posture/.agentic-security/findings.json +17234 -4057
  24. package/src/posture/.agentic-security/last-scan.json +17234 -4057
  25. package/src/posture/.agentic-security/last-scan.json.sig +1 -1
  26. package/src/posture/.agentic-security/pqc-migration-plan.json +65 -0
  27. package/src/posture/.agentic-security/pqc-migration-plan.md +30 -0
  28. package/src/posture/.agentic-security/sbom-history/7d45b5e03804aac084b4a2b4dc8c6f10107d2005.json +6 -0
  29. package/src/posture/.agentic-security/scan-history.json +1942 -200
  30. package/src/posture/.agentic-security/streak.json +3 -3
  31. package/src/posture/.agentic-security/threat-model.json +2038 -0
  32. package/src/posture/.agentic-security/threat-model.md +73 -0
  33. package/src/posture/auditor-walkthrough.js +252 -0
  34. package/src/posture/claude-authorship.js +197 -0
  35. package/src/posture/compliance-frameworks/.agentic-security/findings.json +80 -0
  36. package/src/posture/compliance-frameworks/.agentic-security/last-scan.json +80 -0
  37. package/src/posture/compliance-frameworks/.agentic-security/last-scan.json.sig +1 -0
  38. package/src/posture/compliance-frameworks/.agentic-security/scan-history.json +90 -0
  39. package/src/posture/compliance-frameworks/.agentic-security/streak.json +22 -0
  40. package/src/posture/compliance-frameworks/ccpa.json +32 -0
  41. package/src/posture/compliance-frameworks/eu-ai-act.json +51 -0
  42. package/src/posture/compliance-frameworks/gdpr.json +45 -0
  43. package/src/posture/compliance-frameworks/hipaa-security-rule.json +56 -0
  44. package/src/posture/compliance-frameworks/nist-ai-600-1.json +51 -0
  45. package/src/posture/compliance-frameworks/nist-csf-2.json +73 -0
  46. package/src/posture/compliance-frameworks/owasp-asvs-5.json +79 -0
  47. package/src/posture/compliance-frameworks/owasp-llm-top-10.json +69 -0
  48. package/src/posture/cross-repo-memory.js +180 -0
  49. package/src/posture/dep-add-guard.js +197 -0
  50. package/src/posture/findings-memory.js +152 -0
  51. package/src/posture/fix-style-mirror.js +118 -0
  52. package/src/posture/git-history.js +141 -0
  53. package/src/posture/intent-context.js +175 -0
  54. package/src/posture/model-rescan.js +76 -0
  55. package/src/posture/pattern-propagation.js +39 -0
  56. package/src/posture/pr-augment.js +234 -0
  57. package/src/posture/risk-dollars.js +158 -0
  58. package/src/posture/router.js +4 -4
  59. package/src/posture/threat-model-grounding.js +169 -0
  60. package/src/posture/time-to-fix.js +129 -0
  61. package/src/posture/triage-memory.js +151 -0
  62. package/src/posture/triage.js +15 -1
  63. package/src/posture/watch-mode.js +171 -0
  64. package/src/posture/workflow-installer.js +231 -0
  65. package/src/report/.agentic-security/sbom-history/7d45b5e03804aac084b4a2b4dc8c6f10107d2005.json +6 -0
  66. package/src/report/.agentic-security/threat-model.json +7 -0
  67. package/src/report/.agentic-security/threat-model.md +22 -0
  68. package/src/report/index.js +1 -1
@@ -0,0 +1 @@
1
+ ccd53b45945cf534ddf095b46bb3a987246676e48f0308cf01946295f9d3e448
@@ -0,0 +1,90 @@
1
+ [
2
+ {
3
+ "timestamp": "2026-05-29T21:01:01.146Z",
4
+ "label": "scan",
5
+ "total": 0,
6
+ "critical": 0,
7
+ "high": 0,
8
+ "medium": 0,
9
+ "low": 0,
10
+ "kev": 0,
11
+ "ids": []
12
+ },
13
+ {
14
+ "timestamp": "2026-05-29T21:01:20.024Z",
15
+ "label": "scan",
16
+ "total": 0,
17
+ "critical": 0,
18
+ "high": 0,
19
+ "medium": 0,
20
+ "low": 0,
21
+ "kev": 0,
22
+ "ids": []
23
+ },
24
+ {
25
+ "timestamp": "2026-05-29T21:01:41.003Z",
26
+ "label": "scan",
27
+ "total": 0,
28
+ "critical": 0,
29
+ "high": 0,
30
+ "medium": 0,
31
+ "low": 0,
32
+ "kev": 0,
33
+ "ids": []
34
+ },
35
+ {
36
+ "timestamp": "2026-05-29T21:01:56.122Z",
37
+ "label": "scan",
38
+ "total": 0,
39
+ "critical": 0,
40
+ "high": 0,
41
+ "medium": 0,
42
+ "low": 0,
43
+ "kev": 0,
44
+ "ids": []
45
+ },
46
+ {
47
+ "timestamp": "2026-05-29T21:02:10.982Z",
48
+ "label": "scan",
49
+ "total": 0,
50
+ "critical": 0,
51
+ "high": 0,
52
+ "medium": 0,
53
+ "low": 0,
54
+ "kev": 0,
55
+ "ids": []
56
+ },
57
+ {
58
+ "timestamp": "2026-05-29T21:02:27.759Z",
59
+ "label": "scan",
60
+ "total": 0,
61
+ "critical": 0,
62
+ "high": 0,
63
+ "medium": 0,
64
+ "low": 0,
65
+ "kev": 0,
66
+ "ids": []
67
+ },
68
+ {
69
+ "timestamp": "2026-05-29T21:02:44.397Z",
70
+ "label": "scan",
71
+ "total": 0,
72
+ "critical": 0,
73
+ "high": 0,
74
+ "medium": 0,
75
+ "low": 0,
76
+ "kev": 0,
77
+ "ids": []
78
+ },
79
+ {
80
+ "timestamp": "2026-05-29T21:02:56.203Z",
81
+ "label": "scan",
82
+ "total": 0,
83
+ "critical": 0,
84
+ "high": 0,
85
+ "medium": 0,
86
+ "low": 0,
87
+ "kev": 0,
88
+ "ids": []
89
+ }
90
+ ]
@@ -0,0 +1,22 @@
1
+ {
2
+ "firstScanDate": "2026-05-29T21:01:01.152Z",
3
+ "lastScanDate": "2026-05-29T21:02:56.210Z",
4
+ "totalScans": 8,
5
+ "daysCleanCritical": 1,
6
+ "lastCleanDate": "2026-05-29",
7
+ "lastCriticalDate": null,
8
+ "hasEverHadCritical": false,
9
+ "bestDaysCleanCritical": 1,
10
+ "totalFindingsAtFirstScan": 0,
11
+ "totalFindingsAtLastScan": 0,
12
+ "totalFixesInferred": 0,
13
+ "lastGrade": "A+",
14
+ "bestGrade": "A+",
15
+ "launchCheckPassedAt": null,
16
+ "achievements": [
17
+ "first-scan",
18
+ "grade-a",
19
+ "grade-a-plus"
20
+ ],
21
+ "previousGrade": "A+"
22
+ }
@@ -0,0 +1,32 @@
1
+ {
2
+ "id": "ccpa",
3
+ "name": "California Consumer Privacy Act (Cal. Civ. Code §1798.100 et seq.)",
4
+ "publisher": "California Legislature",
5
+ "license": "California statute (public)",
6
+ "url": "https://leginfo.legislature.ca.gov/faces/codes_displayText.xhtml?division=3.&part=4.&lawCode=CIV&title=1.81.5",
7
+ "controls": [
8
+ {
9
+ "id": "§1798.100",
10
+ "summary": "Consumer right to know — businesses inform consumers about categories of personal info collected.",
11
+ "evidence": ["DPIA artifact lists every PII field with file:line provenance."],
12
+ "mapsTo": ["module:privacy-taint"]
13
+ },
14
+ {
15
+ "id": "§1798.105",
16
+ "summary": "Right to delete — businesses comply with verified deletion requests.",
17
+ "evidence": ["No data-exposure findings on PII storage paths."]
18
+ },
19
+ {
20
+ "id": "§1798.150",
21
+ "summary": "Civil action for security breach affecting personal information.",
22
+ "evidence": ["Crypto findings cleared on PII handling code.", "TLS pinning checks pass."],
23
+ "mapsTo": ["family:crypto-weak-cipher", "family:crypto-tls-version", "family:crypto-tls-no-verify"]
24
+ },
25
+ {
26
+ "id": "§1798.81.5",
27
+ "summary": "Reasonable security procedures and practices.",
28
+ "evidence": ["No critical findings on user-data endpoints.", "Auth-missing zero on PII paths."],
29
+ "mapsTo": ["family:auth-missing", "family:authz", "family:hardcoded-secret"]
30
+ }
31
+ ]
32
+ }
@@ -0,0 +1,51 @@
1
+ {
2
+ "id": "eu-ai-act",
3
+ "name": "EU Artificial Intelligence Act (Regulation 2024/1689)",
4
+ "publisher": "European Parliament & Council",
5
+ "license": "EU law (Official Journal)",
6
+ "url": "https://eur-lex.europa.eu/eli/reg/2024/1689/oj",
7
+ "controls": [
8
+ {
9
+ "id": "Art.9",
10
+ "summary": "Risk management system — continuous, iterative risk identification and mitigation.",
11
+ "evidence": ["Threat model artifact (.agentic-security/threat-model.{json,md}).", "Continuous scan history present."],
12
+ "mapsTo": ["module:threat-model-auto", "module:scan-history"]
13
+ },
14
+ {
15
+ "id": "Art.10",
16
+ "summary": "Data governance — training/validation data is relevant, representative, and bias-checked.",
17
+ "evidence": ["No training-data-pii findings.", "DPIA artifact for any PII handling."],
18
+ "mapsTo": ["family:training-data-pii", "family:pii-exposure"]
19
+ },
20
+ {
21
+ "id": "Art.11",
22
+ "summary": "Technical documentation — system architecture, components, training procedures documented.",
23
+ "evidence": ["AIBOM artifact at .agentic-security/aibom.json.", "Threat model + DPIA + compliance-evidence present."],
24
+ "mapsTo": ["module:aibom", "module:threat-model-auto", "module:compliance-policy"]
25
+ },
26
+ {
27
+ "id": "Art.12",
28
+ "summary": "Record-keeping — automatic logging of system events for traceability.",
29
+ "evidence": ["MCP audit log .agentic-security/mcp-audit.log present.", "Scan history retained."],
30
+ "mapsTo": ["module:mcp-audit", "module:scan-history"]
31
+ },
32
+ {
33
+ "id": "Art.13",
34
+ "summary": "Transparency — instructions for use enable users to interpret the system's output correctly.",
35
+ "evidence": ["why-fired annotation surfaces detection provenance on every finding."],
36
+ "mapsTo": ["module:why-fired"]
37
+ },
38
+ {
39
+ "id": "Art.14",
40
+ "summary": "Human oversight — system permits humans to override / interrupt.",
41
+ "evidence": ["Fix application requires confirm:true.", "Bodyguard hook can refuse risky edits."],
42
+ "mapsTo": ["module:pre-edit-bodyguard", "module:apply-fix"]
43
+ },
44
+ {
45
+ "id": "Art.15",
46
+ "summary": "Accuracy, robustness, cybersecurity — appropriate level of accuracy and resilience.",
47
+ "evidence": ["Calibration + held-out evaluation present (.agentic-security/calibration-seed.json).", "OWASP Benchmark regression gate."],
48
+ "mapsTo": ["module:calibration", "module:holdout-eval"]
49
+ }
50
+ ]
51
+ }
@@ -0,0 +1,45 @@
1
+ {
2
+ "id": "gdpr",
3
+ "name": "General Data Protection Regulation (EU 2016/679)",
4
+ "publisher": "European Parliament & Council",
5
+ "license": "EU law (Official Journal)",
6
+ "url": "https://eur-lex.europa.eu/eli/reg/2016/679/oj",
7
+ "controls": [
8
+ {
9
+ "id": "Art.5",
10
+ "summary": "Principles relating to processing of personal data (lawfulness, fairness, transparency, purpose limitation, data minimization, accuracy, storage limitation, integrity, accountability).",
11
+ "evidence": ["DPIA artifact at .agentic-security/dpia.md.", "PII fields enumerated by the privacy-taint module."],
12
+ "mapsTo": ["family:pii-exposure", "module:privacy-taint"]
13
+ },
14
+ {
15
+ "id": "Art.25",
16
+ "summary": "Data protection by design and by default.",
17
+ "evidence": ["Threat model produced before code.", "PII annotation runs at scan time, not as an afterthought."],
18
+ "mapsTo": ["module:threat-model-auto", "module:privacy-taint"]
19
+ },
20
+ {
21
+ "id": "Art.30",
22
+ "summary": "Records of processing activities — controller maintains a register.",
23
+ "evidence": ["DPIA + privacy-taint annotations cover each PII field with file:line provenance."],
24
+ "mapsTo": ["module:privacy-taint"]
25
+ },
26
+ {
27
+ "id": "Art.32",
28
+ "summary": "Security of processing — appropriate technical and organizational measures.",
29
+ "evidence": ["Zero open critical crypto findings.", "Auth-missing findings zero on user-data endpoints.", "TLS pinning checks pass."],
30
+ "mapsTo": ["family:crypto-weak-cipher", "family:crypto-tls-version", "family:crypto-tls-no-verify", "family:auth-missing"]
31
+ },
32
+ {
33
+ "id": "Art.33",
34
+ "summary": "Notification of personal data breach to the supervisory authority within 72 hours.",
35
+ "evidence": ["Fix history retained.", "Audit log preserves the breach-window evidence."],
36
+ "mapsTo": ["module:fix-history", "module:mcp-audit"]
37
+ },
38
+ {
39
+ "id": "Art.35",
40
+ "summary": "Data protection impact assessment (DPIA) for high-risk processing.",
41
+ "evidence": ["DPIA artifact present at .agentic-security/dpia.md."],
42
+ "mapsTo": ["module:privacy-taint:emitDpiaArtifact"]
43
+ }
44
+ ]
45
+ }
@@ -0,0 +1,56 @@
1
+ {
2
+ "id": "hipaa-security-rule",
3
+ "name": "HIPAA Security Rule (45 CFR Part 164, Subparts C & E)",
4
+ "publisher": "US Department of Health and Human Services",
5
+ "license": "US Federal regulation (public)",
6
+ "url": "https://www.ecfr.gov/current/title-45/subtitle-A/subchapter-C/part-164",
7
+ "controls": [
8
+ {
9
+ "id": "§164.308(a)(1)",
10
+ "summary": "Security management process — risk analysis and risk management.",
11
+ "evidence": ["Scan history under .agentic-security/scan-history/.", "Triage transitions logged."],
12
+ "mapsTo": ["module:scan-history", "module:triage"]
13
+ },
14
+ {
15
+ "id": "§164.308(a)(3)",
16
+ "summary": "Workforce security — authorization and supervision of access.",
17
+ "evidence": ["Zero auth-missing on PHI endpoints.", "IAM policy reviewed via cloud-iam scanner."],
18
+ "mapsTo": ["family:auth-missing", "family:iam-overpermissive"]
19
+ },
20
+ {
21
+ "id": "§164.308(a)(4)",
22
+ "summary": "Information access management — minimum necessary access.",
23
+ "evidence": ["Zero open findings in family idor / authz / k8s-rbac-cluster-admin."],
24
+ "mapsTo": ["family:idor", "family:authz", "family:k8s-rbac-cluster-admin"]
25
+ },
26
+ {
27
+ "id": "§164.308(a)(5)",
28
+ "summary": "Security awareness and training.",
29
+ "evidence": ["CLAUDE.md / AGENTS.md documents the project's security defaults."]
30
+ },
31
+ {
32
+ "id": "§164.312(a)(1)",
33
+ "summary": "Technical safeguards — access control (unique user identification, automatic logoff, encryption/decryption).",
34
+ "evidence": ["Zero hardcoded-secret findings.", "Crypto findings cleared on PHI handling code."],
35
+ "mapsTo": ["family:hardcoded-secret", "family:crypto-weak-cipher"]
36
+ },
37
+ {
38
+ "id": "§164.312(b)",
39
+ "summary": "Audit controls — record and examine activity in systems containing PHI.",
40
+ "evidence": ["MCP audit log + fix history present and hash-chained."],
41
+ "mapsTo": ["module:mcp-audit", "module:fix-history"]
42
+ },
43
+ {
44
+ "id": "§164.312(c)",
45
+ "summary": "Integrity — PHI not altered or destroyed in an unauthorized manner.",
46
+ "evidence": ["last-scan.json HMAC integrity check passing.", "Sigstore provenance verified for ML model files (if opt-in)."],
47
+ "mapsTo": ["module:integrity", "module:sigstore-verify"]
48
+ },
49
+ {
50
+ "id": "§164.312(e)",
51
+ "summary": "Transmission security — PHI in transit is protected.",
52
+ "evidence": ["Zero TLS-no-verify / TLS-version findings."],
53
+ "mapsTo": ["family:crypto-tls-no-verify", "family:crypto-tls-version"]
54
+ }
55
+ ]
56
+ }
@@ -0,0 +1,51 @@
1
+ {
2
+ "id": "nist-ai-600-1",
3
+ "name": "NIST AI 600-1 — Generative AI Profile",
4
+ "publisher": "NIST",
5
+ "license": "public-domain (US Federal publication)",
6
+ "url": "https://nvlpubs.nist.gov/nistpubs/ai/NIST.AI.600-1.pdf",
7
+ "controls": [
8
+ {
9
+ "id": "GV-1.1-001",
10
+ "function": "GOVERN",
11
+ "summary": "Document and disseminate AI policies, processes, and procedures.",
12
+ "evidence": ["CLAUDE.md / SECURITY.md present.", ".agentic-security/compliance.policy.yml present."],
13
+ "mapsTo": ["module:compliance-policy"]
14
+ },
15
+ {
16
+ "id": "MP-2.3-002",
17
+ "function": "MAP",
18
+ "summary": "Identify and document GAI risks (CBRN, confabulation, harmful bias, prompt injection, IP, etc.).",
19
+ "evidence": ["Threat model artifact.", "Attack-taxonomy ATLAS mappings on findings."],
20
+ "mapsTo": ["module:threat-model-auto", "module:attack-taxonomy"]
21
+ },
22
+ {
23
+ "id": "MS-2.1-001",
24
+ "function": "MEASURE",
25
+ "summary": "Continuously monitor GAI system for risks identified during the MAP function.",
26
+ "evidence": ["Watch mode artifacts.", "Continuous scan history."],
27
+ "mapsTo": ["module:watch-mode", "module:scan-history"]
28
+ },
29
+ {
30
+ "id": "MG-3.2-005",
31
+ "function": "MANAGE",
32
+ "summary": "Manage GAI risks tied to prompt injection.",
33
+ "evidence": ["Zero open critical findings in family prompt-injection / llm-app-security."],
34
+ "mapsTo": ["family:prompt-injection", "family:llm-app-security"]
35
+ },
36
+ {
37
+ "id": "MG-4.1-001",
38
+ "function": "MANAGE",
39
+ "summary": "Establish processes for managing GAI supply chain risks.",
40
+ "evidence": ["No mlflow-untrusted-uri / hf-datasets-rce / streaming-dataset-url findings.", "AIBOM artifact present."],
41
+ "mapsTo": ["family:mlflow-untrusted-uri", "family:hf-datasets-rce", "family:streaming-dataset-url", "module:aibom"]
42
+ },
43
+ {
44
+ "id": "MG-2.4-001",
45
+ "function": "MANAGE",
46
+ "summary": "Establish content provenance / authenticity controls.",
47
+ "evidence": ["Sigstore provenance opt-in configured for model loads.", "ATTRIBUTIONS.md generated."],
48
+ "mapsTo": ["module:sigstore-verify", "module:license-attributions"]
49
+ }
50
+ ]
51
+ }
@@ -0,0 +1,73 @@
1
+ {
2
+ "id": "nist-csf-2",
3
+ "name": "NIST Cybersecurity Framework 2.0",
4
+ "publisher": "NIST",
5
+ "license": "public-domain (US Federal publication)",
6
+ "url": "https://www.nist.gov/cyberframework",
7
+ "controls": [
8
+ {
9
+ "id": "GV.PO",
10
+ "function": "GOVERN",
11
+ "category": "Policy",
12
+ "summary": "Organizational cybersecurity policy is established, communicated, and enforced.",
13
+ "evidence": ["Repo contains CLAUDE.md / SECURITY.md / .agentic-security/sca-policy.yml that documents the project's security policy.", "Triage decisions reference an organizational policy."],
14
+ "mapsTo": ["family:hardcoded-secret", "family:license-graph"]
15
+ },
16
+ {
17
+ "id": "ID.AM",
18
+ "function": "IDENTIFY",
19
+ "category": "Asset Management",
20
+ "summary": "Assets (hardware, software, data) are inventoried.",
21
+ "evidence": [".agentic-security/sbom-history/*.json snapshots present.", "ATTRIBUTIONS.md generated."],
22
+ "mapsTo": ["module:sbom-diff", "module:license-attributions"]
23
+ },
24
+ {
25
+ "id": "ID.RA",
26
+ "function": "IDENTIFY",
27
+ "category": "Risk Assessment",
28
+ "summary": "Vulnerabilities and threats are identified.",
29
+ "evidence": ["Regular scan history under .agentic-security/scan-history/.", "ATT&CK / ATLAS technique mapping on findings."],
30
+ "mapsTo": ["module:attack-taxonomy", "module:exploitability-probability"]
31
+ },
32
+ {
33
+ "id": "PR.AA",
34
+ "function": "PROTECT",
35
+ "category": "Identity Management & Access Control",
36
+ "summary": "Access to assets is limited to authorized users.",
37
+ "evidence": ["Zero open critical findings in family auth-missing / authz / iam-overpermissive on the current scan."],
38
+ "mapsTo": ["family:auth-missing", "family:authz", "family:iam-overpermissive", "family:k8s-rbac-cluster-admin"]
39
+ },
40
+ {
41
+ "id": "PR.DS",
42
+ "function": "PROTECT",
43
+ "category": "Data Security",
44
+ "summary": "Data is managed consistent with the organization's risk strategy.",
45
+ "evidence": ["No critical/high crypto findings.", "DPIA artifact present (.agentic-security/dpia.md) when handling PII."],
46
+ "mapsTo": ["family:crypto-tls-version", "family:crypto-tls-no-verify", "family:crypto-weak-cipher", "family:pii-exposure"]
47
+ },
48
+ {
49
+ "id": "DE.CM",
50
+ "function": "DETECT",
51
+ "category": "Continuous Monitoring",
52
+ "summary": "Anomalous activity, indicators of compromise are monitored.",
53
+ "evidence": ["Watch mode artifacts at .agentic-security/watch-status.{md,json}.", "CVE-alert daemon configured."],
54
+ "mapsTo": ["module:watch-mode", "module:cve-alert-daemon"]
55
+ },
56
+ {
57
+ "id": "RS.AN",
58
+ "function": "RESPOND",
59
+ "category": "Analysis",
60
+ "summary": "Notifications from detection systems are investigated.",
61
+ "evidence": ["Triage transitions logged in triage.json.", "Triage-memory entries with reasons."],
62
+ "mapsTo": ["module:triage", "module:triage-memory"]
63
+ },
64
+ {
65
+ "id": "RC.RP",
66
+ "function": "RECOVER",
67
+ "category": "Recovery Planning",
68
+ "summary": "Recovery plans are executed and improved after an incident.",
69
+ "evidence": ["Fix history under .agentic-security/fix-history/log.json.", "Verifier outcomes recorded."],
70
+ "mapsTo": ["module:fix-history", "module:verifier"]
71
+ }
72
+ ]
73
+ }
@@ -0,0 +1,79 @@
1
+ {
2
+ "id": "owasp-asvs-5",
3
+ "name": "OWASP Application Security Verification Standard 5.0",
4
+ "publisher": "OWASP Foundation",
5
+ "license": "Creative Commons Attribution-ShareAlike 4.0",
6
+ "url": "https://owasp.org/www-project-application-security-verification-standard/",
7
+ "controls": [
8
+ {
9
+ "id": "V2.1",
10
+ "category": "Authentication",
11
+ "summary": "Verify that authentication is performed for protected functions.",
12
+ "evidence": ["Zero open critical findings in family auth-missing on the current scan."],
13
+ "mapsTo": ["family:auth-missing"]
14
+ },
15
+ {
16
+ "id": "V2.7",
17
+ "category": "Authentication",
18
+ "summary": "Verify that MFA / secondary authentication is used for high-value operations.",
19
+ "evidence": ["aws-no-mfa-condition zero findings (if AWS in scope)."],
20
+ "mapsTo": ["family:aws-no-mfa"]
21
+ },
22
+ {
23
+ "id": "V4.1",
24
+ "category": "Access Control",
25
+ "summary": "Verify that authorization is enforced for every resource access.",
26
+ "evidence": ["Zero idor / authz findings."],
27
+ "mapsTo": ["family:idor", "family:authz"]
28
+ },
29
+ {
30
+ "id": "V5.1",
31
+ "category": "Input Validation",
32
+ "summary": "Verify input validation for type, length, and content.",
33
+ "evidence": ["Zero open critical findings in sqli/xss/command-injection/ldap-injection/xpath-injection."],
34
+ "mapsTo": ["family:sqli", "family:xss", "family:command-injection", "family:ldap-injection", "family:xpath-injection", "family:nosql-injection"]
35
+ },
36
+ {
37
+ "id": "V6.1",
38
+ "category": "Cryptography",
39
+ "summary": "Verify use of strong cryptography per a documented policy.",
40
+ "evidence": ["Zero open findings in crypto-weak-cipher / crypto-weak-hash / crypto-ecb / crypto-static-iv."],
41
+ "mapsTo": ["family:crypto-weak-cipher", "family:crypto-weak-hash", "family:crypto-ecb", "family:crypto-static-iv", "family:crypto-kdf-weak"]
42
+ },
43
+ {
44
+ "id": "V6.2",
45
+ "category": "Cryptography",
46
+ "summary": "Verify all transit data uses TLS ≥ 1.2.",
47
+ "evidence": ["Zero findings in crypto-tls-version / crypto-tls-no-verify."],
48
+ "mapsTo": ["family:crypto-tls-version", "family:crypto-tls-no-verify"]
49
+ },
50
+ {
51
+ "id": "V7.1",
52
+ "category": "Error Handling & Logging",
53
+ "summary": "Verify that error handling does not disclose sensitive information.",
54
+ "evidence": ["No findings in family data-exposure."],
55
+ "mapsTo": ["family:data-exposure"]
56
+ },
57
+ {
58
+ "id": "V8.1",
59
+ "category": "Data Protection",
60
+ "summary": "Verify that personal data is protected at rest and in transit.",
61
+ "evidence": ["DPIA artifact at .agentic-security/dpia.md.", "Zero pii-exposure findings."],
62
+ "mapsTo": ["family:pii-exposure", "family:training-data-pii"]
63
+ },
64
+ {
65
+ "id": "V10.1",
66
+ "category": "Malicious Code",
67
+ "summary": "Verify the application does not include known-malicious or compromised dependencies.",
68
+ "evidence": [".agentic-security/sbom-history snapshots clean.", "No dependency-confusion or dependency-drift findings."],
69
+ "mapsTo": ["family:vulnerable-dependency", "family:dependency-confusion", "family:dependency-drift"]
70
+ },
71
+ {
72
+ "id": "V14.1",
73
+ "category": "Configuration",
74
+ "summary": "Verify that build, deployment, and configuration are secure.",
75
+ "evidence": ["No findings in family iam-overpermissive / k8s-rbac-cluster-admin / k8s-pod-security-privileged."],
76
+ "mapsTo": ["family:iam-overpermissive", "family:k8s-rbac-cluster-admin", "family:k8s-pod-security-privileged"]
77
+ }
78
+ ]
79
+ }
@@ -0,0 +1,69 @@
1
+ {
2
+ "id": "owasp-llm-top-10",
3
+ "name": "OWASP Top 10 for LLM Applications 2025",
4
+ "publisher": "OWASP Foundation",
5
+ "license": "Creative Commons Attribution-ShareAlike 4.0",
6
+ "url": "https://owasp.org/www-project-top-10-for-large-language-model-applications/",
7
+ "controls": [
8
+ {
9
+ "id": "LLM01",
10
+ "summary": "Prompt Injection — controls preventing injected instructions from overriding the system prompt.",
11
+ "evidence": ["Zero open findings in family prompt-injection / llm-app-security.", "Prompt-template integrity check passing."],
12
+ "mapsTo": ["family:prompt-injection", "family:llm-app-security", "family:prompt-integrity"]
13
+ },
14
+ {
15
+ "id": "LLM02",
16
+ "summary": "Insecure Output Handling — LLM output is not directly piped to dangerous sinks (eval/shell/SQL/HTML).",
17
+ "evidence": ["Zero open findings in subfamily llm-output-untrusted-sink."],
18
+ "mapsTo": ["family:llm-app-security:llm-output-untrusted-sink"]
19
+ },
20
+ {
21
+ "id": "LLM03",
22
+ "summary": "Training Data Poisoning — provenance and integrity controls on training/fine-tuning data.",
23
+ "evidence": ["No streaming-dataset-url findings.", "datasets.load_dataset uses pinned revisions."],
24
+ "mapsTo": ["family:streaming-dataset-url", "family:hf-datasets-rce"]
25
+ },
26
+ {
27
+ "id": "LLM04",
28
+ "summary": "Model Denial of Service — rate-limit / token-cap controls.",
29
+ "evidence": ["LLM API calls in source carry an explicit max_tokens cap (bodyguard rule no-max-tokens)."],
30
+ "mapsTo": ["rule:no-max-tokens"]
31
+ },
32
+ {
33
+ "id": "LLM05",
34
+ "summary": "Supply Chain — model & dataset supply-chain integrity.",
35
+ "evidence": ["No mlflow-untrusted-uri / model-format / hf-endpoint-override findings.", "Sigstore provenance verification configured if opt-in."],
36
+ "mapsTo": ["family:mlflow-untrusted-uri", "family:model-format", "family:hf-endpoint-override"]
37
+ },
38
+ {
39
+ "id": "LLM06",
40
+ "summary": "Sensitive Information Disclosure — output filters prevent leakage.",
41
+ "evidence": ["Zero findings in subfamily llm-credential-in-prompt.", "Redact module covers prompt + response."],
42
+ "mapsTo": ["family:llm-app-security:llm-credential-in-prompt"]
43
+ },
44
+ {
45
+ "id": "LLM07",
46
+ "summary": "Insecure Plugin / Tool Design — tools the LLM can invoke are narrowly scoped.",
47
+ "evidence": ["Zero llm-app-security:llm-tool-exec findings.", "Agent tool definitions reviewed for excessive agency."],
48
+ "mapsTo": ["family:agent-tool-exec", "family:llm-app-security:llm-tool-exec"]
49
+ },
50
+ {
51
+ "id": "LLM08",
52
+ "summary": "Excessive Agency — agent autonomy is bounded by explicit guards.",
53
+ "evidence": ["MCP server config limits write-tools to confirm:true + reserved-write-path refusal.", "Apply-fix path requires HMAC-verified scan."],
54
+ "mapsTo": ["module:mcp-tools", "module:apply-fix"]
55
+ },
56
+ {
57
+ "id": "LLM09",
58
+ "summary": "Overreliance — human review checkpoints exist.",
59
+ "evidence": ["security-fixer agent has Stop-on-verify-fail loop.", "PreToolUse bodyguard exists."],
60
+ "mapsTo": ["module:security-fixer", "module:pre-edit-bodyguard"]
61
+ },
62
+ {
63
+ "id": "LLM10",
64
+ "summary": "Model Theft — model access controls.",
65
+ "evidence": ["No private-key-in-frontend or rpc-key-inline findings in client code."],
66
+ "mapsTo": ["family:private-key-in-frontend", "family:rpc-key-inline"]
67
+ }
68
+ ]
69
+ }