644d2f5b26
* [New Rule] New Systemd Timer Created * improve query runtime performance * added process.name entries for alert reduction * attempt to fix gh unit testing failure * added host.os.type==linux to fix unit test error * Added OSQuery to investigation guides * added additional process names * removed investigation guides to add in future PR * removed investigation guide tag * Changed rule to new_terms rule to reduce FPs * fixed query * formatting fix * Learnt another thing about KQL.. Formatting fix. * unit test fix * Update rules/linux/persistence_systemd_scheduled_timer_created.toml Co-authored-by: eric-forte-elastic <119343520+eric-forte-elastic@users.noreply.github.com> --------- Co-authored-by: Mika Ayenson <Mikaayenson@users.noreply.github.com> Co-authored-by: eric-forte-elastic <119343520+eric-forte-elastic@users.noreply.github.com>
65 lines
2.2 KiB
TOML
65 lines
2.2 KiB
TOML
[metadata]
|
|
creation_date = "2023/02/24"
|
|
integration = ["endpoint"]
|
|
maturity = "production"
|
|
min_stack_comments = "New fields added: required_fields, related_integrations, setup, New Term"
|
|
min_stack_version = "8.6.0"
|
|
updated_date = "2023/04/05"
|
|
|
|
[rule]
|
|
author = ["Elastic"]
|
|
description = """
|
|
Detects the creation of a systemd timer within any of the default systemd timer directories. Systemd timers can be used
|
|
by an attacker to gain persistence, by scheduling the execution of a command or script. Similarly to cron/at, systemd
|
|
timers can be set up to execute on boot time, or on a specific point in time, which allows attackers to regain access in
|
|
case the connection to the infected asset was lost.
|
|
"""
|
|
from = "now-9m"
|
|
index = ["logs-endpoint.events.*", "endgame-*"]
|
|
language = "kuery"
|
|
license = "Elastic License v2"
|
|
name = "New Systemd Timer Created"
|
|
references = [
|
|
"https://opensource.com/article/20/7/systemd-timers",
|
|
"https://pberba.github.io/security/2022/01/30/linux-threat-hunting-for-persistence-systemd-timers-cron/"
|
|
]
|
|
risk_score = 21
|
|
rule_id = "7fb500fa-8e24-4bd1-9480-2a819352602c"
|
|
severity = "low"
|
|
tags = ["Elastic", "Host", "Linux", "Threat Detection", "Persistence", "Elastic Endgame"]
|
|
timestamp_override = "event.ingested"
|
|
type = "new_terms"
|
|
|
|
query = '''
|
|
host.os.type : "linux" and event.action : ("creation" or "file_create_event") and file.extension : "timer" and
|
|
file.path : (/etc/systemd/system/* or /usr/local/lib/systemd/system/* or /lib/systemd/system/* or
|
|
/usr/lib/systemd/system/* or /home/*/.config/systemd/user/*) and not
|
|
process.executable : ("/usr/bin/dpkg" or "/usr/bin/dockerd" or "/bin/rpm")
|
|
'''
|
|
|
|
[[rule.threat]]
|
|
framework = "MITRE ATT&CK"
|
|
[[rule.threat.technique]]
|
|
id = "T1053"
|
|
name = "Scheduled Task/Job"
|
|
reference = "https://attack.mitre.org/techniques/T1053/"
|
|
[[rule.threat.technique.subtechnique]]
|
|
id = "T1053.006"
|
|
name = "Systemd Timers"
|
|
reference = "https://attack.mitre.org/techniques/T1053/006/"
|
|
|
|
|
|
|
|
[rule.threat.tactic]
|
|
id = "TA0003"
|
|
name = "Persistence"
|
|
reference = "https://attack.mitre.org/tactics/TA0003/"
|
|
|
|
|
|
[rule.new_terms]
|
|
field = "new_terms_fields"
|
|
value = ["file.path", "process.name"]
|
|
[[rule.new_terms.history_window_start]]
|
|
field = "history_window_start"
|
|
value = "now-7d"
|