nldcsc-elastic-rules 0.0.8__py3-none-any.whl → 0.0.16__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- nldcsc_elastic_rules/__init__.py +1 -1
- nldcsc_elastic_rules/rules/{linux → cross-platform}/command_and_control_curl_wget_spawn_via_nodejs_parent.toml +32 -11
- nldcsc_elastic_rules/rules/cross-platform/command_and_control_genai_process_suspicious_tld_connection.toml +134 -0
- nldcsc_elastic_rules/rules/cross-platform/command_and_control_genai_process_unusual_domain.toml +128 -0
- nldcsc_elastic_rules/rules/cross-platform/credential_access_genai_process_sensitive_file_access.toml +154 -0
- nldcsc_elastic_rules/rules/cross-platform/credential_access_gitleaks_execution.toml +114 -0
- nldcsc_elastic_rules/rules/cross-platform/credential_access_multi_could_secrets_via_api.toml +198 -0
- nldcsc_elastic_rules/rules/cross-platform/credential_access_trufflehog_execution.toml +24 -5
- nldcsc_elastic_rules/rules/cross-platform/defense_evasion_genai_config_modification.toml +120 -0
- nldcsc_elastic_rules/rules/cross-platform/defense_evasion_genai_process_compiling_executables.toml +158 -0
- nldcsc_elastic_rules/rules/cross-platform/defense_evasion_genai_process_encoding_prior_to_network_activity.toml +172 -0
- nldcsc_elastic_rules/rules/cross-platform/defense_evasion_potential_http_downgrade_attack.toml +98 -0
- nldcsc_elastic_rules/rules/cross-platform/discovery_web_server_local_file_inclusion_activity.toml +172 -0
- nldcsc_elastic_rules/rules/cross-platform/discovery_web_server_remote_file_inclusion_activity.toml +133 -0
- nldcsc_elastic_rules/rules/cross-platform/execution_aws_ec2_lolbin_via_ssm.toml +250 -0
- nldcsc_elastic_rules/rules/{linux/persistence_nodejs_pre_or_post_install_script_execution.toml → cross-platform/execution_nodejs_pre_or_post_install_script_execution.toml} +40 -24
- nldcsc_elastic_rules/rules/cross-platform/execution_privileged_container_creation_with_host_reference.toml +146 -0
- nldcsc_elastic_rules/rules/cross-platform/execution_register_github_actions_runner.toml +126 -0
- nldcsc_elastic_rules/rules/cross-platform/execution_via_github_actions_runner.toml +130 -0
- nldcsc_elastic_rules/rules/cross-platform/execution_via_github_runner_with_runner_tracking_id_tampering_via_env_vars.toml +163 -0
- nldcsc_elastic_rules/rules/cross-platform/initial_access_execution_susp_react_serv_child.toml +130 -0
- nldcsc_elastic_rules/rules/cross-platform/initial_access_file_upload_followed_by_get_request.toml +145 -0
- nldcsc_elastic_rules/rules/cross-platform/multiple_alerts_elastic_defend_netsecurity_by_host.toml +4 -1
- nldcsc_elastic_rules/rules/cross-platform/persistence_credential_access_modify_auth_module_or_config.toml +3 -4
- nldcsc_elastic_rules/rules/cross-platform/persistence_web_server_potential_command_injection.toml +23 -25
- nldcsc_elastic_rules/rules/cross-platform/reconnaissance_web_server_discovery_or_fuzzing_activity.toml +13 -14
- nldcsc_elastic_rules/rules/cross-platform/reconnaissance_web_server_unusual_spike_in_error_logs.toml +8 -5
- nldcsc_elastic_rules/rules/cross-platform/reconnaissance_web_server_unusual_spike_in_error_response_codes.toml +12 -12
- nldcsc_elastic_rules/rules/cross-platform/reconnaissance_web_server_unusual_user_agents.toml +37 -43
- nldcsc_elastic_rules/rules/integrations/aws/defense_evasion_rds_instance_restored.toml +137 -45
- nldcsc_elastic_rules/rules/integrations/aws/discovery_iam_principal_enumeration_via_update_assume_role_policy.toml +152 -0
- nldcsc_elastic_rules/rules/integrations/aws/discovery_multiple_discovery_api_calls_via_cli.toml +242 -0
- nldcsc_elastic_rules/rules/integrations/aws/exfiltration_rds_snapshot_export.toml +141 -33
- nldcsc_elastic_rules/rules/integrations/aws/exfiltration_rds_snapshot_shared_with_another_account.toml +108 -30
- nldcsc_elastic_rules/rules/integrations/aws/exfiltration_s3_bucket_policy_added_for_external_account_access.toml +2 -1
- nldcsc_elastic_rules/rules/integrations/aws/exfiltration_s3_bucket_replicated_to_external_account.toml +114 -27
- nldcsc_elastic_rules/rules/integrations/aws/impact_efs_filesystem_deleted.toml +174 -0
- nldcsc_elastic_rules/rules/integrations/aws/impact_kms_cmk_disabled_or_scheduled_for_deletion.toml +111 -33
- nldcsc_elastic_rules/rules/integrations/aws/impact_rds_instance_cluster_deletion.toml +129 -43
- nldcsc_elastic_rules/rules/integrations/aws/impact_rds_instance_cluster_deletion_protection_disabled.toml +89 -27
- nldcsc_elastic_rules/rules/integrations/aws/impact_rds_snapshot_deleted.toml +127 -37
- nldcsc_elastic_rules/rules/integrations/aws/impact_s3_object_encryption_with_external_key.toml +160 -43
- nldcsc_elastic_rules/rules/integrations/aws/initial_access_iam_session_token_used_from_multiple_addresses.toml +20 -10
- nldcsc_elastic_rules/rules/integrations/aws/ml_cloudtrail_error_message_spike.toml +35 -1
- nldcsc_elastic_rules/rules/integrations/aws/ml_cloudtrail_rare_error_code.toml +59 -1
- nldcsc_elastic_rules/rules/integrations/aws/ml_cloudtrail_rare_method_by_city.toml +19 -1
- nldcsc_elastic_rules/rules/integrations/aws/ml_cloudtrail_rare_method_by_country.toml +19 -1
- nldcsc_elastic_rules/rules/integrations/aws/ml_cloudtrail_rare_method_by_user.toml +58 -1
- nldcsc_elastic_rules/rules/integrations/aws/persistence_rds_db_instance_password_modified.toml +109 -35
- nldcsc_elastic_rules/rules/integrations/aws/persistence_rds_instance_made_public.toml +103 -22
- nldcsc_elastic_rules/rules/integrations/aws/persistence_redshift_instance_creation.toml +3 -3
- nldcsc_elastic_rules/rules/integrations/aws/privilege_escalation_sts_assume_root_from_rare_user_and_member_account.toml +126 -69
- nldcsc_elastic_rules/rules/integrations/azure/credential_access_azure_entra_susp_device_code_signin.toml +134 -0
- nldcsc_elastic_rules/rules/integrations/azure/credential_access_entra_id_excessive_account_lockouts.toml +2 -2
- nldcsc_elastic_rules/rules/integrations/azure/ml_azure_event_failures.toml +124 -0
- nldcsc_elastic_rules/rules/integrations/azure/ml_azure_rare_event_failures.toml +148 -0
- nldcsc_elastic_rules/rules/integrations/azure/ml_azure_rare_method_by_city.toml +109 -0
- nldcsc_elastic_rules/rules/integrations/azure/ml_azure_rare_method_by_country.toml +108 -0
- nldcsc_elastic_rules/rules/integrations/azure/ml_azure_rare_method_by_user.toml +147 -0
- nldcsc_elastic_rules/rules/integrations/fim/persistence_suspicious_file_modifications.toml +9 -1
- nldcsc_elastic_rules/rules/integrations/gcp/ml_gcp_error_message_spike.toml +95 -0
- nldcsc_elastic_rules/rules/integrations/gcp/ml_gcp_rare_error_code.toml +118 -0
- nldcsc_elastic_rules/rules/integrations/gcp/ml_gcp_rare_method_by_city.toml +79 -0
- nldcsc_elastic_rules/rules/integrations/gcp/ml_gcp_rare_method_by_country.toml +79 -0
- nldcsc_elastic_rules/rules/integrations/gcp/ml_gcp_rare_method_by_user.toml +117 -0
- nldcsc_elastic_rules/rules/integrations/github/initial_access_github_register_self_hosted_runner.toml +92 -0
- nldcsc_elastic_rules/rules/integrations/o365/collection_onedrive_excessive_file_downloads.toml +24 -14
- nldcsc_elastic_rules/rules/linux/defense_evasion_file_deletion_via_shred.toml +12 -5
- nldcsc_elastic_rules/rules/linux/execution_suspicious_pod_or_container_creation_command_execution.toml +150 -0
- nldcsc_elastic_rules/rules/linux/persistence_at_job_creation.toml +4 -4
- nldcsc_elastic_rules/rules/linux/persistence_pluggable_authentication_module_creation.toml +12 -7
- nldcsc_elastic_rules/rules/linux/persistence_pth_file_creation.toml +6 -1
- nldcsc_elastic_rules/rules/linux/persistence_site_and_user_customize_file_creation.toml +6 -1
- nldcsc_elastic_rules/rules/linux/persistence_web_server_unusual_command_execution.toml +155 -0
- nldcsc_elastic_rules/rules/ml/ml_high_count_events_for_a_host_name.toml +58 -1
- nldcsc_elastic_rules/rules/ml/ml_high_count_network_denies.toml +71 -1
- nldcsc_elastic_rules/rules/ml/ml_high_count_network_events.toml +53 -1
- nldcsc_elastic_rules/rules/ml/ml_linux_anomalous_network_activity.toml +56 -1
- nldcsc_elastic_rules/rules/ml/ml_linux_anomalous_network_port_activity.toml +40 -1
- nldcsc_elastic_rules/rules/ml/ml_low_count_events_for_a_host_name.toml +27 -1
- nldcsc_elastic_rules/rules/ml/ml_packetbeat_rare_server_domain.toml +63 -1
- nldcsc_elastic_rules/rules/ml/ml_rare_destination_country.toml +68 -1
- nldcsc_elastic_rules/rules/ml/ml_spike_in_traffic_to_a_country.toml +53 -1
- nldcsc_elastic_rules/rules/ml/ml_windows_anomalous_network_activity.toml +56 -1
- nldcsc_elastic_rules/rules/network/initial_access_react_server_components_rce_attempt.toml +123 -0
- nldcsc_elastic_rules/rules/promotions/external_alerts.toml +2 -2
- nldcsc_elastic_rules/rules/windows/command_and_control_common_webservices.toml +4 -3
- nldcsc_elastic_rules/rules/windows/credential_access_rare_webdav_destination.toml +3 -4
- nldcsc_elastic_rules/rules/windows/defense_evasion_masquerading_as_svchost.toml +11 -8
- nldcsc_elastic_rules/rules/windows/defense_evasion_posh_obfuscation.toml +25 -2
- nldcsc_elastic_rules/rules/windows/defense_evasion_posh_obfuscation_backtick.toml +2 -3
- nldcsc_elastic_rules/rules/windows/defense_evasion_posh_obfuscation_backtick_var.toml +2 -3
- nldcsc_elastic_rules/rules/windows/defense_evasion_posh_obfuscation_char_arrays.toml +2 -3
- nldcsc_elastic_rules/rules/windows/defense_evasion_posh_obfuscation_concat_dynamic.toml +2 -3
- nldcsc_elastic_rules/rules/windows/defense_evasion_posh_obfuscation_high_number_proportion.toml +2 -3
- nldcsc_elastic_rules/rules/windows/defense_evasion_posh_obfuscation_iex_env_vars_reconstruction.toml +2 -3
- nldcsc_elastic_rules/rules/windows/defense_evasion_posh_obfuscation_iex_string_reconstruction.toml +2 -3
- nldcsc_elastic_rules/rules/windows/defense_evasion_posh_obfuscation_index_reversal.toml +2 -3
- nldcsc_elastic_rules/rules/windows/defense_evasion_posh_obfuscation_reverse_keyword.toml +2 -3
- nldcsc_elastic_rules/rules/windows/defense_evasion_posh_obfuscation_string_concat.toml +2 -3
- nldcsc_elastic_rules/rules/windows/defense_evasion_posh_obfuscation_string_format.toml +2 -3
- nldcsc_elastic_rules/rules/windows/defense_evasion_posh_obfuscation_whitespace_special_proportion.toml +2 -3
- nldcsc_elastic_rules/rules/windows/defense_evasion_wsl_filesystem.toml +13 -10
- nldcsc_elastic_rules/rules/windows/execution_posh_hacktool_functions.toml +3 -2
- nldcsc_elastic_rules/rules/windows/execution_suspicious_powershell_imgload.toml +7 -2
- nldcsc_elastic_rules/rules/windows/execution_windows_powershell_susp_args.toml +9 -2
- nldcsc_elastic_rules/rules/windows/impact_mod_critical_os_files.toml +16 -6
- nldcsc_elastic_rules/rules/windows/lateral_movement_credential_access_kerberos_correlation.toml +7 -2
- nldcsc_elastic_rules/rules/windows/lateral_movement_scheduled_task_target.toml +2 -2
- nldcsc_elastic_rules/rules/windows/persistence_browser_extension_install.toml +19 -2
- nldcsc_elastic_rules/rules/windows/persistence_msi_installer_task_startup.toml +50 -13
- nldcsc_elastic_rules/rules/windows/persistence_via_application_shimming.toml +12 -2
- nldcsc_elastic_rules/rules/windows/privilege_escalation_tokenmanip_sedebugpriv_enabled.toml +24 -18
- nldcsc_elastic_rules/rules/windows/privilege_escalation_unusual_printspooler_childprocess.toml +14 -2
- nldcsc_elastic_rules/rules/windows/privilege_escalation_via_ppid_spoofing.toml +3 -2
- {nldcsc_elastic_rules-0.0.8.dist-info → nldcsc_elastic_rules-0.0.16.dist-info}/METADATA +1 -1
- {nldcsc_elastic_rules-0.0.8.dist-info → nldcsc_elastic_rules-0.0.16.dist-info}/RECORD +119 -87
- nldcsc_elastic_rules/rules/integrations/aws/credential_access_aws_iam_assume_role_brute_force.toml +0 -105
- nldcsc_elastic_rules/rules/integrations/aws/discovery_ec2_multi_region_describe_instances.toml +0 -135
- nldcsc_elastic_rules/rules/integrations/aws/discovery_ec2_multiple_discovery_api_calls_via_cli.toml +0 -155
- nldcsc_elastic_rules/rules/integrations/aws/impact_efs_filesystem_or_mount_deleted.toml +0 -95
- {nldcsc_elastic_rules-0.0.8.dist-info → nldcsc_elastic_rules-0.0.16.dist-info}/WHEEL +0 -0
- {nldcsc_elastic_rules-0.0.8.dist-info → nldcsc_elastic_rules-0.0.16.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
[metadata]
|
|
2
|
+
creation_date = "2021/08/27"
|
|
3
|
+
integration = ["aws"]
|
|
4
|
+
maturity = "production"
|
|
5
|
+
updated_date = "2025/11/26"
|
|
6
|
+
|
|
7
|
+
[rule]
|
|
8
|
+
author = ["Austin Songer", "Elastic"]
|
|
9
|
+
description = """
|
|
10
|
+
Identifies the deletion of an Amazon EFS file system using the "DeleteFileSystem" API operation. Deleting an EFS file
|
|
11
|
+
system permanently removes all stored data and cannot be reversed. This action is rare in most environments and
|
|
12
|
+
typically limited to controlled teardown workflows. Adversaries with sufficient permissions may delete a file system to
|
|
13
|
+
destroy evidence, disrupt workloads, or impede recovery efforts.
|
|
14
|
+
"""
|
|
15
|
+
false_positives = [
|
|
16
|
+
"""
|
|
17
|
+
Legitimate teardown or environment decommissioning processes may delete EFS file systems. Verify whether the calling
|
|
18
|
+
user, role, automation system, or CI/CD workflow is expected to perform destructive actions in the affected account.
|
|
19
|
+
File system deletions by unfamiliar identities, from unusual IP addresses, or occurring outside approved change
|
|
20
|
+
windows should be carefully reviewed. If known automation routinely deletes ephemeral test file systems, consider
|
|
21
|
+
adding scoped exceptions.
|
|
22
|
+
""",
|
|
23
|
+
]
|
|
24
|
+
from = "now-6m"
|
|
25
|
+
index = ["filebeat-*", "logs-aws.cloudtrail-*"]
|
|
26
|
+
language = "kuery"
|
|
27
|
+
license = "Elastic License v2"
|
|
28
|
+
name = "AWS EFS File System Deleted"
|
|
29
|
+
note = """## Triage and analysis
|
|
30
|
+
|
|
31
|
+
> **Disclaimer**:
|
|
32
|
+
> This investigation guide was created using generative AI technology and has been reviewed to improve its accuracy and relevance.
|
|
33
|
+
> While every effort has been made to ensure its quality, validate and adapt it to suit your operational needs.
|
|
34
|
+
|
|
35
|
+
### Investigating AWS EFS File System Deleted
|
|
36
|
+
|
|
37
|
+
Amazon Elastic File System (EFS) provides scalable, shared file storage used by EC2, container workloads, analytics jobs, and other persistent applications. Deleting an EFS file system (`DeleteFileSystem`) permanently removes all stored data and cannot be recovered. Mount targets must already be deleted, but those operations are common and do not themselves indicate malicious behavior. This rule focuses exclusively on the irreversible destructive event, which may signal intentional data destruction, ransomware preparation, or a post-compromise cleanup effort.
|
|
38
|
+
|
|
39
|
+
#### Possible investigation steps
|
|
40
|
+
|
|
41
|
+
- **Identify the actor and calling context**
|
|
42
|
+
- Review `aws.cloudtrail.user_identity.arn` and `aws.cloudtrail.user_identity.access_key_id`.
|
|
43
|
+
- Check `source.ip`, `user_agent.original`, and whether the call originated via console, IAM role, STS session, or long-lived IAM key.
|
|
44
|
+
- Verify whether this principal typically manages EFS resources or teardown activities.
|
|
45
|
+
|
|
46
|
+
- **Determine what was deleted**
|
|
47
|
+
- Inspect `aws.cloudtrail.request_parameters` to identify the deleted file system ID.
|
|
48
|
+
- Map the resource to:
|
|
49
|
+
- Application or owner team
|
|
50
|
+
- Environment classification (prod / dev / test)
|
|
51
|
+
- Dependency surfaces (EC2 instances, ECS tasks, Lambda, analytics pipelines)
|
|
52
|
+
|
|
53
|
+
- **Reconstruct timeline and intent**
|
|
54
|
+
- Use `@timestamp` to correlate with:
|
|
55
|
+
- Recent `UpdateFileSystem` events (e.g., deletion protection, lifecycle policies)
|
|
56
|
+
- IAM policy or trust policy changes
|
|
57
|
+
- EC2 or container runtime disruption shortly before deletion
|
|
58
|
+
- Unexpected regional activity or off-hours execution
|
|
59
|
+
- Determine if mount target deletions occurred immediately beforehand (expected lifecycle) or unexpectedly earlier (possibly suspicious when paired with other anomalies).
|
|
60
|
+
|
|
61
|
+
- **Correlate with broader account activity**
|
|
62
|
+
- Pivot in CloudTrail on:
|
|
63
|
+
- The same access key or session
|
|
64
|
+
- The same EFS file system ID
|
|
65
|
+
- Look for:
|
|
66
|
+
- Privilege escalation (new policy attachments, role assumptions)
|
|
67
|
+
- Lateral movement (SSM sessions, unusual EC2 access)
|
|
68
|
+
- Signs of cleanup or anti-forensics (CloudWatch log group deletions, RDS snapshot deletions)
|
|
69
|
+
- Network isolation actions (security-group or NACL updates)
|
|
70
|
+
|
|
71
|
+
- **Validate with owners**
|
|
72
|
+
- Confirm with application or infrastructure teams:
|
|
73
|
+
- Whether the deletion was planned, approved, or part of an environment teardown
|
|
74
|
+
- Whether a migration or infrastructure rotation is in progress
|
|
75
|
+
- Whether the deleted file system contained production or sensitive workloads
|
|
76
|
+
|
|
77
|
+
### False positive analysis
|
|
78
|
+
|
|
79
|
+
- **Expected teardown activity**
|
|
80
|
+
- Some pipelines (Terraform, CloudFormation, CDK, custom IaC) delete file systems as part of environment rotation or decommissioning.
|
|
81
|
+
- Add exceptions for known automation roles or environment tags (e.g., `Environment=Dev`).
|
|
82
|
+
|
|
83
|
+
- **Ephemeral test environments**
|
|
84
|
+
- Development, QA, or integration test accounts may routinely create and destroy EFS file systems.
|
|
85
|
+
- Suppress events for non-production accounts where destructive operations are normal.
|
|
86
|
+
|
|
87
|
+
- **Automated housekeeping**
|
|
88
|
+
- Internal tooling or lifecycle processes may remove unused EFS resources.
|
|
89
|
+
- Identify automation roles and use exceptions based on `aws.cloudtrail.user_identity.arn` or `user_agent.original`.
|
|
90
|
+
|
|
91
|
+
### Response and remediation
|
|
92
|
+
|
|
93
|
+
- **Contain and secure**
|
|
94
|
+
- If unauthorized, revoke or disable the credentials used for the deletion.
|
|
95
|
+
- Review CloudTrail for additional destructive or privilege-escalating operations from the same actor.
|
|
96
|
+
- Validate whether any associated compute workloads (EC2, ECS, Lambda) show compromise indicators.
|
|
97
|
+
|
|
98
|
+
- **Assess impact**
|
|
99
|
+
- Identify workloads impacted by the file system deletion.
|
|
100
|
+
- Determine whether alternate backups exist (EFS-to-EFS Backup, AWS Backup vaults).
|
|
101
|
+
- Evaluate operational disruption and data-loss implications, especially for compliance-bound data.
|
|
102
|
+
|
|
103
|
+
- **Recover (if possible)**
|
|
104
|
+
- Restore from AWS Backup if a protected resource existed.
|
|
105
|
+
- Rebuild infrastructure dependencies that relied on the deleted file system.
|
|
106
|
+
|
|
107
|
+
- **Hardening and prevention**
|
|
108
|
+
- Restrict use of `elasticfilesystem:DeleteFileSystem` to tightly controlled IAM roles.
|
|
109
|
+
- Use IAM conditions (e.g., `aws:PrincipalArn`, `aws:SourceIp`, `aws:RequestedRegion`) to limit destructive operations.
|
|
110
|
+
- Ensure AWS Backup policies include EFS resources with sufficient retention.
|
|
111
|
+
- Use AWS Config or Security Hub controls to detect:
|
|
112
|
+
- EFS file systems without backup plans
|
|
113
|
+
- Unexpected changes to file system policies
|
|
114
|
+
|
|
115
|
+
### Additional information
|
|
116
|
+
- **[AWS IR Playbooks](https://github.com/aws-samples/aws-incident-response-playbooks/blob/c151b0dc091755fffd4d662a8f29e2f6794da52c/playbooks/)**
|
|
117
|
+
- **[AWS Customer Playbook Framework](https://github.com/aws-samples/aws-customer-playbook-framework/tree/a8c7b313636b406a375952ac00b2d68e89a991f2/docs)**
|
|
118
|
+
- **Security Best Practices:** [AWS Knowledge Center – Security Best Practices](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/).
|
|
119
|
+
"""
|
|
120
|
+
references = [
|
|
121
|
+
"https://docs.aws.amazon.com/efs/latest/ug/API_DeleteFileSystem.html",
|
|
122
|
+
"https://docs.aws.amazon.com/efs/latest/ug/API_DeleteMountTarget.html",
|
|
123
|
+
]
|
|
124
|
+
risk_score = 47
|
|
125
|
+
rule_id = "536997f7-ae73-447d-a12d-bff1e8f5f0a0"
|
|
126
|
+
severity = "medium"
|
|
127
|
+
tags = [
|
|
128
|
+
"Domain: Cloud",
|
|
129
|
+
"Data Source: AWS",
|
|
130
|
+
"Data Source: Amazon Web Services",
|
|
131
|
+
"Data Source: AWS EFS",
|
|
132
|
+
"Tactic: Impact",
|
|
133
|
+
"Resources: Investigation Guide",
|
|
134
|
+
]
|
|
135
|
+
timestamp_override = "event.ingested"
|
|
136
|
+
type = "query"
|
|
137
|
+
|
|
138
|
+
query = '''
|
|
139
|
+
event.dataset: "aws.cloudtrail"
|
|
140
|
+
and event.provider: "elasticfilesystem.amazonaws.com"
|
|
141
|
+
and event.action: "DeleteFileSystem"
|
|
142
|
+
and event.outcome: "success"
|
|
143
|
+
'''
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
[[rule.threat]]
|
|
147
|
+
framework = "MITRE ATT&CK"
|
|
148
|
+
[[rule.threat.technique]]
|
|
149
|
+
id = "T1485"
|
|
150
|
+
name = "Data Destruction"
|
|
151
|
+
reference = "https://attack.mitre.org/techniques/T1485/"
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
[rule.threat.tactic]
|
|
155
|
+
id = "TA0040"
|
|
156
|
+
name = "Impact"
|
|
157
|
+
reference = "https://attack.mitre.org/tactics/TA0040/"
|
|
158
|
+
|
|
159
|
+
[rule.investigation_fields]
|
|
160
|
+
field_names = [
|
|
161
|
+
"@timestamp",
|
|
162
|
+
"user.name",
|
|
163
|
+
"user_agent.original",
|
|
164
|
+
"source.ip",
|
|
165
|
+
"aws.cloudtrail.user_identity.arn",
|
|
166
|
+
"aws.cloudtrail.user_identity.type",
|
|
167
|
+
"aws.cloudtrail.user_identity.access_key_id",
|
|
168
|
+
"target.entity.id",
|
|
169
|
+
"event.action",
|
|
170
|
+
"event.outcome",
|
|
171
|
+
"cloud.account.id",
|
|
172
|
+
"cloud.region",
|
|
173
|
+
"aws.cloudtrail.request_parameters"
|
|
174
|
+
]
|
nldcsc_elastic_rules/rules/integrations/aws/impact_kms_cmk_disabled_or_scheduled_for_deletion.toml
CHANGED
|
@@ -2,68 +2,124 @@
|
|
|
2
2
|
creation_date = "2022/09/21"
|
|
3
3
|
integration = ["aws"]
|
|
4
4
|
maturity = "production"
|
|
5
|
-
updated_date = "2025/
|
|
5
|
+
updated_date = "2025/12/05"
|
|
6
6
|
|
|
7
7
|
[rule]
|
|
8
8
|
author = ["Xavier Pich"]
|
|
9
9
|
description = """
|
|
10
|
-
Identifies attempts to disable or schedule the deletion of an AWS
|
|
11
|
-
key
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
Identifies attempts to disable or schedule the deletion of an AWS customer managed KMS Key. Disabling or scheduling a
|
|
11
|
+
KMS key for deletion removes the ability to decrypt data encrypted under that key and can permanently destroy access to
|
|
12
|
+
critical resources. Adversaries may use these operations to cause irreversible data loss, disrupt business operations,
|
|
13
|
+
impede incident response, or hide evidence of prior activity. Because KMS keys often protect sensitive or regulated
|
|
14
|
+
data, any modification to their lifecycle should be considered highly sensitive and investigated promptly.
|
|
14
15
|
"""
|
|
15
16
|
false_positives = [
|
|
16
17
|
"""
|
|
17
|
-
A
|
|
18
|
+
A customer managed KMS key may be disabled or scheduled for deletion by a system administrator. Verify whether the
|
|
18
19
|
user identity, user agent, and/or hostname should be making changes in your environment. Key deletions by unfamiliar
|
|
19
20
|
users should be investigated. If known behavior is causing false positives, it can be exempted from the rule.
|
|
20
21
|
""",
|
|
21
22
|
]
|
|
22
|
-
from = "now-
|
|
23
|
+
from = "now-6m"
|
|
23
24
|
index = ["filebeat-*", "logs-aws.cloudtrail-*"]
|
|
24
|
-
interval = "10m"
|
|
25
25
|
language = "kuery"
|
|
26
26
|
license = "Elastic License v2"
|
|
27
27
|
name = "AWS KMS Customer Managed Key Disabled or Scheduled for Deletion"
|
|
28
28
|
note = """## Triage and analysis
|
|
29
29
|
|
|
30
30
|
> **Disclaimer**:
|
|
31
|
-
> This investigation guide was created using generative AI technology and has been reviewed to improve its accuracy and relevance.
|
|
31
|
+
> This investigation guide was created using generative AI technology and has been reviewed to improve its accuracy and relevance.
|
|
32
|
+
> While every effort has been made to ensure its quality, we recommend validating the content and adapting it to suit your specific environment and operational needs.
|
|
32
33
|
|
|
33
34
|
### Investigating AWS KMS Customer Managed Key Disabled or Scheduled for Deletion
|
|
34
35
|
|
|
35
|
-
AWS
|
|
36
|
+
AWS KMS keys underpin encryption for S3, EBS, RDS, Secrets Manager, Lambda, and numerous other AWS services. Disabling a KMS key or scheduling its deletion immediately disrupts encryption and decryption workflows, and, once deleted, renders all data encrypted with that key unrecoverable.
|
|
36
37
|
|
|
37
|
-
|
|
38
|
+
Because these operations are rare, highly privileged, and tightly controlled in mature environments, they should be treated as high-risk, destructive actions when performed unexpectedly. Adversaries may disable or delete KMS keys to sabotage recovery, impede forensic analysis, or destroy evidence after exfiltration.
|
|
38
39
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
-
|
|
43
|
-
-
|
|
44
|
-
-
|
|
40
|
+
|
|
41
|
+
#### Possible investigation steps
|
|
42
|
+
|
|
43
|
+
- **Identify the actor and authentication context**
|
|
44
|
+
- Review `aws.cloudtrail.user_identity.arn` and `aws.cloudtrail.user_identity.access_key_id` to determine the caller.
|
|
45
|
+
- Check `source.ip`, `source.geo` fields, and `user_agent.original` to determine whether the action originated from an expected network path or automation platform.
|
|
46
|
+
- Compare the actor and access key to historical usage patterns.
|
|
47
|
+
|
|
48
|
+
- **Determine what key was affected and its criticality**
|
|
49
|
+
- Inspect `aws.cloudtrail.resources.arn` to identify the KMS key.
|
|
50
|
+
- Determine:
|
|
51
|
+
- The services and data protected by the key (e.g., RDS, EBS, S3, Secrets Manager).
|
|
52
|
+
- The environment (prod vs. dev).
|
|
53
|
+
- Owner or application team.
|
|
54
|
+
|
|
55
|
+
- **Understand the scope and intent of the change**
|
|
56
|
+
- For `DisableKey`, determine whether a dependent service immediately began failing or experienced decryption errors.
|
|
57
|
+
- For `ScheduleKeyDeletion`, examine the `PendingWindowInDays` value within `aws.cloudtrail.request_parameters`.
|
|
58
|
+
- Check whether the key was previously rotated, enabled/disabled, or had its policy recently modified.
|
|
59
|
+
|
|
60
|
+
- **Correlate with surrounding events**
|
|
61
|
+
- Look for:
|
|
62
|
+
- IAM policy changes granting new KMS privileges.
|
|
63
|
+
- Access anomalies involving the same principal.
|
|
64
|
+
- File system, database, or backup deletions near the same timeframe.
|
|
65
|
+
- S3, EBS, or RDS resources showing encryption failures.
|
|
66
|
+
- Determine whether other keys were modified in the same window (possible broader sabotage attempt).
|
|
67
|
+
|
|
68
|
+
- **Validate intent with owners**
|
|
69
|
+
- Confirm with the application, data, or security owners:
|
|
70
|
+
- Whether deactivation or scheduled deletion was requested.
|
|
71
|
+
- Whether the key was being replaced, migrated, or retired.
|
|
45
72
|
|
|
46
73
|
### False positive analysis
|
|
47
74
|
|
|
48
|
-
-
|
|
49
|
-
-
|
|
50
|
-
-
|
|
51
|
-
- Scheduled maintenance or compliance audits may involve disabling keys temporarily. Coordinate with relevant teams to schedule these activities and temporarily adjust monitoring rules to avoid false alerts.
|
|
52
|
-
- Misconfigured alerts due to incorrect tagging or categorization of keys can lead to false positives. Ensure that all keys are correctly tagged and categorized to align with monitoring rules.
|
|
75
|
+
- **Planned key lifecycle activities**
|
|
76
|
+
- Some organizations disable KMS keys before rotation, migration, or decommissioning.
|
|
77
|
+
- Scheduled deletion during infrastructure teardown may be expected in CI/CD-driven ephemeral environments.
|
|
53
78
|
|
|
54
|
-
|
|
79
|
+
- **Configuration errors**
|
|
80
|
+
- Misapplied tags or incorrect CloudFormation teardown workflows can unintentionally disable or schedule deletion of KMS keys.
|
|
55
81
|
|
|
56
|
-
|
|
57
|
-
- If the action was unauthorized, revoke any access credentials or permissions associated with the user or service that performed the action to prevent further unauthorized activities.
|
|
58
|
-
- Restore access to encrypted data by identifying any backup keys or data recovery options available, and initiate data recovery procedures if possible.
|
|
59
|
-
- Escalate the incident to the security operations team and relevant management to assess the impact and coordinate a broader response if necessary.
|
|
60
|
-
- Implement additional monitoring and alerting for any further attempts to disable or delete KMS keys, ensuring that alerts are sent to the appropriate personnel for rapid response.
|
|
61
|
-
- Review and tighten IAM policies and permissions related to KMS key management to ensure that only authorized personnel have the ability to disable or delete keys.
|
|
62
|
-
- Conduct a post-incident review to identify any gaps in the current security posture and update incident response plans to address similar threats in the future.
|
|
82
|
+
If any of the above conditions apply, consider adjusting rule exceptions based on IAM principal, environment tag, or automation role.
|
|
63
83
|
|
|
64
|
-
|
|
84
|
+
### Response and remediation
|
|
65
85
|
|
|
66
|
-
|
|
86
|
+
- **Contain and validate**
|
|
87
|
+
- Immediately confirm whether the key disablement or deletion schedule was intentional.
|
|
88
|
+
- If unauthorized, cancel scheduled deletion (`CancelKeyDeletion`) and re-enable the key (`EnableKey`) as appropriate.
|
|
89
|
+
- Rotate credentials or access keys used by the actor if compromise is suspected.
|
|
90
|
+
|
|
91
|
+
- **Assess impact**
|
|
92
|
+
- Identify all AWS services and data encrypted with the affected KMS key.
|
|
93
|
+
- Review logs and service metrics for failures involving:
|
|
94
|
+
- EBS volume attachments
|
|
95
|
+
- RDS instance decryption
|
|
96
|
+
- S3 object access
|
|
97
|
+
- Secrets Manager retrieval
|
|
98
|
+
- Lambda environment variable decryption
|
|
99
|
+
|
|
100
|
+
- **Investigate for compromise**
|
|
101
|
+
- Review CloudTrail activity for the principal:
|
|
102
|
+
- Permission escalations
|
|
103
|
+
- Unusual STS role assumptions
|
|
104
|
+
- S3, EC2, RDS destructive behavior
|
|
105
|
+
- Look for preceding data access or exfiltration attempts.
|
|
106
|
+
|
|
107
|
+
- **Strengthen controls**
|
|
108
|
+
- Restrict AWS KMS lifecycle permissions (`kms:DisableKey`, `kms:ScheduleKeyDeletion`) to a very small privileged set.
|
|
109
|
+
- Use AWS Organizations SCPs to prevent KMS key deletion in production accounts.
|
|
110
|
+
- Enable AWS Config rules for KMS key state monitoring.
|
|
111
|
+
- Require MFA for administrators capable of key management.
|
|
112
|
+
|
|
113
|
+
- **Post-incident improvement**
|
|
114
|
+
- Update runbooks to include KMS lifecycle change approvals.
|
|
115
|
+
- Implement tagging standards to designate high-risk keys.
|
|
116
|
+
- Enhance monitoring for key policy modifications or changes to principal permissions.
|
|
117
|
+
|
|
118
|
+
### Additional information
|
|
119
|
+
- **[AWS IR Playbooks](https://github.com/aws-samples/aws-incident-response-playbooks/blob/c151b0dc091755fffd4d662a8f29e2f6794da52c/playbooks/)**
|
|
120
|
+
- **[AWS Customer Playbook Framework](https://github.com/aws-samples/aws-customer-playbook-framework/tree/a8c7b313636b406a375952ac00b2d68e89a991f2/docs)**
|
|
121
|
+
- **Security Best Practices:** [AWS Knowledge Center – Security Best Practices](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/).
|
|
122
|
+
"""
|
|
67
123
|
references = [
|
|
68
124
|
"https://docs.aws.amazon.com/cli/latest/reference/kms/disable-key.html",
|
|
69
125
|
"https://docs.aws.amazon.com/cli/latest/reference/kms/schedule-key-deletion.html",
|
|
@@ -84,7 +140,10 @@ timestamp_override = "event.ingested"
|
|
|
84
140
|
type = "query"
|
|
85
141
|
|
|
86
142
|
query = '''
|
|
87
|
-
event.dataset:aws.cloudtrail
|
|
143
|
+
event.dataset: "aws.cloudtrail"
|
|
144
|
+
and event.provider: "kms.amazonaws.com"
|
|
145
|
+
and event.action: ("DisableKey" or "ScheduleKeyDeletion")
|
|
146
|
+
and event.outcome: "success"
|
|
88
147
|
'''
|
|
89
148
|
|
|
90
149
|
|
|
@@ -101,3 +160,22 @@ id = "TA0040"
|
|
|
101
160
|
name = "Impact"
|
|
102
161
|
reference = "https://attack.mitre.org/tactics/TA0040/"
|
|
103
162
|
|
|
163
|
+
[rule.investigation_fields]
|
|
164
|
+
field_names = [
|
|
165
|
+
"@timestamp",
|
|
166
|
+
"user.name",
|
|
167
|
+
"user_agent.original",
|
|
168
|
+
"source.ip",
|
|
169
|
+
"aws.cloudtrail.user_identity.arn",
|
|
170
|
+
"aws.cloudtrail.user_identity.type",
|
|
171
|
+
"aws.cloudtrail.user_identity.access_key_id",
|
|
172
|
+
"aws.cloudtrail.resources.arn",
|
|
173
|
+
"aws.cloudtrail.resources.type",
|
|
174
|
+
"event.action",
|
|
175
|
+
"event.outcome",
|
|
176
|
+
"cloud.account.id",
|
|
177
|
+
"cloud.region",
|
|
178
|
+
"aws.cloudtrail.request_parameters",
|
|
179
|
+
"aws.cloudtrail.response_elements",
|
|
180
|
+
]
|
|
181
|
+
|
|
@@ -2,71 +2,137 @@
|
|
|
2
2
|
creation_date = "2020/05/21"
|
|
3
3
|
integration = ["aws"]
|
|
4
4
|
maturity = "production"
|
|
5
|
-
updated_date = "2025/
|
|
5
|
+
updated_date = "2025/11/24"
|
|
6
6
|
|
|
7
7
|
[rule]
|
|
8
8
|
author = ["Elastic"]
|
|
9
9
|
description = """
|
|
10
|
-
Identifies the deletion of an Amazon
|
|
11
|
-
|
|
10
|
+
Identifies the deletion of an Amazon RDS DB instance, Aurora cluster, or global database cluster. Deleting these
|
|
11
|
+
resources permanently destroys stored data and can cause major service disruption. Adversaries with sufficient
|
|
12
|
+
permissions may delete RDS resources to impede recovery, destroy evidence, or inflict operational impact on the
|
|
13
|
+
environment.
|
|
12
14
|
"""
|
|
13
15
|
false_positives = [
|
|
14
16
|
"""
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
RDS instances or clusters may be intentionally deleted by database administrators or during planned decommissioning
|
|
18
|
+
activities. Verify the user identity, source IP, and change context to ensure the deletion is expected.
|
|
19
|
+
CloudFormation stack removals and automated cleanup workflows may also trigger these events and can be exempted if
|
|
20
|
+
known and authorized.
|
|
18
21
|
""",
|
|
19
22
|
]
|
|
20
|
-
from = "now-
|
|
23
|
+
from = "now-6m"
|
|
21
24
|
index = ["filebeat-*", "logs-aws.cloudtrail-*"]
|
|
22
|
-
interval = "10m"
|
|
23
25
|
language = "kuery"
|
|
24
26
|
license = "Elastic License v2"
|
|
25
|
-
name = "AWS
|
|
27
|
+
name = "AWS RDS DB Instance or Cluster Deleted"
|
|
26
28
|
note = """## Triage and analysis
|
|
27
29
|
|
|
28
30
|
> **Disclaimer**:
|
|
29
|
-
> This investigation guide was created using generative AI technology and has been reviewed to improve its accuracy and relevance.
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
-
|
|
40
|
-
-
|
|
41
|
-
-
|
|
42
|
-
-
|
|
31
|
+
> This investigation guide was created using generative AI technology and has been reviewed to improve its accuracy and relevance.
|
|
32
|
+
> While every effort has been made to ensure its quality, validate and adapt it to suit your operational needs.
|
|
33
|
+
|
|
34
|
+
### Investigating AWS RDS DB Instance or Cluster Deleted
|
|
35
|
+
|
|
36
|
+
This rule detects the deletion of an RDS DB instance, Aurora DB cluster, or global database cluster. These operations permanently remove stored data and backups unless final snapshots are explicitly retained. Adversaries may delete RDS resources as part of a destructive attack, to eliminate forensic evidence, or to disrupt critical workloads. Because deletions are irreversible without backups, immediate review is required to determine whether the action was authorized and assess potential data loss.
|
|
37
|
+
|
|
38
|
+
#### Possible investigation steps
|
|
39
|
+
|
|
40
|
+
**Identify the Actor**
|
|
41
|
+
- Review `aws.cloudtrail.user_identity.arn` and `aws.cloudtrail.user_identity.access_key_id` to determine who performed the action.
|
|
42
|
+
- Validate:
|
|
43
|
+
- Is this user/role authorized to delete DB instances or clusters?
|
|
44
|
+
- Does this action align with past behavior?
|
|
45
|
+
|
|
46
|
+
**Review the Deletion Event**
|
|
47
|
+
- Confirm which action was invoked: `DeleteDBInstance`, `DeleteDBCluster` or `DeleteGlobalCluster`
|
|
48
|
+
- Examine `aws.cloudtrail.request_parameters` and `target.entity.id`. Identify which resource was deleted and whether a final snapshot was created before deletion.
|
|
49
|
+
|
|
50
|
+
**Analyze Source and Access Context**
|
|
51
|
+
- Check `source.ip`, `source.geo` fields and `user_agent.original`
|
|
52
|
+
- Validate whether:
|
|
53
|
+
- The request originated from a known network or VPN.
|
|
54
|
+
- The user normally logs in from this location.
|
|
55
|
+
- The call was made via AWS Console vs CLI vs SDK.
|
|
56
|
+
|
|
57
|
+
**Correlate Surrounding Activity**
|
|
58
|
+
Search CloudTrail for:
|
|
59
|
+
- Recent IAM role or policy changes.
|
|
60
|
+
- Privilege escalation events (STS AssumeRole, CreateAccessKey, AttachUserPolicy).
|
|
61
|
+
- Disablement of related safety controls:
|
|
62
|
+
- deletionProtection modified to `false`
|
|
63
|
+
- backupRetentionPeriod set to `0`
|
|
64
|
+
- Suspicious sequencing:
|
|
65
|
+
- Snapshots deleted before the instance/cluster deletion.
|
|
66
|
+
- Network security group modifications enabling broader access before deletion.
|
|
67
|
+
|
|
68
|
+
**Validate Organizational Intent**
|
|
69
|
+
- Contact the service owner or DB administrator to confirm whether the deletion is expected.
|
|
70
|
+
|
|
71
|
+
**Assess Impact and Data Recovery Path**
|
|
72
|
+
- Identify which DB instance or cluster was deleted (`target.entity.id`)
|
|
73
|
+
- Evaluate:
|
|
74
|
+
- Whether automated backups existed.
|
|
75
|
+
- Whether point-in-time recovery is still possible.
|
|
76
|
+
- Whether a final snapshot was created.
|
|
43
77
|
|
|
44
78
|
### False positive analysis
|
|
45
79
|
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
-
-
|
|
49
|
-
-
|
|
80
|
+
- **Planned decommissioning**:
|
|
81
|
+
- Confirm if this action aligns with a scheduled removal or environment cleanup.
|
|
82
|
+
- **CloudFormation stack deletion**:
|
|
83
|
+
- Stack teardown often deletes RDS resources; confirm if this occurred.
|
|
84
|
+
- **Automated testing or ephemeral environments**:
|
|
85
|
+
- Test/dev pipelines may frequently create and delete clusters.
|
|
86
|
+
- **Infrastructure-as-code workflows**:
|
|
87
|
+
- Terraform destroys or GitOps cleanup jobs can generate legitimate deletion events.
|
|
50
88
|
|
|
51
89
|
### Response and remediation
|
|
52
90
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
-
|
|
56
|
-
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
91
|
+
**If the deletion was unauthorized:**
|
|
92
|
+
**Immediately restrict the actor**
|
|
93
|
+
- Disable or revoke the user’s access keys.
|
|
94
|
+
- Revoke active session tokens.
|
|
95
|
+
|
|
96
|
+
**Attempt recovery**
|
|
97
|
+
- Restore from:
|
|
98
|
+
- Final snapshot (if created)
|
|
99
|
+
- Automated backups
|
|
100
|
+
- Rebuild cluster/instance configurations based on IaC or documented templates.
|
|
101
|
+
|
|
102
|
+
**Perform full log review**
|
|
103
|
+
- CloudTrail, RDS Enhanced Monitoring, and VPC Flow Logs
|
|
104
|
+
- Identify lateral movement or privilege escalation preceding the deletion.
|
|
105
|
+
|
|
106
|
+
**Scope and contain the incident**
|
|
107
|
+
- Determine whether:
|
|
108
|
+
- Additional RDS resources were targeted
|
|
109
|
+
- IAM permissions were modified
|
|
110
|
+
- Other destructive API calls were made
|
|
111
|
+
|
|
112
|
+
**Hardening actions**
|
|
113
|
+
- Enable deletionProtection on all critical instances/clusters.
|
|
114
|
+
- Require final snapshot creation for all deletion operations.
|
|
115
|
+
- Enforce MFA for IAM users with RDS privileges.
|
|
116
|
+
- Limit RDS modification/deletion permissions to specific IAM roles.
|
|
117
|
+
|
|
118
|
+
**Documentation and Follow-Up**
|
|
119
|
+
- Update incident response runbooks.
|
|
120
|
+
- Communicate with service owners and leadership.
|
|
121
|
+
- Add enhanced monitoring rules around:
|
|
122
|
+
- Snapshot deletions
|
|
123
|
+
- Backup retention modifications
|
|
124
|
+
- RDS role changes
|
|
125
|
+
- DeletionProtection disable events
|
|
126
|
+
|
|
127
|
+
### Additional information
|
|
128
|
+
|
|
129
|
+
- **[AWS IR Playbooks](https://github.com/aws-samples/aws-incident-response-playbooks/blob/c151b0dc091755fffd4d662a8f29e2f6794da52c/playbooks/)**
|
|
130
|
+
- **[AWS Customer Playbook Framework](https://github.com/aws-samples/aws-customer-playbook-framework/tree/a8c7b313636b406a375952ac00b2d68e89a991f2/docs)**
|
|
131
|
+
- **Security Best Practices:** [AWS Knowledge Center – Security Best Practices](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/).
|
|
132
|
+
"""
|
|
64
133
|
references = [
|
|
65
|
-
"https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/delete-db-cluster.html",
|
|
66
134
|
"https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBCluster.html",
|
|
67
|
-
"https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/delete-global-cluster.html",
|
|
68
135
|
"https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteGlobalCluster.html",
|
|
69
|
-
"https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/delete-db-instance.html",
|
|
70
136
|
"https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBInstance.html",
|
|
71
137
|
]
|
|
72
138
|
risk_score = 47
|
|
@@ -85,8 +151,10 @@ timestamp_override = "event.ingested"
|
|
|
85
151
|
type = "query"
|
|
86
152
|
|
|
87
153
|
query = '''
|
|
88
|
-
event.dataset:aws.cloudtrail
|
|
89
|
-
and event.
|
|
154
|
+
event.dataset: aws.cloudtrail
|
|
155
|
+
and event.provider: rds.amazonaws.com
|
|
156
|
+
and event.action: (DeleteDBCluster or DeleteGlobalCluster or DeleteDBInstance)
|
|
157
|
+
and event.outcome: success
|
|
90
158
|
'''
|
|
91
159
|
|
|
92
160
|
|
|
@@ -103,3 +171,21 @@ id = "TA0040"
|
|
|
103
171
|
name = "Impact"
|
|
104
172
|
reference = "https://attack.mitre.org/tactics/TA0040/"
|
|
105
173
|
|
|
174
|
+
[rule.investigation_fields]
|
|
175
|
+
field_names = [
|
|
176
|
+
"@timestamp",
|
|
177
|
+
"user.name",
|
|
178
|
+
"user_agent.original",
|
|
179
|
+
"source.ip",
|
|
180
|
+
"aws.cloudtrail.user_identity.arn",
|
|
181
|
+
"aws.cloudtrail.user_identity.type",
|
|
182
|
+
"aws.cloudtrail.user_identity.access_key_id",
|
|
183
|
+
"target.entity.id",
|
|
184
|
+
"event.action",
|
|
185
|
+
"event.outcome",
|
|
186
|
+
"cloud.account.id",
|
|
187
|
+
"cloud.region",
|
|
188
|
+
"aws.cloudtrail.request_parameters",
|
|
189
|
+
"aws.cloudtrail.response_elements",
|
|
190
|
+
]
|
|
191
|
+
|