@highflame/policy 2.2.29 → 2.2.32
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/_schemas/agent_ops/context.json +1272 -439
- package/_schemas/agent_ops/schema.cedarschema +24 -0
- package/_schemas/agent_ops/templates/ported/agent-security/agent_identity_a2a_cross_origin.cedar +92 -0
- package/_schemas/agent_ops/templates/ported/agent-security/agent_identity_a2a_escalation.cedar +99 -0
- package/_schemas/agent_ops/templates/ported/agent-security/agent_identity_a2a_identity_enforcement.cedar +101 -0
- package/_schemas/agent_ops/templates/ported/agent-security/agent_identity_a2a_inter_agent_injection.cedar +120 -0
- package/_schemas/agent_ops/templates/ported/agent-security/agent_identity_claude_block_injection.cedar +30 -0
- package/_schemas/agent_ops/templates/ported/agent-security/agent_identity_defaults.cedar +122 -0
- package/_schemas/agent_ops/templates/ported/agent-security/agent_identity_multi_agent_safety.cedar +164 -0
- package/_schemas/agent_ops/templates/ported/agent-security/agent_identity_multi_agent_trust.cedar +143 -0
- package/_schemas/agent_ops/templates/ported/agent-security/agent_security_data_pipeline.cedar +45 -0
- package/_schemas/agent_ops/templates/ported/agent-security/agent_security_defaults.cedar +164 -0
- package/_schemas/agent_ops/templates/ported/agent-security/agent_security_malicious_package.cedar +59 -0
- package/_schemas/agent_ops/templates/ported/agent-security/agent_security_param_validation.cedar +119 -0
- package/_schemas/agent_ops/templates/ported/agent-security/agent_security_tool_risk.cedar +66 -0
- package/_schemas/agent_ops/templates/ported/code-security/agent_identity_a2a_supply_chain.cedar +101 -0
- package/_schemas/agent_ops/templates/ported/code-security/agent_security_code_agent.cedar +130 -0
- package/_schemas/agent_ops/templates/ported/code-security/agent_security_code_agent_supply_chain.cedar +116 -0
- package/_schemas/agent_ops/templates/ported/code-security/security_code_agent_encoding.cedar +51 -0
- package/_schemas/agent_ops/templates/ported/code-security/security_code_agent_path_security.cedar +149 -0
- package/_schemas/agent_ops/templates/ported/content-safety/trust_safety_chat_assistant.cedar +58 -0
- package/_schemas/agent_ops/templates/ported/content-safety/trust_safety_defaults.cedar +111 -0
- package/_schemas/agent_ops/templates/ported/content-safety/trust_safety_semantic.cedar +78 -0
- package/_schemas/agent_ops/templates/ported/content-safety/trust_safety_toxicity.cedar +71 -0
- package/_schemas/agent_ops/templates/ported/data-protection/data_protection_advanced_secrets.cedar +74 -0
- package/_schemas/agent_ops/templates/ported/data-protection/data_protection_code_block_write_secrets.cedar +26 -0
- package/_schemas/agent_ops/templates/ported/data-protection/data_protection_data_pipeline.cedar +52 -0
- package/_schemas/agent_ops/templates/ported/data-protection/data_protection_defaults.cedar +57 -0
- package/_schemas/agent_ops/templates/ported/data-protection/privacy_advanced_pii.cedar +465 -0
- package/_schemas/agent_ops/templates/ported/data-protection/privacy_defaults.cedar +164 -0
- package/_schemas/agent_ops/templates/ported/data-protection/privacy_pii_model.cedar +90 -0
- package/_schemas/agent_ops/templates/ported/organization/organization_deny_baseline.cedar +22 -0
- package/_schemas/agent_ops/templates/ported/organization/organization_team_permissions.cedar +38 -0
- package/_schemas/agent_ops/templates/ported/threat-detection/security_advanced_block_critical_severity.cedar +30 -0
- package/_schemas/agent_ops/templates/ported/threat-detection/security_chat_assistant.cedar +47 -0
- package/_schemas/agent_ops/templates/ported/threat-detection/security_data_pipeline_block_injection.cedar +31 -0
- package/_schemas/agent_ops/templates/ported/threat-detection/security_injection.cedar +82 -0
- package/_schemas/agent_ops/templates/ported/threat-detection/security_patterns.cedar +72 -0
- package/_schemas/agent_ops/templates/ported/threat-detection/semantic_defaults.cedar +155 -0
- package/_schemas/agent_ops/templates/ported/tool-permissioning/tools_bash_operation_classes.cedar +142 -0
- package/_schemas/agent_ops/templates/ported/tool-permissioning/tools_block_shell.cedar +40 -0
- package/_schemas/agent_ops/templates/ported/tool-permissioning/tools_defaults.cedar +76 -0
- package/_schemas/agent_ops/templates/ported/tool-permissioning/tools_mcp_server_allowlist.cedar +41 -0
- package/_schemas/agent_ops/templates/ported/tool-permissioning/tools_mcp_tool_permissions.cedar +103 -0
- package/_schemas/agent_ops/templates/templates.json +752 -8
- package/_schemas/ai_gateway/context.json +2 -2
- package/_schemas/guardrails/context.json +2 -2
- package/_schemas/guardrails/templates/templates.json +6 -1
- package/_schemas/overwatch/context.json +3 -3
- package/dist/aarm-annotations.gen.js +1 -1
- package/dist/agent_ops-context.gen.d.ts +5 -1
- package/dist/agent_ops-context.gen.js +8 -0
- package/dist/agent_ops-defaults.gen.js +5168 -8
- package/dist/guardrails-defaults.gen.js +6 -1
- package/dist/overwatch-defaults.gen.js +109 -0
- package/dist/service-schemas.gen.d.ts +1 -1
- package/dist/service-schemas.gen.js +48 -12
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"service": "agent_ops",
|
|
3
3
|
"version": "1.0.0",
|
|
4
|
-
"description": "AgentOps policy templates
|
|
4
|
+
"description": "AgentOps policy templates \u2014 unified agent guardrails for code agents, MCP tools, and AI Gateway traffic",
|
|
5
5
|
"categories": [
|
|
6
6
|
{
|
|
7
7
|
"id": "threat-detection",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
{
|
|
42
42
|
"id": "sandbox",
|
|
43
43
|
"name": "Sandbox",
|
|
44
|
-
"description": "Forge sandbox provisioning profiles
|
|
44
|
+
"description": "Forge sandbox provisioning profiles \u2014 capability ceilings for the OS-layer envelope (writable paths, egress, exec, mechanism toggles, isolation tier)."
|
|
45
45
|
}
|
|
46
46
|
],
|
|
47
47
|
"defaults": [
|
|
@@ -52,7 +52,10 @@
|
|
|
52
52
|
"category": "organization",
|
|
53
53
|
"file": "defaults/baseline.cedar",
|
|
54
54
|
"severity": "low",
|
|
55
|
-
"tags": [
|
|
55
|
+
"tags": [
|
|
56
|
+
"category:organization",
|
|
57
|
+
"posture:permit-default"
|
|
58
|
+
],
|
|
56
59
|
"is_active": true
|
|
57
60
|
}
|
|
58
61
|
],
|
|
@@ -64,7 +67,10 @@
|
|
|
64
67
|
"category": "organization",
|
|
65
68
|
"file": "defaults/baseline.cedar",
|
|
66
69
|
"severity": "low",
|
|
67
|
-
"tags": [
|
|
70
|
+
"tags": [
|
|
71
|
+
"category:organization",
|
|
72
|
+
"posture:permit-default"
|
|
73
|
+
],
|
|
68
74
|
"auto_deploy": true
|
|
69
75
|
},
|
|
70
76
|
{
|
|
@@ -74,7 +80,12 @@
|
|
|
74
80
|
"category": "sandbox",
|
|
75
81
|
"file": "profiles/locked_down.cedar",
|
|
76
82
|
"severity": "high",
|
|
77
|
-
"tags": [
|
|
83
|
+
"tags": [
|
|
84
|
+
"category:sandbox",
|
|
85
|
+
"surface:provision-sandbox",
|
|
86
|
+
"scope:per-agent",
|
|
87
|
+
"posture:deny-default"
|
|
88
|
+
]
|
|
78
89
|
},
|
|
79
90
|
{
|
|
80
91
|
"id": "sandbox.data-processing",
|
|
@@ -83,7 +94,12 @@
|
|
|
83
94
|
"category": "sandbox",
|
|
84
95
|
"file": "profiles/data_processing.cedar",
|
|
85
96
|
"severity": "high",
|
|
86
|
-
"tags": [
|
|
97
|
+
"tags": [
|
|
98
|
+
"category:sandbox",
|
|
99
|
+
"surface:provision-sandbox",
|
|
100
|
+
"scope:per-agent",
|
|
101
|
+
"posture:deny-default"
|
|
102
|
+
]
|
|
87
103
|
},
|
|
88
104
|
{
|
|
89
105
|
"id": "sandbox.network-dev",
|
|
@@ -92,7 +108,12 @@
|
|
|
92
108
|
"category": "sandbox",
|
|
93
109
|
"file": "profiles/network_dev.cedar",
|
|
94
110
|
"severity": "high",
|
|
95
|
-
"tags": [
|
|
111
|
+
"tags": [
|
|
112
|
+
"category:sandbox",
|
|
113
|
+
"surface:provision-sandbox",
|
|
114
|
+
"scope:per-agent",
|
|
115
|
+
"posture:deny-default"
|
|
116
|
+
]
|
|
96
117
|
},
|
|
97
118
|
{
|
|
98
119
|
"id": "sandbox.gpu-training",
|
|
@@ -101,7 +122,730 @@
|
|
|
101
122
|
"category": "sandbox",
|
|
102
123
|
"file": "profiles/gpu_training.cedar",
|
|
103
124
|
"severity": "high",
|
|
104
|
-
"tags": [
|
|
125
|
+
"tags": [
|
|
126
|
+
"category:sandbox",
|
|
127
|
+
"surface:provision-sandbox",
|
|
128
|
+
"scope:per-agent",
|
|
129
|
+
"posture:deny-default"
|
|
130
|
+
]
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"id": "data-protection.defaults",
|
|
134
|
+
"name": "Secrets Detection",
|
|
135
|
+
"description": "Block content containing API keys, tokens, credentials, or other secrets across prompts, tool calls, and file operations.",
|
|
136
|
+
"category": "data-protection",
|
|
137
|
+
"file": "ported/data-protection/data_protection_defaults.cedar",
|
|
138
|
+
"severity": "critical",
|
|
139
|
+
"tags": [
|
|
140
|
+
"category:data-protection",
|
|
141
|
+
"threat:secrets",
|
|
142
|
+
"owasp:llm06"
|
|
143
|
+
]
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"id": "security.injection",
|
|
147
|
+
"name": "Injection & Jailbreak Detection",
|
|
148
|
+
"description": "Block prompt injection and jailbreak attempts using ML classifier confidence plus invisible-character defence.",
|
|
149
|
+
"category": "threat-detection",
|
|
150
|
+
"file": "ported/threat-detection/security_injection.cedar",
|
|
151
|
+
"severity": "high",
|
|
152
|
+
"tags": [
|
|
153
|
+
"category:security",
|
|
154
|
+
"threat:injection",
|
|
155
|
+
"threat:jailbreak",
|
|
156
|
+
"detection:ml",
|
|
157
|
+
"owasp:llm01",
|
|
158
|
+
"owasp:llm02"
|
|
159
|
+
]
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
"id": "privacy.defaults",
|
|
163
|
+
"name": "Structural PII",
|
|
164
|
+
"description": "Block well-formatted sensitive identifiers \u2014 SSNs, credit cards, IBANs, API keys \u2014 via fast deterministic pattern matching. High precision, low latency, few false positives; use as the always-on baseline.",
|
|
165
|
+
"category": "data-protection",
|
|
166
|
+
"file": "ported/data-protection/privacy_defaults.cedar",
|
|
167
|
+
"severity": "critical",
|
|
168
|
+
"tags": [
|
|
169
|
+
"category:privacy",
|
|
170
|
+
"threat:pii",
|
|
171
|
+
"detection:pattern",
|
|
172
|
+
"compliance:pci-dss",
|
|
173
|
+
"compliance:hipaa"
|
|
174
|
+
]
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
"id": "privacy.pii-model",
|
|
178
|
+
"name": "Contextual PII",
|
|
179
|
+
"description": "Block the same sensitive identifiers when the ML model infers them from surrounding context \u2014 catches unstructured or novel PII the structural patterns miss. Higher recall; requires the pii_model detector.",
|
|
180
|
+
"category": "data-protection",
|
|
181
|
+
"file": "ported/data-protection/privacy_pii_model.cedar",
|
|
182
|
+
"severity": "critical",
|
|
183
|
+
"tags": [
|
|
184
|
+
"category:privacy",
|
|
185
|
+
"threat:pii",
|
|
186
|
+
"detection:ml",
|
|
187
|
+
"compliance:pci-dss",
|
|
188
|
+
"compliance:hipaa"
|
|
189
|
+
]
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
"id": "trust-safety.toxicity",
|
|
193
|
+
"name": "Toxicity & Content Moderation",
|
|
194
|
+
"description": "Block toxic, violent, hateful, sexual, and profane content using classifier scores with a combined-toxicity catch-all.",
|
|
195
|
+
"category": "content-safety",
|
|
196
|
+
"file": "ported/content-safety/trust_safety_toxicity.cedar",
|
|
197
|
+
"severity": "critical",
|
|
198
|
+
"tags": [
|
|
199
|
+
"category:trust-safety",
|
|
200
|
+
"threat:harmful",
|
|
201
|
+
"threat:hate-speech",
|
|
202
|
+
"detection:ml",
|
|
203
|
+
"compliance:eu-ai-act"
|
|
204
|
+
]
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
"id": "agent-security.tool-risk",
|
|
208
|
+
"name": "Tool Risk",
|
|
209
|
+
"description": "Block dangerous tool calls, shell execution, and sensitive tools with elevated risk scores.",
|
|
210
|
+
"category": "agent-security",
|
|
211
|
+
"file": "ported/agent-security/agent_security_tool_risk.cedar",
|
|
212
|
+
"severity": "critical",
|
|
213
|
+
"tags": [
|
|
214
|
+
"category:agent-security",
|
|
215
|
+
"threat:command-injection",
|
|
216
|
+
"owasp:llm06",
|
|
217
|
+
"owasp:asi02"
|
|
218
|
+
]
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
"id": "agent-security.malicious-package",
|
|
222
|
+
"name": "Malicious Package",
|
|
223
|
+
"description": "Block package installs (pip, npm, yarn, pnpm, bun, uv, gem, cargo, go, composer) flagged as malicious.",
|
|
224
|
+
"category": "agent-security",
|
|
225
|
+
"file": "ported/agent-security/agent_security_malicious_package.cedar",
|
|
226
|
+
"severity": "critical",
|
|
227
|
+
"tags": [
|
|
228
|
+
"category:agent-security",
|
|
229
|
+
"threat:supply-chain",
|
|
230
|
+
"owasp:llm03",
|
|
231
|
+
"owasp:asi02"
|
|
232
|
+
]
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
"id": "agent-security.defaults",
|
|
236
|
+
"name": "Agentic Safety",
|
|
237
|
+
"description": "Block tool-call loops, exfiltration patterns, budget violations, tool poisoning, rug pull, and MCP configuration risks.",
|
|
238
|
+
"category": "agent-security",
|
|
239
|
+
"file": "ported/agent-security/agent_security_defaults.cedar",
|
|
240
|
+
"severity": "critical",
|
|
241
|
+
"tags": [
|
|
242
|
+
"category:agent-security",
|
|
243
|
+
"threat:loop",
|
|
244
|
+
"threat:exfiltration",
|
|
245
|
+
"threat:tool-poisoning",
|
|
246
|
+
"threat:rug-pull",
|
|
247
|
+
"owasp:asi01",
|
|
248
|
+
"owasp:asi04"
|
|
249
|
+
]
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
"id": "security.patterns",
|
|
253
|
+
"name": "Security Pattern Detection",
|
|
254
|
+
"description": "Block command injection, path traversal, and SQL injection using regex-based pattern detection.",
|
|
255
|
+
"category": "threat-detection",
|
|
256
|
+
"file": "ported/threat-detection/security_patterns.cedar",
|
|
257
|
+
"severity": "critical",
|
|
258
|
+
"tags": [
|
|
259
|
+
"category:security",
|
|
260
|
+
"threat:command-injection",
|
|
261
|
+
"threat:sql-injection",
|
|
262
|
+
"threat:path-traversal",
|
|
263
|
+
"detection:pattern",
|
|
264
|
+
"mitre:t1059"
|
|
265
|
+
]
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
"id": "trust-safety.semantic",
|
|
269
|
+
"name": "Semantic Topic Enforcement",
|
|
270
|
+
"description": "Block content classified into dangerous topics (weapons, controlled substances, illegal activity).",
|
|
271
|
+
"category": "content-safety",
|
|
272
|
+
"file": "ported/content-safety/trust_safety_semantic.cedar",
|
|
273
|
+
"severity": "critical",
|
|
274
|
+
"tags": [
|
|
275
|
+
"category:trust-safety",
|
|
276
|
+
"threat:harmful",
|
|
277
|
+
"detection:ml",
|
|
278
|
+
"compliance:eu-ai-act",
|
|
279
|
+
"compliance:iso-42001"
|
|
280
|
+
]
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
"id": "agent-identity.defaults",
|
|
284
|
+
"name": "Agent Identity & Trust",
|
|
285
|
+
"description": "Trust-based access control: block unverified agents from dangerous/sensitive tools, stricter thresholds for autonomous agents, cross-turn lockdown after session threats.",
|
|
286
|
+
"category": "agent-security",
|
|
287
|
+
"file": "ported/agent-security/agent_identity_defaults.cedar",
|
|
288
|
+
"severity": "critical",
|
|
289
|
+
"tags": [
|
|
290
|
+
"category:agent-identity",
|
|
291
|
+
"scope:per-agent",
|
|
292
|
+
"owasp:llm01"
|
|
293
|
+
]
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
"id": "tools.mcp-tool-permissions",
|
|
297
|
+
"name": "MCP Tool Permissions",
|
|
298
|
+
"description": "Per-tool MCP access control: example GitHub read/write split, org-wide exclusion list, unverified server block.",
|
|
299
|
+
"category": "tool-permissioning",
|
|
300
|
+
"file": "ported/tool-permissioning/tools_mcp_tool_permissions.cedar",
|
|
301
|
+
"severity": "critical",
|
|
302
|
+
"tags": [
|
|
303
|
+
"category:tools",
|
|
304
|
+
"threat:supply-chain",
|
|
305
|
+
"posture:deny-default"
|
|
306
|
+
]
|
|
307
|
+
},
|
|
308
|
+
{
|
|
309
|
+
"id": "tools.mcp-server-allowlist",
|
|
310
|
+
"name": "MCP Server Allowlist",
|
|
311
|
+
"description": "Restrict MCP server connections to a pre-approved list. Customize the allowlist values to match the servers permitted in your environment.",
|
|
312
|
+
"category": "tool-permissioning",
|
|
313
|
+
"file": "ported/tool-permissioning/tools_mcp_server_allowlist.cedar",
|
|
314
|
+
"severity": "medium",
|
|
315
|
+
"tags": [
|
|
316
|
+
"category:tools",
|
|
317
|
+
"surface:connect-server",
|
|
318
|
+
"scope:org-wide",
|
|
319
|
+
"posture:deny-default"
|
|
320
|
+
]
|
|
321
|
+
},
|
|
322
|
+
{
|
|
323
|
+
"id": "security.chat-assistant",
|
|
324
|
+
"name": "Chat Assistant \u2014 Security",
|
|
325
|
+
"description": "Aggressive injection and jailbreak defence for customer-facing chatbots (lower thresholds than defaults).",
|
|
326
|
+
"category": "threat-detection",
|
|
327
|
+
"file": "ported/threat-detection/security_chat_assistant.cedar",
|
|
328
|
+
"severity": "high",
|
|
329
|
+
"tags": [
|
|
330
|
+
"category:security",
|
|
331
|
+
"threat:injection",
|
|
332
|
+
"threat:jailbreak",
|
|
333
|
+
"detection:ml"
|
|
334
|
+
]
|
|
335
|
+
},
|
|
336
|
+
{
|
|
337
|
+
"id": "trust-safety.chat-assistant",
|
|
338
|
+
"name": "Chat Assistant \u2014 Trust & Safety",
|
|
339
|
+
"description": "Strict content moderation and topic restrictions for public-facing chat (lower toxicity thresholds).",
|
|
340
|
+
"category": "content-safety",
|
|
341
|
+
"file": "ported/content-safety/trust_safety_chat_assistant.cedar",
|
|
342
|
+
"severity": "critical",
|
|
343
|
+
"tags": [
|
|
344
|
+
"category:trust-safety",
|
|
345
|
+
"threat:harmful",
|
|
346
|
+
"compliance:eu-ai-act"
|
|
347
|
+
]
|
|
348
|
+
},
|
|
349
|
+
{
|
|
350
|
+
"id": "data-protection.code-block-write-secrets",
|
|
351
|
+
"name": "Code Agent \u2014 Secrets Protection",
|
|
352
|
+
"description": "Prevent code agents from writing detected secrets to output files.",
|
|
353
|
+
"category": "data-protection",
|
|
354
|
+
"file": "ported/data-protection/data_protection_code_block_write_secrets.cedar",
|
|
355
|
+
"severity": "critical",
|
|
356
|
+
"tags": [
|
|
357
|
+
"category:data-protection",
|
|
358
|
+
"threat:secrets"
|
|
359
|
+
]
|
|
360
|
+
},
|
|
361
|
+
{
|
|
362
|
+
"id": "security.code-agent-encoding",
|
|
363
|
+
"name": "Code Agent \u2014 Encoding Attacks",
|
|
364
|
+
"description": "Block invisible Unicode characters in tool arguments and file writes for coding agents.",
|
|
365
|
+
"category": "code-security",
|
|
366
|
+
"file": "ported/code-security/security_code_agent_encoding.cedar",
|
|
367
|
+
"severity": "critical",
|
|
368
|
+
"tags": [
|
|
369
|
+
"category:security",
|
|
370
|
+
"threat:invisible-chars",
|
|
371
|
+
"threat:injection"
|
|
372
|
+
]
|
|
373
|
+
},
|
|
374
|
+
{
|
|
375
|
+
"id": "security.code-agent-path-security",
|
|
376
|
+
"name": "Code Agent \u2014 Path Security",
|
|
377
|
+
"description": "Block .env files, credential files, system directories, key material, and destructive file operations for coding agents.",
|
|
378
|
+
"category": "code-security",
|
|
379
|
+
"file": "ported/code-security/security_code_agent_path_security.cedar",
|
|
380
|
+
"severity": "critical",
|
|
381
|
+
"tags": [
|
|
382
|
+
"category:security",
|
|
383
|
+
"threat:secrets",
|
|
384
|
+
"threat:path-traversal"
|
|
385
|
+
]
|
|
386
|
+
},
|
|
387
|
+
{
|
|
388
|
+
"id": "agent-security.code-agent",
|
|
389
|
+
"name": "Code Agent \u2014 Agentic Security",
|
|
390
|
+
"description": "Tool risk controls, shell blocking, loop detection, exfiltration prevention, and budget enforcement for coding assistants.",
|
|
391
|
+
"category": "code-security",
|
|
392
|
+
"file": "ported/code-security/agent_security_code_agent.cedar",
|
|
393
|
+
"severity": "critical",
|
|
394
|
+
"tags": [
|
|
395
|
+
"category:agent-security",
|
|
396
|
+
"threat:exfiltration",
|
|
397
|
+
"threat:loop",
|
|
398
|
+
"owasp:llm06"
|
|
399
|
+
]
|
|
400
|
+
},
|
|
401
|
+
{
|
|
402
|
+
"id": "agent-security.code-agent-supply-chain",
|
|
403
|
+
"name": "Code Agent \u2014 Supply Chain",
|
|
404
|
+
"description": "Block MCP server poisoning, indirect prompt injection, credential theft chains, destructive sequences, and malicious package installs for coding agents.",
|
|
405
|
+
"category": "code-security",
|
|
406
|
+
"file": "ported/code-security/agent_security_code_agent_supply_chain.cedar",
|
|
407
|
+
"severity": "critical",
|
|
408
|
+
"tags": [
|
|
409
|
+
"category:agent-security",
|
|
410
|
+
"threat:tool-poisoning",
|
|
411
|
+
"threat:indirect-injection",
|
|
412
|
+
"threat:exfiltration",
|
|
413
|
+
"owasp:asi01",
|
|
414
|
+
"owasp:asi04"
|
|
415
|
+
]
|
|
416
|
+
},
|
|
417
|
+
{
|
|
418
|
+
"id": "data-protection.data-pipeline",
|
|
419
|
+
"name": "Data Pipeline \u2014 Secrets",
|
|
420
|
+
"description": "Strict secrets detection for data pipelines and zero-tolerance secret writes.",
|
|
421
|
+
"category": "data-protection",
|
|
422
|
+
"file": "ported/data-protection/data_protection_data_pipeline.cedar",
|
|
423
|
+
"severity": "critical",
|
|
424
|
+
"tags": [
|
|
425
|
+
"category:data-protection",
|
|
426
|
+
"threat:secrets",
|
|
427
|
+
"owasp:llm06"
|
|
428
|
+
]
|
|
429
|
+
},
|
|
430
|
+
{
|
|
431
|
+
"id": "security.data-pipeline-block-injection",
|
|
432
|
+
"name": "Data Pipeline \u2014 Injection Defence",
|
|
433
|
+
"description": "Lower injection threshold for RAG and data processing pipelines.",
|
|
434
|
+
"category": "threat-detection",
|
|
435
|
+
"file": "ported/threat-detection/security_data_pipeline_block_injection.cedar",
|
|
436
|
+
"severity": "high",
|
|
437
|
+
"tags": [
|
|
438
|
+
"category:security",
|
|
439
|
+
"threat:injection",
|
|
440
|
+
"owasp:llm01"
|
|
441
|
+
]
|
|
442
|
+
},
|
|
443
|
+
{
|
|
444
|
+
"id": "agent-security.data-pipeline",
|
|
445
|
+
"name": "Data Pipeline \u2014 Agentic Security",
|
|
446
|
+
"description": "Exfiltration prevention and tool risk controls for data processing pipelines.",
|
|
447
|
+
"category": "agent-security",
|
|
448
|
+
"file": "ported/agent-security/agent_security_data_pipeline.cedar",
|
|
449
|
+
"severity": "critical",
|
|
450
|
+
"tags": [
|
|
451
|
+
"category:agent-security",
|
|
452
|
+
"threat:exfiltration"
|
|
453
|
+
]
|
|
454
|
+
},
|
|
455
|
+
{
|
|
456
|
+
"id": "agent-identity.multi-agent-trust",
|
|
457
|
+
"name": "Multi-Agent Orchestration \u2014 Agent Trust",
|
|
458
|
+
"description": "Tiered trust access control: only first-party agents can use dangerous tools, unverified restricted to safe tools, lower risk ceilings for autonomous agents.",
|
|
459
|
+
"category": "agent-security",
|
|
460
|
+
"file": "ported/agent-security/agent_identity_multi_agent_trust.cedar",
|
|
461
|
+
"severity": "critical",
|
|
462
|
+
"tags": [
|
|
463
|
+
"category:agent-identity",
|
|
464
|
+
"scope:per-agent",
|
|
465
|
+
"owasp:llm01",
|
|
466
|
+
"owasp:llm02"
|
|
467
|
+
]
|
|
468
|
+
},
|
|
469
|
+
{
|
|
470
|
+
"id": "agent-identity.multi-agent-safety",
|
|
471
|
+
"name": "Multi-Agent Orchestration \u2014 Cross-Turn Safety",
|
|
472
|
+
"description": "Session-aware policies: PII/secrets containment, injection lockdown, cumulative risk circuit breakers for multi-agent sessions.",
|
|
473
|
+
"category": "agent-security",
|
|
474
|
+
"file": "ported/agent-security/agent_identity_multi_agent_safety.cedar",
|
|
475
|
+
"severity": "critical",
|
|
476
|
+
"tags": [
|
|
477
|
+
"category:agent-identity",
|
|
478
|
+
"scope:per-agent",
|
|
479
|
+
"threat:pii",
|
|
480
|
+
"threat:secrets",
|
|
481
|
+
"threat:injection"
|
|
482
|
+
]
|
|
483
|
+
},
|
|
484
|
+
{
|
|
485
|
+
"id": "agent-identity.a2a-cross-origin",
|
|
486
|
+
"name": "A2A Security \u2014 Cross-Origin Trust",
|
|
487
|
+
"description": "Block confused-deputy attacks and trust-boundary violations from cross-system agent communication.",
|
|
488
|
+
"category": "agent-security",
|
|
489
|
+
"file": "ported/agent-security/agent_identity_a2a_cross_origin.cedar",
|
|
490
|
+
"severity": "critical",
|
|
491
|
+
"tags": [
|
|
492
|
+
"category:agent-identity",
|
|
493
|
+
"threat:supply-chain",
|
|
494
|
+
"owasp:llm08",
|
|
495
|
+
"owasp:asi03"
|
|
496
|
+
]
|
|
497
|
+
},
|
|
498
|
+
{
|
|
499
|
+
"id": "agent-identity.a2a-inter-agent-injection",
|
|
500
|
+
"name": "A2A Security \u2014 Inter-Agent Injection Defence",
|
|
501
|
+
"description": "Block indirect injection via tool outputs, multi-turn progressive attacks via deep-context detection, and encoded payload delivery between agents.",
|
|
502
|
+
"category": "agent-security",
|
|
503
|
+
"file": "ported/agent-security/agent_identity_a2a_inter_agent_injection.cedar",
|
|
504
|
+
"severity": "critical",
|
|
505
|
+
"tags": [
|
|
506
|
+
"category:agent-identity",
|
|
507
|
+
"threat:indirect-injection",
|
|
508
|
+
"threat:encoded-payload",
|
|
509
|
+
"owasp:llm01"
|
|
510
|
+
]
|
|
511
|
+
},
|
|
512
|
+
{
|
|
513
|
+
"id": "agent-identity.a2a-supply-chain",
|
|
514
|
+
"name": "A2A Security \u2014 Supply Chain & Behavioural Drift",
|
|
515
|
+
"description": "Block tool poisoning from external agent ecosystems, rug pull behavioural drift, and credential theft chains.",
|
|
516
|
+
"category": "code-security",
|
|
517
|
+
"file": "ported/code-security/agent_identity_a2a_supply_chain.cedar",
|
|
518
|
+
"severity": "critical",
|
|
519
|
+
"tags": [
|
|
520
|
+
"category:agent-identity",
|
|
521
|
+
"threat:tool-poisoning",
|
|
522
|
+
"threat:rug-pull",
|
|
523
|
+
"threat:exfiltration",
|
|
524
|
+
"owasp:asi04"
|
|
525
|
+
]
|
|
526
|
+
},
|
|
527
|
+
{
|
|
528
|
+
"id": "agent-identity.a2a-identity-enforcement",
|
|
529
|
+
"name": "A2A Security \u2014 Agent Identity Enforcement",
|
|
530
|
+
"description": "Enforce strict identity requirements for cross-system agents: block anonymous, require framework registration, prevent unverified autonomous.",
|
|
531
|
+
"category": "agent-security",
|
|
532
|
+
"file": "ported/agent-security/agent_identity_a2a_identity_enforcement.cedar",
|
|
533
|
+
"severity": "critical",
|
|
534
|
+
"tags": [
|
|
535
|
+
"category:agent-identity",
|
|
536
|
+
"threat:spoofing",
|
|
537
|
+
"scope:per-agent",
|
|
538
|
+
"owasp:asi04"
|
|
539
|
+
]
|
|
540
|
+
},
|
|
541
|
+
{
|
|
542
|
+
"id": "agent-identity.a2a-escalation",
|
|
543
|
+
"name": "A2A Security \u2014 Escalation Detection",
|
|
544
|
+
"description": "Detect progressive capability escalation across turns with session peak monitoring and cumulative risk circuit breakers.",
|
|
545
|
+
"category": "agent-security",
|
|
546
|
+
"file": "ported/agent-security/agent_identity_a2a_escalation.cedar",
|
|
547
|
+
"severity": "critical",
|
|
548
|
+
"tags": [
|
|
549
|
+
"category:agent-identity",
|
|
550
|
+
"threat:escalation",
|
|
551
|
+
"scope:per-agent",
|
|
552
|
+
"owasp:llm01"
|
|
553
|
+
]
|
|
554
|
+
},
|
|
555
|
+
{
|
|
556
|
+
"id": "data-protection.advanced-secrets",
|
|
557
|
+
"name": "Advanced Detection \u2014 Granular Secrets",
|
|
558
|
+
"description": "Block specific high-risk credential types (cloud, GitHub, SSH, database) and general API tokens.",
|
|
559
|
+
"category": "data-protection",
|
|
560
|
+
"file": "ported/data-protection/data_protection_advanced_secrets.cedar",
|
|
561
|
+
"severity": "critical",
|
|
562
|
+
"tags": [
|
|
563
|
+
"category:data-protection",
|
|
564
|
+
"threat:secrets",
|
|
565
|
+
"owasp:llm06"
|
|
566
|
+
]
|
|
567
|
+
},
|
|
568
|
+
{
|
|
569
|
+
"id": "privacy.advanced-pii",
|
|
570
|
+
"name": "Comprehensive PII",
|
|
571
|
+
"description": "Block every PII type \u2014 structural and contextual, sensitive and situational. Situational entities (names, locations, dates, etc.) are real PII but appear in ordinary text, so this tier flags often; one forbid rule per entity lets you disable the ones you don't need. Opt-in for strict environments.",
|
|
572
|
+
"category": "data-protection",
|
|
573
|
+
"file": "ported/data-protection/privacy_advanced_pii.cedar",
|
|
574
|
+
"severity": "critical",
|
|
575
|
+
"tags": [
|
|
576
|
+
"category:privacy",
|
|
577
|
+
"threat:pii",
|
|
578
|
+
"detection:pattern",
|
|
579
|
+
"compliance:pci-dss",
|
|
580
|
+
"compliance:hipaa"
|
|
581
|
+
]
|
|
582
|
+
},
|
|
583
|
+
{
|
|
584
|
+
"id": "security.advanced-block-critical-severity",
|
|
585
|
+
"name": "Advanced Detection \u2014 Threat Severity",
|
|
586
|
+
"description": "Catch-all that blocks any content flagged as critical severity by any detector.",
|
|
587
|
+
"category": "threat-detection",
|
|
588
|
+
"file": "ported/threat-detection/security_advanced_block_critical_severity.cedar",
|
|
589
|
+
"severity": "critical",
|
|
590
|
+
"tags": [
|
|
591
|
+
"category:security",
|
|
592
|
+
"detection:aggregate",
|
|
593
|
+
"posture:catch-all"
|
|
594
|
+
]
|
|
595
|
+
},
|
|
596
|
+
{
|
|
597
|
+
"id": "agent-security.param-validation",
|
|
598
|
+
"name": "Action Parameter Validation",
|
|
599
|
+
"description": "Validate tool-call arguments by type, range, pattern, and allowlist/blocklist. Customize the thresholds and lists for your tenant.",
|
|
600
|
+
"category": "agent-security",
|
|
601
|
+
"file": "ported/agent-security/agent_security_param_validation.cedar",
|
|
602
|
+
"severity": "high",
|
|
603
|
+
"tags": [
|
|
604
|
+
"category:agent-security",
|
|
605
|
+
"surface:call-tool",
|
|
606
|
+
"aarm:r3",
|
|
607
|
+
"posture:deny-default"
|
|
608
|
+
]
|
|
609
|
+
},
|
|
610
|
+
{
|
|
611
|
+
"id": "semantic.defaults",
|
|
612
|
+
"name": "Semantic Threat Detection",
|
|
613
|
+
"description": "Block injection attacks (command, SQL, path, encoded) plus ML-detected prompt injection and jailbreak attempts.",
|
|
614
|
+
"category": "threat-detection",
|
|
615
|
+
"file": "ported/threat-detection/semantic_defaults.cedar",
|
|
616
|
+
"severity": "critical",
|
|
617
|
+
"tags": [
|
|
618
|
+
"category:semantic",
|
|
619
|
+
"threat:injection",
|
|
620
|
+
"threat:jailbreak",
|
|
621
|
+
"owasp:llm01",
|
|
622
|
+
"owasp:llm02"
|
|
623
|
+
]
|
|
624
|
+
},
|
|
625
|
+
{
|
|
626
|
+
"id": "trust-safety.defaults",
|
|
627
|
+
"name": "Content Safety",
|
|
628
|
+
"description": "Block violent, hateful, sexual, criminal content plus excessive profanity using ML classifier scores.",
|
|
629
|
+
"category": "content-safety",
|
|
630
|
+
"file": "ported/content-safety/trust_safety_defaults.cedar",
|
|
631
|
+
"severity": "critical",
|
|
632
|
+
"tags": [
|
|
633
|
+
"category:trust-safety",
|
|
634
|
+
"threat:harmful",
|
|
635
|
+
"compliance:eu-ai-act",
|
|
636
|
+
"compliance:iso-42001"
|
|
637
|
+
]
|
|
638
|
+
},
|
|
639
|
+
{
|
|
640
|
+
"id": "tools.defaults",
|
|
641
|
+
"name": "Tool Permissioning",
|
|
642
|
+
"description": "Block sensitive system-path file access and destructive MCP file-operation tools.",
|
|
643
|
+
"category": "tool-permissioning",
|
|
644
|
+
"file": "ported/tool-permissioning/tools_defaults.cedar",
|
|
645
|
+
"severity": "high",
|
|
646
|
+
"tags": [
|
|
647
|
+
"category:tools",
|
|
648
|
+
"threat:path-traversal",
|
|
649
|
+
"detection:pattern",
|
|
650
|
+
"mitre:t1005",
|
|
651
|
+
"owasp:asi02"
|
|
652
|
+
]
|
|
653
|
+
},
|
|
654
|
+
{
|
|
655
|
+
"id": "tools.block-shell",
|
|
656
|
+
"name": "Block shell and command execution",
|
|
657
|
+
"description": "Blocks call_tool when tool_name is shell, bash, sh, terminal, cmd, or powershell.",
|
|
658
|
+
"category": "tool-permissioning",
|
|
659
|
+
"file": "ported/tool-permissioning/tools_block_shell.cedar",
|
|
660
|
+
"severity": "critical",
|
|
661
|
+
"tags": [
|
|
662
|
+
"category:tools",
|
|
663
|
+
"threat:command-injection",
|
|
664
|
+
"detection:rule",
|
|
665
|
+
"surface:call-tool",
|
|
666
|
+
"owasp:llm06",
|
|
667
|
+
"mitre:t1059"
|
|
668
|
+
]
|
|
669
|
+
},
|
|
670
|
+
{
|
|
671
|
+
"id": "tools.bash-operation-classes",
|
|
672
|
+
"name": "Bash Operation Class Restrictions",
|
|
673
|
+
"description": "Tiered shell control from the bash AST classifier: blocks network access and writes, requires step-up approval for execute-enabling or unrecognized commands; closes MCP guardrail bypass via the shell.",
|
|
674
|
+
"category": "tool-permissioning",
|
|
675
|
+
"file": "ported/tool-permissioning/tools_bash_operation_classes.cedar",
|
|
676
|
+
"severity": "high",
|
|
677
|
+
"tags": [
|
|
678
|
+
"category:tools",
|
|
679
|
+
"threat:exfiltration",
|
|
680
|
+
"threat:command-injection",
|
|
681
|
+
"detection:rule",
|
|
682
|
+
"surface:call-tool",
|
|
683
|
+
"owasp:asi02",
|
|
684
|
+
"mitre:t1059",
|
|
685
|
+
"step-up"
|
|
686
|
+
]
|
|
687
|
+
},
|
|
688
|
+
{
|
|
689
|
+
"id": "organization.deny-baseline",
|
|
690
|
+
"name": "Default Deny All",
|
|
691
|
+
"description": "Organization-wide deny baseline; combine with scoped permit rules for deny-by-default posture.",
|
|
692
|
+
"category": "organization",
|
|
693
|
+
"file": "ported/organization/organization_deny_baseline.cedar",
|
|
694
|
+
"severity": "high",
|
|
695
|
+
"tags": [
|
|
696
|
+
"category:organization",
|
|
697
|
+
"posture:deny-default",
|
|
698
|
+
"scope:org-wide"
|
|
699
|
+
]
|
|
700
|
+
},
|
|
701
|
+
{
|
|
702
|
+
"id": "organization.team-permissions",
|
|
703
|
+
"name": "Project-Based Permissions (ReBAC)",
|
|
704
|
+
"description": "Grant IDE access based on project scope using Cedar entity hierarchy \u2014 example dev/support project split.",
|
|
705
|
+
"category": "organization",
|
|
706
|
+
"file": "ported/organization/organization_team_permissions.cedar",
|
|
707
|
+
"severity": "medium",
|
|
708
|
+
"tags": [
|
|
709
|
+
"category:organization",
|
|
710
|
+
"scope:per-tool",
|
|
711
|
+
"posture:deny-default"
|
|
712
|
+
]
|
|
713
|
+
},
|
|
714
|
+
{
|
|
715
|
+
"id": "agent-identity.claude-block-injection",
|
|
716
|
+
"name": "Agent-Specific Guardrails",
|
|
717
|
+
"description": "Per-agent security guardrails \u2014 injection blocking for the Claude agent. Customize agent IDs for your deployment. PII is handled by the privacy.* templates.",
|
|
718
|
+
"category": "agent-security",
|
|
719
|
+
"file": "ported/agent-security/agent_identity_claude_block_injection.cedar",
|
|
720
|
+
"severity": "critical",
|
|
721
|
+
"tags": [
|
|
722
|
+
"category:agent-identity",
|
|
723
|
+
"scope:per-agent",
|
|
724
|
+
"threat:injection"
|
|
725
|
+
]
|
|
726
|
+
}
|
|
727
|
+
],
|
|
728
|
+
"profiles": [
|
|
729
|
+
{
|
|
730
|
+
"id": "baseline-protection",
|
|
731
|
+
"name": "Baseline Protection",
|
|
732
|
+
"description": "The essential starting set for any agent: prompt-injection defense, secrets and PII blocking, and toxicity moderation. Safe to deploy fleet-wide.",
|
|
733
|
+
"severity": "high",
|
|
734
|
+
"tags": [
|
|
735
|
+
"baseline",
|
|
736
|
+
"injection",
|
|
737
|
+
"secrets",
|
|
738
|
+
"pii",
|
|
739
|
+
"toxicity"
|
|
740
|
+
],
|
|
741
|
+
"template_ids": [
|
|
742
|
+
"security.injection",
|
|
743
|
+
"security.patterns",
|
|
744
|
+
"data-protection.defaults",
|
|
745
|
+
"privacy.pii-model",
|
|
746
|
+
"trust-safety.toxicity"
|
|
747
|
+
]
|
|
748
|
+
},
|
|
749
|
+
{
|
|
750
|
+
"id": "code-agent",
|
|
751
|
+
"name": "Code Agent",
|
|
752
|
+
"description": "For coding assistants and dev agents: path-traversal and encoding-attack defense, supply-chain and malicious-package blocking, shell-command control, secret-write prevention, and tool-risk scoring.",
|
|
753
|
+
"severity": "high",
|
|
754
|
+
"tags": [
|
|
755
|
+
"code-agent",
|
|
756
|
+
"supply-chain",
|
|
757
|
+
"shell",
|
|
758
|
+
"path-security",
|
|
759
|
+
"secrets"
|
|
760
|
+
],
|
|
761
|
+
"template_ids": [
|
|
762
|
+
"security.code-agent-encoding",
|
|
763
|
+
"security.code-agent-path-security",
|
|
764
|
+
"agent-security.code-agent",
|
|
765
|
+
"agent-security.code-agent-supply-chain",
|
|
766
|
+
"agent-security.malicious-package",
|
|
767
|
+
"data-protection.code-block-write-secrets",
|
|
768
|
+
"tools.block-shell",
|
|
769
|
+
"agent-security.tool-risk"
|
|
770
|
+
]
|
|
771
|
+
},
|
|
772
|
+
{
|
|
773
|
+
"id": "mcp-gateway",
|
|
774
|
+
"name": "MCP Gateway Egress Guard",
|
|
775
|
+
"description": "For MCP/tool traffic through the AI Gateway: per-tool and per-server allow-listing, malicious-package blocking, tool-risk scoring, and secret exfiltration prevention.",
|
|
776
|
+
"severity": "high",
|
|
777
|
+
"tags": [
|
|
778
|
+
"mcp",
|
|
779
|
+
"tools",
|
|
780
|
+
"egress",
|
|
781
|
+
"allowlist",
|
|
782
|
+
"secrets"
|
|
783
|
+
],
|
|
784
|
+
"template_ids": [
|
|
785
|
+
"tools.mcp-tool-permissions",
|
|
786
|
+
"tools.mcp-server-allowlist",
|
|
787
|
+
"agent-security.malicious-package",
|
|
788
|
+
"agent-security.tool-risk",
|
|
789
|
+
"data-protection.defaults"
|
|
790
|
+
]
|
|
791
|
+
},
|
|
792
|
+
{
|
|
793
|
+
"id": "chat-assistant",
|
|
794
|
+
"name": "Chat Assistant",
|
|
795
|
+
"description": "For customer-facing chatbots: aggressive injection and jailbreak defense, strict toxicity moderation, and PII blocking in prompts and responses.",
|
|
796
|
+
"severity": "high",
|
|
797
|
+
"tags": [
|
|
798
|
+
"chat-assistant",
|
|
799
|
+
"toxicity",
|
|
800
|
+
"pii",
|
|
801
|
+
"injection"
|
|
802
|
+
],
|
|
803
|
+
"template_ids": [
|
|
804
|
+
"security.chat-assistant",
|
|
805
|
+
"trust-safety.chat-assistant",
|
|
806
|
+
"trust-safety.toxicity",
|
|
807
|
+
"privacy.pii-model",
|
|
808
|
+
"security.injection"
|
|
809
|
+
]
|
|
810
|
+
},
|
|
811
|
+
{
|
|
812
|
+
"id": "data-pipeline",
|
|
813
|
+
"name": "Data Pipeline",
|
|
814
|
+
"description": "For batch and data-processing agents: bulk secret and PII protection, data-pipeline-scoped injection defense, and agentic data-handling controls.",
|
|
815
|
+
"severity": "medium",
|
|
816
|
+
"tags": [
|
|
817
|
+
"data-pipeline",
|
|
818
|
+
"secrets",
|
|
819
|
+
"pii",
|
|
820
|
+
"data-protection"
|
|
821
|
+
],
|
|
822
|
+
"template_ids": [
|
|
823
|
+
"data-protection.data-pipeline",
|
|
824
|
+
"data-protection.defaults",
|
|
825
|
+
"privacy.advanced-pii",
|
|
826
|
+
"security.data-pipeline-block-injection",
|
|
827
|
+
"agent-security.data-pipeline"
|
|
828
|
+
]
|
|
829
|
+
},
|
|
830
|
+
{
|
|
831
|
+
"id": "multi-agent",
|
|
832
|
+
"name": "Multi-Agent Security",
|
|
833
|
+
"description": "For agent-to-agent (A2A) and multi-agent systems: cross-origin and inter-agent injection defense, identity enforcement, privilege-escalation detection, and multi-agent trust controls.",
|
|
834
|
+
"severity": "high",
|
|
835
|
+
"tags": [
|
|
836
|
+
"multi-agent",
|
|
837
|
+
"a2a",
|
|
838
|
+
"identity",
|
|
839
|
+
"escalation"
|
|
840
|
+
],
|
|
841
|
+
"template_ids": [
|
|
842
|
+
"agent-identity.multi-agent-trust",
|
|
843
|
+
"agent-identity.multi-agent-safety",
|
|
844
|
+
"agent-identity.a2a-cross-origin",
|
|
845
|
+
"agent-identity.a2a-inter-agent-injection",
|
|
846
|
+
"agent-identity.a2a-identity-enforcement",
|
|
847
|
+
"agent-identity.a2a-escalation"
|
|
848
|
+
]
|
|
105
849
|
}
|
|
106
850
|
]
|
|
107
851
|
}
|