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.
check: |
  /usr/bin/osascript -l JavaScript << EOS
  $.NSUserDefaults.alloc.initWithSuiteName('com.apple.systempolicy.control')\
  .objectForKey('EnableAssessment').js
  EOS
result:
  string: 'true'
fix: |
  This is implemented by a Configuration Profile.
references:
  cce:
    - CCE-94195-5
  cci:
    - CCI-001749
    - CCI-003992
  800-53r5:
    - CM-14
    - CM-5
    - SI-7(1)
    - SI-7(15)
    - SI-3
  800-53r4:
    - CM-5(3)
    - CM-5
    - SI-3
    - SI-7(15)
  srg:
    - SRG-OS-000366-GPOS-00153
    - SRG-OS-000480-GPOS-00228
  disa_stig:
    - APPL-15-002064
  800-171r3:
    - 03.14.02
  cis:
    benchmark:
      - 2.6.5 (level 1)
    controls v8:
      - 10.1
      - 10.2
      - 10.5
  cmmc:
    - CM.L2-3.4.5
    - SI.L1-3.14.1
    - SI.L1-3.14.2
    - SI.L1-3.14.4
  bio:
    - 8.07.01
    - 8.19.01
macOS:
  - '15.0'
tags:
  - 800-53r5_low
  - 800-53r5_moderate
  - 800-53r5_high
  - 800-53r4_moderate
  - 800-53r4_high
  - 800-171
  - cis_lvl1
  - cis_lvl2
  - cisv8
  - cnssi-1253_low
  - cnssi-1253_high
  - cmmc_lvl2
  - cmmc_lvl1
  - stig
  - cnssi-1253_moderate
  - nlmapgov_base
  - nlmapgov_plus
severity: high
mobileconfig: true
mobileconfig_info:
  com.apple.systempolicy.control:
    EnableAssessment: true
