Detection rules › Sigma

macOS Configuration Profile Installation

Status
experimental
Severity
medium
Log source
product macos, service endpointsecurity
Author
Eric Brown - Nebulock, Inc.
Source
github.com/Nebulock-Inc/macos-coresigma

Detects installation of configuration profiles which can be used for persistence, privilege escalation, or to modify system security settings. Malicious profiles can disable security features, install certificates, or configure system settings.

MITRE ATT&CK coverage

Rule body yaml

title: macOS Configuration Profile Installation
id: e429564d-e697-4ecc-8996-504474e414f4
status: experimental
description: 'Detects installation of configuration profiles which can be used for
  persistence,

  privilege escalation, or to modify system security settings. Malicious profiles

  can disable security features, install certificates, or configure system settings.

  '
author: Eric Brown - Nebulock, Inc.
date: 2025/10/31
modified: 2025/10/31
references:
- https://attack.mitre.org/techniques/T1547/
- https://attack.mitre.org/techniques/T1556/
logsource:
  product: macos
  service: endpointsecurity
detection:
  selection_event:
    esf.event_type:
    - 126  # ES_EVENT_TYPE_NOTIFY_PROFILE_ADD
    - 127  # ES_EVENT_TYPE_NOTIFY_PROFILE_REMOVE
  selection_root:
    UserId: 0
  condition: selection_event and not selection_root
falsepositives:
- MDM (Mobile Device Management) profile installations
- IT-managed configuration profiles
- Legitimate user-installed profiles
- VPN and network configuration profiles
fields:
- event_type
- event_name
- User
- profile_identifier
- profile_uuid
tags:
- attack.persistence
- attack.t1547
- attack.t1556
level: medium

Stages and Predicates

Stage 0: condition

selection_event and not selection_root

Stage 1: selection_event

selection_event:
  esf.event_type:
  - 126
  - 127

Stage 2: not selection_root

selection_root:
  UserId: 0

Exclusions

Top-level NOT(...) conjuncts: predicates this rule actively suppresses.

FieldKindExcluded values
UserIdeq0

Indicators

Each row is a field, operator, and value that the rule matches. The corpus column counts how many other rules in the catalog look for the same combination: high numbers point to widely-used, community-vetted indicators. Blank or 1 shows that the indicator is specific to this rule.

FieldKindValues
esf.event_typeeq
  • 126
  • 127