Populate rules/ directory.

Co-Authored-By: Brent Murphy <56412096+bm11100@users.noreply.github.com>
Co-Authored-By: Craig Chamberlain <randomuserid@users.noreply.github.com>
Co-Authored-By: David French <56409778+threat-punter@users.noreply.github.com>
Co-Authored-By: Derek Ditch <dcode@users.noreply.github.com>
Co-Authored-By: Justin Ibarra <brokensound77@users.noreply.github.com>
This commit is contained in:
Ross Wolf
2020-06-29 22:57:00 -06:00
parent cb1ae2f84a
commit 5fcece8416
186 changed files with 8373 additions and 0 deletions
@@ -0,0 +1,59 @@
[metadata]
creation_date = "2020/02/18"
ecs_version = ["1.4.0"]
maturity = "production"
updated_date = "2020/02/18"
[rule]
author = ["Elastic"]
description = """
The Tcpdump program ran on a Linux host. Tcpdump is a network monitoring or packet sniffing tool that can be used to
capture insecure credentials or data in motion. Sniffing can also be used to discover details of network services as a
prelude to lateral movement or defense evasion.
"""
false_positives = [
"""
Some normal use of this command may originate from server or network administrators engaged in network
troubleshooting.
""",
]
index = ["auditbeat-*"]
language = "kuery"
license = "Elastic License"
name = "Network Sniffing via Tcpdump"
risk_score = 21
rule_id = "7a137d76-ce3d-48e2-947d-2747796a78c0"
severity = "low"
tags = ["Elastic", "Linux"]
type = "query"
query = '''
process.name:tcpdump and event.action:executed
'''
[[rule.threat]]
framework = "MITRE ATT&CK"
[[rule.threat.technique]]
id = "T1040"
name = "Network Sniffing"
reference = "https://attack.mitre.org/techniques/T1040/"
[rule.threat.tactic]
id = "TA0006"
name = "Credential Access"
reference = "https://attack.mitre.org/tactics/TA0006/"
[[rule.threat]]
framework = "MITRE ATT&CK"
[[rule.threat.technique]]
id = "T1040"
name = "Network Sniffing"
reference = "https://attack.mitre.org/techniques/T1040/"
[rule.threat.tactic]
id = "TA0007"
name = "Discovery"
reference = "https://attack.mitre.org/tactics/TA0007/"
@@ -0,0 +1,40 @@
[metadata]
creation_date = "2020/04/24"
ecs_version = ["1.4.0"]
maturity = "production"
updated_date = "2020/04/24"
[rule]
author = ["Elastic"]
description = """
Adversaries may attempt to disable the iptables or firewall service in an attempt to affect how a host is allowed to
receive or send network traffic.
"""
index = ["auditbeat-*"]
language = "kuery"
license = "Elastic License"
name = "Attempt to Disable IPTables or Firewall"
risk_score = 47
rule_id = "125417b8-d3df-479f-8418-12d7e034fee3"
severity = "medium"
tags = ["Elastic", "Linux"]
type = "query"
query = '''
event.action:(executed or process_started) and (process.name:service and process.args:stop or process.name:chkconfig and process.args:off) and process.args:(ip6tables or iptables) or process.name:systemctl and process.args:(firewalld and (disable or stop or kill))
'''
[[rule.threat]]
framework = "MITRE ATT&CK"
[[rule.threat.technique]]
id = "T1089"
name = "Disabling Security Tools"
reference = "https://attack.mitre.org/techniques/T1089/"
[rule.threat.tactic]
id = "TA0005"
name = "Defense Evasion"
reference = "https://attack.mitre.org/tactics/TA0005/"
@@ -0,0 +1,40 @@
[metadata]
creation_date = "2020/04/27"
ecs_version = ["1.4.0"]
maturity = "production"
updated_date = "2020/04/27"
[rule]
author = ["Elastic"]
description = """
Adversaries may attempt to disable the syslog service in an attempt to an attempt to disrupt event logging and evade
detection by security controls.
"""
index = ["auditbeat-*"]
language = "kuery"
license = "Elastic License"
name = "Attempt to Disable Syslog Service"
risk_score = 47
rule_id = "2f8a1226-5720-437d-9c20-e0029deb6194"
severity = "medium"
tags = ["Elastic", "Linux"]
type = "query"
query = '''
event.action:(executed or process_started) and ((process.name:service and process.args:stop) or (process.name:chkconfig and process.args:off) or (process.name:systemctl and process.args:(disable or stop or kill))) and process.args:(syslog or rsyslog or "syslog-ng")
'''
[[rule.threat]]
framework = "MITRE ATT&CK"
[[rule.threat.technique]]
id = "T1089"
name = "Disabling Security Tools"
reference = "https://attack.mitre.org/techniques/T1089/"
[rule.threat.tactic]
id = "TA0005"
name = "Defense Evasion"
reference = "https://attack.mitre.org/tactics/TA0005/"
@@ -0,0 +1,55 @@
[metadata]
creation_date = "2020/04/17"
ecs_version = ["1.4.0"]
maturity = "production"
updated_date = "2020/04/17"
[rule]
author = ["Elastic"]
description = "Adversaries may encode/decode data in an attempt to evade detection by host- or network-based security controls."
false_positives = [
"""
Automated tools such as Jenkins may encode or decode files as part of their normal behavior. These events can be
filtered by the process executable or username values.
""",
]
index = ["auditbeat-*"]
language = "kuery"
license = "Elastic License"
name = "Base16 or Base32 Encoding/Decoding Activity"
risk_score = 21
rule_id = "debff20a-46bc-4a4d-bae5-5cdd14222795"
severity = "low"
tags = ["Elastic", "Linux"]
type = "query"
query = '''
event.action:(executed or process_started) and process.name:(base16 or base32 or base32plain or base32hex)
'''
[[rule.threat]]
framework = "MITRE ATT&CK"
[[rule.threat.technique]]
id = "T1140"
name = "Deobfuscate/Decode Files or Information"
reference = "https://attack.mitre.org/techniques/T1140/"
[rule.threat.tactic]
id = "TA0005"
name = "Defense Evasion"
reference = "https://attack.mitre.org/tactics/TA0005/"
[[rule.threat]]
framework = "MITRE ATT&CK"
[[rule.threat.technique]]
id = "T1027"
name = "Obfuscated Files or Information"
reference = "https://attack.mitre.org/techniques/T1027/"
[rule.threat.tactic]
id = "TA0005"
name = "Defense Evasion"
reference = "https://attack.mitre.org/tactics/TA0005/"
@@ -0,0 +1,55 @@
[metadata]
creation_date = "2020/04/17"
ecs_version = ["1.4.0"]
maturity = "production"
updated_date = "2020/04/17"
[rule]
author = ["Elastic"]
description = "Adversaries may encode/decode data in an attempt to evade detection by host- or network-based security controls."
false_positives = [
"""
Automated tools such as Jenkins may encode or decode files as part of their normal behavior. These events can be
filtered by the process executable or username values.
""",
]
index = ["auditbeat-*"]
language = "kuery"
license = "Elastic License"
name = "Base64 Encoding/Decoding Activity"
risk_score = 21
rule_id = "97f22dab-84e8-409d-955e-dacd1d31670b"
severity = "low"
tags = ["Elastic", "Linux"]
type = "query"
query = '''
event.action:(executed or process_started) and process.name:(base64 or base64plain or base64url or base64mime or base64pem)
'''
[[rule.threat]]
framework = "MITRE ATT&CK"
[[rule.threat.technique]]
id = "T1140"
name = "Deobfuscate/Decode Files or Information"
reference = "https://attack.mitre.org/techniques/T1140/"
[rule.threat.tactic]
id = "TA0005"
name = "Defense Evasion"
reference = "https://attack.mitre.org/tactics/TA0005/"
[[rule.threat]]
framework = "MITRE ATT&CK"
[[rule.threat.technique]]
id = "T1027"
name = "Obfuscated Files or Information"
reference = "https://attack.mitre.org/techniques/T1027/"
[rule.threat.tactic]
id = "TA0005"
name = "Defense Evasion"
reference = "https://attack.mitre.org/tactics/TA0005/"
@@ -0,0 +1,40 @@
[metadata]
creation_date = "2020/05/04"
ecs_version = ["1.4.0"]
maturity = "production"
updated_date = "2020/06/24"
[rule]
author = ["Elastic"]
description = """
Adversaries may attempt to clear the bash command line history in an attempt to evade detection or forensic
investigations.
"""
index = ["auditbeat-*"]
language = "lucene"
license = "Elastic License"
name = "Deletion of Bash Command Line History"
risk_score = 47
rule_id = "7bcbb3ac-e533-41ad-a612-d6c3bf666aba"
severity = "medium"
tags = ["Elastic", "Linux"]
type = "query"
query = '''
event.action:executed AND process.name:rm AND process.args:/\/(home\/.{1,255}|root)\/\.bash_history/
'''
[[rule.threat]]
framework = "MITRE ATT&CK"
[[rule.threat.technique]]
id = "T1146"
name = "Clear Command History"
reference = "https://attack.mitre.org/techniques/T1146/"
[rule.threat.tactic]
id = "TA0005"
name = "Defense Evasion"
reference = "https://attack.mitre.org/tactics/TA0005/"
@@ -0,0 +1,41 @@
[metadata]
creation_date = "2020/04/22"
ecs_version = ["1.4.0"]
maturity = "production"
updated_date = "2020/04/22"
[rule]
author = ["Elastic"]
description = """
Identifies potential attempts to disable Security-Enhanced Linux (SELinux), which is a Linux kernel security feature to
support access control policies. Adversaries may disable security tools to avoid possible detection of their tools and
activities.
"""
index = ["auditbeat-*"]
language = "kuery"
license = "Elastic License"
name = "Potential Disabling of SELinux"
risk_score = 47
rule_id = "eb9eb8ba-a983-41d9-9c93-a1c05112ca5e"
severity = "medium"
tags = ["Elastic", "Linux"]
type = "query"
query = '''
event.action:executed and process.name:setenforce and process.args:0
'''
[[rule.threat]]
framework = "MITRE ATT&CK"
[[rule.threat.technique]]
id = "T1089"
name = "Disabling Security Tools"
reference = "https://attack.mitre.org/techniques/T1089/"
[rule.threat.tactic]
id = "TA0005"
name = "Defense Evasion"
reference = "https://attack.mitre.org/tactics/TA0005/"
@@ -0,0 +1,41 @@
[metadata]
creation_date = "2020/04/27"
ecs_version = ["1.4.0"]
maturity = "production"
updated_date = "2020/04/27"
[rule]
author = ["Elastic"]
description = """
Malware or other files dropped or created on a system by an adversary may leave traces behind as to what was done within
a network and how. Adversaries may remove these files over the course of an intrusion to keep their footprint low or
remove them at the end as part of the post-intrusion cleanup process.
"""
index = ["auditbeat-*"]
language = "kuery"
license = "Elastic License"
name = "File Deletion via Shred"
risk_score = 21
rule_id = "a1329140-8de3-4445-9f87-908fb6d824f4"
severity = "low"
tags = ["Elastic", "Linux"]
type = "query"
query = '''
event.action:(executed or process_started) and process.name:shred and process.args:("-u" or "--remove" or "-z" or "--zero")
'''
[[rule.threat]]
framework = "MITRE ATT&CK"
[[rule.threat.technique]]
id = "T1107"
name = "File Deletion"
reference = "https://attack.mitre.org/techniques/T1107/"
[rule.threat.tactic]
id = "TA0005"
name = "Defense Evasion"
reference = "https://attack.mitre.org/tactics/TA0005/"
@@ -0,0 +1,46 @@
[metadata]
creation_date = "2020/04/21"
ecs_version = ["1.4.0"]
maturity = "production"
updated_date = "2020/04/21"
[rule]
author = ["Elastic"]
description = """
Identifies file permission modifications in common writable directories by a non-root user. Adversaries often drop files
or payloads into a writable directory and change permissions prior to execution.
"""
false_positives = [
"""
Certain programs or applications may modify files or change ownership in writable directories. These can be exempted
by username.
""",
]
index = ["auditbeat-*"]
language = "kuery"
license = "Elastic License"
name = "File Permission Modification in Writable Directory"
risk_score = 21
rule_id = "9f9a2a82-93a8-4b1a-8778-1780895626d4"
severity = "low"
tags = ["Elastic", "Linux"]
type = "query"
query = '''
event.action:executed and process.name:(chmod or chown or chattr or chgrp) and process.working_directory:(/tmp or /var/tmp or /dev/shm) and not user.name:root
'''
[[rule.threat]]
framework = "MITRE ATT&CK"
[[rule.threat.technique]]
id = "T1222"
name = "File and Directory Permissions Modification"
reference = "https://attack.mitre.org/techniques/T1222/"
[rule.threat.tactic]
id = "TA0005"
name = "Defense Evasion"
reference = "https://attack.mitre.org/tactics/TA0005/"
@@ -0,0 +1,55 @@
[metadata]
creation_date = "2020/04/17"
ecs_version = ["1.4.0"]
maturity = "production"
updated_date = "2020/04/17"
[rule]
author = ["Elastic"]
description = "Adversaries may encode/decode data in an attempt to evade detection by host- or network-based security controls."
false_positives = [
"""
Automated tools such as Jenkins may encode or decode files as part of their normal behavior. These events can be
filtered by the process executable or username values.
""",
]
index = ["auditbeat-*"]
language = "kuery"
license = "Elastic License"
name = "Hex Encoding/Decoding Activity"
risk_score = 21
rule_id = "a9198571-b135-4a76-b055-e3e5a476fd83"
severity = "low"
tags = ["Elastic", "Linux"]
type = "query"
query = '''
event.action:(executed or process_started) and process.name:(hex or xxd)
'''
[[rule.threat]]
framework = "MITRE ATT&CK"
[[rule.threat.technique]]
id = "T1140"
name = "Deobfuscate/Decode Files or Information"
reference = "https://attack.mitre.org/techniques/T1140/"
[rule.threat.tactic]
id = "TA0005"
name = "Defense Evasion"
reference = "https://attack.mitre.org/tactics/TA0005/"
[[rule.threat]]
framework = "MITRE ATT&CK"
[[rule.threat.technique]]
id = "T1027"
name = "Obfuscated Files or Information"
reference = "https://attack.mitre.org/techniques/T1027/"
[rule.threat.tactic]
id = "TA0005"
name = "Defense Evasion"
reference = "https://attack.mitre.org/tactics/TA0005/"
@@ -0,0 +1,60 @@
[metadata]
creation_date = "2020/04/29"
ecs_version = ["1.4.0"]
maturity = "production"
updated_date = "2020/04/29"
[rule]
author = ["Elastic"]
description = """
Users can mark specific files as hidden simply by putting a "." as the first character in the file or folder name.
Adversaries can use this to their advantage to hide files and folders on the system for persistence and defense evasion.
This rule looks for hidden files or folders in common writable directories.
"""
false_positives = [
"""
Certain tools may create hidden temporary files or directories upon installation or as part of their normal
behavior. These events can be filtered by the process arguments, username, or process name values.
""",
]
index = ["auditbeat-*"]
language = "lucene"
license = "Elastic License"
max_signals = 33
name = "Creation of Hidden Files and Directories"
risk_score = 47
rule_id = "b9666521-4742-49ce-9ddc-b8e84c35acae"
severity = "medium"
tags = ["Elastic", "Linux"]
type = "query"
query = '''
event.action:executed AND process.working_directory:("/tmp" or "/var/tmp" or "/dev/shm") AND process.args:/\.[a-zA-Z0-9_\-][a-zA-Z0-9_\-\.]{1,254}/ AND NOT process.name:(cd or ls or find)
'''
[[rule.threat]]
framework = "MITRE ATT&CK"
[[rule.threat.technique]]
id = "T1158"
name = "Hidden Files and Directories"
reference = "https://attack.mitre.org/techniques/T1158/"
[rule.threat.tactic]
id = "TA0005"
name = "Defense Evasion"
reference = "https://attack.mitre.org/tactics/TA0005/"
[[rule.threat]]
framework = "MITRE ATT&CK"
[[rule.threat.technique]]
id = "T1158"
name = "Hidden Files and Directories"
reference = "https://attack.mitre.org/techniques/T1158/"
[rule.threat.tactic]
id = "TA0003"
name = "Persistence"
reference = "https://attack.mitre.org/tactics/TA0003/"
@@ -0,0 +1,60 @@
[metadata]
creation_date = "2020/04/24"
ecs_version = ["1.4.0"]
maturity = "production"
updated_date = "2020/04/24"
[rule]
author = ["Elastic"]
description = """
Kernel modules are pieces of code that can be loaded and unloaded into the kernel upon demand. They extend the
functionality of the kernel without the need to reboot the system. This rule identifies attempts to remove a kernel
module.
"""
false_positives = [
"""
There is usually no reason to remove modules, but some buggy modules require it. These can be exempted by username.
Note that some Linux distributions are not built to support the removal of modules at all.
""",
]
index = ["auditbeat-*"]
language = "kuery"
license = "Elastic License"
name = "Kernel Module Removal"
references = ["http://man7.org/linux/man-pages/man8/modprobe.8.html"]
risk_score = 73
rule_id = "cd66a5af-e34b-4bb0-8931-57d0a043f2ef"
severity = "high"
tags = ["Elastic", "Linux"]
type = "query"
query = '''
event.action:executed and process.args:(rmmod and sudo or modprobe and sudo and ("--remove" or "-r"))
'''
[[rule.threat]]
framework = "MITRE ATT&CK"
[[rule.threat.technique]]
id = "T1089"
name = "Disabling Security Tools"
reference = "https://attack.mitre.org/techniques/T1089/"
[rule.threat.tactic]
id = "TA0005"
name = "Defense Evasion"
reference = "https://attack.mitre.org/tactics/TA0005/"
[[rule.threat]]
framework = "MITRE ATT&CK"
[[rule.threat.technique]]
id = "T1215"
name = "Kernel Modules and Extensions"
reference = "https://attack.mitre.org/techniques/T1215/"
[rule.threat.tactic]
id = "TA0003"
name = "Persistence"
reference = "https://attack.mitre.org/tactics/TA0003/"
@@ -0,0 +1,47 @@
[metadata]
creation_date = "2020/04/23"
ecs_version = ["1.4.0"]
maturity = "production"
updated_date = "2020/04/23"
[rule]
author = ["Elastic"]
description = """
Loadable Kernel Modules (or LKMs) are pieces of code that can be loaded and unloaded into the kernel upon demand. They
extend the functionality of the kernel without the need to reboot the system. This identifies attempts to enumerate
information about a kernel module.
"""
false_positives = [
"""
Security tools and device drivers may run these programs in order to enumerate kernel modules. Use of these programs
by ordinary users is uncommon. These can be exempted by process name or username.
""",
]
index = ["auditbeat-*"]
language = "kuery"
license = "Elastic License"
name = "Enumeration of Kernel Modules"
risk_score = 47
rule_id = "2d8043ed-5bda-4caf-801c-c1feb7410504"
severity = "medium"
tags = ["Elastic", "Linux"]
type = "query"
query = '''
event.action:executed and process.args:(kmod and list and sudo or sudo and (depmod or lsmod or modinfo))
'''
[[rule.threat]]
framework = "MITRE ATT&CK"
[[rule.threat.technique]]
id = "T1082"
name = "System Information Discovery"
reference = "https://attack.mitre.org/techniques/T1082/"
[rule.threat.tactic]
id = "TA0007"
name = "Discovery"
reference = "https://attack.mitre.org/tactics/TA0007/"
@@ -0,0 +1,47 @@
[metadata]
creation_date = "2020/04/27"
ecs_version = ["1.4.0"]
maturity = "production"
updated_date = "2020/04/27"
[rule]
author = ["Elastic"]
description = """
An adversary may attempt to get detailed information about the operating system and hardware. This rule identifies
common locations used to discover virtual machine hardware by a non-root user. This technique has been used by the Pupy
RAT and other malware.
"""
false_positives = [
"""
Certain tools or automated software may enumerate hardware information. These tools can be exempted via user name or
process arguments to eliminate potential noise.
""",
]
index = ["auditbeat-*"]
language = "kuery"
license = "Elastic License"
name = "Virtual Machine Fingerprinting"
risk_score = 73
rule_id = "5b03c9fb-9945-4d2f-9568-fd690fee3fba"
severity = "high"
tags = ["Elastic", "Linux"]
type = "query"
query = '''
event.action:executed and process.args:("/sys/class/dmi/id/bios_version" or "/sys/class/dmi/id/product_name" or "/sys/class/dmi/id/chassis_vendor" or "/proc/scsi/scsi" or "/proc/ide/hd0/model") and not user.name:root
'''
[[rule.threat]]
framework = "MITRE ATT&CK"
[[rule.threat.technique]]
id = "T1082"
name = "System Information Discovery"
reference = "https://attack.mitre.org/techniques/T1082/"
[rule.threat.tactic]
id = "TA0007"
name = "Discovery"
reference = "https://attack.mitre.org/tactics/TA0007/"
@@ -0,0 +1,46 @@
[metadata]
creation_date = "2020/02/18"
ecs_version = ["1.4.0"]
maturity = "production"
updated_date = "2020/02/18"
[rule]
author = ["Elastic"]
description = """
The whoami application was executed on a Linux host. This is often used by tools and persistence mechanisms to test for
privileged access.
"""
false_positives = [
"""
Security testing tools and frameworks may run this command. Some normal use of this command may originate from
automation tools and frameworks.
""",
]
index = ["auditbeat-*"]
language = "kuery"
license = "Elastic License"
name = "User Discovery via Whoami"
risk_score = 21
rule_id = "120559c6-5e24-49f4-9e30-8ffe697df6b9"
severity = "low"
tags = ["Elastic", "Linux"]
type = "query"
query = '''
process.name:whoami and event.action:executed
'''
[[rule.threat]]
framework = "MITRE ATT&CK"
[[rule.threat.technique]]
id = "T1033"
name = "System Owner/User Discovery"
reference = "https://attack.mitre.org/techniques/T1033/"
[rule.threat.tactic]
id = "TA0007"
name = "Discovery"
reference = "https://attack.mitre.org/tactics/TA0007/"
+40
View File
@@ -0,0 +1,40 @@
[metadata]
creation_date = "2020/04/16"
ecs_version = ["1.4.0"]
maturity = "production"
updated_date = "2020/04/16"
[rule]
author = ["Elastic"]
description = """
Identifies when a terminal (tty) is spawned via Perl. Attackers may upgrade a simple reverse shell to a fully
interactive tty after obtaining initial access to a host.
"""
index = ["auditbeat-*"]
language = "kuery"
license = "Elastic License"
name = "Interactive Terminal Spawned via Perl"
risk_score = 73
rule_id = "05e5a668-7b51-4a67-93ab-e9af405c9ef3"
severity = "high"
tags = ["Elastic", "Linux"]
type = "query"
query = '''
event.action:executed and process.name:perl and process.args:("exec \"/bin/sh\";" or "exec \"/bin/dash\";" or "exec \"/bin/bash\";")
'''
[[rule.threat]]
framework = "MITRE ATT&CK"
[[rule.threat.technique]]
id = "T1059"
name = "Command-Line Interface"
reference = "https://attack.mitre.org/techniques/T1059/"
[rule.threat.tactic]
id = "TA0002"
name = "Execution"
reference = "https://attack.mitre.org/tactics/TA0002/"
@@ -0,0 +1,40 @@
[metadata]
creation_date = "2020/04/15"
ecs_version = ["1.4.0"]
maturity = "production"
updated_date = "2020/04/15"
[rule]
author = ["Elastic"]
description = """
Identifies when a terminal (tty) is spawned via Python. Attackers may upgrade a simple reverse shell to a fully
interactive tty after obtaining initial access to a host.
"""
index = ["auditbeat-*"]
language = "kuery"
license = "Elastic License"
name = "Interactive Terminal Spawned via Python"
risk_score = 73
rule_id = "d76b02ef-fc95-4001-9297-01cb7412232f"
severity = "high"
tags = ["Elastic", "Linux"]
type = "query"
query = '''
event.action:executed and process.name:python and process.args:("import pty; pty.spawn(\"/bin/sh\")" or "import pty; pty.spawn(\"/bin/dash\")" or "import pty; pty.spawn(\"/bin/bash\")")
'''
[[rule.threat]]
framework = "MITRE ATT&CK"
[[rule.threat.technique]]
id = "T1059"
name = "Command-Line Interface"
reference = "https://attack.mitre.org/techniques/T1059/"
[rule.threat.tactic]
id = "TA0002"
name = "Execution"
reference = "https://attack.mitre.org/tactics/TA0002/"
@@ -0,0 +1,48 @@
[metadata]
creation_date = "2020/04/23"
ecs_version = ["1.4.0"]
maturity = "production"
updated_date = "2020/04/23"
[rule]
author = ["Elastic"]
description = """
Telnet provides a command line interface for communication with a remote device or server. This rule identifies Telnet
network connections to publicly routable IP addresses.
"""
false_positives = [
"""
Telnet can be used for both benign or malicious purposes. Telnet is included by default in some Linux distributions,
so its presence is not inherently suspicious. The use of Telnet to manage devices remotely has declined in recent
years in favor of more secure protocols such as SSH. Telnet usage by non-automated tools or frameworks may be
suspicious.
""",
]
index = ["auditbeat-*"]
language = "kuery"
license = "Elastic License"
name = "Connection to External Network via Telnet"
risk_score = 47
rule_id = "e19e64ee-130e-4c07-961f-8a339f0b8362"
severity = "medium"
tags = ["Elastic", "Linux"]
type = "query"
query = '''
event.action:("connected-to" or "network_flow") and process.name:telnet and not destination.ip:(127.0.0.0/8 or 10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16 or "FE80::/10" or "::1/128")
'''
[[rule.threat]]
framework = "MITRE ATT&CK"
[[rule.threat.technique]]
id = "T1021"
name = "Remote Services"
reference = "https://attack.mitre.org/techniques/T1021/"
[rule.threat.tactic]
id = "TA0008"
name = "Lateral Movement"
reference = "https://attack.mitre.org/tactics/TA0008/"
@@ -0,0 +1,48 @@
[metadata]
creation_date = "2020/04/23"
ecs_version = ["1.4.0"]
maturity = "production"
updated_date = "2020/04/23"
[rule]
author = ["Elastic"]
description = """
Telnet provides a command line interface for communication with a remote device or server. This rule identifies Telnet
network connections to non-publicly routable IP addresses.
"""
false_positives = [
"""
Telnet can be used for both benign or malicious purposes. Telnet is included by default in some Linux distributions,
so its presence is not inherently suspicious. The use of Telnet to manage devices remotely has declined in recent
years in favor of more secure protocols such as SSH. Telnet usage by non-automated tools or frameworks may be
suspicious.
""",
]
index = ["auditbeat-*"]
language = "kuery"
license = "Elastic License"
name = "Connection to Internal Network via Telnet"
risk_score = 47
rule_id = "1b21abcc-4d9f-4b08-a7f5-316f5f94b973"
severity = "medium"
tags = ["Elastic", "Linux"]
type = "query"
query = '''
event.action:("connected-to" or "network_flow") and process.name:telnet and destination.ip:((10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16 or "FE80::/10") and not (127.0.0.0/8 or "::1/128"))
'''
[[rule.threat]]
framework = "MITRE ATT&CK"
[[rule.threat.technique]]
id = "T1021"
name = "Remote Services"
reference = "https://attack.mitre.org/techniques/T1021/"
[rule.threat.tactic]
id = "TA0008"
name = "Lateral Movement"
reference = "https://attack.mitre.org/tactics/TA0008/"
+33
View File
@@ -0,0 +1,33 @@
[metadata]
creation_date = "2020/02/18"
ecs_version = ["1.4.0"]
maturity = "production"
updated_date = "2020/02/18"
[rule]
author = ["Elastic"]
description = """
Hping ran on a Linux host. Hping is a FOSS command-line packet analyzer and has the ability to construct network packets
for a wide variety of network security testing applications, including scanning and firewall auditing.
"""
false_positives = [
"""
Normal use of hping is uncommon apart from security testing and research. Use by non-security engineers is very
uncommon.
""",
]
index = ["auditbeat-*"]
language = "kuery"
license = "Elastic License"
name = "Hping Process Activity"
references = ["https://en.wikipedia.org/wiki/Hping"]
risk_score = 73
rule_id = "90169566-2260-4824-b8e4-8615c3b4ed52"
severity = "high"
tags = ["Elastic", "Linux"]
type = "query"
query = '''
process.name:(hping or hping2 or hping3) and event.action:executed
'''
+33
View File
@@ -0,0 +1,33 @@
[metadata]
creation_date = "2020/02/18"
ecs_version = ["1.4.0"]
maturity = "production"
updated_date = "2020/02/18"
[rule]
author = ["Elastic"]
description = """
Iodine is a tool for tunneling Internet protocol version 4 (IPV4) traffic over the DNS protocol to circumvent firewalls,
network security groups, and network access lists while evading detection.
"""
false_positives = [
"""
Normal use of Iodine is uncommon apart from security testing and research. Use by non-security engineers is very
uncommon.
""",
]
index = ["auditbeat-*"]
language = "kuery"
license = "Elastic License"
name = "Potential DNS Tunneling via Iodine"
references = ["https://code.kryo.se/iodine/"]
risk_score = 73
rule_id = "041d4d41-9589-43e2-ba13-5680af75ebc2"
severity = "high"
tags = ["Elastic", "Linux"]
type = "query"
query = '''
process.name:(iodine or iodined) and event.action:executed
'''
+33
View File
@@ -0,0 +1,33 @@
[metadata]
creation_date = "2020/02/18"
ecs_version = ["1.4.0"]
maturity = "production"
updated_date = "2020/02/18"
[rule]
author = ["Elastic"]
description = """
The Linux mknod program is sometimes used in the command payload of a remote command injection (RCI) and other exploits.
It is used to export a command shell when the traditional version of netcat is not available to the payload.
"""
false_positives = [
"""
Mknod is a Linux system program. Some normal use of this program, at varying levels of frequency, may originate from
scripts, automation tools, and frameworks. Usage by web servers is more likely to be suspicious.
""",
]
index = ["auditbeat-*"]
language = "kuery"
license = "Elastic License"
name = "Mknod Process Activity"
references = ["https://pen-testing.sans.org/blog/2013/05/06/netcat-without-e-no-problem"]
risk_score = 21
rule_id = "61c31c14-507f-4627-8c31-072556b89a9c"
severity = "low"
tags = ["Elastic", "Linux"]
type = "query"
query = '''
process.name:mknod and event.action:executed
'''
@@ -0,0 +1,39 @@
[metadata]
creation_date = "2020/02/18"
ecs_version = ["1.4.0"]
maturity = "production"
updated_date = "2020/02/18"
[rule]
author = ["Elastic"]
description = """
A netcat process is engaging in network activity on a Linux host. Netcat is often used as a persistence mechanism by
exporting a reverse shell or by serving a shell on a listening port. Netcat is also sometimes used for data
exfiltration.
"""
false_positives = [
"""
Netcat is a dual-use tool that can be used for benign or malicious activity. Netcat is included in some Linux
distributions so its presence is not necessarily suspicious. Some normal use of this program, while uncommon, may
originate from scripts, automation tools, and frameworks.
""",
]
index = ["auditbeat-*"]
language = "kuery"
license = "Elastic License"
name = "Netcat Network Activity"
references = [
"http://pentestmonkey.net/cheat-sheet/shells/reverse-shell-cheat-sheet",
"https://www.sans.org/security-resources/sec560/netcat_cheat_sheet_v1.pdf",
"https://en.wikipedia.org/wiki/Netcat",
]
risk_score = 47
rule_id = "adb961e0-cb74-42a0-af9e-29fc41f88f5f"
severity = "medium"
tags = ["Elastic", "Linux"]
type = "query"
query = '''
process.name:(nc or ncat or netcat or netcat.openbsd or netcat.traditional) and event.action:(bound-socket or connected-to or socket_opened)
'''
+35
View File
@@ -0,0 +1,35 @@
[metadata]
creation_date = "2020/02/18"
ecs_version = ["1.4.0"]
maturity = "production"
updated_date = "2020/02/18"
[rule]
author = ["Elastic"]
description = """
Nmap was executed on a Linux host. Nmap is a FOSS tool for network scanning and security testing. It can map and
discover networks, and identify listening services and operating systems. It is sometimes used to gather information in
support of exploitation, execution or lateral movement.
"""
false_positives = [
"""
Security testing tools and frameworks may run `Nmap` in the course of security auditing. Some normal use of this
command may originate from security engineers and network or server administrators. Use of nmap by ordinary users is
uncommon.
""",
]
index = ["auditbeat-*"]
language = "kuery"
license = "Elastic License"
name = "Nmap Process Activity"
references = ["https://en.wikipedia.org/wiki/Nmap"]
risk_score = 21
rule_id = "c87fca17-b3a9-4e83-b545-f30746c53920"
severity = "low"
tags = ["Elastic", "Linux"]
type = "query"
query = '''
process.name:nmap
'''
+33
View File
@@ -0,0 +1,33 @@
[metadata]
creation_date = "2020/02/18"
ecs_version = ["1.4.0"]
maturity = "production"
updated_date = "2020/02/18"
[rule]
author = ["Elastic"]
description = """
Nping ran on a Linux host. Nping is part of the Nmap tool suite and has the ability to construct raw packets for a wide
variety of security testing applications, including denial of service testing.
"""
false_positives = [
"""
Some normal use of this command may originate from security engineers and network or server administrators, but this
is usually not routine or unannounced. Use of `Nping` by non-engineers or ordinary users is uncommon.
""",
]
index = ["auditbeat-*"]
language = "kuery"
license = "Elastic License"
name = "Nping Process Activity"
references = ["https://en.wikipedia.org/wiki/Nmap"]
risk_score = 47
rule_id = "0d69150b-96f8-467c-a86d-a67a3378ce77"
severity = "medium"
tags = ["Elastic", "Linux"]
type = "query"
query = '''
process.name:nping and event.action:executed
'''
@@ -0,0 +1,29 @@
[metadata]
creation_date = "2020/02/18"
ecs_version = ["1.4.0"]
maturity = "production"
updated_date = "2020/02/18"
[rule]
author = ["Elastic"]
description = "Identifies processes running in a temporary folder. This is sometimes done by adversaries to hide malware."
false_positives = [
"""
Build systems, like Jenkins, may start processes in the `/tmp` directory. These can be exempted by name or by
username.
""",
]
index = ["auditbeat-*"]
language = "kuery"
license = "Elastic License"
name = "Unusual Process Execution - Temp"
risk_score = 47
rule_id = "df959768-b0c9-4d45-988c-5606a2be8e5a"
severity = "medium"
tags = ["Elastic", "Linux"]
type = "query"
query = '''
process.working_directory:/tmp and event.action:executed
'''
+34
View File
@@ -0,0 +1,34 @@
[metadata]
creation_date = "2020/02/18"
ecs_version = ["1.4.0"]
maturity = "production"
updated_date = "2020/02/18"
[rule]
author = ["Elastic"]
description = """
A Socat process is running on a Linux host. Socat is often used as a persistence mechanism by exporting a reverse shell,
or by serving a shell on a listening port. Socat is also sometimes used for lateral movement.
"""
false_positives = [
"""
Socat is a dual-use tool that can be used for benign or malicious activity. Some normal use of this program, at
varying levels of frequency, may originate from scripts, automation tools, and frameworks. Usage by web servers is
more likely to be suspicious.
""",
]
index = ["auditbeat-*"]
language = "kuery"
license = "Elastic License"
name = "Socat Process Activity"
references = ["https://blog.ropnop.com/upgrading-simple-shells-to-fully-interactive-ttys/#method-2-using-socat"]
risk_score = 47
rule_id = "cd4d5754-07e1-41d4-b9a5-ef4ea6a0a126"
severity = "medium"
tags = ["Elastic", "Linux"]
type = "query"
query = '''
process.name:socat and not process.args:-V and event.action:executed
'''
+33
View File
@@ -0,0 +1,33 @@
[metadata]
creation_date = "2020/02/18"
ecs_version = ["1.4.0"]
maturity = "production"
updated_date = "2020/02/18"
[rule]
author = ["Elastic"]
description = """
Strace runs in a privileged context and can be used to escape restrictive environments by instantiating a shell in order
to elevate privileges or move laterally.
"""
false_positives = [
"""
Strace is a dual-use tool that can be used for benign or malicious activity. Some normal use of this command may
originate from developers or SREs engaged in debugging or system call tracing.
""",
]
index = ["auditbeat-*"]
language = "kuery"
license = "Elastic License"
name = "Strace Process Activity"
references = ["https://en.wikipedia.org/wiki/Strace"]
risk_score = 21
rule_id = "d6450d4e-81c6-46a3-bd94-079886318ed5"
severity = "low"
tags = ["Elastic", "Linux"]
type = "query"
query = '''
process.name:strace and event.action:executed
'''
@@ -0,0 +1,46 @@
[metadata]
creation_date = "2020/02/18"
ecs_version = ["1.4.0"]
maturity = "production"
updated_date = "2020/02/18"
[rule]
author = ["Elastic"]
description = "Identifies loadable kernel module errors, which are often indicative of potential persistence attempts."
false_positives = [
"""
Security tools and device drivers may run these programs in order to load legitimate kernel modules. Use of these
programs by ordinary users is uncommon.
""",
]
index = ["auditbeat-*"]
language = "kuery"
license = "Elastic License"
name = "Persistence via Kernel Module Modification"
references = [
"https://www.hackers-arise.com/single-post/2017/11/03/Linux-for-Hackers-Part-10-Loadable-Kernel-Modules-LKM",
]
risk_score = 21
rule_id = "81cc58f5-8062-49a2-ba84-5cc4b4d31c40"
severity = "low"
tags = ["Elastic", "Linux"]
type = "query"
query = '''
process.name:(insmod or kmod or modprobe or rmod) and event.action:executed
'''
[[rule.threat]]
framework = "MITRE ATT&CK"
[[rule.threat.technique]]
id = "T1215"
name = "Kernel Modules and Extensions"
reference = "https://attack.mitre.org/techniques/T1215/"
[rule.threat.tactic]
id = "TA0003"
name = "Persistence"
reference = "https://attack.mitre.org/tactics/TA0003/"
@@ -0,0 +1,44 @@
[metadata]
creation_date = "2020/02/18"
ecs_version = ["1.4.0"]
maturity = "production"
updated_date = "2020/02/18"
[rule]
author = ["Elastic"]
description = "Identifies suspicious commands executed via a web server, which may suggest a vulnerability and remote shell access."
false_positives = [
"""
Network monitoring or management products may have a web server component that runs shell commands as part of normal
behavior.
""",
]
index = ["auditbeat-*"]
language = "kuery"
license = "Elastic License"
name = "Potential Shell via Web Server"
references = ["https://pentestlab.blog/tag/web-shell/"]
risk_score = 47
rule_id = "231876e7-4d1f-4d63-a47c-47dd1acdc1cb"
severity = "medium"
tags = ["Elastic", "Linux"]
type = "query"
query = '''
process.name:(bash or dash) and user.name:(apache or nginx or www or "www-data") and event.action:executed
'''
[[rule.threat]]
framework = "MITRE ATT&CK"
[[rule.threat.technique]]
id = "T1100"
name = "Web Shell"
reference = "https://attack.mitre.org/techniques/T1100/"
[rule.threat.tactic]
id = "TA0003"
name = "Persistence"
reference = "https://attack.mitre.org/tactics/TA0003/"
@@ -0,0 +1,55 @@
[metadata]
creation_date = "2020/04/23"
ecs_version = ["1.4.0"]
maturity = "production"
updated_date = "2020/04/23"
[rule]
author = ["Elastic"]
description = """
An adversary may add the setgid bit to a file or directory in order to run a file with the privileges of the owning
group. An adversary can take advantage of this to either do a shell escape or exploit a vulnerability in an application
with the setgid bit to get code running in a different users context. Additionally, adversaries can use this mechanism
on their own malware to make sure they're able to execute in elevated contexts in the future.
"""
index = ["auditbeat-*"]
language = "lucene"
license = "Elastic License"
max_signals = 33
name = "Setgid Bit Set via chmod"
risk_score = 21
rule_id = "3a86e085-094c-412d-97ff-2439731e59cb"
severity = "low"
tags = ["Elastic", "Linux"]
type = "query"
query = '''
event.action:(executed OR process_started) AND process.name:chmod AND process.args:(g+s OR /2[0-9]{3}/) AND NOT user.name:root
'''
[[rule.threat]]
framework = "MITRE ATT&CK"
[[rule.threat.technique]]
id = "T1166"
name = "Setuid and Setgid"
reference = "https://attack.mitre.org/techniques/T1166/"
[rule.threat.tactic]
id = "TA0004"
name = "Privilege Escalation"
reference = "https://attack.mitre.org/tactics/TA0004/"
[[rule.threat]]
framework = "MITRE ATT&CK"
[[rule.threat.technique]]
id = "T1166"
name = "Setuid and Setgid"
reference = "https://attack.mitre.org/techniques/T1166/"
[rule.threat.tactic]
id = "TA0004"
name = "Persistence"
reference = "https://attack.mitre.org/tactics/TA0004/"
@@ -0,0 +1,55 @@
[metadata]
creation_date = "2020/04/23"
ecs_version = ["1.4.0"]
maturity = "production"
updated_date = "2020/04/23"
[rule]
author = ["Elastic"]
description = """
An adversary may add the setuid bit to a file or directory in order to run a file with the privileges of the owning
user. An adversary can take advantage of this to either do a shell escape or exploit a vulnerability in an application
with the setuid bit to get code running in a different users context. Additionally, adversaries can use this mechanism
on their own malware to make sure they're able to execute in elevated contexts in the future.
"""
index = ["auditbeat-*"]
language = "lucene"
license = "Elastic License"
max_signals = 33
name = "Setuid Bit Set via chmod"
risk_score = 21
rule_id = "8a1b0278-0f9a-487d-96bd-d4833298e87a"
severity = "low"
tags = ["Elastic", "Linux"]
type = "query"
query = '''
event.action:(executed OR process_started) AND process.name:chmod AND process.args:(u+s OR /4[0-9]{3}/) AND NOT user.name:root
'''
[[rule.threat]]
framework = "MITRE ATT&CK"
[[rule.threat.technique]]
id = "T1166"
name = "Setuid and Setgid"
reference = "https://attack.mitre.org/techniques/T1166/"
[rule.threat.tactic]
id = "TA0004"
name = "Privilege Escalation"
reference = "https://attack.mitre.org/tactics/TA0004/"
[[rule.threat]]
framework = "MITRE ATT&CK"
[[rule.threat.technique]]
id = "T1166"
name = "Setuid and Setgid"
reference = "https://attack.mitre.org/techniques/T1166/"
[rule.threat.tactic]
id = "TA0004"
name = "Persistence"
reference = "https://attack.mitre.org/tactics/TA0004/"
@@ -0,0 +1,40 @@
[metadata]
creation_date = "2020/04/13"
ecs_version = ["1.4.0"]
maturity = "production"
updated_date = "2020/04/13"
[rule]
author = ["Elastic"]
description = """
A sudoers file specifies the commands that users or groups can run and from which terminals. Adversaries can take
advantage of these configurations to execute commands as other users or spawn processes with higher privileges.
"""
index = ["auditbeat-*"]
language = "kuery"
license = "Elastic License"
name = "Sudoers File Modification"
risk_score = 21
rule_id = "931e25a5-0f5e-4ae0-ba0d-9e94eff7e3a4"
severity = "low"
tags = ["Elastic", "Linux"]
type = "query"
query = '''
event.module:file_integrity and event.action:updated and file.path:/etc/sudoers
'''
[[rule.threat]]
framework = "MITRE ATT&CK"
[[rule.threat.technique]]
id = "T1169"
name = "Sudo"
reference = "https://attack.mitre.org/techniques/T1169/"
[rule.threat.tactic]
id = "TA0004"
name = "Privilege Escalation"
reference = "https://attack.mitre.org/tactics/TA0004/"