@portll/cobolwork 0.0.1 → 0.2.76

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 (79) hide show
  1. package/LICENSE +661 -0
  2. package/LICENSING.md +93 -0
  3. package/NOTICE +9 -0
  4. package/README.md +325 -3
  5. package/THIRD-PARTY-NOTICES.md +118 -0
  6. package/bin/cobolwork.mjs +354 -0
  7. package/lib/advisories.mjs +133 -0
  8. package/lib/baseline.mjs +154 -0
  9. package/lib/bms.mjs +453 -0
  10. package/lib/build.mjs +402 -0
  11. package/lib/capabilities.mjs +79 -0
  12. package/lib/cics-commands.mjs +281 -0
  13. package/lib/compliance.mjs +81 -0
  14. package/lib/consequence.mjs +139 -0
  15. package/lib/control.mjs +1515 -0
  16. package/lib/csd.mjs +77 -0
  17. package/lib/dataflow.mjs +1506 -0
  18. package/lib/diff.mjs +344 -0
  19. package/lib/explain.mjs +145 -0
  20. package/lib/gate.mjs +383 -0
  21. package/lib/index.mjs +6 -0
  22. package/lib/inventory.mjs +79 -0
  23. package/lib/jcl.mjs +478 -0
  24. package/lib/kernel/findings.mjs +94 -0
  25. package/lib/kernel/identity.mjs +216 -0
  26. package/lib/kernel/memory.mjs +217 -0
  27. package/lib/kernel/printable.mjs +6 -0
  28. package/lib/kernel/registry.mjs +79 -0
  29. package/lib/kernel/ruleset.mjs +72 -0
  30. package/lib/kernel/source-tree.mjs +159 -0
  31. package/lib/kev.mjs +27 -0
  32. package/lib/options.mjs +512 -0
  33. package/lib/packs.mjs +148 -0
  34. package/lib/parser.mjs +2055 -0
  35. package/lib/policy.mjs +163 -0
  36. package/lib/precompile-cics.mjs +169 -0
  37. package/lib/precompile.mjs +544 -0
  38. package/lib/reach.mjs +122 -0
  39. package/lib/revision.json +1 -0
  40. package/lib/revision.mjs +89 -0
  41. package/lib/sarif.mjs +222 -0
  42. package/lib/scan.mjs +272 -0
  43. package/lib/sets/build.mjs +234 -0
  44. package/lib/sets/cics.mjs +306 -0
  45. package/lib/sets/compile.mjs +187 -0
  46. package/lib/sets/copybook.mjs +174 -0
  47. package/lib/sets/flow.mjs +487 -0
  48. package/lib/sets/hidden.mjs +216 -0
  49. package/lib/sets/jcl.mjs +440 -0
  50. package/lib/sets/log.mjs +406 -0
  51. package/lib/sets/opaque.mjs +102 -0
  52. package/lib/sets/priv.mjs +322 -0
  53. package/lib/sets/recon.mjs +267 -0
  54. package/lib/sets/vendor.mjs +117 -0
  55. package/lib/sets/web.mjs +327 -0
  56. package/lib/site.mjs +164 -0
  57. package/lib/sources.mjs +156 -0
  58. package/lib/tui/app.mjs +325 -0
  59. package/lib/tui/keys.mjs +39 -0
  60. package/lib/tui/model.mjs +96 -0
  61. package/lib/tui/run.mjs +38 -0
  62. package/lib/tui/screen.mjs +59 -0
  63. package/lib/tui/terminal.mjs +46 -0
  64. package/lib/utilities.mjs +296 -0
  65. package/lib/version.mjs +15 -0
  66. package/lib/words.mjs +318 -0
  67. package/package.json +45 -6
  68. package/rules/advisories.json +264 -0
  69. package/rules/compliance-dora.json +2151 -0
  70. package/rules/compliance-ffiec.json +2134 -0
  71. package/rules/compliance-nist80053.json +2134 -0
  72. package/rules/gitleaks-mainframe.toml +57 -0
  73. package/rules/kev-ids.json +1729 -0
  74. package/rules/packs/broadcom.json +124 -0
  75. package/rules/packs/connectdirect.json +116 -0
  76. package/rules/packs/controlm.json +114 -0
  77. package/rules/system-layouts.json +28 -0
  78. package/schema/cobolwork-coverage.schema.json +65 -0
  79. package/schema/cobolwork.policy.schema.json +54 -0
@@ -0,0 +1,2151 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "framework": "dora",
4
+ "instrument": "Regulation (EU) 2022/2554",
5
+ "source": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32022R2554",
6
+ "retrieved": "2026-09-20",
7
+ "verified": "Every quote was matched verbatim against the cited instrument. The choice of clause is a human judgement and has not been reviewed by a qualified assessor.",
8
+ "coverage": "Articles 8 and 9 only. DORA Chapters III to V (incident reporting, resilience testing, third-party risk) place obligations that no static analysis of source code can evidence, and no row claims otherwise.",
9
+ "appliesToTool": [
10
+ {
11
+ "clause": "Article 8(7)",
12
+ "title": "Identification",
13
+ "quote": "conduct a specific ICT risk assessment on all legacy ICT systems and, in any case before and after connecting technologies, applications or systems"
14
+ }
15
+ ],
16
+ "unmapped": [],
17
+ "rows": [
18
+ {
19
+ "kind": "compliance",
20
+ "ruleId": "agent-directive-in-comment",
21
+ "framework": "dora",
22
+ "clause": "Article 9(3)(b)",
23
+ "title": "Protection and prevention",
24
+ "rationale": "The rule reports: A comment tells its reader to ignore instructions, or to fetch and run something. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
25
+ "source": {
26
+ "doc": "dora",
27
+ "retrieved": "2026-09-20",
28
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
29
+ }
30
+ },
31
+ {
32
+ "kind": "compliance",
33
+ "ruleId": "argv-or-env-to-arithmetic",
34
+ "framework": "dora",
35
+ "clause": "Article 9(3)(b)",
36
+ "title": "Protection and prevention",
37
+ "rationale": "The rule reports: Command-line or environment input reaches arithmetic on a decimal field, where bytes that are not digits abend the program. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
38
+ "source": {
39
+ "doc": "dora",
40
+ "retrieved": "2026-09-20",
41
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
42
+ }
43
+ },
44
+ {
45
+ "kind": "compliance",
46
+ "ruleId": "argv-or-env-to-cics-dynamic-transfer",
47
+ "framework": "dora",
48
+ "clause": "Article 9(3)(b)",
49
+ "title": "Protection and prevention",
50
+ "rationale": "The rule reports: Command-line or environment input decides which program CICS transfers to. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
51
+ "source": {
52
+ "doc": "dora",
53
+ "retrieved": "2026-09-20",
54
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
55
+ }
56
+ },
57
+ {
58
+ "kind": "compliance",
59
+ "ruleId": "argv-or-env-to-dynamic-file-path",
60
+ "framework": "dora",
61
+ "clause": "Article 9(3)(b)",
62
+ "title": "Protection and prevention",
63
+ "rationale": "The rule reports: Command-line or environment input decides which file is opened. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
64
+ "source": {
65
+ "doc": "dora",
66
+ "retrieved": "2026-09-20",
67
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
68
+ }
69
+ },
70
+ {
71
+ "kind": "compliance",
72
+ "ruleId": "argv-or-env-to-dynamic-program-load",
73
+ "framework": "dora",
74
+ "clause": "Article 9(3)(b)",
75
+ "title": "Protection and prevention",
76
+ "rationale": "The rule reports: Command-line or environment input decides which program is called. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
77
+ "source": {
78
+ "doc": "dora",
79
+ "retrieved": "2026-09-20",
80
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
81
+ }
82
+ },
83
+ {
84
+ "kind": "compliance",
85
+ "ruleId": "argv-or-env-to-dynamic-sql",
86
+ "framework": "dora",
87
+ "clause": "Article 9(3)(b)",
88
+ "title": "Protection and prevention",
89
+ "rationale": "The rule reports: Command-line or environment input reaches dynamic SQL. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
90
+ "source": {
91
+ "doc": "dora",
92
+ "retrieved": "2026-09-20",
93
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
94
+ }
95
+ },
96
+ {
97
+ "kind": "compliance",
98
+ "ruleId": "argv-or-env-to-internal-reader",
99
+ "framework": "dora",
100
+ "clause": "Article 9(3)(b)",
101
+ "title": "Protection and prevention",
102
+ "rationale": "The rule reports: Command-line or environment input is written into a job the internal reader submits. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
103
+ "source": {
104
+ "doc": "dora",
105
+ "retrieved": "2026-09-20",
106
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
107
+ }
108
+ },
109
+ {
110
+ "kind": "compliance",
111
+ "ruleId": "argv-or-env-to-loop-bound",
112
+ "framework": "dora",
113
+ "clause": "Article 9(3)(b)",
114
+ "title": "Protection and prevention",
115
+ "rationale": "The rule reports: Command-line or environment input decides how far a loop that subscripts a table runs. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
116
+ "source": {
117
+ "doc": "dora",
118
+ "retrieved": "2026-09-20",
119
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
120
+ }
121
+ },
122
+ {
123
+ "kind": "compliance",
124
+ "ruleId": "argv-or-env-to-occurs-depending-count",
125
+ "framework": "dora",
126
+ "clause": "Article 9(3)(b)",
127
+ "title": "Protection and prevention",
128
+ "rationale": "The rule reports: Command-line or environment input decides how many entries an OCCURS DEPENDING ON table holds. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
129
+ "source": {
130
+ "doc": "dora",
131
+ "retrieved": "2026-09-20",
132
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
133
+ }
134
+ },
135
+ {
136
+ "kind": "compliance",
137
+ "ruleId": "argv-or-env-to-os-command",
138
+ "framework": "dora",
139
+ "clause": "Article 9(3)(b)",
140
+ "title": "Protection and prevention",
141
+ "rationale": "The rule reports: Command-line or environment input reaches an operating-system command routine. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
142
+ "source": {
143
+ "doc": "dora",
144
+ "retrieved": "2026-09-20",
145
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
146
+ }
147
+ },
148
+ {
149
+ "kind": "compliance",
150
+ "ruleId": "argv-or-env-to-reference-modification",
151
+ "framework": "dora",
152
+ "clause": "Article 9(3)(b)",
153
+ "title": "Protection and prevention",
154
+ "rationale": "The rule reports: Command-line or environment input decides where a reference modification starts or how long it is. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
155
+ "source": {
156
+ "doc": "dora",
157
+ "retrieved": "2026-09-20",
158
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
159
+ }
160
+ },
161
+ {
162
+ "kind": "compliance",
163
+ "ruleId": "argv-or-env-to-subscript",
164
+ "framework": "dora",
165
+ "clause": "Article 9(3)(b)",
166
+ "title": "Protection and prevention",
167
+ "rationale": "The rule reports: Command-line or environment input is used as a subscript. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
168
+ "source": {
169
+ "doc": "dora",
170
+ "retrieved": "2026-09-20",
171
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
172
+ }
173
+ },
174
+ {
175
+ "kind": "compliance",
176
+ "ruleId": "bidi-or-invisible-characters",
177
+ "framework": "dora",
178
+ "clause": "Article 9(3)(b)",
179
+ "title": "Protection and prevention",
180
+ "rationale": "The rule reports: Characters that reorder or hide text appear in the source. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
181
+ "source": {
182
+ "doc": "dora",
183
+ "retrieved": "2026-09-20",
184
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
185
+ }
186
+ },
187
+ {
188
+ "kind": "compliance",
189
+ "ruleId": "build-pins-exploited-compiler",
190
+ "framework": "dora",
191
+ "clause": "Article 8(2)",
192
+ "title": "Identification",
193
+ "rationale": "The rule reports: The build pins a compiler version with a vulnerability CISA lists as known to be exploited. That is a source of ICT risk in a business-supporting function, identified by reading the source rather than by asking the team that maintains it.",
194
+ "source": {
195
+ "doc": "dora",
196
+ "retrieved": "2026-09-20",
197
+ "quote": "identify all sources of ICT risk, in particular the risk exposure to and from other financial entities, and assess cyber threats and ICT vulnerabilities relevant to their ICT supported business functions"
198
+ }
199
+ },
200
+ {
201
+ "kind": "compliance",
202
+ "ruleId": "build-pins-exploited-component",
203
+ "framework": "dora",
204
+ "clause": "Article 8(2)",
205
+ "title": "Identification",
206
+ "rationale": "The rule reports: The build pins a component version with a vulnerability CISA lists as known to be exploited. That is a source of ICT risk in a business-supporting function, identified by reading the source rather than by asking the team that maintains it.",
207
+ "source": {
208
+ "doc": "dora",
209
+ "retrieved": "2026-09-20",
210
+ "quote": "identify all sources of ICT risk, in particular the risk exposure to and from other financial entities, and assess cyber threats and ICT vulnerabilities relevant to their ICT supported business functions"
211
+ }
212
+ },
213
+ {
214
+ "kind": "compliance",
215
+ "ruleId": "build-pins-vulnerable-compiler",
216
+ "framework": "dora",
217
+ "clause": "Article 8(2)",
218
+ "title": "Identification",
219
+ "rationale": "The rule reports: The build pins a compiler version with a published advisory against it. That is a source of ICT risk in a business-supporting function, identified by reading the source rather than by asking the team that maintains it.",
220
+ "source": {
221
+ "doc": "dora",
222
+ "retrieved": "2026-09-20",
223
+ "quote": "identify all sources of ICT risk, in particular the risk exposure to and from other financial entities, and assess cyber threats and ICT vulnerabilities relevant to their ICT supported business functions"
224
+ }
225
+ },
226
+ {
227
+ "kind": "compliance",
228
+ "ruleId": "build-pins-vulnerable-component",
229
+ "framework": "dora",
230
+ "clause": "Article 8(2)",
231
+ "title": "Identification",
232
+ "rationale": "The rule reports: The build pins a component version with a published advisory against it. That is a source of ICT risk in a business-supporting function, identified by reading the source rather than by asking the team that maintains it.",
233
+ "source": {
234
+ "doc": "dora",
235
+ "retrieved": "2026-09-20",
236
+ "quote": "identify all sources of ICT risk, in particular the risk exposure to and from other financial entities, and assess cyber threats and ICT vulnerabilities relevant to their ICT supported business functions"
237
+ }
238
+ },
239
+ {
240
+ "kind": "compliance",
241
+ "ruleId": "call-parameter-exceeds-argument",
242
+ "framework": "dora",
243
+ "clause": "Article 9(3)(b)",
244
+ "title": "Protection and prevention",
245
+ "rationale": "The rule reports: A called program declares a parameter longer than the field its caller passes, reaching into the fields beside it. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
246
+ "source": {
247
+ "doc": "dora",
248
+ "retrieved": "2026-09-20",
249
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
250
+ }
251
+ },
252
+ {
253
+ "kind": "compliance",
254
+ "ruleId": "call-parameter-exceeds-caller-record",
255
+ "framework": "dora",
256
+ "clause": "Article 9(3)(b)",
257
+ "title": "Protection and prevention",
258
+ "rationale": "The rule reports: A called program declares a parameter longer than the whole record its caller passes. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
259
+ "source": {
260
+ "doc": "dora",
261
+ "retrieved": "2026-09-20",
262
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
263
+ }
264
+ },
265
+ {
266
+ "kind": "compliance",
267
+ "ruleId": "cics-commarea-length-exceeds-area",
268
+ "framework": "dora",
269
+ "clause": "Article 9(3)(b)",
270
+ "title": "Protection and prevention",
271
+ "rationale": "The rule reports: A CICS call passes a length longer than the area it passes. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
272
+ "source": {
273
+ "doc": "dora",
274
+ "retrieved": "2026-09-20",
275
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
276
+ }
277
+ },
278
+ {
279
+ "kind": "compliance",
280
+ "ruleId": "cics-commarea-length-exceeds-callee",
281
+ "framework": "dora",
282
+ "clause": "Article 9(3)(b)",
283
+ "title": "Protection and prevention",
284
+ "rationale": "The rule reports: A CICS call passes a length longer than the callee declares. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
285
+ "source": {
286
+ "doc": "dora",
287
+ "retrieved": "2026-09-20",
288
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
289
+ }
290
+ },
291
+ {
292
+ "kind": "compliance",
293
+ "ruleId": "cics-commarea-without-length-check",
294
+ "framework": "dora",
295
+ "clause": "Article 9(3)(b)",
296
+ "title": "Protection and prevention",
297
+ "rationale": "The rule reports: A program reads its communication area without checking EIBCALEN. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
298
+ "source": {
299
+ "doc": "dora",
300
+ "retrieved": "2026-09-20",
301
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
302
+ }
303
+ },
304
+ {
305
+ "kind": "compliance",
306
+ "ruleId": "cics-listener-accepts-cleartext",
307
+ "framework": "dora",
308
+ "clause": "Article 9(3)(b)",
309
+ "title": "Protection and prevention",
310
+ "rationale": "The rule reports: A CICS listener accepts connections without TLS. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
311
+ "source": {
312
+ "doc": "dora",
313
+ "retrieved": "2026-09-20",
314
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
315
+ }
316
+ },
317
+ {
318
+ "kind": "compliance",
319
+ "ruleId": "cics-protected-field-to-record-key",
320
+ "framework": "dora",
321
+ "clause": "Article 9(3)(b)",
322
+ "title": "Protection and prevention",
323
+ "rationale": "The rule reports: A field the map protects, which a modified 3270 client can change, decides which record the program reads or browses from. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
324
+ "source": {
325
+ "doc": "dora",
326
+ "retrieved": "2026-09-20",
327
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
328
+ }
329
+ },
330
+ {
331
+ "kind": "compliance",
332
+ "ruleId": "cics-protected-field-to-record-update",
333
+ "framework": "dora",
334
+ "clause": "Article 9(3)(b)",
335
+ "title": "Protection and prevention",
336
+ "rationale": "The rule reports: A field the map protects, which a modified 3270 client can change, decides which record the program changes or deletes. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
337
+ "source": {
338
+ "doc": "dora",
339
+ "retrieved": "2026-09-20",
340
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
341
+ }
342
+ },
343
+ {
344
+ "kind": "compliance",
345
+ "ruleId": "cics-signon-bypassed",
346
+ "framework": "dora",
347
+ "clause": "Article 9(3)(b)",
348
+ "title": "Protection and prevention",
349
+ "rationale": "The rule reports: A route reaches the program a sign-on grants without passing the password check. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
350
+ "source": {
351
+ "doc": "dora",
352
+ "retrieved": "2026-09-20",
353
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
354
+ }
355
+ },
356
+ {
357
+ "kind": "compliance",
358
+ "ruleId": "cics-signon-password",
359
+ "framework": "dora",
360
+ "clause": "Article 9(4)(d)",
361
+ "title": "Protection and prevention",
362
+ "rationale": "The rule reports: Credential pattern: cics signon password. That exposes an authentication secret in a file, defeating the authentication mechanisms and key protection this clause requires.",
363
+ "source": {
364
+ "doc": "dora",
365
+ "retrieved": "2026-09-20",
366
+ "quote": "implement policies and protocols for strong authentication mechanisms, based on relevant standards and dedicated control systems, and protection measures of cryptographic keys"
367
+ }
368
+ },
369
+ {
370
+ "kind": "compliance",
371
+ "ruleId": "cics-signon-says-which-half-failed",
372
+ "framework": "dora",
373
+ "clause": "Article 9(3)(b)",
374
+ "title": "Protection and prevention",
375
+ "rationale": "The rule reports: A sign-on answers a bad user and a bad password differently. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
376
+ "source": {
377
+ "doc": "dora",
378
+ "retrieved": "2026-09-20",
379
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
380
+ }
381
+ },
382
+ {
383
+ "kind": "compliance",
384
+ "ruleId": "cics-terminal-to-arithmetic",
385
+ "framework": "dora",
386
+ "clause": "Article 9(3)(b)",
387
+ "title": "Protection and prevention",
388
+ "rationale": "The rule reports: Terminal input reaches arithmetic on a decimal field, where bytes that are not digits abend the program. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
389
+ "source": {
390
+ "doc": "dora",
391
+ "retrieved": "2026-09-20",
392
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
393
+ }
394
+ },
395
+ {
396
+ "kind": "compliance",
397
+ "ruleId": "cics-terminal-to-cics-dynamic-transfer",
398
+ "framework": "dora",
399
+ "clause": "Article 9(3)(b)",
400
+ "title": "Protection and prevention",
401
+ "rationale": "The rule reports: Terminal input decides which program CICS transfers to. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
402
+ "source": {
403
+ "doc": "dora",
404
+ "retrieved": "2026-09-20",
405
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
406
+ }
407
+ },
408
+ {
409
+ "kind": "compliance",
410
+ "ruleId": "cics-terminal-to-dynamic-file-path",
411
+ "framework": "dora",
412
+ "clause": "Article 9(3)(b)",
413
+ "title": "Protection and prevention",
414
+ "rationale": "The rule reports: Terminal input decides which file is opened. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
415
+ "source": {
416
+ "doc": "dora",
417
+ "retrieved": "2026-09-20",
418
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
419
+ }
420
+ },
421
+ {
422
+ "kind": "compliance",
423
+ "ruleId": "cics-terminal-to-dynamic-program-load",
424
+ "framework": "dora",
425
+ "clause": "Article 9(3)(b)",
426
+ "title": "Protection and prevention",
427
+ "rationale": "The rule reports: Terminal input decides which program is called. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
428
+ "source": {
429
+ "doc": "dora",
430
+ "retrieved": "2026-09-20",
431
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
432
+ }
433
+ },
434
+ {
435
+ "kind": "compliance",
436
+ "ruleId": "cics-terminal-to-dynamic-sql",
437
+ "framework": "dora",
438
+ "clause": "Article 9(3)(b)",
439
+ "title": "Protection and prevention",
440
+ "rationale": "The rule reports: Terminal input reaches dynamic SQL. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
441
+ "source": {
442
+ "doc": "dora",
443
+ "retrieved": "2026-09-20",
444
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
445
+ }
446
+ },
447
+ {
448
+ "kind": "compliance",
449
+ "ruleId": "cics-terminal-to-http-header",
450
+ "framework": "dora",
451
+ "clause": "Article 9(3)(b)",
452
+ "title": "Protection and prevention",
453
+ "rationale": "The rule reports: Terminal input is written into a header of the response. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
454
+ "source": {
455
+ "doc": "dora",
456
+ "retrieved": "2026-09-20",
457
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
458
+ }
459
+ },
460
+ {
461
+ "kind": "compliance",
462
+ "ruleId": "cics-terminal-to-internal-reader",
463
+ "framework": "dora",
464
+ "clause": "Article 9(3)(b)",
465
+ "title": "Protection and prevention",
466
+ "rationale": "The rule reports: Terminal input is written into a job the internal reader submits. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
467
+ "source": {
468
+ "doc": "dora",
469
+ "retrieved": "2026-09-20",
470
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
471
+ }
472
+ },
473
+ {
474
+ "kind": "compliance",
475
+ "ruleId": "cics-terminal-to-log",
476
+ "framework": "dora",
477
+ "clause": "Article 9(3)(b)",
478
+ "title": "Protection and prevention",
479
+ "rationale": "The rule reports: Terminal input is written to a log unchecked, where control characters in it can start a line the program did not write. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
480
+ "source": {
481
+ "doc": "dora",
482
+ "retrieved": "2026-09-20",
483
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
484
+ }
485
+ },
486
+ {
487
+ "kind": "compliance",
488
+ "ruleId": "cics-terminal-to-loop-bound",
489
+ "framework": "dora",
490
+ "clause": "Article 9(3)(b)",
491
+ "title": "Protection and prevention",
492
+ "rationale": "The rule reports: Terminal input decides how far a loop that subscripts a table runs. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
493
+ "source": {
494
+ "doc": "dora",
495
+ "retrieved": "2026-09-20",
496
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
497
+ }
498
+ },
499
+ {
500
+ "kind": "compliance",
501
+ "ruleId": "cics-terminal-to-occurs-depending-count",
502
+ "framework": "dora",
503
+ "clause": "Article 9(3)(b)",
504
+ "title": "Protection and prevention",
505
+ "rationale": "The rule reports: Terminal input decides how many entries an OCCURS DEPENDING ON table holds. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
506
+ "source": {
507
+ "doc": "dora",
508
+ "retrieved": "2026-09-20",
509
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
510
+ }
511
+ },
512
+ {
513
+ "kind": "compliance",
514
+ "ruleId": "cics-terminal-to-os-command",
515
+ "framework": "dora",
516
+ "clause": "Article 9(3)(b)",
517
+ "title": "Protection and prevention",
518
+ "rationale": "The rule reports: Terminal input reaches an operating-system command routine. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
519
+ "source": {
520
+ "doc": "dora",
521
+ "retrieved": "2026-09-20",
522
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
523
+ }
524
+ },
525
+ {
526
+ "kind": "compliance",
527
+ "ruleId": "cics-terminal-to-outbound-host",
528
+ "framework": "dora",
529
+ "clause": "Article 9(3)(b)",
530
+ "title": "Protection and prevention",
531
+ "rationale": "The rule reports: Terminal input decides the host or path this program sends a request to. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
532
+ "source": {
533
+ "doc": "dora",
534
+ "retrieved": "2026-09-20",
535
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
536
+ }
537
+ },
538
+ {
539
+ "kind": "compliance",
540
+ "ruleId": "cics-terminal-to-queue-name",
541
+ "framework": "dora",
542
+ "clause": "Article 9(3)(b)",
543
+ "title": "Protection and prevention",
544
+ "rationale": "The rule reports: Terminal input names the queue a command reads, writes or deletes. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
545
+ "source": {
546
+ "doc": "dora",
547
+ "retrieved": "2026-09-20",
548
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
549
+ }
550
+ },
551
+ {
552
+ "kind": "compliance",
553
+ "ruleId": "cics-terminal-to-reference-modification",
554
+ "framework": "dora",
555
+ "clause": "Article 9(3)(b)",
556
+ "title": "Protection and prevention",
557
+ "rationale": "The rule reports: Terminal input decides where a reference modification starts or how long it is. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
558
+ "source": {
559
+ "doc": "dora",
560
+ "retrieved": "2026-09-20",
561
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
562
+ }
563
+ },
564
+ {
565
+ "kind": "compliance",
566
+ "ruleId": "cics-terminal-to-subscript",
567
+ "framework": "dora",
568
+ "clause": "Article 9(3)(b)",
569
+ "title": "Protection and prevention",
570
+ "rationale": "The rule reports: Terminal input is used as a subscript. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
571
+ "source": {
572
+ "doc": "dora",
573
+ "retrieved": "2026-09-20",
574
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
575
+ }
576
+ },
577
+ {
578
+ "kind": "compliance",
579
+ "ruleId": "cics-terminal-to-web-response",
580
+ "framework": "dora",
581
+ "clause": "Article 9(3)(b)",
582
+ "title": "Protection and prevention",
583
+ "rationale": "The rule reports: Terminal input is written into the response this program returns. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
584
+ "source": {
585
+ "doc": "dora",
586
+ "retrieved": "2026-09-20",
587
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
588
+ }
589
+ },
590
+ {
591
+ "kind": "compliance",
592
+ "ruleId": "cics-transfer-to-variable-program",
593
+ "framework": "dora",
594
+ "clause": "Article 9(3)(b)",
595
+ "title": "Protection and prevention",
596
+ "rationale": "The rule reports: CICS transfers control to a program named by a variable. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
597
+ "source": {
598
+ "doc": "dora",
599
+ "retrieved": "2026-09-20",
600
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
601
+ }
602
+ },
603
+ {
604
+ "kind": "compliance",
605
+ "ruleId": "cics-web-to-arithmetic",
606
+ "framework": "dora",
607
+ "clause": "Article 9(3)(b)",
608
+ "title": "Protection and prevention",
609
+ "rationale": "The rule reports: Web input reaches arithmetic on a decimal field, where bytes that are not digits abend the program. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
610
+ "source": {
611
+ "doc": "dora",
612
+ "retrieved": "2026-09-20",
613
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
614
+ }
615
+ },
616
+ {
617
+ "kind": "compliance",
618
+ "ruleId": "cics-web-to-cics-dynamic-transfer",
619
+ "framework": "dora",
620
+ "clause": "Article 9(3)(b)",
621
+ "title": "Protection and prevention",
622
+ "rationale": "The rule reports: Web input decides which program CICS transfers to. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
623
+ "source": {
624
+ "doc": "dora",
625
+ "retrieved": "2026-09-20",
626
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
627
+ }
628
+ },
629
+ {
630
+ "kind": "compliance",
631
+ "ruleId": "cics-web-to-dynamic-file-path",
632
+ "framework": "dora",
633
+ "clause": "Article 9(3)(b)",
634
+ "title": "Protection and prevention",
635
+ "rationale": "The rule reports: Web input decides which file is opened. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
636
+ "source": {
637
+ "doc": "dora",
638
+ "retrieved": "2026-09-20",
639
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
640
+ }
641
+ },
642
+ {
643
+ "kind": "compliance",
644
+ "ruleId": "cics-web-to-dynamic-program-load",
645
+ "framework": "dora",
646
+ "clause": "Article 9(3)(b)",
647
+ "title": "Protection and prevention",
648
+ "rationale": "The rule reports: Web input decides which program is called. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
649
+ "source": {
650
+ "doc": "dora",
651
+ "retrieved": "2026-09-20",
652
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
653
+ }
654
+ },
655
+ {
656
+ "kind": "compliance",
657
+ "ruleId": "cics-web-to-dynamic-sql",
658
+ "framework": "dora",
659
+ "clause": "Article 9(3)(b)",
660
+ "title": "Protection and prevention",
661
+ "rationale": "The rule reports: Web input reaches dynamic SQL. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
662
+ "source": {
663
+ "doc": "dora",
664
+ "retrieved": "2026-09-20",
665
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
666
+ }
667
+ },
668
+ {
669
+ "kind": "compliance",
670
+ "ruleId": "cics-web-to-http-header",
671
+ "framework": "dora",
672
+ "clause": "Article 9(3)(b)",
673
+ "title": "Protection and prevention",
674
+ "rationale": "The rule reports: Web input is written into a header of the response. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
675
+ "source": {
676
+ "doc": "dora",
677
+ "retrieved": "2026-09-20",
678
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
679
+ }
680
+ },
681
+ {
682
+ "kind": "compliance",
683
+ "ruleId": "cics-web-to-internal-reader",
684
+ "framework": "dora",
685
+ "clause": "Article 9(3)(b)",
686
+ "title": "Protection and prevention",
687
+ "rationale": "The rule reports: Web input is written into a job the internal reader submits. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
688
+ "source": {
689
+ "doc": "dora",
690
+ "retrieved": "2026-09-20",
691
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
692
+ }
693
+ },
694
+ {
695
+ "kind": "compliance",
696
+ "ruleId": "cics-web-to-log",
697
+ "framework": "dora",
698
+ "clause": "Article 9(3)(b)",
699
+ "title": "Protection and prevention",
700
+ "rationale": "The rule reports: Web request data is written to a log unchecked, where control characters in it can start a line the program did not write. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
701
+ "source": {
702
+ "doc": "dora",
703
+ "retrieved": "2026-09-20",
704
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
705
+ }
706
+ },
707
+ {
708
+ "kind": "compliance",
709
+ "ruleId": "cics-web-to-loop-bound",
710
+ "framework": "dora",
711
+ "clause": "Article 9(3)(b)",
712
+ "title": "Protection and prevention",
713
+ "rationale": "The rule reports: Web input decides how far a loop that subscripts a table runs. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
714
+ "source": {
715
+ "doc": "dora",
716
+ "retrieved": "2026-09-20",
717
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
718
+ }
719
+ },
720
+ {
721
+ "kind": "compliance",
722
+ "ruleId": "cics-web-to-occurs-depending-count",
723
+ "framework": "dora",
724
+ "clause": "Article 9(3)(b)",
725
+ "title": "Protection and prevention",
726
+ "rationale": "The rule reports: Web input decides how many entries an OCCURS DEPENDING ON table holds. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
727
+ "source": {
728
+ "doc": "dora",
729
+ "retrieved": "2026-09-20",
730
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
731
+ }
732
+ },
733
+ {
734
+ "kind": "compliance",
735
+ "ruleId": "cics-web-to-os-command",
736
+ "framework": "dora",
737
+ "clause": "Article 9(3)(b)",
738
+ "title": "Protection and prevention",
739
+ "rationale": "The rule reports: Web input reaches an operating-system command routine. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
740
+ "source": {
741
+ "doc": "dora",
742
+ "retrieved": "2026-09-20",
743
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
744
+ }
745
+ },
746
+ {
747
+ "kind": "compliance",
748
+ "ruleId": "cics-web-to-outbound-host",
749
+ "framework": "dora",
750
+ "clause": "Article 9(3)(b)",
751
+ "title": "Protection and prevention",
752
+ "rationale": "The rule reports: Web input decides the host or path this program sends a request to. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
753
+ "source": {
754
+ "doc": "dora",
755
+ "retrieved": "2026-09-20",
756
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
757
+ }
758
+ },
759
+ {
760
+ "kind": "compliance",
761
+ "ruleId": "cics-web-to-queue-name",
762
+ "framework": "dora",
763
+ "clause": "Article 9(3)(b)",
764
+ "title": "Protection and prevention",
765
+ "rationale": "The rule reports: Web input names the queue a command reads, writes or deletes. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
766
+ "source": {
767
+ "doc": "dora",
768
+ "retrieved": "2026-09-20",
769
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
770
+ }
771
+ },
772
+ {
773
+ "kind": "compliance",
774
+ "ruleId": "cics-web-to-reference-modification",
775
+ "framework": "dora",
776
+ "clause": "Article 9(3)(b)",
777
+ "title": "Protection and prevention",
778
+ "rationale": "The rule reports: Web input decides where a reference modification starts or how long it is. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
779
+ "source": {
780
+ "doc": "dora",
781
+ "retrieved": "2026-09-20",
782
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
783
+ }
784
+ },
785
+ {
786
+ "kind": "compliance",
787
+ "ruleId": "cics-web-to-subscript",
788
+ "framework": "dora",
789
+ "clause": "Article 9(3)(b)",
790
+ "title": "Protection and prevention",
791
+ "rationale": "The rule reports: Web input is used as a subscript. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
792
+ "source": {
793
+ "doc": "dora",
794
+ "retrieved": "2026-09-20",
795
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
796
+ }
797
+ },
798
+ {
799
+ "kind": "compliance",
800
+ "ruleId": "cics-web-to-web-response",
801
+ "framework": "dora",
802
+ "clause": "Article 9(3)(b)",
803
+ "title": "Protection and prevention",
804
+ "rationale": "The rule reports: Web input is written into the response this program returns. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
805
+ "source": {
806
+ "doc": "dora",
807
+ "retrieved": "2026-09-20",
808
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
809
+ }
810
+ },
811
+ {
812
+ "kind": "compliance",
813
+ "ruleId": "cobol-value-credential",
814
+ "framework": "dora",
815
+ "clause": "Article 9(4)(d)",
816
+ "title": "Protection and prevention",
817
+ "rationale": "The rule reports: Credential pattern: cobol value credential. That exposes an authentication secret in a file, defeating the authentication mechanisms and key protection this clause requires.",
818
+ "source": {
819
+ "doc": "dora",
820
+ "retrieved": "2026-09-20",
821
+ "quote": "implement policies and protocols for strong authentication mechanisms, based on relevant standards and dedicated control systems, and protection measures of cryptographic keys"
822
+ }
823
+ },
824
+ {
825
+ "kind": "compliance",
826
+ "ruleId": "compile-undefined-name",
827
+ "framework": "dora",
828
+ "clause": "Article 8(2)",
829
+ "title": "Identification",
830
+ "rationale": "The rule reports: A program uses names that nothing it declares or copies defines, so it cannot compile. That is a source of ICT risk in a business-supporting function, identified by reading the source rather than by asking the team that maintains it.",
831
+ "source": {
832
+ "doc": "dora",
833
+ "retrieved": "2026-09-20",
834
+ "quote": "identify all sources of ICT risk, in particular the risk exposure to and from other financial entities, and assess cyber threats and ICT vulnerabilities relevant to their ICT supported business functions"
835
+ }
836
+ },
837
+ {
838
+ "kind": "compliance",
839
+ "ruleId": "copybook-shadowed",
840
+ "framework": "dora",
841
+ "clause": "Article 8(4)",
842
+ "title": "Identification",
843
+ "rationale": "The rule reports: Two copybooks with different contents answer to the same name, and programs resolve it to different files. That is an interdependency between assets which no single file records, and mapping it is what this clause asks for.",
844
+ "source": {
845
+ "doc": "dora",
846
+ "retrieved": "2026-09-20",
847
+ "quote": "map the configuration of the information assets and ICT assets and the links and interdependencies between the different information assets and ICT assets"
848
+ }
849
+ },
850
+ {
851
+ "kind": "compliance",
852
+ "ruleId": "copybook-shadows-system",
853
+ "framework": "dora",
854
+ "clause": "Article 8(4)",
855
+ "title": "Identification",
856
+ "rationale": "The rule reports: A copybook in the repository has the name of a system copybook, and is found before it. That is an interdependency between assets which no single file records, and mapping it is what this clause asks for.",
857
+ "source": {
858
+ "doc": "dora",
859
+ "retrieved": "2026-09-20",
860
+ "quote": "map the configuration of the information assets and ICT assets and the links and interdependencies between the different information assets and ICT assets"
861
+ }
862
+ },
863
+ {
864
+ "kind": "compliance",
865
+ "ruleId": "csd-defines-diagnostic-transaction",
866
+ "framework": "dora",
867
+ "clause": "Article 9(4)(c)",
868
+ "title": "Protection and prevention",
869
+ "rationale": "The rule reports: A definition in this repository installs one of the CICS diagnostic transactions. That grants or alters access rights outside the policy controls this clause requires be soundly administered.",
870
+ "source": {
871
+ "doc": "dora",
872
+ "retrieved": "2026-09-20",
873
+ "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"
874
+ }
875
+ },
876
+ {
877
+ "kind": "compliance",
878
+ "ruleId": "csd-transaction-without-command-security",
879
+ "framework": "dora",
880
+ "clause": "Article 9(4)(c)",
881
+ "title": "Protection and prevention",
882
+ "rationale": "The rule reports: A transaction whose program issues system commands runs without command security. That grants or alters access rights outside the policy controls this clause requires be soundly administered.",
883
+ "source": {
884
+ "doc": "dora",
885
+ "retrieved": "2026-09-20",
886
+ "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"
887
+ }
888
+ },
889
+ {
890
+ "kind": "compliance",
891
+ "ruleId": "database-to-cics-dynamic-transfer",
892
+ "framework": "dora",
893
+ "clause": "Article 9(3)(b)",
894
+ "title": "Protection and prevention",
895
+ "rationale": "The rule reports: A database value decides which program CICS transfers to. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
896
+ "source": {
897
+ "doc": "dora",
898
+ "retrieved": "2026-09-20",
899
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
900
+ }
901
+ },
902
+ {
903
+ "kind": "compliance",
904
+ "ruleId": "database-to-dynamic-file-path",
905
+ "framework": "dora",
906
+ "clause": "Article 9(3)(b)",
907
+ "title": "Protection and prevention",
908
+ "rationale": "The rule reports: A database value decides which file is opened. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
909
+ "source": {
910
+ "doc": "dora",
911
+ "retrieved": "2026-09-20",
912
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
913
+ }
914
+ },
915
+ {
916
+ "kind": "compliance",
917
+ "ruleId": "database-to-dynamic-program-load",
918
+ "framework": "dora",
919
+ "clause": "Article 9(3)(b)",
920
+ "title": "Protection and prevention",
921
+ "rationale": "The rule reports: A database value decides which program is called. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
922
+ "source": {
923
+ "doc": "dora",
924
+ "retrieved": "2026-09-20",
925
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
926
+ }
927
+ },
928
+ {
929
+ "kind": "compliance",
930
+ "ruleId": "database-to-dynamic-sql",
931
+ "framework": "dora",
932
+ "clause": "Article 9(3)(b)",
933
+ "title": "Protection and prevention",
934
+ "rationale": "The rule reports: A database value reaches dynamic SQL. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
935
+ "source": {
936
+ "doc": "dora",
937
+ "retrieved": "2026-09-20",
938
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
939
+ }
940
+ },
941
+ {
942
+ "kind": "compliance",
943
+ "ruleId": "database-to-extrapartition-queue",
944
+ "framework": "dora",
945
+ "clause": "Article 9(3)(a)",
946
+ "title": "Protection and prevention",
947
+ "rationale": "The rule reports: A database value is written to a transient-data queue that leaves the region. That is data leaving through a channel the program opened itself, which bears directly on the security of the means of transfer.",
948
+ "source": {
949
+ "doc": "dora",
950
+ "retrieved": "2026-09-20",
951
+ "quote": "ensure the security of the means of transfer of data"
952
+ }
953
+ },
954
+ {
955
+ "kind": "compliance",
956
+ "ruleId": "database-to-http-header",
957
+ "framework": "dora",
958
+ "clause": "Article 9(3)(b)",
959
+ "title": "Protection and prevention",
960
+ "rationale": "The rule reports: A database value is written into a header of the response. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
961
+ "source": {
962
+ "doc": "dora",
963
+ "retrieved": "2026-09-20",
964
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
965
+ }
966
+ },
967
+ {
968
+ "kind": "compliance",
969
+ "ruleId": "database-to-internal-reader",
970
+ "framework": "dora",
971
+ "clause": "Article 9(3)(b)",
972
+ "title": "Protection and prevention",
973
+ "rationale": "The rule reports: A database value is written into a job the internal reader submits. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
974
+ "source": {
975
+ "doc": "dora",
976
+ "retrieved": "2026-09-20",
977
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
978
+ }
979
+ },
980
+ {
981
+ "kind": "compliance",
982
+ "ruleId": "database-to-message-queue",
983
+ "framework": "dora",
984
+ "clause": "Article 9(3)(a)",
985
+ "title": "Protection and prevention",
986
+ "rationale": "The rule reports: A database value is put on a message queue. That is data leaving through a channel the program opened itself, which bears directly on the security of the means of transfer.",
987
+ "source": {
988
+ "doc": "dora",
989
+ "retrieved": "2026-09-20",
990
+ "quote": "ensure the security of the means of transfer of data"
991
+ }
992
+ },
993
+ {
994
+ "kind": "compliance",
995
+ "ruleId": "database-to-os-command",
996
+ "framework": "dora",
997
+ "clause": "Article 9(3)(b)",
998
+ "title": "Protection and prevention",
999
+ "rationale": "The rule reports: A database value reaches an operating-system command routine. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
1000
+ "source": {
1001
+ "doc": "dora",
1002
+ "retrieved": "2026-09-20",
1003
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1004
+ }
1005
+ },
1006
+ {
1007
+ "kind": "compliance",
1008
+ "ruleId": "database-to-outbound-host",
1009
+ "framework": "dora",
1010
+ "clause": "Article 9(3)(b)",
1011
+ "title": "Protection and prevention",
1012
+ "rationale": "The rule reports: A database value decides the host or path this program sends a request to. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
1013
+ "source": {
1014
+ "doc": "dora",
1015
+ "retrieved": "2026-09-20",
1016
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1017
+ }
1018
+ },
1019
+ {
1020
+ "kind": "compliance",
1021
+ "ruleId": "database-to-outbound-http",
1022
+ "framework": "dora",
1023
+ "clause": "Article 9(3)(a)",
1024
+ "title": "Protection and prevention",
1025
+ "rationale": "The rule reports: A database value is sent to a remote server over HTTP. That is data leaving through a channel the program opened itself, which bears directly on the security of the means of transfer.",
1026
+ "source": {
1027
+ "doc": "dora",
1028
+ "retrieved": "2026-09-20",
1029
+ "quote": "ensure the security of the means of transfer of data"
1030
+ }
1031
+ },
1032
+ {
1033
+ "kind": "compliance",
1034
+ "ruleId": "database-to-queue-name",
1035
+ "framework": "dora",
1036
+ "clause": "Article 9(3)(b)",
1037
+ "title": "Protection and prevention",
1038
+ "rationale": "The rule reports: A database value names the queue a command reads, writes or deletes. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
1039
+ "source": {
1040
+ "doc": "dora",
1041
+ "retrieved": "2026-09-20",
1042
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1043
+ }
1044
+ },
1045
+ {
1046
+ "kind": "compliance",
1047
+ "ruleId": "database-to-socket-send",
1048
+ "framework": "dora",
1049
+ "clause": "Article 9(3)(a)",
1050
+ "title": "Protection and prevention",
1051
+ "rationale": "The rule reports: A database value is written to a network socket. That is data leaving through a channel the program opened itself, which bears directly on the security of the means of transfer.",
1052
+ "source": {
1053
+ "doc": "dora",
1054
+ "retrieved": "2026-09-20",
1055
+ "quote": "ensure the security of the means of transfer of data"
1056
+ }
1057
+ },
1058
+ {
1059
+ "kind": "compliance",
1060
+ "ruleId": "database-to-web-response",
1061
+ "framework": "dora",
1062
+ "clause": "Article 9(3)(b)",
1063
+ "title": "Protection and prevention",
1064
+ "rationale": "The rule reports: A database value is written into the response this program returns. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
1065
+ "source": {
1066
+ "doc": "dora",
1067
+ "retrieved": "2026-09-20",
1068
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1069
+ }
1070
+ },
1071
+ {
1072
+ "kind": "compliance",
1073
+ "ruleId": "diff-interface-layout-changed",
1074
+ "framework": "dora",
1075
+ "clause": "Article 8(3)",
1076
+ "title": "Identification",
1077
+ "rationale": "The rule reports: A record this program passes to or receives from another program changed size or position. That is what a change reaches, which is the assessment this clause requires on each major change, performed per change rather than per year.",
1078
+ "source": {
1079
+ "doc": "dora",
1080
+ "retrieved": "2026-09-20",
1081
+ "quote": "perform a risk assessment upon each major change in the network and information system infrastructure, in the processes or procedures affecting their ICT supported business functions, information assets or ICT assets"
1082
+ }
1083
+ },
1084
+ {
1085
+ "kind": "compliance",
1086
+ "ruleId": "diff-layout-changed",
1087
+ "framework": "dora",
1088
+ "clause": "Article 8(3)",
1089
+ "title": "Identification",
1090
+ "rationale": "The rule reports: Fields in this program changed size or position. That is what a change reaches, which is the assessment this clause requires on each major change, performed per change rather than per year.",
1091
+ "source": {
1092
+ "doc": "dora",
1093
+ "retrieved": "2026-09-20",
1094
+ "quote": "perform a risk assessment upon each major change in the network and information system infrastructure, in the processes or procedures affecting their ICT supported business functions, information assets or ICT assets"
1095
+ }
1096
+ },
1097
+ {
1098
+ "kind": "compliance",
1099
+ "ruleId": "diff-layout-changed-unedited-program",
1100
+ "framework": "dora",
1101
+ "clause": "Article 8(3)",
1102
+ "title": "Identification",
1103
+ "rationale": "The rule reports: Fields in this program changed size or position although its own source did not change. That is what a change reaches, which is the assessment this clause requires on each major change, performed per change rather than per year.",
1104
+ "source": {
1105
+ "doc": "dora",
1106
+ "retrieved": "2026-09-20",
1107
+ "quote": "perform a risk assessment upon each major change in the network and information system infrastructure, in the processes or procedures affecting their ICT supported business functions, information assets or ICT assets"
1108
+ }
1109
+ },
1110
+ {
1111
+ "kind": "compliance",
1112
+ "ruleId": "diff-new-call-target",
1113
+ "framework": "dora",
1114
+ "clause": "Article 8(3)",
1115
+ "title": "Identification",
1116
+ "rationale": "The rule reports: The change makes this program call or transfer to a program it did not before. That is what a change reaches, which is the assessment this clause requires on each major change, performed per change rather than per year.",
1117
+ "source": {
1118
+ "doc": "dora",
1119
+ "retrieved": "2026-09-20",
1120
+ "quote": "perform a risk assessment upon each major change in the network and information system infrastructure, in the processes or procedures affecting their ICT supported business functions, information assets or ICT assets"
1121
+ }
1122
+ },
1123
+ {
1124
+ "kind": "compliance",
1125
+ "ruleId": "diff-new-dynamic-call",
1126
+ "framework": "dora",
1127
+ "clause": "Article 8(3)",
1128
+ "title": "Identification",
1129
+ "rationale": "The rule reports: The change adds a call or transfer whose target is a variable. That is what a change reaches, which is the assessment this clause requires on each major change, performed per change rather than per year.",
1130
+ "source": {
1131
+ "doc": "dora",
1132
+ "retrieved": "2026-09-20",
1133
+ "quote": "perform a risk assessment upon each major change in the network and information system infrastructure, in the processes or procedures affecting their ICT supported business functions, information assets or ICT assets"
1134
+ }
1135
+ },
1136
+ {
1137
+ "kind": "compliance",
1138
+ "ruleId": "display-echoes-a-credential",
1139
+ "framework": "dora",
1140
+ "clause": "Article 9(3)(c)",
1141
+ "title": "Protection and prevention",
1142
+ "rationale": "The rule reports: A program displays a credential back to the terminal or HTTP request that supplied it. That risks the loss of data and the impairment of its integrity, which this clause requires be prevented.",
1143
+ "source": {
1144
+ "doc": "dora",
1145
+ "retrieved": "2026-09-20",
1146
+ "quote": "prevent the lack of availability, the impairment of the authenticity and integrity, the breaches of confidentiality and the loss of data"
1147
+ }
1148
+ },
1149
+ {
1150
+ "kind": "compliance",
1151
+ "ruleId": "embedded-sql-connect-password",
1152
+ "framework": "dora",
1153
+ "clause": "Article 9(4)(d)",
1154
+ "title": "Protection and prevention",
1155
+ "rationale": "The rule reports: Credential pattern: embedded sql connect password. That exposes an authentication secret in a file, defeating the authentication mechanisms and key protection this clause requires.",
1156
+ "source": {
1157
+ "doc": "dora",
1158
+ "retrieved": "2026-09-20",
1159
+ "quote": "implement policies and protocols for strong authentication mechanisms, based on relevant standards and dedicated control systems, and protection measures of cryptographic keys"
1160
+ }
1161
+ },
1162
+ {
1163
+ "kind": "compliance",
1164
+ "ruleId": "encoded-blob",
1165
+ "framework": "dora",
1166
+ "clause": "Article 9(3)(b)",
1167
+ "title": "Protection and prevention",
1168
+ "rationale": "The rule reports: A long encoded run sits in a comment or literal. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
1169
+ "source": {
1170
+ "doc": "dora",
1171
+ "retrieved": "2026-09-20",
1172
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1173
+ }
1174
+ },
1175
+ {
1176
+ "kind": "compliance",
1177
+ "ruleId": "file-record-to-cics-dynamic-transfer",
1178
+ "framework": "dora",
1179
+ "clause": "Article 9(3)(b)",
1180
+ "title": "Protection and prevention",
1181
+ "rationale": "The rule reports: A file record decides which program CICS transfers to. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
1182
+ "source": {
1183
+ "doc": "dora",
1184
+ "retrieved": "2026-09-20",
1185
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1186
+ }
1187
+ },
1188
+ {
1189
+ "kind": "compliance",
1190
+ "ruleId": "file-record-to-dynamic-file-path",
1191
+ "framework": "dora",
1192
+ "clause": "Article 9(3)(b)",
1193
+ "title": "Protection and prevention",
1194
+ "rationale": "The rule reports: A file record decides which file is opened. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
1195
+ "source": {
1196
+ "doc": "dora",
1197
+ "retrieved": "2026-09-20",
1198
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1199
+ }
1200
+ },
1201
+ {
1202
+ "kind": "compliance",
1203
+ "ruleId": "file-record-to-dynamic-program-load",
1204
+ "framework": "dora",
1205
+ "clause": "Article 9(3)(b)",
1206
+ "title": "Protection and prevention",
1207
+ "rationale": "The rule reports: A file record decides which program is called. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
1208
+ "source": {
1209
+ "doc": "dora",
1210
+ "retrieved": "2026-09-20",
1211
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1212
+ }
1213
+ },
1214
+ {
1215
+ "kind": "compliance",
1216
+ "ruleId": "file-record-to-dynamic-sql",
1217
+ "framework": "dora",
1218
+ "clause": "Article 9(3)(b)",
1219
+ "title": "Protection and prevention",
1220
+ "rationale": "The rule reports: A file record reaches dynamic SQL. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
1221
+ "source": {
1222
+ "doc": "dora",
1223
+ "retrieved": "2026-09-20",
1224
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1225
+ }
1226
+ },
1227
+ {
1228
+ "kind": "compliance",
1229
+ "ruleId": "file-record-to-extrapartition-queue",
1230
+ "framework": "dora",
1231
+ "clause": "Article 9(3)(a)",
1232
+ "title": "Protection and prevention",
1233
+ "rationale": "The rule reports: A file record is written to a transient-data queue that leaves the region. That is data leaving through a channel the program opened itself, which bears directly on the security of the means of transfer.",
1234
+ "source": {
1235
+ "doc": "dora",
1236
+ "retrieved": "2026-09-20",
1237
+ "quote": "ensure the security of the means of transfer of data"
1238
+ }
1239
+ },
1240
+ {
1241
+ "kind": "compliance",
1242
+ "ruleId": "file-record-to-http-header",
1243
+ "framework": "dora",
1244
+ "clause": "Article 9(3)(b)",
1245
+ "title": "Protection and prevention",
1246
+ "rationale": "The rule reports: A file record is written into a header of the response. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
1247
+ "source": {
1248
+ "doc": "dora",
1249
+ "retrieved": "2026-09-20",
1250
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1251
+ }
1252
+ },
1253
+ {
1254
+ "kind": "compliance",
1255
+ "ruleId": "file-record-to-internal-reader",
1256
+ "framework": "dora",
1257
+ "clause": "Article 9(3)(b)",
1258
+ "title": "Protection and prevention",
1259
+ "rationale": "The rule reports: A file record is written into a job the internal reader submits. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
1260
+ "source": {
1261
+ "doc": "dora",
1262
+ "retrieved": "2026-09-20",
1263
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1264
+ }
1265
+ },
1266
+ {
1267
+ "kind": "compliance",
1268
+ "ruleId": "file-record-to-message-queue",
1269
+ "framework": "dora",
1270
+ "clause": "Article 9(3)(a)",
1271
+ "title": "Protection and prevention",
1272
+ "rationale": "The rule reports: A file record is put on a message queue. That is data leaving through a channel the program opened itself, which bears directly on the security of the means of transfer.",
1273
+ "source": {
1274
+ "doc": "dora",
1275
+ "retrieved": "2026-09-20",
1276
+ "quote": "ensure the security of the means of transfer of data"
1277
+ }
1278
+ },
1279
+ {
1280
+ "kind": "compliance",
1281
+ "ruleId": "file-record-to-os-command",
1282
+ "framework": "dora",
1283
+ "clause": "Article 9(3)(b)",
1284
+ "title": "Protection and prevention",
1285
+ "rationale": "The rule reports: A file record reaches an operating-system command routine. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
1286
+ "source": {
1287
+ "doc": "dora",
1288
+ "retrieved": "2026-09-20",
1289
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1290
+ }
1291
+ },
1292
+ {
1293
+ "kind": "compliance",
1294
+ "ruleId": "file-record-to-outbound-host",
1295
+ "framework": "dora",
1296
+ "clause": "Article 9(3)(b)",
1297
+ "title": "Protection and prevention",
1298
+ "rationale": "The rule reports: A file record decides the host or path this program sends a request to. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
1299
+ "source": {
1300
+ "doc": "dora",
1301
+ "retrieved": "2026-09-20",
1302
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1303
+ }
1304
+ },
1305
+ {
1306
+ "kind": "compliance",
1307
+ "ruleId": "file-record-to-outbound-http",
1308
+ "framework": "dora",
1309
+ "clause": "Article 9(3)(a)",
1310
+ "title": "Protection and prevention",
1311
+ "rationale": "The rule reports: A file record is sent to a remote server over HTTP. That is data leaving through a channel the program opened itself, which bears directly on the security of the means of transfer.",
1312
+ "source": {
1313
+ "doc": "dora",
1314
+ "retrieved": "2026-09-20",
1315
+ "quote": "ensure the security of the means of transfer of data"
1316
+ }
1317
+ },
1318
+ {
1319
+ "kind": "compliance",
1320
+ "ruleId": "file-record-to-queue-name",
1321
+ "framework": "dora",
1322
+ "clause": "Article 9(3)(b)",
1323
+ "title": "Protection and prevention",
1324
+ "rationale": "The rule reports: A file record names the queue a command reads, writes or deletes. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
1325
+ "source": {
1326
+ "doc": "dora",
1327
+ "retrieved": "2026-09-20",
1328
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1329
+ }
1330
+ },
1331
+ {
1332
+ "kind": "compliance",
1333
+ "ruleId": "file-record-to-socket-send",
1334
+ "framework": "dora",
1335
+ "clause": "Article 9(3)(a)",
1336
+ "title": "Protection and prevention",
1337
+ "rationale": "The rule reports: A file record is written to a network socket. That is data leaving through a channel the program opened itself, which bears directly on the security of the means of transfer.",
1338
+ "source": {
1339
+ "doc": "dora",
1340
+ "retrieved": "2026-09-20",
1341
+ "quote": "ensure the security of the means of transfer of data"
1342
+ }
1343
+ },
1344
+ {
1345
+ "kind": "compliance",
1346
+ "ruleId": "file-record-to-web-response",
1347
+ "framework": "dora",
1348
+ "clause": "Article 9(3)(b)",
1349
+ "title": "Protection and prevention",
1350
+ "rationale": "The rule reports: A file record is written into the response this program returns. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
1351
+ "source": {
1352
+ "doc": "dora",
1353
+ "retrieved": "2026-09-20",
1354
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1355
+ }
1356
+ },
1357
+ {
1358
+ "kind": "compliance",
1359
+ "ruleId": "hidden-payload-in-identification-area",
1360
+ "framework": "dora",
1361
+ "clause": "Article 9(3)(b)",
1362
+ "title": "Protection and prevention",
1363
+ "rationale": "The rule reports: Columns 73 to 80, which the compiler ignores, carry a payload rather than a change tag. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
1364
+ "source": {
1365
+ "doc": "dora",
1366
+ "retrieved": "2026-09-20",
1367
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1368
+ }
1369
+ },
1370
+ {
1371
+ "kind": "compliance",
1372
+ "ruleId": "hidden-payload-in-sequence-area",
1373
+ "framework": "dora",
1374
+ "clause": "Article 9(3)(b)",
1375
+ "title": "Protection and prevention",
1376
+ "rationale": "The rule reports: The sequence area carries varying text rather than line numbers or a change tag. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
1377
+ "source": {
1378
+ "doc": "dora",
1379
+ "retrieved": "2026-09-20",
1380
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1381
+ }
1382
+ },
1383
+ {
1384
+ "kind": "compliance",
1385
+ "ruleId": "jcl-dlm-hides-instream",
1386
+ "framework": "dora",
1387
+ "clause": "Article 9(3)(b)",
1388
+ "title": "Protection and prevention",
1389
+ "rationale": "The rule reports: In-stream data uses a non-default delimiter, so it does not end where a line-by-line reader expects. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
1390
+ "source": {
1391
+ "doc": "dora",
1392
+ "retrieved": "2026-09-20",
1393
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1394
+ }
1395
+ },
1396
+ {
1397
+ "kind": "compliance",
1398
+ "ruleId": "jcl-exec-pgm-unresolved",
1399
+ "framework": "dora",
1400
+ "clause": "Article 8(6)",
1401
+ "title": "Identification",
1402
+ "rationale": "The rule reports: A step runs a program that is neither a system utility nor defined by any source in this tree. That is an inventory gap - the job runs something the inventory does not account for - and this clause requires the inventory be kept current.",
1403
+ "source": {
1404
+ "doc": "dora",
1405
+ "retrieved": "2026-09-20",
1406
+ "quote": "maintain relevant inventories and update them periodically and every time any major change as referred to in paragraph 3 occurs"
1407
+ }
1408
+ },
1409
+ {
1410
+ "kind": "compliance",
1411
+ "ruleId": "jcl-ftp-cleartext",
1412
+ "framework": "dora",
1413
+ "clause": "Article 9(3)(a)",
1414
+ "title": "Protection and prevention",
1415
+ "rationale": "The rule reports: A step runs FTP with no TLS option on its PARM or in its in-stream configuration, so its logon and data cross the network in cleartext. That is data leaving through a channel the program opened itself, which bears directly on the security of the means of transfer.",
1416
+ "source": {
1417
+ "doc": "dora",
1418
+ "retrieved": "2026-09-20",
1419
+ "quote": "ensure the security of the means of transfer of data"
1420
+ }
1421
+ },
1422
+ {
1423
+ "kind": "compliance",
1424
+ "ruleId": "jcl-ftp-sends-production-dataset",
1425
+ "framework": "dora",
1426
+ "clause": "Article 9(3)(a)",
1427
+ "title": "Protection and prevention",
1428
+ "rationale": "The rule reports: A step sends a dataset the estate calls production off the system by FTP. That is data leaving through a channel the program opened itself, which bears directly on the security of the means of transfer.",
1429
+ "source": {
1430
+ "doc": "dora",
1431
+ "retrieved": "2026-09-20",
1432
+ "quote": "ensure the security of the means of transfer of data"
1433
+ }
1434
+ },
1435
+ {
1436
+ "kind": "compliance",
1437
+ "ruleId": "jcl-instream-credential",
1438
+ "framework": "dora",
1439
+ "clause": "Article 9(4)(d)",
1440
+ "title": "Protection and prevention",
1441
+ "rationale": "The rule reports: A password or pass phrase is set in in-stream job data. That exposes an authentication secret in a file, defeating the authentication mechanisms and key protection this clause requires.",
1442
+ "source": {
1443
+ "doc": "dora",
1444
+ "retrieved": "2026-09-20",
1445
+ "quote": "implement policies and protocols for strong authentication mechanisms, based on relevant standards and dedicated control systems, and protection measures of cryptographic keys"
1446
+ }
1447
+ },
1448
+ {
1449
+ "kind": "compliance",
1450
+ "ruleId": "jcl-instream-destructive",
1451
+ "framework": "dora",
1452
+ "clause": "Article 9(3)(c)",
1453
+ "title": "Protection and prevention",
1454
+ "rationale": "The rule reports: In-stream job data deletes or overwrites a catalogued dataset. That risks the loss of data and the impairment of its integrity, which this clause requires be prevented.",
1455
+ "source": {
1456
+ "doc": "dora",
1457
+ "retrieved": "2026-09-20",
1458
+ "quote": "prevent the lack of availability, the impairment of the authenticity and integrity, the breaches of confidentiality and the loss of data"
1459
+ }
1460
+ },
1461
+ {
1462
+ "kind": "compliance",
1463
+ "ruleId": "jcl-instream-security-command",
1464
+ "framework": "dora",
1465
+ "clause": "Article 9(4)(c)",
1466
+ "title": "Protection and prevention",
1467
+ "rationale": "The rule reports: In-stream job data issues security product commands that grant or alter authority. That grants or alters access rights outside the policy controls this clause requires be soundly administered.",
1468
+ "source": {
1469
+ "doc": "dora",
1470
+ "retrieved": "2026-09-20",
1471
+ "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"
1472
+ }
1473
+ },
1474
+ {
1475
+ "kind": "compliance",
1476
+ "ruleId": "jcl-instream-to-arithmetic",
1477
+ "framework": "dora",
1478
+ "clause": "Article 9(3)(b)",
1479
+ "title": "Protection and prevention",
1480
+ "rationale": "The rule reports: In-stream job data reaches arithmetic on a decimal field, where bytes that are not digits abend the program. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
1481
+ "source": {
1482
+ "doc": "dora",
1483
+ "retrieved": "2026-09-20",
1484
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1485
+ }
1486
+ },
1487
+ {
1488
+ "kind": "compliance",
1489
+ "ruleId": "jcl-instream-to-cics-dynamic-transfer",
1490
+ "framework": "dora",
1491
+ "clause": "Article 9(3)(b)",
1492
+ "title": "Protection and prevention",
1493
+ "rationale": "The rule reports: In-stream job data decides which program CICS transfers to. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
1494
+ "source": {
1495
+ "doc": "dora",
1496
+ "retrieved": "2026-09-20",
1497
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1498
+ }
1499
+ },
1500
+ {
1501
+ "kind": "compliance",
1502
+ "ruleId": "jcl-instream-to-dynamic-file-path",
1503
+ "framework": "dora",
1504
+ "clause": "Article 9(3)(b)",
1505
+ "title": "Protection and prevention",
1506
+ "rationale": "The rule reports: In-stream job data decides which file is opened. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
1507
+ "source": {
1508
+ "doc": "dora",
1509
+ "retrieved": "2026-09-20",
1510
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1511
+ }
1512
+ },
1513
+ {
1514
+ "kind": "compliance",
1515
+ "ruleId": "jcl-instream-to-dynamic-program-load",
1516
+ "framework": "dora",
1517
+ "clause": "Article 9(3)(b)",
1518
+ "title": "Protection and prevention",
1519
+ "rationale": "The rule reports: In-stream job data decides which program is called. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
1520
+ "source": {
1521
+ "doc": "dora",
1522
+ "retrieved": "2026-09-20",
1523
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1524
+ }
1525
+ },
1526
+ {
1527
+ "kind": "compliance",
1528
+ "ruleId": "jcl-instream-to-dynamic-sql",
1529
+ "framework": "dora",
1530
+ "clause": "Article 9(3)(b)",
1531
+ "title": "Protection and prevention",
1532
+ "rationale": "The rule reports: In-stream job data reaches dynamic SQL. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
1533
+ "source": {
1534
+ "doc": "dora",
1535
+ "retrieved": "2026-09-20",
1536
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1537
+ }
1538
+ },
1539
+ {
1540
+ "kind": "compliance",
1541
+ "ruleId": "jcl-instream-to-internal-reader",
1542
+ "framework": "dora",
1543
+ "clause": "Article 9(3)(b)",
1544
+ "title": "Protection and prevention",
1545
+ "rationale": "The rule reports: In-stream job data is written into a job the internal reader submits. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
1546
+ "source": {
1547
+ "doc": "dora",
1548
+ "retrieved": "2026-09-20",
1549
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1550
+ }
1551
+ },
1552
+ {
1553
+ "kind": "compliance",
1554
+ "ruleId": "jcl-instream-to-loop-bound",
1555
+ "framework": "dora",
1556
+ "clause": "Article 9(3)(b)",
1557
+ "title": "Protection and prevention",
1558
+ "rationale": "The rule reports: In-stream job data decides how far a loop that subscripts a table runs. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
1559
+ "source": {
1560
+ "doc": "dora",
1561
+ "retrieved": "2026-09-20",
1562
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1563
+ }
1564
+ },
1565
+ {
1566
+ "kind": "compliance",
1567
+ "ruleId": "jcl-instream-to-occurs-depending-count",
1568
+ "framework": "dora",
1569
+ "clause": "Article 9(3)(b)",
1570
+ "title": "Protection and prevention",
1571
+ "rationale": "The rule reports: In-stream job data decides how many entries an OCCURS DEPENDING ON table holds. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
1572
+ "source": {
1573
+ "doc": "dora",
1574
+ "retrieved": "2026-09-20",
1575
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1576
+ }
1577
+ },
1578
+ {
1579
+ "kind": "compliance",
1580
+ "ruleId": "jcl-instream-to-os-command",
1581
+ "framework": "dora",
1582
+ "clause": "Article 9(3)(b)",
1583
+ "title": "Protection and prevention",
1584
+ "rationale": "The rule reports: In-stream job data reaches an operating-system command routine. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
1585
+ "source": {
1586
+ "doc": "dora",
1587
+ "retrieved": "2026-09-20",
1588
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1589
+ }
1590
+ },
1591
+ {
1592
+ "kind": "compliance",
1593
+ "ruleId": "jcl-instream-to-reference-modification",
1594
+ "framework": "dora",
1595
+ "clause": "Article 9(3)(b)",
1596
+ "title": "Protection and prevention",
1597
+ "rationale": "The rule reports: In-stream job data decides where a reference modification starts or how long it is. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
1598
+ "source": {
1599
+ "doc": "dora",
1600
+ "retrieved": "2026-09-20",
1601
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1602
+ }
1603
+ },
1604
+ {
1605
+ "kind": "compliance",
1606
+ "ruleId": "jcl-instream-to-subscript",
1607
+ "framework": "dora",
1608
+ "clause": "Article 9(3)(b)",
1609
+ "title": "Protection and prevention",
1610
+ "rationale": "The rule reports: In-stream job data is used as a subscript. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
1611
+ "source": {
1612
+ "doc": "dora",
1613
+ "retrieved": "2026-09-20",
1614
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1615
+ }
1616
+ },
1617
+ {
1618
+ "kind": "compliance",
1619
+ "ruleId": "jcl-parm-is-an-entry-point",
1620
+ "framework": "dora",
1621
+ "clause": "Article 8(2)",
1622
+ "title": "Identification",
1623
+ "rationale": "The rule reports: A step passes PARM= to a program in this tree, which the flow rules follow as an untrusted source. That is a source of ICT risk in a business-supporting function, identified by reading the source rather than by asking the team that maintains it.",
1624
+ "source": {
1625
+ "doc": "dora",
1626
+ "retrieved": "2026-09-20",
1627
+ "quote": "identify all sources of ICT risk, in particular the risk exposure to and from other financial entities, and assess cyber threats and ICT vulnerabilities relevant to their ICT supported business functions"
1628
+ }
1629
+ },
1630
+ {
1631
+ "kind": "compliance",
1632
+ "ruleId": "jcl-parm-to-arithmetic",
1633
+ "framework": "dora",
1634
+ "clause": "Article 9(3)(b)",
1635
+ "title": "Protection and prevention",
1636
+ "rationale": "The rule reports: A JCL PARM reaches arithmetic on a decimal field, where bytes that are not digits abend the program. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
1637
+ "source": {
1638
+ "doc": "dora",
1639
+ "retrieved": "2026-09-20",
1640
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1641
+ }
1642
+ },
1643
+ {
1644
+ "kind": "compliance",
1645
+ "ruleId": "jcl-parm-to-cics-dynamic-transfer",
1646
+ "framework": "dora",
1647
+ "clause": "Article 9(3)(b)",
1648
+ "title": "Protection and prevention",
1649
+ "rationale": "The rule reports: A JCL PARM decides which program CICS transfers to. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
1650
+ "source": {
1651
+ "doc": "dora",
1652
+ "retrieved": "2026-09-20",
1653
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1654
+ }
1655
+ },
1656
+ {
1657
+ "kind": "compliance",
1658
+ "ruleId": "jcl-parm-to-dynamic-file-path",
1659
+ "framework": "dora",
1660
+ "clause": "Article 9(3)(b)",
1661
+ "title": "Protection and prevention",
1662
+ "rationale": "The rule reports: A JCL PARM decides which file is opened. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
1663
+ "source": {
1664
+ "doc": "dora",
1665
+ "retrieved": "2026-09-20",
1666
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1667
+ }
1668
+ },
1669
+ {
1670
+ "kind": "compliance",
1671
+ "ruleId": "jcl-parm-to-dynamic-program-load",
1672
+ "framework": "dora",
1673
+ "clause": "Article 9(3)(b)",
1674
+ "title": "Protection and prevention",
1675
+ "rationale": "The rule reports: A JCL PARM decides which program is called. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
1676
+ "source": {
1677
+ "doc": "dora",
1678
+ "retrieved": "2026-09-20",
1679
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1680
+ }
1681
+ },
1682
+ {
1683
+ "kind": "compliance",
1684
+ "ruleId": "jcl-parm-to-dynamic-sql",
1685
+ "framework": "dora",
1686
+ "clause": "Article 9(3)(b)",
1687
+ "title": "Protection and prevention",
1688
+ "rationale": "The rule reports: A JCL PARM reaches dynamic SQL. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
1689
+ "source": {
1690
+ "doc": "dora",
1691
+ "retrieved": "2026-09-20",
1692
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1693
+ }
1694
+ },
1695
+ {
1696
+ "kind": "compliance",
1697
+ "ruleId": "jcl-parm-to-internal-reader",
1698
+ "framework": "dora",
1699
+ "clause": "Article 9(3)(b)",
1700
+ "title": "Protection and prevention",
1701
+ "rationale": "The rule reports: A JCL PARM is written into a job the internal reader submits. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
1702
+ "source": {
1703
+ "doc": "dora",
1704
+ "retrieved": "2026-09-20",
1705
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1706
+ }
1707
+ },
1708
+ {
1709
+ "kind": "compliance",
1710
+ "ruleId": "jcl-parm-to-loop-bound",
1711
+ "framework": "dora",
1712
+ "clause": "Article 9(3)(b)",
1713
+ "title": "Protection and prevention",
1714
+ "rationale": "The rule reports: A JCL PARM decides how far a loop that subscripts a table runs. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
1715
+ "source": {
1716
+ "doc": "dora",
1717
+ "retrieved": "2026-09-20",
1718
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1719
+ }
1720
+ },
1721
+ {
1722
+ "kind": "compliance",
1723
+ "ruleId": "jcl-parm-to-occurs-depending-count",
1724
+ "framework": "dora",
1725
+ "clause": "Article 9(3)(b)",
1726
+ "title": "Protection and prevention",
1727
+ "rationale": "The rule reports: A JCL PARM decides how many entries an OCCURS DEPENDING ON table holds. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
1728
+ "source": {
1729
+ "doc": "dora",
1730
+ "retrieved": "2026-09-20",
1731
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1732
+ }
1733
+ },
1734
+ {
1735
+ "kind": "compliance",
1736
+ "ruleId": "jcl-parm-to-os-command",
1737
+ "framework": "dora",
1738
+ "clause": "Article 9(3)(b)",
1739
+ "title": "Protection and prevention",
1740
+ "rationale": "The rule reports: A JCL PARM reaches an operating-system command routine. 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
+ },
1747
+ {
1748
+ "kind": "compliance",
1749
+ "ruleId": "jcl-parm-to-reference-modification",
1750
+ "framework": "dora",
1751
+ "clause": "Article 9(3)(b)",
1752
+ "title": "Protection and prevention",
1753
+ "rationale": "The rule reports: A JCL PARM decides where a reference modification starts or how long it is. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
1754
+ "source": {
1755
+ "doc": "dora",
1756
+ "retrieved": "2026-09-20",
1757
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1758
+ }
1759
+ },
1760
+ {
1761
+ "kind": "compliance",
1762
+ "ruleId": "jcl-parm-to-subscript",
1763
+ "framework": "dora",
1764
+ "clause": "Article 9(3)(b)",
1765
+ "title": "Protection and prevention",
1766
+ "rationale": "The rule reports: A JCL PARM is used as a subscript. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
1767
+ "source": {
1768
+ "doc": "dora",
1769
+ "retrieved": "2026-09-20",
1770
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1771
+ }
1772
+ },
1773
+ {
1774
+ "kind": "compliance",
1775
+ "ruleId": "jcl-racf-password",
1776
+ "framework": "dora",
1777
+ "clause": "Article 9(4)(d)",
1778
+ "title": "Protection and prevention",
1779
+ "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.",
1780
+ "source": {
1781
+ "doc": "dora",
1782
+ "retrieved": "2026-09-20",
1783
+ "quote": "implement policies and protocols for strong authentication mechanisms, based on relevant standards and dedicated control systems, and protection measures of cryptographic keys"
1784
+ }
1785
+ },
1786
+ {
1787
+ "kind": "compliance",
1788
+ "ruleId": "job-loads-from-an-authorised-library",
1789
+ "framework": "dora",
1790
+ "clause": "Article 9(4)(c)",
1791
+ "title": "Protection and prevention",
1792
+ "rationale": "The rule reports: A job loads from a library the estate calls authorised. That grants or alters access rights outside the policy controls this clause requires be soundly administered.",
1793
+ "source": {
1794
+ "doc": "dora",
1795
+ "retrieved": "2026-09-20",
1796
+ "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"
1797
+ }
1798
+ },
1799
+ {
1800
+ "kind": "compliance",
1801
+ "ruleId": "job-reaches-unix-system-services",
1802
+ "framework": "dora",
1803
+ "clause": "Article 9(4)(c)",
1804
+ "title": "Protection and prevention",
1805
+ "rationale": "The rule reports: A job runs a shell through UNIX System Services. That grants or alters access rights outside the policy controls this clause requires be soundly administered.",
1806
+ "source": {
1807
+ "doc": "dora",
1808
+ "retrieved": "2026-09-20",
1809
+ "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"
1810
+ }
1811
+ },
1812
+ {
1813
+ "kind": "compliance",
1814
+ "ruleId": "job-runs-under-another-user",
1815
+ "framework": "dora",
1816
+ "clause": "Article 9(4)(c)",
1817
+ "title": "Protection and prevention",
1818
+ "rationale": "The rule reports: A job names the user it runs as. That grants or alters access rights outside the policy controls this clause requires be soundly administered.",
1819
+ "source": {
1820
+ "doc": "dora",
1821
+ "retrieved": "2026-09-20",
1822
+ "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"
1823
+ }
1824
+ },
1825
+ {
1826
+ "kind": "compliance",
1827
+ "ruleId": "job-unloads-the-security-database",
1828
+ "framework": "dora",
1829
+ "clause": "Article 9(4)(c)",
1830
+ "title": "Protection and prevention",
1831
+ "rationale": "The rule reports: A job unloads the security database. That grants or alters access rights outside the policy controls this clause requires be soundly administered.",
1832
+ "source": {
1833
+ "doc": "dora",
1834
+ "retrieved": "2026-09-20",
1835
+ "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"
1836
+ }
1837
+ },
1838
+ {
1839
+ "kind": "compliance",
1840
+ "ruleId": "job-writes-diagnostic-output-unrestricted",
1841
+ "framework": "dora",
1842
+ "clause": "Article 9(4)(c)",
1843
+ "title": "Protection and prevention",
1844
+ "rationale": "The rule reports: A job writes a dump, trace, log or unload to a dataset the estate has not called restricted. That grants or alters access rights outside the policy controls this clause requires be soundly administered.",
1845
+ "source": {
1846
+ "doc": "dora",
1847
+ "retrieved": "2026-09-20",
1848
+ "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"
1849
+ }
1850
+ },
1851
+ {
1852
+ "kind": "compliance",
1853
+ "ruleId": "log-writes-a-credential",
1854
+ "framework": "dora",
1855
+ "clause": "Article 9(3)(c)",
1856
+ "title": "Protection and prevention",
1857
+ "rationale": "The rule reports: A program writes a field named as a credential into a log. That risks the loss of data and the impairment of its integrity, which this clause requires be prevented.",
1858
+ "source": {
1859
+ "doc": "dora",
1860
+ "retrieved": "2026-09-20",
1861
+ "quote": "prevent the lack of availability, the impairment of the authenticity and integrity, the breaches of confidentiality and the loss of data"
1862
+ }
1863
+ },
1864
+ {
1865
+ "kind": "compliance",
1866
+ "ruleId": "log-writes-personal-data",
1867
+ "framework": "dora",
1868
+ "clause": "Article 9(3)(c)",
1869
+ "title": "Protection and prevention",
1870
+ "rationale": "The rule reports: A program writes a field named as personal data into a log. That risks the loss of data and the impairment of its integrity, which this clause requires be prevented.",
1871
+ "source": {
1872
+ "doc": "dora",
1873
+ "retrieved": "2026-09-20",
1874
+ "quote": "prevent the lack of availability, the impairment of the authenticity and integrity, the breaches of confidentiality and the loss of data"
1875
+ }
1876
+ },
1877
+ {
1878
+ "kind": "compliance",
1879
+ "ruleId": "opaque-altered-control-flow",
1880
+ "framework": "dora",
1881
+ "clause": "Article 8(4)",
1882
+ "title": "Identification",
1883
+ "rationale": "The rule reports: A program changes where a GO TO goes at run time, so its control flow is not followed. That is an interdependency between assets which no single file records, and mapping it is what this clause asks for.",
1884
+ "source": {
1885
+ "doc": "dora",
1886
+ "retrieved": "2026-09-20",
1887
+ "quote": "map the configuration of the information assets and ICT assets and the links and interdependencies between the different information assets and ICT assets"
1888
+ }
1889
+ },
1890
+ {
1891
+ "kind": "compliance",
1892
+ "ruleId": "opaque-alternate-entry",
1893
+ "framework": "dora",
1894
+ "clause": "Article 8(4)",
1895
+ "title": "Identification",
1896
+ "rationale": "The rule reports: A program declares an alternate entry point, which the flow rules do not start from. That is an interdependency between assets which no single file records, and mapping it is what this clause asks for.",
1897
+ "source": {
1898
+ "doc": "dora",
1899
+ "retrieved": "2026-09-20",
1900
+ "quote": "map the configuration of the information assets and ICT assets and the links and interdependencies between the different information assets and ICT assets"
1901
+ }
1902
+ },
1903
+ {
1904
+ "kind": "compliance",
1905
+ "ruleId": "opaque-pointer-addressing",
1906
+ "framework": "dora",
1907
+ "clause": "Article 8(4)",
1908
+ "title": "Identification",
1909
+ "rationale": "The rule reports: A program addresses storage through a pointer, so data flow through it is not followed. That is an interdependency between assets which no single file records, and mapping it is what this clause asks for.",
1910
+ "source": {
1911
+ "doc": "dora",
1912
+ "retrieved": "2026-09-20",
1913
+ "quote": "map the configuration of the information assets and ICT assets and the links and interdependencies between the different information assets and ICT assets"
1914
+ }
1915
+ },
1916
+ {
1917
+ "kind": "compliance",
1918
+ "ruleId": "opaque-procedure-pointer",
1919
+ "framework": "dora",
1920
+ "clause": "Article 8(4)",
1921
+ "title": "Identification",
1922
+ "rationale": "The rule reports: A program calls through a procedure pointer, so the callee is not known statically. That is an interdependency between assets which no single file records, and mapping it is what this clause asks for.",
1923
+ "source": {
1924
+ "doc": "dora",
1925
+ "retrieved": "2026-09-20",
1926
+ "quote": "map the configuration of the information assets and ICT assets and the links and interdependencies between the different information assets and ICT assets"
1927
+ }
1928
+ },
1929
+ {
1930
+ "kind": "compliance",
1931
+ "ruleId": "program-without-entry",
1932
+ "framework": "dora",
1933
+ "clause": "Article 9(3)(b)",
1934
+ "title": "Protection and prevention",
1935
+ "rationale": "The rule reports: Nothing in this tree starts this program: no transaction, job step or program reaches it. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
1936
+ "source": {
1937
+ "doc": "dora",
1938
+ "retrieved": "2026-09-20",
1939
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1940
+ }
1941
+ },
1942
+ {
1943
+ "kind": "compliance",
1944
+ "ruleId": "racf-command-password",
1945
+ "framework": "dora",
1946
+ "clause": "Article 9(4)(d)",
1947
+ "title": "Protection and prevention",
1948
+ "rationale": "The rule reports: Credential pattern: racf command password. That exposes an authentication secret in a file, defeating the authentication mechanisms and key protection this clause requires.",
1949
+ "source": {
1950
+ "doc": "dora",
1951
+ "retrieved": "2026-09-20",
1952
+ "quote": "implement policies and protocols for strong authentication mechanisms, based on relevant standards and dedicated control systems, and protection measures of cryptographic keys"
1953
+ }
1954
+ },
1955
+ {
1956
+ "kind": "compliance",
1957
+ "ruleId": "recon-nonproduction-job-reads-production-dataset",
1958
+ "framework": "dora",
1959
+ "clause": "Article 9(3)(b)",
1960
+ "title": "Protection and prevention",
1961
+ "rationale": "The rule reports: A job the estate calls non-production reads a production dataset. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
1962
+ "source": {
1963
+ "doc": "dora",
1964
+ "retrieved": "2026-09-20",
1965
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
1966
+ }
1967
+ },
1968
+ {
1969
+ "kind": "compliance",
1970
+ "ruleId": "recon-nonproduction-job-writes-production-dataset",
1971
+ "framework": "dora",
1972
+ "clause": "Article 9(3)(c)",
1973
+ "title": "Protection and prevention",
1974
+ "rationale": "The rule reports: A job the estate calls non-production creates, extends, overwrites or deletes a production dataset. That risks the loss of data and the impairment of its integrity, which this clause requires be prevented.",
1975
+ "source": {
1976
+ "doc": "dora",
1977
+ "retrieved": "2026-09-20",
1978
+ "quote": "prevent the lack of availability, the impairment of the authenticity and integrity, the breaches of confidentiality and the loss of data"
1979
+ }
1980
+ },
1981
+ {
1982
+ "kind": "compliance",
1983
+ "ruleId": "recon-production-name-outside-production",
1984
+ "framework": "dora",
1985
+ "clause": "Article 8(4)",
1986
+ "title": "Identification",
1987
+ "rationale": "The rule reports: A name this estate calls production appears in a file that is not a production job. That is an interdependency between assets which no single file records, and mapping it is what this clause asks for.",
1988
+ "source": {
1989
+ "doc": "dora",
1990
+ "retrieved": "2026-09-20",
1991
+ "quote": "map the configuration of the information assets and ICT assets and the links and interdependencies between the different information assets and ICT assets"
1992
+ }
1993
+ },
1994
+ {
1995
+ "kind": "compliance",
1996
+ "ruleId": "recon-routable-address-committed",
1997
+ "framework": "dora",
1998
+ "clause": "Article 8(4)",
1999
+ "title": "Identification",
2000
+ "rationale": "The rule reports: A routable network address is written into source. That is an interdependency between assets which no single file records, and mapping it is what this clause asks for.",
2001
+ "source": {
2002
+ "doc": "dora",
2003
+ "retrieved": "2026-09-20",
2004
+ "quote": "map the configuration of the information assets and ICT assets and the links and interdependencies between the different information assets and ICT assets"
2005
+ }
2006
+ },
2007
+ {
2008
+ "kind": "compliance",
2009
+ "ruleId": "site-declares-vulnerable-runtime",
2010
+ "framework": "dora",
2011
+ "clause": "Article 8(2)",
2012
+ "title": "Identification",
2013
+ "rationale": "The rule reports: The estate declares a runtime version with a published advisory against it. That is a source of ICT risk in a business-supporting function, identified by reading the source rather than by asking the team that maintains it.",
2014
+ "source": {
2015
+ "doc": "dora",
2016
+ "retrieved": "2026-09-20",
2017
+ "quote": "identify all sources of ICT risk, in particular the risk exposure to and from other financial entities, and assess cyber threats and ICT vulnerabilities relevant to their ICT supported business functions"
2018
+ }
2019
+ },
2020
+ {
2021
+ "kind": "compliance",
2022
+ "ruleId": "system-response-to-http-header",
2023
+ "framework": "dora",
2024
+ "clause": "Article 9(3)(b)",
2025
+ "title": "Protection and prevention",
2026
+ "rationale": "The rule reports: A response code or SQL error the system set is sent in a response header. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
2027
+ "source": {
2028
+ "doc": "dora",
2029
+ "retrieved": "2026-09-20",
2030
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
2031
+ }
2032
+ },
2033
+ {
2034
+ "kind": "compliance",
2035
+ "ruleId": "system-response-to-web-response",
2036
+ "framework": "dora",
2037
+ "clause": "Article 9(3)(b)",
2038
+ "title": "Protection and prevention",
2039
+ "rationale": "The rule reports: A response code or SQL error the system set is sent in a web response. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
2040
+ "source": {
2041
+ "doc": "dora",
2042
+ "retrieved": "2026-09-20",
2043
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
2044
+ }
2045
+ },
2046
+ {
2047
+ "kind": "compliance",
2048
+ "ruleId": "tso-logon-password",
2049
+ "framework": "dora",
2050
+ "clause": "Article 9(4)(d)",
2051
+ "title": "Protection and prevention",
2052
+ "rationale": "The rule reports: Credential pattern: tso logon password. That exposes an authentication secret in a file, defeating the authentication mechanisms and key protection this clause requires.",
2053
+ "source": {
2054
+ "doc": "dora",
2055
+ "retrieved": "2026-09-20",
2056
+ "quote": "implement policies and protocols for strong authentication mechanisms, based on relevant standards and dedicated control systems, and protection measures of cryptographic keys"
2057
+ }
2058
+ },
2059
+ {
2060
+ "kind": "compliance",
2061
+ "ruleId": "vendor-privileged-command",
2062
+ "framework": "dora",
2063
+ "clause": "Article 9(4)(c)",
2064
+ "title": "Protection and prevention",
2065
+ "rationale": "The rule reports: A job issues a vendor product command that creates, grants or alters authority. That grants or alters access rights outside the policy controls this clause requires be soundly administered.",
2066
+ "source": {
2067
+ "doc": "dora",
2068
+ "retrieved": "2026-09-20",
2069
+ "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"
2070
+ }
2071
+ },
2072
+ {
2073
+ "kind": "compliance",
2074
+ "ruleId": "web-cookie-without-secure-attributes",
2075
+ "framework": "dora",
2076
+ "clause": "Article 9(3)(b)",
2077
+ "title": "Protection and prevention",
2078
+ "rationale": "The rule reports: A program sets a cookie without the attributes that keep it off a cleartext hop. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
2079
+ "source": {
2080
+ "doc": "dora",
2081
+ "retrieved": "2026-09-20",
2082
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
2083
+ }
2084
+ },
2085
+ {
2086
+ "kind": "compliance",
2087
+ "ruleId": "web-link-opens-without-noopener",
2088
+ "framework": "dora",
2089
+ "clause": "Article 9(3)(b)",
2090
+ "title": "Protection and prevention",
2091
+ "rationale": "The rule reports: A program writes a link that opens a new window with a handle back to this one. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
2092
+ "source": {
2093
+ "doc": "dora",
2094
+ "retrieved": "2026-09-20",
2095
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
2096
+ }
2097
+ },
2098
+ {
2099
+ "kind": "compliance",
2100
+ "ruleId": "web-request-changes-state-without-a-token",
2101
+ "framework": "dora",
2102
+ "clause": "Article 9(3)(b)",
2103
+ "title": "Protection and prevention",
2104
+ "rationale": "The rule reports: A program changes state on a web request without comparing anything the browser could not forge. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
2105
+ "source": {
2106
+ "doc": "dora",
2107
+ "retrieved": "2026-09-20",
2108
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
2109
+ }
2110
+ },
2111
+ {
2112
+ "kind": "compliance",
2113
+ "ruleId": "web-response-tells-the-caller-what-it-runs",
2114
+ "framework": "dora",
2115
+ "clause": "Article 9(3)(b)",
2116
+ "title": "Protection and prevention",
2117
+ "rationale": "The rule reports: A program writes a header naming the software behind it. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
2118
+ "source": {
2119
+ "doc": "dora",
2120
+ "retrieved": "2026-09-20",
2121
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
2122
+ }
2123
+ },
2124
+ {
2125
+ "kind": "compliance",
2126
+ "ruleId": "web-response-without-protective-headers",
2127
+ "framework": "dora",
2128
+ "clause": "Article 9(3)(b)",
2129
+ "title": "Protection and prevention",
2130
+ "rationale": "The rule reports: A program sends HTML without the headers that say who may frame or reinterpret it. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
2131
+ "source": {
2132
+ "doc": "dora",
2133
+ "retrieved": "2026-09-20",
2134
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
2135
+ }
2136
+ },
2137
+ {
2138
+ "kind": "compliance",
2139
+ "ruleId": "web-uri-carries-a-credential",
2140
+ "framework": "dora",
2141
+ "clause": "Article 9(3)(b)",
2142
+ "title": "Protection and prevention",
2143
+ "rationale": "The rule reports: A program puts a credential in a URI rather than in the request body. That is a technical flaw permitting unauthorised access or data corruption, which this clause requires be minimised.",
2144
+ "source": {
2145
+ "doc": "dora",
2146
+ "retrieved": "2026-09-20",
2147
+ "quote": "minimise the risk of corruption or loss of data, unauthorised access and technical flaws that may hinder business activity"
2148
+ }
2149
+ }
2150
+ ]
2151
+ }