veto-sdk 2.6.0 → 2.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/compile.js +1 -1
- package/dist/cli/compile.js.map +1 -1
- package/dist/cli/templates.js +1 -1
- package/dist/core/veto.d.ts +1 -0
- package/dist/core/veto.d.ts.map +1 -1
- package/dist/core/veto.js +24 -11
- package/dist/core/veto.js.map +1 -1
- package/dist/custom/providers/anthropic.d.ts +0 -13
- package/dist/custom/providers/anthropic.d.ts.map +1 -1
- package/dist/custom/providers/anthropic.js +39 -40
- package/dist/custom/providers/anthropic.js.map +1 -1
- package/dist/custom/providers/openai.d.ts +0 -13
- package/dist/custom/providers/openai.d.ts.map +1 -1
- package/dist/custom/providers/openai.js +40 -41
- package/dist/custom/providers/openai.js.map +1 -1
- package/dist/custom/providers/utils.d.ts +10 -0
- package/dist/custom/providers/utils.d.ts.map +1 -0
- package/dist/custom/providers/utils.js +130 -0
- package/dist/custom/providers/utils.js.map +1 -0
- package/dist/custom/types.d.ts +11 -18
- package/dist/custom/types.d.ts.map +1 -1
- package/dist/custom/types.js +70 -28
- package/dist/custom/types.js.map +1 -1
- package/dist/rules/index.d.ts +1 -0
- package/dist/rules/index.d.ts.map +1 -1
- package/dist/rules/index.js +1 -0
- package/dist/rules/index.js.map +1 -1
- package/dist/rules/policy-packs.d.ts.map +1 -1
- package/dist/rules/policy-packs.js +3 -0
- package/dist/rules/policy-packs.js.map +1 -1
- package/package.json +1 -1
- package/packs/eu-ai-act-starter.yaml +155 -0
- package/packs/hipaa-lite.yaml +154 -0
- package/packs/soc2-lite.yaml +136 -0
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
# Starter guardrails inspired by EU AI Act operational themes.
|
|
2
|
+
# Operators must map these to their risk classification, documentation, and human-oversight process.
|
|
3
|
+
version: "1.0"
|
|
4
|
+
name: eu-ai-act-starter-pack
|
|
5
|
+
description: Starter guardrails for human oversight, audit preservation, consequential-action review, and transparency workflows. This pack is not a compliance certification.
|
|
6
|
+
|
|
7
|
+
rules:
|
|
8
|
+
- id: eu-ai-require-human-oversight-high-risk
|
|
9
|
+
name: Require human oversight for high-risk decisions
|
|
10
|
+
description: Require approval before tools finalize high-risk or consequential decisions.
|
|
11
|
+
enabled: true
|
|
12
|
+
severity: critical
|
|
13
|
+
action: require_approval
|
|
14
|
+
tools:
|
|
15
|
+
- update_record
|
|
16
|
+
- write_file
|
|
17
|
+
- execute_command
|
|
18
|
+
- run_shell
|
|
19
|
+
- bash
|
|
20
|
+
- shell
|
|
21
|
+
- deploy
|
|
22
|
+
- publish
|
|
23
|
+
- release
|
|
24
|
+
- send_email
|
|
25
|
+
- http_request
|
|
26
|
+
condition_groups:
|
|
27
|
+
# Tune high-risk categories to your product's risk classification inventory.
|
|
28
|
+
- - field: arguments.risk_level
|
|
29
|
+
operator: matches
|
|
30
|
+
value: '(?i)\b(high|high-risk|consequential)\b'
|
|
31
|
+
- - field: arguments.decision_type
|
|
32
|
+
operator: matches
|
|
33
|
+
value: '(?i)\b(credit|employment|education|housing|healthcare|insurance|law enforcement|migration)\b'
|
|
34
|
+
- - field: arguments.high_risk
|
|
35
|
+
operator: equals
|
|
36
|
+
value: true
|
|
37
|
+
- - field: custom.high_risk_ai_system
|
|
38
|
+
operator: equals
|
|
39
|
+
value: true
|
|
40
|
+
|
|
41
|
+
- id: eu-ai-block-audit-log-deletion
|
|
42
|
+
name: Block audit log deletion
|
|
43
|
+
description: Preserve logs and audit trails needed for review, incident response, and post-market monitoring.
|
|
44
|
+
enabled: true
|
|
45
|
+
severity: critical
|
|
46
|
+
action: block
|
|
47
|
+
tools:
|
|
48
|
+
- delete_file
|
|
49
|
+
- write_file
|
|
50
|
+
- edit_file
|
|
51
|
+
- execute_command
|
|
52
|
+
- run_shell
|
|
53
|
+
- bash
|
|
54
|
+
- shell
|
|
55
|
+
condition_groups:
|
|
56
|
+
- - field: arguments.path
|
|
57
|
+
operator: matches
|
|
58
|
+
value: "(?i)(audit|decision|model|risk|incident)[-_ ]?(log|trail|record)s?"
|
|
59
|
+
- - field: arguments.command
|
|
60
|
+
operator: matches
|
|
61
|
+
value: '(?i)\b(rm|truncate|shred)\b.*\b(audit|decision|model|risk|incident)[-_ ]?(log|trail|record)s?\b'
|
|
62
|
+
|
|
63
|
+
- id: eu-ai-require-approval-autonomous-consequential-action
|
|
64
|
+
name: Require approval for autonomous consequential actions
|
|
65
|
+
description: Require human approval before autonomous actions that affect users, records, access, or production systems.
|
|
66
|
+
enabled: true
|
|
67
|
+
severity: critical
|
|
68
|
+
action: require_approval
|
|
69
|
+
tools:
|
|
70
|
+
- update_record
|
|
71
|
+
- execute_sql
|
|
72
|
+
- run_query
|
|
73
|
+
- query_database
|
|
74
|
+
- deploy
|
|
75
|
+
- publish
|
|
76
|
+
- release
|
|
77
|
+
- push_to_production
|
|
78
|
+
- send_email
|
|
79
|
+
- http_request
|
|
80
|
+
- export_data
|
|
81
|
+
- export_records
|
|
82
|
+
condition_groups:
|
|
83
|
+
- - field: arguments.autonomous
|
|
84
|
+
operator: equals
|
|
85
|
+
value: true
|
|
86
|
+
- field: arguments.consequential
|
|
87
|
+
operator: equals
|
|
88
|
+
value: true
|
|
89
|
+
- - field: custom.autonomous_action
|
|
90
|
+
operator: equals
|
|
91
|
+
value: true
|
|
92
|
+
- field: custom.human_approved
|
|
93
|
+
operator: not_equals
|
|
94
|
+
value: true
|
|
95
|
+
- - field: arguments.impact
|
|
96
|
+
operator: matches
|
|
97
|
+
value: '(?i)\b(eligibility|access|benefit|price|rank|score|account|employment)\b'
|
|
98
|
+
|
|
99
|
+
- id: eu-ai-require-transparency-review-before-notification
|
|
100
|
+
name: Require transparency review before user notification
|
|
101
|
+
description: Require review before sending user-facing notices or finalizing decisions without transparency approval.
|
|
102
|
+
enabled: true
|
|
103
|
+
severity: high
|
|
104
|
+
action: require_approval
|
|
105
|
+
tools:
|
|
106
|
+
- send_email
|
|
107
|
+
- send_message
|
|
108
|
+
- send_notification
|
|
109
|
+
- http_request
|
|
110
|
+
- update_record
|
|
111
|
+
- publish
|
|
112
|
+
condition_groups:
|
|
113
|
+
# Override custom.transparency_reviewed from your app once required notice text is checked.
|
|
114
|
+
- - field: arguments.user_notification
|
|
115
|
+
operator: equals
|
|
116
|
+
value: true
|
|
117
|
+
- field: custom.transparency_reviewed
|
|
118
|
+
operator: not_equals
|
|
119
|
+
value: true
|
|
120
|
+
- - field: arguments.finalize_decision
|
|
121
|
+
operator: equals
|
|
122
|
+
value: true
|
|
123
|
+
- field: custom.transparency_reviewed
|
|
124
|
+
operator: not_equals
|
|
125
|
+
value: true
|
|
126
|
+
- - field: arguments.message
|
|
127
|
+
operator: matches
|
|
128
|
+
value: '(?i)\b(final decision|automated decision|AI-generated decision)\b'
|
|
129
|
+
- field: custom.transparency_reviewed
|
|
130
|
+
operator: not_equals
|
|
131
|
+
value: true
|
|
132
|
+
|
|
133
|
+
output_rules:
|
|
134
|
+
- id: eu-ai-log-high-risk-output
|
|
135
|
+
name: Log high-risk decision outputs
|
|
136
|
+
description: Log outputs that appear to contain final high-risk decisions for audit review.
|
|
137
|
+
enabled: true
|
|
138
|
+
severity: high
|
|
139
|
+
action: log
|
|
140
|
+
output_conditions:
|
|
141
|
+
- field: output
|
|
142
|
+
operator: matches
|
|
143
|
+
value: '(?i)\b(final decision|automated decision|eligibility denied|application rejected|risk score)\b'
|
|
144
|
+
|
|
145
|
+
- id: eu-ai-redact-unsupported-compliance-claims
|
|
146
|
+
name: Redact unsupported compliance claims
|
|
147
|
+
description: Redact generated claims that imply a system is legally compliant without review.
|
|
148
|
+
enabled: true
|
|
149
|
+
severity: medium
|
|
150
|
+
action: redact
|
|
151
|
+
output_conditions:
|
|
152
|
+
- field: output
|
|
153
|
+
operator: matches
|
|
154
|
+
value: '(?i)\b(EU AI Act compliant|guaranteed compliant|certified compliant)\b'
|
|
155
|
+
redact_with: "[REVIEW_REQUIRED]"
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
# Starter guardrails inspired by HIPAA privacy/security themes.
|
|
2
|
+
# Operators must review, tune detectors, and validate workflows with qualified counsel/compliance owners.
|
|
3
|
+
version: "1.0"
|
|
4
|
+
name: hipaa-lite-pack
|
|
5
|
+
description: Starter guardrails for PHI handling, patient-data export review, and medical-record access context. This pack is not a compliance certification.
|
|
6
|
+
|
|
7
|
+
rules:
|
|
8
|
+
- id: hipaa-require-approval-external-phi-transfer
|
|
9
|
+
name: Require approval for external PHI transfer
|
|
10
|
+
description: Require review before patient or PHI-related data is emailed, uploaded, exported, or sent over HTTP.
|
|
11
|
+
enabled: true
|
|
12
|
+
severity: critical
|
|
13
|
+
action: require_approval
|
|
14
|
+
tools:
|
|
15
|
+
- send_email
|
|
16
|
+
- http_request
|
|
17
|
+
- upload_file
|
|
18
|
+
- export_data
|
|
19
|
+
- export_records
|
|
20
|
+
condition_groups:
|
|
21
|
+
# Expand these field names to match your application payloads.
|
|
22
|
+
- - field: arguments.data_type
|
|
23
|
+
operator: matches
|
|
24
|
+
value: '(?i)\b(phi|patient|medical|clinical|health)\b'
|
|
25
|
+
- - field: arguments.dataset
|
|
26
|
+
operator: matches
|
|
27
|
+
value: '(?i)\b(phi|patient|medical|clinical|health)\b'
|
|
28
|
+
- - field: arguments.body
|
|
29
|
+
operator: matches
|
|
30
|
+
value: '(?i)\b(patient|diagnosis|medication|medical record|mrn)\b'
|
|
31
|
+
- - field: arguments.file
|
|
32
|
+
operator: matches
|
|
33
|
+
value: '(?i)\b(patient|medical|clinical|phi)\b'
|
|
34
|
+
|
|
35
|
+
- id: hipaa-block-unapproved-phi-network-send
|
|
36
|
+
name: Block unapproved PHI network sends
|
|
37
|
+
description: Block network transfer of PHI when explicit PHI transfer approval is absent from context.
|
|
38
|
+
enabled: true
|
|
39
|
+
severity: critical
|
|
40
|
+
action: block
|
|
41
|
+
tools:
|
|
42
|
+
- http_request
|
|
43
|
+
- upload_file
|
|
44
|
+
- send_email
|
|
45
|
+
condition_groups:
|
|
46
|
+
- - field: custom.phi_transfer_approved
|
|
47
|
+
operator: not_equals
|
|
48
|
+
value: true
|
|
49
|
+
- field: arguments.contains_phi
|
|
50
|
+
operator: equals
|
|
51
|
+
value: true
|
|
52
|
+
- - field: custom.phi_transfer_approved
|
|
53
|
+
operator: not_equals
|
|
54
|
+
value: true
|
|
55
|
+
- field: arguments.data_classification
|
|
56
|
+
operator: matches
|
|
57
|
+
value: '(?i)\b(phi|patient|medical)\b'
|
|
58
|
+
|
|
59
|
+
- id: hipaa-require-context-for-medical-record-access
|
|
60
|
+
name: Require context for medical record access
|
|
61
|
+
description: Restrict patient record reads and writes unless the caller provides approved PHI access context.
|
|
62
|
+
enabled: true
|
|
63
|
+
severity: high
|
|
64
|
+
action: require_approval
|
|
65
|
+
tools:
|
|
66
|
+
- read_record
|
|
67
|
+
- update_record
|
|
68
|
+
- query_database
|
|
69
|
+
- execute_sql
|
|
70
|
+
- run_query
|
|
71
|
+
condition_groups:
|
|
72
|
+
# Add role, purpose-of-use, and break-glass checks in project overrides.
|
|
73
|
+
- - field: custom.phi_access_approved
|
|
74
|
+
operator: not_equals
|
|
75
|
+
value: true
|
|
76
|
+
- field: arguments.record_type
|
|
77
|
+
operator: matches
|
|
78
|
+
value: '(?i)\b(patient|medical|clinical|encounter|claim)\b'
|
|
79
|
+
- - field: custom.phi_access_approved
|
|
80
|
+
operator: not_equals
|
|
81
|
+
value: true
|
|
82
|
+
- field: arguments.table
|
|
83
|
+
operator: matches
|
|
84
|
+
value: '(?i)\b(patient|medical|clinical|encounter|claim)s?\b'
|
|
85
|
+
- - field: custom.phi_access_approved
|
|
86
|
+
operator: not_equals
|
|
87
|
+
value: true
|
|
88
|
+
- field: arguments.query
|
|
89
|
+
operator: matches
|
|
90
|
+
value: '(?i)\b(patient|medical_record|diagnosis|medication|mrn)\b'
|
|
91
|
+
|
|
92
|
+
- id: hipaa-require-approval-bulk-record-export
|
|
93
|
+
name: Require approval for bulk patient record export
|
|
94
|
+
description: Require human review before exporting large patient or clinical record sets.
|
|
95
|
+
enabled: true
|
|
96
|
+
severity: high
|
|
97
|
+
action: require_approval
|
|
98
|
+
tools:
|
|
99
|
+
- export_data
|
|
100
|
+
- export_records
|
|
101
|
+
- query_database
|
|
102
|
+
- execute_sql
|
|
103
|
+
- run_query
|
|
104
|
+
condition_groups:
|
|
105
|
+
# Tune this threshold to your minimum necessary access policy.
|
|
106
|
+
- - field: arguments.limit
|
|
107
|
+
operator: greater_than
|
|
108
|
+
value: 100
|
|
109
|
+
- field: arguments.dataset
|
|
110
|
+
operator: matches
|
|
111
|
+
value: '(?i)\b(patient|medical|clinical|phi)\b'
|
|
112
|
+
- - field: arguments.limit
|
|
113
|
+
operator: greater_than
|
|
114
|
+
value: 100
|
|
115
|
+
- field: arguments.query
|
|
116
|
+
operator: matches
|
|
117
|
+
value: '(?i)\b(patient|medical_record|diagnosis|medication|mrn)\b'
|
|
118
|
+
|
|
119
|
+
output_rules:
|
|
120
|
+
- id: hipaa-redact-patient-identifiers
|
|
121
|
+
name: Redact patient identifiers
|
|
122
|
+
description: Redact common patient identifiers when they appear in tool output.
|
|
123
|
+
enabled: true
|
|
124
|
+
severity: critical
|
|
125
|
+
action: redact
|
|
126
|
+
output_conditions:
|
|
127
|
+
- field: output
|
|
128
|
+
operator: matches
|
|
129
|
+
value: '(?i)\b(MRN|medical record number|patient id)\b\s*[:#]?\s*[A-Za-z0-9-]{4,}'
|
|
130
|
+
redact_with: "[REDACTED_PATIENT_ID]"
|
|
131
|
+
|
|
132
|
+
- id: hipaa-redact-ssn
|
|
133
|
+
name: Redact SSNs
|
|
134
|
+
description: Redact US Social Security numbers from patient data output.
|
|
135
|
+
enabled: true
|
|
136
|
+
severity: critical
|
|
137
|
+
action: redact
|
|
138
|
+
output_conditions:
|
|
139
|
+
- field: output
|
|
140
|
+
operator: matches
|
|
141
|
+
value: '\b\d{3}-\d{2}-\d{4}\b'
|
|
142
|
+
redact_with: "[REDACTED_SSN]"
|
|
143
|
+
|
|
144
|
+
- id: hipaa-redact-dob
|
|
145
|
+
name: Redact dates of birth
|
|
146
|
+
description: Redact common DOB labels and date values from outputs.
|
|
147
|
+
enabled: true
|
|
148
|
+
severity: high
|
|
149
|
+
action: redact
|
|
150
|
+
output_conditions:
|
|
151
|
+
- field: output
|
|
152
|
+
operator: matches
|
|
153
|
+
value: '(?i)\b(DOB|date of birth)\b\s*[:#]?\s*\d{1,2}[/-]\d{1,2}[/-]\d{2,4}'
|
|
154
|
+
redact_with: "[REDACTED_DOB]"
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
# Starter guardrails inspired by SOC 2 control themes.
|
|
2
|
+
# Operators must review, tune thresholds, and map rules to their own controls.
|
|
3
|
+
version: "1.0"
|
|
4
|
+
name: soc2-lite-pack
|
|
5
|
+
description: Starter guardrails for change management, least-privilege operations, audit integrity, and secret handling. This pack is not a compliance certification.
|
|
6
|
+
|
|
7
|
+
rules:
|
|
8
|
+
- id: soc2-require-approval-destructive-operations
|
|
9
|
+
name: Require approval for destructive operations
|
|
10
|
+
description: Route destructive shell, file, and database operations to human approval before execution.
|
|
11
|
+
enabled: true
|
|
12
|
+
severity: critical
|
|
13
|
+
action: require_approval
|
|
14
|
+
tools:
|
|
15
|
+
- execute_command
|
|
16
|
+
- run_shell
|
|
17
|
+
- bash
|
|
18
|
+
- shell
|
|
19
|
+
- delete_file
|
|
20
|
+
- write_file
|
|
21
|
+
- edit_file
|
|
22
|
+
- query_database
|
|
23
|
+
- execute_sql
|
|
24
|
+
- run_query
|
|
25
|
+
condition_groups:
|
|
26
|
+
# Tune these command/data patterns for your runtime and database dialect.
|
|
27
|
+
- - field: arguments.command
|
|
28
|
+
operator: matches
|
|
29
|
+
value: '(?i)\b(rm\s+-rf|mkfs|shutdown|reboot|terraform\s+destroy|kubectl\s+delete)\b'
|
|
30
|
+
- - field: arguments.path
|
|
31
|
+
operator: matches
|
|
32
|
+
value: "(^|/)(prod|production|backups|audit|logs)(/|$)"
|
|
33
|
+
- - field: arguments.query
|
|
34
|
+
operator: matches
|
|
35
|
+
value: '(?i)\b(drop|truncate|delete\s+from|alter\s+table)\b'
|
|
36
|
+
|
|
37
|
+
- id: soc2-require-approval-production-release
|
|
38
|
+
name: Require approval for production release actions
|
|
39
|
+
description: Require human approval before production deploy, publish, release, or delete operations.
|
|
40
|
+
enabled: true
|
|
41
|
+
severity: critical
|
|
42
|
+
action: require_approval
|
|
43
|
+
tools:
|
|
44
|
+
- deploy
|
|
45
|
+
- publish
|
|
46
|
+
- release
|
|
47
|
+
- push_to_production
|
|
48
|
+
- delete_file
|
|
49
|
+
- execute_command
|
|
50
|
+
- run_shell
|
|
51
|
+
- bash
|
|
52
|
+
- shell
|
|
53
|
+
condition_groups:
|
|
54
|
+
- - field: arguments.environment
|
|
55
|
+
operator: matches
|
|
56
|
+
value: "(?i)^(prod|production)$"
|
|
57
|
+
- - field: arguments.env
|
|
58
|
+
operator: matches
|
|
59
|
+
value: "(?i)^(prod|production)$"
|
|
60
|
+
- - field: arguments.target
|
|
61
|
+
operator: matches
|
|
62
|
+
value: '(?i)\b(prod|production)\b'
|
|
63
|
+
- - field: arguments.command
|
|
64
|
+
operator: matches
|
|
65
|
+
value: '(?i)\b(prod|production)\b.*\b(deploy|release|delete|destroy)\b'
|
|
66
|
+
|
|
67
|
+
- id: soc2-block-audit-log-tampering
|
|
68
|
+
name: Block audit log tampering
|
|
69
|
+
description: Prevent agents from deleting or mutating audit logs and evidence exports.
|
|
70
|
+
enabled: true
|
|
71
|
+
severity: critical
|
|
72
|
+
action: block
|
|
73
|
+
tools:
|
|
74
|
+
- delete_file
|
|
75
|
+
- write_file
|
|
76
|
+
- edit_file
|
|
77
|
+
- execute_command
|
|
78
|
+
- run_shell
|
|
79
|
+
- bash
|
|
80
|
+
- shell
|
|
81
|
+
condition_groups:
|
|
82
|
+
- - field: arguments.path
|
|
83
|
+
operator: matches
|
|
84
|
+
value: "(?i)(audit|evidence|security)[-_]?(log|trail|export)"
|
|
85
|
+
- - field: arguments.command
|
|
86
|
+
operator: matches
|
|
87
|
+
value: '(?i)\b(rm|truncate|shred)\b.*\b(audit|evidence|security)[-_]?(log|trail|export)\b'
|
|
88
|
+
|
|
89
|
+
- id: soc2-require-approval-audit-export
|
|
90
|
+
name: Require approval for audit exports
|
|
91
|
+
description: Require review before exporting audit logs or control evidence outside the system.
|
|
92
|
+
enabled: true
|
|
93
|
+
severity: high
|
|
94
|
+
action: require_approval
|
|
95
|
+
tools:
|
|
96
|
+
- export_data
|
|
97
|
+
- export_records
|
|
98
|
+
- upload_file
|
|
99
|
+
- http_request
|
|
100
|
+
- send_email
|
|
101
|
+
condition_groups:
|
|
102
|
+
# Add your internal-only domains or approved sinks in project-specific overrides.
|
|
103
|
+
- - field: arguments.dataset
|
|
104
|
+
operator: matches
|
|
105
|
+
value: '(?i)\b(audit|evidence|security|access)[-_ ]?(log|trail|export|review)\b'
|
|
106
|
+
- - field: arguments.path
|
|
107
|
+
operator: matches
|
|
108
|
+
value: '(?i)\b(audit|evidence|security)[-_ ]?(log|trail|export)\b'
|
|
109
|
+
- - field: arguments.body
|
|
110
|
+
operator: matches
|
|
111
|
+
value: '(?i)\b(audit|evidence|control|soc\s*2)\b'
|
|
112
|
+
|
|
113
|
+
output_rules:
|
|
114
|
+
- id: soc2-redact-api-keys
|
|
115
|
+
name: Redact API keys and tokens
|
|
116
|
+
description: Redact common credential patterns from tool outputs.
|
|
117
|
+
enabled: true
|
|
118
|
+
severity: critical
|
|
119
|
+
action: redact
|
|
120
|
+
output_conditions:
|
|
121
|
+
- field: output
|
|
122
|
+
operator: matches
|
|
123
|
+
value: '(?i)\b(api[_-]?key|secret|token|password)\b\s*[:=]\s*[A-Za-z0-9_./+=-]{8,}'
|
|
124
|
+
redact_with: "[REDACTED_SECRET]"
|
|
125
|
+
|
|
126
|
+
- id: soc2-redact-private-keys
|
|
127
|
+
name: Redact private key material
|
|
128
|
+
description: Redact PEM private keys from tool outputs.
|
|
129
|
+
enabled: true
|
|
130
|
+
severity: critical
|
|
131
|
+
action: redact
|
|
132
|
+
output_conditions:
|
|
133
|
+
- field: output
|
|
134
|
+
operator: matches
|
|
135
|
+
value: "-----BEGIN [A-Z ]*PRIVATE KEY-----"
|
|
136
|
+
redact_with: "[REDACTED_PRIVATE_KEY]"
|