kastell 2.0.0 → 2.2.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 (333) hide show
  1. package/CHANGELOG.md +85 -0
  2. package/README.md +1 -1
  3. package/README.tr.md +1 -1
  4. package/dist/commands/audit.d.ts +3 -0
  5. package/dist/commands/audit.d.ts.map +1 -1
  6. package/dist/commands/audit.js +61 -32
  7. package/dist/commands/audit.js.map +1 -1
  8. package/dist/commands/config.js +1 -1
  9. package/dist/commands/config.js.map +1 -1
  10. package/dist/commands/doctor.d.ts +1 -0
  11. package/dist/commands/doctor.d.ts.map +1 -1
  12. package/dist/commands/doctor.js +25 -7
  13. package/dist/commands/doctor.js.map +1 -1
  14. package/dist/commands/explain.d.ts +6 -0
  15. package/dist/commands/explain.d.ts.map +1 -0
  16. package/dist/commands/explain.js +28 -0
  17. package/dist/commands/explain.js.map +1 -0
  18. package/dist/commands/fix.d.ts +2 -0
  19. package/dist/commands/fix.d.ts.map +1 -1
  20. package/dist/commands/fix.js +54 -15
  21. package/dist/commands/fix.js.map +1 -1
  22. package/dist/commands/fleet.d.ts.map +1 -1
  23. package/dist/commands/fleet.js +1 -0
  24. package/dist/commands/fleet.js.map +1 -1
  25. package/dist/commands/init.d.ts.map +1 -1
  26. package/dist/commands/init.js +175 -1
  27. package/dist/commands/init.js.map +1 -1
  28. package/dist/commands/interactive.d.ts.map +1 -1
  29. package/dist/commands/interactive.js +59 -1
  30. package/dist/commands/interactive.js.map +1 -1
  31. package/dist/commands/plugin.d.ts +8 -0
  32. package/dist/commands/plugin.d.ts.map +1 -0
  33. package/dist/commands/plugin.js +87 -0
  34. package/dist/commands/plugin.js.map +1 -0
  35. package/dist/commands/regression.d.ts +5 -0
  36. package/dist/commands/regression.d.ts.map +1 -0
  37. package/dist/commands/regression.js +40 -0
  38. package/dist/commands/regression.js.map +1 -0
  39. package/dist/core/audit/checkIds.d.ts +516 -0
  40. package/dist/core/audit/checkIds.d.ts.map +1 -0
  41. package/dist/core/audit/checkIds.js +515 -0
  42. package/dist/core/audit/checkIds.js.map +1 -0
  43. package/dist/core/audit/checks/accounts.d.ts.map +1 -1
  44. package/dist/core/audit/checks/accounts.js +23 -22
  45. package/dist/core/audit/checks/accounts.js.map +1 -1
  46. package/dist/core/audit/checks/auth.d.ts.map +1 -1
  47. package/dist/core/audit/checks/auth.js +23 -22
  48. package/dist/core/audit/checks/auth.js.map +1 -1
  49. package/dist/core/audit/checks/backup.d.ts.map +1 -1
  50. package/dist/core/audit/checks/backup.js +9 -8
  51. package/dist/core/audit/checks/backup.js.map +1 -1
  52. package/dist/core/audit/checks/banners.d.ts.map +1 -1
  53. package/dist/core/audit/checks/banners.js +7 -6
  54. package/dist/core/audit/checks/banners.js.map +1 -1
  55. package/dist/core/audit/checks/boot.d.ts.map +1 -1
  56. package/dist/core/audit/checks/boot.js +12 -11
  57. package/dist/core/audit/checks/boot.js.map +1 -1
  58. package/dist/core/audit/checks/cloudmeta.d.ts.map +1 -1
  59. package/dist/core/audit/checks/cloudmeta.js +7 -6
  60. package/dist/core/audit/checks/cloudmeta.js.map +1 -1
  61. package/dist/core/audit/checks/crypto.d.ts +0 -5
  62. package/dist/core/audit/checks/crypto.d.ts.map +1 -1
  63. package/dist/core/audit/checks/crypto.js +20 -19
  64. package/dist/core/audit/checks/crypto.js.map +1 -1
  65. package/dist/core/audit/checks/ddos.d.ts.map +1 -1
  66. package/dist/core/audit/checks/ddos.js +9 -8
  67. package/dist/core/audit/checks/ddos.js.map +1 -1
  68. package/dist/core/audit/checks/dns.d.ts.map +1 -1
  69. package/dist/core/audit/checks/dns.js +9 -8
  70. package/dist/core/audit/checks/dns.js.map +1 -1
  71. package/dist/core/audit/checks/docker.d.ts.map +1 -1
  72. package/dist/core/audit/checks/docker.js +65 -64
  73. package/dist/core/audit/checks/docker.js.map +1 -1
  74. package/dist/core/audit/checks/fileintegrity.d.ts.map +1 -1
  75. package/dist/core/audit/checks/fileintegrity.js +11 -10
  76. package/dist/core/audit/checks/fileintegrity.js.map +1 -1
  77. package/dist/core/audit/checks/filesystem.d.ts.map +1 -1
  78. package/dist/core/audit/checks/filesystem.js +21 -20
  79. package/dist/core/audit/checks/filesystem.js.map +1 -1
  80. package/dist/core/audit/checks/firewall.d.ts.map +1 -1
  81. package/dist/core/audit/checks/firewall.js +18 -17
  82. package/dist/core/audit/checks/firewall.js.map +1 -1
  83. package/dist/core/audit/checks/httpHeaders.d.ts.map +1 -1
  84. package/dist/core/audit/checks/httpHeaders.js +7 -6
  85. package/dist/core/audit/checks/httpHeaders.js.map +1 -1
  86. package/dist/core/audit/checks/incidentready.d.ts.map +1 -1
  87. package/dist/core/audit/checks/incidentready.js +13 -12
  88. package/dist/core/audit/checks/incidentready.js.map +1 -1
  89. package/dist/core/audit/checks/kernel.d.ts.map +1 -1
  90. package/dist/core/audit/checks/kernel.js +32 -31
  91. package/dist/core/audit/checks/kernel.js.map +1 -1
  92. package/dist/core/audit/checks/logging.d.ts.map +1 -1
  93. package/dist/core/audit/checks/logging.js +21 -20
  94. package/dist/core/audit/checks/logging.js.map +1 -1
  95. package/dist/core/audit/checks/mac.d.ts.map +1 -1
  96. package/dist/core/audit/checks/mac.js +11 -10
  97. package/dist/core/audit/checks/mac.js.map +1 -1
  98. package/dist/core/audit/checks/malware.d.ts.map +1 -1
  99. package/dist/core/audit/checks/malware.js +12 -11
  100. package/dist/core/audit/checks/malware.js.map +1 -1
  101. package/dist/core/audit/checks/memory.d.ts.map +1 -1
  102. package/dist/core/audit/checks/memory.js +12 -11
  103. package/dist/core/audit/checks/memory.js.map +1 -1
  104. package/dist/core/audit/checks/network.d.ts.map +1 -1
  105. package/dist/core/audit/checks/network.js +22 -21
  106. package/dist/core/audit/checks/network.js.map +1 -1
  107. package/dist/core/audit/checks/nginx.d.ts.map +1 -1
  108. package/dist/core/audit/checks/nginx.js +17 -16
  109. package/dist/core/audit/checks/nginx.js.map +1 -1
  110. package/dist/core/audit/checks/resourcelimits.d.ts.map +1 -1
  111. package/dist/core/audit/checks/resourcelimits.js +9 -8
  112. package/dist/core/audit/checks/resourcelimits.js.map +1 -1
  113. package/dist/core/audit/checks/scheduling.d.ts.map +1 -1
  114. package/dist/core/audit/checks/scheduling.js +13 -12
  115. package/dist/core/audit/checks/scheduling.js.map +1 -1
  116. package/dist/core/audit/checks/secrets.d.ts.map +1 -1
  117. package/dist/core/audit/checks/secrets.js +16 -15
  118. package/dist/core/audit/checks/secrets.js.map +1 -1
  119. package/dist/core/audit/checks/services.d.ts.map +1 -1
  120. package/dist/core/audit/checks/services.js +26 -25
  121. package/dist/core/audit/checks/services.js.map +1 -1
  122. package/dist/core/audit/checks/ssh.d.ts.map +1 -1
  123. package/dist/core/audit/checks/ssh.js +23 -22
  124. package/dist/core/audit/checks/ssh.js.map +1 -1
  125. package/dist/core/audit/checks/supplychain.d.ts.map +1 -1
  126. package/dist/core/audit/checks/supplychain.js +13 -12
  127. package/dist/core/audit/checks/supplychain.js.map +1 -1
  128. package/dist/core/audit/checks/time.d.ts.map +1 -1
  129. package/dist/core/audit/checks/time.js +10 -9
  130. package/dist/core/audit/checks/time.js.map +1 -1
  131. package/dist/core/audit/checks/tls.d.ts.map +1 -1
  132. package/dist/core/audit/checks/tls.js +9 -8
  133. package/dist/core/audit/checks/tls.js.map +1 -1
  134. package/dist/core/audit/checks/updates.d.ts.map +1 -1
  135. package/dist/core/audit/checks/updates.js +12 -11
  136. package/dist/core/audit/checks/updates.js.map +1 -1
  137. package/dist/core/audit/compliance/categories/index.d.ts +3 -0
  138. package/dist/core/audit/compliance/categories/index.d.ts.map +1 -0
  139. package/dist/core/audit/compliance/categories/index.js +737 -0
  140. package/dist/core/audit/compliance/categories/index.js.map +1 -0
  141. package/dist/core/audit/compliance/helpers.d.ts +17 -0
  142. package/dist/core/audit/compliance/helpers.d.ts.map +1 -0
  143. package/dist/core/audit/compliance/helpers.js +40 -0
  144. package/dist/core/audit/compliance/helpers.js.map +1 -0
  145. package/dist/core/audit/compliance/mapper.d.ts +4 -16
  146. package/dist/core/audit/compliance/mapper.d.ts.map +1 -1
  147. package/dist/core/audit/compliance/mapper.js +3 -776
  148. package/dist/core/audit/compliance/mapper.js.map +1 -1
  149. package/dist/core/audit/diff.d.ts +12 -1
  150. package/dist/core/audit/diff.d.ts.map +1 -1
  151. package/dist/core/audit/diff.js +121 -0
  152. package/dist/core/audit/diff.js.map +1 -1
  153. package/dist/core/audit/explainCheck.d.ts +26 -0
  154. package/dist/core/audit/explainCheck.d.ts.map +1 -0
  155. package/dist/core/audit/explainCheck.js +165 -0
  156. package/dist/core/audit/explainCheck.js.map +1 -0
  157. package/dist/core/audit/fix-history.d.ts +16 -7
  158. package/dist/core/audit/fix-history.d.ts.map +1 -1
  159. package/dist/core/audit/fix-history.js +25 -2
  160. package/dist/core/audit/fix-history.js.map +1 -1
  161. package/dist/core/audit/fix.d.ts +21 -6
  162. package/dist/core/audit/fix.d.ts.map +1 -1
  163. package/dist/core/audit/fix.js +139 -49
  164. package/dist/core/audit/fix.js.map +1 -1
  165. package/dist/core/audit/history.d.ts.map +1 -1
  166. package/dist/core/audit/history.js +2 -1
  167. package/dist/core/audit/history.js.map +1 -1
  168. package/dist/core/audit/index.d.ts.map +1 -1
  169. package/dist/core/audit/index.js +3 -2
  170. package/dist/core/audit/index.js.map +1 -1
  171. package/dist/core/audit/listChecks.d.ts +7 -0
  172. package/dist/core/audit/listChecks.d.ts.map +1 -1
  173. package/dist/core/audit/listChecks.js +1 -1
  174. package/dist/core/audit/listChecks.js.map +1 -1
  175. package/dist/core/audit/regression.d.ts +15 -0
  176. package/dist/core/audit/regression.d.ts.map +1 -0
  177. package/dist/core/audit/regression.js +149 -0
  178. package/dist/core/audit/regression.js.map +1 -0
  179. package/dist/core/audit/snapshot.d.ts.map +1 -1
  180. package/dist/core/audit/snapshot.js +91 -29
  181. package/dist/core/audit/snapshot.js.map +1 -1
  182. package/dist/core/audit/types.d.ts +63 -1
  183. package/dist/core/audit/types.d.ts.map +1 -1
  184. package/dist/core/audit/watch.d.ts.map +1 -1
  185. package/dist/core/audit/watch.js +3 -2
  186. package/dist/core/audit/watch.js.map +1 -1
  187. package/dist/core/bot/handlers.d.ts.map +1 -1
  188. package/dist/core/bot/handlers.js +9 -18
  189. package/dist/core/bot/handlers.js.map +1 -1
  190. package/dist/core/completions.d.ts.map +1 -1
  191. package/dist/core/completions.js +24 -2
  192. package/dist/core/completions.js.map +1 -1
  193. package/dist/core/defaults.d.ts +4 -0
  194. package/dist/core/defaults.d.ts.map +1 -0
  195. package/dist/core/defaults.js +34 -0
  196. package/dist/core/defaults.js.map +1 -0
  197. package/dist/core/doctor-fix.d.ts +1 -1
  198. package/dist/core/doctor-fix.d.ts.map +1 -1
  199. package/dist/core/doctor-fix.js +17 -2
  200. package/dist/core/doctor-fix.js.map +1 -1
  201. package/dist/core/doctor.d.ts +4 -0
  202. package/dist/core/doctor.d.ts.map +1 -1
  203. package/dist/core/doctor.js +26 -2
  204. package/dist/core/doctor.js.map +1 -1
  205. package/dist/core/firewall.d.ts +1 -4
  206. package/dist/core/firewall.d.ts.map +1 -1
  207. package/dist/core/firewall.js +19 -25
  208. package/dist/core/firewall.js.map +1 -1
  209. package/dist/core/fleet.d.ts +8 -0
  210. package/dist/core/fleet.d.ts.map +1 -1
  211. package/dist/core/fleet.js +49 -5
  212. package/dist/core/fleet.js.map +1 -1
  213. package/dist/core/manage.d.ts +9 -6
  214. package/dist/core/manage.d.ts.map +1 -1
  215. package/dist/core/manage.js +2 -1
  216. package/dist/core/manage.js.map +1 -1
  217. package/dist/core/notify.d.ts.map +1 -1
  218. package/dist/core/notify.js +2 -1
  219. package/dist/core/notify.js.map +1 -1
  220. package/dist/core/plugin.d.ts +23 -0
  221. package/dist/core/plugin.d.ts.map +1 -0
  222. package/dist/core/plugin.js +107 -0
  223. package/dist/core/plugin.js.map +1 -0
  224. package/dist/core/scheduleManager.d.ts +2 -1
  225. package/dist/core/scheduleManager.d.ts.map +1 -1
  226. package/dist/core/scheduleManager.js +8 -5
  227. package/dist/core/scheduleManager.js.map +1 -1
  228. package/dist/core/status.d.ts +1 -0
  229. package/dist/core/status.d.ts.map +1 -1
  230. package/dist/core/status.js +20 -6
  231. package/dist/core/status.js.map +1 -1
  232. package/dist/index.js +65 -2
  233. package/dist/index.js.map +1 -1
  234. package/dist/mcp/index.js +5 -9
  235. package/dist/mcp/index.js.map +1 -1
  236. package/dist/mcp/server.d.ts.map +1 -1
  237. package/dist/mcp/server.js +44 -2
  238. package/dist/mcp/server.js.map +1 -1
  239. package/dist/mcp/tools/serverAudit.d.ts.map +1 -1
  240. package/dist/mcp/tools/serverAudit.js +15 -0
  241. package/dist/mcp/tools/serverAudit.js.map +1 -1
  242. package/dist/mcp/tools/serverCompare.d.ts +15 -0
  243. package/dist/mcp/tools/serverCompare.d.ts.map +1 -0
  244. package/dist/mcp/tools/serverCompare.js +43 -0
  245. package/dist/mcp/tools/serverCompare.js.map +1 -0
  246. package/dist/mcp/tools/serverDoctor.d.ts.map +1 -1
  247. package/dist/mcp/tools/serverDoctor.js +2 -1
  248. package/dist/mcp/tools/serverDoctor.js.map +1 -1
  249. package/dist/mcp/tools/serverExplain.d.ts +8 -0
  250. package/dist/mcp/tools/serverExplain.d.ts.map +1 -0
  251. package/dist/mcp/tools/serverExplain.js +14 -0
  252. package/dist/mcp/tools/serverExplain.js.map +1 -0
  253. package/dist/mcp/tools/serverFix.d.ts +2 -0
  254. package/dist/mcp/tools/serverFix.d.ts.map +1 -1
  255. package/dist/mcp/tools/serverFix.js +40 -2
  256. package/dist/mcp/tools/serverFix.js.map +1 -1
  257. package/dist/mcp/tools/serverFleet.d.ts +2 -0
  258. package/dist/mcp/tools/serverFleet.d.ts.map +1 -1
  259. package/dist/mcp/tools/serverFleet.js +10 -1
  260. package/dist/mcp/tools/serverFleet.js.map +1 -1
  261. package/dist/mcp/tools/serverManage.d.ts.map +1 -1
  262. package/dist/mcp/tools/serverManage.js +10 -9
  263. package/dist/mcp/tools/serverManage.js.map +1 -1
  264. package/dist/mcp/tools/serverPlugin.d.ts +12 -0
  265. package/dist/mcp/tools/serverPlugin.d.ts.map +1 -0
  266. package/dist/mcp/tools/serverPlugin.js +22 -0
  267. package/dist/mcp/tools/serverPlugin.js.map +1 -0
  268. package/dist/plugin/loader.d.ts +10 -0
  269. package/dist/plugin/loader.d.ts.map +1 -0
  270. package/dist/plugin/loader.js +88 -0
  271. package/dist/plugin/loader.js.map +1 -0
  272. package/dist/plugin/registry.d.ts +16 -0
  273. package/dist/plugin/registry.d.ts.map +1 -0
  274. package/dist/plugin/registry.js +99 -0
  275. package/dist/plugin/registry.js.map +1 -0
  276. package/dist/plugin/sdk/constants.d.ts +3 -0
  277. package/dist/plugin/sdk/constants.d.ts.map +1 -0
  278. package/dist/plugin/sdk/constants.js +3 -0
  279. package/dist/plugin/sdk/constants.js.map +1 -0
  280. package/dist/plugin/sdk/types.d.ts +29 -0
  281. package/dist/plugin/sdk/types.d.ts.map +1 -0
  282. package/dist/plugin/sdk/types.js +2 -0
  283. package/dist/plugin/sdk/types.js.map +1 -0
  284. package/dist/plugin/validate.d.ts +3 -0
  285. package/dist/plugin/validate.d.ts.map +1 -0
  286. package/dist/plugin/validate.js +31 -0
  287. package/dist/plugin/validate.js.map +1 -0
  288. package/dist/providers/base.d.ts.map +1 -1
  289. package/dist/providers/base.js +2 -1
  290. package/dist/providers/base.js.map +1 -1
  291. package/dist/types/index.d.ts +8 -1
  292. package/dist/types/index.d.ts.map +1 -1
  293. package/dist/types/index.js +1 -1
  294. package/dist/types/index.js.map +1 -1
  295. package/dist/utils/dates.d.ts +3 -0
  296. package/dist/utils/dates.d.ts.map +1 -0
  297. package/dist/utils/dates.js +10 -0
  298. package/dist/utils/dates.js.map +1 -0
  299. package/dist/utils/errorMapper.d.ts.map +1 -1
  300. package/dist/utils/errorMapper.js +2 -1
  301. package/dist/utils/errorMapper.js.map +1 -1
  302. package/dist/utils/errors.d.ts +1 -0
  303. package/dist/utils/errors.d.ts.map +1 -1
  304. package/dist/utils/errors.js +3 -0
  305. package/dist/utils/errors.js.map +1 -1
  306. package/dist/utils/migration.d.ts.map +1 -1
  307. package/dist/utils/migration.js +2 -1
  308. package/dist/utils/migration.js.map +1 -1
  309. package/dist/utils/paths.d.ts +4 -0
  310. package/dist/utils/paths.d.ts.map +1 -1
  311. package/dist/utils/paths.js +4 -0
  312. package/dist/utils/paths.js.map +1 -1
  313. package/dist/utils/prompts.d.ts +6 -0
  314. package/dist/utils/prompts.d.ts.map +1 -1
  315. package/dist/utils/prompts.js +11 -0
  316. package/dist/utils/prompts.js.map +1 -1
  317. package/dist/utils/{defaults.d.ts → providerConfig.d.ts} +1 -1
  318. package/dist/utils/providerConfig.d.ts.map +1 -0
  319. package/dist/utils/{defaults.js → providerConfig.js} +1 -1
  320. package/dist/utils/providerConfig.js.map +1 -0
  321. package/dist/utils/secureWrite.d.ts.map +1 -1
  322. package/dist/utils/secureWrite.js +2 -1
  323. package/dist/utils/secureWrite.js.map +1 -1
  324. package/dist/utils/version.d.ts +4 -0
  325. package/dist/utils/version.d.ts.map +1 -0
  326. package/dist/utils/version.js +22 -0
  327. package/dist/utils/version.js.map +1 -0
  328. package/dist/utils/yamlConfig.d.ts.map +1 -1
  329. package/dist/utils/yamlConfig.js +3 -2
  330. package/dist/utils/yamlConfig.js.map +1 -1
  331. package/package.json +3 -1
  332. package/dist/utils/defaults.d.ts.map +0 -1
  333. package/dist/utils/defaults.js.map +0 -1
@@ -1,781 +1,8 @@
1
1
  /**
2
2
  * Compliance mapping data — maps check IDs to framework controls.
3
- * Central Record<string, ComplianceRef[]> flat map.
3
+ * Barrel export: re-exports from category files + FRAMEWORK_VERSIONS + helpers.
4
4
  * Populated in Phase 50 for CIS Ubuntu 22.04 v2.0.0, PCI-DSS v4.0, HIPAA.
5
5
  */
6
- export const FRAMEWORK_VERSIONS = {
7
- CIS: "CIS Ubuntu 22.04 v2.0.0",
8
- "PCI-DSS": "PCI-DSS v4.0",
9
- HIPAA: "HIPAA §164.312",
10
- };
11
- /** Helper: build CIS ref with optional level (default L1) */
12
- function cis(controlId, description, coverage, level = "L1") {
13
- return {
14
- framework: "CIS",
15
- controlId,
16
- version: FRAMEWORK_VERSIONS.CIS,
17
- description,
18
- coverage,
19
- level,
20
- };
21
- }
22
- /** Helper: build PCI-DSS ref */
23
- function pci(controlId, description, coverage) {
24
- return {
25
- framework: "PCI-DSS",
26
- controlId,
27
- version: FRAMEWORK_VERSIONS["PCI-DSS"],
28
- description,
29
- coverage,
30
- };
31
- }
32
- /** Helper: build HIPAA ref */
33
- function hipaa(controlId, description, coverage) {
34
- return {
35
- framework: "HIPAA",
36
- controlId,
37
- version: FRAMEWORK_VERSIONS.HIPAA,
38
- description,
39
- coverage,
40
- };
41
- }
42
- export { cis, pci, hipaa };
43
- // ─── COMPLIANCE_MAP ──────────────────────────────────────────────────────────
44
- // CIS Ubuntu 22.04 v2.0.0 mappings (Plan 01).
45
- // PCI-DSS and HIPAA mappings added in Plan 02.
46
- export const COMPLIANCE_MAP = {
47
- // ─── SSH (CIS 5.2.x) ────────────────────────────────────────────────────
48
- "SSH-PASSWORD-AUTH": [
49
- cis("5.2.8", "Ensure SSH PasswordAuthentication is disabled", "full"),
50
- pci("2.2.7", "All non-console administrative access is encrypted", "partial"),
51
- hipaa("§164.312(d)", "Person or entity authentication", "partial"),
52
- ],
53
- "SSH-ROOT-LOGIN": [
54
- cis("5.2.10", "Ensure SSH root login is disabled", "full"),
55
- pci("2.2.7", "Restrict administrative access", "partial"),
56
- ],
57
- "SSH-EMPTY-PASSWORDS": [cis("5.2.11", "Ensure SSH PermitEmptyPasswords is disabled", "full")],
58
- "SSH-PUBKEY-AUTH": [
59
- cis("5.2.6", "Ensure SSH public key authentication is in use", "full"),
60
- hipaa("§164.312(d)", "Person or entity authentication", "partial"),
61
- ],
62
- "SSH-MAX-AUTH-TRIES": [cis("5.2.7", "Ensure SSH MaxAuthTries is set to 4 or less", "full")],
63
- "SSH-X11-FORWARDING": [cis("5.2.5", "Ensure SSH X11 forwarding is disabled", "full")],
64
- "SSH-CLIENT-ALIVE-INTERVAL": [
65
- cis("5.2.16", "Ensure SSH Idle Timeout Interval is configured", "full"),
66
- hipaa("§164.312(a)(2)(iii)", "Automatic logoff", "partial"),
67
- ],
68
- "SSH-CLIENT-ALIVE-COUNT": [
69
- cis("5.2.16", "Ensure SSH ClientAliveCountMax is configured", "full"),
70
- hipaa("§164.312(a)(2)(iii)", "Automatic logoff", "partial"),
71
- ],
72
- "SSH-LOGIN-GRACE-TIME": [cis("5.2.17", "Ensure SSH LoginGraceTime is set to one minute or less", "full")],
73
- "SSH-IGNORE-RHOSTS": [cis("5.2.9", "Ensure SSH IgnoreRhosts is enabled", "full")],
74
- "SSH-HOSTBASED-AUTH": [cis("5.2.12", "Ensure SSH HostbasedAuthentication is disabled", "full")],
75
- "SSH-MAX-SESSIONS": [cis("5.2.19", "Ensure SSH MaxSessions is limited", "full")],
76
- "SSH-USE-DNS": [cis("5.2.20", "Ensure SSH AllowTcpForwarding is disabled", "partial")],
77
- "SSH-PERMIT-USER-ENV": [cis("5.2.13", "Ensure SSH PermitUserEnvironment is disabled", "full")],
78
- "SSH-LOG-LEVEL": [cis("5.2.4", "Ensure SSH LogLevel is appropriate", "full")],
79
- "SSH-STRONG-CIPHERS": [
80
- cis("5.2.15", "Ensure only strong ciphers are used", "full"),
81
- pci("4.2.1", "Strong cryptography for data in transit", "full"),
82
- hipaa("§164.312(e)(2)(ii)", "Encryption in transmission", "partial"),
83
- ],
84
- "SSH-STRONG-MACS": [
85
- cis("5.2.15", "Ensure only approved MAC algorithms are used", "full"),
86
- pci("4.2.1", "Strong cryptography for data in transit", "full"),
87
- hipaa("§164.312(e)(2)(ii)", "Encryption in transmission", "partial"),
88
- ],
89
- "SSH-STRONG-KEX": [
90
- cis("5.2.15", "Ensure only strong Key Exchange algorithms are used", "full"),
91
- pci("4.2.1", "Strong cryptography for data in transit", "full"),
92
- ],
93
- "SSH-MAX-STARTUPS": [cis("5.2.18", "Ensure SSH MaxStartups is configured", "full")],
94
- "SSH-STRICT-MODES": [cis("5.2.3", "Ensure SSH StrictModes is enabled", "full")],
95
- "SSH-NO-AGENT-FORWARDING": [cis("5.2.14", "Ensure SSH AllowAgentForwarding is disabled", "full")],
96
- "SSH-PRINT-MOTD": [cis("5.2.21", "Ensure SSH warning banner is configured", "partial")],
97
- // ─── Auth (CIS 5.3-5.5, 6.1-6.2) ────────────────────────────────────────
98
- "AUTH-NO-NOPASSWD-ALL": [
99
- cis("5.3.7", "Ensure sudo commands use pty and require authentication", "full"),
100
- pci("7.2.1", "Least privilege access", "partial"),
101
- ],
102
- "AUTH-PASSWORD-AGING": [
103
- cis("5.5.1.1", "Ensure password expiration is 365 days or less", "full"),
104
- pci("8.3.9", "Password change interval", "partial"),
105
- ],
106
- "AUTH-NO-EMPTY-PASSWORDS": [
107
- cis("6.2.1", "Ensure accounts in /etc/passwd use shadowed passwords", "partial"),
108
- pci("8.3.1", "All user passwords set", "full"),
109
- ],
110
- "AUTH-ROOT-LOGIN-RESTRICTED": [cis("5.4.3", "Ensure default group for the root account is GID 0", "partial")],
111
- "AUTH-PWD-QUALITY": [cis("5.3.2", "Ensure password creation requirements are configured", "full")],
112
- "AUTH-FAILLOCK-CONFIGURED": [
113
- cis("5.3.1", "Ensure lockout for failed password attempts is configured", "full"),
114
- pci("8.3.4", "Account lockout after failures", "partial"),
115
- hipaa("§164.312(a)(2)(i)", "Access control protection", "partial"),
116
- hipaa("§164.312(a)(1)", "Access control", "partial"),
117
- ],
118
- "AUTH-SHADOW-PERMISSIONS": [
119
- cis("6.1.3", "Ensure permissions on /etc/shadow are configured", "full"),
120
- pci("8.3.7", "Render passwords unreadable", "partial"),
121
- hipaa("§164.312(a)(2)(iv)", "Encryption and decryption", "partial"),
122
- ],
123
- "AUTH-SUDO-LOG": [cis("5.3.5", "Ensure sudo logging is enabled", "full")],
124
- "AUTH-SUDO-REQUIRETTY": [cis("5.3.6", "Ensure sudo authentication timeout is configured correctly", "partial")],
125
- "AUTH-NO-UID0-DUPS": [
126
- cis("6.2.4", "Ensure no duplicate UIDs exist", "full"),
127
- hipaa("§164.312(a)(2)(i)", "Unique user identification", "partial"),
128
- hipaa("§164.312(a)(2)(ii)", "Emergency access procedure", "partial"),
129
- ],
130
- "AUTH-PASS-MIN-DAYS": [cis("5.5.1.2", "Ensure minimum days between password changes is 1 or more", "full")],
131
- "AUTH-PASS-WARN-AGE": [cis("5.5.1.3", "Ensure password expiration warning days is 7 or more", "full")],
132
- "AUTH-INACTIVE-LOCK": [cis("5.5.1.4", "Ensure inactive password lock is 30 days or less", "full")],
133
- "AUTH-SUDO-WHEEL-ONLY": [
134
- cis("5.3.8", "Ensure access to the su command is restricted", "partial"),
135
- pci("7.2.1", "Restrict access by need-to-know", "partial"),
136
- ],
137
- "AUTH-MFA-PRESENT": [
138
- cis("5.3.4", "Ensure multi-factor authentication is enabled for all administrative access", "partial"),
139
- pci("8.4.2", "MFA for all access into CDE", "partial"),
140
- hipaa("§164.312(d)", "Person or entity authentication", "partial"),
141
- ],
142
- "AUTH-SU-RESTRICTED": [
143
- cis("5.3.8", "Ensure access to the su command is restricted", "full"),
144
- pci("7.2.1", "Restrict su access", "partial"),
145
- ],
146
- "AUTH-PASS-MAX-DAYS-SET": [cis("5.5.1.1", "Ensure password expiration is 365 days or less", "full")],
147
- "AUTH-GSHADOW-PERMISSIONS": [cis("6.1.5", "Ensure permissions on /etc/gshadow are configured", "full")],
148
- "AUTH-PWQUALITY-CONFIGURED": [
149
- cis("5.3.2", "Ensure password creation requirements are configured", "full"),
150
- pci("8.3.6", "Minimum password complexity", "partial"),
151
- ],
152
- "AUTH-UMASK-LOGIN-DEFS": [cis("5.5.5", "Ensure default user shell timeout is 900 seconds or less", "partial")],
153
- "AUTH-SHA512-HASH": [
154
- cis("5.3.3", "Ensure password hashing algorithm is SHA-512 or yescrypt", "full"),
155
- pci("8.3.7", "Passwords stored with strong cryptography", "partial"),
156
- hipaa("§164.312(d)", "Authentication with strong cryptography", "partial"),
157
- ],
158
- "AUTH-PWQUALITY-MINLEN": [cis("5.3.2", "Ensure password creation requirements are configured", "full")],
159
- // ─── Kernel (CIS 1.5.x, 3.3.x) ──────────────────────────────────────────
160
- "KRN-ASLR-ENABLED": [cis("1.5.1", "Ensure address space layout randomization is enabled", "full")],
161
- "KRN-CORE-DUMPS-RESTRICTED": [cis("1.5.2", "Ensure core dumps are restricted", "full")],
162
- "KRN-NETWORK-HARDENING": [cis("3.3.1", "Ensure source routed packets are not accepted", "partial")],
163
- "KRN-KERNEL-VERSION": [cis("1.9", "Ensure updates, patches, and additional security software are installed", "partial")],
164
- "KRN-DMESG-RESTRICTED": [cis("1.5.3", "Ensure unprivileged access to the kernel syslog is disabled", "full")],
165
- "KRN-PTRACE-SCOPE": [cis("1.5.4", "Ensure ptrace_scope is restricted", "full")],
166
- "KRN-KPTR-RESTRICT": [cis("1.5.3", "Ensure kernel pointer access is restricted", "partial")],
167
- "KRN-PERF-PARANOID": [cis("1.5.4", "Ensure kernel performance events access is restricted", "partial")],
168
- "KRN-SYN-COOKIES": [cis("3.3.8", "Ensure TCP SYN Cookies is enabled", "full")],
169
- "KRN-IP-FORWARD-DISABLED": [cis("3.3.1", "Ensure IP forwarding is disabled", "full")],
170
- "KRN-RP-FILTER": [cis("3.3.2", "Ensure packet redirect sending is disabled", "partial")],
171
- "KRN-TCP-TIMESTAMPS": [cis("3.3.7", "Ensure Reverse Path Filtering is enabled", "partial")],
172
- "KRN-ICMP-BROADCAST": [cis("3.3.5", "Ensure broadcast ICMP requests are ignored", "full")],
173
- "KRN-ACCEPT-REDIRECTS-V6": [cis("3.3.3", "Ensure secure ICMP redirects are not accepted", "full")],
174
- "KRN-BPF-UNPRIVILEGED": [cis("1.5.4", "Ensure unprivileged BPF is disabled", "full")],
175
- "KRN-MODULES-DISABLED": [cis("1.5.1", "Ensure module loading is disabled after boot", "partial")],
176
- "KRN-IP-FORWARD-V6": [cis("3.3.1", "Ensure IPv6 forwarding is disabled", "full")],
177
- "KRN-SEND-REDIRECTS": [cis("3.3.2", "Ensure packet redirect sending is disabled", "full")],
178
- "KRN-SECURE-REDIRECTS": [cis("3.3.3", "Ensure secure ICMP redirects are not accepted", "full")],
179
- "KRN-SYSRQ-DISABLED": [cis("1.5.4", "Ensure SysRq key is disabled", "full")],
180
- "KRN-CORE-PATTERN-SAFE": [cis("1.5.2", "Ensure core dump storage is configured", "partial")],
181
- "KRN-PANIC-ON-OOPS": [cis("1.5.4", "Ensure kernel panic on oops is enabled", "partial")],
182
- "KRN-NMI-WATCHDOG-DISABLED": [cis("1.5.4", "Ensure NMI watchdog is configured", "partial")],
183
- "KRN-UNPRIVILEGED-USERNS": [cis("1.5.4", "Ensure unprivileged user namespaces are disabled", "full")],
184
- "KRN-EXEC-SHIELD": [cis("1.5.1", "Ensure exec-shield is enabled", "partial")],
185
- "KRN-MODULE-BLACKLIST": [cis("1.1.1.1", "Ensure mounting of filesystem modules is disabled", "partial")],
186
- "KRN-PANIC-REBOOT": [cis("1.5.4", "Ensure kernel panic reboot timeout is configured", "partial")],
187
- "KRN-SYSCTL-HARDENED": [cis("3.3.1", "Ensure sysctl kernel parameters are hardened", "partial")],
188
- "KRN-COREDUMP-SYSTEMD": [cis("1.5.2", "Ensure core dumps are restricted via systemd", "full")],
189
- "KRN-LOCKDOWN-MODE": [cis("1.6.4", "Ensure kernel lockdown is enabled", "partial")],
190
- // ─── Network (CIS 3.1-3.3) ────────────────────────────────────────────────
191
- "NET-NO-DANGEROUS-PORTS": [cis("3.5.1.1", "Ensure ufw is installed", "partial")],
192
- "NET-DNS-RESOLVER": [cis("2.1.6", "Ensure DNS server is not in use", "partial")],
193
- "NET-TIME-SYNC": [cis("2.1.1.1", "Ensure a single time synchronization daemon is in use", "partial")],
194
- "NET-IP-FORWARDING": [cis("3.3.1", "Ensure IP forwarding is disabled", "full")],
195
- "NET-SYN-COOKIES": [cis("3.3.8", "Ensure TCP SYN Cookies is enabled", "full")],
196
- "NET-HOSTS-ACCESS": [cis("3.4.4", "Ensure TCP wrappers are configured", "partial")],
197
- "NET-HOSTS-DENY": [cis("3.4.4", "Ensure TCP wrappers are configured", "partial")],
198
- "NET-IPV6-DISABLED": [cis("3.1.1", "Disable IPv6", "full")],
199
- "NET-ICMP-REDIRECT-SEND": [cis("3.3.2", "Ensure packet redirect sending is disabled", "full")],
200
- "NET-ICMP-SECURE-REDIRECT": [cis("3.3.3", "Ensure secure ICMP redirects are not accepted", "full")],
201
- "NET-SOURCE-ROUTING-V6": [cis("3.3.1", "Ensure source routed packets are not accepted", "full")],
202
- "NET-MARTIAN-LOGGING": [cis("3.3.6", "Ensure suspicious packets are logged", "full")],
203
- "NET-NO-EXPOSED-MGMT-PORTS": [cis("3.5.1.4", "Ensure ufw default deny firewall policy", "partial")],
204
- "NET-RP-FILTER": [cis("3.3.7", "Ensure Reverse Path Filtering is enabled", "full")],
205
- "DDOS-SYN-RETRIES": [cis("3.3.8", "Ensure TCP backlog queue is configured", "partial")],
206
- "NET-NO-MAIL-PORTS": [cis("2.1.12", "Ensure mail transfer agent is configured for local-only mode", "partial")],
207
- "NET-LISTENING-SERVICES-AUDIT": [cis("2.4", "Ensure nonessential services are removed or masked", "partial")],
208
- "NET-NO-PROMISCUOUS-INTERFACES": [cis("3.5.2.1", "Ensure nftables is installed", "partial")],
209
- "NET-ARP-ANNOUNCE": [cis("3.3.7", "Ensure Reverse Path Filtering is enabled", "partial")],
210
- "NET-ARP-IGNORE": [cis("3.3.7", "Ensure Reverse Path Filtering is enabled", "partial")],
211
- "DDOS-ICMP-BOGUS": [cis("3.3.5", "Ensure broadcast ICMP requests are ignored", "partial")],
212
- "NET-TCP-WRAPPERS-CONFIGURED": [cis("3.4.1", "Ensure DCCP is disabled", "partial")],
213
- "NET-LISTENING-PORT-COUNT": [cis("2.4", "Ensure nonessential services are removed or masked", "partial")],
214
- // ─── Firewall (CIS 3.5.x) ────────────────────────────────────────────────
215
- "FW-UFW-ACTIVE": [
216
- cis("3.5.1.1", "Ensure ufw is installed", "full"),
217
- pci("1.3.1", "Network access controls", "partial"),
218
- ],
219
- "FW-DEFAULT-DENY": [
220
- cis("3.5.1.4", "Ensure ufw default deny firewall policy", "full"),
221
- pci("1.3.2", "Network access controls default deny", "partial"),
222
- ],
223
- "FW-SSH-ALLOWED": [cis("3.5.1.3", "Ensure ufw service is enabled", "partial")],
224
- "FW-NO-WIDE-OPEN": [
225
- cis("3.5.1.4", "Ensure ufw default deny firewall policy", "partial"),
226
- pci("1.3.3", "Restrict inbound and outbound traffic", "partial"),
227
- ],
228
- "FW-IPV6-RULES": [cis("3.5.1.2", "Ensure ufw loopback traffic is configured", "partial")],
229
- "FW-NFTABLES-PRESENT": [cis("3.5.2.1", "Ensure nftables is installed", "full")],
230
- "FW-FAIL2BAN-ACTIVE": [cis("3.5.1.1", "Ensure ufw is installed", "partial")],
231
- "FW-IPTABLES-BASELINE": [cis("3.5.3.1", "Ensure iptables packages are installed", "full")],
232
- "FW-INPUT-CHAIN-DENY": [
233
- cis("3.5.3.3", "Ensure iptables default deny firewall policy", "full"),
234
- pci("1.3.2", "Network access controls", "partial"),
235
- ],
236
- "FW-REJECT-NOT-DROP": [cis("3.5.1.4", "Ensure ufw default deny firewall policy", "partial")],
237
- "FW-OUTBOUND-RESTRICTED": [cis("3.5.3.3", "Ensure iptables outbound connections are configured", "partial")],
238
- "FW-RATE-LIMIT": [cis("3.5.1.5", "Ensure ufw outbound connections are configured", "partial")],
239
- "FW-FORWARD-CHAIN-DENY": [
240
- cis("3.5.3.3", "Ensure iptables default deny firewall policy", "full"),
241
- pci("1.3.4", "Prohibit direct public access to cardholder data environment", "partial"),
242
- ],
243
- "FW-IPV6-DISABLED-OR-FILTERED": [cis("3.1.1", "Disable IPv6", "partial")],
244
- "FW-NO-WILDCARD-ACCEPT": [
245
- cis("3.5.1.4", "Ensure ufw default deny firewall policy", "full"),
246
- pci("1.3.3", "Restrict inbound traffic to IP addresses within the CDE", "partial"),
247
- ],
248
- "FW-CONNTRACK-MAX": [cis("3.3.8", "Ensure TCP SYN Cookies is enabled", "partial")],
249
- "FW-LOG-DROPPED": [cis("3.5.1.6", "Ensure ufw firewall rules exist for all open ports", "partial")],
250
- // ─── Filesystem (CIS 1.1.x, 6.1.x) ──────────────────────────────────────
251
- "FS-TMP-STICKY-BIT": [cis("1.1.2.1", "Ensure /tmp is a separate partition", "partial")],
252
- "FS-NO-WORLD-WRITABLE": [cis("6.1.11", "Ensure no world writable files exist", "full")],
253
- "FS-SUID-THRESHOLD": [cis("6.1.13", "Ensure SUID and SGID files are reviewed", "partial")],
254
- "FS-HOME-PERMISSIONS": [cis("6.2.7", "Ensure users' home directories permissions are 750 or more restrictive", "full")],
255
- "FS-DISK-USAGE": [cis("1.1.1.1", "Ensure mounting of cramfs filesystems is disabled", "partial")],
256
- "FS-HOME-NOEXEC": [cis("1.1.7.1", "Ensure noexec option set on /home partition", "full")],
257
- "FS-HOME-NOSUID": [cis("1.1.7.2", "Ensure nosuid option set on /home partition", "full")],
258
- "FS-VAR-TMP-NOEXEC": [cis("1.1.3.2", "Ensure noexec option set on /var/tmp partition", "full")],
259
- "FS-VAR-TMP-NOSUID": [cis("1.1.3.3", "Ensure nosuid option set on /var/tmp partition", "full")],
260
- "FS-DEV-SHM-NOEXEC": [cis("1.1.8.2", "Ensure noexec option set on /dev/shm partition", "full")],
261
- "FS-DEV-SHM-NOSUID": [cis("1.1.8.3", "Ensure nosuid option set on /dev/shm partition", "full")],
262
- "FS-UMASK-RESTRICTIVE": [cis("5.5.5", "Ensure default user umask is 027 or more restrictive", "full")],
263
- "FS-TMP-NOEXEC": [cis("1.1.2.3", "Ensure noexec option set on /tmp partition", "full")],
264
- "FS-NO-UNOWNED-FILES": [cis("6.1.12", "Ensure no ungrouped files or directories exist", "partial")],
265
- "FS-TMP-NOSUID": [cis("1.1.2.4", "Ensure nosuid option set on /tmp partition", "full")],
266
- "FS-NODEV-REMOVABLE": [cis("1.1.8.1", "Ensure nodev option set on /dev/shm partition", "partial")],
267
- "FS-VAR-LOG-SEPARATE": [cis("1.1.6.1", "Ensure /var/log is a separate partition", "full")],
268
- "FS-BOOT-NOSUID": [cis("1.4.1", "Ensure permissions on bootloader config are configured", "partial")],
269
- "FS-VAR-NOEXEC": [cis("1.1.4.2", "Ensure noexec option set on /var partition", "full")],
270
- "FS-SUID-SYSTEM-COUNT": [cis("6.1.13", "Ensure SUID and SGID files are reviewed", "partial")],
271
- // ─── Logging (CIS 4.1-4.2) ────────────────────────────────────────────────
272
- "LOG-SYSLOG-ACTIVE": [
273
- cis("4.2.1.1", "Ensure rsyslog is installed", "full"),
274
- pci("10.2.1", "Implement audit logs", "partial"),
275
- hipaa("§164.312(b)", "Audit controls", "partial"),
276
- ],
277
- "LOG-AUTH-LOG-PRESENT": [
278
- cis("4.2.1.5", "Ensure rsyslog is configured to send logs to a remote log host", "partial"),
279
- pci("10.2.1", "Implement audit logs", "partial"),
280
- ],
281
- "LOG-ROTATION-CONFIGURED": [cis("4.2.3", "Ensure logrotate is configured", "full")],
282
- "LOG-REMOTE-LOGGING": [
283
- cis("4.2.1.5", "Ensure rsyslog is configured to send logs to a remote log host", "full"),
284
- pci("10.3.3", "Protect audit logs from modification", "partial"),
285
- hipaa("§164.312(b)", "Audit controls - offsite preservation", "partial"),
286
- ],
287
- "LOG-AUDIT-DAEMON": [
288
- cis("4.1.1.1", "Ensure auditd is installed", "full"),
289
- pci("10.2.1", "Implement audit logs", "partial"),
290
- hipaa("§164.312(b)", "Audit controls", "partial"),
291
- ],
292
- "LOG-AUDITD-ACTIVE": [
293
- cis("4.1.1.2", "Ensure auditd service is enabled", "full"),
294
- pci("10.2.1", "Implement audit logs", "partial"),
295
- hipaa("§164.312(b)", "Audit controls", "partial"),
296
- ],
297
- "LOG-AUDIT-LOGIN-RULES": [
298
- cis("4.1.3.1", "Ensure changes to system administration scope (sudoers) is collected", "full", "L2"),
299
- hipaa("§164.312(b)", "Audit controls", "partial"),
300
- ],
301
- "LOG-AUDIT-SUDO-RULES": [
302
- cis("4.1.3.2", "Ensure actions as another user are always logged", "full", "L2"),
303
- hipaa("§164.312(b)", "Audit controls", "partial"),
304
- ],
305
- "LOG-AUDIT-FILE-RULES": [
306
- cis("4.1.3.5", "Ensure events that modify the system's network environment are collected", "full", "L2"),
307
- hipaa("§164.312(b)", "Audit controls", "partial"),
308
- ],
309
- "LOG-VARLOG-PERMISSIONS": [cis("4.2.2.1", "Ensure journald is configured to send logs to rsyslog", "partial")],
310
- "LOG-CENTRAL-LOGGING": [
311
- cis("4.2.1.5", "Ensure rsyslog is configured to send logs to a remote log host", "partial"),
312
- pci("10.3.3", "Protect audit logs from modification", "partial"),
313
- ],
314
- "LOG-SECURE-JOURNAL": [cis("4.2.2.2", "Ensure journald is configured to compress large log files", "partial")],
315
- "LOG-NO-WORLD-READABLE-LOGS": [cis("4.2.2.3", "Ensure journald is configured to write logfiles to persistent disk", "partial")],
316
- "LOG-SYSLOG-REMOTE": [
317
- cis("4.2.1.5", "Ensure rsyslog is configured to send logs to a remote log host", "full"),
318
- pci("10.3.3", "Protect audit logs from modification", "partial"),
319
- hipaa("§164.312(b)", "Audit controls - offsite preservation", "partial"),
320
- ],
321
- "LOG-LOGROTATE-ACTIVE": [cis("4.2.3", "Ensure logrotate is configured", "full")],
322
- "LOG-AUDIT-WATCH-COUNT": [cis("4.1.3.7", "Ensure file deletion events by users are collected", "full", "L2")],
323
- "LOG-AUDITD-SPACE-ACTION": [cis("4.1.1.3", "Ensure auditing for processes that start prior to auditd is enabled", "partial")],
324
- // ─── Accounts (CIS 5.5.x, 6.2.x) ────────────────────────────────────────
325
- "ACCT-NO-EXTRA-UID0": [cis("6.2.3", "Ensure root is the only UID 0 account", "full")],
326
- "ACCT-NO-EMPTY-PASSWORD": [cis("6.2.1", "Ensure accounts in /etc/passwd use shadowed passwords", "full")],
327
- "ACCT-NO-RHOSTS": [cis("6.2.8", "Ensure users' dot files are not group or world writable", "partial")],
328
- "ACCT-HOSTS-EQUIV": [cis("6.2.8", "Ensure users' dot files are not group or world writable", "partial")],
329
- "ACCT-NO-NETRC": [cis("6.2.9", "Ensure no users have .netrc files", "full")],
330
- "ACCT-NO-FORWARD": [cis("6.2.10", "Ensure no users have .forward files", "full")],
331
- "ACCT-SYSTEM-SHELL": [cis("6.2.6", "Ensure no legacy '+' entries exist in /etc/passwd", "partial")],
332
- "ACCT-ROOT-HOME-PERMS": [cis("6.2.8", "Ensure root PATH integrity", "partial")],
333
- "ACCT-NO-DUPLICATE-UID": [cis("6.2.4", "Ensure no duplicate UIDs exist", "full")],
334
- "ACCT-HOME-OWNERSHIP": [cis("6.2.7", "Ensure users' home directories permissions are 750 or more restrictive", "partial")],
335
- "ACCT-SHADOW-PERMS": [cis("6.1.3", "Ensure permissions on /etc/shadow are configured", "full")],
336
- "ACCT-MAX-PASSWORD-DAYS": [cis("5.5.1.1", "Ensure password expiration is 365 days or less", "full")],
337
- "ACCT-MIN-PASSWORD-DAYS": [cis("5.5.1.2", "Ensure minimum days between password changes is 1 or more", "full")],
338
- "ACCT-INACTIVE-LOCK": [cis("5.5.1.4", "Ensure inactive password lock is 30 days or less", "full")],
339
- "ACCT-DEFAULT-UMASK": [cis("5.5.5", "Ensure default user umask is 027 or more restrictive", "full")],
340
- "ACCT-NO-EMPTY-HOME": [cis("6.2.7", "Ensure users' home directories permissions are 750 or more restrictive", "partial")],
341
- "ACCT-INACTIVE-ACCOUNTS": [cis("5.5.1.4", "Ensure inactive password lock is 30 days or less", "partial")],
342
- "ACCT-TOTAL-USERS-REASONABLE": [cis("6.2.2", "Ensure /etc/shadow password fields are not empty", "partial")],
343
- "ACCT-NO-WORLD-WRITABLE-HOME": [cis("6.2.7", "Ensure users' home directories permissions are 750 or more restrictive", "full")],
344
- "ACCT-LOGIN-DEFS-UID-MAX": [cis("5.5.3", "Ensure system accounts are secured", "partial")],
345
- "ACCT-LOGIN-SHELL-AUDIT": [cis("5.5.3", "Ensure system accounts are secured", "full")],
346
- "ACCT-GID-CONSISTENCY": [cis("6.2.5", "Ensure no duplicate GIDs exist", "full")],
347
- // ─── Services (CIS 2.1-2.6) ───────────────────────────────────────────────
348
- "SVC-NO-TELNET": [
349
- cis("2.3.2", "Ensure telnet client is not installed", "full"),
350
- pci("2.2.5", "Remove unnecessary services", "partial"),
351
- ],
352
- "SVC-NO-RSH": [
353
- cis("2.3.1", "Ensure NIS client is not installed", "partial"),
354
- pci("2.2.5", "Remove unnecessary services", "partial"),
355
- ],
356
- "SVC-NO-RLOGIN": [
357
- cis("2.3.1", "Ensure rsh client is not installed", "full"),
358
- pci("2.2.5", "Remove unnecessary services", "partial"),
359
- ],
360
- "SVC-NO-FTP": [
361
- cis("2.2.11", "Ensure VSFTPD server is not in use", "full"),
362
- pci("2.2.5", "Remove unnecessary services", "partial"),
363
- ],
364
- "SVC-NO-TFTP": [
365
- cis("2.2.12", "Ensure TFTP server is not in use", "full"),
366
- pci("2.2.5", "Remove unnecessary services", "partial"),
367
- ],
368
- "SVC-NFS-RESTRICTED": [
369
- cis("2.2.6", "Ensure NFS is not in use", "full"),
370
- pci("2.2.5", "Remove unnecessary services", "partial"),
371
- ],
372
- "SVC-NO-RPCBIND": [
373
- cis("2.2.8", "Ensure rpcbind is not in use", "full"),
374
- pci("2.2.5", "Remove unnecessary services", "partial"),
375
- ],
376
- "SVC-SAMBA-RESTRICTED": [
377
- cis("2.2.7", "Ensure Samba is not in use", "full"),
378
- pci("2.2.5", "Remove unnecessary services", "partial"),
379
- ],
380
- "SVC-NO-AVAHI": [
381
- cis("2.2.3", "Ensure avahi daemon services are not in use", "full"),
382
- pci("2.2.5", "Remove unnecessary services", "partial"),
383
- ],
384
- "SVC-NO-CUPS": [
385
- cis("2.2.4", "Ensure a print server is not in use", "full"),
386
- pci("2.2.5", "Remove unnecessary services", "partial"),
387
- ],
388
- "SVC-NO-DHCP-SERVER": [
389
- cis("2.2.5", "Ensure DHCP server is not in use", "full"),
390
- pci("2.2.5", "Remove unnecessary services", "partial"),
391
- ],
392
- "SVC-NO-DNS-SERVER": [cis("2.2.1", "Ensure xinetd is not installed", "partial")],
393
- "SVC-NO-SNMP": [
394
- cis("2.2.15", "Ensure net-snmp is not installed", "full"),
395
- pci("2.2.5", "Remove unnecessary services", "partial"),
396
- ],
397
- "SVC-NO-SQUID": [
398
- cis("2.2.14", "Ensure HTTP Proxy server is not in use", "full"),
399
- pci("2.2.5", "Remove unnecessary services", "partial"),
400
- ],
401
- "SVC-NO-XINETD": [
402
- cis("2.1.1", "Ensure xinetd is not installed", "full"),
403
- pci("2.2.5", "Remove unnecessary services", "partial"),
404
- ],
405
- "SVC-NO-YPSERV": [
406
- cis("2.2.16", "Ensure NIS server is not in use", "full"),
407
- pci("2.2.5", "Remove unnecessary services", "partial"),
408
- ],
409
- "SVC-NO-INETD": [
410
- cis("2.1.1", "Ensure xinetd is not installed", "partial"),
411
- pci("2.2.5", "Remove unnecessary services", "partial"),
412
- ],
413
- "SVC-NO-CHARGEN": [cis("2.1.3", "Ensure chargen services are not in use", "full")],
414
- "SVC-NO-DAYTIME": [cis("2.1.4", "Ensure daytime services are not in use", "full")],
415
- "SVC-NO-DISCARD": [cis("2.1.5", "Ensure discard services are not in use", "full")],
416
- "SVC-NO-ECHO-SVC": [cis("2.1.2", "Ensure echo services are not in use", "full")],
417
- "SVC-RUNNING-COUNT-REASONABLE": [cis("2.4", "Ensure nonessential services are removed or masked", "partial")],
418
- "SVC-NO-WILDCARD-LISTENERS": [cis("2.4", "Ensure nonessential services are removed or masked", "partial")],
419
- "SVC-NO-XINETD-SERVICES": [cis("2.1.1", "Ensure xinetd is not installed", "full")],
420
- "SVC-NO-WORLD-READABLE-CONFIGS": [cis("6.1.11", "Ensure no world writable files exist", "partial")],
421
- // ─── Boot (CIS 1.4.x) ─────────────────────────────────────────────────────
422
- "BOOT-GRUB-PERMS": [
423
- cis("1.4.1", "Ensure permissions on bootloader config are configured", "full"),
424
- pci("2.2.1", "System configuration standards", "partial"),
425
- ],
426
- "BOOT-GRUB-PASSWORD": [
427
- cis("1.4.2", "Ensure bootloader password is set", "full"),
428
- pci("2.2.1", "System configuration standards", "partial"),
429
- ],
430
- "BOOT-SECURE-BOOT": [cis("1.4.2", "Ensure bootloader password is set", "partial")],
431
- "BOOT-CMDLINE-SECURITY": [cis("1.5.1", "Ensure address space layout randomization is enabled", "partial")],
432
- "BOOT-GRUB-DIR-PERMS": [cis("1.4.1", "Ensure permissions on bootloader config are configured", "full")],
433
- "BOOT-BOOT-PARTITION": [cis("1.1.5.1", "Ensure /boot is a separate partition", "full")],
434
- "BOOT-SINGLE-USER-AUTH": [cis("1.4.2", "Ensure bootloader password is set", "partial")],
435
- "BOOT-KERNEL-MODULES": [cis("1.2.1", "Ensure package manager repositories are configured", "partial")],
436
- "BOOT-UEFI-SECURE": [cis("1.4.2", "Ensure bootloader password is set", "partial")],
437
- "BOOT-RESCUE-AUTH": [cis("1.4.2", "Ensure bootloader password is set", "partial")],
438
- "BOOT-GRUB-UNRESTRICTED": [cis("1.4.2", "Ensure bootloader password is set", "full")],
439
- // ─── Scheduling (CIS 5.1.x) ───────────────────────────────────────────────
440
- "SCHED-CRON-ACCESS-CONTROL": [cis("5.1.9", "Ensure at is restricted to authorized users", "partial")],
441
- "SCHED-CRON-DENY": [cis("5.1.9", "Ensure crontab is restricted to authorized users", "full")],
442
- "SCHED-AT-ACCESS-CONTROL": [cis("5.1.8", "Ensure at/cron is restricted to authorized users", "full")],
443
- "SCHED-AT-DENY": [cis("5.1.8", "Ensure at is restricted to authorized users", "full")],
444
- "SCHED-CRON-DIR-PERMS": [cis("5.1.2", "Ensure permissions on /etc/cron.d are configured", "full")],
445
- "SCHED-CRONTAB-PERMS": [cis("5.1.1", "Ensure cron daemon is enabled and running", "partial")],
446
- "SCHED-CRON-D-PERMS": [cis("5.1.2", "Ensure permissions on /etc/cron.d are configured", "full")],
447
- "SCHED-CRON-DAILY-PERMS": [cis("5.1.3", "Ensure permissions on /etc/cron.daily are configured", "full")],
448
- "SCHED-CRONTAB-OWNER": [cis("5.1.1", "Ensure cron daemon is enabled and running", "partial")],
449
- "SCHED-NO-USER-CRONTABS": [cis("5.1.9", "Ensure crontab is restricted to authorized users", "partial")],
450
- "SCHED-CRON-D-FILE-COUNT": [cis("5.1.2", "Ensure permissions on /etc/cron.d are configured", "partial")],
451
- "SCHED-NO-WORLD-READABLE-CRONTABS": [cis("5.1.7", "Ensure permissions on /etc/cron.d are configured", "full")],
452
- // ─── Time (CIS 2.1.1.x) ───────────────────────────────────────────────────
453
- "TIME-NTP-ACTIVE": [cis("2.1.1.1", "Ensure a single time synchronization daemon is in use", "full")],
454
- "TIME-SYNCHRONIZED": [cis("2.1.1.2", "Ensure chrony is configured with authorized timeserver", "partial")],
455
- "TIME-TIMEZONE-SET": [cis("2.1.1.2", "Ensure chrony is configured with authorized timeserver", "partial")],
456
- "TIME-HWCLOCK-SYNC": [cis("2.1.1.2", "Ensure chrony is configured with authorized timeserver", "partial")],
457
- "TIME-CHRONY-SOURCES": [cis("2.1.1.2", "Ensure chrony is configured with authorized timeserver", "full")],
458
- "TIME-DRIFT-CHECK": [cis("2.1.1.3", "Ensure chrony is running as user chrony", "partial")],
459
- "TIME-NTP-PEERS-CONFIGURED": [cis("2.1.1.2", "Ensure chrony is configured with authorized timeserver", "full")],
460
- "TIME-NO-DRIFT": [cis("2.1.1.3", "Ensure chrony is running as user chrony", "partial")],
461
- "TIME-NTP-SYNCHRONIZED": [cis("2.1.1.1", "Ensure a single time synchronization daemon is in use", "full")],
462
- // ─── Banners (CIS 1.7.x) ──────────────────────────────────────────────────
463
- "BANNER-ISSUE-EXISTS": [cis("1.7.1", "Ensure message of the day is configured properly", "full")],
464
- "BANNER-ISSUE-NET-EXISTS": [cis("1.7.4", "Ensure permissions on /etc/issue.net are configured", "full")],
465
- "BANNER-MOTD-EXISTS": [cis("1.7.2", "Ensure local login warning banner is configured properly", "full")],
466
- "BANNER-SSH-BANNER": [cis("1.7.3", "Ensure remote login warning banner is configured properly", "full")],
467
- "BANNER-NO-OS-INFO": [cis("1.7.1", "Ensure message of the day is configured properly", "partial")],
468
- "BNR-ISSUE-NET-SET": [cis("1.7.3", "Ensure remote login warning banner is configured properly", "full")],
469
- // ─── Crypto (CIS 5.2.x SSH crypto) ───────────────────────────────────────
470
- "CRYPTO-OPENSSL-INSTALLED": [cis("1.9", "Ensure updates, patches, and additional security software are installed", "partial")],
471
- "CRYPTO-SSH-WEAK-CIPHERS": [cis("5.2.15", "Ensure only strong ciphers are used", "full")],
472
- "CRYPTO-SSH-WEAK-MACS": [cis("5.2.15", "Ensure only approved MAC algorithms are used", "full")],
473
- "CRYPTO-SSH-WEAK-KEX": [cis("5.2.15", "Ensure only strong Key Exchange algorithms are used", "full")],
474
- "CRYPTO-SSH-ED25519-KEY": [cis("5.2.6", "Ensure SSH public key authentication is in use", "partial")],
475
- "CRYPTO-LUKS-DISK": [cis("1.4.1", "Ensure disk encryption is configured", "partial")],
476
- "CRYPTO-TLS-MIN-PROTOCOL": [
477
- cis("5.2.15", "Ensure only strong ciphers are used", "partial"),
478
- pci("4.2.1", "Strong cryptography for data in transit", "full"),
479
- hipaa("§164.312(e)(2)(ii)", "Encryption in transmission", "partial"),
480
- ],
481
- "CRYPTO-CERT-NOT-EXPIRED": [cis("5.2.15", "Ensure only strong ciphers are used", "partial")],
482
- "CRYPTO-NO-SSLV3": [
483
- cis("5.2.15", "Ensure only strong ciphers are used", "full"),
484
- pci("4.2.1", "No SSLv3", "full"),
485
- hipaa("§164.312(e)(2)(ii)", "No weak encryption protocols", "full"),
486
- ],
487
- "CRYPTO-OPENSSL-MODERN": [cis("1.9", "Ensure updates, patches, and additional security software are installed", "partial")],
488
- "CRYPTO-WEAK-SSH-KEYS": [cis("5.2.6", "Ensure SSH public key authentication is in use", "partial")],
489
- "CRYPTO-HOST-KEY-PERMS": [cis("5.2.3", "Ensure SSH StrictModes is enabled", "partial")],
490
- "CRYPTO-NO-WEAK-OPENSSL-CIPHERS": [
491
- cis("5.2.15", "Ensure only strong ciphers are used", "full"),
492
- pci("4.2.1", "Strong cryptography", "full"),
493
- ],
494
- "CRYPTO-MIN-PROTOCOL": [cis("5.2.15", "Ensure only strong ciphers are used", "full")],
495
- "CRYPTO-LUKS-KEY-SIZE": [cis("1.1.2.1", "Ensure /tmp is a separate partition", "partial")],
496
- "CRYPTO-DH-PARAMS-SIZE": [cis("5.2.15", "Ensure only strong Key Exchange algorithms are used", "partial")],
497
- "CRYPTO-NO-WORLD-READABLE-KEYS": [cis("6.1.11", "Ensure no world writable files exist", "partial")],
498
- "CRYPTO-CERT-COUNT": [cis("5.2.15", "Ensure only strong ciphers are used", "partial")],
499
- "CRYPTO-NGINX-TLS-MODERN": [cis("5.2.15", "Ensure only strong ciphers are used", "partial")],
500
- // ─── File Integrity (CIS 4.1.4 — L2) ────────────────────────────────────
501
- "FINT-AIDE-INSTALLED": [
502
- cis("4.1.4.1", "Ensure AIDE is installed", "full", "L2"),
503
- pci("11.5.2", "File integrity monitoring deployed", "partial"),
504
- hipaa("§164.312(c)(1)", "Protect ePHI integrity", "partial"),
505
- ],
506
- "FINT-TRIPWIRE-INSTALLED": [cis("4.1.4.1", "Ensure AIDE is installed", "partial", "L2")],
507
- "FINT-AIDE-DB-EXISTS": [cis("4.1.4.1", "Ensure AIDE is installed", "partial", "L2")],
508
- "FINT-AIDE-CRON": [
509
- cis("4.1.4.2", "Ensure filesystem integrity is regularly checked", "full", "L2"),
510
- pci("11.5.2", "File integrity monitoring", "partial"),
511
- hipaa("§164.312(c)(1)", "Integrity controls", "partial"),
512
- hipaa("§164.312(c)(2)", "Mechanism to authenticate ePHI", "partial"),
513
- ],
514
- "FINT-AUDITD-INSTALLED": [
515
- cis("4.1.1.1", "Ensure auditd is installed", "full"),
516
- hipaa("§164.312(b)", "Audit controls", "partial"),
517
- ],
518
- "FINT-AUDITD-RUNNING": [
519
- cis("4.1.1.2", "Ensure auditd service is enabled", "full"),
520
- pci("10.2.1", "Implement audit logs", "partial"),
521
- hipaa("§164.312(b)", "Audit controls", "partial"),
522
- ],
523
- "FINT-AUDIT-PASSWD-RULE": [
524
- cis("4.1.3.1", "Ensure changes to system administration scope (sudoers) is collected", "partial", "L2"),
525
- hipaa("§164.312(b)", "Audit controls", "partial"),
526
- ],
527
- "FINT-AUDIT-SHADOW-RULE": [
528
- cis("4.1.3.1", "Ensure changes to system administration scope (sudoers) is collected", "partial", "L2"),
529
- hipaa("§164.312(b)", "Audit controls", "partial"),
530
- ],
531
- "FINT-AIDE-DB-RECENT": [
532
- cis("4.1.4.2", "Ensure filesystem integrity is regularly checked", "partial", "L2"),
533
- hipaa("§164.312(c)(1)", "Protect ePHI integrity", "partial"),
534
- hipaa("§164.312(c)(2)", "Mechanism to authenticate ePHI", "partial"),
535
- ],
536
- "FINT-CRITICAL-FILE-MONITORING": [
537
- cis("4.1.3.5", "Ensure events that modify the system's network environment are collected", "partial", "L2"),
538
- pci("11.5.2", "File integrity monitoring", "partial"),
539
- hipaa("§164.312(c)(1)", "Integrity controls", "partial"),
540
- ],
541
- // ─── MAC (CIS 1.6.x) ──────────────────────────────────────────────────────
542
- "MAC-LSM-ACTIVE": [cis("1.6.1", "Ensure AppArmor is installed", "partial")],
543
- "MAC-APPARMOR-ACTIVE": [cis("1.6.1", "Ensure AppArmor is installed", "full")],
544
- "MAC-APPARMOR-PROFILES": [cis("1.6.2", "Ensure AppArmor is enabled in the bootloader configuration", "partial")],
545
- "MAC-APPARMOR-NO-UNCONFINED": [cis("1.6.3", "Ensure all AppArmor Profiles are in enforce or complain mode", "full")],
546
- "MAC-SELINUX-ENFORCING": [cis("1.6.1", "Ensure AppArmor is installed", "partial")],
547
- "MAC-SELINUX-CONFIG": [cis("1.6.2", "Ensure AppArmor is enabled in the bootloader configuration", "partial")],
548
- "MAC-SECCOMP-ENABLED": [cis("1.6.1", "Ensure AppArmor is installed", "partial")],
549
- "MAC-APPARMOR-ENFORCE-COUNT": [cis("1.6.3", "Ensure all AppArmor Profiles are in enforce or complain mode", "full")],
550
- "MAC-NO-UNCONFINED-PROCS": [cis("1.6.3", "Ensure all AppArmor Profiles are in enforce or complain mode", "full")],
551
- "MAC-SECCOMP-STRICT": [cis("1.6.1", "Ensure AppArmor is installed", "partial")],
552
- // ─── Updates (CIS 1.9) ────────────────────────────────────────────────────
553
- "UPD-SECURITY-PATCHES": [
554
- cis("1.9", "Ensure updates, patches, and additional security software are installed", "full"),
555
- pci("6.3.3", "Security patches installed", "partial"),
556
- ],
557
- "UPD-AUTO-UPDATES": [cis("1.9", "Ensure updates, patches, and additional security software are installed", "full")],
558
- "UPD-CACHE-FRESH": [cis("1.9", "Ensure updates, patches, and additional security software are installed", "partial")],
559
- "UPD-REBOOT-REQUIRED": [cis("1.9", "Ensure updates, patches, and additional security software are installed", "partial")],
560
- "UPD-LAST-UPGRADE-RECENT": [cis("1.9", "Ensure updates, patches, and additional security software are installed", "full")],
561
- "UPD-CVE-SCANNER-PRESENT": [
562
- cis("1.9", "Ensure updates, patches, and additional security software are installed", "partial"),
563
- pci("6.3.2", "Software vulnerability identification", "partial"),
564
- ],
565
- "UPD-DPKG-NO-PARTIAL": [cis("1.9", "Ensure updates, patches, and additional security software are installed", "full")],
566
- "UPD-KERNEL-CURRENT": [cis("1.9", "Ensure updates, patches, and additional security software are installed", "full")],
567
- "UPD-UNATTENDED-ENABLED": [cis("1.9", "Ensure updates, patches, and additional security software are installed", "full")],
568
- "UPD-APT-HTTPS": [cis("1.2.1", "Ensure package manager repositories are configured", "partial")],
569
- "UPD-SECURITY-REPO-PRIORITY": [cis("1.2.1", "Ensure package manager repositories are configured", "full")],
570
- // ─── Malware (PCI-DSS 5.x) ────────────────────────────────────────────────
571
- "MALWARE-CHKROOTKIT-INSTALLED": [pci("5.2.1", "Anti-malware deployed", "partial")],
572
- "MALWARE-RKHUNTER-INSTALLED": [pci("5.2.1", "Anti-malware deployed", "partial")],
573
- "MALWARE-NO-SUID-IN-TMP": [pci("5.2.1", "Anti-malware deployed", "partial")],
574
- "MALWARE-NO-SUID-IN-DEV": [pci("5.2.1", "Anti-malware deployed", "partial")],
575
- "MALWARE-RKHUNTER-RECENT-SCAN": [pci("5.2.1", "Anti-malware deployed", "partial")],
576
- "MALWARE-NO-ROOT-WRITABLE": [pci("5.2.1", "Anti-malware deployed", "partial")],
577
- // ─── Secrets (PCI-DSS 8.x + HIPAA 164.312(a)) ────────────────────────────
578
- "SECRETS-SSH-KEY-PERMS": [
579
- pci("8.3.7", "Authentication factors unreadable", "partial"),
580
- hipaa("§164.312(a)(2)(iv)", "Encryption and decryption", "partial"),
581
- ],
582
- "SECRETS-ENV-WORLD-READABLE": [
583
- pci("8.3.7", "Authentication factors unreadable", "partial"),
584
- hipaa("§164.312(a)(2)(iv)", "Encryption and decryption", "partial"),
585
- ],
586
- "SECRETS-ETC-PLAINTEXT-CRED": [
587
- pci("8.3.7", "Authentication factors unreadable", "partial"),
588
- hipaa("§164.312(a)(2)(iv)", "Encryption and decryption", "partial"),
589
- ],
590
- "SECRETS-WORLD-READABLE-KEYS": [pci("8.3.7", "Authentication factors unreadable", "partial")],
591
- "SECRETS-SSH-AUTHORIZED-KEYS-PERMS": [pci("8.3.7", "Authentication factors unreadable", "partial")],
592
- "SECRETS-NO-READABLE-HISTORY": [
593
- pci("8.3.7", "Authentication factors unreadable", "partial"),
594
- ],
595
- "SECRETS-NO-SSH-AGENT-FORWARDING": [
596
- cis("5.2.20", "Ensure SSH AllowAgentForwarding is disabled", "full"),
597
- ],
598
- "SECRETS-NO-AWS-CREDS-PLAINTEXT": [
599
- pci("8.3.7", "Authentication factors unreadable", "partial"),
600
- hipaa("§164.312(a)(2)(iv)", "Encryption and decryption", "partial"),
601
- ],
602
- "SECRETS-NO-KUBECONFIG-EXPOSED": [
603
- pci("8.3.7", "Authentication factors unreadable", "partial"),
604
- ],
605
- "SECRETS-NO-SHELL-RC-SECRETS": [
606
- pci("8.3.7", "Authentication factors unreadable", "partial"),
607
- hipaa("§164.312(a)(2)(iv)", "Encryption and decryption", "partial"),
608
- ],
609
- "SECRETS-GIT-CONFIG-TOKEN": [
610
- pci("8.3.7", "Authentication factors unreadable", "partial"),
611
- ],
612
- "SECRETS-ENV-IN-HOME": [
613
- pci("8.3.7", "Authentication factors unreadable", "partial"),
614
- ],
615
- "SECRETS-AWS-CREDS-PERMS": [
616
- pci("8.3.7", "Authentication factors unreadable", "partial"),
617
- ],
618
- "SECRETS-DOCKER-ENV-PERMS": [
619
- pci("8.3.7", "Authentication factors unreadable", "partial"),
620
- ],
621
- "SECRETS-NPMRC-TOKEN": [
622
- pci("8.3.7", "Authentication factors unreadable", "partial"),
623
- ],
624
- // ─── Cloud Metadata (CIS + PCI-DSS) ──────────────────────────────────────
625
- "CLOUDMETA-ENDPOINT-BLOCKED": [
626
- cis("5.4.5", "Ensure default deny firewall policy", "partial"),
627
- pci("1.3.1", "Restrict inbound traffic", "partial"),
628
- ],
629
- "CLOUDMETA-INIT-LOG-CLEAN": [
630
- pci("8.3.7", "Authentication factors unreadable", "partial"),
631
- ],
632
- "CLOUDMETA-IMDSV2-ENFORCED": [
633
- cis("5.4.5", "Ensure default deny firewall policy", "partial"),
634
- pci("1.3.1", "Restrict inbound traffic", "partial"),
635
- ],
636
- "CLOUDMETA-SENSITIVE-ENV-NOT-IN-CLOUDINIT": [
637
- pci("8.3.7", "Authentication factors unreadable", "partial"),
638
- hipaa("§164.312(a)(2)(iv)", "Encryption and decryption", "partial"),
639
- ],
640
- "CLOUDMETA-VPC-METADATA-FIREWALL": [
641
- cis("5.4.5", "Ensure default deny firewall policy", "partial"),
642
- pci("1.3.1", "Restrict inbound traffic", "partial"),
643
- ],
644
- "CLOUDMETA-IMDSV1-DISABLED": [
645
- cis("5.4.5", "Ensure default deny firewall policy", "partial"),
646
- ],
647
- // ─── Supply Chain (PCI-DSS 6.x) ──────────────────────────────────────────
648
- "SUPPLY-APT-HTTPS-REPOS": [pci("6.3.3", "Software protected from vulnerabilities", "partial")],
649
- "SUPPLY-GPG-KEYS-PRESENT": [pci("6.3.3", "Software authenticated", "partial")],
650
- "SUPPLY-NO-UNSIGNED-PACKAGES": [pci("6.3.3", "Supply chain integrity", "partial")],
651
- "SUPPLY-REPOS-SIGNED": [pci("6.3.3", "Supply chain integrity", "partial")],
652
- "SUPPLY-NO-UNAUTH-SOURCES": [pci("6.3.3", "Supply chain integrity", "partial")],
653
- "SUPPLY-DPKG-AUDIT-CLEAN": [pci("6.3.3", "Supply chain integrity", "partial")],
654
- "SUPPLY-NO-INSECURE-REPOS": [pci("6.3.3", "Supply chain integrity", "partial")],
655
- "SUPPLY-GPG-KEYS-TRUSTED": [pci("6.3.3", "Supply chain integrity", "partial")],
656
- // ─── Docker (PCI-DSS 2.x) ────────────────────────────────────────────────
657
- "DCK-ROOTLESS-MODE": [pci("2.2.5", "Container security configuration", "partial")],
658
- "DCK-NO-PRIVILEGED": [pci("2.2.5", "Container security configuration", "partial")],
659
- "DCK-APPARMOR-PROFILE": [pci("2.2.5", "Container security configuration", "partial")],
660
- "DCK-NO-HOST-NETWORK": [pci("2.2.5", "Container security configuration", "partial")],
661
- "DCK-PID-MODE": [pci("2.2.5", "Container security configuration", "partial")],
662
- "DCK-SECCOMP-ENABLED": [pci("2.2.5", "Container security configuration", "partial")],
663
- "DCK-READ-ONLY-ROOTFS": [pci("2.2.5", "Container security configuration", "partial")],
664
- "DCK-NO-HOST-NETWORK-INSPECT": [pci("2.2.5", "Container security configuration", "partial")],
665
- // ─── Incident Readiness (PCI-DSS 10.x + HIPAA 164.312(b)) ───────────────
666
- "INCIDENT-AUDITD-RUNNING": [
667
- pci("10.2.1", "Implement audit logs", "partial"),
668
- hipaa("§164.312(b)", "Audit controls", "partial"),
669
- ],
670
- "INCIDENT-LOG-FORWARDING": [
671
- pci("10.3.3", "Protect audit logs from modification", "partial"),
672
- hipaa("§164.312(b)", "Audit controls", "partial"),
673
- ],
674
- "INCIDENT-AUDITD-PASSWD-RULE": [
675
- pci("10.2.1", "Implement audit logs", "partial"),
676
- hipaa("§164.312(b)", "Audit controls", "partial"),
677
- ],
678
- "INCIDENT-AUDITD-SUDO-RULE": [
679
- pci("10.2.1", "Implement audit logs", "partial"),
680
- hipaa("§164.312(b)", "Audit controls", "partial"),
681
- ],
682
- "INCID-FORENSIC-TOOLS": [pci("10.2.1", "Implement audit logs", "partial")],
683
- "INCID-LOG-ARCHIVE-EXISTS": [pci("10.3.3", "Protect audit logs from modification", "partial")],
684
- // --- TLS Hardening (Phase 85) ---
685
- "TLS-MIN-VERSION": [
686
- pci("4.2.1", "Strong cryptography for data in transit — TLS 1.2 minimum", "full"),
687
- cis("5.1", "Ensure only approved TLS protocols are used", "partial"),
688
- hipaa("§164.312(e)(1)", "Transmission security — TLS 1.2 minimum", "partial"),
689
- ],
690
- "TLS-WEAK-CIPHERS": [
691
- pci("4.2.1", "Strong cryptography — no weak ciphers (RC4, DES, 3DES, NULL, SEED, IDEA)", "full"),
692
- hipaa("§164.312(e)(1)", "Transmission security — strong cipher suites", "partial"),
693
- ],
694
- "TLS-HSTS": [
695
- cis("4.1", "Ensure web server HSTS is enabled", "partial"),
696
- ],
697
- "TLS-OCSP": [],
698
- "TLS-CERT-EXPIRY": [
699
- pci("4.2.1", "Maintain valid TLS certificates — expiry monitoring", "partial"),
700
- ],
701
- "TLS-DH-PARAM": [
702
- pci("4.2.1", "Strong cryptography — DH parameters >= 2048 bits", "partial"),
703
- cis("5.1", "Ensure only strong DH parameters are used", "partial"),
704
- ],
705
- "TLS-COMPRESSION": [
706
- pci("4.2.1", "Disable TLS compression to prevent CRIME attack", "partial"),
707
- ],
708
- "TLS-CERT-CHAIN": [
709
- pci("4.2.1", "Ensure certificate chain is complete and valid", "partial"),
710
- ],
711
- // --- HTTP Security Headers (Phase 86) ---
712
- "HDR-001": [
713
- pci("6.4.1", "Protect against clickjacking (X-Frame-Options or CSP frame-ancestors)", "partial"),
714
- ],
715
- "HDR-002": [
716
- pci("6.4.1", "Prevent MIME type sniffing (X-Content-Type-Options: nosniff)", "partial"),
717
- ],
718
- "HDR-003": [], // Referrer-Policy — no direct CIS/PCI mapping; best practice
719
- "HDR-004": [], // Permissions-Policy — no direct CIS/PCI mapping; best practice
720
- "HDR-005": [
721
- pci("6.2.4", "Protect against cross-site request forgery (CORS wildcard)", "partial"),
722
- ],
723
- "HDR-006": [
724
- pci("6.4.1", "Content Security Policy — defense against XSS injection", "partial"),
725
- ],
726
- // --- WAF & Reverse Proxy (NGX) — Phase 88 ---
727
- "NGX-SERVER-TOKENS": [
728
- cis("2.2.1", "Ensure unnecessary system components are not installed", "partial"),
729
- pci("2.2.1", "System components are configured and managed securely", "partial"),
730
- ],
731
- "NGX-SSL-PROTOCOLS": [
732
- pci("4.2.1", "Strong cryptography for transmission of account data", "partial"),
733
- ],
734
- "NGX-RATE-LIMIT": [
735
- pci("6.4.1", "Web-facing applications are protected against attacks", "partial"),
736
- ],
737
- "NGX-CLIENT-BODY-SIZE": [
738
- pci("6.4.1", "Web-facing application security controls in place", "partial"),
739
- ],
740
- "NGX-ACCESS-LOG": [
741
- cis("4.1.1.1", "Ensure auditd is installed", "partial"),
742
- pci("10.2.1", "Audit logs capture events required for reconstruction", "partial"),
743
- ],
744
- "NGX-ERROR-LOG": [
745
- cis("4.1.1.1", "Ensure logging is configured", "partial"),
746
- pci("10.2.1", "Audit logs capture events", "partial"),
747
- ],
748
- "NGX-WAF-DETECTED": [
749
- pci("6.4.2", "An automated technical solution is deployed to detect and prevent web-based attacks", "full"),
750
- ],
751
- "NGX-WAF-BOT-DETECT": [
752
- pci("6.4.2", "Automated bot detection via CRS 913 rules or UA map", "partial"),
753
- ],
754
- "NGX-WAF-CHALLENGE-MODE": [
755
- pci("6.4.2", "Challenge mode for suspicious request verification", "partial"),
756
- ],
757
- // NGX-GZIP-CONFIG and NGX-SERVER-HEADER intentionally excluded — no direct CIS/PCI-DSS control
758
- // --- DDoS Hardening (DDOS) --- Phase 89 ---
759
- "DDOS-SYN-BACKLOG": [
760
- cis("3.3.8", "Ensure TCP backlog queue is configured", "partial"),
761
- pci("6.3.3", "All system components protected from known vulnerabilities", "partial"),
762
- ],
763
- "DDOS-SYNACK-RETRIES": [
764
- cis("3.3.8", "Ensure TCP SYN cookies and retry limits configured", "partial"),
765
- pci("6.3.3", "System components protected from known vulnerabilities", "partial"),
766
- ],
767
- "DDOS-FIN-TIMEOUT": [
768
- cis("3.3.8", "Ensure TCP hardening parameters configured", "partial"),
769
- ],
770
- "DDOS-TW-REUSE": [
771
- pci("6.3.3", "System components protected from known vulnerabilities", "partial"),
772
- ],
773
- "DDOS-ICMP-RATELIMIT": [
774
- cis("3.3.5", "Ensure broadcast ICMP requests are ignored", "partial"),
775
- ],
776
- "DDOS-SOMAXCONN": [
777
- cis("3.3.8", "Ensure TCP backlog queue is configured", "partial"),
778
- pci("6.3.3", "System components protected from known vulnerabilities", "partial"),
779
- ],
780
- };
6
+ export { FRAMEWORK_VERSIONS, cis, pci, hipaa, } from "./helpers.js";
7
+ export { COMPLIANCE_MAP } from "./categories/index.js";
781
8
  //# sourceMappingURL=mapper.js.map