LaunchDaemon Creation or Modification and Immediate Loadingedit

Indicates the creation or modification of a launch daemon, which adversaries may use to repeatedly execute malicious payloads as part of persistence.

Rule type: eql

Rule indices:

  • auditbeat-*
  • logs-endpoint.events.*

Severity: low

Risk score: 21

Runs every: 5 minutes

Searches indices from: now-9m (Date Math format, see also Additional look-back time)

Maximum alerts per execution: 100

References:

Tags:

  • Elastic
  • Host
  • macOS
  • Threat Detection
  • Persistence

Version: 6 (version history)

Added (Elastic Stack release): 7.11.0

Last modified (Elastic Stack release): 8.4.0

Rule authors: Elastic

Rule license: Elastic License v2

Potential false positivesedit

Trusted applications persisting via LaunchDaemons

Rule queryedit

sequence by host.id with maxspan=1m [file where event.type !=
"deletion" and file.path : ("/System/Library/LaunchDaemons/*",
"/Library/LaunchDaemons/*")] [process where event.type in ("start",
"process_started") and process.name == "launchctl" and process.args ==
"load"]

Threat mappingedit

Framework: MITRE ATT&CKTM

Rule version historyedit

Version 6 (8.4.0 release)
  • Updated query, changed from:

    sequence by host.id with maxspan=1m [file where event.type !=
    "deletion" and file.path in ("/System/Library/LaunchDaemons/*",
    "/Library/LaunchDaemons/*")] [process where event.type in ("start",
    "process_started") and process.name == "launchctl" and process.args ==
    "load"]
Version 4 (8.2.0 release)
  • Formatting only
Version 3 (8.0.0 release)
  • Updated query, changed from:

    sequence by host.id with maxspan=1m [file where event.type !=
    "deletion" and file.path in ("/System/Library/LaunchDaemons/*", "
    /Library/LaunchDaemons/*")] [process where event.type in ("start",
    "process_started") and process.name == "launchctl" and process.args ==
    "load"]
Version 2 (7.12.0 release)
  • Formatting only