Apple macOS 12 (Monterey) Security Technical Implementation Guide
Pick two releases to diff their requirements.
Open a previous version of this STIG.
Digest of Updates +4 −2 ⚠ 3 ✎ 1
Comparison against the immediately-prior release (V1R7). Rule matching uses the Group Vuln ID. Content-change detection compares the rule’s description, check, and fix text after stripping inline markup — cosmetic-only edits aren’t flagged.
Added rules 4
- V-257772 Medium The macOS system must prevent nonprivileged users from executing privileged functions to include disabling, circumventing, or altering implemented security safeguards/countermeasures.
- V-257773 High The macOS system must implement approved ciphers within the SSH client configuration to protect the confidentiality of SSH connections.
- V-257774 High The macOS system must implement approved Message Authentication Codes (MACs) within the SSH client configuration.
- V-257775 High The macOS system must implement approved Key Exchange Algorithms within the SSH client configuration.
Removed rules 2
- V-252443 Medium The macOS system must disable the SSHD service.
- V-252517 Medium The macOS system must authenticate peripherals before establishing a connection.
Severity changes 3
- V-252459 Medium High The macOS system must implement approved ciphers within the SSH server configuration to protect the confidentiality of SSH connections.
- V-252460 Medium High The macOS system must implement approved Message Authentication Codes (MACs) within the SSH server configuration.
- V-252461 Medium High The macOS system must implement approved Key Exchange Algorithms within the SSH server configuration.
Content changes 1
- V-252493 Medium descriptioncheck The macOS system must be configured to disable Siri and dictation.
- RMF Control
- AC-11
- Severity
- M
- CCI
- CCI-000056
- Version
- APPL-12-000001
- Vuln IDs
-
- V-252436
- Rule IDs
-
- SV-252436r816122_rule
Checks: C-55892r816120_chk
To check if the system is configured to prevent Apple Watch from terminating a session lock, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep "allowAutoUnlock" allowAutoUnlock = 0; If there is no result or "allowAutoUnlock" is not set to "0", this is a finding.
Fix: F-55842r816121_fix
This setting is enforced using the “Restrictions Policy" configuration profile.
- RMF Control
- AC-11
- Severity
- M
- CCI
- CCI-000056
- Version
- APPL-12-000002
- Vuln IDs
-
- V-252437
- Rule IDs
-
- SV-252437r816125_rule
Checks: C-55893r816123_chk
To check if the system will prompt users to enter their passwords to unlock the screen saver, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep askForPassword If there is no result, or if "askForPassword" is not set to "1", this is a finding.
Fix: F-55843r816124_fix
This setting is enforced using the "Login Window Policy" configuration profile.
- RMF Control
- AC-11
- Severity
- M
- CCI
- CCI-000056
- Version
- APPL-12-000003
- Vuln IDs
-
- V-252438
- Rule IDs
-
- SV-252438r877365_rule
Checks: C-55894r877364_chk
To check if the system will prompt users to enter their passwords to unlock the screen saver, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep askForPasswordDelay If there is no result, or if "askForPasswordDelay" is not set to "5" or less, this is a finding.
Fix: F-55844r816127_fix
This setting is enforced using the "Login Window Policy" configuration profile.
- RMF Control
- AC-11
- Severity
- M
- CCI
- CCI-000057
- Version
- APPL-12-000004
- Vuln IDs
-
- V-252439
- Rule IDs
-
- SV-252439r816131_rule
Checks: C-55895r816129_chk
To check if the system has a configuration profile configured to enable the screen saver after a time-out period, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep loginWindowIdleTime If there is no result, or if "loginWindowIdleTime" is not set to "900" seconds or less, this is a finding.
Fix: F-55845r816130_fix
This setting is enforced using the "Login Window Policy" configuration profile.
- RMF Control
- AC-11
- Severity
- M
- CCI
- CCI-000058
- Version
- APPL-12-000005
- Vuln IDs
-
- V-252440
- Rule IDs
-
- SV-252440r816134_rule
Checks: C-55896r816132_chk
To check if support for session locking with removal of a token is enabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep "tokenRemovalAction = 1;" If there is no result, this is a finding.
Fix: F-55846r816133_fix
This setting is enforced using the "Smart Card Policy" configuration profile. Note: Before applying the "Smart Card Policy", the supplemental guidance provided with the STIG should be consulted to ensure continued access to the operating system.
- RMF Control
- AC-11
- Severity
- L
- CCI
- CCI-000060
- Version
- APPL-12-000006
- Vuln IDs
-
- V-252441
- Rule IDs
-
- SV-252441r816137_rule
Checks: C-55897r816135_chk
To view the currently selected screen saver for the logged-on user, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep loginWindowModulePath If there is no result or defined "modulePath", this is a finding.
Fix: F-55847r816136_fix
This setting is enforced using the "Login Window Policy" configuration profile.
- RMF Control
- AC-11
- Severity
- M
- CCI
- CCI-000060
- Version
- APPL-12-000007
- Vuln IDs
-
- V-252442
- Rule IDs
-
- SV-252442r816140_rule
Checks: C-55898r816138_chk
To check if the system is configured to disable hot corners, run the following commands: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep wvous If the return is null, or does not equal: "wvous-bl-corner = 0 wvous-br-corner = 0; wvous-tl-corner = 0; wvous-tr-corner = 0;" this is a finding.
Fix: F-55848r816139_fix
This setting is enforced using the "Custom Policy" configuration profile.
- RMF Control
- AC-2
- Severity
- M
- CCI
- CCI-001682
- Version
- APPL-12-000012
- Vuln IDs
-
- V-252444
- Rule IDs
-
- SV-252444r816146_rule
Checks: C-55900r816144_chk
Verify if a password policy is enforced by a directory service by asking the System Administrator (SA) or Information System Security Officer (ISSO). If no policy is enforced by a directory service, a password policy can be set with the "pwpolicy" utility. The variable names may vary depending on how the policy was set. If there are no temporary or emergency accounts defined on the system, this is Not Applicable. To check if the password policy is configured to disable a temporary or emergency account after 72 hours, run the following command to output the password policy to the screen, substituting the correct user name in place of username: /usr/bin/sudo /usr/bin/pwpolicy -u username getaccountpolicies | tail -n +2 If there is no output, and password policy is not controlled by a directory service, this is a finding. Otherwise, look for the line "<key>policyCategoryAuthentication</key>". In the array that follows, there should be a <dict> section that contains a check <string> that allows users to log in if "policyAttributeCurrentTime" is less than the result of adding "policyAttributeCreationTime" to 72 hours (259299 seconds). The check might use a variable defined in its "policyParameters" section. If the check does not exist or if the check adds too great an amount of time to "policyAttributeCreationTime", this is a finding.
Fix: F-55850r816450_fix
This setting may be enforced using local policy or by a directory service. To set local policy to disable a temporary or emergency user, create a plain text file containing the following: <dict> <key>policyCategoryAuthentication</key> <array> <dict> <key>policyContent</key> <string>policyAttributeCurrentTime < policyAttributeCreationTime+259299</string> <key>policyIdentifier</key> <string>Disable Tmp Accounts </string> </dict> </array> </dict> After saving the file and exiting to the command prompt, run the following command to load the new policy file, substituting the correct user name in place of "username" and the path to the file in place of "/path/to/file". /usr/bin/sudo /usr/bin/pwpolicy -u username setaccountpolicies /path/to/file
- RMF Control
- AU-8
- Severity
- M
- CCI
- CCI-002046
- Version
- APPL-12-000014
- Vuln IDs
-
- V-252445
- Rule IDs
-
- SV-252445r877038_rule
Checks: C-55901r816147_chk
The TIMED (NTP replacement in Big Sur) service must be enabled on all networked systems. To check if the service is running, use the following command: sudo systemsetup -getusingnetworktime If the following in not returned, this is a finding: Network Time: On To verify that an authorized Time Server is configured, run the following command: sudo systemsetup -getnetworktimeserver Only approved time servers should be configured for use. If no server is configured, or if an unapproved time server is in use, this is a finding.
Fix: F-55851r816148_fix
To enable the TIMED service, run the following command: /usr/bin/sudo systemsetup -setusingnetworktime on To configure a time server, use the following command: /usr/bin/sudo systemsetup -setnetworktimeserver "server"
- RMF Control
- SI-2
- Severity
- M
- CCI
- CCI-001233
- Version
- APPL-12-000015
- Vuln IDs
-
- V-252446
- Rule IDs
-
- SV-252446r816152_rule
Checks: C-55902r816150_chk
Verify that there is an approved ESS solution installed on the system. If there is not an approved ESS solution installed, this is a finding. Verify that all installed components of the ESS Solution are at the DoD approved minimal version. If the installed components are not at the DoD approved minimal versions, this is a finding.
Fix: F-55852r816151_fix
Install an approved ESS solution onto the system and ensure that all components are at least updated to their DoD approved minimal versions.
- RMF Control
- CM-6
- Severity
- H
- CCI
- CCI-000366
- Version
- APPL-12-000016
- Vuln IDs
-
- V-252447
- Rule IDs
-
- SV-252447r816155_rule
Checks: C-55903r816153_chk
If the system is using a mandatory Smart Card Policy, this is Not Applicable. To determine if the system is integrated to a directory service, run the following command: /usr/bin/dscl localhost -list . | /usr/bin/grep "Active Directory" If no results are returned, this is a finding.
Fix: F-55853r816154_fix
Integrate the system into an existing directory services infrastructure.
- RMF Control
- AC-7
- Severity
- M
- CCI
- CCI-002238
- Version
- APPL-12-000022
- Vuln IDs
-
- V-252448
- Rule IDs
-
- SV-252448r853260_rule
Checks: C-55904r816156_chk
Password policy is set with the Passcode Policy configuration profile. /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep 'maxFailedAttempts\|minutesUntilFailedLoginReset' If "maxFailedAttempts" is not set to "3" and "minutesUntilFailedLoginReset" is not set to "15", this is a finding.
Fix: F-55854r816157_fix
This setting may be enforced using the "Passcode Policy" configuration profile or by a directory service.
- RMF Control
- AC-8
- Severity
- M
- CCI
- CCI-000048
- Version
- APPL-12-000023
- Vuln IDs
-
- V-252449
- Rule IDs
-
- SV-252449r816161_rule
Checks: C-55905r816159_chk
Verify the operating system displays the Standard Mandatory DoD Notice and Consent Banner before granting access to the operating system. Check to see if the operating system has the correct text listed in the "/etc/banner" file with the following command: # more /etc/banner The command should return the following text: "You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only. By using this IS (which includes any device attached to this IS), you consent to the following conditions: -The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations. -At any time, the USG may inspect and seize data stored on this IS. -Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose. -This IS includes security measures (e.g., authentication and access controls) to protect USG interests--not for your personal benefit or privacy. -Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details." If the operating system does not display a graphical logon banner or the banner does not match the Standard Mandatory DoD Notice and Consent Banner, this is a finding. If the text in the "/etc/banner" file does not match the Standard Mandatory DoD Notice and Consent Banner, this is a finding.
Fix: F-55855r816160_fix
Create a text file containing the required DoD text. Name the file "banner" and place it in "/etc/".
- RMF Control
- AC-8
- Severity
- M
- CCI
- CCI-000048
- Version
- APPL-12-000024
- Vuln IDs
-
- V-252450
- Rule IDs
-
- SV-252450r858503_rule
Checks: C-55906r858502_chk
If SSH is not being used, this is Not Applicable. For systems that allow remote access through SSH, run the following command to verify that "/etc/banner" is displayed before granting access: /usr/bin/grep -r Banner /etc/ssh/sshd_config* Banner /etc/banner If the sshd Banner configuration option does not point to "/etc/banner", this is a finding. If conflicting results are returned, this is a finding.
Fix: F-55856r816163_fix
For systems that allow remote access through SSH run the following command: # /usr/bin/sudo /usr/bin/sed -i.bak 's/^#Banner.*/Banner \/etc\/banner/' /etc/ssh/sshd_config
- RMF Control
- AC-8
- Severity
- M
- CCI
- CCI-000048
- Version
- APPL-12-000025
- Vuln IDs
-
- V-252451
- Rule IDs
-
- SV-252451r816167_rule
Checks: C-55907r816165_chk
The policy banner will show if a "PolicyBanner.rtf" or "PolicyBanner.rtfd" exists in the "/Library/Security" folder. Run this command to show the contents of that folder: /bin/ls -l /Library/Security/PolicyBanner.rtf* If neither "PolicyBanner.rtf" nor "PolicyBanner.rtfd" exists, this is a finding. The banner text of the document MUST read: "You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only. By using this IS (which includes any device attached to this IS), you consent to the following conditions: -The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations. -At any time, the USG may inspect and seize data stored on this IS. -Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG authorized purpose. -This IS includes security measures (e.g., authentication and access controls) to protect USG interests--not for your personal benefit or privacy. -Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details." If the text is not worded exactly this way, this is a finding.
Fix: F-55857r816166_fix
Create an RTF file containing the required text. Name the file "PolicyBanner.rtf" or "PolicyBanner.rtfd" and place it in "/Library/Security/".
- RMF Control
- SI-11
- Severity
- M
- CCI
- CCI-001314
- Version
- APPL-12-000030
- Vuln IDs
-
- V-252452
- Rule IDs
-
- SV-252452r816170_rule
Checks: C-55908r816168_chk
To check if a log file contains ACLs, run the following commands: /usr/bin/sudo ls -le $(/usr/bin/sudo /usr/bin/grep '^dir' /etc/security/audit_control | awk -F: '{print $2}') | /usr/bin/grep -v current In the output from the above commands, ACLs will be listed under any file that may contain them (e.g., "0: group:admin allow list,readattr,reaadextattr,readsecurity"). If any such line exists, this is a finding.
Fix: F-55858r816169_fix
For any log file that contains ACLs, run the following command: /usr/bin/sudo chmod -N [audit log file]
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-000162
- Version
- APPL-12-000031
- Vuln IDs
-
- V-252453
- Rule IDs
-
- SV-252453r816173_rule
Checks: C-55909r816171_chk
To check if a log folder contains ACLs, run the following commands: /usr/bin/sudo ls -lde $(/usr/bin/sudo /usr/bin/grep '^dir' /etc/security/audit_control | awk -F: '{print $2}') In the output from the above commands, ACLs will be listed under any folder that may contain them (e.g., "0: group:admin allow list,readattr,reaadextattr,readsecurity"). If any such line exists, this is a finding.
Fix: F-55859r816172_fix
For any log folder that contains ACLs, run the following command: /usr/bin/sudo chmod -N [audit log folder]
- RMF Control
- AC-2
- Severity
- M
- CCI
- CCI-002143
- Version
- APPL-12-000032
- Vuln IDs
-
- V-252454
- Rule IDs
-
- SV-252454r853262_rule
Checks: C-55910r816174_chk
For Apple Silicon-based systems, this is Not Applicable. For Intel-based Macs, retrieve a list of authorized FileVault users: $ sudo fdesetup list fvuser,85F41F44-22B3-6CB7-85A1-BCC2EA2B887A If any unauthorized users are listed, this is a finding. Verify that the shell for authorized FileVault users is set to “/usr/bin/false”, which prevents console logins: $ sudo dscl . read /Users/<FileVault_User> UserShell UserShell: /usr/bin/false If the FileVault users' shell is not set to "/usr/bin/false", this is a finding.
Fix: F-55860r853261_fix
Note: In previous versions of macOS, this setting was implemented differently. Systems that used the previous method should prepare the system for the new method by creating a new unlock user, verifying its ability to unlock FileVault after reboot, then deleting the old FileVault unlock user. Disable the login ability of the newly created user account: $ sudo /usr/bin/dscl . change /Users/<FileVault_User> UserShell </path/to/current/shell> /usr/bin/false Remove all FileVault login access from each user account defined on the system that is not a designated FileVault user: $ sudo fdesetup remove -user <username>
- RMF Control
- AC-2
- Severity
- M
- CCI
- CCI-002143
- Version
- APPL-12-000033
- Vuln IDs
-
- V-252455
- Rule IDs
-
- SV-252455r853263_rule
Checks: C-55911r816177_chk
Verify that password forwarding has been disabled on the system: # /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep "DisableFDEAutoLogin" DisableFDEAutologin = 1; If "DisableFDEAutologin" is not set to a value of "1", this is a finding.
Fix: F-55861r816178_fix
This setting is enforced using the "Smart Card" configuration profile.
- RMF Control
- SC-10
- Severity
- M
- CCI
- CCI-001133
- Version
- APPL-12-000051
- Vuln IDs
-
- V-252456
- Rule IDs
-
- SV-252456r891341_rule
Checks: C-55912r891340_chk
If SSH is not being used, this is Not Applicable. The SSH daemon "ClientAliveInterval" option must be set correctly. To check the idle timeout setting for SSH sessions, run the following: /usr/bin/grep -r ^ClientAliveInterval /etc/ssh/sshd_config* If "ClientAliveInterval" is not configured or has a value of "0", this is a finding. If "ClientAliveInterval" is not "900" or less, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-55862r816181_fix
To ensure that "ClientAliveInterval" is set correctly, run the following command: /usr/bin/sudo /usr/bin/sed -i.bak 's/.*ClientAliveInterval.*/ClientAliveInterval 900/' /etc/ssh/sshd_config
- RMF Control
- SC-10
- Severity
- M
- CCI
- CCI-001133
- Version
- APPL-12-000052
- Vuln IDs
-
- V-252457
- Rule IDs
-
- SV-252457r891344_rule
Checks: C-55913r891342_chk
If SSH is not being used, this is Not Applicable. The SSH daemon "ClientAliveCountMax" option must be set correctly. To verify the SSH idle timeout will occur when the "ClientAliveCountMax" is set, run the following command: /usr/bin/grep -r ^ClientAliveCountMax /etc/ssh/sshd_config* If the setting is not "ClientAliveCountMax 1", this is a finding. If conflicting results are returned, this is a finding.
Fix: F-55863r891343_fix
To ensure that the SSH idle timeout occurs precisely when the "ClientAliveCountMax" is set, run the following command: /usr/bin/sudo /usr/bin/sed -i.bak 's/.*ClientAliveCountMax.*/ClientAliveCountMax 1/' /etc/ssh/sshd_config
- RMF Control
- SC-10
- Severity
- M
- CCI
- CCI-001133
- Version
- APPL-12-000053
- Vuln IDs
-
- V-252458
- Rule IDs
-
- SV-252458r858509_rule
Checks: C-55914r858508_chk
If SSH is not being used, this is Not Applicable. The SSH daemon "LoginGraceTime" must be set correctly. To check the amount of time that a user can log on through SSH, run the following command: /usr/bin/grep -r ^LoginGraceTime /etc/ssh/sshd_config* If the value is not set to "30" or less, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-55864r816187_fix
To ensure that "LoginGraceTime" is configured correctly, run the following command: /usr/bin/sudo /usr/bin/sed -i.bak 's/.*LoginGraceTime.*/LoginGraceTime 30/' /etc/ssh/sshd_config
- RMF Control
- IA-7
- Severity
- H
- CCI
- CCI-000803
- Version
- APPL-12-000054
- Vuln IDs
-
- V-252459
- Rule IDs
-
- SV-252459r922855_rule
Checks: C-55915r922853_chk
Verify the macOS system is configured to use approved SSH ciphers within the SSH server configuration with the following command: /usr/bin/sudo /usr/sbin/sshd -T | /usr/bin/grep "ciphers" ciphers aes128-gcm@openssh.com If any ciphers other than "aes128-gcm@openssh.com" are listed, or the "ciphers" keyword is missing, this is a finding.
Fix: F-55865r922854_fix
Configure the macOS system to use approved SSH ciphers by creating a plain text file in the /private/etc/ssh/sshd_config.d/ directory containing the following: Ciphers aes128-gcm@openssh.com The SSH service must be restarted for changes to take effect.
- RMF Control
- AC-17
- Severity
- H
- CCI
- CCI-000068
- Version
- APPL-12-000055
- Vuln IDs
-
- V-252460
- Rule IDs
-
- SV-252460r922858_rule
Checks: C-55916r922856_chk
Verify the macOS system is configured to use approved SSH MACs within the SSH server configuration with the following command: /usr/bin/sudo /usr/sbin/sshd -T | /usr/bin/grep "macs" macs hmac-sha2-256 If any hashes other than "hmac-sha2-256" are listed, or the "macs" keyword is missing, this is a finding.
Fix: F-55866r922857_fix
Configure the macOS system to use approved SSH MACs by creating a plain text file in the /private/etc/ssh/sshd_config.d/ directory containing the following: MACs hmac-sha2-256 The SSH service must be restarted for changes to take effect.
- RMF Control
- IA-7
- Severity
- H
- CCI
- CCI-000803
- Version
- APPL-12-000056
- Vuln IDs
-
- V-252461
- Rule IDs
-
- SV-252461r922861_rule
Checks: C-55917r922859_chk
Verify the macOS system is configured to use approved SSH Key Exchange Algorithms within the SSH server configuration with the following command: /usr/bin/sudo /usr/sbin/sshd -T | /usr/bin/grep "kexalgorithms" kexalgorithms ecdh-sha2-nistp256 If any algorithms other than "ecdh-sha2-nistp256" are listed, or the "kexalgorithms" keyword is missing, this is a finding.
Fix: F-55867r922860_fix
Configure the macOS system to use approved SSH Key Exchange Algorithms by creating a plain text file in the /private/etc/ssh/sshd_config.d/ directory containing the following: KexAlgorithms ecdh-sha2-nistp256 The SSH service must be restarted for changes to take effect.
- RMF Control
- AC-2
- Severity
- M
- CCI
- CCI-000018
- Version
- APPL-12-001001
- Vuln IDs
-
- V-252462
- Rule IDs
-
- SV-252462r853271_rule
Checks: C-55918r816198_chk
To view the currently configured flags for the audit daemon, run the following command: /usr/bin/sudo /usr/bin/grep ^flags /etc/security/audit_control Administrative and Privileged access, including administrative use of the command line tools "kextload" and "kextunload" and changes to configuration settings are logged by way of the "ad" flag. If "ad" is not listed in the result of the check, this is a finding.
Fix: F-55868r853270_fix
To ensure the appropriate flags are enabled for auditing, run the following command: /usr/bin/sudo /usr/bin/sed -i.bak '/^flags/ s/$/,ad/' /etc/security/audit_control; /usr/bin/sudo /usr/sbin/audit -s A text editor may also be used to implement the required updates to the "/etc/security/audit_control" file.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000172
- Version
- APPL-12-001002
- Vuln IDs
-
- V-252463
- Rule IDs
-
- SV-252463r816463_rule
Checks: C-55919r816201_chk
To view the currently configured flags for the audit daemon, run the following command: /usr/bin/sudo /usr/bin/grep ^flags /etc/security/audit_control Attempts to log in as another user are logged by way of the "lo" flag. If "lo" is not listed in the result of the check, this is a finding.
Fix: F-55869r816462_fix
To ensure the appropriate flags are enabled for auditing, run the following command: /usr/bin/sudo sed -i.bak '/^flags/ s/$/,lo/' /etc/security/audit_control; /usr/bin/sudo /usr/sbin/audit -s A text editor may also be used to implement the required updates to the "/etc/security/audit_control" file.
- RMF Control
- AU-8
- Severity
- M
- CCI
- CCI-000159
- Version
- APPL-12-001003
- Vuln IDs
-
- V-252464
- Rule IDs
-
- SV-252464r853272_rule
Checks: C-55920r816204_chk
To check if the audit service is running, use the following command: launchctl print-disabled system| grep auditd If the return is not: "com.apple.auditd" => false" the audit service is disabled, and this is a finding.
Fix: F-55870r816205_fix
To enable the audit service, run the following command: /usr/bin/sudo /bin/launchctl enable system/com.apple.auditd The system may need to be restarted for the update to take effect.
- RMF Control
- AU-5
- Severity
- M
- CCI
- CCI-000140
- Version
- APPL-12-001010
- Vuln IDs
-
- V-252465
- Rule IDs
-
- SV-252465r816466_rule
Checks: C-55921r816207_chk
Verify that the audit control system is configured to shut down upon failure using the following command: sudo /usr/bin/grep ^policy /etc/security/audit_control | /usr/bin/grep ahlt If there is no result, this is a finding.
Fix: F-55871r816465_fix
Edit the "/etc/security/audit_control file" and change the value for policy to include the setting "ahlt". To do this programmatically, run the following command: sudo /usr/bin/sed -i.bak '/^policy/ s/$/,ahlt/' /etc/security/audit_control; sudo /usr/sbin/audit -s
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-000162
- Version
- APPL-12-001012
- Vuln IDs
-
- V-252466
- Rule IDs
-
- SV-252466r816212_rule
Checks: C-55922r816210_chk
To check the ownership of the audit log files, run the following command: /usr/bin/sudo ls -le $(/usr/bin/sudo /usr/bin/grep '^dir' /etc/security/audit_control | awk -F: '{print $2}') | grep -v current The results should show the owner (third column) to be "root". If they do not, this is a finding.
Fix: F-55872r816211_fix
For any log file that returns an incorrect owner, run the following command: /usr/bin/sudo chown root [audit log file] [audit log file] is the full path to the log file in question.
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-000162
- Version
- APPL-12-001013
- Vuln IDs
-
- V-252467
- Rule IDs
-
- SV-252467r816215_rule
Checks: C-55923r816213_chk
To check the ownership of the audit log folder, run the following command: /usr/bin/sudo ls -lde $(/usr/bin/sudo /usr/bin/grep '^dir' /etc/security/audit_control | awk -F: '{print $2}') The results should show the owner (third column) to be "root". If it does not, this is a finding.
Fix: F-55873r816214_fix
For any log folder that has an incorrect owner, run the following command: /usr/bin/sudo chown root [audit log folder]
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-000162
- Version
- APPL-12-001014
- Vuln IDs
-
- V-252468
- Rule IDs
-
- SV-252468r816218_rule
Checks: C-55924r816216_chk
To check the group ownership of the audit log files, run the following command: /usr/bin/sudo ls -le $(/usr/bin/sudo /usr/bin/grep '^dir' /etc/security/audit_control | awk -F: '{print $2}') | /usr/bin/grep -v current The results should show the group owner (fourth column) to be "wheel". If they do not, this is a finding.
Fix: F-55874r816217_fix
For any log file that returns an incorrect group owner, run the following command: /usr/bin/sudo chgrp wheel [audit log file] [audit log file] is the full path to the log file in question.
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-000162
- Version
- APPL-12-001015
- Vuln IDs
-
- V-252469
- Rule IDs
-
- SV-252469r816221_rule
Checks: C-55925r816219_chk
To check the group ownership of the audit log folder, run the following command: /usr/bin/sudo ls -lde $(/usr/bin/sudo /usr/bin/grep '^dir' /etc/security/audit_control | awk -F: '{print $2}') The results should show the group (fourth column) to be "wheel". If they do not, this is a finding.
Fix: F-55875r816220_fix
For any log folder that has an incorrect group, run the following command: /usr/bin/sudo chgrp wheel [audit log folder]
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-000162
- Version
- APPL-12-001016
- Vuln IDs
-
- V-252470
- Rule IDs
-
- SV-252470r816224_rule
Checks: C-55926r816222_chk
To check the permissions of the audit log files, run the following command: /usr/bin/sudo ls -le $(/usr/bin/sudo /usr/bin/grep '^dir' /etc/security/audit_control | awk -F: '{print $2}') | /usr/bin/grep -v current The results should show the permissions (first column) to be "440" or less permissive. If they do not, this is a finding.
Fix: F-55876r816223_fix
For any log file that returns an incorrect permission value, run the following command: /usr/bin/sudo chmod 440 [audit log file] [audit log file] is the full path to the log file in question.
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-000162
- Version
- APPL-12-001017
- Vuln IDs
-
- V-252471
- Rule IDs
-
- SV-252471r816227_rule
Checks: C-55927r816225_chk
To check the permissions of the audit log folder, run the following command: /usr/bin/sudo ls -lde $(/usr/bin/sudo /usr/bin/grep '^dir' /etc/security/audit_control | awk -F: '{print $2}') The results should show the permissions (first column) to be "700" or less permissive. If they do not, this is a finding.
Fix: F-55877r816226_fix
For any log folder that returns an incorrect permission value, run the following command: /usr/bin/sudo chmod 700 [audit log folder]
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000172
- Version
- APPL-12-001020
- Vuln IDs
-
- V-252472
- Rule IDs
-
- SV-252472r853274_rule
Checks: C-55928r816228_chk
To view the currently configured flags for the audit daemon, run the following command: /usr/bin/sudo /usr/bin/grep ^flags /etc/security/audit_control Enforcement actions are logged by way of the "fm" flag, which audits permission changes, and "-fr" and "-fw", which denote failed attempts to read or write to a file, and -fd, which audits failed file deletion. If "fm", "-fr", "-fw", and "-fd" are not listed in the result of the check, this is a finding.
Fix: F-55878r853273_fix
To set the audit flags to the recommended setting, run the following command to add the flags "fm", "-fr", "-fw", and "-fd" all at once: /usr/bin/sudo /usr/bin/sed -i.bak '/^flags/ s/$/,fm,-fr,-fw,-fd/' /etc/security/audit_control; /usr/bin/sudo /usr/sbin/audit -s A text editor may also be used to implement the required updates to the "/etc/security/audit_control" file.
- RMF Control
- AU-4
- Severity
- M
- CCI
- CCI-001849
- Version
- APPL-12-001029
- Vuln IDs
-
- V-252473
- Rule IDs
-
- SV-252473r877391_rule
Checks: C-55929r816231_chk
The check displays the amount of time the audit system is configured to retain audit log files. The audit system will not delete logs until the specified condition has been met. To view the current setting, run the following command: /usr/bin/sudo /usr/bin/grep ^expire-after /etc/security/audit_control If this returns no results, or does not contain "7d" or a larger value, this is a finding.
Fix: F-55879r853275_fix
Edit the "/etc/security/audit_control" file and change the value for "expire-after" to the amount of time audit logs should be kept for the system. Use the following command to set the "expire-after" value to "7d": /usr/bin/sudo /usr/bin/sed -i.bak 's/.*expire-after.*/expire-after:7d/' /etc/security/audit_control; /usr/bin/sudo /usr/sbin/audit -s A text editor may also be used to implement the required updates to the "/etc/security/audit_control" file.
- RMF Control
- AU-5
- Severity
- M
- CCI
- CCI-001855
- Version
- APPL-12-001030
- Vuln IDs
-
- V-252474
- Rule IDs
-
- SV-252474r877389_rule
Checks: C-55930r816234_chk
The check displays the "% free" to leave available for the system. The audit system will not write logs if the volume has less than this percentage of free disk space. To view the current setting, run the following command: /usr/bin/sudo /usr/bin/grep ^minfree /etc/security/audit_control If this returns no results, or does not contain "25", this is a finding.
Fix: F-55880r853277_fix
Edit the "/etc/security/audit_control" file and change the value for "minfree" to "25" using the following command: /usr/bin/sudo /usr/bin/sed -i.bak 's/.*minfree.*/minfree:25/' /etc/security/audit_control; /usr/bin/sudo /usr/sbin/audit -s A text editor may also be used to implement the required updates to the "/etc/security/audit_control file".
- RMF Control
- AU-5
- Severity
- M
- CCI
- CCI-001858
- Version
- APPL-12-001031
- Vuln IDs
-
- V-252475
- Rule IDs
-
- SV-252475r853279_rule
Checks: C-55931r816237_chk
By default, "auditd" only logs errors to "syslog". To see if audit has been configured to print error messages to the console, run the following command: /usr/bin/sudo /usr/bin/grep logger /etc/security/audit_warn If the argument "-s" is missing, or if "audit_warn" has not been otherwise modified to print errors to the console or send email alerts to the SA and ISSO, this is a finding.
Fix: F-55881r816238_fix
To make "auditd" log errors to standard error as well as "syslogd", run the following command: /usr/bin/sudo /usr/bin/sed -i.bak 's/logger -p/logger -s -p/' /etc/security/audit_warn; /usr/bin/sudo /usr/sbin/audit -s
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000172
- Version
- APPL-12-001044
- Vuln IDs
-
- V-252476
- Rule IDs
-
- SV-252476r816474_rule
Checks: C-55932r816240_chk
To view the currently configured flags for the audit daemon, run the following command: /usr/bin/sudo /usr/bin/grep ^flags /etc/security/audit_control Logon events are logged by way of the "aa" flag. If "aa" is not listed in the result of the check, this is a finding.
Fix: F-55882r816473_fix
To ensure the appropriate flags are enabled for auditing, run the following command: /usr/bin/sudo /usr/bin/sed -i.bak '/^flags/ s/$/,aa/' /etc/security/audit_control; /usr/bin/sudo /usr/sbin/audit -s A text editor may also be used to implement the required updates to the "/etc/security/audit_control" file.
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000186
- Version
- APPL-12-001060
- Vuln IDs
-
- V-252477
- Rule IDs
-
- SV-252477r853280_rule
Checks: C-55933r816243_chk
To verify that certificate checks are occurring, run the following command. /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep checkCertificateTrust If the output is null or the value returned, "checkCertificateTrust = 1", is not equal to (1) or greater, this is a finding.
Fix: F-55883r816244_fix
This setting is enforced using the "Smart Card Policy" configuration profile. Note: Before applying the "Smart Card Policy", the supplemental guidance provided with the STIG should be consulted to ensure continued access to the operating system.
- RMF Control
- IA-2
- Severity
- M
- CCI
- CCI-000770
- Version
- APPL-12-001100
- Vuln IDs
-
- V-252478
- Rule IDs
-
- SV-252478r858511_rule
Checks: C-55934r858510_chk
If SSH is not being used, this is Not Applicable. To check if SSH has root logins enabled, run the following command: /usr/bin/grep -r ^PermitRootLogin /etc/ssh/sshd_config* If there is no result, or the result is set to "yes", this is a finding. If conflicting results are returned, this is a finding.
Fix: F-55884r816247_fix
To ensure that "PermitRootLogin" is disabled by sshd, run the following command: /usr/bin/sudo /usr/bin/sed -i.bak 's/^[\#]*PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- APPL-12-002001
- Vuln IDs
-
- V-252479
- Rule IDs
-
- SV-252479r816251_rule
Checks: C-55935r816249_chk
If SMB File Sharing is required, this is not applicable. To check if the SMB File Sharing service is disabled, use the following command: /bin/launchctl print-disabled system | /usr/bin/grep com.apple.smbd If the results do not show the following, this is a finding: "com.apple.smbd" => true
Fix: F-55885r816250_fix
To disable the SMB File Sharing service, run the following command: /usr/bin/sudo /bin/launchctl disable system/com.apple.smbd The system may need to be restarted for the update to take effect.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- APPL-12-002003
- Vuln IDs
-
- V-252480
- Rule IDs
-
- SV-252480r816254_rule
Checks: C-55936r816252_chk
If the NFS daemon is required, this is not applicable. To check if the NFS daemon is disabled, use the following command: /bin/launchctl print-disabled system | /usr/bin/grep com.apple.nfsd If the results do not show the following, this is a finding: "com.apple.nfsd" => true
Fix: F-55886r816253_fix
To disable the NFS daemon, run the following command: /usr/bin/sudo /bin/launchctl disable system/com.apple.nfsd The system may need to be restarted for the update to take effect.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- APPL-12-002004
- Vuln IDs
-
- V-252481
- Rule IDs
-
- SV-252481r816257_rule
Checks: C-55937r816255_chk
If Location Services are authorized by the Authorizing Official, this is Not Applicable. Verify that Location Services are disabled: /usr/bin/sudo /usr/bin/defaults read /var/db/locationd/Library/Preferences/ByHost/com.apple.locationd | egrep 'LocationServicesEnabled' LocationServicesEnabled = 0 If 'LocationServicesEnabled' is not set to '0', this is a finding.
Fix: F-55887r816256_fix
Disable the Location Services by running the following command: /usr/bin/sudo /usr/bin/defaults write /var/db/locationd/Library/Preferences/ByHost/com.apple.locationd LocationServicesEnabled -bool false
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- APPL-12-002005
- Vuln IDs
-
- V-252482
- Rule IDs
-
- SV-252482r816260_rule
Checks: C-55938r816258_chk
To check that Bonjour broadcasts have been disabled, use the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep NoMulticastAdvertisements If the return is not, "NoMulticastAdvertisements = 1", this is a finding.
Fix: F-55888r816259_fix
This setting is enforced using the "Custom Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- APPL-12-002006
- Vuln IDs
-
- V-252483
- Rule IDs
-
- SV-252483r816263_rule
Checks: C-55939r816261_chk
To check if the UUCP service is disabled, use the following command: /bin/launchctl print-disabled system | /usr/bin/grep com.apple.uucp If the results do not show the following, this is a finding: "com.apple.uucp" => true
Fix: F-55889r816262_fix
To disable the UUCP service, run the following command: /usr/bin/sudo /bin/launchctl disable system/com.apple.uucp The system may need to be restarted for the update to take effect.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- APPL-12-002007
- Vuln IDs
-
- V-252484
- Rule IDs
-
- SV-252484r816266_rule
Checks: C-55940r816264_chk
To check if Internet Sharing is disabled, use the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep forceInternetSharingOff If the return is not, "forceInternetSharingOff = 1", this is a finding.
Fix: F-55890r816265_fix
This setting is enforced using the "Custom Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- APPL-12-002008
- Vuln IDs
-
- V-252485
- Rule IDs
-
- SV-252485r816269_rule
Checks: C-55941r816267_chk
To check if Web Sharing is disabled, use the following command: /bin/launchctl print-disabled system | /usr/bin/grep org.apache.httpd If the results do not show the following, this is a finding: "org.apache.httpd" => true
Fix: F-55891r816268_fix
To disable Web Sharing, run the following command: /usr/bin/sudo /bin/launchctl disable system/org.apache.httpd The system may need to be restarted for the update to take effect.
- RMF Control
- CM-7
- Severity
- L
- CCI
- CCI-000381
- Version
- APPL-12-002009
- Vuln IDs
-
- V-252486
- Rule IDs
-
- SV-252486r816272_rule
Checks: C-55942r816270_chk
Verify that AirDrop has been disabled by running the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep allowAirDrop If the return is not, "allowAirDrop = 0", this is a finding.
Fix: F-55892r816271_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- L
- CCI
- CCI-000381
- Version
- APPL-12-002012
- Vuln IDs
-
- V-252487
- Rule IDs
-
- SV-252487r853281_rule
Checks: C-55943r816273_chk
To check if iCloudCalendar is disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep allowCloudCalendar If the return is not "allowCloudCalendar = 0", this is a finding.
Fix: F-55893r816274_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- L
- CCI
- CCI-001774
- Version
- APPL-12-002013
- Vuln IDs
-
- V-252488
- Rule IDs
-
- SV-252488r853282_rule
Checks: C-55944r816276_chk
To check if iCloud Reminders is disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep allowCloudReminders If the return is not “allowCloudReminders = 0”, this is a finding.
Fix: F-55894r816277_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- L
- CCI
- CCI-000381
- Version
- APPL-12-002014
- Vuln IDs
-
- V-252489
- Rule IDs
-
- SV-252489r853283_rule
Checks: C-55945r816279_chk
Verify that the operating system is configured to disable iCloud Address Book services using the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep allowCloudAddressBook If the result is not "allowCloudAddressBook = 0", this is a finding.
Fix: F-55895r816280_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- L
- CCI
- CCI-000381
- Version
- APPL-12-002015
- Vuln IDs
-
- V-252490
- Rule IDs
-
- SV-252490r853284_rule
Checks: C-55946r816282_chk
To check if Mail iCloud is disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep allowCloudMail If the result is not "allowCloudMail = 0", this is a finding.
Fix: F-55896r816283_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- L
- CCI
- CCI-001774
- Version
- APPL-12-002016
- Vuln IDs
-
- V-252491
- Rule IDs
-
- SV-252491r853285_rule
Checks: C-55947r816285_chk
To check if iCloud Notes is disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep allowCloudNotes If the return is not "allowCloudNotes = 0", this is a finding.
Fix: F-55897r816286_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- APPL-12-002017
- Vuln IDs
-
- V-252492
- Rule IDs
-
- SV-252492r816982_rule
Checks: C-55948r816981_chk
If the device or operating system does not have a camera installed, this requirement is not applicable. This requirement is not applicable to mobile devices (smartphones and tablets), where the use of the camera is a local AO decision. This requirement is not applicable to dedicated VTC suites located in approved VTC locations that are centrally managed. For an external camera, if there is not a method for the operator to manually disconnect camera at the end of collaborative computing sessions, this is a finding. For a built-in camera, the camera must be protected by a camera cover (e.g., laptop camera cover slide) when not in use. If the built-in camera is not protected with a camera cover, or is not physically disabled, this is a finding. If the camera is not disconnected, covered, or physically disabled, the following configuration is required: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep allowCamera If the result is "allowCamera = 1" and the collaborative computing device has not been authorized for use, this is a finding.
Fix: F-55898r816289_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- APPL-12-002020
- Vuln IDs
-
- V-252493
- Rule IDs
-
- SV-252493r922852_rule
Checks: C-55949r922851_chk
To check if Siri and dictation has been disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -e "Ironwood Allowed" If the output is not: "Ironwood Allowed = 0", this is a finding.
Fix: F-55899r816292_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000382
- Version
- APPL-12-002021
- Vuln IDs
-
- V-252494
- Rule IDs
-
- SV-252494r816477_rule
Checks: C-55950r816294_chk
Sending diagnostic and usage data to Apple must be disabled. To check if a configuration profile is configured to enforce this setting, run the following command: /usr/bin/sudo /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep allowDiagnosticSubmission If "allowDiagnosticSubmission" is not set to "0", this is a finding. Alternately, the setting is found in System Preferences >> Security & Privacy >> Privacy >> Analytics & Improvement. If the box that says, "Send diagnostic & usage data to Apple" is checked, this is a finding. If the box that says, "Improve Siri & Dictation" is checked, this is a finding. If the box that says, "Share with App Developers" is checked, this is a finding.
Fix: F-55900r816476_fix
This setting is enforced using the "Restrictions Policy" configuration profile. The setting "Send diagnostic & usage data to Apple" can also be configured in System Preferences >> Security & Privacy >> Privacy >> Analytics & Improvement. Uncheck the box that says, "Share Mac Analytics". Uncheck the box that says, "Improve Siri & Dictation". Uncheck the box that says, "Share with App Developers".
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000382
- Version
- APPL-12-002022
- Vuln IDs
-
- V-252495
- Rule IDs
-
- SV-252495r816299_rule
Checks: C-55951r816297_chk
To check if Remote Apple Events is disabled, use the following command: /bin/launchctl print-disabled system | /usr/bin/grep com.apple.AEServer If the results do not show the following, this is a finding. "com.apple.AEServer" => true
Fix: F-55901r816298_fix
To disable Remote Apple Events, run the following command: /usr/bin/sudo /bin/launchctl disable system/com.apple.AEServer The system may need to be restarted for the update to take effect.
- RMF Control
- CM-7
- Severity
- H
- CCI
- CCI-001774
- Version
- APPL-12-002031
- Vuln IDs
-
- V-252496
- Rule IDs
-
- SV-252496r853287_rule
Checks: C-55952r816300_chk
To check if the system is configured to disable access to the Apple ID preference pane and prevent it from being displayed, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -A 6 'DisabledPreferencePanes' If the return is not an array, DisabledPreferencePanes, containing: "com.apple.preferences.AppleIDPrefPane", this is a finding.
Fix: F-55902r816301_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001774
- Version
- APPL-12-002032
- Vuln IDs
-
- V-252497
- Rule IDs
-
- SV-252497r853288_rule
Checks: C-55953r816303_chk
To check if the system is configured to disable access to the Internet Accounts preference pane and prevent it from being displayed, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -A 6 -E 'DisabledPreferencePanes|HiddenPreferencePanes' If the return is not two arrays (HiddenPreferencePanes and DisabledPreferencePanes) each containing: "com.apple.preferences.internetaccounts", this is a finding.
Fix: F-55903r816304_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- APPL-12-002035
- Vuln IDs
-
- V-252498
- Rule IDs
-
- SV-252498r816308_rule
Checks: C-55954r816306_chk
To check if CloudSetup is disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep SkipCloudSetup If the return is not "SkipCloudSetup = 1", this is a finding.
Fix: F-55904r816307_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- APPL-12-002036
- Vuln IDs
-
- V-252499
- Rule IDs
-
- SV-252499r816311_rule
Checks: C-55955r816309_chk
To check if PrivacySetup is disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep SkipPrivacySetup If the return is not "SkipPrivacySetup = 1", this is a finding.
Fix: F-55905r816310_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- APPL-12-002037
- Vuln IDs
-
- V-252500
- Rule IDs
-
- SV-252500r816314_rule
Checks: C-55956r816312_chk
To check if CloudStorage Setup is disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep SkipiCloudStorageSetup If the return is not "SkipiCloudStorageSetup = 1", this is a finding.
Fix: F-55906r816313_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- IA-5
- Severity
- H
- CCI
- CCI-000197
- Version
- APPL-12-002038
- Vuln IDs
-
- V-252501
- Rule IDs
-
- SV-252501r877396_rule
Checks: C-55957r816315_chk
To check if the tfptd service is disabled, run the following command: /bin/launchctl print-disabled system | grep tftpd If the results do not show the following, this is a finding: "com.apple.tftpd" => true
Fix: F-55907r816316_fix
To disable the tfpd service, run the following command: /usr/bin/sudo /bin/launchctl disable system/com.apple.tftpd
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- APPL-12-002039
- Vuln IDs
-
- V-252502
- Rule IDs
-
- SV-252502r853289_rule
Checks: C-55958r816318_chk
To check if SiriSetup is disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep SkipSiriSetup If the return is not "SkipSiriSetup = 1", this is a finding.
Fix: F-55908r816319_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001774
- Version
- APPL-12-002040
- Vuln IDs
-
- V-252503
- Rule IDs
-
- SV-252503r853290_rule
Checks: C-55959r816321_chk
To view the setting for the iCloud Keychain Synchronization configuration, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep allowCloudKeychainSync If the output is null or not "allowCloudKeychainSync = 0" this is a finding.
Fix: F-55909r816322_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- APPL-12-002041
- Vuln IDs
-
- V-252504
- Rule IDs
-
- SV-252504r853291_rule
Checks: C-55960r816324_chk
To view the setting for the iCloud Document Synchronization configuration, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep allowCloudDocumentSync If the output is null or not "allowCloudDocumentSync = 0" this is a finding.
Fix: F-55910r816325_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001774
- Version
- APPL-12-002042
- Vuln IDs
-
- V-252505
- Rule IDs
-
- SV-252505r853292_rule
Checks: C-55961r816327_chk
To view the setting for the iCloud Bookmark Synchronization configuration, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep allowCloudBookmarks If the output is null or not "allowCloudBookmarks = 0" this is a finding.
Fix: F-55911r816328_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- APPL-12-002043
- Vuln IDs
-
- V-252506
- Rule IDs
-
- SV-252506r853293_rule
Checks: C-55962r816330_chk
To view the setting for the iCloud Photo Library configuration, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep allowCloudPhotoLibrary If the output is null or not "allowCloudPhotoLibrary = 0", this is a finding.
Fix: F-55912r816331_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- APPL-12-002050
- Vuln IDs
-
- V-252507
- Rule IDs
-
- SV-252507r816335_rule
Checks: C-55963r816333_chk
To check if the Screen Sharing service is disabled, use the following command: /usr/bin/sudo /bin/launchctl print-disabled system | /usr/bin/grep com.apple.screensharing If the results do not show the following, this is a finding: "com.apple.screensharing" => true
Fix: F-55913r816334_fix
To disable the Screen Sharing service, run the following command: /usr/bin/sudo /bin/launchctl disable system/com.apple.screensharing The system may need to be restarted for the update to take effect.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001774
- Version
- APPL-12-002051
- Vuln IDs
-
- V-252508
- Rule IDs
-
- SV-252508r853294_rule
Checks: C-55964r816336_chk
To check if the system is configured to disable access to the TouchID preference pane and prevent it from being displayed, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -A 6 -E 'DisabledPreferencePanes|HiddenPreferencePanes' If the return is not two arrays (HiddenPreferencePanes and DisabledPreferencePanes) each containing: "com.apple.preferences.password", this is a finding.
Fix: F-55914r816337_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001774
- Version
- APPL-12-002052
- Vuln IDs
-
- V-252509
- Rule IDs
-
- SV-252509r853295_rule
Checks: C-55965r816339_chk
To check if the system is configured to disable access to the Wallet & ApplePay preference pane and prevent it from being displayed, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -A 6 -E 'DisabledPreferencePanes|HiddenPreferencePanes' If the return is not two arrays (HiddenPreferencePanes and DisabledPreferencePanes) each containing: "com.apple.preferences.wallet", this is a finding.
Fix: F-55915r816340_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- APPL-12-002053
- Vuln IDs
-
- V-252510
- Rule IDs
-
- SV-252510r853296_rule
Checks: C-55966r816342_chk
To check if the system is configured to disable access to the Siri preference pane and prevent it from being displayed, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -A 6 -E 'DisabledPreferencePanes|HiddenPreferencePanes' If the return is not two arrays (HiddenPreferencePanes and DisabledPreferencePanes) each containing: "com.apple.preference.speech", this is a finding.
Fix: F-55916r816343_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- APPL-12-002060
- Vuln IDs
-
- V-252511
- Rule IDs
-
- SV-252511r816347_rule
Checks: C-55967r816345_chk
Identify any unsigned applications that have been installed on the system: /usr/sbin/system_profiler SPApplicationsDataType | /usr/bin/grep -B 3 -A 4 -e "Obtained from: Unknown" | /usr/bin/grep -v -e "Location: /Library/Application Support/Script Editor/Templates" -e "Location: /System/Library/" | /usr/bin/awk -F "Location: " '{print $2}' | /usr/bin/sort -u If any results are returned and is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding. Verify only applications with a valid digital signature are allowed to run: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -E '(EnableAssessment | AllowIdentifiedDevelopers)' If the return is null or is not the following, this is a finding: AllowIdentifiedDevelopers = 1; EnableAssessment = 1;
Fix: F-55917r816346_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-5
- Severity
- H
- CCI
- CCI-001813
- Version
- APPL-12-002063
- Vuln IDs
-
- V-252513
- Rule IDs
-
- SV-252513r853297_rule
Checks: C-55969r816351_chk
To check that the system is configured to disable the guest account, run the following command: # /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep DisableGuestAccount If the result is null or not "DisableGuestAccount = 1", this is a finding.
Fix: F-55919r816352_fix
This setting is enforced using the "Login Window Policy" configuration profile.
- RMF Control
- CM-5
- Severity
- H
- CCI
- CCI-001749
- Version
- APPL-12-002064
- Vuln IDs
-
- V-252514
- Rule IDs
-
- SV-252514r877463_rule
Checks: C-55970r816354_chk
To check the status of the Security assessment policy subsystem, run the following command: /usr/sbin/spctl --status 2> /dev/null | /usr/bin/grep enabled If "assessments enabled" is not returned, this is a finding.
Fix: F-55920r816355_fix
To enable the Security assessment policy subsystem, run the following command: /usr/bin/sudo /usr/sbin/spctl --master-enable
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- APPL-12-002066
- Vuln IDs
-
- V-252515
- Rule IDs
-
- SV-252515r877377_rule
Checks: C-55971r816357_chk
To check if the system is configured to automatically log on, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep DisableAutoLoginClient If "com.apple.login.mcx.DisableAutoLoginClient" is not set to "1", this is a finding.
Fix: F-55921r816358_fix
This setting is enforced using the "Login Window Policy" configuration profile.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- APPL-12-002068
- Vuln IDs
-
- V-252516
- Rule IDs
-
- SV-252516r916421_rule
Checks: C-55972r916419_chk
Verify the macOS system is configured so that permissions are set correctly on user home directories with the following commands: /bin/ls -le /Users This command will return a listing of the permissions of the root of every user account configured on the system. For each of the users, the permissions must be "drwxr-xr-x+", with the user listed as the owner and the group listed as "staff". The plus(+) sign indicates an associated Access Control List, which must be: 0: group:everyone deny delete For every authorized user account, also run the following command: /usr/bin/sudo /bin/ls -le /Users/userid, where userid is an existing user. This command will return the permissions of all the objects under the users' home directory. The permissions for each of the subdirectories must be: drwx------+ 0: group:everyone deny delete The exception is the "Public" directory, whose permissions must match the following: drwxr-xr-x+ 0: group:everyone deny delete If the permissions returned by either of these checks differ from what is shown, this is a finding.
Fix: F-55922r916420_fix
Configure the macOS system to set the appropriate permissions for each user on the system with the following command: /usr/sbin/diskutil resetUserPermissions / DeviceNode UID, where "DeviceNode UID" is the ID number for the user whose home directory permissions need to be repaired.
- RMF Control
- CM-6
- Severity
- H
- CCI
- CCI-000366
- Version
- APPL-12-002070
- Vuln IDs
-
- V-252518
- Rule IDs
-
- SV-252518r816481_rule
Checks: C-55974r816366_chk
Verify the "MRT" service is running by using the following command: /bin/launchctl print-disabled system | grep mrt If the results show "com.apple.mrt" => false", the MRT Service is running. If the MRT service is running, verify that it is configured to update automatically by using the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep ConfigDataInstall If, "ConfigDataInstall = 1" is not returned, this is a finding. If the MRT service is not running, ask the System Administrator (SA) or Information System Security Officer (ISSO) if an approved antivirus solution is loaded on the system. The antivirus solution may be bundled with an approved host-based security solution. If there is no local antivirus solution installed on the system, this is a finding.
Fix: F-55924r816480_fix
Enable the MRT service: /usr/bin/sudo /bin/launchctl enable system/com.apple.mrt Installing the "Restrictions Policy" will configure the MRT Service to update automatically. If the MRT Service is not being used, install an approved antivirus solution onto the system.
- RMF Control
- IA-5
- Severity
- H
- CCI
- CCI-000185
- Version
- APPL-12-003001
- Vuln IDs
-
- V-252519
- Rule IDs
-
- SV-252519r853301_rule
Checks: C-55975r816369_chk
To view a list of installed certificates, run the following command: /usr/bin/sudo /usr/bin/security dump-keychain | /usr/bin/grep labl | awk -F\" '{ print $4 }' If this list contains unapproved certificates, this is a finding.
Fix: F-55925r816370_fix
Obtain the approved DOD certificates from the appropriate authority. Use Keychain Access from "/Applications/Utilities" to add certificates to the System Keychain.
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000194
- Version
- APPL-12-003007
- Vuln IDs
-
- V-252520
- Rule IDs
-
- SV-252520r816374_rule
Checks: C-55976r816372_chk
To check the currently applied policies for passwords and accounts, use the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep requireAlphanumeric If the return is not "requireAlphanumeric = 1", this is a finding.
Fix: F-55926r816373_fix
This setting is enforced using the "Passcode Policy" configuration profile.
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000199
- Version
- APPL-12-003008
- Vuln IDs
-
- V-252521
- Rule IDs
-
- SV-252521r816377_rule
Checks: C-55977r816375_chk
To check the currently applied policies for passwords and accounts, use the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep maxPINAgeInDays If "maxPINAgeInDays" is set a value greater than "60", this is a finding.
Fix: F-55927r816376_fix
This setting is enforced using the "Passcode Policy" configuration profile.
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000200
- Version
- APPL-12-003009
- Vuln IDs
-
- V-252522
- Rule IDs
-
- SV-252522r816380_rule
Checks: C-55978r816378_chk
To check the currently applied policies for passwords and accounts, use the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep pinHistory If the return is not "pinHistory = 5" or greater, this is a finding.
Fix: F-55928r816379_fix
This setting is enforced using the "Passcode Policy" configuration profile.
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000205
- Version
- APPL-12-003010
- Vuln IDs
-
- V-252523
- Rule IDs
-
- SV-252523r816383_rule
Checks: C-55979r816381_chk
To check the currently applied policies for passwords and accounts, use the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep minLength If the return is null or not "minLength = 15", this is a finding.
Fix: F-55929r816382_fix
This setting is enforced using the "Passcode Policy" configuration profile.
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-001619
- Version
- APPL-12-003011
- Vuln IDs
-
- V-252524
- Rule IDs
-
- SV-252524r816386_rule
Checks: C-55980r816384_chk
Password policy can be set with a configuration profile or the "pwpolicy" utility. If password policy is set with a configuration profile, run the following command to check if the system is configured to require that passwords contain at least one special character: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep minComplexChars If the return is null or not "minComplexChars = 1", this is a finding. Run the following command to check if the system is configured to require that passwords not contain repeated sequential characters or characters in increasing and decreasing sequential order: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep allowSimple If "allowSimple" is not set to "0" or is undefined, this is a finding.
Fix: F-55930r816385_fix
This setting may be enforced using the "Passcode Policy" configuration profile or by a directory service.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- APPL-12-003012
- Vuln IDs
-
- V-252525
- Rule IDs
-
- SV-252525r816389_rule
Checks: C-55981r816387_chk
To check that password hints are disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep RetriesUntilHint If the return is null or is not "RetriesUntilHint = 0", this is a finding.
Fix: F-55931r816388_fix
This setting is enforce using the "Login Window" Policy.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- APPL-12-003013
- Vuln IDs
-
- V-252526
- Rule IDs
-
- SV-252526r816483_rule
Checks: C-55982r816390_chk
For Apple Silicon-based systems, this is Not Applicable. For Intel-based systems, ensure that a firmware password is set, run the following command: $ sudo /usr/sbin/firmwarepasswd -check If the return is not "Password Enabled: Yes", this is a finding.
Fix: F-55932r816482_fix
To set a firmware passcode use the following command. sudo /usr/sbin/firmwarepasswd -setpasswd Note: If firmware password or passcode is forgotten, the only way to reset the forgotten password is through the use of a machine specific binary generated and provided by Apple. Schedule a support call, and provide proof of purchase before the firmware binary will be generated.
- RMF Control
- IA-5
- Severity
- H
- CCI
- CCI-000187
- Version
- APPL-12-003020
- Vuln IDs
-
- V-252527
- Rule IDs
-
- SV-252527r816395_rule
Checks: C-55983r816393_chk
To verify that the system is configured to enforce multi-factor authentication, run the following commands: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep enforceSmartCard If the results do not show "enforceSmartCard=1", this is a finding.
Fix: F-55933r816394_fix
This setting is enforced using the "Smart Card Policy" configuration profile. Note: Before applying the "Smart Card Policy", the supplemental guidance provided with the STIG must be consulted to ensure continued access to the operating system.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- APPL-12-003050
- Vuln IDs
-
- V-252528
- Rule IDs
-
- SV-252528r816485_rule
Checks: C-55984r816396_chk
For systems that are not utilizing smart card authentication, this is Not Applicable. To verify that the "login" command has been configured to require smart card authentication, run the following command: # cat /etc/pam.d/login | grep -i pam_smartcard.so If the text that returns does not include the line, "auth sufficient pam_smartcard.so" at the TOP of the listing, this is a finding.
Fix: F-55934r816484_fix
Make a backup of the PAM LOGIN settings using the following command: sudo cp /etc/pam.d/login /etc/pam.d/login_backup_`date "+%Y-%m-%d_%H:%M"` Replace the contents of "/etc/pam.d/login" with the following: # login: auth account password session auth sufficient pam_smartcard.so auth optional pam_krb5.so use_kcminit auth optional pam_ntlm.so try_first_pass auth optional pam_mount.so try_first_pass auth required pam_opendirectory.so try_first_pass auth required pam_deny.so account required pam_nologin.so account required pam_opendirectory.so password required pam_opendirectory.so session required pam_launchd.so session required pam_uwtmp.so session optional pam_mount.so
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- APPL-12-003051
- Vuln IDs
-
- V-252529
- Rule IDs
-
- SV-252529r816487_rule
Checks: C-55985r816399_chk
For systems that are not utilizing smart card authentication, this is Not Applicable. To verify that the "su" command has been configured to require smart card authentication, run the following command: cat /etc/pam.d/su | grep -i pam_smartcard.so If the text that returns does not include the line, "auth sufficient pam_smartcard.so" at the TOP of the listing, this is a finding.
Fix: F-55935r816486_fix
Make a backup of the PAM SU settings using the following command: cp /etc/pam.d/su /etc/pam.d/su_backup_`date "+%Y-%m-%d_%H:%M"` Replace the contents of "/etc/pam.d/su" with the following: # su: auth account password session auth sufficient pam_smartcard.so auth required pam_rootok.so auth required pam_group.so no_warn group=admin,wheel ruser root_only fail_safe account required pam_permit.so account required pam_opendirectory.so no_check_shell password required pam_opendirectory.so session required pam_launchd.so
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- APPL-12-003052
- Vuln IDs
-
- V-252530
- Rule IDs
-
- SV-252530r816489_rule
Checks: C-55986r816402_chk
For systems that are not utilizing smart card authentication, this is Not Applicable. To verify that the "sudo" command has been configured to require smart card authentication, run the following command: cat /etc/pam.d/sudo | grep -i pam_smartcard.so If the text that returns does not include the line, "auth sufficient pam_smartcard.so" at the TOP of the listing, this is a finding.
Fix: F-55936r816488_fix
Make a backup of the PAM SUDO settings using the following command: cp /etc/pam.d/login /etc/pam.d/sudo_backup_`date "+%Y-%m-%d_%H:%M"` Replace the contents of "/etc/pam.d/sudo" with the following: # sudo: auth account password session auth sufficient pam_smartcard.so #auth required pam_opendirectory.so auth required pam_deny.so account required pam_permit.so password required pam_deny.so session required pam_permit.so
- RMF Control
- SI-11
- Severity
- M
- CCI
- CCI-001314
- Version
- APPL-12-004001
- Vuln IDs
-
- V-252531
- Rule IDs
-
- SV-252531r816491_rule
Checks: C-55987r816405_chk
Some system log files are controlled by "newsyslog" and "aslmanager". The following commands check for log files that exist on the system and print the path to the log with the corresponding ownership. Run them from inside "/var/log". /usr/bin/sudo stat -f '%Su:%Sg:%N' $(/usr/bin/grep -v '^#' /etc/newsyslog.conf | awk '{ print $1 }') 2> /dev/null /usr/bin/sudo stat -f '%Su:%Sg:%N' $(/usr/bin/grep -e '^>' /etc/asl.conf /etc/asl/* | awk '{ print $2 }') 2> /dev/null Each command may return zero or more files. If there are any system log files that are not owned by "root" and group-owned by "wheel" or "admin", this is a finding. Service logs may be owned by the service user account or group.
Fix: F-55937r816490_fix
For any log file that returns an incorrect owner or group value, run the following command: /usr/bin/sudo chown root:wheel [log file] [log file] is the full path to the log file in question. If the file is managed by "newsyslog", find the configuration line in the directory "/etc/newsyslog.d/" or the file "/etc/newsyslog.conf" and ensure that the owner:group column is set to "root:wheel" or the appropriate service user account and group. If the file is managed by "aslmanager", find the configuration line in the directory "/etc/asl/" or the file "/etc/asl.conf" and ensure that "uid" and "gid" options are either not present or are set to a service user account and group respectively.
- RMF Control
- SI-11
- Severity
- M
- CCI
- CCI-001314
- Version
- APPL-12-004002
- Vuln IDs
-
- V-252532
- Rule IDs
-
- SV-252532r816493_rule
Checks: C-55988r816408_chk
The following commands check for log files that exist on the system and print the path to the log with the corresponding permissions. Run them from inside "/var/log": /usr/bin/sudo stat -f '%A:%N' $(/usr/bin/grep -v '^#' /etc/newsyslog.conf | awk '{ print $1 }') 2> /dev/null /usr/bin/sudo stat -f '%A:%N' $(/usr/bin/grep -e '^>' /etc/asl.conf /etc/asl/* | awk '{ print $2 }') 2> /dev/null Each command may return zero or more files. If the permissions on log files are not "640" or less permissive, this is a finding.
Fix: F-55938r816492_fix
For any log file that returns an incorrect permission value, run the following command: /usr/bin/sudo chmod 640 [log file] [log file] is the full path to the log file in question. If the file is managed by "newsyslog", find the configuration line in the directory "/etc/newsyslog.d/" or the file "/etc/newsyslog.conf" and edit the mode column to be "640" or less permissive. If the file is managed by "aslmanager", find the configuration line in the directory "/etc/asl/" or the file "/etc/asl.conf" and add or edit the mode option to be "mode=0640" or less permissive.
- RMF Control
- CM-6
- Severity
- H
- CCI
- CCI-000366
- Version
- APPL-12-004021
- Vuln IDs
-
- V-252533
- Rule IDs
-
- SV-252533r816413_rule
Checks: C-55989r816411_chk
To check if the "tty_tickets" option is set for "/usr/bin/sudo", run the following command: /usr/bin/sudo /usr/bin/grep tty_tickets /etc/sudoers If there is no result, this is a finding.
Fix: F-55939r816412_fix
Edit the "/etc/sudoers" file to contain the line: Defaults tty_tickets This line can be placed in the defaults section or at the end of the file.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- APPL-12-005001
- Vuln IDs
-
- V-252534
- Rule IDs
-
- SV-252534r853302_rule
Checks: C-55990r816414_chk
System Integrity Protection is a security feature, enabled by default, that protects certain system processes and files from being modified or tampered with. Check the current status of "System Integrity Protection" with the following command: /usr/bin/csrutil status If the result does not show the following, this is a finding. System Integrity Protection status: enabled
Fix: F-55940r816415_fix
To re-enable "System Integrity Protection", boot the affected system into "Recovery" mode, launch "Terminal" from the "Utilities" menu, and run the following command: /usr/bin/csrutil enable
- RMF Control
- SC-28
- Severity
- M
- CCI
- CCI-001199
- Version
- APPL-12-005020
- Vuln IDs
-
- V-252535
- Rule IDs
-
- SV-252535r853304_rule
Checks: C-55991r816417_chk
Verify that "FileVault 2" is enabled by running the following command: /usr/bin/fdesetup status If "FileVault" is "Off" and the device is a mobile device or the organization has determined that the drive must encrypt data at rest, this is a finding.
Fix: F-55941r853303_fix
Open System Preferences >> Security and Privacy and navigate to the "FileVault" tab. Use this panel to configure full-disk encryption. Alternately, from the command line, run the following command to enable "FileVault": /usr/bin/sudo /usr/bin/fdesetup enable After "FileVault" is initially set up, additional users can be added.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- APPL-12-005050
- Vuln IDs
-
- V-252536
- Rule IDs
-
- SV-252536r877367_rule
Checks: C-55992r877366_chk
Verify that the built-in firewall is enabled: # /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep 'EnableFirewall\|EnableStealthMode' If the return is not "EnableFirewall = 1;" and "EnableStealthMode = 1;" this is a finding. If the built-in firewall is not enabled, ask the System Administrator if another application firewall is installed and enabled. If no application firewall is installed and enabled, this is a finding.
Fix: F-55942r816421_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- APPL-12-005051
- Vuln IDs
-
- V-252537
- Rule IDs
-
- SV-252537r877369_rule
Checks: C-55993r877368_chk
Verify the system is configured to disable external writeable media devices: $ /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/egrep -A 3 'blankbd|blankcd|blankdvd|dvdram|harddisk-external' “blankbd" = ( deny, eject ); “blankcd" = ( deny, eject ); “blankdvd" = ( deny, eject ); “dvdram" = ( deny, eject ); “harddisk-external" = ( deny, eject ); If the result does not match the output above and the external writeable media devices have not been approved by the Authorizing Official, this is a finding.
Fix: F-55943r816424_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-6
- Severity
- L
- CCI
- CCI-000366
- Version
- APPL-12-005052
- Vuln IDs
-
- V-252538
- Rule IDs
-
- SV-252538r877377_rule
Checks: C-55994r816426_chk
To check if the logon window is configured to prompt for user name and password, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep SHOWFULLNAME If there is no result, or "SHOWFULLNAME" is not set to "1", this is a finding.
Fix: F-55944r816427_fix
This setting is enforced using the "Login Window Policy" configuration profile.
- RMF Control
- CM-6
- Severity
- L
- CCI
- CCI-000366
- Version
- APPL-12-005053
- Vuln IDs
-
- V-252539
- Rule IDs
-
- SV-252539r816431_rule
Checks: C-55995r816429_chk
Verify the system is configured to disable writing to external optical media devices: $ /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep 'BurnSupport' BurnSupport = off; If the command does not return a line, this is a finding. If 'BurnSupport' is set to a value other than 'off' and is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding.
Fix: F-55945r816430_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- APPL-12-005054
- Vuln IDs
-
- V-252540
- Rule IDs
-
- SV-252540r816434_rule
Checks: C-55996r816432_chk
To check if TouchID setup prompts are disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep SkipTouchIDSetup If the return is not "SkipTouchIDSetup = 1", this is a finding.
Fix: F-55946r816433_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- L
- CCI
- CCI-000381
- Version
- APPL-12-005055
- Vuln IDs
-
- V-252541
- Rule IDs
-
- SV-252541r816983_rule
Checks: C-55997r816435_chk
To check if Screentime Setup is disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep SkipScreenTime If the return is not "SkipScreenTime = 1", this is a finding.
Fix: F-55947r816436_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- APPL-12-005056
- Vuln IDs
-
- V-252542
- Rule IDs
-
- SV-252542r832917_rule
Checks: C-55998r832916_chk
To check if SkipUnlockWithWatch is disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep SkipUnlockWithWatch If the return is not "SkipUnlockWithWatch = 1", this is a finding.
Fix: F-55948r816439_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- L
- CCI
- CCI-000381
- Version
- APPL-12-005058
- Vuln IDs
-
- V-252543
- Rule IDs
-
- SV-252543r816443_rule
Checks: C-55999r816441_chk
To check if allowActivityContinuation is disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep allowActivityContinuation If the return is not "allowActivityContinuation = 0", this is a finding.
Fix: F-55949r816442_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- APPL-12-005060
- Vuln IDs
-
- V-252544
- Rule IDs
-
- SV-252544r816446_rule
Checks: C-56000r816444_chk
To check if allowPasswordProximityRequests is disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep allowPasswordProximityRequests If the return is not "allowPasswordProximityRequests = 0", this is a finding.
Fix: F-55950r816445_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- APPL-12-005061
- Vuln IDs
-
- V-252545
- Rule IDs
-
- SV-252545r816449_rule
Checks: C-56001r816447_chk
To check if allowEraseContentAndSettings is disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep allowEraseContentAndSettings If the return is not "allowEraseContentAndSettings = 0", this is a finding.
Fix: F-55951r816448_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- IA-3
- Severity
- L
- CCI
- CCI-001967
- Version
- APPL-12-002062
- Vuln IDs
-
- V-252699
- Rule IDs
-
- SV-252699r916433_rule
Checks: C-56155r819040_chk
If Bluetooth connectivity is required to facilitate use of approved external devices, this is not applicable. To check if Bluetooth is disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep DisableBluetooth If the return is null or is not "DisableBluetooth = 1", this is a finding. To check if the system is configured to disable access to the Bluetooth preference pane and prevent it from being displayed, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -A 6 -E 'DisabledPreferencePanes|HiddenPreferencePanes' If the return is not two arrays (HiddenPreferencePanes and DisabledPreferencePanes) each containing: “com.apple.preferences.Bluetooth”, this is a finding.
Fix: F-56105r819041_fix
This setting is enforced using the "Custom Policy" and "Restrictions Policy" configuration profiles.
- RMF Control
- AC-6
- Severity
- M
- CCI
- CCI-002235
- Version
- APPL-12-002069
- Vuln IDs
-
- V-257772
- Rule IDs
-
- SV-257772r922850_rule
Checks: C-61513r922848_chk
To check that macOS is configured to require authentication to all system preference panes, use the following commands: /usr/bin/sudo /usr/bin/security authorizationdb read system.preferences | grep -A1 shared If what is returned does not include the following, this is a finding. <key>shared</key> <false/>
Fix: F-61437r922849_fix
To ensure that authentication is required to access all system level preference panes use the following procedure: Copy the authorization database to a file using the following command: /usr/bin/sudo /usr/bin/security authorizationdb read system.preferences > ~/Desktop/authdb.txt edit the file to change: <key>shared</key> <true/> To read: <key>shared</key> <false/> Reload the authorization database with the following command: /usr/bin/sudo /usr/bin/security authorizationdb write system.preferences < ~/Desktop/authdb.txt
- RMF Control
- AC-17
- Severity
- H
- CCI
- CCI-000068
- Version
- APPL-12-000057
- Vuln IDs
-
- V-257773
- Rule IDs
-
- SV-257773r922864_rule
Checks: C-61514r922862_chk
Verify the macOS system is configured to use approved SSH ciphers within the SSH client configuration with the following command: /usr/bin/sudo /usr/bin/grep -ir "ciphers" /etc/ssh/ssh_config* /etc/ssh/ssh_config.d/fips_ssh_config:Ciphers aes128-gcm@openssh.com If any ciphers other than "aes128-gcm@openssh.com" are listed, or the "ciphers" keyword is missing, this is a finding.
Fix: F-61438r922863_fix
Configure the macOS system to use approved SSH ciphers by creating a plain text file in the /private/etc/ssh/ssh_config.d/ directory containing the following: Ciphers aes128-gcm@openssh.com The SSH service must be restarted for changes to take effect.
- RMF Control
- AC-17
- Severity
- H
- CCI
- CCI-000068
- Version
- APPL-12-000058
- Vuln IDs
-
- V-257774
- Rule IDs
-
- SV-257774r922867_rule
Checks: C-61515r922865_chk
Verify the macOS system is configured to use approved SSH MACs within the SSH client configuration with the following command: /usr/bin/sudo /usr/bin/grep -ir "macs" /etc/ssh/ssh_config* /etc/ssh/ssh_config.d/fips_ssh_config:Macs hmac-sha2-256 If any hashes other than "hmac-sha2-256" are listed, or the "macs" keyword is missing, this is a finding.
Fix: F-61439r922866_fix
Configure the macOS system to use approved SSH MACs by creating a plain text file in the /private/etc/ssh/ssh_config.d/ directory containing the following: MACs hmac-sha2-256 The SSH service must be restarted for changes to take effect.
- RMF Control
- AC-17
- Severity
- H
- CCI
- CCI-000068
- Version
- APPL-12-000059
- Vuln IDs
-
- V-257775
- Rule IDs
-
- SV-257775r922870_rule
Checks: C-61516r922868_chk
Verify the macOS system is configured to use approved SSH Key Exchange Algorithms within the SSH client configuration with the following command: /usr/bin/sudo /usr/bin/grep -ir "kexalgorithms" /etc/ssh/ssh_config* /etc/ssh/ssh_config.d/fips_ssh_config:KexAlgorithms ecdh-sha2-nistp256 If any algorithms other than "ecdh-sha2-nistp256" are listed, or the "kexalgorithms" keyword is missing, this is a finding.
Fix: F-61440r922869_fix
Configure the macOS system to use approved SSH Key Exchange Algorithms by creating a plain text file in the /private/etc/ssh/ssh_config.d/ directory containing the following: KexAlgorithms ecdh-sha2-nistp256 The SSH service must be restarted for changes to take effect.