Commit Graph

567 Commits

Author SHA1 Message Date
Ruben Groenewoud d1335dd374 [New Rules] Several GitHub Related Rules (#5470)
* [New Rules] Several GitHub Related Rules

* Added additional references

* Update defense_evasion_secret_scanning_disabled.toml

* Update persistence_new_pat_created.toml

* Added two more rules

* ++

* Update rules/integrations/github/impact_github_repository_activity_from_unusual_ip.toml

* Added github.repository_public to non_ecs

* Update impact_github_repository_activity_from_unusual_ip.toml

* Update rules/integrations/github/impact_high_number_of_failed_protected_branch_force_pushes_by_user.toml

* ++

* Update rules/integrations/github/exfiltration_high_number_of_cloning_by_user.toml

* Update rules/integrations/github/impact_high_number_of_closed_pull_requests_by_user.toml

* Update rules/integrations/github/impact_high_number_of_protected_branch_force_pushes_by_user.toml

* ++

---------

Co-authored-by: Mika Ayenson, PhD <Mikaayenson@users.noreply.github.com>

(cherry picked from commit 34daf12d51)
2026-01-08 16:20:38 +00:00
Terrance DeJesus d07622168b [Rule Tuning] Entra ID OAuth PRT Issuance to Non-Managed Device Detected (#5464)
* [Rule Tuning] Entra ID OAuth PRT Issuance to Non-Managed Device Detected
Fixes #5463

* Adjusted description in investigation guide

(cherry picked from commit b0d3d7d960)
2025-12-21 21:31:59 +00:00
Terrance DeJesus 4d001018f9 [Rule Tuning] Entra ID User Sign-in with Unusual Registered Device (#5466)
Fixes #5465

(cherry picked from commit 0fd3df6239)
2025-12-21 20:52:39 +00:00
Isai 1cb47ef52d [Rule Tuning] AWS Service Quotas Multi-Region GetServiceQuota Requests (#5468)
* [Rule Tuning] AWS Service Quotas Multi-Region GetServiceQuota Requests

This rule is alerting as expected with very few instances in telemetry (only have data from 1 cluster).
- added more fields for context in the query.
- added metadata fields to query
- reduced execution window
- added highlighted fields

#### screenshot of working query with additional context

* Update rules/integrations/aws/discovery_servicequotas_multi_region_service_quota_requests.toml

Co-authored-by: Mika Ayenson, PhD <Mikaayenson@users.noreply.github.com>

---------

Co-authored-by: Mika Ayenson, PhD <Mikaayenson@users.noreply.github.com>

(cherry picked from commit a14a1fd068)
2025-12-19 21:48:18 +00:00
Isai b67d2c6156 [Rule Tuning] AWS SQS Queue Purge (#5457)
This rule is triggering as expected with moderate telemetry volume (high spikes for what looks like expected cleanup jobs) in specific cluster. No changes needed to the rule query.

- updated description, FP and IG
- reduced execution window
- updated highlighted fields

(cherry picked from commit 284d7d5b23)
2025-12-19 20:53:17 +00:00
Isai 17d611afde [Rule Tunings] AWS Config Rule Tunings (#5456)
### AWS Config Resource Deletion
- added exclusions for services that perform Config modifications by design, reducing noise by 97% over the last 30 days.
- added success criteria to query as well
- increased severity to medium as this alert should be triaged
- updated description, false positive and investigation guide sections
- reduced execution window
- updated MITRE
- updated tags
- added highlighted fields

### AWS Configuration Recorder Stopped
no major query changes needed for this rule, performing as expected in telemetry with low volume as this is more rare activity.
- updated description, false positive and investigation guide sections
- reduced execution window
- updated MITRE
- updated tags
- added highlighted fields

(cherry picked from commit e8f317817e)
2025-12-19 19:00:45 +00:00
Isai 742144791f [Rule Tunings] AWS Lambda Rules (#5451)
* [Rule Tunings] AWS Lambda Rules

#### AWS Lambda Layer Added to Existing Function
This rule was missing alerts for the `UpdateFunctionConfiguration` action due to a missing wildcard.
- added missing wildcard to query
- reduced execution window
- updated description, FP and IG sections
- added highlighted fields

#### AWS Lambda Function Policy Updated to Allow Public Invocation
- changed this query to use EQL instead of KQL to optimize wildcard usage
- uses `event.type` as `event_category_override`
- reduced execution window
- updated description, FP and IG sections
- added highlighted fields

* Update rules/integrations/aws/persistence_lambda_backdoor_invoke_function_for_any_principal.toml

Co-authored-by: Mika Ayenson, PhD <Mikaayenson@users.noreply.github.com>

---------

Co-authored-by: Mika Ayenson, PhD <Mikaayenson@users.noreply.github.com>

(cherry picked from commit 97b0bd84d8)
2025-12-19 18:47:18 +00:00
Isai 4f98d63ad9 [Rule Tuning] AWS EC2 EBS Snapshot Access Removed (#5499)
- fixed mistake in creation date
- excludes `backup.amazon.com` FP from telemetry

(cherry picked from commit 12d257ed56)
2025-12-19 18:29:54 +00:00
Terrance DeJesus 43b6768f95 [Rule Tuning] Entra ID User Sign-in with Unusual Client (#5473)
* [Rule Tuning] Entra ID User Sign-in with Unusual Client
Fixes #5472

* linting

* Update rules/integrations/azure/initial_access_entra_id_rare_app_id_for_principal_auth.toml

Co-authored-by: Mika Ayenson, PhD <Mikaayenson@users.noreply.github.com>

* removed duplicate client ID

* fixed investigation guide

* Update rules/integrations/azure/initial_access_entra_id_rare_app_id_for_principal_auth.toml

Co-authored-by: Isai <59296946+imays11@users.noreply.github.com>

---------

Co-authored-by: Mika Ayenson, PhD <Mikaayenson@users.noreply.github.com>
Co-authored-by: Isai <59296946+imays11@users.noreply.github.com>

(cherry picked from commit 4c9317b9cc)
2025-12-19 01:05:40 +00:00
Terrance DeJesus fb62d99c57 [Rule Tuning] Entra ID OAuth user_impersonation Scope for Unusual User and Client (#5462)
Fixes #5461

(cherry picked from commit 1bd7dea8ed)
2025-12-19 00:56:34 +00:00
Isai c0f18d83c4 [Rule Tuning] AWS EventBridge Rule Disabled or Deleted (#5458)
There was a mistake in the query for this rule. It was looking for `event.provider: eventbridge.amazonaws.com` instead of `events.amazonaws.com`. So we have no existing telemetry for this rule. However, I have tested the behavior properly and ensured the new query does alert as expected. I will monitor this rule in telemetry moving forward to gauge it's performance.

- query change `event.provider: events.amazonaws.com`
- reduced execution window
- updated description, FP and IG sections
- updated tags
- added highlighted fields

(cherry picked from commit bc6ad03f86)
2025-12-18 21:57:31 +00:00
Isai 4bc8466faf [Rule Tuning] AWS CLI with Kali Linux Fingerprint Identified (#5467)
* [Rule Tuning] AWS CLI with Kali Linux Fingerprint Identified

This rule is performing well in telemetry as expected. I changed this to EQL to avoid the multiple wildcards needed with KQL.

- changed rule type to EQL
- reduced execution window
- updated description, false positive and investigation guide

Script for testing this rule:
Manually perform any action against our AWS account using Kali Linux distribution

#### Screenshot showing working EQL query, still captures the BitPanda behavior this rule was initially designed around.

* add highlighted fields

add highlighted fields

* Update initial_access_kali_user_agent_detected_with_aws_cli.toml

(cherry picked from commit ed42a9e9dd)
2025-12-18 21:15:07 +00:00
Isai 0ed970cbb4 [Rule Tunings] AWS Route53 Rules (#5448)
AWS Route53 Resolver Query Log Configuration Deleted
- updated title
- updated Description, FP and IG sections
- reduced execution window
- updated tags
- added highlighted fields

AWS Route53 Domain Transfer Lock Disabled
- increased rule severity to high
- corrected `event.provider` value in query
- updated title
- updated Description, FP and IG sections
- reduced execution window
- added highlighted fields
- updated Mitre

AWS Route53 Domain Transferred to Another Account
- increased rule severity to high
- corrected `event.provider` value in query
- updated title
- updated Description, FP and IG sections
- reduced execution window
- added highlighted fields
- updated Mitre

AWS Route53 Private Hosted Zone Associated With a VPC
- increased rule severity to medium
- corrected `event.provider` value in query
- updated title
- updated Description, FP and IG sections
- reduced execution window
- added highlighted fields
- updated Mitre

(cherry picked from commit c35a5801cd)
2025-12-18 19:50:43 +00:00
Isai f7e75379d3 [Rule Tunings] AWS New Terms History Window Reduction (#5479)
I reduced the history window for new terms rules that were either:
- `now-14 days`
- showing slow performance metrics

There are still several AWS rules with a `now-10d` window but they are not showing any performance issues so I'd like to leave them as is for now.

First Time Seen AWS Secret Value Accessed in Secrets Manager
- removed `BatchGetSecretValue` API call since this calls `GetSecretValue`
- removed the user_agent exclusions from this one, too easy to bypass.

AWS EC2 User Data Retrieval for EC2 Instance
- excluded more benign AWS services from telemetry

AWS IAM Assume Role Policy Update
- removed use of cloudformation exclusion, this should be captured as well

(cherry picked from commit 25545b5802)
2025-12-18 16:49:31 +00:00
Isai 534f99ebda [Rule Tunings] AWS WAF Rules (#5429)
AWS WAF Access Control List Deletion
- reduced execution window
- updated tags
- added event.provider fields to query
- updated Mitre mapping
- updated description, fp and ig sections
- added highlighted fields

AWS WAF Rule or Rule Group Deletion
- reduced execution window
- updated tags
- updated Mitre mapping
- updated description, fp and ig sections
- added highlighted fields

(cherry picked from commit d1f9ebb890)
2025-12-18 16:28:59 +00:00
Samirbous a2f899c29d [Tuning] Diverse Rules Tuning (#5482)
* [Tuning] Diverse Rules Tuning

* Update persistence_shell_profile_modification.toml

* Update defense_evasion_ml_suspicious_windows_event_low_probability.toml

* Update defense_evasion_ml_suspicious_windows_event_high_probability.toml

* Update defense_evasion_ml_suspicious_windows_event_high_probability.toml

* ++

* Update persistence_suspicious_ssh_execution_xzbackdoor.toml

* Update persistence_suspicious_ssh_execution_xzbackdoor.toml

* Update credential_access_potential_linux_ssh_bruteforce_internal.toml

* Update persistence_shell_profile_modification.toml

* Revert "Update credential_access_potential_linux_ssh_bruteforce_internal.toml"

This reverts commit bad889a30d.

* Update persistence_web_server_sus_destination_port.toml

* Update defense_evasion_ml_suspicious_windows_event_high_probability.toml

* Update defense_evasion_ml_suspicious_windows_event_low_probability.toml

---------

Co-authored-by: Jonhnathan <26856693+w0rk3r@users.noreply.github.com>
Co-authored-by: Ruben Groenewoud <78494512+Aegrah@users.noreply.github.com>

(cherry picked from commit b996a29451)
2025-12-18 15:31:42 +00:00
Terrance DeJesus b12f1b3f09 [New Rule] GitHub Actions Bot Pushed to Repository for First Time (#5438)
* [New Rule] GitHub Actions Bot Pushed to Repository for First Time
Fixes #5437

* Update rules/integrations/github/initial_access_github_actions_bot_first_push_to_repo.toml

* Update rules/integrations/github/initial_access_github_actions_bot_first_push_to_repo.toml

Co-authored-by: Ruben Groenewoud <78494512+Aegrah@users.noreply.github.com>

* Update rules/integrations/github/initial_access_github_actions_bot_first_push_to_repo.toml

Co-authored-by: Ruben Groenewoud <78494512+Aegrah@users.noreply.github.com>

* Adjusted rule name

---------

Co-authored-by: Ruben Groenewoud <78494512+Aegrah@users.noreply.github.com>

(cherry picked from commit 57f18a1dcf)
2025-12-18 15:00:30 +00:00
Terrance DeJesus daab50863a [New Rule] GitHub Actions Workflow Injection Blocked (#5433)
* [New Rule] GitHub Actions Workflow Injection Blocked
Fixes #5431

* adjusts MITRE ATT&CK mappings

* adjusting file name

* updating GitHub integration schema; fixed MITRE mappings

* revert manifests / schemas to main

* added dynamic github fields to non-ecs file

* Update rules/integrations/github/initial_access_github_actions_workflow_injection_blocked.toml

Co-authored-by: Samirbous <64742097+Samirbous@users.noreply.github.com>

* Update rules/integrations/github/initial_access_github_actions_workflow_injection_blocked.toml

Co-authored-by: Ruben Groenewoud <78494512+Aegrah@users.noreply.github.com>

* Update rules/integrations/github/initial_access_github_actions_workflow_injection_blocked.toml

Co-authored-by: Samirbous <64742097+Samirbous@users.noreply.github.com>

* changed github actor ID reference

---------

Co-authored-by: Samirbous <64742097+Samirbous@users.noreply.github.com>
Co-authored-by: Ruben Groenewoud <78494512+Aegrah@users.noreply.github.com>

(cherry picked from commit f43bf99698)
2025-12-17 19:31:06 +00:00
Samirbous 096781fd71 [Tuning] Top Noisy Rules (#5449)
* [Tuning] Windows BruteForce Rules Tuning

#1 Multiple Logon Failure from the same Source Address: converted to ES|QL and raised the threshold to 100 failed auths, alert quality should be better since it aggregates all failed auths info into one alert vs multiple EQL matches. (expected reduction more than 50%)

#2 Privileged Account Brute Force - coverted to ESQL and set the threshold to 50 in a minute. this should drop noise volume by more than 50%.

* ++

* Update execution_shell_evasion_linux_binary.toml

* Update execution_shell_evasion_linux_binary.toml

* Update defense_evasion_indirect_exec_forfiles.toml

* Update lateral_movement_remote_file_copy_hidden_share.toml

* Update lateral_movement_remote_file_copy_hidden_share.toml

* Update persistence_service_windows_service_winlog.toml

* Update credential_access_lsass_openprocess_api.toml

* Update persistence_suspicious_scheduled_task_runtime.toml

* Update impact_hosts_file_modified.toml

* Update defense_evasion_process_termination_followed_by_deletion.toml

* Update rules/windows/credential_access_lsass_openprocess_api.toml

* Update rules/windows/credential_access_bruteforce_admin_account.toml

Co-authored-by: Ruben Groenewoud <78494512+Aegrah@users.noreply.github.com>

* Update rules/windows/credential_access_lsass_openprocess_api.toml

Co-authored-by: Ruben Groenewoud <78494512+Aegrah@users.noreply.github.com>

* Update rules/windows/credential_access_bruteforce_multiple_logon_failure_same_srcip.toml

Co-authored-by: Ruben Groenewoud <78494512+Aegrah@users.noreply.github.com>

* Update credential_access_lsass_openprocess_api.toml

* Update impact_hosts_file_modified.toml

* Update credential_access_dollar_account_relay.toml

* Update credential_access_new_terms_secretsmanager_getsecretvalue.toml

---------

Co-authored-by: Ruben Groenewoud <78494512+Aegrah@users.noreply.github.com>

(cherry picked from commit 3726611b93)
2025-12-12 14:29:46 +00:00
Terrance DeJesus 0cb37a0a78 [Rule Tuning] Update Azure / M365 Rule Names and File Paths (#5172)
* Tuning azure and m365 rule names and file paths

* addressing unit test failures

* addressing unit test failures

* Changed Frontdoor to Front Door

* removed extra space in name

* adjusted Microsoft 365 to M365 in rule name

* Update rules/integrations/azure/credential_access_storage_account_key_regenerated.toml

* Update rules/integrations/azure/defense_evasion_automation_runbook_deleted.toml

* Update rules/integrations/azure/execution_automation_runbook_created_or_modified.toml

* Update rules/integrations/azure/persistence_automation_account_created.toml

* Update rules/integrations/azure/impact_key_vault_modified_by_unusual_user.toml

* Update rules/integrations/azure/initial_access_entra_id_protection_sign_in_risk_detected.toml

* Update rules/integrations/azure/initial_access_entra_id_protection_user_risk_detected.toml

* Update rules/integrations/azure/persistence_automation_webhook_created.toml

* Update rules/integrations/azure/persistence_entra_id_global_administrator_role_assigned.toml

* Update rules/integrations/azure/persistence_entra_id_mfa_disabled_for_user.toml

* Update rules/integrations/azure/persistence_event_hub_created_or_updated.toml

* Update rules/integrations/o365/collection_onedrive_excessive_file_downloads.toml

* Update rules/integrations/o365/initial_access_defender_for_m365_threat_intelligence_signal.toml

* Update rules/integrations/azure/credential_access_entra_id_signin_brute_force_microsoft_365.toml

Co-authored-by: Isai <59296946+imays11@users.noreply.github.com>

* Update rules/integrations/azure/credential_access_entra_id_signin_brute_force_microsoft_365.toml

Co-authored-by: Isai <59296946+imays11@users.noreply.github.com>

* Update rules/integrations/o365/credential_access_entra_id_potential_user_account_brute_force.toml

Co-authored-by: Isai <59296946+imays11@users.noreply.github.com>

* Update rules/integrations/o365/credential_access_entra_id_potential_user_account_brute_force.toml

Co-authored-by: Isai <59296946+imays11@users.noreply.github.com>

* fixed additional rule names

* Update rule dates and investigation guide headers

- Set updated_date to 2025/12/10 for all modified rules
- Fix investigation guide headers to match actual rule names
- Ensures compliance with test_rule_change_has_updated_date
- Ensures compliance with test_investigation_guide_uses_rule_name

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* changed kibana alert rule name to rule ID

---------

Co-authored-by: Isai <59296946+imays11@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>

Removed changes from:
- rules/integrations/azure/credential_access_entra_id_excessive_account_lockouts.toml

(selectively cherry picked from commit cabf1c2a02)
2025-12-10 18:01:25 +00:00
Terrance DeJesus b6e68831b9 [Rule Tuning] New GitHub Self Hosted Action Runner (#5436)
Fixes #5435

(cherry picked from commit f4085ad873)
2025-12-10 15:57:17 +00:00
Jonhnathan 6dca6f2fc5 [Rule Tuning] Add Missing Metadata to KEEP conditions (#5442)
* [Rule Tuning] Add Missing Metadata to KEEP conditions

* Add them all

* ++

* date bump

* Update rules_building_block/discovery_ec2_multi_region_describe_instances.toml

(cherry picked from commit 7a54ae33a5)
2025-12-10 01:07:09 +00:00
Isai fd8d516c72 [Rule Tuning] AWS RDS DB Snapshot Shared with Another Account (#5418)
This rule is performing well in telemetry and producing alerts as expected for both explicit external account sharing and making snapshots public. Both scenarios tested.
- updated description, FP and IG
- added highlighted fields
- added `event.type` as `event_category_override` field because `event.category` is not populated for these events.

Co-authored-by: shashank-elastic <91139415+shashank-elastic@users.noreply.github.com>

(cherry picked from commit 8c5231ec4e)
2025-12-08 16:13:12 +00:00
Isai 198cb62112 [Rule Tuning] AWS KMS Customer Managed Key Disabled or Scheduled for Deletion (#5417)
This rule is performing well in telemetry, low volume and expected alerts. No major changes to rule query.
- reduced execution window
- updated description and IG
- added highlighted fields

Co-authored-by: shashank-elastic <91139415+shashank-elastic@users.noreply.github.com>

(cherry picked from commit f2d8ab54d7)
2025-12-08 15:56:38 +00:00
Isai 2b697cfb74 [Rule Tuning] AWS S3 Bucket Replicated to Another Account (#5405)
AWS S3 Bucket Replicated to Another Account
- updated description and IG
- added `event.type` as `event_category_override` field
- adjusted query to use `info` instead of `any` and added `Account=` instead of `Account` to help reduce chances of capturing unintended requests.
- added highlighted fields

AWS S3 Bucket Policy Added to Share with External Account
- added `event.outcome = success` to query to reduce noise from failed attempts

Co-authored-by: shashank-elastic <91139415+shashank-elastic@users.noreply.github.com>

(cherry picked from commit f885b3b70d)
2025-12-08 15:45:02 +00:00
Isai c11bedea0f [Rule Tunings] AWS Multiple API Calls ESQL rules (#5238)
* [Rule Tunings] AWS Multiple API Calls rules

AWS EC2 Multi-Region DescribeInstances API Calls
Over 2,000 alerts in the last 24 hours. This is a very noisy rule, by design it is alerting on quite normal behavior. There is not much in-the-wild threat behavior that justifies keeping this rule as a standalone alert. As a threat indicator, this is best used as a hunting rule or in correlation with another rule, for example: (GetCallerIdentity new terms + multi region DescribeInstances by same principal)  or (Multiple Discovery API calls + multi region DescribeInstances by same principal) or (multi region DescribeInstances + snapshot/AMI activity by same principal). However, on its own it’s not adding much value over the noise.
- I’m keeping this as ESQL rule but converting it to a BBR
- keeping more fields for further context
- Changing investigation guide to be more relevant for hunting/correlation rule

AWS Discovery API Calls via CLI from a Single Resource
This rule is alerting as expected with low telemetry. It has to remain an ESQL rule as no other rule types can truncate the time window to 10 sec looking for a threshold of unique API calls coming from a single user.
- Keeping as ESQL rule
- Reduced execution window
- Keeping more fields for further context
- Adding highlighted fields
- Updated Investigation guide

* adding highlighted fields to keep parameter

* Apply suggestions from code review

Co-authored-by: Mika Ayenson, PhD <Mikaayenson@users.noreply.github.com>

* Apply suggestion from @imays11

---------

Co-authored-by: Mika Ayenson, PhD <Mikaayenson@users.noreply.github.com>
Co-authored-by: Samirbous <64742097+Samirbous@users.noreply.github.com>
Co-authored-by: Terrance DeJesus <99630311+terrancedejesus@users.noreply.github.com>

(cherry picked from commit 9793d90193)
2025-12-08 15:32:49 +00:00
Isai ef9bb8400e [Rule Tuning] AWS STS AssumeRoot by Rare User and Member Account (#5398)
This rule is performing as expected in telemetry, low volume rare behavior. No query changes needed.
- increased the severity and risk score
- reduced execution window
- reduced lookback window for new terms
- updated description and investigation guide
- slight edits to highlighted fields

(cherry picked from commit 97583418f4)
2025-12-05 17:59:33 +00:00
Isai 6193814c86 [Rule Tuning] AWS S3 Object Encryption Using External KMS Key (#5399)
Rule is alerting as expected, with low telemetry volume. Updates to rule query are to provide more alert context as an ESQL rule.
- reduced execution window
- added additional fields for more alert context, include customer-requested `data_stream.namespace` field
- added highlighted fields
- updated description and investigation guide

(cherry picked from commit b3d7804a00)
2025-12-05 17:05:52 +00:00
Isai 025e2a2bd1 [Rule Tuning] AWS Access Token Used from Multiple Addresses (#5412)
* [Rule Tuning] AWS Access Token Used from Multiple Addresses

This rule is extremely loud in telemetry ~2612 alerts in last 24 hours. There have also been a couple community requests for changes.
- reduced the scope of the alerts to only surface the "high" fidelity_score cases for `"multiple_ip_network_city"` or `"multiple_ip_network_city_user_agent"` criteria. This reduced telemetry by ~90%
- excluded 2 more benign service providers `support` which reduced volume by another 6%.
- added the `data_stream.namespace` field as requested.
- kept the rest of the rule logic visible so that if customers would like to broaden the scope of this rule again, they can duplicate the rules and revert back to the broader condition `Esql.activity_type != "normal_activity"`. This has been included as a comment in the rule query.

I will keep an eye on this rule in telemetry to determine it's value moving forward.

* nit IG format changes

(cherry picked from commit 3bfbafe583)
2025-12-05 16:49:48 +00:00
Ruben Groenewoud 0bdda8d834 [Rule Tuning] Potential Persistence via File Modification (#5404)
(cherry picked from commit 612928b34c)
2025-12-05 09:34:31 +00:00
Samirbous 4e290fa303 [New] Suspicious Microsoft Entra ID Concurrent Sign-Ins via DeviceCode (#5396)
* [New] Suspicious Microsoft Entra ID Concurrent Sign-Ins via DeviceCode

* Update credential_access_azure_entra_susp_device_code_signin.toml

* Update rules/integrations/azure/credential_access_azure_entra_susp_device_code_signin.toml

Co-authored-by: Terrance DeJesus <99630311+terrancedejesus@users.noreply.github.com>

* Update rules/integrations/azure/credential_access_azure_entra_susp_device_code_signin.toml

Co-authored-by: Terrance DeJesus <99630311+terrancedejesus@users.noreply.github.com>

* Update rules/integrations/azure/credential_access_azure_entra_susp_device_code_signin.toml

Co-authored-by: Terrance DeJesus <99630311+terrancedejesus@users.noreply.github.com>

* Update rules/integrations/azure/credential_access_azure_entra_susp_device_code_signin.toml

Co-authored-by: Terrance DeJesus <99630311+terrancedejesus@users.noreply.github.com>

* Update rules/integrations/azure/credential_access_azure_entra_susp_device_code_signin.toml

Co-authored-by: Terrance DeJesus <99630311+terrancedejesus@users.noreply.github.com>

* Update credential_access_azure_entra_susp_device_code_signin.toml

* Update rules/integrations/azure/credential_access_azure_entra_susp_device_code_signin.toml

Co-authored-by: Terrance DeJesus <99630311+terrancedejesus@users.noreply.github.com>

* Update credential_access_azure_entra_susp_device_code_signin.toml

---------

Co-authored-by: Terrance DeJesus <99630311+terrancedejesus@users.noreply.github.com>

(cherry picked from commit f32db7b3ad)
2025-12-03 19:34:44 +00:00
Terrance DeJesus 6ac53b962a [Rule Tuning] M365 OneDrive Excessive File Downloads with OAuth Token (#5365)
* [Rule Tuning] M365 OneDrive Excessive File Downloads with OAuth Token
Fixes #5361

* adding keep operation

* updating non-ecs

(cherry picked from commit 61c9344677)
2025-12-03 19:15:02 +00:00
Isai 732f03ff11 [Deprecation] AWS Redshift Cluster Creation (#5367)
`CreateCluster` is a common Redshift lifecycle operation that occurs frequently in normal workflows. Creating a new Redshift cluster offers no real advantage to an attacker and outside of cost, does not produce material impact for a target environment. This behavior aligns more with cloud infrastructure monitoring or posture management, which is important but not the focus of our detection ruleset.

Real world Redshift abuse centers on misuse of existing resources, such as snapshot sharing or copying or exposing the cluster through permissive VPC security group changes. These threat paths should be covered by other rules. Deprecating this creation-focused rule reduces noise and keeps the AWS ruleset aligned with real threat surfaces rather than infrastructure management.

(cherry picked from commit 9b26cd21b7)
2025-12-03 18:03:44 +00:00
Isai ea964b2585 [Rule Tuning] AWS IAM Brute Force of Assume Role Policy (#5282)
* [Rule Tuning] AWS IAM Brute Force of Assume Role Policy

Description and primary tactic for this rule is misleading. The rule captures an IAM principal enumeration technique used by tools like PACU, it does not capture AssumeRole brute-force attempts. I've changed the primary tactic to Discover, changed the rule name and updated the rule description and Investigation Guide to more clearly reflect what behavior is being captured.

The query itself remains the same and the threshold values. I changed the execution window to the standard 5 min + 1 min lookback and was still able to capture the behavior.

* Apply suggestions from code review

Co-authored-by: Ruben Groenewoud <78494512+Aegrah@users.noreply.github.com>

* adding rule.threshold values

adding ["cloud.account.id", "user.name", "source.ip"] as group by fields

---------

Co-authored-by: Ruben Groenewoud <78494512+Aegrah@users.noreply.github.com>

(cherry picked from commit 0e67a02594)
2025-12-03 16:32:33 +00:00
Isai 2038382b6a [Rule Tuning] AWS EFS File System Deleted (#5369)
`DeleteFileSystem` permanently removes an Amazon EFS file system and all stored data. This operation has no recovery path and represents a clear Impact-level destructive action when performed unintentionally or by an unauthorized actor. It is rare in most environments and typically limited to infrastructure teardown or automated provisioning workflows.

Currently this rule also matches `DeleteMountTarget` events. This action appears frequently in normal EFS lifecycle workflows and is not, by itself, a strong indicator of malicious intent. Since only `DeleteFileSystem` represents irreversible destructive impact, the rule has been narrowed to focus exclusively on the meaningful threat behavior.

- removed `DeleteMountTarget` scope from query
- rule name change and toml file name change to match new scope
- reduced execution window
- updated tags
- updated description, FP and IG
- added highlighted fields

(cherry picked from commit f8f4c0476b)
2025-12-02 23:46:34 +00:00
Isai f591c5e7cf [Rule Tunings] AWS RDS Rules (#5366)
* [Rule Tunings] AWS RDS Rules

#### AWS RDS DB Instance Made Public
- updated description and investigation guide
- added highlighted fields

#### AWS RDS DB Instance or Cluster Deletion Protection Disabled
- updated description and investigation guide
- added highlighted fields

#### AWS RDS Snapshot Deleted
- excluded `backup.amazonaws.com` as this is expected behavior. This exclusion reduces noise in telemetry by ~77%
- updated description and investigation guide
- added highlighted fields

#### AWS Deletion of RDS Instance or Cluster > AWS RDS DB Instance or Cluster Deleted
- reduced execution window
- slight name change to align with other rules
- updated description and investigation guide
- added highlighted fields

#### AWS RDS DB Instance Restored
- `event.type` used for `event_category_override` because event.category is not mapped for these API calls
- updated description and investigation guide
- added highlighted fields

#### AWS RDS DB Instance or Cluster Password Modified
- `event.type` used for `event_category_override` because event.category is not mapped for these API calls
- updated description and investigation guide
- added highlighted fields

#### AWS RDS Snapshot Export
- reduced execution window
- updated mitre mapping
- updated description and investigation guide
- added highlighted fields

* rule type change from eql to kql

changing rule type to kql since there's not eql specific functions needed for the query

(cherry picked from commit 3ff5f6ba72)
2025-12-02 22:37:05 +00:00
Samirbous bded164d18 [New/Tuning] NPM Shai-Hulud coverage (#5368)
* [New/Tuning] NPM Shai-Hulud coverage

https://socket.dev/blog/shai-hulud-strikes-again-v2

* Update command_and_control_curl_wget_spawn_via_nodejs_parent.toml

* Update command_and_control_curl_wget_spawn_via_nodejs_parent.toml

* Update command_and_control_curl_wget_spawn_via_nodejs_parent.toml

* Update credential_access_trufflehog_execution.toml

* Update credential_access_trufflehog_execution.toml

* Update credential_access_trufflehog_execution.toml

* Update rules/cross-platform/command_and_control_curl_wget_spawn_via_nodejs_parent.toml

Co-authored-by: Ruben Groenewoud <78494512+Aegrah@users.noreply.github.com>

* Update rules/cross-platform/command_and_control_curl_wget_spawn_via_nodejs_parent.toml

Co-authored-by: Ruben Groenewoud <78494512+Aegrah@users.noreply.github.com>

* Update rules/cross-platform/command_and_control_curl_wget_spawn_via_nodejs_parent.toml

Co-authored-by: Ruben Groenewoud <78494512+Aegrah@users.noreply.github.com>

* Update rules/cross-platform/execution_register_github_actions_runner.toml

Co-authored-by: Ruben Groenewoud <78494512+Aegrah@users.noreply.github.com>

* Update rules/cross-platform/execution_via_github_actions_runner.toml

Co-authored-by: Ruben Groenewoud <78494512+Aegrah@users.noreply.github.com>

* Create initial_access_github_register_self_hosted_runner.toml

* Update initial_access_github_register_self_hosted_runner.toml

* Update initial_access_github_register_self_hosted_runner.toml

* Update initial_access_github_register_self_hosted_runner.toml

---------

Co-authored-by: Ruben Groenewoud <78494512+Aegrah@users.noreply.github.com>
Co-authored-by: Jonhnathan <26856693+w0rk3r@users.noreply.github.com>

(cherry picked from commit 02979fec68)
2025-12-02 10:58:37 +00:00
Gus Carlock 3b59d4d9c4 add mitre attack rules for ML job rules, bump dates (#5333)
Co-authored-by: Susan <23287722+susan-shu-c@users.noreply.github.com>

(cherry picked from commit 7595709a25)
2025-12-01 21:50:34 +00:00
Terrance DeJesus f09b006cf7 [New Rule] Okta Multiple OS Names Detected for a Single DT Hash (#5241)
* [New Rule] Okta Multiple OS Names Detected for a Single DT Hash
Fixes #5240

* updated query logic

* Update rules/integrations/okta/credential_access_multiple_user_agent_os_authentication.toml

* fixed verbiage

* updated query logic

* Update rules/integrations/okta/credential_access_multiple_user_agent_os_authentication.toml

Co-authored-by: Isai <59296946+imays11@users.noreply.github.com>

* Update rules/integrations/okta/credential_access_multiple_user_agent_os_authentication.toml

Co-authored-by: Isai <59296946+imays11@users.noreply.github.com>

* Update rules/integrations/okta/credential_access_multiple_user_agent_os_authentication.toml

Co-authored-by: Isai <59296946+imays11@users.noreply.github.com>

* added investigation guide tag

* Update rules/integrations/okta/credential_access_multiple_user_agent_os_authentication.toml

Co-authored-by: Isai <59296946+imays11@users.noreply.github.com>

* Update rules/integrations/okta/credential_access_multiple_user_agent_os_authentication.toml

Co-authored-by: Isai <59296946+imays11@users.noreply.github.com>

* added license field

---------

Co-authored-by: Isai <59296946+imays11@users.noreply.github.com>

(cherry picked from commit 22a94c6e0b)
2025-11-24 19:28:29 +00:00
Isai 79cf5b0092 [Rule Tunings] AWS IAM Roles Anywhere Rules (#5307)
Both these rules are have low volume in telemetry as expected, this is quite rare behavior. No major changes to the rule logic itself.

AWS IAM Roles Anywhere Profile Creation
- updated description and investigation guide
- reduced execution window
- added highlighted fields

AWS IAM Roles Anywhere Trust Anchor Created with External CA
- changed rule type to EQL to use `stringContains` instead of leading wildcard
- uses `event.type` as event category override field
- reduced execution window
- updated description and investigation guide
- added highlighted fields

(cherry picked from commit 52a17d8751)
2025-11-24 16:11:26 +00:00
Isai 80234f948c [Rule Tuning] AWS GuardDuty Detector Deletion (#5309)
This rule is performing as expected in telemetry, no query changes needed.
- reduced execution window
- updated description and investigation guide
- updated tags
- added highlighted fields

(cherry picked from commit 5188f22c7f)
2025-11-24 15:59:26 +00:00
Isai ac06c99b69 [Rule Tunings] AWS CloudWatch Deletion Rules (#5316)
Noticed some false positives in alert telemetry leading to high alert volume. For all 3 rules I've added `source.ip:*` and excluded `user_agent.original: AWS Internal` to reduce noise from internal AWS services and backend API calls made on a user's behalf. These rules will instead stay focused on direct SDK/CLI triggered API calls.

- reduced execution window
- updated description, false positive and investigation guide sections
- added highlighted fields
- udpated tags and MITRE mapping

(cherry picked from commit 534d302758)
2025-11-24 15:50:45 +00:00
Isai 5bf26933ad [Rule Tuning] Rapid Secret Retrieval Attempts from AWS SecretsManager (#5291)
This rule is quite loud in telemetry. However over 80% of alerts come from a single cluster, which seems to have a lot of role usage and operation-type IAM Users which assume other roles constantly. This makes me think the majority of these alerts may be from multiple role sessions retrieving secrets, rather than a single user retrieving multiple secrets rapidly. I've looked at the prod telemetry data we have access to and found a few instances where a single secret is accessed multiple times or certain AWS services retrieve multple secrets rapidly. All of these instances have been accounted for in the tunings here.
- query has been changed to remove `GetBatchSecretValue` from the query since this API call actually calls the `GetSecretValue` for each of the secrets it's retrieving. So we only need to look for `GetSecretValue`
- I've added the AWS services found in prod data that contribute to rapid secret retrieval
- Changed the threshold parameters to look for a single `user.id` retrieving more than 20 unique secret values (`aws.cloudtrail.request_parameters`)
- updated the description and investigation guide
- reduced execution window

(cherry picked from commit 7b2c02f69b)
2025-11-24 15:38:39 +00:00
Isai 3c88bca112 [Rule Tuning] AWS IAM API Calls via Temporary Session Tokens (#5310)
* [Rule Tuning] AWS IAM API Calls via Temporary Session Tokens

Came across some false positives as I was rule testing.

Temporary credentials are also created for AWS Internal operations and when an AWS service operates on your behalf. These both should be excluded from results. I saw this in my own testing, in prod data and in our alert telemetry. These cases can be excluded by looking for `source.ip:*` as this field is not populated for those internal AWS operations.

NOTE: Another false positive instance has been highlighted in the investigation guide. A legitimate AWS console login session is given temporary (ASIA) credentials which are populated for all the operations performed during that session. The only way to distinguish between these events and other temporary session token events, like those granted via AssumeRole or GetSessionToken, is with a field populated as `sessionCredentialFromConsole: true`. Right now our Integration does not map this field and it can only be found in `event.original`. I am putting in an Integration request to populate this field, which we could then use to further reduce false positives for rules like this.

- updated description , false positives, and investigation guide
- added `source.ip:*` to query

* excluding AWS Internal user agent

excluding AWS Internal user agent

(cherry picked from commit 5bea1b33ab)
2025-11-24 15:29:08 +00:00
Isai c64adb1501 [Rule Deprecations] AWS RDS Lifecycle Rules and Outdated APIs (#5350)
#### Deprecate RDS DB Instance/Cluster lifecycle detections

`CreateDBInstance`, `CreateDBCluster`, `StopDBInstance`, `StopDBCluster`. These events occur frequently in normal workflows and do not reflect known attacker techniques. They are simply RDS lifecycle operations, with no real impact from an attacker-target perspective. These actions don't have a meaningful benefit for an attacker or cause a meaningful impact for a target. Threat activity around RDS is typically centered around snapshot sharing, export, and public exposure, which is already covered by other rules. There is also a theoretical case to be made for detecting destructive actions against RDS resources like `instance|cluster|snapshot Deletion`, this is covered by other rules. Removing these creation and stoppage rules reduces noise and keeps the AWS ruleset more aligned with real threat surfaces rather than infrastructure management.

#### Deprecate Outdated DBSecurityGroup API rules

`CreateDBSecurityGroup` and `DeleteDBSecurityGroup` were only used by RDS deployments on EC2-Classic, which AWS has fully retired. Modern RDS uses VPC Security Groups, making these APIs obsolete. These rules can no longer trigger and provide no threat-detection value.
Network-permission manipulation is fully covered by our existing VPC Security Group rule - "AWS EC2 Security Group Configuration Change".

(cherry picked from commit d6ed1cd811)
2025-11-24 15:16:12 +00:00
Isai 6466072078 [Deprecation] Deprecated - AWS Root Login Without MFA (#5351)
Completing Deprecation Process for this rule. It has now been included in our ruleset with `Deprecated -` prefix for 2 release cycles and should now be moved to our `_deprecated` folder.

(cherry picked from commit 497642d528)
2025-11-24 15:03:06 +00:00
Isai 133b78edad [Deprecation] AWS Elasticache Security Group Rules (#5334)
ElastiCache cache security groups are only used with EC2-Classic deployments.
AWS officially retired EC2-Classic and no longer supports launching ElastiCache
clusters in EC2-Classic networking environments.

All modern ElastiCache deployments run in a VPC and rely on standard EC2
security groups (ec2.amazonaws.com APIs) rather than CacheSecurityGroup APIs
(elasticache.amazonaws.com).

This behavior is covered by this existing rule:
- https://github.com/elastic/detection-rules/blob/fe642a879a412db71492f5d776e1e3338a531266/rules/integrations/aws/persistence_ec2_security_group_configuration_change_detection.toml

These rules no longer match any behavior in supported AWS
environments and so should be deprecated. This PR:
- Marks both rules with `Deprecated - ` title to start deprecation process
- Updates rule description to clarify that they are only relevant for historical
  EC2-Classic log analysis.
- Recommends relying on the existing EC2 security group rule for network-control
  changes impacting ElastiCache in VPC-based deployments.

I've tested this scenario by creating an Elasticache cluster, creating,  and modifying security group rules. Below is a screenshot verifying that the activity is indeed captured by the normal EC2/VPC security group rule. There were no alerts triggered for the "Elasticache Security Group" Rules

(cherry picked from commit ba44f43295)
2025-11-20 15:57:46 +00:00
Isai 3a53e96ecd [Rule Tuning] AWS IAM CompromisedKeyQuarantine Policy Attached to User (#5281)
This rule is working as expected, only instances of this alert in telemetry is for testing environments.
- uses `iam` instead of `any` for eql query
- added highlighted fields

(cherry picked from commit 37f28be816)
2025-11-17 21:27:15 +00:00
Isai d9385e2229 [Rule Tuning] AWS EC2 Instance Console Login via Assumed Role (#5285)
* [Rule Tuning] AWS EC2 Instance Console Login via Assumed Role

No hits in telemetry for this rule yet. Which is good as it is extremely rare and high-risk behavior for an EC2 instance to exhibit any console login behavior.
- used `event.type` as event_category_override field to remove use of `any` in query
- updated description and investigation guide
- updated tags
- updated Mitre mapping
- added highlighted fields

* normalized Sign-In tag

normalized Sign-In tag

* fixing Mitre mapping

* Update rules/integrations/aws/lateral_movement_ec2_instance_console_login.toml

Co-authored-by: Ruben Groenewoud <78494512+Aegrah@users.noreply.github.com>

---------

Co-authored-by: Ruben Groenewoud <78494512+Aegrah@users.noreply.github.com>

(cherry picked from commit f2e2590d62)
2025-11-17 20:58:30 +00:00
Isai 92ff367768 [Rule Tuning] AWS IAM SAML Provider Updated (#5284)
* [Rule Tuning] AWS IAM SAML Provider Updated

Rule is performing well in telemetry, low volume as expected. The only obvious false positives are from AWS SSO service so that internal behavior has been excluded from the rule.

- added AWS SSO exclusion to query
- updated description and IG
- added highlighted fields

* Update rules/integrations/aws/privilege_escalation_iam_saml_provider_updated.toml

Co-authored-by: Ruben Groenewoud <78494512+Aegrah@users.noreply.github.com>

---------

Co-authored-by: Ruben Groenewoud <78494512+Aegrah@users.noreply.github.com>

(cherry picked from commit 9925a39826)
2025-11-17 20:36:12 +00:00