id: system_settings_gatekeeper_override_disallow
title: Configure Gatekeeper to Disallow End User Override
discussion: |
  Gatekeeper _MUST_ be configured with a configuration profile to prevent normal users from overriding its settings.

  If users are allowed to disable Gatekeeper or set it to a less restrictive setting, malware could be introduced into the system.
check: |
  /usr/bin/osascript -l JavaScript << EOS
  $.NSUserDefaults.alloc.initWithSuiteName('com.apple.systempolicy.managed')\
  .objectForKey('DisableOverride').js
  EOS
result:
  string: 'true'
fix: |
  This is implemented by a Configuration Profile.
references:
  cce:
    - CCE-95372-9
  cci:
    - N/A
  800-53r5:
    - CM-5
    - SI-7(15)
  800-53r4:
    - CM-5
    - SI-7(15)
  srg:
    - N/A
  disa_stig:
    - N/A
  800-171r3:
    - 03.14.02
  cmmc:
    - CM.L2-3.4.5
  bio:
    - 8.19.01
macOS:
  - '26.0'
tags:
  - 800-53r5_low
  - 800-53r5_moderate
  - 800-53r5_high
  - 800-53r4_moderate
  - 800-53r4_high
  - 800-171
  - cnssi-1253_low
  - cnssi-1253_high
  - cmmc_lvl2
  - cnssi-1253_moderate
  - nlmapgov_base
  - nlmapgov_plus
severity: medium
mobileconfig: true
mobileconfig_info:
  com.apple.systempolicy.managed:
    DisableOverride: true
