vaspera 2.8.0 → 2.9.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 (303) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/README.md +111 -7
  3. package/dist/__tests__/agents/adversary/tactics/api.test.d.ts +5 -0
  4. package/dist/__tests__/agents/adversary/tactics/api.test.d.ts.map +1 -0
  5. package/dist/__tests__/agents/adversary/tactics/api.test.js +369 -0
  6. package/dist/__tests__/agents/adversary/tactics/api.test.js.map +1 -0
  7. package/dist/__tests__/agents/adversary/tactics/llm.test.d.ts +5 -0
  8. package/dist/__tests__/agents/adversary/tactics/llm.test.d.ts.map +1 -0
  9. package/dist/__tests__/agents/adversary/tactics/llm.test.js +409 -0
  10. package/dist/__tests__/agents/adversary/tactics/llm.test.js.map +1 -0
  11. package/dist/__tests__/agents/adversary/tactics/registry.test.d.ts +7 -0
  12. package/dist/__tests__/agents/adversary/tactics/registry.test.d.ts.map +1 -0
  13. package/dist/__tests__/agents/adversary/tactics/registry.test.js +74 -0
  14. package/dist/__tests__/agents/adversary/tactics/registry.test.js.map +1 -0
  15. package/dist/__tests__/agents/adversary/tactics/web-app.test.d.ts +7 -0
  16. package/dist/__tests__/agents/adversary/tactics/web-app.test.d.ts.map +1 -0
  17. package/dist/__tests__/agents/adversary/tactics/web-app.test.js +374 -0
  18. package/dist/__tests__/agents/adversary/tactics/web-app.test.js.map +1 -0
  19. package/dist/__tests__/compliance-bundle.test.d.ts +9 -0
  20. package/dist/__tests__/compliance-bundle.test.d.ts.map +1 -0
  21. package/dist/__tests__/compliance-bundle.test.js +344 -0
  22. package/dist/__tests__/compliance-bundle.test.js.map +1 -0
  23. package/dist/__tests__/healthcare-compliance.test.d.ts +9 -0
  24. package/dist/__tests__/healthcare-compliance.test.d.ts.map +1 -0
  25. package/dist/__tests__/healthcare-compliance.test.js +233 -0
  26. package/dist/__tests__/healthcare-compliance.test.js.map +1 -0
  27. package/dist/action/diff-mode.d.ts +124 -8
  28. package/dist/action/diff-mode.d.ts.map +1 -1
  29. package/dist/action/diff-mode.js +384 -65
  30. package/dist/action/diff-mode.js.map +1 -1
  31. package/dist/action/diff-mode.test.js +3 -3
  32. package/dist/action/diff-mode.test.js.map +1 -1
  33. package/dist/action/pr-comment.test.js +1 -0
  34. package/dist/action/pr-comment.test.js.map +1 -1
  35. package/dist/action/sarif-upload.test.js +1 -0
  36. package/dist/action/sarif-upload.test.js.map +1 -1
  37. package/dist/agents/adversary/config.d.ts +25 -4
  38. package/dist/agents/adversary/config.d.ts.map +1 -1
  39. package/dist/agents/adversary/config.js +38 -8
  40. package/dist/agents/adversary/config.js.map +1 -1
  41. package/dist/agents/adversary/index.d.ts +7 -0
  42. package/dist/agents/adversary/index.d.ts.map +1 -1
  43. package/dist/agents/adversary/index.js +83 -1
  44. package/dist/agents/adversary/index.js.map +1 -1
  45. package/dist/agents/adversary/reporting/compliance-mapper.d.ts +108 -0
  46. package/dist/agents/adversary/reporting/compliance-mapper.d.ts.map +1 -0
  47. package/dist/agents/adversary/reporting/compliance-mapper.js +391 -0
  48. package/dist/agents/adversary/reporting/compliance-mapper.js.map +1 -0
  49. package/dist/agents/adversary/reporting/index.d.ts +10 -0
  50. package/dist/agents/adversary/reporting/index.d.ts.map +1 -0
  51. package/dist/agents/adversary/reporting/index.js +10 -0
  52. package/dist/agents/adversary/reporting/index.js.map +1 -0
  53. package/dist/agents/adversary/reporting/poc-generator.d.ts +44 -0
  54. package/dist/agents/adversary/reporting/poc-generator.d.ts.map +1 -0
  55. package/dist/agents/adversary/reporting/poc-generator.js +308 -0
  56. package/dist/agents/adversary/reporting/poc-generator.js.map +1 -0
  57. package/dist/agents/adversary/tactics/api.d.ts +13 -0
  58. package/dist/agents/adversary/tactics/api.d.ts.map +1 -0
  59. package/dist/agents/adversary/tactics/api.js +815 -0
  60. package/dist/agents/adversary/tactics/api.js.map +1 -0
  61. package/dist/agents/adversary/tactics/auth.d.ts +13 -0
  62. package/dist/agents/adversary/tactics/auth.d.ts.map +1 -0
  63. package/dist/agents/adversary/tactics/auth.js +676 -0
  64. package/dist/agents/adversary/tactics/auth.js.map +1 -0
  65. package/dist/agents/adversary/tactics/index.d.ts +129 -0
  66. package/dist/agents/adversary/tactics/index.d.ts.map +1 -0
  67. package/dist/agents/adversary/tactics/index.js +199 -0
  68. package/dist/agents/adversary/tactics/index.js.map +1 -0
  69. package/dist/agents/adversary/tactics/infra.d.ts +13 -0
  70. package/dist/agents/adversary/tactics/infra.d.ts.map +1 -0
  71. package/dist/agents/adversary/tactics/infra.js +827 -0
  72. package/dist/agents/adversary/tactics/infra.js.map +1 -0
  73. package/dist/agents/adversary/tactics/injection.d.ts +12 -0
  74. package/dist/agents/adversary/tactics/injection.d.ts.map +1 -0
  75. package/dist/agents/adversary/tactics/injection.js +549 -0
  76. package/dist/agents/adversary/tactics/injection.js.map +1 -0
  77. package/dist/agents/adversary/tactics/llm.d.ts +13 -0
  78. package/dist/agents/adversary/tactics/llm.d.ts.map +1 -0
  79. package/dist/agents/adversary/tactics/llm.js +767 -0
  80. package/dist/agents/adversary/tactics/llm.js.map +1 -0
  81. package/dist/agents/adversary/tactics/web-app.d.ts +13 -0
  82. package/dist/agents/adversary/tactics/web-app.d.ts.map +1 -0
  83. package/dist/agents/adversary/tactics/web-app.js +717 -0
  84. package/dist/agents/adversary/tactics/web-app.js.map +1 -0
  85. package/dist/agents/adversary/types.d.ts +66 -10
  86. package/dist/agents/adversary/types.d.ts.map +1 -1
  87. package/dist/agents/zero-day-hunter.d.ts +1 -1
  88. package/dist/agents/zero-day-hunter.d.ts.map +1 -1
  89. package/dist/analysis/data-flow.d.ts +154 -0
  90. package/dist/analysis/data-flow.d.ts.map +1 -0
  91. package/dist/analysis/data-flow.js +393 -0
  92. package/dist/analysis/data-flow.js.map +1 -0
  93. package/dist/analysis/index.d.ts +9 -0
  94. package/dist/analysis/index.d.ts.map +1 -0
  95. package/dist/analysis/index.js +9 -0
  96. package/dist/analysis/index.js.map +1 -0
  97. package/dist/badge-service/index.d.ts +144 -0
  98. package/dist/badge-service/index.d.ts.map +1 -0
  99. package/dist/badge-service/index.js +206 -0
  100. package/dist/badge-service/index.js.map +1 -0
  101. package/dist/certification/types.d.ts +1 -1
  102. package/dist/certification/types.d.ts.map +1 -1
  103. package/dist/certification/types.js.map +1 -1
  104. package/dist/commands/certification/certify.d.ts.map +1 -1
  105. package/dist/commands/certification/certify.js +18 -4
  106. package/dist/commands/certification/certify.js.map +1 -1
  107. package/dist/compliance/attestation.d.ts +39 -0
  108. package/dist/compliance/attestation.d.ts.map +1 -0
  109. package/dist/compliance/attestation.js +364 -0
  110. package/dist/compliance/attestation.js.map +1 -0
  111. package/dist/compliance/cfr42-part2.d.ts +42 -0
  112. package/dist/compliance/cfr42-part2.d.ts.map +1 -0
  113. package/dist/compliance/cfr42-part2.js +408 -0
  114. package/dist/compliance/cfr42-part2.js.map +1 -0
  115. package/dist/compliance/compliance-bundle.d.ts +100 -0
  116. package/dist/compliance/compliance-bundle.d.ts.map +1 -0
  117. package/dist/compliance/compliance-bundle.js +210 -0
  118. package/dist/compliance/compliance-bundle.js.map +1 -0
  119. package/dist/compliance/healthcare-bundle.d.ts +68 -0
  120. package/dist/compliance/healthcare-bundle.d.ts.map +1 -0
  121. package/dist/compliance/healthcare-bundle.js +104 -0
  122. package/dist/compliance/healthcare-bundle.js.map +1 -0
  123. package/dist/compliance/hipaa.d.ts.map +1 -1
  124. package/dist/compliance/hipaa.js +14 -11
  125. package/dist/compliance/hipaa.js.map +1 -1
  126. package/dist/compliance/index.d.ts +10 -2
  127. package/dist/compliance/index.d.ts.map +1 -1
  128. package/dist/compliance/index.js +9 -3
  129. package/dist/compliance/index.js.map +1 -1
  130. package/dist/compliance/mapper.d.ts.map +1 -1
  131. package/dist/compliance/mapper.js +3 -17
  132. package/dist/compliance/mapper.js.map +1 -1
  133. package/dist/compliance/nist-800-53.d.ts +22 -6
  134. package/dist/compliance/nist-800-53.d.ts.map +1 -1
  135. package/dist/compliance/nist-800-53.js +264 -272
  136. package/dist/compliance/nist-800-53.js.map +1 -1
  137. package/dist/compliance/report.d.ts +31 -2
  138. package/dist/compliance/report.d.ts.map +1 -1
  139. package/dist/compliance/report.js +255 -4
  140. package/dist/compliance/report.js.map +1 -1
  141. package/dist/compliance/types.d.ts +1 -1
  142. package/dist/compliance/types.d.ts.map +1 -1
  143. package/dist/config/flags.d.ts +12 -12
  144. package/dist/cost/index.d.ts +1 -1
  145. package/dist/cost/index.d.ts.map +1 -1
  146. package/dist/cost/index.js +1 -1
  147. package/dist/cost/index.js.map +1 -1
  148. package/dist/cost/tracker.d.ts +64 -0
  149. package/dist/cost/tracker.d.ts.map +1 -1
  150. package/dist/cost/tracker.js +165 -0
  151. package/dist/cost/tracker.js.map +1 -1
  152. package/dist/eval/fixtures/healthcare/audit-gaps.d.ts +28 -0
  153. package/dist/eval/fixtures/healthcare/audit-gaps.d.ts.map +1 -0
  154. package/dist/eval/fixtures/healthcare/audit-gaps.js +90 -0
  155. package/dist/eval/fixtures/healthcare/audit-gaps.js.map +1 -0
  156. package/dist/eval/fixtures/healthcare/consent-bypass.d.ts +31 -0
  157. package/dist/eval/fixtures/healthcare/consent-bypass.d.ts.map +1 -0
  158. package/dist/eval/fixtures/healthcare/consent-bypass.js +61 -0
  159. package/dist/eval/fixtures/healthcare/consent-bypass.js.map +1 -0
  160. package/dist/eval/fixtures/healthcare/phi-in-logs.d.ts +24 -0
  161. package/dist/eval/fixtures/healthcare/phi-in-logs.d.ts.map +1 -0
  162. package/dist/eval/fixtures/healthcare/phi-in-logs.js +41 -0
  163. package/dist/eval/fixtures/healthcare/phi-in-logs.js.map +1 -0
  164. package/dist/evidence/collector.d.ts +21 -0
  165. package/dist/evidence/collector.d.ts.map +1 -0
  166. package/dist/evidence/collector.js +340 -0
  167. package/dist/evidence/collector.js.map +1 -0
  168. package/dist/evidence/index.d.ts +11 -0
  169. package/dist/evidence/index.d.ts.map +1 -0
  170. package/dist/evidence/index.js +12 -0
  171. package/dist/evidence/index.js.map +1 -0
  172. package/dist/evidence/store.d.ts +39 -0
  173. package/dist/evidence/store.d.ts.map +1 -0
  174. package/dist/evidence/store.js +173 -0
  175. package/dist/evidence/store.js.map +1 -0
  176. package/dist/evidence/types.d.ts +175 -0
  177. package/dist/evidence/types.d.ts.map +1 -0
  178. package/dist/evidence/types.js +9 -0
  179. package/dist/evidence/types.js.map +1 -0
  180. package/dist/exporters/checkmarx.d.ts +18 -0
  181. package/dist/exporters/checkmarx.d.ts.map +1 -0
  182. package/dist/exporters/checkmarx.js +203 -0
  183. package/dist/exporters/checkmarx.js.map +1 -0
  184. package/dist/exporters/index.d.ts +22 -0
  185. package/dist/exporters/index.d.ts.map +1 -0
  186. package/dist/exporters/index.js +41 -0
  187. package/dist/exporters/index.js.map +1 -0
  188. package/dist/exporters/snyk.d.ts +18 -0
  189. package/dist/exporters/snyk.d.ts.map +1 -0
  190. package/dist/exporters/snyk.js +119 -0
  191. package/dist/exporters/snyk.js.map +1 -0
  192. package/dist/exporters/sonarqube.d.ts +18 -0
  193. package/dist/exporters/sonarqube.d.ts.map +1 -0
  194. package/dist/exporters/sonarqube.js +125 -0
  195. package/dist/exporters/sonarqube.js.map +1 -0
  196. package/dist/exporters/types.d.ts +190 -0
  197. package/dist/exporters/types.d.ts.map +1 -0
  198. package/dist/exporters/types.js +9 -0
  199. package/dist/exporters/types.js.map +1 -0
  200. package/dist/frontier/index.d.ts +12 -0
  201. package/dist/frontier/index.d.ts.map +1 -0
  202. package/dist/frontier/index.js +12 -0
  203. package/dist/frontier/index.js.map +1 -0
  204. package/dist/frontier/orchestrator.d.ts +73 -0
  205. package/dist/frontier/orchestrator.d.ts.map +1 -0
  206. package/dist/frontier/orchestrator.js +312 -0
  207. package/dist/frontier/orchestrator.js.map +1 -0
  208. package/dist/frontier/providers/stub.d.ts +32 -0
  209. package/dist/frontier/providers/stub.d.ts.map +1 -0
  210. package/dist/frontier/providers/stub.js +66 -0
  211. package/dist/frontier/providers/stub.js.map +1 -0
  212. package/dist/frontier/types.d.ts +318 -0
  213. package/dist/frontier/types.d.ts.map +1 -0
  214. package/dist/frontier/types.js +27 -0
  215. package/dist/frontier/types.js.map +1 -0
  216. package/dist/history/index.d.ts +13 -0
  217. package/dist/history/index.d.ts.map +1 -0
  218. package/dist/history/index.js +15 -0
  219. package/dist/history/index.js.map +1 -0
  220. package/dist/history/store.d.ts +74 -0
  221. package/dist/history/store.d.ts.map +1 -0
  222. package/dist/history/store.js +399 -0
  223. package/dist/history/store.js.map +1 -0
  224. package/dist/history/types.d.ts +282 -0
  225. package/dist/history/types.d.ts.map +1 -0
  226. package/dist/history/types.js +41 -0
  227. package/dist/history/types.js.map +1 -0
  228. package/dist/history/verify.d.ts +44 -0
  229. package/dist/history/verify.d.ts.map +1 -0
  230. package/dist/history/verify.js +230 -0
  231. package/dist/history/verify.js.map +1 -0
  232. package/dist/index.d.ts.map +1 -1
  233. package/dist/index.js +431 -18
  234. package/dist/index.js.map +1 -1
  235. package/dist/multimodel/index.d.ts +1 -0
  236. package/dist/multimodel/index.d.ts.map +1 -1
  237. package/dist/multimodel/index.js +2 -0
  238. package/dist/multimodel/index.js.map +1 -1
  239. package/dist/multimodel/leaderboard.d.ts +116 -0
  240. package/dist/multimodel/leaderboard.d.ts.map +1 -0
  241. package/dist/multimodel/leaderboard.js +262 -0
  242. package/dist/multimodel/leaderboard.js.map +1 -0
  243. package/dist/observability/otel.d.ts.map +1 -1
  244. package/dist/observability/otel.js +1 -3
  245. package/dist/observability/otel.js.map +1 -1
  246. package/dist/plugins/loader.js +1 -1
  247. package/dist/plugins/loader.js.map +1 -1
  248. package/dist/scanners/agent/agent-chain-analysis.d.ts +152 -0
  249. package/dist/scanners/agent/agent-chain-analysis.d.ts.map +1 -0
  250. package/dist/scanners/agent/agent-chain-analysis.js +438 -0
  251. package/dist/scanners/agent/agent-chain-analysis.js.map +1 -0
  252. package/dist/scanners/agent/payloads/index.d.ts +2 -1
  253. package/dist/scanners/agent/payloads/index.d.ts.map +1 -1
  254. package/dist/scanners/agent/payloads/index.js +25 -6
  255. package/dist/scanners/agent/payloads/index.js.map +1 -1
  256. package/dist/scanners/agent/prompt-injection-fuzzer.d.ts.map +1 -1
  257. package/dist/scanners/agent/prompt-injection-fuzzer.js +14 -0
  258. package/dist/scanners/agent/prompt-injection-fuzzer.js.map +1 -1
  259. package/dist/scanners/agent/types.d.ts +5 -5
  260. package/dist/scanners/agent/types.d.ts.map +1 -1
  261. package/dist/scanners/agent/types.js.map +1 -1
  262. package/dist/scanners/cache.d.ts +156 -0
  263. package/dist/scanners/cache.d.ts.map +1 -0
  264. package/dist/scanners/cache.js +462 -0
  265. package/dist/scanners/cache.js.map +1 -0
  266. package/dist/scanners/dependencies.js +4 -4
  267. package/dist/scanners/dependencies.js.map +1 -1
  268. package/dist/scanners/gosec.d.ts.map +1 -1
  269. package/dist/scanners/gosec.js +47 -9
  270. package/dist/scanners/gosec.js.map +1 -1
  271. package/dist/scanners/healthcare.d.ts +29 -0
  272. package/dist/scanners/healthcare.d.ts.map +1 -0
  273. package/dist/scanners/healthcare.js +526 -0
  274. package/dist/scanners/healthcare.js.map +1 -0
  275. package/dist/scanners/index.d.ts +1 -0
  276. package/dist/scanners/index.d.ts.map +1 -1
  277. package/dist/scanners/index.js +33 -0
  278. package/dist/scanners/index.js.map +1 -1
  279. package/dist/scanners/index.test.js +6 -6
  280. package/dist/scanners/index.test.js.map +1 -1
  281. package/dist/scanners/secrets.js +4 -4
  282. package/dist/scanners/secrets.js.map +1 -1
  283. package/dist/scanners/semgrep.js +5 -5
  284. package/dist/scanners/semgrep.js.map +1 -1
  285. package/dist/scanners/types.d.ts +1 -1
  286. package/dist/scanners/types.d.ts.map +1 -1
  287. package/dist/scanners/types.js +1 -0
  288. package/dist/scanners/types.js.map +1 -1
  289. package/dist/scanners/typescript.test.js +1 -1
  290. package/dist/scanners/typescript.test.js.map +1 -1
  291. package/dist/telemetry/index.d.ts +10 -0
  292. package/dist/telemetry/index.d.ts.map +1 -0
  293. package/dist/telemetry/index.js +10 -0
  294. package/dist/telemetry/index.js.map +1 -0
  295. package/dist/telemetry/registry.d.ts +178 -0
  296. package/dist/telemetry/registry.d.ts.map +1 -0
  297. package/dist/telemetry/registry.js +297 -0
  298. package/dist/telemetry/registry.js.map +1 -0
  299. package/dist/telemetry/usage.d.ts +197 -0
  300. package/dist/telemetry/usage.d.ts.map +1 -0
  301. package/dist/telemetry/usage.js +244 -0
  302. package/dist/telemetry/usage.js.map +1 -0
  303. package/package.json +1 -1
@@ -1,8 +1,20 @@
1
1
  /**
2
- * NIST 800-53 Security and Privacy Controls
2
+ * NIST SP 800-53 Rev. 5 Security Controls
3
3
  *
4
- * NIST Special Publication 800-53 Rev. 5 controls mapped to security finding categories.
5
- * Focuses on controls relevant to application security and code analysis.
4
+ * Security and Privacy Controls for Information Systems and Organizations.
5
+ * This implements controls relevant to software/code security.
6
+ *
7
+ * Control Families:
8
+ * - AC: Access Control
9
+ * - AU: Audit and Accountability
10
+ * - CA: Assessment, Authorization, and Monitoring
11
+ * - CM: Configuration Management
12
+ * - IA: Identification and Authentication
13
+ * - RA: Risk Assessment
14
+ * - SA: System and Services Acquisition
15
+ * - SC: System and Communications Protection
16
+ * - SI: System and Information Integrity
17
+ * - SR: Supply Chain Risk Management
6
18
  *
7
19
  * @module compliance/nist-800-53
8
20
  */
@@ -10,15 +22,17 @@
10
22
  * NIST 800-53 Rev. 5 Controls relevant to code security
11
23
  */
12
24
  export const NIST_800_53_CONTROLS = [
13
- // AC - Access Control Family
25
+ // =========================================================================
26
+ // AC - Access Control
27
+ // =========================================================================
14
28
  {
15
29
  id: "AC-2",
16
30
  framework: "NIST-800-53",
17
31
  category: "Access Control",
18
32
  title: "Account Management",
19
- description: "Define and document the types of accounts allowed and specifically prohibited for use within the system. Assign account managers and establish conditions for group membership.",
33
+ description: "Define and document types of accounts allowed; create, enable, modify, disable, and remove accounts in accordance with policy.",
20
34
  keywords: ["account", "user management", "provisioning", "deprovisioning"],
21
- findingCategories: ["auth-bypass", "broken-access-control"],
35
+ findingCategories: ["broken-access-control", "auth-bypass"],
22
36
  cweIds: ["CWE-269", "CWE-266", "CWE-284"],
23
37
  severityThreshold: "medium",
24
38
  },
@@ -28,7 +42,7 @@ export const NIST_800_53_CONTROLS = [
28
42
  category: "Access Control",
29
43
  title: "Access Enforcement",
30
44
  description: "Enforce approved authorizations for logical access to information and system resources in accordance with applicable access control policies.",
31
- keywords: ["authorization", "access control", "permissions", "privilege"],
45
+ keywords: ["authorization", "access control", "permission", "rbac", "abac"],
32
46
  findingCategories: ["broken-access-control", "auth-bypass", "privilege-escalation"],
33
47
  cweIds: ["CWE-862", "CWE-863", "CWE-285"],
34
48
  severityThreshold: "high",
@@ -38,10 +52,10 @@ export const NIST_800_53_CONTROLS = [
38
52
  framework: "NIST-800-53",
39
53
  category: "Access Control",
40
54
  title: "Information Flow Enforcement",
41
- description: "Enforce approved authorizations for controlling the flow of information within the system and between connected systems.",
42
- keywords: ["data flow", "information flow", "data transfer", "exfiltration"],
43
- findingCategories: ["data-exposure", "ssrf", "insecure-transmission"],
44
- cweIds: ["CWE-200", "CWE-918", "CWE-319"],
55
+ description: "Enforce approved authorizations for controlling the flow of information within the system and between connected systems based on security policies.",
56
+ keywords: ["data flow", "information flow", "boundary", "cross-domain"],
57
+ findingCategories: ["data-exposure", "insecure-data-flow", "ssrf"],
58
+ cweIds: ["CWE-200", "CWE-918", "CWE-441"],
45
59
  severityThreshold: "high",
46
60
  },
47
61
  {
@@ -49,10 +63,10 @@ export const NIST_800_53_CONTROLS = [
49
63
  framework: "NIST-800-53",
50
64
  category: "Access Control",
51
65
  title: "Separation of Duties",
52
- description: "Separate duties of individuals to prevent malevolent activity. Define system access authorizations to support separation of duties.",
53
- keywords: ["separation of duties", "role separation", "least privilege"],
54
- findingCategories: ["broken-access-control", "privilege-escalation"],
55
- cweIds: ["CWE-269", "CWE-250"],
66
+ description: "Separate duties of individuals to reduce risk of malevolent activity without collusion.",
67
+ keywords: ["separation", "segregation", "duties", "roles"],
68
+ findingCategories: ["privilege-escalation", "broken-access-control"],
69
+ cweIds: ["CWE-250", "CWE-269"],
56
70
  severityThreshold: "medium",
57
71
  },
58
72
  {
@@ -60,9 +74,9 @@ export const NIST_800_53_CONTROLS = [
60
74
  framework: "NIST-800-53",
61
75
  category: "Access Control",
62
76
  title: "Least Privilege",
63
- description: "Employ the principle of least privilege, allowing only authorized accesses for users which are necessary to accomplish assigned organizational tasks.",
64
- keywords: ["least privilege", "minimal access", "privilege", "authorization"],
65
- findingCategories: ["broken-access-control", "privilege-escalation"],
77
+ description: "Employ the principle of least privilege, allowing only authorized accesses that are necessary to accomplish assigned organizational tasks.",
78
+ keywords: ["least privilege", "minimum access", "need-to-know"],
79
+ findingCategories: ["privilege-escalation", "excessive-permissions"],
66
80
  cweIds: ["CWE-250", "CWE-269", "CWE-732"],
67
81
  severityThreshold: "medium",
68
82
  },
@@ -71,10 +85,10 @@ export const NIST_800_53_CONTROLS = [
71
85
  framework: "NIST-800-53",
72
86
  category: "Access Control",
73
87
  title: "Unsuccessful Logon Attempts",
74
- description: "Enforce a limit of consecutive invalid logon attempts by a user and automatically lock the account when the maximum number is exceeded.",
75
- keywords: ["login", "brute force", "lockout", "authentication"],
76
- findingCategories: ["auth-bypass", "weak-password"],
77
- cweIds: ["CWE-307", "CWE-287"],
88
+ description: "Enforce a limit of consecutive invalid logon attempts and take action when the limit is exceeded.",
89
+ keywords: ["login", "brute force", "lockout", "rate limit"],
90
+ findingCategories: ["brute-force", "auth-bypass"],
91
+ cweIds: ["CWE-307", "CWE-799"],
78
92
  severityThreshold: "medium",
79
93
  },
80
94
  {
@@ -82,8 +96,8 @@ export const NIST_800_53_CONTROLS = [
82
96
  framework: "NIST-800-53",
83
97
  category: "Access Control",
84
98
  title: "Concurrent Session Control",
85
- description: "Limit the number of concurrent sessions for each system account to an organization-defined number.",
86
- keywords: ["session", "concurrent", "session management"],
99
+ description: "Limit the number of concurrent sessions for each account.",
100
+ keywords: ["session", "concurrent", "login"],
87
101
  findingCategories: ["session-management"],
88
102
  cweIds: ["CWE-384", "CWE-613"],
89
103
  severityThreshold: "low",
@@ -93,8 +107,8 @@ export const NIST_800_53_CONTROLS = [
93
107
  framework: "NIST-800-53",
94
108
  category: "Access Control",
95
109
  title: "Device Lock",
96
- description: "Prevent further access to the system by initiating a session lock after a period of inactivity.",
97
- keywords: ["session timeout", "idle timeout", "session lock"],
110
+ description: "Prevent further access to the system by initiating a device lock after a specified period of inactivity.",
111
+ keywords: ["session timeout", "idle", "lock", "inactivity"],
98
112
  findingCategories: ["session-management"],
99
113
  cweIds: ["CWE-613"],
100
114
  severityThreshold: "low",
@@ -104,43 +118,34 @@ export const NIST_800_53_CONTROLS = [
104
118
  framework: "NIST-800-53",
105
119
  category: "Access Control",
106
120
  title: "Session Termination",
107
- description: "Automatically terminate a user session after organization-defined conditions or trigger events.",
108
- keywords: ["session termination", "logout", "session expiry"],
121
+ description: "Automatically terminate a user session after conditions or trigger events.",
122
+ keywords: ["logout", "session", "termination", "invalidation"],
109
123
  findingCategories: ["session-management"],
110
- cweIds: ["CWE-613"],
124
+ cweIds: ["CWE-613", "CWE-384"],
111
125
  severityThreshold: "low",
112
126
  },
113
- {
114
- id: "AC-14",
115
- framework: "NIST-800-53",
116
- category: "Access Control",
117
- title: "Permitted Actions without Identification or Authentication",
118
- description: "Identify specific user actions that can be performed on the system without identification or authentication.",
119
- keywords: ["unauthenticated access", "public access", "anonymous"],
120
- findingCategories: ["auth-bypass", "broken-access-control"],
121
- cweIds: ["CWE-287", "CWE-306"],
122
- severityThreshold: "high",
123
- },
124
127
  {
125
128
  id: "AC-17",
126
129
  framework: "NIST-800-53",
127
130
  category: "Access Control",
128
131
  title: "Remote Access",
129
- description: "Establish and document usage restrictions, configuration/connection requirements, and implementation guidance for each type of remote access allowed.",
130
- keywords: ["remote access", "VPN", "SSH", "RDP"],
131
- findingCategories: ["insecure-transmission", "auth-bypass"],
132
- cweIds: ["CWE-319", "CWE-287"],
132
+ description: "Establish and document usage restrictions and implementation guidance for each type of remote access.",
133
+ keywords: ["remote", "vpn", "api", "external access"],
134
+ findingCategories: ["insecure-api", "auth-bypass"],
135
+ cweIds: ["CWE-287", "CWE-306"],
133
136
  severityThreshold: "high",
134
137
  },
135
- // AU - Audit and Accountability Family
138
+ // =========================================================================
139
+ // AU - Audit and Accountability
140
+ // =========================================================================
136
141
  {
137
142
  id: "AU-2",
138
143
  framework: "NIST-800-53",
139
144
  category: "Audit and Accountability",
140
145
  title: "Event Logging",
141
- description: "Identify the types of events that the system is capable of logging in support of the audit function.",
142
- keywords: ["logging", "audit", "event logging", "audit trail"],
143
- findingCategories: ["insufficient-logging"],
146
+ description: "Identify the types of events that the system is capable of logging and coordinate with related entities.",
147
+ keywords: ["logging", "audit", "events", "tracking"],
148
+ findingCategories: ["insufficient-logging", "security-misconfiguration"],
144
149
  cweIds: ["CWE-778", "CWE-223"],
145
150
  severityThreshold: "medium",
146
151
  },
@@ -149,20 +154,20 @@ export const NIST_800_53_CONTROLS = [
149
154
  framework: "NIST-800-53",
150
155
  category: "Audit and Accountability",
151
156
  title: "Content of Audit Records",
152
- description: "Ensure that audit records contain information that establishes what type of event occurred, when it occurred, where it occurred, source, outcome, and identity.",
153
- keywords: ["audit content", "log format", "audit record"],
157
+ description: "Ensure that audit records contain information that establishes what type of event occurred, when, where, the source, outcome, and identity of involved individuals.",
158
+ keywords: ["audit content", "log format", "event details"],
154
159
  findingCategories: ["insufficient-logging"],
155
- cweIds: ["CWE-778"],
156
- severityThreshold: "medium",
160
+ cweIds: ["CWE-778", "CWE-532"],
161
+ severityThreshold: "low",
157
162
  },
158
163
  {
159
164
  id: "AU-6",
160
165
  framework: "NIST-800-53",
161
166
  category: "Audit and Accountability",
162
167
  title: "Audit Record Review, Analysis, and Reporting",
163
- description: "Review and analyze system audit records for indications of inappropriate or unusual activity and report findings.",
164
- keywords: ["audit review", "log analysis", "security monitoring"],
165
- findingCategories: ["insufficient-logging"],
168
+ description: "Review and analyze system audit records for indications of inappropriate or unusual activity.",
169
+ keywords: ["log analysis", "monitoring", "detection", "siem"],
170
+ findingCategories: ["insufficient-logging", "security-misconfiguration"],
166
171
  cweIds: ["CWE-778"],
167
172
  severityThreshold: "medium",
168
173
  },
@@ -172,54 +177,23 @@ export const NIST_800_53_CONTROLS = [
172
177
  category: "Audit and Accountability",
173
178
  title: "Protection of Audit Information",
174
179
  description: "Protect audit information and audit logging tools from unauthorized access, modification, and deletion.",
175
- keywords: ["log protection", "audit integrity", "tamper-proof"],
176
- findingCategories: ["insufficient-logging", "broken-access-control"],
177
- cweIds: ["CWE-778", "CWE-117"],
178
- severityThreshold: "medium",
179
- },
180
- {
181
- id: "AU-12",
182
- framework: "NIST-800-53",
183
- category: "Audit and Accountability",
184
- title: "Audit Record Generation",
185
- description: "Provide audit record generation capability for the events identified in AU-2 at system components.",
186
- keywords: ["audit generation", "logging", "event recording"],
187
- findingCategories: ["insufficient-logging"],
188
- cweIds: ["CWE-778"],
189
- severityThreshold: "medium",
190
- },
191
- // CA - Assessment, Authorization, and Monitoring Family
192
- {
193
- id: "CA-7",
194
- framework: "NIST-800-53",
195
- category: "Assessment and Authorization",
196
- title: "Continuous Monitoring",
197
- description: "Develop a continuous monitoring strategy and implement a continuous monitoring program that includes ongoing security assessments.",
198
- keywords: ["continuous monitoring", "security assessment", "vulnerability scanning"],
199
- findingCategories: ["security-misconfiguration", "dependency-vuln"],
200
- cweIds: ["CWE-1035"],
201
- severityThreshold: "medium",
202
- },
203
- {
204
- id: "CA-8",
205
- framework: "NIST-800-53",
206
- category: "Assessment and Authorization",
207
- title: "Penetration Testing",
208
- description: "Conduct penetration testing at an organization-defined frequency on organization-defined systems or system components.",
209
- keywords: ["penetration testing", "security testing", "red team"],
210
- findingCategories: [],
180
+ keywords: ["log protection", "audit integrity", "tamper"],
181
+ findingCategories: ["log-injection", "insufficient-logging"],
182
+ cweIds: ["CWE-117", "CWE-532"],
211
183
  severityThreshold: "medium",
212
184
  },
213
- // CM - Configuration Management Family
185
+ // =========================================================================
186
+ // CM - Configuration Management
187
+ // =========================================================================
214
188
  {
215
189
  id: "CM-2",
216
190
  framework: "NIST-800-53",
217
191
  category: "Configuration Management",
218
192
  title: "Baseline Configuration",
219
193
  description: "Develop, document, and maintain a current baseline configuration of the system.",
220
- keywords: ["baseline", "configuration", "hardening"],
194
+ keywords: ["baseline", "configuration", "standard", "hardening"],
221
195
  findingCategories: ["security-misconfiguration"],
222
- cweIds: ["CWE-1188"],
196
+ cweIds: ["CWE-16"],
223
197
  severityThreshold: "medium",
224
198
  },
225
199
  {
@@ -227,21 +201,21 @@ export const NIST_800_53_CONTROLS = [
227
201
  framework: "NIST-800-53",
228
202
  category: "Configuration Management",
229
203
  title: "Configuration Change Control",
230
- description: "Determine and document the types of changes to the system that are configuration-controlled.",
231
- keywords: ["change control", "change management", "version control"],
204
+ description: "Determine and document types of changes and control configuration changes to the system.",
205
+ keywords: ["change management", "version control", "deployment"],
232
206
  findingCategories: ["security-misconfiguration"],
233
- cweIds: ["CWE-1188"],
234
- severityThreshold: "low",
207
+ cweIds: ["CWE-16"],
208
+ severityThreshold: "medium",
235
209
  },
236
210
  {
237
211
  id: "CM-6",
238
212
  framework: "NIST-800-53",
239
213
  category: "Configuration Management",
240
214
  title: "Configuration Settings",
241
- description: "Establish and document configuration settings for system components that reflect the most restrictive mode consistent with operational requirements.",
242
- keywords: ["configuration settings", "security settings", "hardening"],
243
- findingCategories: ["security-misconfiguration"],
244
- cweIds: ["CWE-1188", "CWE-16"],
215
+ description: "Establish and document configuration settings for components using security configuration checklists.",
216
+ keywords: ["settings", "configuration", "defaults", "hardening"],
217
+ findingCategories: ["security-misconfiguration", "insecure-defaults"],
218
+ cweIds: ["CWE-16", "CWE-1188"],
245
219
  severityThreshold: "medium",
246
220
  },
247
221
  {
@@ -249,33 +223,35 @@ export const NIST_800_53_CONTROLS = [
249
223
  framework: "NIST-800-53",
250
224
  category: "Configuration Management",
251
225
  title: "Least Functionality",
252
- description: "Configure the system to provide only essential capabilities and prohibit or restrict the use of non-essential functions, ports, protocols, and services.",
253
- keywords: ["least functionality", "attack surface", "minimize exposure"],
254
- findingCategories: ["security-misconfiguration"],
255
- cweIds: ["CWE-1188"],
226
+ description: "Configure the system to provide only mission-essential capabilities and prohibit or restrict use of functions, ports, protocols, and services.",
227
+ keywords: ["minimize", "disable", "restrict", "ports", "services"],
228
+ findingCategories: ["security-misconfiguration", "excessive-permissions"],
229
+ cweIds: ["CWE-16", "CWE-250"],
256
230
  severityThreshold: "medium",
257
231
  },
258
- // IA - Identification and Authentication Family
232
+ // =========================================================================
233
+ // IA - Identification and Authentication
234
+ // =========================================================================
259
235
  {
260
236
  id: "IA-2",
261
237
  framework: "NIST-800-53",
262
238
  category: "Identification and Authentication",
263
239
  title: "Identification and Authentication (Organizational Users)",
264
- description: "Uniquely identify and authenticate organizational users and associate that unique identification with processes acting on behalf of those users.",
265
- keywords: ["authentication", "identity", "user identification"],
266
- findingCategories: ["auth-bypass", "session-management"],
240
+ description: "Uniquely identify and authenticate organizational users and associate that identity with processes acting on behalf of those users.",
241
+ keywords: ["authentication", "identity", "login", "credential"],
242
+ findingCategories: ["auth-bypass", "broken-authentication"],
267
243
  cweIds: ["CWE-287", "CWE-306"],
268
244
  severityThreshold: "high",
269
245
  },
270
246
  {
271
- id: "IA-4",
247
+ id: "IA-3",
272
248
  framework: "NIST-800-53",
273
249
  category: "Identification and Authentication",
274
- title: "Identifier Management",
275
- description: "Manage system identifiers by receiving authorization to assign identifiers, selecting identifiers that identify individuals, and preventing reuse of identifiers.",
276
- keywords: ["identifier", "user ID", "identity management"],
250
+ title: "Device Identification and Authentication",
251
+ description: "Uniquely identify and authenticate devices before establishing connections.",
252
+ keywords: ["device", "machine", "certificate", "mutual auth"],
277
253
  findingCategories: ["auth-bypass"],
278
- cweIds: ["CWE-287"],
254
+ cweIds: ["CWE-287", "CWE-295"],
279
255
  severityThreshold: "medium",
280
256
  },
281
257
  {
@@ -283,9 +259,9 @@ export const NIST_800_53_CONTROLS = [
283
259
  framework: "NIST-800-53",
284
260
  category: "Identification and Authentication",
285
261
  title: "Authenticator Management",
286
- description: "Manage system authenticators by verifying identity before distributing authenticators, establishing initial authenticator content, and ensuring authenticators have sufficient strength.",
287
- keywords: ["password", "credential", "authenticator", "token"],
288
- findingCategories: ["weak-password", "auth-bypass", "secrets"],
262
+ description: "Manage system authenticators by verifying identity of individuals, establishing initial credentials, and transmitting and receiving authenticators securely.",
263
+ keywords: ["password", "credential", "token", "key management"],
264
+ findingCategories: ["weak-password", "credential-exposure", "secrets"],
289
265
  cweIds: ["CWE-521", "CWE-522", "CWE-798"],
290
266
  severityThreshold: "high",
291
267
  },
@@ -295,9 +271,9 @@ export const NIST_800_53_CONTROLS = [
295
271
  category: "Identification and Authentication",
296
272
  title: "Authentication Feedback",
297
273
  description: "Obscure feedback of authentication information during the authentication process to protect the information from possible exploitation by unauthorized individuals.",
298
- keywords: ["authentication feedback", "password masking", "login error"],
299
- findingCategories: ["auth-bypass", "data-exposure"],
300
- cweIds: ["CWE-203", "CWE-209"],
274
+ keywords: ["password masking", "feedback", "enumeration"],
275
+ findingCategories: ["user-enumeration", "information-disclosure"],
276
+ cweIds: ["CWE-204", "CWE-203"],
301
277
  severityThreshold: "low",
302
278
  },
303
279
  {
@@ -306,43 +282,37 @@ export const NIST_800_53_CONTROLS = [
306
282
  category: "Identification and Authentication",
307
283
  title: "Identification and Authentication (Non-Organizational Users)",
308
284
  description: "Uniquely identify and authenticate non-organizational users or processes acting on behalf of non-organizational users.",
309
- keywords: ["external user", "third-party", "guest authentication"],
310
- findingCategories: ["auth-bypass"],
311
- cweIds: ["CWE-287", "CWE-306"],
285
+ keywords: ["external", "api key", "service account", "third-party"],
286
+ findingCategories: ["auth-bypass", "broken-authentication"],
287
+ cweIds: ["CWE-287"],
312
288
  severityThreshold: "high",
313
289
  },
314
- // RA - Risk Assessment Family
315
- {
316
- id: "RA-3",
317
- framework: "NIST-800-53",
318
- category: "Risk Assessment",
319
- title: "Risk Assessment",
320
- description: "Conduct a risk assessment to identify, estimate, and prioritize risks to organizational operations, organizational assets, and individuals.",
321
- keywords: ["risk assessment", "threat assessment", "vulnerability assessment"],
322
- findingCategories: ["dependency-vuln", "security-misconfiguration"],
323
- cweIds: ["CWE-1035"],
324
- severityThreshold: "medium",
325
- },
290
+ // =========================================================================
291
+ // RA - Risk Assessment
292
+ // =========================================================================
326
293
  {
327
294
  id: "RA-5",
328
295
  framework: "NIST-800-53",
329
296
  category: "Risk Assessment",
330
297
  title: "Vulnerability Monitoring and Scanning",
331
- description: "Monitor and scan for vulnerabilities in the system and hosted applications and document and remediate vulnerabilities.",
332
- keywords: ["vulnerability scanning", "security scanning", "SAST", "DAST"],
333
- findingCategories: ["dependency-vuln", "sql-injection", "xss", "command-injection"],
334
- cweIds: ["CWE-1035", "CWE-89", "CWE-79", "CWE-78"],
335
- severityThreshold: "high",
298
+ description: "Monitor and scan for vulnerabilities in the system and hosted applications and remediate discovered vulnerabilities.",
299
+ keywords: ["vulnerability", "scanning", "assessment", "remediation"],
300
+ findingCategories: ["dependency-vulnerability", "outdated-component"],
301
+ cweIds: ["CWE-1104"],
302
+ severityThreshold: "medium",
336
303
  },
337
- // SA - System and Services Acquisition Family
304
+ // =========================================================================
305
+ // SA - System and Services Acquisition
306
+ // =========================================================================
338
307
  {
339
308
  id: "SA-8",
340
309
  framework: "NIST-800-53",
341
310
  category: "System and Services Acquisition",
342
311
  title: "Security and Privacy Engineering Principles",
343
- description: "Apply security and privacy engineering principles in the specification, design, development, implementation, and modification of the system and system components.",
344
- keywords: ["secure design", "security engineering", "privacy by design"],
345
- findingCategories: ["security-misconfiguration", "type-safety"],
312
+ description: "Apply security and privacy engineering principles in the specification, design, development, implementation, and modification of the system.",
313
+ keywords: ["secure design", "security principles", "architecture"],
314
+ findingCategories: ["insecure-design"],
315
+ cweIds: ["CWE-657"],
346
316
  severityThreshold: "medium",
347
317
  },
348
318
  {
@@ -350,10 +320,10 @@ export const NIST_800_53_CONTROLS = [
350
320
  framework: "NIST-800-53",
351
321
  category: "System and Services Acquisition",
352
322
  title: "Developer Configuration Management",
353
- description: "Require the developer of the system to perform configuration management during system design, development, implementation, and operation.",
354
- keywords: ["developer", "configuration management", "SDLC"],
323
+ description: "Require the developer to maintain the integrity of changes and document them, perform configuration management, and implement only organization-approved changes.",
324
+ keywords: ["development", "version control", "change tracking"],
355
325
  findingCategories: ["security-misconfiguration"],
356
- cweIds: ["CWE-1188"],
326
+ cweIds: ["CWE-16"],
357
327
  severityThreshold: "low",
358
328
  },
359
329
  {
@@ -361,62 +331,44 @@ export const NIST_800_53_CONTROLS = [
361
331
  framework: "NIST-800-53",
362
332
  category: "System and Services Acquisition",
363
333
  title: "Developer Testing and Evaluation",
364
- description: "Require the developer of the system to create and implement a security and privacy assessment plan.",
365
- keywords: ["security testing", "developer testing", "code review"],
366
- findingCategories: ["type-safety", "error-handling"],
367
- severityThreshold: "medium",
368
- },
369
- {
370
- id: "SA-12",
371
- framework: "NIST-800-53",
372
- category: "System and Services Acquisition",
373
- title: "Supply Chain Risk Management",
374
- description: "Protect against supply chain risks by employing security safeguards in accordance with organization-defined supply chain risk management strategy.",
375
- keywords: ["supply chain", "third-party", "dependency", "vendor"],
376
- findingCategories: ["dependency-vuln"],
377
- cweIds: ["CWE-1035", "CWE-829"],
378
- severityThreshold: "high",
334
+ description: "Require the developer to create and implement a security and privacy assessment plan, demonstrate security and privacy control effectiveness.",
335
+ keywords: ["testing", "security testing", "code review", "assessment"],
336
+ findingCategories: ["insufficient-testing"],
337
+ cweIds: [],
338
+ severityThreshold: "low",
379
339
  },
380
340
  {
381
341
  id: "SA-15",
382
342
  framework: "NIST-800-53",
383
343
  category: "System and Services Acquisition",
384
344
  title: "Development Process, Standards, and Tools",
385
- description: "Require the developer of the system to follow a documented development process that addresses security and privacy requirements.",
386
- keywords: ["development process", "SDLC", "secure development"],
387
- findingCategories: ["type-safety", "error-handling"],
345
+ description: "Require the developer to follow a documented development process that incorporates security and privacy considerations.",
346
+ keywords: ["sdlc", "secure development", "standards"],
347
+ findingCategories: ["insecure-design"],
348
+ cweIds: [],
388
349
  severityThreshold: "low",
389
350
  },
390
- // SC - System and Communications Protection Family
351
+ // =========================================================================
352
+ // SC - System and Communications Protection
353
+ // =========================================================================
391
354
  {
392
355
  id: "SC-4",
393
356
  framework: "NIST-800-53",
394
357
  category: "System and Communications Protection",
395
358
  title: "Information in Shared System Resources",
396
359
  description: "Prevent unauthorized and unintended information transfer via shared system resources.",
397
- keywords: ["shared resources", "information leakage", "data isolation"],
398
- findingCategories: ["data-exposure"],
399
- cweIds: ["CWE-200", "CWE-226"],
360
+ keywords: ["shared resources", "information leakage", "isolation"],
361
+ findingCategories: ["data-exposure", "information-disclosure"],
362
+ cweIds: ["CWE-200", "CWE-212"],
400
363
  severityThreshold: "medium",
401
364
  },
402
- {
403
- id: "SC-5",
404
- framework: "NIST-800-53",
405
- category: "System and Communications Protection",
406
- title: "Denial-of-Service Protection",
407
- description: "Protect against or limit the effects of denial-of-service attacks by employing security safeguards.",
408
- keywords: ["denial of service", "DoS", "DDoS", "rate limiting"],
409
- findingCategories: ["denial-of-service", "resource-exhaustion"],
410
- cweIds: ["CWE-400", "CWE-770"],
411
- severityThreshold: "high",
412
- },
413
365
  {
414
366
  id: "SC-7",
415
367
  framework: "NIST-800-53",
416
368
  category: "System and Communications Protection",
417
369
  title: "Boundary Protection",
418
- description: "Monitor and control communications at the external managed interfaces to the system and at key internal managed interfaces within the system.",
419
- keywords: ["boundary protection", "firewall", "network segmentation"],
370
+ description: "Monitor and control communications at the external managed interfaces to the system and at key internal boundaries.",
371
+ keywords: ["boundary", "firewall", "gateway", "api gateway"],
420
372
  findingCategories: ["ssrf", "path-traversal"],
421
373
  cweIds: ["CWE-918", "CWE-22"],
422
374
  severityThreshold: "high",
@@ -427,9 +379,9 @@ export const NIST_800_53_CONTROLS = [
427
379
  category: "System and Communications Protection",
428
380
  title: "Transmission Confidentiality and Integrity",
429
381
  description: "Protect the confidentiality and integrity of transmitted information.",
430
- keywords: ["encryption", "TLS", "HTTPS", "data transmission"],
431
- findingCategories: ["insecure-transmission"],
432
- cweIds: ["CWE-319", "CWE-523"],
382
+ keywords: ["encryption", "tls", "https", "transmission"],
383
+ findingCategories: ["insecure-transmission", "cleartext"],
384
+ cweIds: ["CWE-319", "CWE-311"],
433
385
  severityThreshold: "high",
434
386
  },
435
387
  {
@@ -437,10 +389,10 @@ export const NIST_800_53_CONTROLS = [
437
389
  framework: "NIST-800-53",
438
390
  category: "System and Communications Protection",
439
391
  title: "Cryptographic Key Establishment and Management",
440
- description: "Establish and manage cryptographic keys when cryptography is employed within the system.",
441
- keywords: ["cryptographic keys", "key management", "encryption keys"],
442
- findingCategories: ["secrets", "weak-crypto"],
443
- cweIds: ["CWE-320", "CWE-321", "CWE-798"],
392
+ description: "Establish and manage cryptographic keys used within the system.",
393
+ keywords: ["key management", "cryptographic", "keys", "rotation"],
394
+ findingCategories: ["weak-cryptography", "hardcoded-key"],
395
+ cweIds: ["CWE-321", "CWE-320"],
444
396
  severityThreshold: "high",
445
397
  },
446
398
  {
@@ -448,22 +400,22 @@ export const NIST_800_53_CONTROLS = [
448
400
  framework: "NIST-800-53",
449
401
  category: "System and Communications Protection",
450
402
  title: "Cryptographic Protection",
451
- description: "Implement cryptographic mechanisms to prevent unauthorized disclosure and modification of information.",
452
- keywords: ["cryptography", "encryption", "hashing"],
453
- findingCategories: ["weak-crypto"],
454
- cweIds: ["CWE-327", "CWE-328", "CWE-326"],
403
+ description: "Implement cryptographic mechanisms to protect confidentiality and integrity using approved algorithms.",
404
+ keywords: ["encryption", "cryptography", "algorithm", "cipher"],
405
+ findingCategories: ["weak-cryptography", "insecure-algorithm"],
406
+ cweIds: ["CWE-327", "CWE-328"],
455
407
  severityThreshold: "high",
456
408
  },
457
409
  {
458
- id: "SC-18",
410
+ id: "SC-17",
459
411
  framework: "NIST-800-53",
460
412
  category: "System and Communications Protection",
461
- title: "Mobile Code",
462
- description: "Define acceptable and unacceptable mobile code and mobile code technologies and establish usage restrictions and implementation guidance.",
463
- keywords: ["mobile code", "JavaScript", "active content", "executable"],
464
- findingCategories: ["xss", "code-injection"],
465
- cweIds: ["CWE-79", "CWE-94"],
466
- severityThreshold: "high",
413
+ title: "Public Key Infrastructure Certificates",
414
+ description: "Issue public key certificates under an appropriate certificate policy and obtain certificates from an approved service provider.",
415
+ keywords: ["certificate", "pki", "ssl", "tls"],
416
+ findingCategories: ["certificate-validation", "insecure-tls"],
417
+ cweIds: ["CWE-295", "CWE-296"],
418
+ severityThreshold: "medium",
467
419
  },
468
420
  {
469
421
  id: "SC-23",
@@ -471,9 +423,9 @@ export const NIST_800_53_CONTROLS = [
471
423
  category: "System and Communications Protection",
472
424
  title: "Session Authenticity",
473
425
  description: "Protect the authenticity of communications sessions.",
474
- keywords: ["session authenticity", "session hijacking", "CSRF"],
475
- findingCategories: ["session-management", "csrf"],
476
- cweIds: ["CWE-384", "CWE-352"],
426
+ keywords: ["session", "csrf", "session fixation", "hijacking"],
427
+ findingCategories: ["csrf", "session-management"],
428
+ cweIds: ["CWE-352", "CWE-384"],
477
429
  severityThreshold: "high",
478
430
  },
479
431
  {
@@ -482,21 +434,23 @@ export const NIST_800_53_CONTROLS = [
482
434
  category: "System and Communications Protection",
483
435
  title: "Protection of Information at Rest",
484
436
  description: "Protect the confidentiality and integrity of information at rest.",
485
- keywords: ["data at rest", "encryption at rest", "storage encryption"],
486
- findingCategories: ["data-exposure", "secrets"],
437
+ keywords: ["encryption at rest", "data protection", "storage"],
438
+ findingCategories: ["data-exposure", "unencrypted-data"],
487
439
  cweIds: ["CWE-311", "CWE-312"],
488
440
  severityThreshold: "high",
489
441
  },
490
- // SI - System and Information Integrity Family
442
+ // =========================================================================
443
+ // SI - System and Information Integrity
444
+ // =========================================================================
491
445
  {
492
446
  id: "SI-2",
493
447
  framework: "NIST-800-53",
494
448
  category: "System and Information Integrity",
495
449
  title: "Flaw Remediation",
496
- description: "Identify, report, and correct system flaws. Install security-relevant software and firmware updates.",
497
- keywords: ["patching", "flaw remediation", "vulnerability fix", "update"],
498
- findingCategories: ["dependency-vuln"],
499
- cweIds: ["CWE-1035"],
450
+ description: "Identify, report, and correct system flaws; install security-relevant software and firmware updates.",
451
+ keywords: ["patching", "updates", "remediation", "vulnerabilities"],
452
+ findingCategories: ["dependency-vulnerability", "outdated-component"],
453
+ cweIds: ["CWE-1104"],
500
454
  severityThreshold: "high",
501
455
  },
502
456
  {
@@ -504,20 +458,20 @@ export const NIST_800_53_CONTROLS = [
504
458
  framework: "NIST-800-53",
505
459
  category: "System and Information Integrity",
506
460
  title: "Malicious Code Protection",
507
- description: "Implement malicious code protection mechanisms at system entry and exit points to detect and eradicate malicious code.",
508
- keywords: ["malware", "malicious code", "virus", "trojan"],
509
- findingCategories: ["code-injection", "xss", "command-injection"],
510
- cweIds: ["CWE-94", "CWE-79", "CWE-78"],
511
- severityThreshold: "high",
461
+ description: "Implement malicious code protection that includes detection and eradication.",
462
+ keywords: ["malware", "virus", "malicious", "injection"],
463
+ findingCategories: ["code-injection", "xss", "sql-injection"],
464
+ cweIds: ["CWE-94", "CWE-79", "CWE-89"],
465
+ severityThreshold: "critical",
512
466
  },
513
467
  {
514
468
  id: "SI-4",
515
469
  framework: "NIST-800-53",
516
470
  category: "System and Information Integrity",
517
471
  title: "System Monitoring",
518
- description: "Monitor the system to detect attacks and indicators of potential attacks, unauthorized local, network, and remote connections.",
519
- keywords: ["monitoring", "intrusion detection", "security monitoring"],
520
- findingCategories: ["insufficient-logging"],
472
+ description: "Monitor the system to detect attacks, unauthorized activities, and anomalies.",
473
+ keywords: ["monitoring", "detection", "intrusion", "anomaly"],
474
+ findingCategories: ["insufficient-logging", "security-misconfiguration"],
521
475
  cweIds: ["CWE-778"],
522
476
  severityThreshold: "medium",
523
477
  },
@@ -527,9 +481,9 @@ export const NIST_800_53_CONTROLS = [
527
481
  category: "System and Information Integrity",
528
482
  title: "Software, Firmware, and Information Integrity",
529
483
  description: "Employ integrity verification tools to detect unauthorized changes to software, firmware, and information.",
530
- keywords: ["integrity", "checksum", "hash verification", "code signing"],
531
- findingCategories: ["security-misconfiguration"],
532
- cweIds: ["CWE-494", "CWE-829"],
484
+ keywords: ["integrity", "checksum", "hash", "verification"],
485
+ findingCategories: ["integrity-check"],
486
+ cweIds: ["CWE-354"],
533
487
  severityThreshold: "medium",
534
488
  },
535
489
  {
@@ -537,10 +491,10 @@ export const NIST_800_53_CONTROLS = [
537
491
  framework: "NIST-800-53",
538
492
  category: "System and Information Integrity",
539
493
  title: "Information Input Validation",
540
- description: "Check the validity of information inputs.",
541
- keywords: ["input validation", "sanitization", "data validation"],
494
+ description: "Check the validity of information inputs to the system.",
495
+ keywords: ["input validation", "sanitization", "filtering"],
542
496
  findingCategories: ["sql-injection", "xss", "command-injection", "path-traversal"],
543
- cweIds: ["CWE-20", "CWE-89", "CWE-79", "CWE-78", "CWE-22"],
497
+ cweIds: ["CWE-20", "CWE-79", "CWE-89", "CWE-78", "CWE-22"],
544
498
  severityThreshold: "high",
545
499
  },
546
500
  {
@@ -548,10 +502,10 @@ export const NIST_800_53_CONTROLS = [
548
502
  framework: "NIST-800-53",
549
503
  category: "System and Information Integrity",
550
504
  title: "Error Handling",
551
- description: "Generate error messages that provide information necessary for corrective actions without revealing information that could be exploited.",
552
- keywords: ["error handling", "error messages", "exception handling"],
553
- findingCategories: ["error-handling", "data-exposure"],
554
- cweIds: ["CWE-209", "CWE-755"],
505
+ description: "Generate error messages that provide information necessary for corrective actions without revealing information exploitable by adversaries.",
506
+ keywords: ["error handling", "exception", "error message"],
507
+ findingCategories: ["information-disclosure", "verbose-errors"],
508
+ cweIds: ["CWE-209", "CWE-497"],
555
509
  severityThreshold: "medium",
556
510
  },
557
511
  {
@@ -559,10 +513,10 @@ export const NIST_800_53_CONTROLS = [
559
513
  framework: "NIST-800-53",
560
514
  category: "System and Information Integrity",
561
515
  title: "Information Management and Retention",
562
- description: "Manage and retain information within the system and information output from the system in accordance with applicable laws, regulations, and policy.",
563
- keywords: ["data retention", "information management", "data disposal"],
564
- findingCategories: ["data-exposure"],
565
- cweIds: ["CWE-226", "CWE-212"],
516
+ description: "Manage and retain information within the system and output from the system in accordance with applicable requirements.",
517
+ keywords: ["data retention", "data management", "privacy"],
518
+ findingCategories: ["data-exposure", "pii-exposure"],
519
+ cweIds: ["CWE-200", "CWE-359"],
566
520
  severityThreshold: "medium",
567
521
  },
568
522
  {
@@ -570,22 +524,24 @@ export const NIST_800_53_CONTROLS = [
570
524
  framework: "NIST-800-53",
571
525
  category: "System and Information Integrity",
572
526
  title: "Memory Protection",
573
- description: "Implement safeguards to protect the system memory from unauthorized code execution.",
574
- keywords: ["memory protection", "buffer overflow", "memory safety"],
575
- findingCategories: ["memory-safety", "buffer-overflow"],
576
- cweIds: ["CWE-119", "CWE-120", "CWE-416"],
527
+ description: "Implement safeguards to protect memory from unauthorized code execution.",
528
+ keywords: ["memory", "buffer overflow", "stack", "heap"],
529
+ findingCategories: ["buffer-overflow", "memory-corruption"],
530
+ cweIds: ["CWE-119", "CWE-120", "CWE-787"],
577
531
  severityThreshold: "critical",
578
532
  },
579
- // SR - Supply Chain Risk Management Family
533
+ // =========================================================================
534
+ // SR - Supply Chain Risk Management
535
+ // =========================================================================
580
536
  {
581
537
  id: "SR-3",
582
538
  framework: "NIST-800-53",
583
539
  category: "Supply Chain Risk Management",
584
540
  title: "Supply Chain Controls and Processes",
585
- description: "Establish a process to identify and address weaknesses or deficiencies in the supply chain elements and processes.",
586
- keywords: ["supply chain", "vendor management", "third-party risk"],
587
- findingCategories: ["dependency-vuln"],
588
- cweIds: ["CWE-1035", "CWE-829"],
541
+ description: "Establish a process to identify, assess, and mitigate supply chain risks.",
542
+ keywords: ["supply chain", "dependencies", "third-party", "vendor"],
543
+ findingCategories: ["dependency-vulnerability", "supply-chain"],
544
+ cweIds: ["CWE-1104"],
589
545
  severityThreshold: "high",
590
546
  },
591
547
  {
@@ -593,10 +549,10 @@ export const NIST_800_53_CONTROLS = [
593
549
  framework: "NIST-800-53",
594
550
  category: "Supply Chain Risk Management",
595
551
  title: "Provenance",
596
- description: "Document, monitor, and maintain valid provenance of systems, system components, and associated data.",
597
- keywords: ["provenance", "SBOM", "software bill of materials", "supply chain"],
598
- findingCategories: ["dependency-vuln"],
599
- cweIds: ["CWE-1035"],
552
+ description: "Document, monitor, and maintain valid provenance of system components.",
553
+ keywords: ["provenance", "origin", "sbom", "bill of materials"],
554
+ findingCategories: ["supply-chain", "unknown-source"],
555
+ cweIds: [],
600
556
  severityThreshold: "medium",
601
557
  },
602
558
  {
@@ -604,31 +560,22 @@ export const NIST_800_53_CONTROLS = [
604
560
  framework: "NIST-800-53",
605
561
  category: "Supply Chain Risk Management",
606
562
  title: "Acquisition Strategies, Tools, and Methods",
607
- description: "Employ acquisition strategies, contract tools, and procurement methods to protect against, identify, and mitigate supply chain risks.",
563
+ description: "Employ acquisition strategies, tools, and methods to protect against supply chain risks.",
608
564
  keywords: ["acquisition", "procurement", "vendor assessment"],
609
- findingCategories: ["dependency-vuln"],
610
- severityThreshold: "medium",
611
- },
612
- {
613
- id: "SR-6",
614
- framework: "NIST-800-53",
615
- category: "Supply Chain Risk Management",
616
- title: "Supplier Assessments and Reviews",
617
- description: "Assess and review the supply chain-related risks associated with suppliers or contractors.",
618
- keywords: ["supplier assessment", "vendor review", "third-party audit"],
619
- findingCategories: ["dependency-vuln"],
620
- severityThreshold: "medium",
565
+ findingCategories: ["supply-chain"],
566
+ cweIds: [],
567
+ severityThreshold: "low",
621
568
  },
622
569
  {
623
570
  id: "SR-11",
624
571
  framework: "NIST-800-53",
625
572
  category: "Supply Chain Risk Management",
626
573
  title: "Component Authenticity",
627
- description: "Develop and implement anti-counterfeit policy and procedures that include the means to detect and prevent counterfeit components.",
628
- keywords: ["authenticity", "counterfeit", "component verification"],
629
- findingCategories: ["dependency-vuln"],
630
- cweIds: ["CWE-829"],
631
- severityThreshold: "high",
574
+ description: "Develop and implement anti-counterfeit policy and procedures for detecting and preventing counterfeit components.",
575
+ keywords: ["authenticity", "counterfeit", "verification"],
576
+ findingCategories: ["supply-chain", "dependency-vulnerability"],
577
+ cweIds: [],
578
+ severityThreshold: "medium",
632
579
  },
633
580
  ];
634
581
  /**
@@ -641,24 +588,69 @@ export function getNIST80053Controls() {
641
588
  * Get NIST 800-53 controls by category (control family)
642
589
  */
643
590
  export function getNIST80053ControlsByCategory(category) {
644
- return NIST_800_53_CONTROLS.filter((c) => c.category === category);
591
+ return NIST_800_53_CONTROLS.filter((c) => c.category.toLowerCase() === category.toLowerCase());
645
592
  }
646
593
  /**
647
594
  * Get NIST 800-53 control by ID
648
595
  */
649
596
  export function getNIST80053ControlById(id) {
650
- return NIST_800_53_CONTROLS.find((c) => c.id === id);
597
+ return NIST_800_53_CONTROLS.find((c) => c.id === id || c.id === id.toUpperCase());
651
598
  }
652
599
  /**
653
- * Get NIST 800-53 control families (categories)
600
+ * Get all NIST 800-53 control categories (families)
654
601
  */
655
602
  export function getNIST80053Categories() {
656
- return [...new Set(NIST_800_53_CONTROLS.map((c) => c.category))];
603
+ const categories = new Set(NIST_800_53_CONTROLS.map((c) => c.category));
604
+ return Array.from(categories).sort();
657
605
  }
658
606
  /**
659
- * Get NIST 800-53 control family code from control ID
607
+ * NIST 800-53 control family descriptions
660
608
  */
661
- export function getControlFamilyCode(controlId) {
662
- return controlId.replace(/-\d+$/, "").toUpperCase();
663
- }
609
+ export const NIST_CONTROL_FAMILIES = {
610
+ "Access Control": {
611
+ id: "AC",
612
+ name: "Access Control",
613
+ description: "Limit system access to authorized users, processes, or devices.",
614
+ },
615
+ "Audit and Accountability": {
616
+ id: "AU",
617
+ name: "Audit and Accountability",
618
+ description: "Create, protect, and retain system audit records; ensure accountability.",
619
+ },
620
+ "Configuration Management": {
621
+ id: "CM",
622
+ name: "Configuration Management",
623
+ description: "Establish and maintain configurations using security engineering principles.",
624
+ },
625
+ "Identification and Authentication": {
626
+ id: "IA",
627
+ name: "Identification and Authentication",
628
+ description: "Identify and authenticate users, processes, and devices.",
629
+ },
630
+ "Risk Assessment": {
631
+ id: "RA",
632
+ name: "Risk Assessment",
633
+ description: "Assess risks to organizational operations, assets, and individuals.",
634
+ },
635
+ "System and Services Acquisition": {
636
+ id: "SA",
637
+ name: "System and Services Acquisition",
638
+ description: "Allocate sufficient resources for security; employ secure development processes.",
639
+ },
640
+ "System and Communications Protection": {
641
+ id: "SC",
642
+ name: "System and Communications Protection",
643
+ description: "Protect communications and control boundaries between systems.",
644
+ },
645
+ "System and Information Integrity": {
646
+ id: "SI",
647
+ name: "System and Information Integrity",
648
+ description: "Identify, report, and correct system flaws; protect against malicious code.",
649
+ },
650
+ "Supply Chain Risk Management": {
651
+ id: "SR",
652
+ name: "Supply Chain Risk Management",
653
+ description: "Identify, assess, and mitigate supply chain risks.",
654
+ },
655
+ };
664
656
  //# sourceMappingURL=nist-800-53.js.map