id: os_mdm_require
title: Enforce Enrollment in Mobile Device Management
discussion: |
  You _MUST_ enroll your Mac in a Mobile Device Management (MDM) software.

  User Approved MDM (UAMDM) enrollment or enrollment via Apple Business/Apple School Manager (ASM) is required to manage certain security settings. Currently these include:

  * Allowed Kernel Extensions
  * Allowed Approved System Extensions
  * Privacy Preferences Policy Control Payload
  * ExtensibleSingleSignOn
  * FDEFileVault

  In macOS 11, UAMDM grants Supervised status on a Mac, unlocking the following MDM features, which were previously locked behind ABM:

  * Activation Lock Bypass
  * Access to Bootstrap Tokens
  * Scheduling Software Updates
  * Query list and delete local users
references:
  nist:
    cce:
      macos_27:
        - CCE-XXXXX-X
      macos_26:
        - CCE-95227-5
      macos_15:
        - CCE-94227-6
      macos_14:
        - CCE-92824-2
    800-53r5:
      - CM-2
      - CM-6
    800-171r3:
      - 03.04.01
      - 03.04.02
  disa:
    cci:
      - CCI-000366
    srg:
      - SRG-OS-000480-GPOS-00227
    disa_stig:
      macos_26:
        - APPL-26-005110
      macos_15:
        - APPL-15-005110
      macos_14:
        - APPL-14-005110
    cmmc:
      - CM.L2-3.4.2
  bzk:
    bio:
      - 8.01
      - 8.09
      - 8.01.01
      - 8.01.02
  hhs:
    hicp:
      - 2.L.B
  cis:
    benchmark:
      macos_15:
        - 1.8 (level 1)
      macos_14:
        - 1.8 (level 1)
    controls_v8:
      - 4.1
      - 5.1
platforms:
  macOS:
    '27.0': {}
    '26.0':
      benchmarks:
        - name: disa_stig
          severity: medium
        - name: nlmapgov_plus
        - name: nlmapgov_base
    '15.0':
      benchmarks:
        - name: cis_lvl1
        - name: cis_lvl2
        - name: disa_stig
          severity: medium
        - name: nlmapgov_plus
        - name: nlmapgov_base
    enforcement_info:
      check:
        shell: '/usr/bin/profiles status -type enrollment | /usr/bin/awk -F: ''/MDM enrollment/ {print $2}'' | /usr/bin/grep -c "Yes (User Approved)"'
        result:
          integer: 1
      fix:
        additional_info: Ensure that system is enrolled via UAMDM.
tags:
  - 800-53r5_low
  - 800-53r5_moderate
  - 800-53r5_high
  - 800-171
  - cisv8
  - cnssi-1253_low
  - cnssi-1253_high
  - cmmc_lvl2
  - cnssi-1253_moderate
  - hicp_lp
