Skip to content

Commit a2bee33

Browse files
committed
adding highlighted fields to keep parameter
1 parent e492f5a commit a2bee33

File tree

2 files changed

+46
-25
lines changed

2 files changed

+46
-25
lines changed

rules/integrations/aws/discovery_multiple_discovery_api_calls_via_cli.toml

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
creation_date = "2024/11/04"
33
integration = ["aws"]
44
maturity = "production"
5-
updated_date = "2025/10/21"
5+
updated_date = "2025/12/04"
66

77
[rule]
88
author = ["Elastic"]
@@ -124,7 +124,7 @@ timestamp_override = "event.ingested"
124124
type = "esql"
125125

126126
query = '''
127-
from logs-aws.cloudtrail*
127+
from logs-aws.cloudtrail* metadata _id, _version, _index
128128
// create time window buckets of 10 seconds
129129
| eval Esql.time_window_date_trunc = date_trunc(10 seconds, @timestamp)
130130
@@ -166,7 +166,20 @@ from logs-aws.cloudtrail*
166166
| where starts_with(Esql.aws_cloudtrail_user_identity_arn_roles, "AWSServiceRoleForConfig") != true
167167
168168
// keep relevant fields (preserving ECS fields and computed time window)
169-
| keep @timestamp, Esql.time_window_date_trunc, event.action, aws.cloudtrail.user_identity.arn, aws.cloudtrail.user_identity.type, aws.cloudtrail.user_identity.access_key_id, source.ip, cloud.account.id, event.provider, user_agent.name, source.as.organization.name, cloud.region
169+
| keep
170+
@timestamp,
171+
Esql.time_window_date_trunc,
172+
event.action,
173+
aws.cloudtrail.user_identity.arn,
174+
aws.cloudtrail.user_identity.type,
175+
aws.cloudtrail.user_identity.access_key_id,
176+
source.ip,
177+
cloud.account.id,
178+
event.provider,
179+
user_agent.name,
180+
source.as.organization.name,
181+
cloud.region,
182+
data_stream.namespace
170183
171184
// count the number of unique API calls per time window and actor
172185
| stats
@@ -180,14 +193,12 @@ from logs-aws.cloudtrail*
180193
Esql.event_provider_values = VALUES(event.provider),
181194
Esql.user_agent_name_values = VALUES(user_agent.name),
182195
Esql.source_as_organization_name_values = VALUES(source.as.organization.name),
183-
Esql.cloud_region_values = VALUES(cloud.region)
196+
Esql.cloud_region_values = VALUES(cloud.region),
197+
Esql.data_stream_namespace_values = VALUES(data_stream.namespace)
184198
by Esql.time_window_date_trunc, aws.cloudtrail.user_identity.arn
185199
186200
// filter for more than 5 unique API calls per 10s window
187201
| where Esql.event_action_count_distinct > 5
188-
189-
// sort the results by the number of unique API calls in descending order
190-
| sort Esql.event_action_count_distinct desc
191202
'''
192203

193204

@@ -215,7 +226,7 @@ field_names = [
215226
"Esql.source_as_organization_name_values",
216227
"Esql.event_provider_values",
217228
"Esql.event_action_values",
218-
"Esql.cloud_region_values",
219-
"Esql.cloud_account_id_values"
229+
"Esql.cloud_account_id_values",
230+
"Esql.cloud_region_values"
220231
]
221232

rules_building_block/discovery_ec2_multi_region_describe_instances.toml

Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ bypass_bbr_timing = true
33
creation_date = "2024/08/26"
44
integration = ["aws"]
55
maturity = "production"
6-
updated_date = "2025/10/20"
6+
updated_date = "2025/12/04"
77

88
[rule]
99
author = ["Elastic"]
@@ -112,7 +112,7 @@ timestamp_override = "event.ingested"
112112
type = "esql"
113113

114114
query = '''
115-
from logs-aws.cloudtrail-*
115+
from logs-aws.cloudtrail-* metadata _id, _version, _index
116116
117117
// filter for DescribeInstances API calls
118118
| where event.dataset == "aws.cloudtrail"
@@ -131,20 +131,28 @@ from logs-aws.cloudtrail-*
131131
aws.cloudtrail.user_identity.access_key_id,
132132
aws.cloudtrail.user_identity.type,
133133
user_agent.original,
134+
source.as.organization.name,
134135
source.ip,
135-
@timestamp
136+
@timestamp,
137+
data_stream.namespace
136138
137139
// count the number of unique regions and total API calls within the 30-second window
138140
| stats
139141
Esql.cloud_region_count_distinct = count_distinct(cloud.region),
140-
Esql.event_count = count(*)
142+
Esql.event_count = count(*),
143+
Esql.event_timestamp_values = VALUES(@timestamp),
144+
Esql.aws_cloudtrail_user_identity_type_values = VALUES(aws.cloudtrail.user_identity.type),
145+
Esql.aws_cloudtrail_user_identity_access_key_id_values = VALUES(aws.cloudtrail.user_identity.access_key_id),
146+
Esql.source_ip_values = VALUES(source.ip),
147+
Esql.user_agent_original_values = VALUES(user_agent.original),
148+
Esql.source_as_organization_name_values = VALUES(source.as.organization.name),
149+
Esql.cloud_account_id_values = VALUES(cloud.account.id),
150+
Esql.cloud_region_values = VALUES(cloud.region),
151+
Esql.data_stream_namespace_values = VALUES(data_stream.namespace)
141152
by Esql.time_window_date_trunc, aws.cloudtrail.user_identity.arn
142153
143154
// filter for resources making DescribeInstances API calls in more than 10 regions within the 30-second window
144155
| where Esql.cloud_region_count_distinct >= 10 and Esql.event_count >= 10
145-
146-
// sort the results by time window in descending order
147-
| sort Esql.time_window_date_trunc desc
148156
'''
149157

150158

@@ -163,15 +171,17 @@ reference = "https://attack.mitre.org/tactics/TA0007/"
163171

164172
[rule.investigation_fields]
165173
field_names = [
174+
"Esql.cloud_region_count_distinct",
175+
"Esql.event_count",
176+
"Esql.event_timestamp_values",
166177
"aws.cloudtrail.user_identity.arn",
167-
"target_time_window",
168-
"region_count",
169-
"window_count",
170-
"cloud.account.id",
171-
"aws.cloudtrail.user_identity.access_key_id",
172-
"aws.cloudtrail.user_identity.type",
173-
"user_agent.original",
174-
"source.ip",
175-
"@timestamp",
178+
"Esql.aws_cloudtrail_user_identity_type_values",
179+
"Esql.aws_cloudtrail_user_identity_access_key_id_values",
180+
"Esql.source_ip_values",
181+
"Esql.user_agent_original_values",
182+
"Esql.source_as_organization_name_values",
183+
"Esql.cloud_account_id_values",
184+
"Esql.cloud_region_values",
185+
"Esql.data_stream_namespace_values"
176186
]
177187

0 commit comments

Comments
 (0)