behavior/rules/macos/defense_evasion_launchpad_hijack.toml (56 lines of code) (raw):
[rule]
description = """
This rule detects when the open command is used to launch the Launchpad application and the parent process is a
scripting language or the parent process is not signed or does not have a code signature. Threat actors have been seen
using the open command to launch the Launchpad application from a scripting language or from an unsigned or untrusted
process to evade detection when attempting to implement a malicious launchpad application.
"""
id = "b64bf1de-5e36-4051-89d6-8b4492bcfdbd"
license = "Elastic License v2"
name = "Launchpad Hijack"
os_list = ["macos"]
reference = ["https://x.com/MsftSecIntel/status/1891410993265123662"]
version = "1.0.2"
query = '''
process where event.type == "start" and event.action == "exec" and process.name == "open" and
process.args == "com.apple.launchpad.launcher" and (process.parent.name in ("osascript", "applet", "bash", "sh", "zsh") or
(process.parent.code_signature.trusted == false or process.parent.code_signature.exists == false))
'''
min_endpoint_version = "8.11.0"
optional_actions = []
[[actions]]
action = "kill_process"
field = "process.parent.entity_id"
state = 0
[[threat]]
framework = "MITRE ATT&CK"
[[threat.technique]]
id = "T1574"
name = "Hijack Execution Flow"
reference = "https://attack.mitre.org/techniques/T1574/"
[threat.tactic]
id = "TA0003"
name = "Persistence"
reference = "https://attack.mitre.org/tactics/TA0003/"
[[threat]]
framework = "MITRE ATT&CK"
[[threat.technique]]
id = "T1574"
name = "Hijack Execution Flow"
reference = "https://attack.mitre.org/techniques/T1574/"
[threat.tactic]
id = "TA0004"
name = "Privilege Escalation"
reference = "https://attack.mitre.org/tactics/TA0004/"
[[threat]]
framework = "MITRE ATT&CK"
[[threat.technique]]
id = "T1574"
name = "Hijack Execution Flow"
reference = "https://attack.mitre.org/techniques/T1574/"
[threat.tactic]
id = "TA0005"
name = "Defense Evasion"
reference = "https://attack.mitre.org/tactics/TA0005/"
[internal]
min_endpoint_version = "8.11.0"