Skip to content

Commit a5a5f01

Browse files
updated ESQL fields
1 parent a04d975 commit a5a5f01

19 files changed

+72
-74
lines changed

rules/integrations/aws/initial_access_signin_console_login_no_mfa.toml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -78,20 +78,19 @@ FROM logs-aws.cloudtrail-* METADATA _id, _version, _index
7878
7979
// Extract mobile version and MFA usage
8080
| dissect aws.cloudtrail.additional_eventdata
81-
"{%{?mobile_version_key}=%{Esql.device_version}, %{?mfa_used_key}=%{Esql.auth_mfa_used}}"
81+
"{%{?mobile_version_key}=%{Esql.aws_cloudtrail_additional_eventdata_device_version}, %{?mfa_used_key}=%{Esql.aws_cloudtrail_additional_eventdata_auth_mfa_used}}"
8282
8383
// Only keep events where MFA was not used
84-
| where Esql.auth_mfa_used == "No"
84+
| where Esql.aws_cloudtrail_additional_eventdata_auth_mfa_used == "No"
8585
8686
// Keep relevant ECS and dissected fields
8787
| keep
8888
@timestamp,
8989
event.action,
9090
aws.cloudtrail.event_type,
9191
aws.cloudtrail.user_identity.type,
92-
Esql.device_version,
93-
Esql.auth_mfa_used
94-
92+
Esql.aws_cloudtrail_additional_eventdata_device_version,
93+
Esql.aws_cloudtrail_additional_eventdata_auth_mfa_used
9594
'''
9695

9796

rules/integrations/azure/credential_access_azure_entra_suspicious_signin.toml

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -91,45 +91,44 @@ FROM logs-azure.signinlogs* METADATA _id, _version, _index
9191
9292
// Case classifications for identity usage
9393
| eval
94-
esql.azure.signinlogs.properties.authentication.device_code.case = case(
94+
Esql.azure_signinlogs_properties_authentication_device_code_case = case(
9595
azure.signinlogs.properties.authentication_protocol == "deviceCode"
9696
and azure.signinlogs.properties.authentication_requirement != "multiFactorAuthentication",
9797
azure.signinlogs.identity,
9898
null),
9999
100-
esql.azure.signinlogs.auth.visual_studio.case = case(
100+
Esql.azure_signinlogs_auth_visual_studio_case = case(
101101
azure.signinlogs.properties.app_id == "aebc6443-996d-45c2-90f0-388ff96faa56"
102102
and azure.signinlogs.properties.resource_display_name == "Microsoft Graph",
103103
azure.signinlogs.identity,
104104
null),
105105
106-
esql.azure.signinlogs.auth.other.case = case(
106+
Esql.azure_signinlogs_auth_other_case = case(
107107
azure.signinlogs.properties.authentication_protocol != "deviceCode"
108108
and azure.signinlogs.properties.app_id != "aebc6443-996d-45c2-90f0-388ff96faa56",
109109
azure.signinlogs.identity,
110110
null)
111111
112112
// Aggregate metrics by user identity
113113
| stats
114-
esql.event.count = COUNT(*),
115-
esql.azure.signinlogs.properties.authentication.device_code.case.count_distinct = COUNT_DISTINCT(esql.azure.signinlogs.properties.authentication.device_code.case),
116-
esql.azure.signinlogs.auth.visual_studio.count_distinct = COUNT_DISTINCT(esql.azure.signinlogs.auth.visual_studio.case),
117-
esql.azure.signinlogs.auth.other.count_distinct = COUNT_DISTINCT(esql.azure.signinlogs.auth.other.case),
118-
esql.azure.signinlogs.source.ip.count_distinct = COUNT_DISTINCT(source.ip),
119-
esql.azure.signinlogs.source.ip.values = VALUES(source.ip),
120-
esql.azure.signinlogs.client_app.values = VALUES(azure.signinlogs.properties.app_display_name),
121-
esql.azure.signinlogs.resource_display_name.values = VALUES(azure.signinlogs.properties.resource_display_name),
122-
esql.azure.signinlogs.auth.requirement.values = VALUES(azure.signinlogs.properties.authentication_requirement)
114+
Esql.event_count = COUNT(*),
115+
Esql.azure_signinlogs_properties_authentication_device_code_case_count_distinct = COUNT_DISTINCT(Esql.azure_signinlogs_properties_authentication_device_code_case),
116+
Esql.azure_signinlogs_properties_auth_visual_studio_count_distinct = COUNT_DISTINCT(Esql.azure_signinlogs_auth_visual_studio_case),
117+
Esql.azure_signinlogs_properties_auth_other_count_distinct = COUNT_DISTINCT(Esql.azure_signinlogs_auth_other_case),
118+
Esql.azure_signinlogs_properties_source_ip_count_distinct = COUNT_DISTINCT(source.ip),
119+
Esql.azure_signinlogs_properties_source_ip_values = VALUES(source.ip),
120+
Esql.azure_signinlogs_properties_client_app_values = VALUES(azure.signinlogs.properties.app_display_name),
121+
Esql.azure_signinlogs_properties_resource_display_name_values = VALUES(azure.signinlogs.properties.resource_display_name),
122+
Esql.azure_signinlogs_properties_auth_requirement_values = VALUES(azure.signinlogs.properties.authentication_requirement)
123123
by azure.signinlogs.identity
124124
125125
// Detect multiple unique IPs for one user with signs of deviceCode or VSC OAuth usage
126126
| where
127-
esql.azure.signinlogs.source.ip.count_distinct >= 2
127+
Esql.azure_signinlogs_properties_source_ip_count_distinct >= 2
128128
and (
129-
esql.azure.signinlogs.auth.device_code.count_distinct > 0
130-
or esql.azure.signinlogs.auth.visual_studio.count_distinct > 0
129+
Esql.azure_signinlogs_properties_authentication_device_code_case_count_distinct > 0
130+
or Esql.azure_signinlogs_properties_auth_visual_studio_count_distinct > 0
131131
)
132-
133132
'''
134133

135134

rules/integrations/azure/credential_access_azure_key_vault_excessive_retrieval.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ FROM logs-azure.platformlogs-* METADATA _id, _index
127127
Esql.geo_city_values = VALUES(geo.city_name),
128128
Esql.geo_region_values = VALUES(geo.region_name),
129129
Esql.geo_country_values = VALUES(geo.country_name),
130-
Esql.network_as_org_values = VALUES(source.as.organization.name),
130+
Esql.source_as_organization_name_values = VALUES(source.as.organization.name),
131131
132132
Esql.event_action_values = VALUES(event.action),
133133
Esql.event_count = COUNT(*),
@@ -155,7 +155,7 @@ BY Esql.time_window_date_trunc, azure.platformlogs.identity.claim.upn
155155
Esql.geo_city_values,
156156
Esql.geo_region_values,
157157
Esql.geo_country_values,
158-
Esql.network_as_org_values,
158+
Esql.source_as_organization_name_values,
159159
Esql.event_action_values,
160160
Esql.event_count,
161161
Esql.event_action_count_distinct,

rules/integrations/azure/credential_access_entra_id_brute_force_activity.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -156,10 +156,10 @@ FROM logs-azure.signinlogs*
156156
Esql.azure_signinlogs_properties_app_display_name_values_all = VALUES(azure.signinlogs.properties.app_display_name),
157157
Esql.source_ip_values = VALUES(source.ip),
158158
Esql.source_ip_count_distinct = COUNT_DISTINCT(source.ip),
159-
Esql.source_`as`.organization.name.values = VALUES(source.`as`.organization.name),
159+
Esql.source_as_organization_name_values = VALUES(source.`as`.organization.name),
160160
Esql.source_geo_country_name_values = VALUES(source.geo.country_name),
161161
Esql.source_geo_country_name_count_distinct = COUNT_DISTINCT(source.geo.country_name),
162-
Esql.source_`as`.organization.name.count_distinct = COUNT_DISTINCT(source.`as`.organization.name),
162+
Esql.source_as_organization_name_count_distinct = COUNT_DISTINCT(source.`as`.organization.name),
163163
Esql.timestamp_first_seen = MIN(@timestamp),
164164
Esql.timestamp_last_seen = MAX(@timestamp),
165165
Esql.event_count = COUNT()
@@ -201,10 +201,10 @@ BY Esql.time_window_date_trunc
201201
Esql.azure_signinlogs_properties_app_display_name_values_all,
202202
Esql.source_ip_values,
203203
Esql.source_ip_count_distinct,
204-
Esql.source_`as`.organization.name.values,
204+
Esql.source_as_organization_name_values,
205205
Esql.source_geo_country_name_values,
206206
Esql.source_geo_country_name_count_distinct,
207-
Esql.source_`as`.organization.name.count_distinct,
207+
Esql.source_as_organization_name_count_distinct,
208208
Esql.azure_signinlogs_properties_authentication_requirement_values,
209209
Esql.azure_signinlogs_properties_app_id_values,
210210
Esql.azure_signinlogs_properties_app_display_name_values,

rules/integrations/azure/credential_access_entra_id_excessive_account_lockouts.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -130,8 +130,8 @@ FROM logs-azure.signinlogs*
130130
Esql.azure_signinlogs_properties_app_display_name_lower_values = VALUES(Esql.azure_signinlogs_properties_app_display_name_lower),
131131
Esql.source_ip_values = VALUES(source.ip),
132132
Esql.source_ip_count_distinct = COUNT_DISTINCT(source.ip),
133-
Esql.source_`as`.organization.name.values = VALUES(source.`as`.organization.name),
134-
Esql.source_`as`.organization.name.count_distinct = COUNT_DISTINCT(source.`as`.organization.name),
133+
Esql.source_as_organization_name_values = VALUES(source.`as`.organization.name),
134+
Esql.source_as_organization_name_count_distinct = COUNT_DISTINCT(source.`as`.organization.name),
135135
Esql.source_geo_country_name_values = VALUES(source.geo.country_name),
136136
Esql.source_geo_country_name_count_distinct = COUNT_DISTINCT(source.geo.country_name),
137137
[email protected] = MIN(@timestamp),
@@ -156,8 +156,8 @@ BY Esql.time_window_date_trunc
156156
Esql.azure_signinlogs_properties_app_display_name_lower_values,
157157
Esql.source_ip_values,
158158
Esql.source_ip_count_distinct,
159-
Esql.source_`as`.organization.name.values,
160-
Esql.source_`as`.organization.name.count_distinct,
159+
Esql.source_as_organization_name_values,
160+
Esql.source_as_organization_name_count_distinct,
161161
Esql.source_geo_country_name_values,
162162
Esql.source_geo_country_name_count_distinct,
163163
Esql.azure_signinlogs_properties_authentication_requirement_values,

rules/integrations/azure/credential_access_entra_signin_brute_force_microsoft_365.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -158,8 +158,8 @@ FROM logs-azure.signinlogs*
158158
Esql.azure_signinlogs_properties_app_display_name_lower_values = VALUES(Esql.azure_signinlogs_properties_app_display_name_lower),
159159
Esql.source_ip_values = VALUES(source.ip),
160160
Esql.source_ip_count_distinct = COUNT_DISTINCT(source.ip),
161-
Esql.source_`as`.organization.name.values = VALUES(source.`as`.organization.name),
162-
Esql.source_`as`.organization.name.count_distinct = COUNT_DISTINCT(source.`as`.organization.name),
161+
Esql.source_as_organization_name_values = VALUES(source.`as`.organization.name),
162+
Esql.source_as_organization_name_count_distinct = COUNT_DISTINCT(source.`as`.organization.name),
163163
Esql.source_geo_country_name_values = VALUES(source.geo.country_name),
164164
Esql.source_geo_country_name_count_distinct = COUNT_DISTINCT(source.geo.country_name),
165165
[email protected] = MIN(@timestamp),
@@ -215,8 +215,8 @@ BY Esql.time_window_date_trunc
215215
Esql.azure_signinlogs_properties_app_display_name_lower_values,
216216
Esql.source_ip_values,
217217
Esql.source_ip_count_distinct,
218-
Esql.source_`as`.organization.name.values,
219-
Esql.source_`as`.organization.name.count_distinct,
218+
Esql.source_as_organization_name_values,
219+
Esql.source_as_organization_name_count_distinct,
220220
Esql.source_geo_country_name_values,
221221
Esql.source_geo_country_name_count_distinct,
222222
Esql.azure_signinlogs_properties_authentication_requirement_values,

rules/integrations/azure/initial_access_entra_id_suspicious_oauth_flow_via_auth_broker_to_drs.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ FROM logs-azure.signinlogs* METADATA _id, _version, _index
118118
Esql.source_geo_region_name_values = VALUES(source.geo.region_name),
119119
Esql.source_address_values = VALUES(source.address),
120120
Esql.source_address_count_distinct = COUNT_DISTINCT(source.address),
121-
Esql.source_`as`.organization.name.values = VALUES(source.`as`.organization.name),
121+
Esql.source_as_organization_name_values = VALUES(source.`as`.organization.name),
122122
123123
Esql.azure_signinlogs_properties_authentication_protocol_values = VALUES(azure.signinlogs.properties.authentication_protocol),
124124
Esql.azure_signinlogs_properties_authentication_requirement_values = VALUES(azure.signinlogs.properties.authentication_requirement),
@@ -161,7 +161,7 @@ FROM logs-azure.signinlogs* METADATA _id, _version, _index
161161
Esql.source_geo_region_name_values,
162162
Esql.source_address_values,
163163
Esql.source_address_count_distinct,
164-
Esql.source_`as`.organization.name.values,
164+
Esql.source_as_organization_name_values,
165165
Esql.azure_signinlogs_properties_authentication_protocol_values,
166166
Esql.azure_signinlogs_properties_authentication_requirement_values,
167167
Esql.azure_signinlogs_properties_is_interactive_values,

rules/integrations/azure/persistence_entra_id_oidc_discovery_url_change.toml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,12 @@ type = "esql"
5959
query = '''
6060
FROM logs-azure.auditlogs-* metadata _id, _version, _index
6161
| WHERE event.action == "Authentication Methods Policy Update"
62-
| EVAL Esql.azure.auditlogs.properties.target_resources.modified_properties.new_value.replace = REPLACE(`azure.auditlogs.properties.target_resources.0.modified_properties.0.new_value`, "\\\\", "")
63-
| EVAL Esql.azure.auditlogs.properties.target_resources.modified_properties.old_value.replace = REPLACE(`azure.auditlogs.properties.target_resources.0.modified_properties.0.old_value`, "\\\\", "")
64-
| DISSECT Esql.azure.auditlogs.properties.target_resources.modified_properties.new_value.replace "%{}discoveryUrl\":\"%{Esql.azure.auditlogs.properties.auth.oidc.discovery.url.new}\"}%{}"
65-
| DISSECT Esql.azure.auditlogs.properties.target_resources.modified_properties.old_value.replace "%{}discoveryUrl\":\"%{Esql.azure.auditlogs.properties.auth.oidc.discovery.url.old}\"}%{}"
66-
| WHERE Esql.azure.auditlogs.properties.auth.oidc.discovery.url.new IS NOT NULL and Esql.azure.auditlogs.properties.auth.oidc.discovery.url.old IS NOT NULL
67-
| WHERE Esql.azure.auditlogs.properties.auth.oidc.discovery.url.new != Esql.azure.auditlogs.properties.auth.oidc.discovery.url.old
62+
| EVAL Esql.azure_auditlogs_properties_target_resources_modified_properties_new_value_replace = REPLACE(`azure.auditlogs.properties.target_resources.0.modified_properties.0.new_value`, "\\\\", "")
63+
| EVAL Esql.azure_auditlogs_properties_target_resources_modified_properties_old_value_replace = REPLACE(`azure.auditlogs.properties.target_resources.0.modified_properties.0.old_value`, "\\\\", "")
64+
| DISSECT Esql.azure_auditlogs_properties_target_resources_modified_properties_new_value_replace "%{}discoveryUrl\":\"%{Esql.azure_auditlogs_properties_auth_oidc_discovery_url_new}\"}%{}"
65+
| DISSECT Esql.azure_auditlogs_properties_target_resources_modified_properties_old_value_replace "%{}discoveryUrl\":\"%{Esql.azure_auditlogs_properties_auth_oidc_discovery_url_old}\"}%{}"
66+
| WHERE Esql.azure_auditlogs_properties_auth_oidc_discovery_url_new IS NOT NULL and Esql.azure_auditlogs_properties_auth_oidc_discovery_url_old IS NOT NULL
67+
| WHERE Esql.azure_auditlogs_properties_auth_oidc_discovery_url_new != Esql.azure_auditlogs_properties_auth_oidc_discovery_url_old
6868
| KEEP
6969
@timestamp,
7070
event.action,
@@ -79,8 +79,8 @@ FROM logs-azure.auditlogs-* metadata _id, _version, _index
7979
source.geo.city_name,
8080
source.geo.region_name,
8181
source.geo.country_name,
82-
Esql.azure.auditlogs.properties.auth.oidc.discovery.url.new,
83-
Esql.azure.auditlogs.properties.auth.oidc.discovery.url.old
82+
Esql.azure_auditlogs_properties_auth_oidc_discovery_url_new,
83+
Esql.azure_auditlogs_properties_auth_oidc_discovery_url_old
8484
'''
8585

8686

rules/integrations/o365/credential_access_microsoft_365_excessive_account_lockouts.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,8 @@ FROM logs-o365.audit-*
9191
Esql_priv.o365_audit_UserId_values = VALUES(TO_LOWER(o365.audit.UserId)),
9292
Esql.source_ip_values = VALUES(source.ip),
9393
Esql.source_ip_count_distinct = COUNT_DISTINCT(source.ip),
94-
Esql.source_`as`.organization.name.values = VALUES(source.`as`.organization.name),
95-
Esql.source_`as`.organization.name.count_distinct = COUNT_DISTINCT(source.`as`.organization.name),
94+
Esql.source_as_organization_name_values = VALUES(source.`as`.organization.name),
95+
Esql.source_as_organization_name_count_distinct = COUNT_DISTINCT(source.`as`.organization.name),
9696
Esql.source_geo_country_name_values = VALUES(source.geo.country_name),
9797
Esql.source_geo_country_name_count_distinct = COUNT_DISTINCT(source.geo.country_name),
9898
Esql.o365_audit_ExtendedProperties_RequestType_values = VALUES(TO_LOWER(o365.audit.ExtendedProperties.RequestType)),
@@ -108,8 +108,8 @@ FROM logs-o365.audit-*
108108
Esql_priv.o365_audit_UserId_values,
109109
Esql.source_ip_values,
110110
Esql.source_ip_count_distinct,
111-
Esql.source_`as`.organization.name.values,
112-
Esql.source_`as`.organization.name.count_distinct,
111+
Esql.source_as_organization_name_values,
112+
Esql.source_as_organization_name_count_distinct,
113113
Esql.source_geo_country_name_values,
114114
Esql.source_geo_country_name_count_distinct,
115115
Esql.o365_audit_ExtendedProperties_RequestType_values,

rules/integrations/o365/credential_access_microsoft_365_potential_user_account_brute_force.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -113,10 +113,10 @@ FROM logs-o365.audit-*
113113
Esql.o365_audit_ExtendedProperties_RequestType_values = VALUES(Esql.o365_audit_ExtendedProperties_RequestType_lower),
114114
Esql.source_ip_values = VALUES(source.ip),
115115
Esql.source_ip_count_distinct = COUNT_DISTINCT(source.ip),
116-
Esql.source_`as`.organization.name.values = VALUES(source.`as`.organization.name),
116+
Esql.source_as_organization_name_values = VALUES(source.`as`.organization.name),
117117
Esql.source_geo_country_name_values = VALUES(source.geo.country_name),
118118
Esql.source_geo_country_name_count_distinct = COUNT_DISTINCT(source.geo.country_name),
119-
Esql.source_`as`.organization.name.count_distinct = COUNT_DISTINCT(source.`as`.organization.name),
119+
Esql.source_as_organization_name_count_distinct = COUNT_DISTINCT(source.`as`.organization.name),
120120
Esql.timestamp_first_seen = MIN(@timestamp),
121121
Esql.timestamp_last_seen = MAX(@timestamp),
122122
Esql.event_count = COUNT(*)
@@ -138,10 +138,10 @@ FROM logs-o365.audit-*
138138
Esql.o365_audit_ExtendedProperties_RequestType_values,
139139
Esql.source_ip_values,
140140
Esql.source_ip_count_distinct,
141-
Esql.source_`as`.organization.name.values,
141+
Esql.source_as_organization_name_values,
142142
Esql.source_geo_country_name_values,
143143
Esql.source_geo_country_name_count_distinct,
144-
Esql.source_`as`.organization.name.count_distinct,
144+
Esql.source_as_organization_name_count_distinct,
145145
Esql.timestamp_first_seen,
146146
Esql.timestamp_last_seen,
147147
Esql.event_duration_seconds,

0 commit comments

Comments
 (0)