@portll/cobolwork 0.5.0 → 0.7.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 (163) hide show
  1. package/README.md +89 -26
  2. package/STABILITY.md +76 -0
  3. package/bin/cobolwork.mjs +56 -14
  4. package/lib/baseline.mjs +9 -0
  5. package/lib/bms.mjs +21 -7
  6. package/lib/build.mjs +133 -53
  7. package/lib/capabilities.mjs +13 -11
  8. package/lib/cics-commands.mjs +501 -9
  9. package/lib/compliance.mjs +11 -0
  10. package/lib/consequence.mjs +17 -0
  11. package/lib/control-reuse.mjs +113 -0
  12. package/lib/control-workers.mjs +161 -0
  13. package/lib/control.mjs +77 -4
  14. package/lib/dataflow.mjs +402 -152
  15. package/lib/db2/cursor.mjs +15 -0
  16. package/lib/db2/read.mjs +170 -0
  17. package/lib/db2/rules.mjs +77 -0
  18. package/lib/db2/stmt/alter.mjs +473 -0
  19. package/lib/db2/stmt/grant.mjs +125 -0
  20. package/lib/db2/stmt/index.mjs +141 -0
  21. package/lib/db2/stmt/misc.mjs +325 -0
  22. package/lib/db2/stmt/routine.mjs +564 -0
  23. package/lib/db2/stmt/storage.mjs +146 -0
  24. package/lib/db2/stmt/table.mjs +540 -0
  25. package/lib/db2/stmt/view.mjs +146 -0
  26. package/lib/diff.mjs +17 -5
  27. package/lib/equivalence.mjs +44 -5
  28. package/lib/evidence/cli.mjs +26 -7
  29. package/lib/evidence/record.mjs +16 -6
  30. package/lib/evidence/seal.mjs +17 -0
  31. package/lib/evidence/store.mjs +44 -15
  32. package/lib/evidence/timestamp.mjs +83 -0
  33. package/lib/evidence/verify.mjs +120 -42
  34. package/lib/exec-reading.mjs +51 -0
  35. package/lib/execution.mjs +3 -2
  36. package/lib/explain.mjs +2 -0
  37. package/lib/exploitability.mjs +11 -2
  38. package/lib/hlasm/asm/data.mjs +128 -0
  39. package/lib/hlasm/asm/listing.mjs +43 -0
  40. package/lib/hlasm/asm/output.mjs +45 -0
  41. package/lib/hlasm/asm/sections.mjs +161 -0
  42. package/lib/hlasm/asm/symbols.mjs +78 -0
  43. package/lib/hlasm/exec.mjs +27 -0
  44. package/lib/hlasm/expr.mjs +167 -0
  45. package/lib/hlasm/instr.mjs +73 -0
  46. package/lib/hlasm/locate.mjs +333 -0
  47. package/lib/hlasm/macro/authorization.mjs +146 -0
  48. package/lib/hlasm/macro/datasets.mjs +107 -0
  49. package/lib/hlasm/macro/io.mjs +162 -0
  50. package/lib/hlasm/macro/le.mjs +53 -0
  51. package/lib/hlasm/macro/linkage.mjs +143 -0
  52. package/lib/hlasm/macro/operator.mjs +77 -0
  53. package/lib/hlasm/macro/program.mjs +184 -0
  54. package/lib/hlasm/macro/recovery.mjs +85 -0
  55. package/lib/hlasm/macro/storage.mjs +167 -0
  56. package/lib/hlasm/macro/structured.mjs +131 -0
  57. package/lib/hlasm/model.mjs +97 -0
  58. package/lib/hlasm/mvs38.mjs +47 -0
  59. package/lib/hlasm/operands.mjs +59 -0
  60. package/lib/hlasm/optable.mjs +61 -0
  61. package/lib/hlasm/read.mjs +130 -0
  62. package/lib/hlasm.mjs +44 -7
  63. package/lib/ims/dli.mjs +37 -0
  64. package/lib/ims/macro/dbd.mjs +299 -0
  65. package/lib/ims/macro/psb.mjs +286 -0
  66. package/lib/ims/model.mjs +149 -0
  67. package/lib/ims/operands.mjs +23 -0
  68. package/lib/ims/read.mjs +37 -0
  69. package/lib/ims/rules.mjs +135 -0
  70. package/lib/inventory.mjs +10 -7
  71. package/lib/ironwork-ids.mjs +24 -0
  72. package/lib/ironwork.mjs +20 -13
  73. package/lib/kernel/pds-archive.mjs +256 -0
  74. package/lib/kernel/registry.mjs +32 -23
  75. package/lib/kernel/shared-pass.mjs +163 -0
  76. package/lib/kernel/source-tree.mjs +104 -36
  77. package/lib/kernel/version-key.mjs +17 -0
  78. package/lib/layout.mjs +26 -31
  79. package/lib/options.mjs +26 -4
  80. package/lib/parser.mjs +136 -17
  81. package/lib/pli/cursor.mjs +15 -0
  82. package/lib/pli/expr.mjs +101 -0
  83. package/lib/pli/include.mjs +82 -0
  84. package/lib/pli/layout.mjs +125 -0
  85. package/lib/pli/lex.mjs +198 -0
  86. package/lib/pli/program.mjs +280 -0
  87. package/lib/pli/rules/based.mjs +95 -0
  88. package/lib/pli/rules/conditions.mjs +68 -0
  89. package/lib/pli/rules/entry.mjs +130 -0
  90. package/lib/pli/rules/index.mjs +24 -0
  91. package/lib/pli/rules/preprocessor.mjs +55 -0
  92. package/lib/pli/statements.mjs +130 -0
  93. package/lib/pli/stmt/alloc.mjs +45 -0
  94. package/lib/pli/stmt/assignment.mjs +56 -0
  95. package/lib/pli/stmt/call.mjs +104 -0
  96. package/lib/pli/stmt/conditions.mjs +94 -0
  97. package/lib/pli/stmt/control.mjs +219 -0
  98. package/lib/pli/stmt/declare.mjs +149 -0
  99. package/lib/pli/stmt/exec.mjs +55 -0
  100. package/lib/pli/stmt/io.mjs +239 -0
  101. package/lib/pli/stmt/misc.mjs +4 -0
  102. package/lib/pli/stmt/preprocessor.mjs +242 -0
  103. package/lib/pli/stmt/procedure.mjs +258 -0
  104. package/lib/pli/stmt/stream.mjs +283 -0
  105. package/lib/pli/storage.mjs +129 -0
  106. package/lib/policy.mjs +6 -0
  107. package/lib/precompile-check.mjs +124 -0
  108. package/lib/precompile-cics.mjs +8 -4
  109. package/lib/reach.mjs +11 -2
  110. package/lib/revision.json +1 -1
  111. package/lib/sarif.mjs +44 -3
  112. package/lib/scan.mjs +28 -12
  113. package/lib/sets/abend.mjs +82 -8
  114. package/lib/sets/build.mjs +43 -37
  115. package/lib/sets/cics.mjs +20 -38
  116. package/lib/sets/compile.mjs +46 -18
  117. package/lib/sets/copybook.mjs +5 -3
  118. package/lib/sets/crypto.mjs +5 -3
  119. package/lib/sets/ddl.mjs +36 -0
  120. package/lib/sets/flow.mjs +32 -8
  121. package/lib/sets/hidden.mjs +5 -3
  122. package/lib/sets/hlasm.mjs +124 -8
  123. package/lib/sets/ims.mjs +139 -0
  124. package/lib/sets/log.mjs +11 -9
  125. package/lib/sets/opaque.mjs +27 -7
  126. package/lib/sets/pli.mjs +40 -0
  127. package/lib/sets/priv.mjs +5 -3
  128. package/lib/sets/recon.mjs +5 -3
  129. package/lib/sets/secrets.mjs +112 -0
  130. package/lib/sets/semantics.mjs +8 -3
  131. package/lib/sets/web.mjs +39 -23
  132. package/lib/site.mjs +10 -0
  133. package/lib/sources.mjs +80 -20
  134. package/lib/statement-cursor.mjs +67 -0
  135. package/lib/verify.mjs +3 -2
  136. package/lib/version.mjs +6 -0
  137. package/package.json +3 -2
  138. package/rules/compliance-cobit2019.json +520 -5
  139. package/rules/compliance-dora.json +509 -5
  140. package/rules/compliance-ffiec.json +505 -1
  141. package/rules/compliance-nist80053.json +557 -1
  142. package/rules/gitleaks-mainframe.toml +46 -15
  143. package/rules/hlasm-instructions.json +2396 -0
  144. package/rules/hlasm-optables.json +8024 -0
  145. package/schema/cobolwork-baseline.schema.json +36 -0
  146. package/schema/cobolwork-build-provenance.schema.json +187 -0
  147. package/schema/cobolwork-build.schema.json +382 -0
  148. package/schema/cobolwork-capabilities.schema.json +239 -0
  149. package/schema/cobolwork-diff.schema.json +217 -0
  150. package/schema/cobolwork-evidence.schema.json +161 -0
  151. package/schema/cobolwork-execution.schema.json +53 -0
  152. package/schema/cobolwork-explain.schema.json +360 -0
  153. package/schema/cobolwork-finding.schema.json +465 -0
  154. package/schema/cobolwork-flow.schema.json +465 -0
  155. package/schema/cobolwork-gate.schema.json +211 -0
  156. package/schema/cobolwork-inventory.schema.json +206 -0
  157. package/schema/cobolwork-parse.schema.json +105 -0
  158. package/schema/cobolwork-reach.schema.json +74 -0
  159. package/schema/cobolwork-report.schema.json +559 -0
  160. package/schema/cobolwork-witness.schema.json +107 -0
  161. package/schema/cobolwork.baseline.schema.json +101 -0
  162. package/schema/cobolwork.policy.schema.json +7 -0
  163. package/schema/cobolwork.site.schema.json +116 -0
@@ -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",
@@ -1428,6 +1454,19 @@
1428
1454
  "quote": "Secure coding practices help developers minimize the potential for known source code-related vulnerabilities in the development phase."
1429
1455
  }
1430
1456
  },
1457
+ {
1458
+ "kind": "compliance",
1459
+ "ruleId": "cics-queue-to-cics-dynamic-transfer",
1460
+ "framework": "ffiec",
1461
+ "clause": "DA&M V",
1462
+ "title": "Development",
1463
+ "rationale": "The rule reports: A CICS queue item decides which program CICS transfers to. That is a source code-related vulnerability of the kind secure coding practices exist to minimise.",
1464
+ "source": {
1465
+ "doc": "ffiec",
1466
+ "retrieved": "2026-09-20",
1467
+ "quote": "Secure coding practices help developers minimize the potential for known source code-related vulnerabilities in the development phase."
1468
+ }
1469
+ },
1431
1470
  {
1432
1471
  "kind": "compliance",
1433
1472
  "ruleId": "file-record-to-cics-sysid",
@@ -1441,6 +1480,19 @@
1441
1480
  "quote": "Secure coding practices help developers minimize the potential for known source code-related vulnerabilities in the development phase."
1442
1481
  }
1443
1482
  },
1483
+ {
1484
+ "kind": "compliance",
1485
+ "ruleId": "cics-queue-to-cics-sysid",
1486
+ "framework": "ffiec",
1487
+ "clause": "DA&M V",
1488
+ "title": "Development",
1489
+ "rationale": "The rule reports: A CICS queue item decides which region a CICS command is shipped to. That is a source code-related vulnerability of the kind secure coding practices exist to minimise.",
1490
+ "source": {
1491
+ "doc": "ffiec",
1492
+ "retrieved": "2026-09-20",
1493
+ "quote": "Secure coding practices help developers minimize the potential for known source code-related vulnerabilities in the development phase."
1494
+ }
1495
+ },
1444
1496
  {
1445
1497
  "kind": "compliance",
1446
1498
  "ruleId": "file-record-to-cics-system-resource",
@@ -1454,6 +1506,19 @@
1454
1506
  "quote": "Secure coding practices help developers minimize the potential for known source code-related vulnerabilities in the development phase."
1455
1507
  }
1456
1508
  },
1509
+ {
1510
+ "kind": "compliance",
1511
+ "ruleId": "cics-queue-to-cics-system-resource",
1512
+ "framework": "ffiec",
1513
+ "clause": "DA&M V",
1514
+ "title": "Development",
1515
+ "rationale": "The rule reports: A CICS queue item names the resource an EXEC CICS SET changes. That is a source code-related vulnerability of the kind secure coding practices exist to minimise.",
1516
+ "source": {
1517
+ "doc": "ffiec",
1518
+ "retrieved": "2026-09-20",
1519
+ "quote": "Secure coding practices help developers minimize the potential for known source code-related vulnerabilities in the development phase."
1520
+ }
1521
+ },
1457
1522
  {
1458
1523
  "kind": "compliance",
1459
1524
  "ruleId": "file-record-to-dynamic-file-path",
@@ -1467,6 +1532,19 @@
1467
1532
  "quote": "Secure coding practices help developers minimize the potential for known source code-related vulnerabilities in the development phase."
1468
1533
  }
1469
1534
  },
1535
+ {
1536
+ "kind": "compliance",
1537
+ "ruleId": "cics-queue-to-dynamic-file-path",
1538
+ "framework": "ffiec",
1539
+ "clause": "DA&M V",
1540
+ "title": "Development",
1541
+ "rationale": "The rule reports: A CICS queue item decides which file is opened. That is a source code-related vulnerability of the kind secure coding practices exist to minimise.",
1542
+ "source": {
1543
+ "doc": "ffiec",
1544
+ "retrieved": "2026-09-20",
1545
+ "quote": "Secure coding practices help developers minimize the potential for known source code-related vulnerabilities in the development phase."
1546
+ }
1547
+ },
1470
1548
  {
1471
1549
  "kind": "compliance",
1472
1550
  "ruleId": "file-record-to-dynamic-program-load",
@@ -1480,6 +1558,19 @@
1480
1558
  "quote": "Secure coding practices help developers minimize the potential for known source code-related vulnerabilities in the development phase."
1481
1559
  }
1482
1560
  },
1561
+ {
1562
+ "kind": "compliance",
1563
+ "ruleId": "cics-queue-to-dynamic-program-load",
1564
+ "framework": "ffiec",
1565
+ "clause": "DA&M V",
1566
+ "title": "Development",
1567
+ "rationale": "The rule reports: A CICS queue item decides which program is called. That is a source code-related vulnerability of the kind secure coding practices exist to minimise.",
1568
+ "source": {
1569
+ "doc": "ffiec",
1570
+ "retrieved": "2026-09-20",
1571
+ "quote": "Secure coding practices help developers minimize the potential for known source code-related vulnerabilities in the development phase."
1572
+ }
1573
+ },
1483
1574
  {
1484
1575
  "kind": "compliance",
1485
1576
  "ruleId": "file-record-to-dynamic-sql",
@@ -1493,6 +1584,19 @@
1493
1584
  "quote": "Secure coding practices help developers minimize the potential for known source code-related vulnerabilities in the development phase."
1494
1585
  }
1495
1586
  },
1587
+ {
1588
+ "kind": "compliance",
1589
+ "ruleId": "cics-queue-to-dynamic-sql",
1590
+ "framework": "ffiec",
1591
+ "clause": "DA&M V",
1592
+ "title": "Development",
1593
+ "rationale": "The rule reports: A CICS queue item reaches dynamic SQL. That is a source code-related vulnerability of the kind secure coding practices exist to minimise.",
1594
+ "source": {
1595
+ "doc": "ffiec",
1596
+ "retrieved": "2026-09-20",
1597
+ "quote": "Secure coding practices help developers minimize the potential for known source code-related vulnerabilities in the development phase."
1598
+ }
1599
+ },
1496
1600
  {
1497
1601
  "kind": "compliance",
1498
1602
  "ruleId": "file-record-to-extrapartition-queue",
@@ -1506,6 +1610,19 @@
1506
1610
  "quote": "Encryption is used to secure communications and data storage, particularly authentication credentials and the transmission of sensitive information."
1507
1611
  }
1508
1612
  },
1613
+ {
1614
+ "kind": "compliance",
1615
+ "ruleId": "cics-queue-to-extrapartition-queue",
1616
+ "framework": "ffiec",
1617
+ "clause": "IS II.C.19",
1618
+ "title": "Encryption",
1619
+ "rationale": "The rule reports: A CICS queue item is written to a transient-data queue that leaves the region. That is an authentication credential or sensitive data left unprotected, which this control requires be encrypted in storage and in transit.",
1620
+ "source": {
1621
+ "doc": "ffiec",
1622
+ "retrieved": "2026-09-20",
1623
+ "quote": "Encryption is used to secure communications and data storage, particularly authentication credentials and the transmission of sensitive information."
1624
+ }
1625
+ },
1509
1626
  {
1510
1627
  "kind": "compliance",
1511
1628
  "ruleId": "file-record-to-http-header",
@@ -1519,6 +1636,19 @@
1519
1636
  "quote": "Secure coding practices help developers minimize the potential for known source code-related vulnerabilities in the development phase."
1520
1637
  }
1521
1638
  },
1639
+ {
1640
+ "kind": "compliance",
1641
+ "ruleId": "cics-queue-to-http-header",
1642
+ "framework": "ffiec",
1643
+ "clause": "DA&M V",
1644
+ "title": "Development",
1645
+ "rationale": "The rule reports: A CICS queue item is written into a header of the response. That is a source code-related vulnerability of the kind secure coding practices exist to minimise.",
1646
+ "source": {
1647
+ "doc": "ffiec",
1648
+ "retrieved": "2026-09-20",
1649
+ "quote": "Secure coding practices help developers minimize the potential for known source code-related vulnerabilities in the development phase."
1650
+ }
1651
+ },
1522
1652
  {
1523
1653
  "kind": "compliance",
1524
1654
  "ruleId": "file-record-to-internal-reader",
@@ -1532,6 +1662,19 @@
1532
1662
  "quote": "Secure coding practices help developers minimize the potential for known source code-related vulnerabilities in the development phase."
1533
1663
  }
1534
1664
  },
1665
+ {
1666
+ "kind": "compliance",
1667
+ "ruleId": "cics-queue-to-internal-reader",
1668
+ "framework": "ffiec",
1669
+ "clause": "DA&M V",
1670
+ "title": "Development",
1671
+ "rationale": "The rule reports: A CICS queue item is written into a job the internal reader submits. That is a source code-related vulnerability of the kind secure coding practices exist to minimise.",
1672
+ "source": {
1673
+ "doc": "ffiec",
1674
+ "retrieved": "2026-09-20",
1675
+ "quote": "Secure coding practices help developers minimize the potential for known source code-related vulnerabilities in the development phase."
1676
+ }
1677
+ },
1535
1678
  {
1536
1679
  "kind": "compliance",
1537
1680
  "ruleId": "file-record-to-message-queue",
@@ -1545,6 +1688,19 @@
1545
1688
  "quote": "Encryption is used to secure communications and data storage, particularly authentication credentials and the transmission of sensitive information."
1546
1689
  }
1547
1690
  },
1691
+ {
1692
+ "kind": "compliance",
1693
+ "ruleId": "cics-queue-to-message-queue",
1694
+ "framework": "ffiec",
1695
+ "clause": "IS II.C.19",
1696
+ "title": "Encryption",
1697
+ "rationale": "The rule reports: A CICS queue item is put on a message queue. That is an authentication credential or sensitive data left unprotected, which this control requires be encrypted in storage and in transit.",
1698
+ "source": {
1699
+ "doc": "ffiec",
1700
+ "retrieved": "2026-09-20",
1701
+ "quote": "Encryption is used to secure communications and data storage, particularly authentication credentials and the transmission of sensitive information."
1702
+ }
1703
+ },
1548
1704
  {
1549
1705
  "kind": "compliance",
1550
1706
  "ruleId": "file-record-to-os-command",
@@ -1558,6 +1714,19 @@
1558
1714
  "quote": "Secure coding practices help developers minimize the potential for known source code-related vulnerabilities in the development phase."
1559
1715
  }
1560
1716
  },
1717
+ {
1718
+ "kind": "compliance",
1719
+ "ruleId": "cics-queue-to-os-command",
1720
+ "framework": "ffiec",
1721
+ "clause": "DA&M V",
1722
+ "title": "Development",
1723
+ "rationale": "The rule reports: A CICS queue item reaches an operating-system command routine. That is a source code-related vulnerability of the kind secure coding practices exist to minimise.",
1724
+ "source": {
1725
+ "doc": "ffiec",
1726
+ "retrieved": "2026-09-20",
1727
+ "quote": "Secure coding practices help developers minimize the potential for known source code-related vulnerabilities in the development phase."
1728
+ }
1729
+ },
1561
1730
  {
1562
1731
  "kind": "compliance",
1563
1732
  "ruleId": "file-record-to-outbound-host",
@@ -1571,6 +1740,19 @@
1571
1740
  "quote": "Secure coding practices help developers minimize the potential for known source code-related vulnerabilities in the development phase."
1572
1741
  }
1573
1742
  },
1743
+ {
1744
+ "kind": "compliance",
1745
+ "ruleId": "cics-queue-to-outbound-host",
1746
+ "framework": "ffiec",
1747
+ "clause": "DA&M V",
1748
+ "title": "Development",
1749
+ "rationale": "The rule reports: A CICS queue item decides the host or path this program sends a request to. 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
+ },
1574
1756
  {
1575
1757
  "kind": "compliance",
1576
1758
  "ruleId": "file-record-to-outbound-http",
@@ -1584,6 +1766,19 @@
1584
1766
  "quote": "Encryption is used to secure communications and data storage, particularly authentication credentials and the transmission of sensitive information."
1585
1767
  }
1586
1768
  },
1769
+ {
1770
+ "kind": "compliance",
1771
+ "ruleId": "cics-queue-to-outbound-http",
1772
+ "framework": "ffiec",
1773
+ "clause": "IS II.C.19",
1774
+ "title": "Encryption",
1775
+ "rationale": "The rule reports: A CICS queue item is sent to a remote server over HTTP. That is an authentication credential or sensitive data left unprotected, which this control requires be encrypted in storage and in transit.",
1776
+ "source": {
1777
+ "doc": "ffiec",
1778
+ "retrieved": "2026-09-20",
1779
+ "quote": "Encryption is used to secure communications and data storage, particularly authentication credentials and the transmission of sensitive information."
1780
+ }
1781
+ },
1587
1782
  {
1588
1783
  "kind": "compliance",
1589
1784
  "ruleId": "file-record-to-queue-name",
@@ -1597,6 +1792,19 @@
1597
1792
  "quote": "Secure coding practices help developers minimize the potential for known source code-related vulnerabilities in the development phase."
1598
1793
  }
1599
1794
  },
1795
+ {
1796
+ "kind": "compliance",
1797
+ "ruleId": "cics-queue-to-queue-name",
1798
+ "framework": "ffiec",
1799
+ "clause": "DA&M V",
1800
+ "title": "Development",
1801
+ "rationale": "The rule reports: A CICS queue item names the queue a command reads, writes or deletes. That is a source code-related vulnerability of the kind secure coding practices exist to minimise.",
1802
+ "source": {
1803
+ "doc": "ffiec",
1804
+ "retrieved": "2026-09-20",
1805
+ "quote": "Secure coding practices help developers minimize the potential for known source code-related vulnerabilities in the development phase."
1806
+ }
1807
+ },
1600
1808
  {
1601
1809
  "kind": "compliance",
1602
1810
  "ruleId": "file-record-to-socket-send",
@@ -1610,6 +1818,19 @@
1610
1818
  "quote": "Encryption is used to secure communications and data storage, particularly authentication credentials and the transmission of sensitive information."
1611
1819
  }
1612
1820
  },
1821
+ {
1822
+ "kind": "compliance",
1823
+ "ruleId": "cics-queue-to-socket-send",
1824
+ "framework": "ffiec",
1825
+ "clause": "IS II.C.19",
1826
+ "title": "Encryption",
1827
+ "rationale": "The rule reports: A CICS queue item is written to a network socket. That is an authentication credential or sensitive data left unprotected, which this control requires be encrypted in storage and in transit.",
1828
+ "source": {
1829
+ "doc": "ffiec",
1830
+ "retrieved": "2026-09-20",
1831
+ "quote": "Encryption is used to secure communications and data storage, particularly authentication credentials and the transmission of sensitive information."
1832
+ }
1833
+ },
1613
1834
  {
1614
1835
  "kind": "compliance",
1615
1836
  "ruleId": "file-record-to-web-response",
@@ -1623,6 +1844,19 @@
1623
1844
  "quote": "Secure coding practices help developers minimize the potential for known source code-related vulnerabilities in the development phase."
1624
1845
  }
1625
1846
  },
1847
+ {
1848
+ "kind": "compliance",
1849
+ "ruleId": "cics-queue-to-web-response",
1850
+ "framework": "ffiec",
1851
+ "clause": "DA&M V",
1852
+ "title": "Development",
1853
+ "rationale": "The rule reports: A CICS queue item is written into the response this program returns. That is a source code-related vulnerability of the kind secure coding practices exist to minimise.",
1854
+ "source": {
1855
+ "doc": "ffiec",
1856
+ "retrieved": "2026-09-20",
1857
+ "quote": "Secure coding practices help developers minimize the potential for known source code-related vulnerabilities in the development phase."
1858
+ }
1859
+ },
1626
1860
  {
1627
1861
  "kind": "compliance",
1628
1862
  "ruleId": "hidden-payload-in-identification-area",
@@ -1707,13 +1941,26 @@
1707
1941
  "framework": "ffiec",
1708
1942
  "clause": "IS II.C.7",
1709
1943
  "title": "User Security Controls",
1710
- "rationale": "The rule reports: Assembler source switches to PSW key zero or supervisor state. That is authority granted or exercised beyond job necessity, which the principle of least privilege exists to constrain.",
1944
+ "rationale": "The rule reports: Assembler source switches to PSW key zero, another system key, or supervisor state. That is authority granted or exercised beyond job necessity, which the principle of least privilege exists to constrain.",
1711
1945
  "source": {
1712
1946
  "doc": "ffiec",
1713
1947
  "retrieved": "2026-09-20",
1714
1948
  "quote": "Principle of least privilege, which recommends minimum user profile privileges for both physical and logical access based on job necessity."
1715
1949
  }
1716
1950
  },
1951
+ {
1952
+ "kind": "compliance",
1953
+ "ruleId": "hlasm-runtime-module-name",
1954
+ "framework": "ffiec",
1955
+ "clause": "DA&M V",
1956
+ "title": "Development",
1957
+ "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.",
1958
+ "source": {
1959
+ "doc": "ffiec",
1960
+ "retrieved": "2026-09-20",
1961
+ "quote": "Secure coding practices help developers minimize the potential for known source code-related vulnerabilities in the development phase."
1962
+ }
1963
+ },
1717
1964
  {
1718
1965
  "kind": "compliance",
1719
1966
  "ruleId": "icsf-fixed-initialization-vector",
@@ -1766,6 +2013,32 @@
1766
2013
  "quote": "Secure coding practices help developers minimize the potential for known source code-related vulnerabilities in the development phase."
1767
2014
  }
1768
2015
  },
2016
+ {
2017
+ "kind": "compliance",
2018
+ "ruleId": "input-causes-hang",
2019
+ "framework": "ffiec",
2020
+ "clause": "DA&M V",
2021
+ "title": "Development",
2022
+ "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.",
2023
+ "source": {
2024
+ "doc": "ffiec",
2025
+ "retrieved": "2026-09-20",
2026
+ "quote": "Secure coding practices help developers minimize the potential for known source code-related vulnerabilities in the development phase."
2027
+ }
2028
+ },
2029
+ {
2030
+ "kind": "compliance",
2031
+ "ruleId": "input-selects-program",
2032
+ "framework": "ffiec",
2033
+ "clause": "DA&M V",
2034
+ "title": "Development",
2035
+ "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.",
2036
+ "source": {
2037
+ "doc": "ffiec",
2038
+ "retrieved": "2026-09-20",
2039
+ "quote": "Secure coding practices help developers minimize the potential for known source code-related vulnerabilities in the development phase."
2040
+ }
2041
+ },
1769
2042
  {
1770
2043
  "kind": "compliance",
1771
2044
  "ruleId": "input-causes-abend-s0c4",
@@ -2468,6 +2741,19 @@
2468
2741
  "quote": "Secure coding practices help developers minimize the potential for known source code-related vulnerabilities in the development phase."
2469
2742
  }
2470
2743
  },
2744
+ {
2745
+ "kind": "compliance",
2746
+ "ruleId": "racf-command-new-password",
2747
+ "framework": "ffiec",
2748
+ "clause": "IS II.C.19",
2749
+ "title": "Encryption",
2750
+ "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.",
2751
+ "source": {
2752
+ "doc": "ffiec",
2753
+ "retrieved": "2026-09-20",
2754
+ "quote": "Encryption is used to secure communications and data storage, particularly authentication credentials and the transmission of sensitive information."
2755
+ }
2756
+ },
2471
2757
  {
2472
2758
  "kind": "compliance",
2473
2759
  "ruleId": "racf-command-password",
@@ -2585,6 +2871,19 @@
2585
2871
  "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
2872
  }
2587
2873
  },
2874
+ {
2875
+ "kind": "compliance",
2876
+ "ruleId": "tso-logon-new-password",
2877
+ "framework": "ffiec",
2878
+ "clause": "IS II.C.19",
2879
+ "title": "Encryption",
2880
+ "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.",
2881
+ "source": {
2882
+ "doc": "ffiec",
2883
+ "retrieved": "2026-09-20",
2884
+ "quote": "Encryption is used to secure communications and data storage, particularly authentication credentials and the transmission of sensitive information."
2885
+ }
2886
+ },
2588
2887
  {
2589
2888
  "kind": "compliance",
2590
2889
  "ruleId": "tso-logon-password",
@@ -2831,6 +3130,211 @@
2831
3130
  "retrieved": "2026-09-20",
2832
3131
  "quote": "Encryption is used to secure communications and data storage, particularly authentication credentials and the transmission of sensitive information."
2833
3132
  }
3133
+ },
3134
+ {
3135
+ "kind": "compliance",
3136
+ "ruleId": "db2-exit-routine-declared",
3137
+ "framework": "ffiec",
3138
+ "clause": "DA&M IV",
3139
+ "title": "Common Development, Acquisition, and Maintenance Practices",
3140
+ "rationale": "The rule reports: A table names an exit routine that runs inside Db2. That is a component or dependency the inventory does not accurately account for, which this practice requires be catalogued.",
3141
+ "source": {
3142
+ "doc": "ffiec",
3143
+ "retrieved": "2026-09-20",
3144
+ "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)."
3145
+ }
3146
+ },
3147
+ {
3148
+ "kind": "compliance",
3149
+ "ruleId": "db2-external-routine",
3150
+ "framework": "ffiec",
3151
+ "clause": "DA&M IV",
3152
+ "title": "Common Development, Acquisition, and Maintenance Practices",
3153
+ "rationale": "The rule reports: A procedure or function runs an external load module. That is a component or dependency the inventory does not accurately account for, which this practice requires be catalogued.",
3154
+ "source": {
3155
+ "doc": "ffiec",
3156
+ "retrieved": "2026-09-20",
3157
+ "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)."
3158
+ }
3159
+ },
3160
+ {
3161
+ "kind": "compliance",
3162
+ "ruleId": "db2-grant-to-public",
3163
+ "framework": "ffiec",
3164
+ "clause": "IS II.C.7",
3165
+ "title": "User Security Controls",
3166
+ "rationale": "The rule reports: A GRANT gives privileges to PUBLIC, every authorization ID. That is authority granted or exercised beyond job necessity, which the principle of least privilege exists to constrain.",
3167
+ "source": {
3168
+ "doc": "ffiec",
3169
+ "retrieved": "2026-09-20",
3170
+ "quote": "Principle of least privilege, which recommends minimum user profile privileges for both physical and logical access based on job necessity."
3171
+ }
3172
+ },
3173
+ {
3174
+ "kind": "compliance",
3175
+ "ruleId": "db2-grant-with-grant-option",
3176
+ "framework": "ffiec",
3177
+ "clause": "IS II.C.7",
3178
+ "title": "User Security Controls",
3179
+ "rationale": "The rule reports: WITH GRANT OPTION lets the grantee grant the privilege to others. That is authority granted or exercised beyond job necessity, which the principle of least privilege exists to constrain.",
3180
+ "source": {
3181
+ "doc": "ffiec",
3182
+ "retrieved": "2026-09-20",
3183
+ "quote": "Principle of least privilege, which recommends minimum user profile privileges for both physical and logical access based on job necessity."
3184
+ }
3185
+ },
3186
+ {
3187
+ "kind": "compliance",
3188
+ "ruleId": "db2-system-authority-granted",
3189
+ "framework": "ffiec",
3190
+ "clause": "IS II.C.7",
3191
+ "title": "User Security Controls",
3192
+ "rationale": "The rule reports: A system or database authority is granted. That is authority granted or exercised beyond job necessity, which the principle of least privilege exists to constrain.",
3193
+ "source": {
3194
+ "doc": "ffiec",
3195
+ "retrieved": "2026-09-20",
3196
+ "quote": "Principle of least privilege, which recommends minimum user profile privileges for both physical and logical access based on job necessity."
3197
+ }
3198
+ },
3199
+ {
3200
+ "kind": "compliance",
3201
+ "ruleId": "ims-definition-inconsistent",
3202
+ "framework": "ffiec",
3203
+ "clause": "DA&M V",
3204
+ "title": "Development",
3205
+ "rationale": "The rule reports: A DBD or PSB holds what DBDGEN, PSBGEN or ACBGEN refuses. That is a source code-related vulnerability of the kind secure coding practices exist to minimise.",
3206
+ "source": {
3207
+ "doc": "ffiec",
3208
+ "retrieved": "2026-09-20",
3209
+ "quote": "Secure coding practices help developers minimize the potential for known source code-related vulnerabilities in the development phase."
3210
+ }
3211
+ },
3212
+ {
3213
+ "kind": "compliance",
3214
+ "ruleId": "ims-pcb-procopt-all",
3215
+ "framework": "ffiec",
3216
+ "clause": "IS II.C.7",
3217
+ "title": "User Security Controls",
3218
+ "rationale": "The rule reports: A database PCB lets the program get, insert, replace and delete its sensitive segments. That is authority granted or exercised beyond job necessity, which the principle of least privilege exists to constrain.",
3219
+ "source": {
3220
+ "doc": "ffiec",
3221
+ "retrieved": "2026-09-20",
3222
+ "quote": "Principle of least privilege, which recommends minimum user profile privileges for both physical and logical access based on job necessity."
3223
+ }
3224
+ },
3225
+ {
3226
+ "kind": "compliance",
3227
+ "ruleId": "ims-senseg-unknown-segment",
3228
+ "framework": "ffiec",
3229
+ "clause": "DA&M V",
3230
+ "title": "Development",
3231
+ "rationale": "The rule reports: A SENSEG names a segment its PCB's DBD does not define, which ends the program with abend U0914. That is a source code-related vulnerability of the kind secure coding practices exist to minimise.",
3232
+ "source": {
3233
+ "doc": "ffiec",
3234
+ "retrieved": "2026-09-20",
3235
+ "quote": "Secure coding practices help developers minimize the potential for known source code-related vulnerabilities in the development phase."
3236
+ }
3237
+ },
3238
+ {
3239
+ "kind": "compliance",
3240
+ "ruleId": "pli-based-storage-addressing",
3241
+ "framework": "ffiec",
3242
+ "clause": "DA&M IV",
3243
+ "title": "Common Development, Acquisition, and Maintenance Practices",
3244
+ "rationale": "The rule reports: A program addresses storage through a pointer, so data flow through it is not followed. That is a component or dependency the inventory does not accurately account for, which this practice requires be catalogued.",
3245
+ "source": {
3246
+ "doc": "ffiec",
3247
+ "retrieved": "2026-09-20",
3248
+ "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)."
3249
+ }
3250
+ },
3251
+ {
3252
+ "kind": "compliance",
3253
+ "ruleId": "pli-entry-variable-call",
3254
+ "framework": "ffiec",
3255
+ "clause": "DA&M IV",
3256
+ "title": "Common Development, Acquisition, and Maintenance Practices",
3257
+ "rationale": "The rule reports: A CALL through an entry variable dispatches to a procedure chosen at run time, so the callee is not known statically. That is a component or dependency the inventory does not accurately account for, which this practice requires be catalogued.",
3258
+ "source": {
3259
+ "doc": "ffiec",
3260
+ "retrieved": "2026-09-20",
3261
+ "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)."
3262
+ }
3263
+ },
3264
+ {
3265
+ "kind": "compliance",
3266
+ "ruleId": "pli-error-condition-ignored",
3267
+ "framework": "ffiec",
3268
+ "clause": "DA&M V",
3269
+ "title": "Development",
3270
+ "rationale": "The rule reports: An ON unit for a condition does nothing with it, so the condition is silently ignored. That is a source code-related vulnerability of the kind secure coding practices exist to minimise.",
3271
+ "source": {
3272
+ "doc": "ffiec",
3273
+ "retrieved": "2026-09-20",
3274
+ "quote": "Secure coding practices help developers minimize the potential for known source code-related vulnerabilities in the development phase."
3275
+ }
3276
+ },
3277
+ {
3278
+ "kind": "compliance",
3279
+ "ruleId": "pli-fetch-title-variable",
3280
+ "framework": "ffiec",
3281
+ "clause": "DA&M V",
3282
+ "title": "Development",
3283
+ "rationale": "The rule reports: A FETCH whose TITLE is not a literal names the module to load at run time. That is a source code-related vulnerability of the kind secure coding practices exist to minimise.",
3284
+ "source": {
3285
+ "doc": "ffiec",
3286
+ "retrieved": "2026-09-20",
3287
+ "quote": "Secure coding practices help developers minimize the potential for known source code-related vulnerabilities in the development phase."
3288
+ }
3289
+ },
3290
+ {
3291
+ "kind": "compliance",
3292
+ "ruleId": "pli-preprocessor-in-use",
3293
+ "framework": "ffiec",
3294
+ "clause": "DA&M IV",
3295
+ "title": "Common Development, Acquisition, and Maintenance Practices",
3296
+ "rationale": "The rule reports: A program uses PL/I preprocessor directives, so the source text is not the code that is compiled. That is a component or dependency the inventory does not accurately account for, which this practice requires be catalogued.",
3297
+ "source": {
3298
+ "doc": "ffiec",
3299
+ "retrieved": "2026-09-20",
3300
+ "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)."
3301
+ }
3302
+ },
3303
+ {
3304
+ "kind": "compliance",
3305
+ "ruleId": "ims-procopt-broader-than-used",
3306
+ "framework": "ffiec",
3307
+ "clause": "IS II.C.7",
3308
+ "title": "User Security Controls",
3309
+ "rationale": "The rule reports: A PSB grants a processing option that no DL/I call of the program it is named for uses. That is authority granted or exercised beyond job necessity, which the principle of least privilege exists to constrain.",
3310
+ "source": {
3311
+ "doc": "ffiec",
3312
+ "retrieved": "2026-09-20",
3313
+ "quote": "Principle of least privilege, which recommends minimum user profile privileges for both physical and logical access based on job necessity."
3314
+ }
3315
+ }
3316
+ ],
3317
+ "evidence": [],
3318
+ "unmappedEvidence": [
3319
+ {
3320
+ "evidenceId": "journal-records",
3321
+ "why": "None of the sections fetched from the three booklets concerns logging. The Information Security booklet's treatment of logs has to be fetched by hand before a run journal can be mapped to it."
3322
+ },
3323
+ {
3324
+ "evidenceId": "journal-chain",
3325
+ "why": "None of the sections fetched concerns protecting logs from change; the Information Security booklet has to be fetched by hand first."
3326
+ },
3327
+ {
3328
+ "evidenceId": "provenance",
3329
+ "why": "None of the sections fetched concerns the provenance of an output. DA&M IV inventories components, not where one run's output came from."
3330
+ },
3331
+ {
3332
+ "evidenceId": "options-in-force",
3333
+ "why": "None of the sections fetched concerns recording the settings a run used."
3334
+ },
3335
+ {
3336
+ "evidenceId": "assumptions-register",
3337
+ "why": "No booklet concerns how a compiler resolves what its language leaves open."
2834
3338
  }
2835
3339
  ]
2836
3340
  }