Defense Evasion (TA0005)(external, opens in a new tab or window)
text code block:FROM logs-azure.activitylogs-* | WHERE data_stream.dataset == "azure.activitylogs" AND event.action == "MICROSOFT.INSIGHTS/DIAGNOSTICSETTINGS/DELETE" AND event.outcome IN ("success", "Success") AND azure.resource.group IS NOT NULL | STATS Esql.first_time_seen = MIN(@timestamp), Esql.last_time_seen = MAX(@timestamp), Esql.event_count = COUNT(*), Esql.event_action_values = VALUES(event.action), Esql.resource_name_values = VALUES(azure.resource.name), Esql.resource_id_values = VALUES(azure.resource.id), Esql.resource_provider_values = VALUES(azure.resource.provider), Esql.principal_id_values = VALUES(azure.activitylogs.identity.authorization.evidence.principal_id), Esql.principal_type_values = VALUES(azure.activitylogs.identity.authorization.evidence.principal_type), Esql.initiated_by_user_values = VALUES(azure.activitylogs.identity.claims_initiated_by_user.name), Esql.appid_values = VALUES(azure.activitylogs.identity.claims.appid), Esql.session_id_values = VALUES(azure.activitylogs.identity.claims.sid), Esql.unique_token_id_values = VALUES(azure.activitylogs.identity.claims.uti), Esql.correlation_id_values = VALUES(azure.correlation_id), Esql.role_values = VALUES(azure.activitylogs.identity.authorization.evidence.role), Esql.role_assignment_id_values = VALUES(azure.activitylogs.identity.authorization.evidence.role_assignment_id), Esql.role_assignment_scope_values = VALUES(azure.activitylogs.identity.authorization.evidence.role_assignment_scope), Esql.source_ip_values = VALUES(source.ip), Esql.source_country_values = VALUES(source.geo.country_name), Esql.source_as_number_values = VALUES(source.`as`.number), Esql.subscription_id_values = VALUES(azure.subscription_id) BY azure.resource.group // new terms emulation: fire when this resource group's first_seen falls in the current interval // (schedule + ingest-lag buffer), i.e. it was absent from the rest of the 7-day window | EVAL Esql.recent_minutes = DATE_DIFF("minute", Esql.first_time_seen, NOW()) | WHERE Esql.recent_minutes <= 10 | KEEP azure.*, Esql.*
Install detection rules in Elastic Security
Detect Azure Diagnostic Settings Deleted in the Elastic Security detection engine by installing this rule into your Elastic Stack.
To setup this rule, check out the installation guide for Prebuilt Security Detection Rules(external, opens in a new tab or window).