This analytic looks for several delete specific API calls made to AWS Security Services like CloudWatch, GuardDuty and Web Application Firewalls. These API calls are often leveraged by adversaries to weaken existing security defenses by deleting logging configurations in the CloudWatch alarm, delete a set of detectors from your Guardduty environment or simply delete a bunch of CloudWatch alarms to remain stealthy and avoid detection.
- Type: Hunting
Product: Splunk Enterprise, Splunk Enterprise Security, Splunk Cloud
- Last Updated: 2022-07-26
- Author: Bhavin Patel, Gowthamaraj Rajendran, Splunk
- ID: b28c4957-96a6-47e0-a965-6c767aac1458
Kill Chain Phase
- Actions on Objectives
- CIS 3
- CIS 5
- CIS 16
1 2 3 4 5 `cloudtrail` eventName IN ("DeleteLogStream","DeleteDetector","DeleteIPSet","DeleteWebACL","DeleteRule","DeleteRuleGroup","DeleteLoggingConfiguration","DeleteAlarms") | stats count min(_time) as firstTime max(_time) as lastTime values(eventName) as eventName values(eventSource) as eventSource values(requestParameters.*) as * by src region user_arn aws_account_id user_type user_agent errorCode | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` | `aws_defense_evasion_impair_security_services_filter`
The SPL above uses the following Macros:
aws_defense_evasion_impair_security_services_filter is a empty macro by default. It allows the user to filter out any results (false positives) without editing the SPL.
List of fields required to use this analytic.
How To Implement
You must install Splunk AWS Add on and enable CloudTrail logs in your AWS Environment.
Known False Positives
While this search has no known false positives, it is possible that it is a legitimate admin activity. Please consider filtering out these noisy events using userAgent, user_arn field names.
Associated Analytic Story
|42.0||70||60||User $user_arn$ has made potentially risky api calls $eventName$ that could impair AWS security services for account id $aws_account_id$|
The Risk Score is calculated by the following formula: Risk Score = (Impact * Confidence/100). Initial Confidence and Impact is set by the analytic author.
source | version: 1