Skip to content

Commit be80d7f

Browse files
authored
[Rule Tuning] Additional GenAI context for Domains & Cred File Access (#5958)
1 parent 876e4ed commit be80d7f

2 files changed

Lines changed: 127 additions & 28 deletions

File tree

rules/cross-platform/command_and_control_common_llm_endpoint.toml

Lines changed: 100 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22
creation_date = "2025/09/01"
33
integration = ["endpoint", "windows", "sentinel_one_cloud_funnel"]
44
maturity = "production"
5-
updated_date = "2026/04/07"
6-
5+
updated_date = "2026/04/21"
76

87
[rule]
98
author = ["Elastic"]
@@ -17,7 +16,7 @@ index = [
1716
"logs-endpoint.events.network-*",
1817
"logs-sentinel_one_cloud_funnel.*",
1918
"logs-windows.sysmon_operational-*",
20-
"winlogbeat-*"
19+
"winlogbeat-*",
2120
]
2221
language = "eql"
2322
license = "Elastic License v2"
@@ -103,11 +102,12 @@ network where host.os.type in ("macos", "windows") and dns.question.name != null
103102
"generativelanguage.googleapis.com",
104103
"api.azure.com",
105104
"api.bedrock.aws",
106-
"bedrock-runtime.amazonaws.com",
105+
"bedrock-runtime.*.amazonaws.com",
107106
108107
// Hugging Face & other ML infra
109108
"api-inference.huggingface.co",
110109
"inference-endpoint.huggingface.cloud",
110+
"router.huggingface.co",
111111
"*.hf.space",
112112
"*.replicate.com",
113113
"api.replicate.com",
@@ -116,6 +116,99 @@ network where host.os.type in ("macos", "windows") and dns.question.name != null
116116
"api.modal.com",
117117
"*.forefront.ai",
118118
119+
"api.arcee.ai",
120+
"api.sambanova.ai",
121+
"chatapi.akash.network",
122+
"api.reka.ai",
123+
"api.cerebras.ai",
124+
"api.morphllm.com",
125+
"openrouter.ai",
126+
"api.moonshot.cn",
127+
"api.moonshot.ai",
128+
"api.z.ai",
129+
"api.inference.wandb.ai",
130+
"trace.wandb.ai",
131+
"api.bfl.ai",
132+
"api.eu.bfl.ai",
133+
"api.us.bfl.ai",
134+
"api.ionstream.ai",
135+
"api.minimax.io",
136+
"api.minimaxi.com",
137+
"api.stepfun.ai",
138+
"api.stepfun.com",
139+
"api.featherless.ai",
140+
"api.intelligence.io.solutions",
141+
"api.fireworks.ai",
142+
"inference.baseten.co",
143+
"api.baseten.co",
144+
"api.gmi-serving.com",
145+
"api.ncompass.tech",
146+
"api.nextbit256.com",
147+
"api.hyperbolic.xyz",
148+
"neuro.mancer.tech",
149+
"managed-inference-api-proxy.crusoecloud.com",
150+
"api.crusoe.ai",
151+
"api.avian.io",
152+
"api.siliconflow.cn",
153+
"api.totalgpt.ai",
154+
"switchpoint.dev",
155+
"api.novita.ai",
156+
"api.inflection.ai",
157+
"api.wavespeed.ai",
158+
"api.cloud.mara.com",
159+
"api.inference.net",
160+
"api.deepinfra.com",
161+
"api.xiaomimimo.com",
162+
"dashscope.aliyuncs.com",
163+
"dashscope-intl.aliyuncs.com",
164+
"dashscope-us.aliyuncs.com",
165+
"integrate.api.nvidia.com",
166+
"api.inceptionlabs.ai",
167+
"api.friendli.ai",
168+
"external.api.recraft.ai",
169+
"api.cloudflare.com",
170+
"gateway.ai.cloudflare.com",
171+
"api.studio.nebius.ai",
172+
"api.tokenfactory.nebius.com",
173+
"api.aionlabs.ai",
174+
"api.relace.run",
175+
"instantapply.endpoint.relace.run",
176+
"ranker.endpoint.relace.run",
177+
"embeddings.endpoint.relace.run",
178+
"console-api.inference.ai",
179+
"api.parasail.io",
180+
"api.redpill.ai",
181+
"api.modular.com",
182+
"ark.cn-beijing.volces.com",
183+
"ark.ap-southeast.bytepluses.com",
184+
"ai2endpoints.cirrascale.ai",
185+
"aisuite.cirrascale.com",
186+
"api.clarifai.com",
187+
"api.venice.ai",
188+
"api.atlascloud.ai",
189+
"wanqing.streamlakeapi.com",
190+
"api.ambient.xyz",
191+
"api.upstage.ai",
192+
"api.together.xyz",
193+
"api.inceptron.io",
194+
"chutes.ai",
195+
"aiplatform.googleapis.com",
196+
"portal.nousresearch.com",
197+
"inference-api.nousresearch.com",
198+
"api.githubcopilot.com",
199+
"ai-gateway.vercel.sh",
200+
"opencode.ai",
201+
"api.kilo.ai",
202+
"qianfan.baidubce.com",
203+
"hunyuan.tencentcloudapi.com",
204+
"open.bigmodel.cn",
205+
"spark-api-open.xf-yun.com",
206+
"api.sensenova.cn",
207+
"api.baichuan-ai.com",
208+
"api-inference.modelscope.cn",
209+
"api.lingyiwanwu.com",
210+
"api.360.cn",
211+
119212
// Consumer-facing AI chat portals
120213
"chat.openai.com",
121214
"chatgpt.com",
@@ -151,18 +244,19 @@ network where host.os.type in ("macos", "windows") and dns.question.name != null
151244

152245
[[rule.threat]]
153246
framework = "MITRE ATT&CK"
154-
155247
[[rule.threat.technique]]
156248
id = "T1102"
157249
name = "Web Service"
158250
reference = "https://attack.mitre.org/techniques/T1102/"
159-
160251
[[rule.threat.technique.subtechnique]]
161252
id = "T1102.002"
162253
name = "Bidirectional Communication"
163254
reference = "https://attack.mitre.org/techniques/T1102/002/"
164255

256+
257+
165258
[rule.threat.tactic]
166259
id = "TA0011"
167260
name = "Command and Control"
168261
reference = "https://attack.mitre.org/tactics/TA0011/"
262+

rules/cross-platform/credential_access_genai_process_sensitive_file_access.toml

Lines changed: 27 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,16 @@
22
creation_date = "2025/12/04"
33
integration = ["endpoint"]
44
maturity = "production"
5-
updated_date = "2026/03/24"
5+
updated_date = "2026/04/21"
66

77
[rule]
88
author = ["Elastic"]
99
description = """
1010
Detects when GenAI tools access sensitive files such as cloud credentials, SSH keys, browser password databases, or
1111
shell configurations. Attackers leverage GenAI agents to systematically locate and exfiltrate credentials, API keys, and
1212
tokens. Access to credential stores (.aws/credentials, .ssh/id_*) suggests harvesting, while writes to shell configs
13-
(.bashrc, .zshrc) indicate persistence attempts. Note: On linux only creation events are available. Access events are not yet implemented.
13+
(.bashrc, .zshrc) indicate persistence attempts. Note: On linux only creation events are available. Access events are
14+
not yet implemented.
1415
"""
1516
from = "now-9m"
1617
index = ["logs-endpoint.events.file*"]
@@ -80,26 +81,31 @@ file where event.action in ("open", "creation", "modification") and event.outcom
8081
8182
// GenAI process
8283
(
83-
process.name in (
84-
"ollama.exe", "ollama", "Ollama",
84+
process.name in~ (
85+
"ollama.exe", "ollama",
8586
"textgen.exe", "textgen", "text-generation-webui.exe", "oobabooga.exe",
8687
"lmstudio.exe", "lmstudio", "LM Studio",
87-
"claude.exe", "claude", "Claude",
88-
"cursor.exe", "cursor", "Cursor",
89-
"copilot.exe", "copilot", "Copilot",
88+
"claude.exe", "claude",
89+
"cursor.exe", "cursor",
90+
"copilot.exe", "copilot",
9091
"codex.exe", "codex",
91-
"Jan", "jan.exe", "jan",
92-
"gpt4all.exe", "gpt4all", "GPT4All",
93-
"gemini-cli.exe", "gemini-cli",
92+
"jan.exe", "jan",
93+
"gpt4all.exe", "gpt4all",
94+
"gemini-cli.exe", "gemini-cli", "gemini.exe",
9495
"genaiscript.exe", "genaiscript",
9596
"grok.exe", "grok",
9697
"qwen.exe", "qwen",
97-
"koboldcpp.exe", "koboldcpp", "KoboldCpp",
98-
"llama-server", "llama-cli"
98+
"koboldcpp.exe", "koboldcpp",
99+
"llama-server", "llama-cli",
100+
"windsurf.exe", "windsurf",
101+
"zed.exe", "zed",
102+
"opencode.exe", "opencode",
103+
"goose.exe", "goose"
99104
) or
100-
// OpenClaw/Moltbot/Clawdbot via Node.js
101-
(process.name in ("node", "node.exe") and
102-
process.command_line like~ ("*openclaw*", "*moltbot*", "*clawdbot*"))
105+
// OpenClaw/Moltbot/Clawdbot family via Node.js
106+
(process.name in~ ("node", "node.exe") and
107+
process.command_line like~ ("*openclaw*", "*moltbot*", "*clawdbot*",
108+
"*nemoclaw*", "*nanoclaw*", "*picoclaw*"))
103109
) and
104110
105111
// Sensitive file paths
@@ -139,54 +145,53 @@ file where event.action in ("open", "creation", "modification") and event.outcom
139145

140146
[[rule.threat]]
141147
framework = "MITRE ATT&CK"
142-
143148
[[rule.threat.technique]]
144149
id = "T1552"
145150
name = "Unsecured Credentials"
146151
reference = "https://attack.mitre.org/techniques/T1552/"
147-
148152
[[rule.threat.technique.subtechnique]]
149153
id = "T1552.001"
150154
name = "Credentials In Files"
151155
reference = "https://attack.mitre.org/techniques/T1552/001/"
152156

157+
153158
[[rule.threat.technique]]
154159
id = "T1555"
155160
name = "Credentials from Password Stores"
156161
reference = "https://attack.mitre.org/techniques/T1555/"
157162

163+
158164
[rule.threat.tactic]
159165
id = "TA0006"
160166
name = "Credential Access"
161167
reference = "https://attack.mitre.org/tactics/TA0006/"
162-
163168
[[rule.threat]]
164169
framework = "MITRE ATT&CK"
165-
166170
[[rule.threat.technique]]
167171
id = "T1005"
168172
name = "Data from Local System"
169173
reference = "https://attack.mitre.org/techniques/T1005/"
170174

175+
171176
[rule.threat.tactic]
172177
id = "TA0009"
173178
name = "Collection"
174179
reference = "https://attack.mitre.org/tactics/TA0009/"
175-
176180
[[rule.threat]]
177181
framework = "MITRE ATT&CK"
178-
179182
[[rule.threat.technique]]
180183
id = "T1037"
181184
name = "Boot or Logon Initialization Scripts"
182185
reference = "https://attack.mitre.org/techniques/T1037/"
183-
184186
[[rule.threat.technique.subtechnique]]
185187
id = "T1037.004"
186188
name = "RC Scripts"
187189
reference = "https://attack.mitre.org/techniques/T1037/004/"
188190

191+
192+
189193
[rule.threat.tactic]
190194
id = "TA0003"
191195
name = "Persistence"
192196
reference = "https://attack.mitre.org/tactics/TA0003/"
197+

0 commit comments

Comments
 (0)