Execution (TA0002)(external, opens in a new tab or window)
Defense Evasion (TA0005)(external, opens in a new tab or window)
text code block:FROM logs-aws.cloudtrail-* | WHERE event.provider == "ec2.amazonaws.com" and event.outcome == "success" and aws.cloudtrail.user_identity.type != "AWSService" and not ( user_agent.original like "*Terraform*" or user_agent.original like "*Ansible*" or user_agent.original like "*Pulumi*" ) and not source.address in ("cloudformation.amazonaws.com", "servicecatalog.amazonaws.com") and ( event.action in ("StopInstances", "StartInstances") or (event.action == "ModifyInstanceAttribute" and aws.cloudtrail.request_parameters like "*userData=*") ) | grok aws.cloudtrail.request_parameters """instanceId=(?<Esql.instance_id>[^,}\]]+)""" | STATS Esql.event_action_unique_count = COUNT_DISTINCT(event.action), Esql.event_action_values = VALUES(event.action) by Esql.instance_id, user.name, cloud.account.id, Esql.time_bucket = DATE_TRUNC(5 minute, @timestamp) , user_agent.original, source.ip, source.as.organization.name, source.geo.country_name | where Esql.event_action_unique_count == 3 | Keep Esql.*, user.name, cloud.account.id, user_agent.original, source.ip, source.as.organization.name, source.geo.country_name
Install detection rules in Elastic Security
Detect AWS EC2 Stop, Start, and User Data Modification Correlation 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).