id: os_gatekeeper_enable
title: Enable Gatekeeper
discussion: |
  Gatekeeper _MUST_ be enabled.

  Gatekeeper is a security feature that ensures that applications are digitally signed by an Apple-issued certificate before they are permitted to run. Digital signatures allow the macOS host to verify that the application has not been modified by a malicious third party.

  Administrator users will still have the option to override these settings on a case-by-case basis.
references:
  nist:
    cce:
      macos_27:
        - CCE-XXXXX-X
      macos_26:
        - CCE-95195-4
      macos_15:
        - CCE-94195-5
      macos_14:
        - CCE-92795-4
    800-53r5:
      - CM-14
      - CM-5
      - SI-7(1)
      - SI-7(15)
      - SI-3
    800-171r3:
      - 03.14.02
  disa:
    cci:
      - CCI-001749
      - CCI-003992
    srg:
      - SRG-OS-000366-GPOS-00153
      - SRG-OS-000480-GPOS-00228
    disa_stig:
      macos_26:
        - APPL-26-002064
      macos_15:
        - APPL-15-002064
      macos_14:
        - APPL-14-002064
    cmmc:
      - CM.L2-3.4.5
      - SI.L1-3.14.1
      - SI.L1-3.14.2
      - SI.L1-3.14.4
  bzk:
    bio:
      - 8.07
      - 8.19
      - 8.19.01
      - 8.07.01
  hhs:
    hicp:
      - 1.L.B
      - 2.L.A
      - 7.L.C
  cis:
    benchmark:
      macos_26:
        - 2.6.5 (level 1)
      macos_15:
        - 2.6.5 (level 1)
      macos_14:
        - 2.6.5 (level 1)
    controls_v8:
      - 10.1
      - 10.2
      - 10.5
platforms:
  macOS:
    '27.0': {}
    '26.0':
      benchmarks:
        - name: cis_lvl1
        - name: cis_lvl2
        - name: disa_stig
          severity: high
        - name: nlmapgov_plus
        - name: nlmapgov_base
    '15.0':
      benchmarks:
        - name: cis_lvl1
        - name: cis_lvl2
        - name: disa_stig
          severity: high
        - name: nlmapgov_plus
        - name: nlmapgov_base
    enforcement_info:
      check:
        shell: |-
          /usr/bin/osascript -l JavaScript << EOS
          $.NSUserDefaults.alloc.initWithSuiteName('com.apple.systempolicy.control')\
          .objectForKey('EnableAssessment').js
          EOS
        result:
          string: 'true'
    introduced: '10.8'
tags:
  - 800-53r5_low
  - 800-53r5_moderate
  - 800-53r5_high
  - 800-171
  - cisv8
  - cnssi-1253_low
  - cnssi-1253_high
  - cmmc_lvl2
  - cmmc_lvl1
  - cnssi-1253_moderate
  - hicp_lp
mobileconfig_info:
  - PayloadType: com.apple.systempolicy.control
    PayloadContent:
      - EnableAssessment: true
