@portll/cobolwork 0.5.0 → 0.6.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 (69) hide show
  1. package/README.md +43 -11
  2. package/bin/cobolwork.mjs +27 -8
  3. package/lib/baseline.mjs +9 -0
  4. package/lib/build.mjs +33 -8
  5. package/lib/capabilities.mjs +4 -1
  6. package/lib/consequence.mjs +4 -0
  7. package/lib/control-reuse.mjs +113 -0
  8. package/lib/control.mjs +25 -1
  9. package/lib/dataflow.mjs +285 -86
  10. package/lib/equivalence.mjs +44 -5
  11. package/lib/evidence/cli.mjs +13 -5
  12. package/lib/evidence/record.mjs +16 -6
  13. package/lib/evidence/seal.mjs +17 -0
  14. package/lib/evidence/store.mjs +30 -14
  15. package/lib/evidence/timestamp.mjs +83 -0
  16. package/lib/evidence/verify.mjs +120 -42
  17. package/lib/hlasm/asm/data.mjs +116 -0
  18. package/lib/hlasm/asm/listing.mjs +43 -0
  19. package/lib/hlasm/asm/output.mjs +45 -0
  20. package/lib/hlasm/asm/sections.mjs +159 -0
  21. package/lib/hlasm/asm/symbols.mjs +78 -0
  22. package/lib/hlasm/exec.mjs +27 -0
  23. package/lib/hlasm/expr.mjs +167 -0
  24. package/lib/hlasm/instr.mjs +48 -0
  25. package/lib/hlasm/locate.mjs +333 -0
  26. package/lib/hlasm/macro/authorization.mjs +126 -0
  27. package/lib/hlasm/macro/datasets.mjs +94 -0
  28. package/lib/hlasm/macro/io.mjs +139 -0
  29. package/lib/hlasm/macro/le.mjs +53 -0
  30. package/lib/hlasm/macro/linkage.mjs +143 -0
  31. package/lib/hlasm/macro/operator.mjs +66 -0
  32. package/lib/hlasm/macro/program.mjs +142 -0
  33. package/lib/hlasm/macro/recovery.mjs +80 -0
  34. package/lib/hlasm/macro/storage.mjs +117 -0
  35. package/lib/hlasm/macro/structured.mjs +131 -0
  36. package/lib/hlasm/model.mjs +72 -0
  37. package/lib/hlasm/operands.mjs +49 -0
  38. package/lib/hlasm/read.mjs +116 -0
  39. package/lib/inventory.mjs +10 -7
  40. package/lib/ironwork-ids.mjs +24 -0
  41. package/lib/ironwork.mjs +4 -1
  42. package/lib/kernel/registry.mjs +20 -17
  43. package/lib/kernel/shared-pass.mjs +138 -0
  44. package/lib/options.mjs +26 -4
  45. package/lib/policy.mjs +6 -0
  46. package/lib/precompile-cics.mjs +1 -1
  47. package/lib/revision.json +1 -1
  48. package/lib/sarif.mjs +3 -0
  49. package/lib/scan.mjs +21 -11
  50. package/lib/sets/abend.mjs +71 -7
  51. package/lib/sets/build.mjs +43 -37
  52. package/lib/sets/cics.mjs +5 -3
  53. package/lib/sets/compile.mjs +5 -3
  54. package/lib/sets/copybook.mjs +5 -3
  55. package/lib/sets/flow.mjs +14 -7
  56. package/lib/sets/hlasm.mjs +60 -4
  57. package/lib/sets/log.mjs +5 -3
  58. package/lib/sets/priv.mjs +5 -3
  59. package/lib/sets/secrets.mjs +110 -0
  60. package/lib/sets/semantics.mjs +5 -3
  61. package/lib/sets/web.mjs +5 -3
  62. package/package.json +1 -1
  63. package/rules/compliance-cobit2019.json +88 -4
  64. package/rules/compliance-dora.json +95 -4
  65. package/rules/compliance-ffiec.json +91 -0
  66. package/rules/compliance-nist80053.json +91 -0
  67. package/rules/gitleaks-mainframe.toml +46 -15
  68. package/rules/hlasm-instructions.json +2396 -0
  69. package/schema/cobolwork.policy.schema.json +7 -0
@@ -358,6 +358,18 @@
358
358
  "idsOnly": true
359
359
  }
360
360
  },
361
+ {
362
+ "kind": "compliance",
363
+ "ruleId": "cics-new-password",
364
+ "framework": "cobit-2019",
365
+ "clause": "DSS05.04",
366
+ "rationale": "The rule reports: Credential pattern: cics new password. That is access or authentication handled outside the managed identity and logical access this practice requires.",
367
+ "source": {
368
+ "doc": "cobit2019",
369
+ "retrieved": "2026-09-20",
370
+ "idsOnly": true
371
+ }
372
+ },
361
373
  {
362
374
  "kind": "compliance",
363
375
  "ruleId": "cics-protected-field-to-record-key",
@@ -994,6 +1006,18 @@
994
1006
  "idsOnly": true
995
1007
  }
996
1008
  },
1009
+ {
1010
+ "kind": "compliance",
1011
+ "ruleId": "credential-in-source",
1012
+ "framework": "cobit-2019",
1013
+ "clause": "DSS05.04",
1014
+ "rationale": "The rule reports: A credential is written into the source. That is access or authentication handled outside the managed identity and logical access this practice requires.",
1015
+ "source": {
1016
+ "doc": "cobit2019",
1017
+ "retrieved": "2026-09-20",
1018
+ "idsOnly": true
1019
+ }
1020
+ },
997
1021
  {
998
1022
  "kind": "compliance",
999
1023
  "ruleId": "csd-defines-diagnostic-transaction",
@@ -1582,6 +1606,18 @@
1582
1606
  "idsOnly": true
1583
1607
  }
1584
1608
  },
1609
+ {
1610
+ "kind": "compliance",
1611
+ "ruleId": "hlasm-runtime-module-name",
1612
+ "framework": "cobit-2019",
1613
+ "clause": "DSS06.02",
1614
+ "rationale": "The rule reports: Assembler source loads or calls a module whose name it reads from storage at run time. That is information processed without the control that keeps it valid, authorised and accurate, which is what this practice asks of business process controls.",
1615
+ "source": {
1616
+ "doc": "cobit2019",
1617
+ "retrieved": "2026-09-20",
1618
+ "idsOnly": true
1619
+ }
1620
+ },
1585
1621
  {
1586
1622
  "kind": "compliance",
1587
1623
  "ruleId": "icsf-fixed-initialization-vector",
@@ -1630,6 +1666,30 @@
1630
1666
  "idsOnly": true
1631
1667
  }
1632
1668
  },
1669
+ {
1670
+ "kind": "compliance",
1671
+ "ruleId": "input-causes-hang",
1672
+ "framework": "cobit-2019",
1673
+ "clause": "DSS06.02",
1674
+ "rationale": "The rule reports: An input the program accepts keeps a loop running past the statement limit that stands in for its time limit (S322). That is information processed without the control that keeps the processing complete and within its bounds, which is what this practice asks of business process controls.",
1675
+ "source": {
1676
+ "doc": "cobit2019",
1677
+ "retrieved": "2026-09-20",
1678
+ "idsOnly": true
1679
+ }
1680
+ },
1681
+ {
1682
+ "kind": "compliance",
1683
+ "ruleId": "input-selects-program",
1684
+ "framework": "cobit-2019",
1685
+ "clause": "DSS06.02",
1686
+ "rationale": "The rule reports: An input the program accepts chooses the program a CALL loads. That is information processed without the control that keeps it valid and authorised: the input decides what code runs, which this practice asks business process controls to prevent.",
1687
+ "source": {
1688
+ "doc": "cobit2019",
1689
+ "retrieved": "2026-09-20",
1690
+ "idsOnly": true
1691
+ }
1692
+ },
1633
1693
  {
1634
1694
  "kind": "compliance",
1635
1695
  "ruleId": "input-causes-abend-s0c4",
@@ -2088,10 +2148,10 @@
2088
2148
  },
2089
2149
  {
2090
2150
  "kind": "compliance",
2091
- "ruleId": "jcl-racf-password",
2151
+ "ruleId": "jcl-racf-new-password",
2092
2152
  "framework": "cobit-2019",
2093
2153
  "clause": "DSS05.04",
2094
- "rationale": "The rule reports: Credential pattern: jcl racf password. That is access or authentication handled outside the managed identity and logical access this practice requires.",
2154
+ "rationale": "The rule reports: Credential pattern: jcl racf new password. That is access or authentication handled outside the managed identity and logical access this practice requires.",
2095
2155
  "source": {
2096
2156
  "doc": "cobit2019",
2097
2157
  "retrieved": "2026-09-20",
@@ -2100,10 +2160,10 @@
2100
2160
  },
2101
2161
  {
2102
2162
  "kind": "compliance",
2103
- "ruleId": "jcl-racf-new-password",
2163
+ "ruleId": "jcl-racf-password",
2104
2164
  "framework": "cobit-2019",
2105
2165
  "clause": "DSS05.04",
2106
- "rationale": "The rule reports: Credential pattern: jcl racf new password. That is access or authentication handled outside the managed identity and logical access this practice requires.",
2166
+ "rationale": "The rule reports: Credential pattern: jcl racf password. That is access or authentication handled outside the managed identity and logical access this practice requires.",
2107
2167
  "source": {
2108
2168
  "doc": "cobit2019",
2109
2169
  "retrieved": "2026-09-20",
@@ -2278,6 +2338,18 @@
2278
2338
  "idsOnly": true
2279
2339
  }
2280
2340
  },
2341
+ {
2342
+ "kind": "compliance",
2343
+ "ruleId": "racf-command-new-password",
2344
+ "framework": "cobit-2019",
2345
+ "clause": "DSS05.04",
2346
+ "rationale": "The rule reports: Credential pattern: racf command new password. That is access or authentication handled outside the managed identity and logical access this practice requires.",
2347
+ "source": {
2348
+ "doc": "cobit2019",
2349
+ "retrieved": "2026-09-20",
2350
+ "idsOnly": true
2351
+ }
2352
+ },
2281
2353
  {
2282
2354
  "kind": "compliance",
2283
2355
  "ruleId": "racf-command-password",
@@ -2386,6 +2458,18 @@
2386
2458
  "idsOnly": true
2387
2459
  }
2388
2460
  },
2461
+ {
2462
+ "kind": "compliance",
2463
+ "ruleId": "tso-logon-new-password",
2464
+ "framework": "cobit-2019",
2465
+ "clause": "DSS05.04",
2466
+ "rationale": "The rule reports: Credential pattern: tso logon new password. That is access or authentication handled outside the managed identity and logical access this practice requires.",
2467
+ "source": {
2468
+ "doc": "cobit2019",
2469
+ "retrieved": "2026-09-20",
2470
+ "idsOnly": true
2471
+ }
2472
+ },
2389
2473
  {
2390
2474
  "kind": "compliance",
2391
2475
  "ruleId": "tso-logon-password",
@@ -379,6 +379,19 @@
379
379
  "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
380
380
  }
381
381
  },
382
+ {
383
+ "kind": "compliance",
384
+ "ruleId": "cics-new-password",
385
+ "framework": "dora",
386
+ "clause": "Article 9(4)(d)",
387
+ "title": "Protection and prevention",
388
+ "rationale": "The rule reports: Credential pattern: cics new password. That exposes an authentication secret in a file, defeating the authentication mechanisms and key protection this clause requires.",
389
+ "source": {
390
+ "doc": "dora",
391
+ "retrieved": "2026-09-20",
392
+ "quote": "implement policies and protocols for strong authentication mechanisms, based on relevant standards and dedicated control systems, and protection measures of cryptographic keys"
393
+ }
394
+ },
382
395
  {
383
396
  "kind": "compliance",
384
397
  "ruleId": "cics-protected-field-to-record-key",
@@ -1068,6 +1081,19 @@
1068
1081
  "quote": "map the configuration of the information assets and ICT assets and the links and interdependencies between the different information assets and ICT assets"
1069
1082
  }
1070
1083
  },
1084
+ {
1085
+ "kind": "compliance",
1086
+ "ruleId": "credential-in-source",
1087
+ "framework": "dora",
1088
+ "clause": "Article 9(4)(d)",
1089
+ "title": "Protection and prevention",
1090
+ "rationale": "The rule reports: A credential is written into the source. That exposes an authentication secret in a file, defeating the authentication mechanisms and key protection this clause requires.",
1091
+ "source": {
1092
+ "doc": "dora",
1093
+ "retrieved": "2026-09-20",
1094
+ "quote": "implement policies and protocols for strong authentication mechanisms, based on relevant standards and dedicated control systems, and protection measures of cryptographic keys"
1095
+ }
1096
+ },
1071
1097
  {
1072
1098
  "kind": "compliance",
1073
1099
  "ruleId": "csd-defines-diagnostic-transaction",
@@ -1705,6 +1731,19 @@
1705
1731
  "quote": "implement policies that limit the physical or logical access to information assets and ICT assets to what is required for legitimate and approved functions and activities only"
1706
1732
  }
1707
1733
  },
1734
+ {
1735
+ "kind": "compliance",
1736
+ "ruleId": "hlasm-runtime-module-name",
1737
+ "framework": "dora",
1738
+ "clause": "Article 9(3)(b)",
1739
+ "title": "Protection and prevention",
1740
+ "rationale": "The rule reports: Assembler source loads or calls a module whose name it reads from storage at run time. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
1741
+ "source": {
1742
+ "doc": "dora",
1743
+ "retrieved": "2026-09-20",
1744
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1745
+ }
1746
+ },
1708
1747
  {
1709
1748
  "kind": "compliance",
1710
1749
  "ruleId": "icsf-fixed-initialization-vector",
@@ -1757,6 +1796,32 @@
1757
1796
  "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1758
1797
  }
1759
1798
  },
1799
+ {
1800
+ "kind": "compliance",
1801
+ "ruleId": "input-causes-hang",
1802
+ "framework": "dora",
1803
+ "clause": "Article 9(3)(b)",
1804
+ "title": "Protection and prevention",
1805
+ "rationale": "The rule reports: An input the program accepts keeps a loop running past the statement limit that stands in for its time limit (S322). That is a technical flaw that may hinder business activity, which this clause requires be minimised.",
1806
+ "source": {
1807
+ "doc": "dora",
1808
+ "retrieved": "2026-09-20",
1809
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1810
+ }
1811
+ },
1812
+ {
1813
+ "kind": "compliance",
1814
+ "ruleId": "input-selects-program",
1815
+ "framework": "dora",
1816
+ "clause": "Article 9(3)(b)",
1817
+ "title": "Protection and prevention",
1818
+ "rationale": "The rule reports: An input the program accepts chooses the program a CALL loads. That is a technical flaw permitting unauthorised access, which this clause requires be minimised.",
1819
+ "source": {
1820
+ "doc": "dora",
1821
+ "retrieved": "2026-09-20",
1822
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1823
+ }
1824
+ },
1760
1825
  {
1761
1826
  "kind": "compliance",
1762
1827
  "ruleId": "input-causes-abend-s0c4",
@@ -2253,11 +2318,11 @@
2253
2318
  },
2254
2319
  {
2255
2320
  "kind": "compliance",
2256
- "ruleId": "jcl-racf-password",
2321
+ "ruleId": "jcl-racf-new-password",
2257
2322
  "framework": "dora",
2258
2323
  "clause": "Article 9(4)(d)",
2259
2324
  "title": "Protection and prevention",
2260
- "rationale": "The rule reports: Credential pattern: jcl racf password. That exposes an authentication secret in a file, defeating the authentication mechanisms and key protection this clause requires.",
2325
+ "rationale": "The rule reports: Credential pattern: jcl racf new password. That exposes an authentication secret in a file, defeating the authentication mechanisms and key protection this clause requires.",
2261
2326
  "source": {
2262
2327
  "doc": "dora",
2263
2328
  "retrieved": "2026-09-20",
@@ -2266,11 +2331,11 @@
2266
2331
  },
2267
2332
  {
2268
2333
  "kind": "compliance",
2269
- "ruleId": "jcl-racf-new-password",
2334
+ "ruleId": "jcl-racf-password",
2270
2335
  "framework": "dora",
2271
2336
  "clause": "Article 9(4)(d)",
2272
2337
  "title": "Protection and prevention",
2273
- "rationale": "The rule reports: Credential pattern: jcl racf new password. That exposes an authentication secret in a file, defeating the authentication mechanisms and key protection this clause requires.",
2338
+ "rationale": "The rule reports: Credential pattern: jcl racf password. That exposes an authentication secret in a file, defeating the authentication mechanisms and key protection this clause requires.",
2274
2339
  "source": {
2275
2340
  "doc": "dora",
2276
2341
  "retrieved": "2026-09-20",
@@ -2459,6 +2524,19 @@
2459
2524
  "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
2460
2525
  }
2461
2526
  },
2527
+ {
2528
+ "kind": "compliance",
2529
+ "ruleId": "racf-command-new-password",
2530
+ "framework": "dora",
2531
+ "clause": "Article 9(4)(d)",
2532
+ "title": "Protection and prevention",
2533
+ "rationale": "The rule reports: Credential pattern: racf command new password. That exposes an authentication secret in a file, defeating the authentication mechanisms and key protection this clause requires.",
2534
+ "source": {
2535
+ "doc": "dora",
2536
+ "retrieved": "2026-09-20",
2537
+ "quote": "implement policies and protocols for strong authentication mechanisms, based on relevant standards and dedicated control systems, and protection measures of cryptographic keys"
2538
+ }
2539
+ },
2462
2540
  {
2463
2541
  "kind": "compliance",
2464
2542
  "ruleId": "racf-command-password",
@@ -2602,6 +2680,19 @@
2602
2680
  "quote": "maintain relevant inventories and update them periodically and every time any major change as referred to in paragraph 3 occurs"
2603
2681
  }
2604
2682
  },
2683
+ {
2684
+ "kind": "compliance",
2685
+ "ruleId": "tso-logon-new-password",
2686
+ "framework": "dora",
2687
+ "clause": "Article 9(4)(d)",
2688
+ "title": "Protection and prevention",
2689
+ "rationale": "The rule reports: Credential pattern: tso logon new password. That exposes an authentication secret in a file, defeating the authentication mechanisms and key protection this clause requires.",
2690
+ "source": {
2691
+ "doc": "dora",
2692
+ "retrieved": "2026-09-20",
2693
+ "quote": "implement policies and protocols for strong authentication mechanisms, based on relevant standards and dedicated control systems, and protection measures of cryptographic keys"
2694
+ }
2695
+ },
2605
2696
  {
2606
2697
  "kind": "compliance",
2607
2698
  "ruleId": "tso-logon-password",
@@ -388,6 +388,19 @@
388
388
  "quote": "Secure coding practices help developers minimize the potential for known source code-related vulnerabilities in the development phase."
389
389
  }
390
390
  },
391
+ {
392
+ "kind": "compliance",
393
+ "ruleId": "cics-new-password",
394
+ "framework": "ffiec",
395
+ "clause": "IS II.C.19",
396
+ "title": "Encryption",
397
+ "rationale": "The rule reports: Credential pattern: cics new password. That is an authentication credential or sensitive data left unprotected, which this control requires be encrypted in storage and in transit.",
398
+ "source": {
399
+ "doc": "ffiec",
400
+ "retrieved": "2026-09-20",
401
+ "quote": "Encryption is used to secure communications and data storage, particularly authentication credentials and the transmission of sensitive information."
402
+ }
403
+ },
391
404
  {
392
405
  "kind": "compliance",
393
406
  "ruleId": "cics-protected-field-to-record-key",
@@ -1077,6 +1090,19 @@
1077
1090
  "quote": "Inventory of all systems and components (e.g., open-source, proprietary, application programming interfaces [API], and container images and registries), including related licenses, and data as part of IT asset management (ITAM)."
1078
1091
  }
1079
1092
  },
1093
+ {
1094
+ "kind": "compliance",
1095
+ "ruleId": "credential-in-source",
1096
+ "framework": "ffiec",
1097
+ "clause": "IS II.C.19",
1098
+ "title": "Encryption",
1099
+ "rationale": "The rule reports: A credential is written into the source. That is an authentication credential or sensitive data left unprotected, which this control requires be encrypted in storage and in transit.",
1100
+ "source": {
1101
+ "doc": "ffiec",
1102
+ "retrieved": "2026-09-20",
1103
+ "quote": "Encryption is used to secure communications and data storage, particularly authentication credentials and the transmission of sensitive information."
1104
+ }
1105
+ },
1080
1106
  {
1081
1107
  "kind": "compliance",
1082
1108
  "ruleId": "csd-defines-diagnostic-transaction",
@@ -1714,6 +1740,19 @@
1714
1740
  "quote": "Principle of least privilege, which recommends minimum user profile privileges for both physical and logical access based on job necessity."
1715
1741
  }
1716
1742
  },
1743
+ {
1744
+ "kind": "compliance",
1745
+ "ruleId": "hlasm-runtime-module-name",
1746
+ "framework": "ffiec",
1747
+ "clause": "DA&M V",
1748
+ "title": "Development",
1749
+ "rationale": "The rule reports: Assembler source loads or calls a module whose name it reads from storage at run time. That is a source code-related vulnerability of the kind secure coding practices exist to minimise.",
1750
+ "source": {
1751
+ "doc": "ffiec",
1752
+ "retrieved": "2026-09-20",
1753
+ "quote": "Secure coding practices help developers minimize the potential for known source code-related vulnerabilities in the development phase."
1754
+ }
1755
+ },
1717
1756
  {
1718
1757
  "kind": "compliance",
1719
1758
  "ruleId": "icsf-fixed-initialization-vector",
@@ -1766,6 +1805,32 @@
1766
1805
  "quote": "Secure coding practices help developers minimize the potential for known source code-related vulnerabilities in the development phase."
1767
1806
  }
1768
1807
  },
1808
+ {
1809
+ "kind": "compliance",
1810
+ "ruleId": "input-causes-hang",
1811
+ "framework": "ffiec",
1812
+ "clause": "DA&M V",
1813
+ "title": "Development",
1814
+ "rationale": "The rule reports: An input the program accepts keeps a loop running past the statement limit that stands in for its time limit (S322). That is a source code-related vulnerability of the kind secure coding practices exist to minimise.",
1815
+ "source": {
1816
+ "doc": "ffiec",
1817
+ "retrieved": "2026-09-20",
1818
+ "quote": "Secure coding practices help developers minimize the potential for known source code-related vulnerabilities in the development phase."
1819
+ }
1820
+ },
1821
+ {
1822
+ "kind": "compliance",
1823
+ "ruleId": "input-selects-program",
1824
+ "framework": "ffiec",
1825
+ "clause": "DA&M V",
1826
+ "title": "Development",
1827
+ "rationale": "The rule reports: An input the program accepts chooses the program a CALL loads. That is a source code-related vulnerability of the kind secure coding practices exist to minimise.",
1828
+ "source": {
1829
+ "doc": "ffiec",
1830
+ "retrieved": "2026-09-20",
1831
+ "quote": "Secure coding practices help developers minimize the potential for known source code-related vulnerabilities in the development phase."
1832
+ }
1833
+ },
1769
1834
  {
1770
1835
  "kind": "compliance",
1771
1836
  "ruleId": "input-causes-abend-s0c4",
@@ -2468,6 +2533,19 @@
2468
2533
  "quote": "Secure coding practices help developers minimize the potential for known source code-related vulnerabilities in the development phase."
2469
2534
  }
2470
2535
  },
2536
+ {
2537
+ "kind": "compliance",
2538
+ "ruleId": "racf-command-new-password",
2539
+ "framework": "ffiec",
2540
+ "clause": "IS II.C.19",
2541
+ "title": "Encryption",
2542
+ "rationale": "The rule reports: Credential pattern: racf command new password. That is an authentication credential or sensitive data left unprotected, which this control requires be encrypted in storage and in transit.",
2543
+ "source": {
2544
+ "doc": "ffiec",
2545
+ "retrieved": "2026-09-20",
2546
+ "quote": "Encryption is used to secure communications and data storage, particularly authentication credentials and the transmission of sensitive information."
2547
+ }
2548
+ },
2471
2549
  {
2472
2550
  "kind": "compliance",
2473
2551
  "ruleId": "racf-command-password",
@@ -2585,6 +2663,19 @@
2585
2663
  "quote": "Inventory of all systems and components (e.g., open-source, proprietary, application programming interfaces [API], and container images and registries), including related licenses, and data as part of IT asset management (ITAM)."
2586
2664
  }
2587
2665
  },
2666
+ {
2667
+ "kind": "compliance",
2668
+ "ruleId": "tso-logon-new-password",
2669
+ "framework": "ffiec",
2670
+ "clause": "IS II.C.19",
2671
+ "title": "Encryption",
2672
+ "rationale": "The rule reports: Credential pattern: tso logon new password. That is an authentication credential or sensitive data left unprotected, which this control requires be encrypted in storage and in transit.",
2673
+ "source": {
2674
+ "doc": "ffiec",
2675
+ "retrieved": "2026-09-20",
2676
+ "quote": "Encryption is used to secure communications and data storage, particularly authentication credentials and the transmission of sensitive information."
2677
+ }
2678
+ },
2588
2679
  {
2589
2680
  "kind": "compliance",
2590
2681
  "ruleId": "tso-logon-password",
@@ -388,6 +388,19 @@
388
388
  "quote": "Protect the {{ insert: param, sc-08_odp }} of transmitted information."
389
389
  }
390
390
  },
391
+ {
392
+ "kind": "compliance",
393
+ "ruleId": "cics-new-password",
394
+ "framework": "nist-800-53r5",
395
+ "clause": "IA-5",
396
+ "title": "Authenticator Management",
397
+ "rationale": "The rule reports: Credential pattern: cics new password. That is authenticator content established in a file rather than managed, which is what this control governs.",
398
+ "source": {
399
+ "doc": "nist80053",
400
+ "retrieved": "2026-09-20",
401
+ "quote": "Establishing initial authenticator content for any authenticators issued by the organization"
402
+ }
403
+ },
391
404
  {
392
405
  "kind": "compliance",
393
406
  "ruleId": "cics-protected-field-to-record-key",
@@ -1077,6 +1090,19 @@
1077
1090
  "quote": "Develop and document an inventory of system components"
1078
1091
  }
1079
1092
  },
1093
+ {
1094
+ "kind": "compliance",
1095
+ "ruleId": "credential-in-source",
1096
+ "framework": "nist-800-53r5",
1097
+ "clause": "IA-5",
1098
+ "title": "Authenticator Management",
1099
+ "rationale": "The rule reports: A credential is written into the source. That is authenticator content established in a file rather than managed, which is what this control governs.",
1100
+ "source": {
1101
+ "doc": "nist80053",
1102
+ "retrieved": "2026-09-20",
1103
+ "quote": "Establishing initial authenticator content for any authenticators issued by the organization"
1104
+ }
1105
+ },
1080
1106
  {
1081
1107
  "kind": "compliance",
1082
1108
  "ruleId": "csd-defines-diagnostic-transaction",
@@ -1714,6 +1740,19 @@
1714
1740
  "quote": "Employ the principle of least privilege, allowing only authorized accesses for users (or processes acting on behalf of users) that are necessary to accomplish assigned organizational tasks."
1715
1741
  }
1716
1742
  },
1743
+ {
1744
+ "kind": "compliance",
1745
+ "ruleId": "hlasm-runtime-module-name",
1746
+ "framework": "nist-800-53r5",
1747
+ "clause": "SI-10",
1748
+ "title": "Information Input Validation",
1749
+ "rationale": "The rule reports: Assembler source loads or calls a module whose name it reads from storage at run time. That is an information input reaching an operation without its validity having been checked, which is what this control requires.",
1750
+ "source": {
1751
+ "doc": "nist80053",
1752
+ "retrieved": "2026-09-20",
1753
+ "quote": "Check the validity of the following information inputs"
1754
+ }
1755
+ },
1717
1756
  {
1718
1757
  "kind": "compliance",
1719
1758
  "ruleId": "icsf-fixed-initialization-vector",
@@ -1766,6 +1805,32 @@
1766
1805
  "quote": "Check the validity of the following information inputs"
1767
1806
  }
1768
1807
  },
1808
+ {
1809
+ "kind": "compliance",
1810
+ "ruleId": "input-causes-hang",
1811
+ "framework": "nist-800-53r5",
1812
+ "clause": "SI-10",
1813
+ "title": "Information Input Validation",
1814
+ "rationale": "The rule reports: An input the program accepts keeps a loop running past the statement limit that stands in for its time limit (S322). That is an information input reaching an operation without its validity having been checked, which is what this control requires.",
1815
+ "source": {
1816
+ "doc": "nist80053",
1817
+ "retrieved": "2026-09-20",
1818
+ "quote": "Check the validity of the following information inputs"
1819
+ }
1820
+ },
1821
+ {
1822
+ "kind": "compliance",
1823
+ "ruleId": "input-selects-program",
1824
+ "framework": "nist-800-53r5",
1825
+ "clause": "SI-10",
1826
+ "title": "Information Input Validation",
1827
+ "rationale": "The rule reports: An input the program accepts chooses the program a CALL loads. That is an information input reaching an operation without its validity having been checked, which is what this control requires.",
1828
+ "source": {
1829
+ "doc": "nist80053",
1830
+ "retrieved": "2026-09-20",
1831
+ "quote": "Check the validity of the following information inputs"
1832
+ }
1833
+ },
1769
1834
  {
1770
1835
  "kind": "compliance",
1771
1836
  "ruleId": "input-causes-abend-s0c4",
@@ -2468,6 +2533,19 @@
2468
2533
  "quote": "Check the validity of the following information inputs"
2469
2534
  }
2470
2535
  },
2536
+ {
2537
+ "kind": "compliance",
2538
+ "ruleId": "racf-command-new-password",
2539
+ "framework": "nist-800-53r5",
2540
+ "clause": "IA-5",
2541
+ "title": "Authenticator Management",
2542
+ "rationale": "The rule reports: Credential pattern: racf command new password. That is authenticator content established in a file rather than managed, which is what this control governs.",
2543
+ "source": {
2544
+ "doc": "nist80053",
2545
+ "retrieved": "2026-09-20",
2546
+ "quote": "Establishing initial authenticator content for any authenticators issued by the organization"
2547
+ }
2548
+ },
2471
2549
  {
2472
2550
  "kind": "compliance",
2473
2551
  "ruleId": "racf-command-password",
@@ -2585,6 +2663,19 @@
2585
2663
  "quote": "Develop and document an inventory of system components"
2586
2664
  }
2587
2665
  },
2666
+ {
2667
+ "kind": "compliance",
2668
+ "ruleId": "tso-logon-new-password",
2669
+ "framework": "nist-800-53r5",
2670
+ "clause": "IA-5",
2671
+ "title": "Authenticator Management",
2672
+ "rationale": "The rule reports: Credential pattern: tso logon new password. That is authenticator content established in a file rather than managed, which is what this control governs.",
2673
+ "source": {
2674
+ "doc": "nist80053",
2675
+ "retrieved": "2026-09-20",
2676
+ "quote": "Establishing initial authenticator content for any authenticators issued by the organization"
2677
+ }
2678
+ },
2588
2679
  {
2589
2680
  "kind": "compliance",
2590
2681
  "ruleId": "tso-logon-password",