Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Rule Tuning] December-January AWS Rule Tuning #4425

Merged
merged 12 commits into from
Jan 31, 2025

Conversation

terrancedejesus
Copy link
Contributor

@terrancedejesus terrancedejesus commented Jan 27, 2025

Pull Request

Issue link(s):

Summary - What I changed

This pull request tunes several AWS noisy rules based on telemetry from December 2024 --> January 2025.

For peer review - details regarding the tunings and context is available in the monthly AWS meta. However, I have summarized the rules and their respective tunings below.

AWS STS Temporary Credentials via AssumeRole

  • Reason for Tuning: Shifted to a list of inclusions for aws.cloudtrail.user_identity.invoked_by to inherently exclude AWS services inaccessible to adversaries, significantly reducing false positives from global alerts (from 2.6M to ~2.4K alerts).

AWS Access Secret in Secrets Manager

  • Reason for Tuning: Noise primarily from clusters accessing different secret keys for the same user caused frequent false positives. Changed New Terms to user.id but noted global tuning limitations, requiring customers to manage exceptions.

AWS SSM SendCommand Execution by Rare User

  • Reason for Tuning: Reduced false positives by focusing on user in New Terms and excluding AWS service domains. Alerts decreased from 1.4M to ~312 globally in 60 days, ensuring key behavior is still captured.

AWS Systems Manager SecureString Parameter Request with Decryption Flag

  • Reason for Tuning: Aggregated noisy alerts (~907K) caused by a specific cluster. Updated New Terms to aws.cloudtrail.user_identity.arn to reduce false positives and added investigation guidance for analyzing user.id activity.

AWS IAM Assume Role Policy Update

  • Reason for Tuning: Transitioned to a New Terms rule based on user identity ARN and target role name, eliminating many false positives (~292K). Updated investigation notes and created a PwnCloud module to better simulate and validate activity.

AWS EC2 User Data Retrieval for EC2 Instance

  • Reason for Tuning: Focused on user_identity ARN and instanceId to detect anomalous activity while excluding AWS internal calls (aws.cloudtrail.user_identity.invoked_by). Reduced false positives (~177K alerts globally to ~45K), with further reduction expected.

AWS EC2 Route Table Modified or Deleted

  • Reason for Tuning: Updated to a New Terms rule targeting user identity ARN, excluding AWS internal services (CloudFormation, Service Catalog, FSX). This change reduced noise (~84K alerts) related to IaaC activities like Terraform without relying on user-agent filtering. Updated the investigation guide and description.

QoL Changes

  • Added investigation guides where missing
  • Updated description and rule naming (including file naming) if necessary to improve clarity about the threat

How To Test

Checklist

  • Added a label for the type of pr: bug, enhancement, schema, maintenance, Rule: New, Rule: Deprecation, Rule: Tuning, Hunt: New, or Hunt: Tuning so guidelines can be generated
  • Added the meta:rapid-merge label if planning to merge within 24 hours
  • Secret and sensitive material has been managed correctly
  • Automated testing was updated or added to match the most common scenarios
  • Documentation and comments were added for features that require explanation

Contributor checklist

@terrancedejesus terrancedejesus added Integration: AWS AWS related rules Domain: Cloud Rule: Tuning tweaking or tuning an existing rule labels Jan 27, 2025
@terrancedejesus terrancedejesus self-assigned this Jan 27, 2025
@botelastic botelastic bot added the bbr Building Block Rules label Jan 27, 2025
Copy link
Contributor

Rule: Tuning - Guidelines

These guidelines serve as a reminder set of considerations when tuning an existing rule.

Documentation and Context

  • Detailed description of the suggested changes.
  • Provide example JSON data or screenshots.
  • Provide evidence of reducing benign events mistakenly identified as threats (False Positives).
  • Provide evidence of enhancing detection of true threats that were previously missed (False Negatives).
  • Provide evidence of optimizing resource consumption and execution time of detection rules (Performance).
  • Provide evidence of specific environment factors influencing customized rule tuning (Contextual Tuning).
  • Provide evidence of improvements made by modifying sensitivity by changing alert triggering thresholds (Threshold Adjustments).
  • Provide evidence of refining rules to better detect deviations from typical behavior (Behavioral Tuning).
  • Provide evidence of improvements of adjusting rules based on time-based patterns (Temporal Tuning).
  • Provide reasoning of adjusting priority or severity levels of alerts (Severity Tuning).
  • Provide evidence of improving quality integrity of our data used by detection rules (Data Quality).
  • Ensure the tuning includes necessary updates to the release documentation and versioning.

Rule Metadata Checks

  • updated_date matches the date of tuning PR merged.
  • min_stack_version should support the widest stack versions.
  • name and description should be descriptive and not include typos.
  • query should be inclusive, not overly exclusive. Review to ensure the original intent of the rule is maintained.

Testing and Validation

  • Validate that the tuned rule's performance is satisfactory and does not negatively impact the stack.
  • Ensure that the tuned rule has a low false positive rate.

@@ -53,6 +53,7 @@ This rule looks for the retrieval of credentials using `GetSecretValue` action i

### False positive analysis

- Review `user.id` values for expected ARNs. If this is an expected behavior, consider adding exceptions to the rule.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note that while this is a relatively small change, we note why we are unable to tune the rule at this time in the tuning meta. As a result, we want to encourage user's to add exceptions on user.id to reduce FPs.

index = ["filebeat-*", "logs-aws.cloudtrail-*"]
language = "kuery"
license = "Elastic License v2"
name = "AWS EC2 User Data Retrieval for EC2 Instance"
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not a new rule, but renamed. logic adjusted and moved out of BBR.

index = ["filebeat-*", "logs-aws.cloudtrail-*"]
language = "kuery"
license = "Elastic License v2"
name = "AWS EC2 Route Table Modified or Deleted"
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not a new rule, name and file name adjusted, investigation guide added and logic adjusted.

Copy link
Contributor

@eric-forte-elastic eric-forte-elastic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Manual review, looks good to me! 👍

@terrancedejesus terrancedejesus merged commit bf1caf8 into main Jan 31, 2025
12 checks passed
@terrancedejesus terrancedejesus deleted the rule-tuning-aws-december-2024 branch January 31, 2025 15:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport: auto bbr Building Block Rules community Domain: Cloud Integration: AWS AWS related rules patch Rule: Tuning tweaking or tuning an existing rule
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants