Detection rules › Elastic
Suspicious Automator Application Execution
Detects when a Automator application ("Application Stub") is executed via XPC. The "Application Stub" binary on macOS is associated with Automator, a tool that allows users to create automation scripts without needing to write code. When creating applications with Automator, the default name for the executable is "Application Stub". This is the standard naming convention used by Automator. Threat actors have been seen recently utilizing Automator applications to infect macOS systems in an attempt to fly under the radar by abusing Apple's built in automation framework.
MITRE ATT&CK coverage
| Tactic | Techniques |
|---|---|
| Execution |
Telemetry coverage
Rule body
[rule]
description = """
Detects when a Automator application ("Application Stub") is executed via XPC. The "Application Stub" binary on macOS is
associated with Automator, a tool that allows users to create automation scripts without needing to write code. When
creating applications with Automator, the default name for the executable is "Application Stub". This is the standard
naming convention used by Automator. Threat actors have been seen recently utilizing Automator applications to infect
macOS systems in an attempt to fly under the radar by abusing Apple's built in automation framework.
"""
id = "95f37809-fdb7-4e4a-8a5f-36ad3f014a8e"
license = "Elastic License v2"
name = "Suspicious Automator Application Execution"
os_list = ["macos"]
version = "1.0.6"
query = '''
sequence by process.entity_id with maxspan=30s
[process where event.type == "start" and event.action == "exec" and process.name == "xpcproxy" and process.args like "application.com.apple.automator*"]
[process where event.type == "start" and event.action == "exec" and process.name == "Application Stub" and
not process.hash.sha256 == "00957d9844e61713a1c8d5dfde97d483ff861d4a245aa83865c68950e6130ad5"]
'''
min_endpoint_version = "8.9.0"
optional_actions = []
[[actions]]
action = "kill_process"
field = "process.entity_id"
state = 0
[[actions]]
action = "kill_process"
field = "process.parent.entity_id"
state = 0
[[threat]]
framework = "MITRE ATT&CK"
[[threat.technique]]
id = "T1059"
name = "Command and Scripting Interpreter"
reference = "https://attack.mitre.org/techniques/T1059/"
[[threat.technique.subtechnique]]
id = "T1059.002"
name = "AppleScript"
reference = "https://attack.mitre.org/techniques/T1059/002/"
[threat.tactic]
id = "TA0002"
name = "Execution"
reference = "https://attack.mitre.org/tactics/TA0002/"
[internal]
min_endpoint_version = "8.9.0"
Stages and Predicates
Ordered sequence: each step below must occur in order within 30s, correlated by process.entity_id.
Stage 1: process
[process where event.type == "start" and event.action == "exec" and process.name == "xpcproxy" and process.args like "application.com.apple.automator*"]
Stage 2: process
[process where event.type == "start" and event.action == "exec" and process.name == "Application Stub" and
not process.hash.sha256 == "00957d9844e61713a1c8d5dfde97d483ff861d4a245aa83865c68950e6130ad5"]
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
process.hash.sha256 | eq | 00957d9844e61713a1c8d5dfde97d483ff861d4a245aa83865c68950e6130ad5 | excludes:process.hash.sha256 field:"process.hash.sha256" value:"00957d9844e61713a1c8d5dfde97d483ff861d4a245aa83865c68950e6130ad5" |
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
event.action | eq |
| field:"EventType" kind:eq value:"exec" |
event.type | eq |
| field:"event.type" kind:eq value:"start" |
process.args | wildcard |
| field:"process.args" kind:wildcard value:"application.com.apple.automator*" |
process.name | eq |
| field:"process_name" kind:eq |