Modification of Environment Variable via Launchctledit

Identifies modifications to an environment variable using the built-in launchctl command. Adversaries may execute their own malicious payloads by hijacking certain environment variables to load arbitrary libraries or bypass certain restrictions.

Rule type: query

Rule indices:

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

Severity: medium

Risk score: 47

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
  • Defense Evasion

Version: 4 (version history)

Added (Elastic Stack release): 7.12.0

Last modified (Elastic Stack release): 8.4.0

Rule authors: Elastic

Rule license: Elastic License v2

Rule queryedit

event.category:process and event.type:start and
process.name:launchctl and process.args:(setenv and not (JAVA*_HOME
or RUNTIME_JAVA_HOME or
DBUS_LAUNCHD_SESSION_BUS_SOCKET or
ANT_HOME or LG_WEBOS_TV_SDK_HOME or
WEBOS_CLI_TV or EDEN_ENV)
) and not process.parent.executable:("/Applications/NoMachine.app/Co
ntents/Frameworks/bin/nxserver.bin" or
"/usr/local/bin/kr" or
"/Applications/NoMachine.app/Contents/Frameworks/bin/nxserver.bin" or
"/Applications/IntelliJ IDEA
CE.app/Contents/jbr/Contents/Home/lib/jspawnhelper") and not
process.args : "*.vmoptions"

Threat mappingedit

Framework: MITRE ATT&CKTM

Rule version historyedit

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

    event.category:process and event.type:start and
    process.name:launchctl and process.args:(setenv and not (JAVA*_HOME
    or RUNTIME_JAVA_HOME or
    DBUS_LAUNCHD_SESSION_BUS_SOCKET or
    ANT_HOME or LG_WEBOS_TV_SDK_HOME or
    WEBOS_CLI_TV or EDEN_ENV)
    ) and not process.parent.executable:("/Applications/NoMachine.app/Co
    ntents/Frameworks/bin/nxserver.bin" or
    "/usr/local/bin/kr" or
    "/Applications/NoMachine.app/Contents/Frameworks/bin/nxserver.bin" or
    "/Applications/IntelliJ IDEA
    CE.app/Contents/jbr/Contents/Home/lib/jspawnhelper")
Version 2 (7.13.0 release)
  • Updated query, changed from:

    event.category:process and event.type:start and process.name:launchctl
    and process.args:(setenv and not (JAVA*_HOME or RUNTIME_JAVA_HOME or
    DBUS_LAUNCHD_SESSION_BUS_SOCKET or ANT_HOME))