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.
Files changed (123) hide show
  1. nldcsc_elastic_rules/__init__.py +1 -1
  2. nldcsc_elastic_rules/rules/{linux → cross-platform}/command_and_control_curl_wget_spawn_via_nodejs_parent.toml +32 -11
  3. nldcsc_elastic_rules/rules/cross-platform/command_and_control_genai_process_suspicious_tld_connection.toml +134 -0
  4. nldcsc_elastic_rules/rules/cross-platform/command_and_control_genai_process_unusual_domain.toml +128 -0
  5. nldcsc_elastic_rules/rules/cross-platform/credential_access_genai_process_sensitive_file_access.toml +154 -0
  6. nldcsc_elastic_rules/rules/cross-platform/credential_access_gitleaks_execution.toml +114 -0
  7. nldcsc_elastic_rules/rules/cross-platform/credential_access_multi_could_secrets_via_api.toml +198 -0
  8. nldcsc_elastic_rules/rules/cross-platform/credential_access_trufflehog_execution.toml +24 -5
  9. nldcsc_elastic_rules/rules/cross-platform/defense_evasion_genai_config_modification.toml +120 -0
  10. nldcsc_elastic_rules/rules/cross-platform/defense_evasion_genai_process_compiling_executables.toml +158 -0
  11. nldcsc_elastic_rules/rules/cross-platform/defense_evasion_genai_process_encoding_prior_to_network_activity.toml +172 -0
  12. nldcsc_elastic_rules/rules/cross-platform/defense_evasion_potential_http_downgrade_attack.toml +98 -0
  13. nldcsc_elastic_rules/rules/cross-platform/discovery_web_server_local_file_inclusion_activity.toml +172 -0
  14. nldcsc_elastic_rules/rules/cross-platform/discovery_web_server_remote_file_inclusion_activity.toml +133 -0
  15. nldcsc_elastic_rules/rules/cross-platform/execution_aws_ec2_lolbin_via_ssm.toml +250 -0
  16. 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
  17. nldcsc_elastic_rules/rules/cross-platform/execution_privileged_container_creation_with_host_reference.toml +146 -0
  18. nldcsc_elastic_rules/rules/cross-platform/execution_register_github_actions_runner.toml +126 -0
  19. nldcsc_elastic_rules/rules/cross-platform/execution_via_github_actions_runner.toml +130 -0
  20. nldcsc_elastic_rules/rules/cross-platform/execution_via_github_runner_with_runner_tracking_id_tampering_via_env_vars.toml +163 -0
  21. nldcsc_elastic_rules/rules/cross-platform/initial_access_execution_susp_react_serv_child.toml +130 -0
  22. nldcsc_elastic_rules/rules/cross-platform/initial_access_file_upload_followed_by_get_request.toml +145 -0
  23. nldcsc_elastic_rules/rules/cross-platform/multiple_alerts_elastic_defend_netsecurity_by_host.toml +4 -1
  24. nldcsc_elastic_rules/rules/cross-platform/persistence_credential_access_modify_auth_module_or_config.toml +3 -4
  25. nldcsc_elastic_rules/rules/cross-platform/persistence_web_server_potential_command_injection.toml +23 -25
  26. nldcsc_elastic_rules/rules/cross-platform/reconnaissance_web_server_discovery_or_fuzzing_activity.toml +13 -14
  27. nldcsc_elastic_rules/rules/cross-platform/reconnaissance_web_server_unusual_spike_in_error_logs.toml +8 -5
  28. nldcsc_elastic_rules/rules/cross-platform/reconnaissance_web_server_unusual_spike_in_error_response_codes.toml +12 -12
  29. nldcsc_elastic_rules/rules/cross-platform/reconnaissance_web_server_unusual_user_agents.toml +37 -43
  30. nldcsc_elastic_rules/rules/integrations/aws/defense_evasion_rds_instance_restored.toml +137 -45
  31. nldcsc_elastic_rules/rules/integrations/aws/discovery_iam_principal_enumeration_via_update_assume_role_policy.toml +152 -0
  32. nldcsc_elastic_rules/rules/integrations/aws/discovery_multiple_discovery_api_calls_via_cli.toml +242 -0
  33. nldcsc_elastic_rules/rules/integrations/aws/exfiltration_rds_snapshot_export.toml +141 -33
  34. nldcsc_elastic_rules/rules/integrations/aws/exfiltration_rds_snapshot_shared_with_another_account.toml +108 -30
  35. nldcsc_elastic_rules/rules/integrations/aws/exfiltration_s3_bucket_policy_added_for_external_account_access.toml +2 -1
  36. nldcsc_elastic_rules/rules/integrations/aws/exfiltration_s3_bucket_replicated_to_external_account.toml +114 -27
  37. nldcsc_elastic_rules/rules/integrations/aws/impact_efs_filesystem_deleted.toml +174 -0
  38. nldcsc_elastic_rules/rules/integrations/aws/impact_kms_cmk_disabled_or_scheduled_for_deletion.toml +111 -33
  39. nldcsc_elastic_rules/rules/integrations/aws/impact_rds_instance_cluster_deletion.toml +129 -43
  40. nldcsc_elastic_rules/rules/integrations/aws/impact_rds_instance_cluster_deletion_protection_disabled.toml +89 -27
  41. nldcsc_elastic_rules/rules/integrations/aws/impact_rds_snapshot_deleted.toml +127 -37
  42. nldcsc_elastic_rules/rules/integrations/aws/impact_s3_object_encryption_with_external_key.toml +160 -43
  43. nldcsc_elastic_rules/rules/integrations/aws/initial_access_iam_session_token_used_from_multiple_addresses.toml +20 -10
  44. nldcsc_elastic_rules/rules/integrations/aws/ml_cloudtrail_error_message_spike.toml +35 -1
  45. nldcsc_elastic_rules/rules/integrations/aws/ml_cloudtrail_rare_error_code.toml +59 -1
  46. nldcsc_elastic_rules/rules/integrations/aws/ml_cloudtrail_rare_method_by_city.toml +19 -1
  47. nldcsc_elastic_rules/rules/integrations/aws/ml_cloudtrail_rare_method_by_country.toml +19 -1
  48. nldcsc_elastic_rules/rules/integrations/aws/ml_cloudtrail_rare_method_by_user.toml +58 -1
  49. nldcsc_elastic_rules/rules/integrations/aws/persistence_rds_db_instance_password_modified.toml +109 -35
  50. nldcsc_elastic_rules/rules/integrations/aws/persistence_rds_instance_made_public.toml +103 -22
  51. nldcsc_elastic_rules/rules/integrations/aws/persistence_redshift_instance_creation.toml +3 -3
  52. nldcsc_elastic_rules/rules/integrations/aws/privilege_escalation_sts_assume_root_from_rare_user_and_member_account.toml +126 -69
  53. nldcsc_elastic_rules/rules/integrations/azure/credential_access_azure_entra_susp_device_code_signin.toml +134 -0
  54. nldcsc_elastic_rules/rules/integrations/azure/credential_access_entra_id_excessive_account_lockouts.toml +2 -2
  55. nldcsc_elastic_rules/rules/integrations/azure/ml_azure_event_failures.toml +124 -0
  56. nldcsc_elastic_rules/rules/integrations/azure/ml_azure_rare_event_failures.toml +148 -0
  57. nldcsc_elastic_rules/rules/integrations/azure/ml_azure_rare_method_by_city.toml +109 -0
  58. nldcsc_elastic_rules/rules/integrations/azure/ml_azure_rare_method_by_country.toml +108 -0
  59. nldcsc_elastic_rules/rules/integrations/azure/ml_azure_rare_method_by_user.toml +147 -0
  60. nldcsc_elastic_rules/rules/integrations/fim/persistence_suspicious_file_modifications.toml +9 -1
  61. nldcsc_elastic_rules/rules/integrations/gcp/ml_gcp_error_message_spike.toml +95 -0
  62. nldcsc_elastic_rules/rules/integrations/gcp/ml_gcp_rare_error_code.toml +118 -0
  63. nldcsc_elastic_rules/rules/integrations/gcp/ml_gcp_rare_method_by_city.toml +79 -0
  64. nldcsc_elastic_rules/rules/integrations/gcp/ml_gcp_rare_method_by_country.toml +79 -0
  65. nldcsc_elastic_rules/rules/integrations/gcp/ml_gcp_rare_method_by_user.toml +117 -0
  66. nldcsc_elastic_rules/rules/integrations/github/initial_access_github_register_self_hosted_runner.toml +92 -0
  67. nldcsc_elastic_rules/rules/integrations/o365/collection_onedrive_excessive_file_downloads.toml +24 -14
  68. nldcsc_elastic_rules/rules/linux/defense_evasion_file_deletion_via_shred.toml +12 -5
  69. nldcsc_elastic_rules/rules/linux/execution_suspicious_pod_or_container_creation_command_execution.toml +150 -0
  70. nldcsc_elastic_rules/rules/linux/persistence_at_job_creation.toml +4 -4
  71. nldcsc_elastic_rules/rules/linux/persistence_pluggable_authentication_module_creation.toml +12 -7
  72. nldcsc_elastic_rules/rules/linux/persistence_pth_file_creation.toml +6 -1
  73. nldcsc_elastic_rules/rules/linux/persistence_site_and_user_customize_file_creation.toml +6 -1
  74. nldcsc_elastic_rules/rules/linux/persistence_web_server_unusual_command_execution.toml +155 -0
  75. nldcsc_elastic_rules/rules/ml/ml_high_count_events_for_a_host_name.toml +58 -1
  76. nldcsc_elastic_rules/rules/ml/ml_high_count_network_denies.toml +71 -1
  77. nldcsc_elastic_rules/rules/ml/ml_high_count_network_events.toml +53 -1
  78. nldcsc_elastic_rules/rules/ml/ml_linux_anomalous_network_activity.toml +56 -1
  79. nldcsc_elastic_rules/rules/ml/ml_linux_anomalous_network_port_activity.toml +40 -1
  80. nldcsc_elastic_rules/rules/ml/ml_low_count_events_for_a_host_name.toml +27 -1
  81. nldcsc_elastic_rules/rules/ml/ml_packetbeat_rare_server_domain.toml +63 -1
  82. nldcsc_elastic_rules/rules/ml/ml_rare_destination_country.toml +68 -1
  83. nldcsc_elastic_rules/rules/ml/ml_spike_in_traffic_to_a_country.toml +53 -1
  84. nldcsc_elastic_rules/rules/ml/ml_windows_anomalous_network_activity.toml +56 -1
  85. nldcsc_elastic_rules/rules/network/initial_access_react_server_components_rce_attempt.toml +123 -0
  86. nldcsc_elastic_rules/rules/promotions/external_alerts.toml +2 -2
  87. nldcsc_elastic_rules/rules/windows/command_and_control_common_webservices.toml +4 -3
  88. nldcsc_elastic_rules/rules/windows/credential_access_rare_webdav_destination.toml +3 -4
  89. nldcsc_elastic_rules/rules/windows/defense_evasion_masquerading_as_svchost.toml +11 -8
  90. nldcsc_elastic_rules/rules/windows/defense_evasion_posh_obfuscation.toml +25 -2
  91. nldcsc_elastic_rules/rules/windows/defense_evasion_posh_obfuscation_backtick.toml +2 -3
  92. nldcsc_elastic_rules/rules/windows/defense_evasion_posh_obfuscation_backtick_var.toml +2 -3
  93. nldcsc_elastic_rules/rules/windows/defense_evasion_posh_obfuscation_char_arrays.toml +2 -3
  94. nldcsc_elastic_rules/rules/windows/defense_evasion_posh_obfuscation_concat_dynamic.toml +2 -3
  95. nldcsc_elastic_rules/rules/windows/defense_evasion_posh_obfuscation_high_number_proportion.toml +2 -3
  96. nldcsc_elastic_rules/rules/windows/defense_evasion_posh_obfuscation_iex_env_vars_reconstruction.toml +2 -3
  97. nldcsc_elastic_rules/rules/windows/defense_evasion_posh_obfuscation_iex_string_reconstruction.toml +2 -3
  98. nldcsc_elastic_rules/rules/windows/defense_evasion_posh_obfuscation_index_reversal.toml +2 -3
  99. nldcsc_elastic_rules/rules/windows/defense_evasion_posh_obfuscation_reverse_keyword.toml +2 -3
  100. nldcsc_elastic_rules/rules/windows/defense_evasion_posh_obfuscation_string_concat.toml +2 -3
  101. nldcsc_elastic_rules/rules/windows/defense_evasion_posh_obfuscation_string_format.toml +2 -3
  102. nldcsc_elastic_rules/rules/windows/defense_evasion_posh_obfuscation_whitespace_special_proportion.toml +2 -3
  103. nldcsc_elastic_rules/rules/windows/defense_evasion_wsl_filesystem.toml +13 -10
  104. nldcsc_elastic_rules/rules/windows/execution_posh_hacktool_functions.toml +3 -2
  105. nldcsc_elastic_rules/rules/windows/execution_suspicious_powershell_imgload.toml +7 -2
  106. nldcsc_elastic_rules/rules/windows/execution_windows_powershell_susp_args.toml +9 -2
  107. nldcsc_elastic_rules/rules/windows/impact_mod_critical_os_files.toml +16 -6
  108. nldcsc_elastic_rules/rules/windows/lateral_movement_credential_access_kerberos_correlation.toml +7 -2
  109. nldcsc_elastic_rules/rules/windows/lateral_movement_scheduled_task_target.toml +2 -2
  110. nldcsc_elastic_rules/rules/windows/persistence_browser_extension_install.toml +19 -2
  111. nldcsc_elastic_rules/rules/windows/persistence_msi_installer_task_startup.toml +50 -13
  112. nldcsc_elastic_rules/rules/windows/persistence_via_application_shimming.toml +12 -2
  113. nldcsc_elastic_rules/rules/windows/privilege_escalation_tokenmanip_sedebugpriv_enabled.toml +24 -18
  114. nldcsc_elastic_rules/rules/windows/privilege_escalation_unusual_printspooler_childprocess.toml +14 -2
  115. nldcsc_elastic_rules/rules/windows/privilege_escalation_via_ppid_spoofing.toml +3 -2
  116. {nldcsc_elastic_rules-0.0.8.dist-info → nldcsc_elastic_rules-0.0.16.dist-info}/METADATA +1 -1
  117. {nldcsc_elastic_rules-0.0.8.dist-info → nldcsc_elastic_rules-0.0.16.dist-info}/RECORD +119 -87
  118. nldcsc_elastic_rules/rules/integrations/aws/credential_access_aws_iam_assume_role_brute_force.toml +0 -105
  119. nldcsc_elastic_rules/rules/integrations/aws/discovery_ec2_multi_region_describe_instances.toml +0 -135
  120. nldcsc_elastic_rules/rules/integrations/aws/discovery_ec2_multiple_discovery_api_calls_via_cli.toml +0 -155
  121. nldcsc_elastic_rules/rules/integrations/aws/impact_efs_filesystem_or_mount_deleted.toml +0 -95
  122. {nldcsc_elastic_rules-0.0.8.dist-info → nldcsc_elastic_rules-0.0.16.dist-info}/WHEEL +0 -0
  123. {nldcsc_elastic_rules-0.0.8.dist-info → nldcsc_elastic_rules-0.0.16.dist-info}/top_level.txt +0 -0
@@ -1,8 +1,8 @@
1
1
  [metadata]
2
2
  creation_date = "2020/04/27"
3
- integration = ["endpoint", "crowdstrike", "sentinel_one_cloud_funnel"]
3
+ integration = ["auditd_manager", "crowdstrike", "endpoint", "sentinel_one_cloud_funnel"]
4
4
  maturity = "production"
5
- updated_date = "2025/03/20"
5
+ updated_date = "2025/12/01"
6
6
 
7
7
  [rule]
8
8
  author = ["Elastic"]
@@ -13,10 +13,12 @@ remove them at the end as part of the post-intrusion cleanup process.
13
13
  """
14
14
  from = "now-9m"
15
15
  index = [
16
+ "auditbeat-*",
16
17
  "endgame-*",
17
18
  "logs-crowdstrike.fdr*",
18
19
  "logs-endpoint.events.process*",
19
20
  "logs-sentinel_one_cloud_funnel.*",
21
+ "logs-auditd_manager.auditd-*",
20
22
  ]
21
23
  language = "eql"
22
24
  license = "Elastic License v2"
@@ -88,6 +90,7 @@ tags = [
88
90
  "OS: Linux",
89
91
  "Use Case: Threat Detection",
90
92
  "Tactic: Defense Evasion",
93
+ "Data Source: Auditd Manager",
91
94
  "Data Source: Elastic Defend",
92
95
  "Data Source: Elastic Endgame",
93
96
  "Data Source: Crowdstrike",
@@ -98,9 +101,13 @@ timestamp_override = "event.ingested"
98
101
  type = "eql"
99
102
 
100
103
  query = '''
101
- process where host.os.type == "linux" and event.type == "start" and process.name == "shred" and process.args in (
102
- "-u", "--remove", "-z", "--zero"
103
- ) and not process.parent.name == "logrotate"
104
+ process where host.os.type == "linux" and event.type == "start" and event.action in ("exec", "exec_event", "start", "ProcessRollup2", "executed", "process_started") and
105
+ process.name == "shred" and (
106
+ // Any short-flag cluster containing at least one of u/z, and containing no extra "-" after the first one
107
+ process.args regex~ "-[^-]*[uz][^-]*" or
108
+ process.args in ("--remove", "--zero")
109
+ ) and
110
+ not process.parent.name == "logrotate"
104
111
  '''
105
112
 
106
113
 
@@ -0,0 +1,150 @@
1
+ [metadata]
2
+ creation_date = "2025/12/01"
3
+ integration = ["endpoint", "auditd_manager", "crowdstrike", "sentinel_one_cloud_funnel"]
4
+ maturity = "production"
5
+ updated_date = "2025/12/08"
6
+
7
+ [rule]
8
+ author = ["Elastic"]
9
+ description = """
10
+ This rule detects the creation of pods or containers that execute suspicious commands often associated with persistence or
11
+ privilege escalation techniques. Attackers may use container orchestration tools like kubectl or container runtimes like
12
+ docker to create pods or containers that run shell commands with arguments that indicate attempts to establish persistence
13
+ (e.g., modifying startup scripts, creating backdoors).
14
+ """
15
+ from = "now-9m"
16
+ index = [
17
+ "auditbeat-*",
18
+ "endgame-*",
19
+ "logs-auditd_manager.auditd-*",
20
+ "logs-crowdstrike.fdr*",
21
+ "logs-endpoint.events.process*",
22
+ "logs-sentinel_one_cloud_funnel.*",
23
+ ]
24
+ language = "eql"
25
+ license = "Elastic License v2"
26
+ name = "Pod or Container Creation with Suspicious Command-Line"
27
+ note = """## Triage and analysis
28
+
29
+ > **Disclaimer**:
30
+ > This investigation guide was created using generative AI technology and has been reviewed to improve its accuracy and relevance. 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.
31
+
32
+ ### Investigating Pod or Container Creation with Suspicious Command-Line
33
+
34
+ This rule flags pods or containers started via orchestration or runtime tools that immediately execute a shell with commands linked to persistence, privilege changes, or covert I/O (cron, rc.local, sudoers, .ssh, base64, netcat/socat, /tmp). This matters because attackers often spin short‑lived workloads to modify startup paths or drop backdoors. Example: kubectl run --restart=Never -- sh -c 'echo ssh-rsa AAAA... >> /root/.ssh/authorized_keys && nc -lvp 4444 -e /bin/sh'.
35
+
36
+ ### Possible investigation steps
37
+
38
+ - Pivot to Kubernetes audit logs to identify the actor (user or service account), namespace, source IP/workstation, and RBAC context that launched the workload, and validate whether this aligns with approved admin activity.
39
+ - Pull the pod/container spec and image metadata to quickly assess risk indicators like unapproved registry/image, privileged mode, hostNetwork/hostPID, and hostPath or sensitive volume mounts that could mutate the node.
40
+ - Parse the executed command to determine whether it attempts persistence or backdoor setup (editing cron/rc.local, sudoers or authorized_keys, base64 file drops, starting netcat/socat listeners), and verify those changes on the container or node.
41
+ - Correlate runtime and network telemetry for the workload to detect outbound connections or listening ports indicative of reverse shells, and identify destination endpoints and nodes involved.
42
+ - Trace the launcher context by reviewing kubectl client host artifacts (shell history, kubeconfig, IAM/MFA tokens) or CI/CD logs, and check for recent anomalous commits or pipeline runs that could have triggered it.
43
+
44
+ ### False positive analysis
45
+
46
+ - Administrators performing network troubleshooting or node diagnostics may start ephemeral pods via kubectl run --restart=Never or ad hoc containers with docker/nerdctl that launch sh and use nc/socat/telnet, read /proc, or write to /tmp.
47
+ - Engineers may pass configs or test scripts into a shell using base64/xxd and touch cron, rc.local, /etc/ssh, ~/.ssh, or /etc/profile during validation or break-fix work, producing commands that resemble persistence behavior.
48
+
49
+ ### Response and remediation
50
+
51
+ - Delete the offending pod/container, revoke the kubeconfig or runtime credentials used to launch it, and quarantine the image and namespace, cordoning the node if privileged, hostNetwork/hostPID, or hostPath were present.
52
+ - Kill any spawned shells or listeners (e.g., sh -c 'nc -lvp ...', socat, telnet) on affected nodes, remove unauthorized firewall/iptables rules, and apply temporary deny-all egress NetworkPolicies to cut C2.
53
+ - Eradicate persistence by restoring clean versions of /etc/cron*, /etc/rc.local, /etc/profile, /etc/sudoers, /etc/ssh/* and deleting unauthorized keys or scripts under /root/.ssh, ~/.ssh, /tmp, /dev/shm, /var/tmp, and hostPath-mounted directories.
54
+ - Rebuild compromised nodes or redeploy workloads with known-good images, rotate cluster secrets and SSH keys, and validate baseline integrity with file hashes and admission scans before returning to service.
55
+ - Escalate to incident response if the actor is unverified or commands touched /etc/shadow or /etc/sudoers, used privileged containers or hostPath to access the host, or opened external connections or listening ports on the node.
56
+ - Harden by enforcing admission controls to deny pods that start /bin/sh or /bin/bash as PID 1, block privileged/hostNetwork/hostPID/hostPath, apply per-namespace egress policies, and restrict RBAC so only approved admins can run kubectl run --restart=Never or docker/nerdctl run.
57
+ """
58
+ risk_score = 47
59
+ rule_id = "c595363f-52a6-49e1-9257-0e08ae043dbd"
60
+ severity = "medium"
61
+ tags = [
62
+ "Domain: Endpoint",
63
+ "Domain: Container",
64
+ "OS: Linux",
65
+ "Use Case: Threat Detection",
66
+ "Tactic: Execution",
67
+ "Tactic: Privilege Escalation",
68
+ "Tactic: Persistence",
69
+ "Data Source: Elastic Defend",
70
+ "Data Source: Elastic Endgame",
71
+ "Data Source: Auditd Manager",
72
+ "Data Source: Crowdstrike",
73
+ "Data Source: SentinelOne",
74
+ "Resources: Investigation Guide",
75
+ ]
76
+ timestamp_override = "event.ingested"
77
+ type = "eql"
78
+ query = '''
79
+ process where host.os.type == "linux" and event.type == "start" and event.action in ("exec", "exec_event", "start", "ProcessRollup2", "executed", "process_started") and (
80
+ (process.name == "kubectl" and process.args == "run" and process.args == "--restart=Never" and process.args == "--") or
81
+ (process.name in ("docker", "nerdctl", "ctl") and process.args == "run")
82
+ ) and
83
+ process.args in ("bash", "dash", "sh", "tcsh", "csh", "zsh", "ksh", "fish") and
84
+ process.command_line like~ (
85
+ "*atd*", "*cron*", "*/etc/rc.local*", "*/dev/tcp/*", "*/etc/init.d*", "*/etc/update-motd.d*", "*/etc/ld.so*", "*/etc/sudoers*", "*base64 *",
86
+ "*/etc/profile*", "*/etc/ssh*", "*/home/*/.ssh/*", "*/root/.ssh*" , "*~/.ssh/*", "*autostart*", "*xxd *", "*/etc/shadow*", "*./.*",
87
+ "*import*pty*spawn*", "*import*subprocess*call*", "*TCPSocket.new*", "*TCPSocket.open*", "*io.popen*", "*os.execute*", "*fsockopen*",
88
+ "*disown*", "* ncat *", "* nc *", "* netcat *", "* nc.traditional *", "*socat*", "*telnet*", "*/tmp/*", "*/dev/shm/*", "*/var/tmp/*",
89
+ "*/boot/*", "*/sys/*", "*/lost+found/*", "*/media/*", "*/proc/*", "*/var/backups/*", "*/var/log/*", "*/var/mail/*", "*/var/spool/*"
90
+ )
91
+ '''
92
+
93
+ [[rule.threat]]
94
+ framework = "MITRE ATT&CK"
95
+
96
+ [[rule.threat.technique]]
97
+ id = "T1059"
98
+ name = "Command and Scripting Interpreter"
99
+ reference = "https://attack.mitre.org/techniques/T1059/"
100
+
101
+ [[rule.threat.technique.subtechnique]]
102
+ id = "T1059.004"
103
+ name = "Unix Shell"
104
+ reference = "https://attack.mitre.org/techniques/T1059/004/"
105
+
106
+ [[rule.threat.technique]]
107
+ id = "T1609"
108
+ name = "Container Administration Command"
109
+ reference = "https://attack.mitre.org/techniques/T1609/"
110
+
111
+ [rule.threat.tactic]
112
+ id = "TA0002"
113
+ name = "Execution"
114
+ reference = "https://attack.mitre.org/tactics/TA0002/"
115
+
116
+ [[rule.threat]]
117
+ framework = "MITRE ATT&CK"
118
+
119
+ [[rule.threat.technique]]
120
+ id = "T1611"
121
+ name = "Escape to Host"
122
+ reference = "https://attack.mitre.org/techniques/T1611/"
123
+
124
+ [rule.threat.tactic]
125
+ id = "TA0004"
126
+ name = "Privilege Escalation"
127
+ reference = "https://attack.mitre.org/tactics/TA0004/"
128
+
129
+ [[rule.threat]]
130
+ framework = "MITRE ATT&CK"
131
+
132
+ [[rule.threat.technique]]
133
+ id = "T1053"
134
+ name = "Scheduled Task/Job"
135
+ reference = "https://attack.mitre.org/techniques/T1053/"
136
+
137
+ [[rule.threat.technique.subtechnique]]
138
+ id = "T1053.002"
139
+ name = "At"
140
+ reference = "https://attack.mitre.org/techniques/T1053/002/"
141
+
142
+ [[rule.threat.technique.subtechnique]]
143
+ id = "T1053.003"
144
+ name = "Cron"
145
+ reference = "https://attack.mitre.org/techniques/T1053/003/"
146
+
147
+ [rule.threat.tactic]
148
+ id = "TA0003"
149
+ name = "Persistence"
150
+ reference = "https://attack.mitre.org/tactics/TA0003/"
@@ -2,7 +2,7 @@
2
2
  creation_date = "2024/05/31"
3
3
  integration = ["endpoint"]
4
4
  maturity = "production"
5
- updated_date = "2025/01/15"
5
+ updated_date = "2025/12/01"
6
6
 
7
7
  [rule]
8
8
  author = ["Elastic"]
@@ -58,10 +58,10 @@ tags = [
58
58
  ]
59
59
  timestamp_override = "event.ingested"
60
60
  type = "eql"
61
-
62
61
  query = '''
63
- file where host.os.type == "linux" and
64
- event.action in ("rename", "creation") and file.path : "/var/spool/cron/atjobs/*" and not (
62
+ file where host.os.type == "linux" and event.action in ("rename", "creation") and
63
+ file.path like ("/var/spool/cron/atjobs/*", "/var/spool/atjobs/*") and
64
+ not (
65
65
  process.executable in (
66
66
  "/bin/dpkg", "/usr/bin/dpkg", "/bin/dockerd", "/usr/bin/dockerd", "/usr/sbin/dockerd", "/bin/microdnf",
67
67
  "/usr/bin/microdnf", "/bin/rpm", "/usr/bin/rpm", "/bin/snapd", "/usr/bin/snapd", "/bin/yum", "/usr/bin/yum",
@@ -2,7 +2,7 @@
2
2
  creation_date = "2024/03/06"
3
3
  integration = ["endpoint"]
4
4
  maturity = "production"
5
- updated_date = "2025/01/15"
5
+ updated_date = "2025/12/08"
6
6
 
7
7
  [rule]
8
8
  author = ["Elastic"]
@@ -42,12 +42,12 @@ type = "eql"
42
42
  query = '''
43
43
  file where host.os.type == "linux" and event.action in ("rename", "creation") and
44
44
  process.executable != null and (
45
- (file.path like~ (
45
+ (file.path like (
46
46
  "/lib/security/*", "/lib64/security/*", "/usr/lib/security/*", "/usr/lib64/security/*",
47
47
  "/lib/x86_64-linux-gnu/security/*", "/usr/lib/x86_64-linux-gnu/security/*"
48
48
  ) and file.extension == "so") or
49
- (file.path like~ "/etc/pam.d/*" and file.extension == null) or
50
- (file.path like~ "/etc/security/pam_*" or file.path == "/etc/pam.conf")
49
+ (file.path like "/etc/pam.d/*" and file.extension == null) or
50
+ (file.path like "/etc/security/pam_*" or file.path == "/etc/pam.conf")
51
51
  ) and not (
52
52
  process.executable in (
53
53
  "/bin/dpkg", "/usr/bin/dpkg", "/bin/dockerd", "/usr/bin/dockerd", "/usr/sbin/dockerd", "/bin/microdnf",
@@ -58,7 +58,10 @@ process.executable != null and (
58
58
  "/bin/puppet", "/opt/puppetlabs/puppet/bin/puppet", "/usr/bin/chef-client", "/bin/chef-client",
59
59
  "/bin/autossl_check", "/usr/bin/autossl_check", "/proc/self/exe", "/dev/fd/*", "/usr/bin/pamac-daemon",
60
60
  "/bin/pamac-daemon", "/usr/lib/snapd/snapd", "/usr/local/bin/dockerd", "/usr/sbin/pam-auth-update",
61
- "/usr/lib/systemd/systemd", "/usr/libexec/packagekitd", "/usr/bin/bsdtar", "/sbin/pam-auth-update"
61
+ "/usr/lib/systemd/systemd", "/usr/libexec/packagekitd", "/usr/bin/bsdtar", "/sbin/pam-auth-update", "./user/bin/podman",
62
+ "/usr/bin/dnf5", "/opt/puppetlabs/puppet/bin/ruby", "/usr/bin/crio", "/sbin/authconfig", "/usr/sbin/yum-cron",
63
+ "/sbin/yum-cron", "/usr/local/psa/bin/dnf_install", "/opt/jc/bin/jumpcloud-agent"
64
+
62
65
  ) or
63
66
  file.path like (
64
67
  "/tmp/snap.rootfs_*/pam_*.so", "/tmp/newroot/lib/*/pam_*.so", "/tmp/newroot/usr/lib64/security/pam_*.so"
@@ -66,10 +69,12 @@ process.executable != null and (
66
69
  file.extension in ("swp", "swpx", "swx", "dpkg-remove") or
67
70
  file.Ext.original.extension == "dpkg-new" or
68
71
  process.executable like (
69
- "/nix/store/*", "/var/lib/dpkg/*", "/snap/*", "/dev/fd/*", "/usr/lib/virtualbox/*"
72
+ "/nix/store/*", "/var/lib/dpkg/*", "/snap/*", "/dev/fd/*", "/usr/lib/virtualbox/*", "/usr/bin/python*",
73
+ "/opt/alt/python*/bin/python*", "/usr/libexec/platform-python*", "./snap/snapd/*/usr/lib/snapd/snap-update-ns"
70
74
  ) or
71
75
  (process.name == "sed" and file.name like~ "sed*") or
72
- (process.name == "perl" and file.name like~ "e2scrub_all.tmp*")
76
+ (process.name == "perl" and file.name like~ "e2scrub_all.tmp*") or
77
+ (process.name == "perl" and event.action == "rename" and file.Ext.original.name like "*.pam-new")
73
78
  )
74
79
  '''
75
80
  note = """## Triage and analysis
@@ -2,7 +2,7 @@
2
2
  creation_date = "2025/02/26"
3
3
  integration = ["endpoint"]
4
4
  maturity = "production"
5
- updated_date = "2025/04/07"
5
+ updated_date = "2025/12/03"
6
6
 
7
7
  [rule]
8
8
  author = ["Elastic"]
@@ -128,6 +128,11 @@ id = "T1546"
128
128
  name = "Event Triggered Execution"
129
129
  reference = "https://attack.mitre.org/techniques/T1546/"
130
130
 
131
+ [[rule.threat.technique.subtechnique]]
132
+ id = "T1546.018"
133
+ name = "Python Startup Hooks"
134
+ reference = "https://attack.mitre.org/techniques/T1546/018/"
135
+
131
136
  [[rule.threat.technique]]
132
137
  id = "T1574"
133
138
  name = "Hijack Execution Flow"
@@ -2,7 +2,7 @@
2
2
  creation_date = "2025/02/26"
3
3
  integration = ["endpoint"]
4
4
  maturity = "production"
5
- updated_date = "2025/04/07"
5
+ updated_date = "2025/12/03"
6
6
 
7
7
  [rule]
8
8
  author = ["Elastic"]
@@ -123,6 +123,11 @@ id = "T1546"
123
123
  name = "Event Triggered Execution"
124
124
  reference = "https://attack.mitre.org/techniques/T1546/"
125
125
 
126
+ [[rule.threat.technique.subtechnique]]
127
+ id = "T1546.018"
128
+ name = "Python Startup Hooks"
129
+ reference = "https://attack.mitre.org/techniques/T1546/018/"
130
+
126
131
  [[rule.threat.technique]]
127
132
  id = "T1574"
128
133
  name = "Hijack Execution Flow"
@@ -0,0 +1,155 @@
1
+ [metadata]
2
+ creation_date = "2025/12/02"
3
+ integration = ["endpoint"]
4
+ maturity = "production"
5
+ updated_date = "2025/12/08"
6
+
7
+ [rule]
8
+ author = ["Elastic"]
9
+ description = """
10
+ This rule leverages the "new_terms" rule type to detect unusual command executions originating from web server processes on Linux systems.
11
+ Attackers may exploit web servers to maintain persistence on a compromised system, often resulting in atypical command executions. As
12
+ command execution from web server parent processes is common, the "new_terms" rule type approach helps to identify deviations from normal
13
+ behavior.
14
+ """
15
+ from = "now-9m"
16
+ index = ["logs-endpoint.events.process*"]
17
+ language = "kuery"
18
+ license = "Elastic License v2"
19
+ name = "Unusual Web Server Command Execution"
20
+ note = """## Triage and analysis
21
+
22
+ > **Disclaimer**:
23
+ > This investigation guide was created using generative AI technology and has been reviewed to improve its accuracy and relevance. 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.
24
+
25
+ ### Investigating Unusual Web Server Command Execution
26
+
27
+ This rule detects shells invoked by web server processes on Linux to run one-off commands, surfacing command lines the server has never executed before. Attackers exploit vulnerable apps or dropped webshells to launch bash -c from web roots, e.g., download a payload with wget/curl into /opt or /tmp, chmod +x and execute it, or open a reverse shell (nc -e sh) to implant services or cron-like tasks and persist under the web server account.
28
+
29
+ ### Possible investigation steps
30
+
31
+ - Reconstruct the process tree around the event to identify the shell payload and parent service, determine if it chains downloads, reverse shells, or archive extraction, and hash/snapshot any referenced files.
32
+ - Pivot to web server access and error logs at the timestamp to identify the request path, client IP, user agent, and HTTP verb that triggered execution, noting anomalies like POST uploads, long query strings, or 500s.
33
+ - List and diff newly created or recently modified files under common web roots and application directories around the event time, looking for webshells, chmod+x artifacts, .php/.jsp backdoors, or systemd/cron writes by the same user.
34
+ - Correlate with network telemetry to see if the web tier opened outbound connections or listeners (nc, bash -i, curl/wget), and capture any active sockets and destinations for rapid containment.
35
+ - Validate whether the command matches expected maintenance tasks for the application (e.g., wkhtmltopdf or image processing), and if not, isolate the process and host while scoping for the same pattern across other servers and preserving volatile evidence.
36
+
37
+ ### False positive analysis
38
+
39
+ - A legitimate web-admin workflow (plugin/module install, content import, or cache warmup) spawns sh -c from an apache/nginx parent in /var/www to run tar/chmod/chown steps, producing a command line the host has not previously executed under www-data.
40
+ - A recently deployed application feature performs server-side document or image processing and rotates logs by calling sh -c from a framework parent (flask/rails/php) with a working directory in /opt or /usr/share/nginx, making the specific shell invocation a new term for this server.
41
+
42
+ ### Response and remediation
43
+
44
+ - Quarantine the affected web server by removing it from the load balancer, stopping apache/nginx/httpd, and killing the spawned shell (e.g., bash -c) while capturing /proc/<pid>/cmdline and /proc/<pid>/environ, lsof, and active sockets for evidence.
45
+ - Block outbound egress from the web server account and immediately deny destinations contacted by curl/wget or reverse shells (nc, bash -i to /dev/tcp), and rotate exposed API keys or credentials referenced in the command line.
46
+ - Eradicate persistence by deleting newly dropped or modified files under /var/www, /usr/share/nginx, /srv/http, /opt, or /home/*/public_html (webshells, .php backdoors), removing downloaded binaries from /tmp or /opt, and cleaning cron/systemd units created by www-data/nginx.
47
+ - Recover by restoring web content and application code from known-good backups or images, verifying file ownership and permissions, and restarting the service with monitored command allowlists and file integrity checks.
48
+ - Escalate to full incident response and forensic imaging if any reverse shell artifacts (nc -e sh, bash -i >& /dev/tcp/*), privileged writes (/etc/systemd/system/*.service, /var/spool/cron/*), or sudo execution by the web server user are observed.
49
+ - Harden by disabling risky exec paths (PHP exec/system/shell_exec and unsafe plugins), enforcing noexec,nodev,nosuid mounts on web roots, applying SELinux/AppArmor confinement to web processes, narrowing outbound egress, and deploying WAF/mod_security rules for upload and RCE vectors.
50
+ """
51
+ risk_score = 47
52
+ rule_id = "65f28c4d-cfc8-4847-9cca-f2fb1e319151"
53
+ severity = "medium"
54
+ tags = [
55
+ "Domain: Endpoint",
56
+ "Domain: Web",
57
+ "OS: Linux",
58
+ "Use Case: Threat Detection",
59
+ "Tactic: Persistence",
60
+ "Data Source: Elastic Defend",
61
+ "Resources: Investigation Guide",
62
+ ]
63
+ timestamp_override = "event.ingested"
64
+ type = "new_terms"
65
+ query = '''
66
+ event.category:process and host.os.type:linux and event.type:start and event.action:exec and (
67
+ process.parent.name:(
68
+ "apache" or "nginx" or "apache2" or "httpd" or "lighttpd" or "caddy" or "mongrel_rails" or "haproxy" or
69
+ "gunicorn" or "uwsgi" or "openresty" or "cherokee" or "h2o" or "resin" or "puma" or "unicorn" or "traefik" or "uvicorn" or
70
+ "tornado" or "hypercorn" or "daphne" or "twistd" or "yaws" or "webfsd" or "httpd.worker" or "flask" or "rails" or "mongrel" or
71
+ php* or ruby* or perl* or python* or "node" or "java"
72
+ ) or
73
+ user.name:("apache" or "www-data" or "httpd" or "nginx" or "lighttpd" or "tomcat" or "tomcat8" or "tomcat9") or
74
+ user.id:("33" or "498" or "48" or "54321")
75
+ ) and process.working_directory:(
76
+ /var/www/* or
77
+ /usr/share/nginx/* or
78
+ /srv/www/* or
79
+ /srv/http/* or
80
+ */webapps/* or
81
+ /home/*/public_html/* or
82
+ /home/*/www/* or
83
+ /opt/* or
84
+ /u0*/*
85
+ ) and
86
+ process.command_line:* and process.name:(bash or dash or sh or tcsh or csh or zsh or ksh or fish) and process.args:"-c" and
87
+ not (
88
+ (process.parent.name:java and not process.parent.executable:/u0*/*) or
89
+ (process.parent.name:python* and process.parent.executable:(/bin/python* or /usr/bin/python* or /usr/local/bin/python* or /tmp/*python* or /opt/oracle.ahf/python/*)) or
90
+ (process.parent.name:ruby* and process.parent.executable:(/bin/ruby* or /usr/bin/ruby* or /usr/local/bin/ruby* or /tmp/*ruby* or /bin/ruby or /usr/bin/ruby or /usr/local/bin/ruby)) or
91
+ (process.parent.name:perl* and process.parent.executable:(/bin/perl* or /usr/bin/perl* or /usr/local/bin/perl* or /tmp/*perl* or /bin/perl or /usr/bin/perl or /usr/local/bin/perl)) or
92
+ (process.parent.name:php* and process.parent.executable:(/bin/php* or /usr/bin/php* or /usr/local/bin/php* or /tmp/*php* or /bin/php or /usr/bin/php or /usr/local/bin/php)) or
93
+ (process.parent.name:node and process.parent.executable:(/home/*/.vscode-server/* or /users/*/.vscode-server/* or /bin/node or /usr/bin/node or /usr/local/bin/node or /opt/plesk/node/*/bin/node)) or
94
+ process.working_directory:(/u0*/*/sysman/emd or /u0*/app/oracle/product/*/dbhome_* or /u0*/app/oracle/product/*/db_* or /var/www/*edoc*) or
95
+ process.parent.executable:/tmp/* or
96
+ process.args:/usr/local/bin/wkhtmltopdf*
97
+ )
98
+ '''
99
+
100
+ [[rule.threat]]
101
+ framework = "MITRE ATT&CK"
102
+
103
+ [[rule.threat.technique]]
104
+ id = "T1505"
105
+ name = "Server Software Component"
106
+ reference = "https://attack.mitre.org/techniques/T1505/"
107
+
108
+ [[rule.threat.technique.subtechnique]]
109
+ id = "T1505.003"
110
+ name = "Web Shell"
111
+ reference = "https://attack.mitre.org/techniques/T1505/003/"
112
+
113
+ [rule.threat.tactic]
114
+ id = "TA0003"
115
+ name = "Persistence"
116
+ reference = "https://attack.mitre.org/tactics/TA0003/"
117
+
118
+ [[rule.threat]]
119
+ framework = "MITRE ATT&CK"
120
+
121
+ [[rule.threat.technique]]
122
+ id = "T1059"
123
+ name = "Command and Scripting Interpreter"
124
+ reference = "https://attack.mitre.org/techniques/T1059/"
125
+
126
+ [[rule.threat.technique.subtechnique]]
127
+ id = "T1059.004"
128
+ name = "Unix Shell"
129
+ reference = "https://attack.mitre.org/techniques/T1059/004/"
130
+
131
+ [rule.threat.tactic]
132
+ id = "TA0002"
133
+ name = "Execution"
134
+ reference = "https://attack.mitre.org/tactics/TA0002/"
135
+
136
+ [[rule.threat]]
137
+ framework = "MITRE ATT&CK"
138
+
139
+ [[rule.threat.technique]]
140
+ id = "T1071"
141
+ name = "Application Layer Protocol"
142
+ reference = "https://attack.mitre.org/techniques/T1071/"
143
+
144
+ [rule.threat.tactic]
145
+ id = "TA0011"
146
+ name = "Command and Control"
147
+ reference = "https://attack.mitre.org/tactics/TA0011/"
148
+
149
+ [rule.new_terms]
150
+ field = "new_terms_fields"
151
+ value = ["process.command_line"]
152
+
153
+ [[rule.new_terms.history_window_start]]
154
+ field = "history_window_start"
155
+ value = "now-14d"
@@ -2,7 +2,7 @@
2
2
  creation_date = "2025/02/18"
3
3
  integration = ["endpoint"]
4
4
  maturity = "production"
5
- updated_date = "2025/02/18"
5
+ updated_date = "2025/11/18"
6
6
 
7
7
  [rule]
8
8
  anomaly_threshold = 75
@@ -91,3 +91,60 @@ The detection of a spike in host-based traffic leverages machine learning to ide
91
91
  - Restore the affected host from a known good backup if malware or significant unauthorized changes are detected.
92
92
  - Implement network segmentation to limit the spread of potential threats and reduce the impact of similar incidents in the future.
93
93
  - Escalate the incident to the security operations center (SOC) or relevant team for further analysis and to determine if additional resources are needed for a comprehensive response."""
94
+
95
+ [[rule.threat]]
96
+ framework = "MITRE ATT&CK"
97
+
98
+ [rule.threat.tactic]
99
+ id = "TA0010"
100
+ name = "Exfiltration"
101
+ reference = "https://attack.mitre.org/tactics/TA0010/"
102
+
103
+ [[rule.threat.technique]]
104
+ id = "T1041"
105
+ name = "Exfiltration Over C2 Channel"
106
+ reference = "https://attack.mitre.org/techniques/T1041/"
107
+
108
+ [[rule.threat]]
109
+ framework = "MITRE ATT&CK"
110
+
111
+ [rule.threat.tactic]
112
+ id = "TA0040"
113
+ name = "Impact"
114
+ reference = "https://attack.mitre.org/tactics/TA0040/"
115
+
116
+ [[rule.threat.technique]]
117
+ id = "T1498"
118
+ name = "Network Denial of Service"
119
+ reference = "https://attack.mitre.org/techniques/T1498/"
120
+
121
+ [[rule.threat.technique]]
122
+ id = "T1499"
123
+ name = "Endpoint Denial of Service"
124
+ reference = "https://attack.mitre.org/techniques/T1499/"
125
+
126
+ [[rule.threat]]
127
+ framework = "MITRE ATT&CK"
128
+
129
+ [rule.threat.tactic]
130
+ id = "TA0002"
131
+ name = "Execution"
132
+ reference = "https://attack.mitre.org/tactics/TA0002/"
133
+
134
+ [[rule.threat.technique]]
135
+ id = "T1204"
136
+ name = "User Execution"
137
+ reference = "https://attack.mitre.org/techniques/T1204/"
138
+
139
+ [[rule.threat]]
140
+ framework = "MITRE ATT&CK"
141
+
142
+ [rule.threat.tactic]
143
+ id = "TA0004"
144
+ name = "Privilege Escalation"
145
+ reference = "https://attack.mitre.org/tactics/TA0004/"
146
+
147
+ [[rule.threat.technique]]
148
+ id = "T1068"
149
+ name = "Exploitation for Privilege Escalation"
150
+ reference = "https://attack.mitre.org/techniques/T1068/"
@@ -2,7 +2,7 @@
2
2
  creation_date = "2021/04/05"
3
3
  integration = ["endpoint", "network_traffic"]
4
4
  maturity = "production"
5
- updated_date = "2025/01/15"
5
+ updated_date = "2025/11/18"
6
6
 
7
7
  [rule]
8
8
  anomaly_threshold = 75
@@ -111,3 +111,73 @@ Firewalls and ACLs are critical in controlling network traffic, blocking unautho
111
111
  - Implement additional monitoring and alerting for similar patterns of denied traffic to enhance early detection of potential threats.
112
112
  - Document the incident, including actions taken and lessons learned, to improve future response efforts and update incident response plans accordingly."""
113
113
 
114
+ [[rule.threat]]
115
+ framework = "MITRE ATT&CK"
116
+
117
+ [rule.threat.tactic]
118
+ id = "TA0011"
119
+ name = "Command and Control"
120
+ reference = "https://attack.mitre.org/tactics/TA0011/"
121
+
122
+ [[rule.threat.technique]]
123
+ id = "T1071"
124
+ name = "Application Layer Protocol"
125
+ reference = "https://attack.mitre.org/techniques/T1071/"
126
+
127
+ [[rule.threat]]
128
+ framework = "MITRE ATT&CK"
129
+
130
+ [rule.threat.tactic]
131
+ id = "TA0010"
132
+ name = "Exfiltration"
133
+ reference = "https://attack.mitre.org/tactics/TA0010/"
134
+
135
+ [[rule.threat.technique]]
136
+ id = "T1041"
137
+ name = "Exfiltration Over C2 Channel"
138
+ reference = "https://attack.mitre.org/techniques/T1041/"
139
+
140
+ [[rule.threat]]
141
+ framework = "MITRE ATT&CK"
142
+
143
+ [rule.threat.tactic]
144
+ id = "TA0007"
145
+ name = "Discovery"
146
+ reference = "https://attack.mitre.org/tactics/TA0007/"
147
+
148
+ [[rule.threat.technique]]
149
+ id = "T1046"
150
+ name = "Network Service Discovery"
151
+ reference = "https://attack.mitre.org/techniques/T1046/"
152
+
153
+ [[rule.threat]]
154
+ framework = "MITRE ATT&CK"
155
+
156
+ [rule.threat.tactic]
157
+ id = "TA0043"
158
+ name = "Reconnaissance"
159
+ reference = "https://attack.mitre.org/tactics/TA0043/"
160
+
161
+ [[rule.threat.technique]]
162
+ id = "T1590"
163
+ name = "Gather Victim Network Information"
164
+ reference = "https://attack.mitre.org/techniques/T1590/"
165
+
166
+ [[rule.threat]]
167
+ framework = "MITRE ATT&CK"
168
+
169
+ [rule.threat.tactic]
170
+ id = "TA0040"
171
+ name = "Impact"
172
+ reference = "https://attack.mitre.org/tactics/TA0040/"
173
+
174
+ [[rule.threat.technique]]
175
+ id = "T1498"
176
+ name = "Network Denial of Service"
177
+ reference = "https://attack.mitre.org/techniques/T1498/"
178
+
179
+ [[rule.threat.technique]]
180
+ id = "T1499"
181
+ name = "Endpoint Denial of Service"
182
+ reference = "https://attack.mitre.org/techniques/T1499/"
183
+