Apple OS X 10.14 (Mojave) Security Technical Implementation Guide
Pick two releases to diff their requirements.
Open a previous version of this STIG.
Digest of Updates −1 ✎ 1
Comparison against the immediately-prior release (V2R2). 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.
Removed rules 1
- V-209603 Medium The macOS system must be configured so that end users cannot override Gatekeeper settings.
Content changes 1
- V-209602 Medium descriptioncheck The macOS system must allow only applications that have a valid digital signature to run.
- RMF Control
- AC-11
- Severity
- M
- CCI
- CCI-000056
- Version
- AOSX-14-000001
- Vuln IDs
-
- V-209521
- V-95787
- Rule IDs
-
- SV-209521r610285_rule
- SV-104925
Checks: C-9772r282045_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 = 0;" If there is no result, this is a finding.
Fix: F-9772r282046_fix
This setting is enforced using the “Restrictions Policy" configuration profile.
- RMF Control
- AC-11
- Severity
- M
- CCI
- CCI-000056
- Version
- AOSX-14-000002
- Vuln IDs
-
- V-209522
- V-95789
- Rule IDs
-
- SV-209522r610285_rule
- SV-104927
Checks: C-9773r282048_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-9773r282049_fix
This setting is enforced using the "Login Window Policy" configuration profile.
- RMF Control
- AC-11
- Severity
- M
- CCI
- CCI-000056
- Version
- AOSX-14-000003
- Vuln IDs
-
- V-209523
- V-95791
- Rule IDs
-
- SV-209523r610285_rule
- SV-104929
Checks: C-9774r282051_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.0" or less, this is a finding.
Fix: F-9774r282052_fix
This setting is enforced using the "Login Window Policy" configuration profile.
- RMF Control
- AC-11
- Severity
- M
- CCI
- CCI-000057
- Version
- AOSX-14-000004
- Vuln IDs
-
- V-209524
- V-95793
- Rule IDs
-
- SV-209524r610285_rule
- SV-104931
Checks: C-9775r282054_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 idleTime If there is no result, or if "idleTime" is not set to "900" seconds or less, this is a finding.
Fix: F-9775r282055_fix
This setting is enforced using the "Login Window Policy" configuration profile.
- RMF Control
- AC-11
- Severity
- M
- CCI
- CCI-000058
- Version
- AOSX-14-000005
- Vuln IDs
-
- V-209525
- V-95795
- Rule IDs
-
- SV-209525r610285_rule
- SV-104933
Checks: C-9776r282057_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-9776r282058_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
- AOSX-14-000006
- Vuln IDs
-
- V-209526
- V-95797
- Rule IDs
-
- SV-209526r610285_rule
- SV-104935
Checks: C-9777r282060_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 modulePath If there is no result or defined "modulePath", this is a finding.
Fix: F-9777r282061_fix
This setting is enforced using the "Login Window Policy" configuration profile.
- RMF Control
- AC-11
- Severity
- M
- CCI
- CCI-000060
- Version
- AOSX-14-000007
- Vuln IDs
-
- V-209527
- V-95799
- Rule IDs
-
- SV-209527r610285_rule
- SV-104937
Checks: C-9778r282063_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 the following, this is a finding: "wvous-bl-corner = 0 wvous-br-corner = 0; wvous-tl-corner = 0; wvous-tr-corner = 0;"
Fix: F-9778r282064_fix
This setting is enforced using the "Custom Policy" configuration profile.
- RMF Control
- AC-18
- Severity
- M
- CCI
- CCI-001443
- Version
- AOSX-14-000008
- Vuln IDs
-
- V-209528
- V-95801
- Rule IDs
-
- SV-209528r610285_rule
- SV-104939
Checks: C-9779r282066_chk
If the system requires Wi-Fi to connect to an authorized network, this is Not Applicable. To check if the Wi-Fi network device is disabled, run the following command: /usr/bin/sudo /usr/sbin/networksetup -listallnetworkservices A disabled device will have an asterisk in front of its name. If the Wi-Fi device is missing this asterisk, this is a finding.
Fix: F-9779r282067_fix
To disable the Wi-Fi network device, run the following command: /usr/bin/sudo /usr/sbin/networksetup -setnetworkserviceenabled "Wi-Fi" off
- RMF Control
- AC-17
- Severity
- H
- CCI
- CCI-001453
- Version
- AOSX-14-000011
- Vuln IDs
-
- V-209530
- V-95377
- Rule IDs
-
- SV-209530r610285_rule
- SV-104709
Checks: C-9781r466330_chk
To verify that the installed version of SSH is correct, run the following command: ssh -V If the string that is returned does not include "OpenSSH_7.9p1" or greater, this is a finding. To check if the "SSHD" service is enabled, use the following commands: /usr/bin/sudo launchctl print-disabled system | grep sshd If the results do not show "com.openssh.sshd => false", this is a finding. To check that "SSHD" is currently running, use the following command: /usr/bin/sudo launchctl print system/com.openssh.sshd If the result is the following, "Could not find service "com.openssh.sshd" in domain for system", this is a finding.
Fix: F-9781r466331_fix
To update SSHD to the minimum required version, run Software Update to update to the latest version of macOS. To enable the SSHD service, run the following command: /usr/bin/sudo /bin/launchctl enable system/com.openssh.sshd The system may need to be restarted for the update to take effect.
- RMF Control
- AC-2
- Severity
- M
- CCI
- CCI-000016
- Version
- AOSX-14-000012
- Vuln IDs
-
- V-209531
- V-95805
- Rule IDs
-
- SV-209531r610285_rule
- SV-104943
Checks: C-9782r466252_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 accounts defined on the system, this is Not Applicable. To check if the password policy is configured to disable a temporary 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-9782r466253_fix
This setting may be enforced using local policy or by a directory service. To set local policy to disable a temporary 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
- AC-2
- Severity
- M
- CCI
- CCI-001682
- Version
- AOSX-14-000013
- Vuln IDs
-
- V-209532
- V-95807
- Rule IDs
-
- SV-209532r610285_rule
- SV-104945
Checks: C-9783r466282_chk
If an emergency account has been created on the system, check the expiration settings of a local account using the following command, replacing "username" with the correct value: /usr/bin/sudo /usr/bin/pwpolicy -u username getaccountpolicies | tail -n +2 If there is output, verify that the account policies do not restrict the ability to log in after a certain date or amount of time. If they do, this is a finding.
Fix: F-9783r466283_fix
To remove all "pwpolicy" settings for an emergency account, run the following command, replacing "username" with the correct value: /usr/bin/sudo /usr/bin/pwpolicy -u username clearaccountpolicies Otherwise, to change the passcode policy for an emergency account and only remove some policy sections, run the following command to save a copy of the current policy file for the specified username: /usr/bin/sudo /usr/bin/pwpolicy -u username getaccountpolicies | tail -n +2 > pwpolicy.plist Open the resulting passcode policy file in a text editor and remove any policyContent sections that would restrict the ability to log in after a certain date or amount of time. To remove the section cleanly, remove the entire text that begins with <dict>, contains <key>policyContent<'/key>, and ends with </dict>. After saving the file and exiting to the command prompt, run the following command to load the new policy file: /usr/bin/sudo /usr/bin/pwpolicy -u username setaccountpolicies pwpolicy.plist
- RMF Control
- AU-8
- Severity
- M
- CCI
- CCI-002046
- Version
- AOSX-14-000014
- Vuln IDs
-
- V-209533
- V-95809
- Rule IDs
-
- SV-209533r610285_rule
- SV-104947
Checks: C-9784r466306_chk
The TIMED (NTP replacement in Mojave) 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: 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-9784r466307_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
- AOSX-14-000015
- Vuln IDs
-
- V-209534
- V-95811
- Rule IDs
-
- SV-209534r610285_rule
- SV-104949
Checks: C-9785r282084_chk
Verify that there is an approved HBSS solution installed on the system. If there is not an approved HBSS solution installed, this is a finding. Verify that all installed components of the HBSS 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-9785r282085_fix
Install an approved HBSS 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
- AOSX-14-000016
- Vuln IDs
-
- V-209535
- V-95385
- Rule IDs
-
- SV-209535r610285_rule
- SV-104711
Checks: C-9786r282087_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, ask the System Administrator (SA) or Information System Security Officer (ISSO) or run the following command: /usr/bin/sudo dscl localhost -list . | /usr/bin/grep -vE '(Contact | Search | Local)' If nothing is returned, or if the system is not integrated into a directory service infrastructure, this is a finding.
Fix: F-9786r282088_fix
Integrate the system into an existing directory services infrastructure.
- RMF Control
- AC-7
- Severity
- M
- CCI
- CCI-000044
- Version
- AOSX-14-000020
- Vuln IDs
-
- V-209536
- V-95813
- Rule IDs
-
- SV-209536r610285_rule
- SV-104951
Checks: C-9787r282090_chk
The password policy is set with a configuration profile. Run the following command to check if the system has the correct setting for the number of permitted failed logon attempts: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep maxFailedAttempts If the return is null, or not, “maxFailedAttempts = 3”, this is a finding.
Fix: F-9787r282091_fix
This setting is enforced using the “Passcode Policy" configuration profile.
- RMF Control
- AC-7
- Severity
- M
- CCI
- CCI-002238
- Version
- AOSX-14-000021
- Vuln IDs
-
- V-209537
- V-95815
- Rule IDs
-
- SV-209537r610285_rule
- SV-104953
Checks: C-9788r466297_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 has the correct setting for the logon reset timer: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep minutesUntilFailedLoginReset If the return is null or not "minutesUntilFailedLoginReset = 15", this is a finding. If password policy is set with the "pwpolicy" utility, the variable names may vary depending on how the policy was set. To check if the password policy is configured to disable an account for 15 minutes after 3 unsuccessful logon attempts, run the following command to output the password policy to the screen: /usr/bin/sudo /usr/bin/pwpolicy getaccountpolicies Look for the line "<key>policyCategoryAuthentication</key>". If this does not exist, and password policy is not controlled by a directory service, this is a finding. In the array that follows, there should be one or more <dict> sections that describe policy checks. One should contain a <string> that allows users to log on if "policyAttributeFailedAuthentications" is less than "policyAttributeMaximumFailedAuthentications". Under policyParameters, "policyAttributeMaximumFailedAuthentications" should be set to "3". If "policyAttributeMaximumFailedAuthentications" is not set to "3", this is a finding. In the same check or in another <dict> section, there should be a <string> that allows users to log on if the "policyAttributeCurrentTime" is greater than the result of adding "15" minutes (900 seconds) to "policyAttributeLastFailedAuthenticationTime". 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, this is a finding.
Fix: F-9788r466298_fix
This setting may be enforced using the "Passcode Policy" configuration profile or by a directory service. The following two lines within the configuration enforce lockout expiration to "15" minutes: <key>autoEnableInSeconds</key> <integer>900</integer> To set the passcode policy without a configuration profile, run the following command to save a copy of the current "pwpolicy" account policy file: /usr/bin/sudo /usr/bin/pwpolicy getaccountpolicies | tail -n +2 > pwpolicy.plist Open the generated file in a text editor and ensure it contains the following text after the opening <dict> tag and before the closing </dict> tag. Replace <dict/> first with <dict></dict> if necessary. <key>policyCategoryAuthentication</key> <array> <dict> <key>policyContent</key> <string>(policyAttributeFailedAuthentications < policyAttributeMaximumFailedAuthentications) OR (policyAttributeCurrentTime > (policyAttributeLastFailedAuthenticationTime + autoEnableInSeconds))</string> <key>policyIdentifier</key> <string>Authentication Lockout</string> <key>policyParameters</key> <dict> <key>autoEnableInSeconds</key> <integer>900</integer> <key>policyAttributeMaximumFailedAuthentications</key> <integer>3</integer> </dict> </dict> </array> If the line "<key>policyCategoryAuthentication</key>" already exists, the following text should be used instead and inserted after the first <array> tag that follows it: <dict> <key>policyContent</key> <string>(policyAttributeFailedAuthentications < policyAttributeMaximumFailedAuthentications) OR (policyAttributeCurrentTime > (policyAttributeLastFailedAuthenticationTime + autoEnableInSeconds))</string> <key>policyIdentifier</key> <string>Authentication Lockout</string> <key>policyParameters</key> <dict> <key>autoEnableInSeconds</key> <integer>900</integer> <key>policyAttributeMaximumFailedAuthentications</key> <integer>3</integer> </dict> </dict> After saving the file and exiting to the command prompt, run the following command to load the new policy file: /usr/bin/sudo /usr/bin/pwpolicy setaccountpolicies pwpolicy.plist Note: Updates to passcode restrictions must be thoroughly evaluated in a test environment. Mistakes in configuration may block password change and local user creation operations, as well as lock out all local users, including administrators.
- RMF Control
- AC-7
- Severity
- M
- CCI
- CCI-002238
- Version
- AOSX-14-000022
- Vuln IDs
-
- V-209538
- V-95393
- Rule IDs
-
- SV-209538r610285_rule
- SV-104713
Checks: C-9789r282096_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 has the correct setting for the number of permitted failed logon attempts and the logon reset timer: /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. If password policy is set with the "pwpolicy" utility, the variable names may vary depending on how the policy was set. To check if the password policy is configured to disable an account for 15 minutes after 3 unsuccessful logon attempts, run the following command to output the password policy to the screen: /usr/bin/sudo /usr/bin/pwpolicy getaccountpolicies Look for the line "<key>policyCategoryAuthentication</key>". If this does not exist, and password policy is not controlled by a directory service, this is a finding. In the array that follows, there should be one or more <dict> sections that describe policy checks. One should contain a <string> that allows users to log on if "policyAttributeFailedAuthentications" is less than "policyAttributeMaximumFailedAuthentications". Under policyParameters, "policyAttributeMaximumFailedAuthentications" should be set to "3". If "policyAttributeMaximumFailedAuthentications" is not set to "3", this is a finding. In the same check or in another <dict> section, there should be a <string> that allows users to log on if the "policyAttributeCurrentTime" is greater than the result of adding "15" minutes (900 seconds) to "policyAttributeLastFailedAuthenticationTime". 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, this is a finding.
Fix: F-9789r466345_fix
This setting may be enforced using the "Passcode Policy" configuration profile or by a directory service. To set the passcode policy without a configuration profile, run the following command to save a copy of the current "pwpolicy" account policy file: /usr/bin/sudo /usr/bin/pwpolicy getaccountpolicies | tail -n +2 > pwpolicy.plist Open the generated file in a text editor and ensure it contains the following text after the opening <dict> tag and before the closing </dict> tag. Replace <dict/> first with <dict></dict> if necessary. <key>policyCategoryAuthentication</key> <array> <dict> <key>policyContent</key> <string>(policyAttributeFailedAuthentications < policyAttributeMaximumFailedAuthentications) OR (policyAttributeCurrentTime > (policyAttributeLastFailedAuthenticationTime + autoEnableInSeconds))</string> <key>policyIdentifier</key> <string>Authentication Lockout</string> <key>policyParameters</key> <dict> <key>autoEnableInSeconds</key> <integer>900</integer> <key>policyAttributeMaximumFailedAuthentications</key> <integer>3</integer> </dict> </dict> </array> If the line "<key>policyCategoryAuthentication</key>" already exists, the following text should be used instead and inserted after the first <array> tag that follows it: <dict> <key>policyContent</key> <string>(policyAttributeFailedAuthentications < policyAttributeMaximumFailedAuthentications) OR (policyAttributeCurrentTime > (policyAttributeLastFailedAuthenticationTime + autoEnableInSeconds))</string> <key>policyIdentifier</key> <string>Authentication Lockout</string> <key>policyParameters</key> <dict> <key>autoEnableInSeconds</key> <integer>900</integer> <key>policyAttributeMaximumFailedAuthentications</key> <integer>3</integer> </dict> </dict> After saving the file and exiting to the command prompt, run the following command to load the new policy file: /usr/bin/sudo /usr/bin/pwpolicy setaccountpolicies pwpolicy.plist Note: Updates to passcode restrictions must be thoroughly evaluated in a test environment. Mistakes in configuration or bugs in OS X may block password change and local user creation operations, as well as lock out all local users, including administrators.
- RMF Control
- AC-8
- Severity
- M
- CCI
- CCI-000048
- Version
- AOSX-14-000023
- Vuln IDs
-
- V-209539
- V-95817
- Rule IDs
-
- SV-209539r610285_rule
- SV-104955
Checks: C-9790r282099_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-9790r282100_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
- AOSX-14-000024
- Vuln IDs
-
- V-209540
- V-95819
- Rule IDs
-
- SV-209540r610285_rule
- SV-104957
Checks: C-9791r282102_chk
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 Banner /etc/ssh/sshd_config If the sshd Banner configuration option does not point to "/etc/banner", this is a finding.
Fix: F-9791r282103_fix
For systems that allow remote access through SSH, modify the "/etc/ssh/sshd_config" file to add or update the following line: Banner /etc/banner
- RMF Control
- AC-8
- Severity
- M
- CCI
- CCI-000050
- Version
- AOSX-14-000025
- Vuln IDs
-
- V-209541
- V-95821
- Rule IDs
-
- SV-209541r610285_rule
- SV-104959
Checks: C-9792r282105_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-9792r282106_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
- AOSX-14-000030
- Vuln IDs
-
- V-209542
- V-95823
- Rule IDs
-
- SV-209542r610285_rule
- SV-104961
Checks: C-9793r282108_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-9793r282109_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
- AOSX-14-000031
- Vuln IDs
-
- V-209543
- V-95825
- Rule IDs
-
- SV-209543r610285_rule
- SV-104963
Checks: C-9794r282111_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-9794r282112_fix
For any log folder that contains ACLs, run the following command: /usr/bin/sudo chmod -N [audit log folder]
- RMF Control
- MA-4
- Severity
- M
- CCI
- CCI-002890
- Version
- AOSX-14-000040
- Vuln IDs
-
- V-209544
- V-95405
- Rule IDs
-
- SV-209544r610285_rule
- SV-104715
Checks: C-9795r466312_chk
To verify that the installed version of SSH is correct, run the following command: ssh -V If the string that is returned does not include "OpenSSH_7.9p1" or greater, this is a finding. To check if the "SSHD" service is enabled, use the following commands: /usr/bin/sudo launchctl print-disabled system | grep sshd If the results do not show "com.openssh.sshd => false", this is a finding. To check that "SSHD" is currently running, use the following command: /usr/bin/sudo launchctl print system/com.openssh.sshd If the result is the following, "Could not find service "com.openssh.sshd" in domain for system", this is a finding.
Fix: F-9795r466313_fix
To update SSHD to the minimum required version, run Software Update to update to the latest version of macOS. To enable the SSHD service, run the following command: /usr/bin/sudo /bin/launchctl enable system/com.openssh.sshd The system may need to be restarted for the update to take effect.
- RMF Control
- AC-10
- Severity
- M
- CCI
- CCI-000054
- Version
- AOSX-14-000050
- Vuln IDs
-
- V-209545
- V-95407
- Rule IDs
-
- SV-209545r610285_rule
- SV-104717
Checks: C-9796r282117_chk
To verify that SSHD is limited to 10 sessions, use the following command: /bin/cat /etc/ssh/sshd_config | grep MaxSessions The command must return "MaxSessions 10". If it returns null, or a commented value, or the value is greater than "10", this is a finding.
Fix: F-9796r282118_fix
To configure SSHD to limit the number of sessions, use the following command: /usr/bin/sudo /usr/bin/sed -i.bak 's/^[\#]*MaxSessions.*/MaxSessions 10/' /etc/ssh/sshd_config
- RMF Control
- SC-10
- Severity
- M
- CCI
- CCI-001133
- Version
- AOSX-14-000051
- Vuln IDs
-
- V-209546
- V-95827
- Rule IDs
-
- SV-209546r610285_rule
- SV-104965
Checks: C-9797r282120_chk
The SSH daemon "ClientAliveInterval" option must be set correctly. To check the idle timeout setting for SSH sessions, run the following: /usr/bin/sudo /usr/bin/grep ^ClientAliveInterval /etc/ssh/sshd_config If the setting is not "900" or less, this is a finding.
Fix: F-9797r282121_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
- AOSX-14-000052
- Vuln IDs
-
- V-209547
- V-95829
- Rule IDs
-
- SV-209547r610285_rule
- SV-104967
Checks: C-9798r282123_chk
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/sudo /usr/bin/grep ^ClientAliveCountMax /etc/ssh/sshd_config If the setting is not "ClientAliveCountMax 0", this is a finding.
Fix: F-9798r282124_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 0/' /etc/ssh/sshd_config
- RMF Control
- SC-10
- Severity
- M
- CCI
- CCI-001133
- Version
- AOSX-14-000053
- Vuln IDs
-
- V-209548
- V-95831
- Rule IDs
-
- SV-209548r610285_rule
- SV-104969
Checks: C-9799r282126_chk
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/sudo /usr/bin/grep ^LoginGraceTime /etc/ssh/sshd_config If the value is not set to "30" or less, this is a finding.
Fix: F-9799r282127_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
- AC-2
- Severity
- M
- CCI
- CCI-001403
- Version
- AOSX-14-001001
- Vuln IDs
-
- V-209549
- V-95833
- Rule IDs
-
- SV-209549r610285_rule
- SV-104971
Checks: C-9800r466255_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-9800r466256_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
- AC-17
- Severity
- M
- CCI
- CCI-000067
- Version
- AOSX-14-001002
- Vuln IDs
-
- V-209550
- V-95835
- Rule IDs
-
- SV-209550r610285_rule
- SV-104973
Checks: C-9801r466258_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-9801r466259_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-14
- Severity
- M
- CCI
- CCI-001464
- Version
- AOSX-14-001003
- Vuln IDs
-
- V-209551
- V-95837
- Rule IDs
-
- SV-209551r610285_rule
- SV-104975
Checks: C-9802r466261_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-9802r466262_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
- AOSX-14-001010
- Vuln IDs
-
- V-209552
- V-95839
- Rule IDs
-
- SV-209552r610285_rule
- SV-104977
Checks: C-9803r466264_chk
To view the setting for the audit control system, run 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-9803r466265_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
- AOSX-14-001012
- Vuln IDs
-
- V-209553
- V-95841
- Rule IDs
-
- SV-209553r610285_rule
- SV-104979
Checks: C-9804r282141_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-9804r282142_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
- AOSX-14-001013
- Vuln IDs
-
- V-209554
- V-95843
- Rule IDs
-
- SV-209554r610285_rule
- SV-104981
Checks: C-9805r282144_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-9805r282145_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
- AOSX-14-001014
- Vuln IDs
-
- V-209555
- V-95845
- Rule IDs
-
- SV-209555r610285_rule
- SV-104983
Checks: C-9806r282147_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-9806r282148_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
- AOSX-14-001015
- Vuln IDs
-
- V-209556
- V-95847
- Rule IDs
-
- SV-209556r610285_rule
- SV-104985
Checks: C-9807r282150_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-9807r282151_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
- AOSX-14-001016
- Vuln IDs
-
- V-209557
- V-95849
- Rule IDs
-
- SV-209557r610285_rule
- SV-104987
Checks: C-9808r282153_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-9808r282154_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
- AOSX-14-001017
- Vuln IDs
-
- V-209558
- V-95851
- Rule IDs
-
- SV-209558r610285_rule
- SV-104989
Checks: C-9809r282156_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-9809r282157_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
- AOSX-14-001020
- Vuln IDs
-
- V-209559
- V-95853
- Rule IDs
-
- SV-209559r610285_rule
- SV-104991
Checks: C-9810r466267_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. If "fm", "-fr", and "-fw" are not listed in the result of the check, this is a finding.
Fix: F-9810r466268_fix
To set the audit flags to the recommended setting, run the following command to add the flags "fm", "-fr", and "-fw" all at once: /usr/bin/sudo /usr/bin/sed -i.bak '/^flags/ s/$/,fm,-fr,-fw/' /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
- AOSX-14-001029
- Vuln IDs
-
- V-209560
- V-95437
- Rule IDs
-
- SV-209560r610285_rule
- SV-104719
Checks: C-9811r466300_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-9811r466301_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
- AOSX-14-001030
- Vuln IDs
-
- V-209561
- V-95855
- Rule IDs
-
- SV-209561r610285_rule
- SV-104993
Checks: C-9812r466303_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-9812r466304_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
- AOSX-14-001031
- Vuln IDs
-
- V-209562
- V-95857
- Rule IDs
-
- SV-209562r610285_rule
- SV-104995
Checks: C-9813r282168_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-9813r282169_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
- AOSX-14-001044
- Vuln IDs
-
- V-209563
- V-95859
- Rule IDs
-
- SV-209563r610285_rule
- SV-104997
Checks: C-9814r466315_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-9814r466316_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-2
- Severity
- M
- CCI
- CCI-001953
- Version
- AOSX-14-001060
- Vuln IDs
-
- V-209564
- V-95861
- Rule IDs
-
- SV-209564r610285_rule
- SV-104999
Checks: C-9815r466309_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 = 0", is not equal to (0) or greater, this is a finding.
Fix: F-9815r466310_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
- AOSX-14-001100
- Vuln IDs
-
- V-209565
- V-95863
- Rule IDs
-
- SV-209565r610285_rule
- SV-105001
Checks: C-9816r282177_chk
To check if SSH has root logins enabled, run the following command: /usr/bin/sudo /usr/bin/grep ^PermitRootLogin /etc/ssh/sshd_config If there is no result, or the result is set to "yes", this is a finding.
Fix: F-9816r282178_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
- AOSX-14-002001
- Vuln IDs
-
- V-209566
- V-95865
- Rule IDs
-
- SV-209566r610285_rule
- SV-105003
Checks: C-9817r282180_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: /usr/bin/sudo /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-9817r282181_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
- AOSX-14-002002
- Vuln IDs
-
- V-209567
- V-95867
- Rule IDs
-
- SV-209567r610285_rule
- SV-105005
Checks: C-9818r282183_chk
To check if the Apple File (AFP) Sharing service is disabled, use the following command: /usr/bin/sudo /bin/launchctl print-disabled system | /usr/bin/grep com.apple.AppleFileServer If the results do not show the following, this is a finding: "com.apple.AppleFileServer" => true
Fix: F-9818r282184_fix
To disable the Apple File (AFP) Sharing service, run the following command: /usr/bin/sudo /bin/launchctl disable system/com.apple.AppleFileServer The system may need to be restarted for the update to take effect.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AOSX-14-002003
- Vuln IDs
-
- V-209568
- V-95869
- Rule IDs
-
- SV-209568r610285_rule
- SV-105007
Checks: C-9819r282186_chk
If the NFS daemon is required, this is Not Applicable. To check if the NFS daemon is disabled, use the following command: /usr/bin/sudo /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-9819r282187_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
- AOSX-14-002004
- Vuln IDs
-
- V-209569
- V-95871
- Rule IDs
-
- SV-209569r610285_rule
- SV-105009
Checks: C-9820r282189_chk
If Location Services are authorized by the Authorizing Official, this is Not Applicable. Verify that Location Services are disabled: The setting is found in System Preferences >> Security & Privacy >> Privacy >> Location Services. If the box that says "Enable Location Services" is checked, this is a finding.
Fix: F-9820r282190_fix
Disable the Location Services: The setting is found in System Preferences >> Security & Privacy >> Privacy >> Location Services. Uncheck the box labeled "Enable Location Services".
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AOSX-14-002005
- Vuln IDs
-
- V-209570
- V-95873
- Rule IDs
-
- SV-209570r610285_rule
- SV-105011
Checks: C-9821r282192_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-9821r282193_fix
This setting is enforced using the "Custom Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AOSX-14-002006
- Vuln IDs
-
- V-209571
- V-95875
- Rule IDs
-
- SV-209571r610285_rule
- SV-105013
Checks: C-9822r282195_chk
To check if the UUCP service is disabled, use the following command: /usr/bin/sudo /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-9822r282196_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
- AOSX-14-002007
- Vuln IDs
-
- V-209572
- V-95877
- Rule IDs
-
- SV-209572r610285_rule
- SV-105015
Checks: C-9823r282198_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-9823r282199_fix
This setting is enforced using the "Custom Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AOSX-14-002008
- Vuln IDs
-
- V-209573
- V-95883
- Rule IDs
-
- SV-209573r610285_rule
- SV-105021
Checks: C-9824r282201_chk
To check if Web Sharing is disabled, use the following command: /usr/bin/sudo /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-9824r282202_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
- AOSX-14-002009
- Vuln IDs
-
- V-209574
- V-95885
- Rule IDs
-
- SV-209574r610285_rule
- SV-105023
Checks: C-9825r282204_chk
AirDrop relies on Bluetooth LE for discovery. To check if AirDrop has been disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep DisableBluetooth If the return is not, "DisableBluetooth = 1", this is a finding.
Fix: F-9825r282205_fix
This setting is enforced using the "Custom Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- L
- CCI
- CCI-000381
- Version
- AOSX-14-002010
- Vuln IDs
-
- V-209575
- V-95887
- Rule IDs
-
- SV-209575r610285_rule
- SV-105025
Checks: C-9826r282207_chk
To check if there is a configuration policy defined for "Application Restrictions", run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -A 5 familyControlsEnabled | grep "FaceTime" If the return does not contain "/Applications/FaceTime.app", this is a finding.
Fix: F-9826r282208_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- L
- CCI
- CCI-000381
- Version
- AOSX-14-002011
- Vuln IDs
-
- V-209576
- V-95889
- Rule IDs
-
- SV-209576r610285_rule
- SV-105027
Checks: C-9827r282210_chk
To check if there is a configuration policy defined for "Application Restrictions", run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -A 5 familyControlsEnabled | grep "Messages.app" If the return does not contain "/Applications/Messages.app", this is a finding.
Fix: F-9827r282211_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- L
- CCI
- CCI-000381
- Version
- AOSX-14-002012
- Vuln IDs
-
- V-209577
- V-95891
- Rule IDs
-
- SV-209577r610285_rule
- SV-105029
Checks: C-9828r282213_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-9828r282214_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- L
- CCI
- CCI-000381
- Version
- AOSX-14-002013
- Vuln IDs
-
- V-209578
- V-95893
- Rule IDs
-
- SV-209578r610285_rule
- SV-105031
Checks: C-9829r282216_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-9829r282217_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- L
- CCI
- CCI-000381
- Version
- AOSX-14-002014
- Vuln IDs
-
- V-209579
- V-95895
- Rule IDs
-
- SV-209579r610285_rule
- SV-105033
Checks: C-9830r282219_chk
/usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep allowCloudAddressBook If the result is not “allowCloudAddressBook = 0”, this is a finding.
Fix: F-9830r282220_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- L
- CCI
- CCI-000381
- Version
- AOSX-14-002015
- Vuln IDs
-
- V-209580
- V-95897
- Rule IDs
-
- SV-209580r610285_rule
- SV-105035
Checks: C-9831r282222_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-9831r282223_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- L
- CCI
- CCI-000381
- Version
- AOSX-14-002016
- Vuln IDs
-
- V-209581
- V-95899
- Rule IDs
-
- SV-209581r610285_rule
- SV-105037
Checks: C-9832r282225_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-9832r282226_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AOSX-14-002017
- Vuln IDs
-
- V-209582
- V-95901
- Rule IDs
-
- SV-209582r610285_rule
- SV-105039
Checks: C-9833r364819_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-9833r282229_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AOSX-14-002019
- Vuln IDs
-
- V-209583
- V-95905
- Rule IDs
-
- SV-209583r610285_rule
- SV-105043
Checks: C-9834r282231_chk
To check if there is a configuration policy defined for "Application Restrictions", run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -A 5 familyControlsEnabled | grep "Mail.app" If the return does not contain "/Applications/Mail.app", this is a finding.
Fix: F-9834r282232_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AOSX-14-002020
- Vuln IDs
-
- V-209584
- V-95907
- Rule IDs
-
- SV-209584r610285_rule
- SV-105045
Checks: C-9835r282234_chk
To check if Siri and dictation has been disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -e "Assistant Allowed" -e "Ironwood Allowed" If the output is not the following, this is a finding: “Assistant Allowed = 0” “Ironwood Allowed = 0”
Fix: F-9835r282235_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000382
- Version
- AOSX-14-002021
- Vuln IDs
-
- V-209585
- V-95909
- Rule IDs
-
- SV-209585r610285_rule
- SV-105047
Checks: C-9836r466273_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 >> Diagnostics & Usage. If the box that says "Send diagnostic & usage data to Apple" is checked, this is a finding.
Fix: F-9836r466274_fix
This setting is enforced using the "Restrictions Policy" configuration profile. The setting "Send diagnostic & usage data to Apple" is found in System Preferences >> Security & Privacy >> Privacy >> Diagnostics & Usage. Uncheck the box that says "Send diagnostic & usage data to Apple." To apply the setting from the command line, run the following commands: /usr/bin/defaults read "/Library/Application Support/CrashReporter/DiagnosticMessagesHistory.plist" AutoSubmit /usr/bin/sudo /usr/bin/defaults write "/Library/Application Support/CrashReporter/DiagnosticMessagesHistory.plist" AutoSubmit -bool false /usr/bin/sudo /bin/chmod 644 /Library/Application\ Support/CrashReporter/DiagnosticMessagesHistory.plist /usr/bin/sudo /usr/bin/chgrp admin /Library/Application\ Support/CrashReporter/DiagnosticMessagesHistory.plist
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000382
- Version
- AOSX-14-002022
- Vuln IDs
-
- V-209586
- V-95911
- Rule IDs
-
- SV-209586r610285_rule
- SV-105049
Checks: C-9837r282240_chk
To check if Remote Apple Events is disabled, use the following command: /usr/bin/sudo /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-9837r282241_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
- M
- CCI
- CCI-000381
- Version
- AOSX-14-002023
- Vuln IDs
-
- V-209587
- V-95913
- Rule IDs
-
- SV-209587r610285_rule
- SV-105051
Checks: C-9838r282243_chk
To check if there is a configuration policy defined for "Application Restrictions", run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -A 5 familyControlsEnabled | grep "Calendar.app" If the return does not contain "/Applications/Calendar.app", this is a finding.
Fix: F-9838r282244_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- H
- CCI
- CCI-001774
- Version
- AOSX-14-002031
- Vuln IDs
-
- V-209588
- V-95915
- Rule IDs
-
- SV-209588r610285_rule
- SV-105053
Checks: C-9839r282246_chk
To check if the system has the correct setting in the configuration profile to disable access to the iCloud preference pane, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -A 6 DisabledPreferencePanes | grep icloud If the return is not “com.apple.preferences.icloud”, this is a finding.
Fix: F-9839r282247_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AOSX-14-002032
- Vuln IDs
-
- V-209589
- V-95917
- Rule IDs
-
- SV-209589r610285_rule
- SV-105055
Checks: C-9840r282249_chk
To check if the system has the correct setting in the configuration profile to disable access to the Internet Accounts System preference pane, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -A 6 DisabledPreferencePanes If the return is not an array which contains: “com.apple.preferences.internetaccounts”, this is a finding.
Fix: F-9840r282250_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AOSX-14-002034
- Vuln IDs
-
- V-209590
- V-95919
- Rule IDs
-
- SV-209590r610285_rule
- SV-105057
Checks: C-9841r282252_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-9841r282253_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AOSX-14-002035
- Vuln IDs
-
- V-209591
- V-95921
- Rule IDs
-
- SV-209591r610285_rule
- SV-105059
Checks: C-9842r282255_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-9842r282256_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AOSX-14-002036
- Vuln IDs
-
- V-209592
- V-95923
- Rule IDs
-
- SV-209592r610285_rule
- SV-105061
Checks: C-9843r282258_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-9843r282259_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AOSX-14-002037
- Vuln IDs
-
- V-209593
- V-95925
- Rule IDs
-
- SV-209593r610285_rule
- SV-105063
Checks: C-9844r282261_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-9844r282262_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- IA-5
- Severity
- H
- CCI
- CCI-000197
- Version
- AOSX-14-002038
- Vuln IDs
-
- V-209594
- V-95927
- Rule IDs
-
- SV-209594r610285_rule
- SV-105065
Checks: C-9845r282264_chk
To check if the tftpd service is disabled, run the following command: sudo launchctl print-disabled system | grep tftpd If the results do not show the following, this is a finding: "com.apple.tftpd" => true
Fix: F-9845r282265_fix
To disable the tftpd 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
- AOSX-14-002039
- Vuln IDs
-
- V-209595
- V-95929
- Rule IDs
-
- SV-209595r610285_rule
- SV-105067
Checks: C-9846r282267_chk
To check if the Skip Siri Setup prompt is enabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep SkipSiriSetup If the output is null or "SkipSiriSetup" is not set to "1", this is a finding.
Fix: F-9846r282268_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AOSX-14-002040
- Vuln IDs
-
- V-209596
- V-95931
- Rule IDs
-
- SV-209596r610285_rule
- SV-105069
Checks: C-9847r282270_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-9847r282271_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AOSX-14-002041
- Vuln IDs
-
- V-209597
- V-95933
- Rule IDs
-
- SV-209597r610285_rule
- SV-105071
Checks: C-9848r282273_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-9848r282274_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AOSX-14-002042
- Vuln IDs
-
- V-209598
- V-95935
- Rule IDs
-
- SV-209598r610285_rule
- SV-105073
Checks: C-9849r282276_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-9849r282277_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001774
- Version
- AOSX-14-002043
- Vuln IDs
-
- V-209599
- V-95937
- Rule IDs
-
- SV-209599r610285_rule
- SV-105075
Checks: C-9850r569505_chk
To check if the system has the correct setting in the configuration profile to disable access to the iCloud preference pane, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -A 6 DisabledPreferencePanes | grep icloud If the return is not “com.apple.preferences.icloud”, this is a CAT I finding. 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-9850r569446_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001774
- Version
- AOSX-14-002049
- Vuln IDs
-
- V-209600
- V-95939
- Rule IDs
-
- SV-209600r610285_rule
- SV-105077
Checks: C-9851r282282_chk
To view the setting for the iCloud Desktop and Documents 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-9851r282283_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-14-002050
- Vuln IDs
-
- V-209601
- V-95941
- Rule IDs
-
- SV-209601r610285_rule
- SV-105079
Checks: C-9852r282285_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-9852r282286_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-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-14-002060
- Vuln IDs
-
- V-209602
- V-95943
- Rule IDs
-
- SV-209602r648722_rule
- SV-105081
Checks: C-9853r648721_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-9853r282289_fix
This setting is enforced using the "Restrictions Policy" configuration profile
- RMF Control
- SC-8
- Severity
- L
- CCI
- CCI-002418
- Version
- AOSX-14-002062
- Vuln IDs
-
- V-209604
- V-95947
- Rule IDs
-
- SV-209604r610285_rule
- SV-105085
Checks: C-9855r282294_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.
Fix: F-9855r282295_fix
This setting is enforced using the "Custom Policy" configuration profile.
- RMF Control
- CM-5
- Severity
- H
- CCI
- CCI-001813
- Version
- AOSX-14-002063
- Vuln IDs
-
- V-209605
- V-95949
- Rule IDs
-
- SV-209605r610285_rule
- SV-105087
Checks: C-9856r282297_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-9856r282298_fix
This is managed with Login Window Policy.
- RMF Control
- CM-5
- Severity
- H
- CCI
- CCI-001749
- Version
- AOSX-14-002064
- Vuln IDs
-
- V-209606
- V-95951
- Rule IDs
-
- SV-209606r610285_rule
- SV-105089
Checks: C-9857r282300_chk
To check the status of the Security assessment policy subsystem, run the following command: /usr/bin/sudo /usr/sbin/spctl --status | /usr/bin/grep enabled If nothing is returned, this is a finding.
Fix: F-9857r282301_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
- AOSX-14-002065
- Vuln IDs
-
- V-209607
- V-95533
- Rule IDs
-
- SV-209607r610285_rule
- SV-104721
Checks: C-9858r282303_chk
For each listing, with the exception of "Shared", verify that the directory is owned by the username, that only the owner has "write" permissions, and the correct Access Control Entry is listed. To verify permissions on users' home directories, use the following command: # ls -le /Users drwxr-xr-x+ 12 Guest _guest 384 Apr 2 09:40 Guest 0: group:everyone deny delete drwxrwxrwt 4 root wheel 128 Mar 28 05:53 Shared drwxr-xr-x+ 13 admin staff 416 Apr 8 08:58 admin 0: group:everyone deny delete drwxr-xr-x+ 11 test user 352 Apr 8 09:00 test 0: group:everyone deny delete If the directory is not owned by the user, this is a finding. If anyone other than the user has "write" permissions to the directory, this is a finding. If the Access Control Entry listed is not "0: group:everyone deny delete", this is a finding.
Fix: F-9858r282304_fix
To reset the permissions on a users' home directory to their defaults, run the following command, where "username" is the user's short name: sudo diskutil resetUserPermissions / username
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-14-002066
- Vuln IDs
-
- V-209608
- V-95953
- Rule IDs
-
- SV-209608r610285_rule
- SV-105091
Checks: C-9859r282306_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-9859r282307_fix
This setting is enforced using the "Login Window Policy" configuration profile.
- RMF Control
- CM-11
- Severity
- M
- CCI
- CCI-001812
- Version
- AOSX-14-002067
- Vuln IDs
-
- V-209609
- V-95537
- Rule IDs
-
- SV-209609r610285_rule
- SV-104723
Checks: C-9860r282309_chk
To check if the system is configured to prohibit user installation of software, first check to ensure the Parental Controls are enabled with the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -A 6 familyControlsEnabled | grep “/Users" If the result is null, or does not contain “/Users/“, this is a finding.
Fix: F-9860r282310_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-14-002068
- Vuln IDs
-
- V-209610
- V-95955
- Rule IDs
-
- SV-209610r610285_rule
- SV-105093
Checks: C-9861r282312_chk
To verify that permissions are set correctly on user home directories, use the following commands: ls -le /Users Should return a listing of the permissions of the root of every user account configured on the system. For each of the users, the permissions should 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 should be: 0: group:everyone deny delete For every authorized user account, also run the following command: /usr/bin/sudo ls -le /Users/userid, where userid is an existing user. This command will return the permissions of all of the objects under the users' home directory. The permissions for each of the subdirectories should be: drwx------+ 0: group:everyone deny delete With the exception of the "Public" directory, whose permissions should 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-9861r282313_fix
To ensure the appropriate permissions are set for each user on the system, run the following command: diskutil resetUserPermissions / userid, where userid is the user name for the user whose home directory permissions need to be repaired.
- RMF Control
- CM-6
- Severity
- H
- CCI
- CCI-000366
- Version
- AOSX-14-002070
- Vuln IDs
-
- V-209612
- V-95543
- Rule IDs
-
- SV-209612r610285_rule
- SV-104727
Checks: C-9863r282318_chk
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-9863r282319_fix
Install an approved antivirus solution onto the system.
- RMF Control
- IA-5
- Severity
- H
- CCI
- CCI-000185
- Version
- AOSX-14-003001
- Vuln IDs
-
- V-209613
- V-95957
- Rule IDs
-
- SV-209613r610285_rule
- SV-105095
Checks: C-9864r282321_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 does not contain approved certificates, this is a finding.
Fix: F-9864r282322_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-000186
- Version
- AOSX-14-003002
- Vuln IDs
-
- V-209614
- V-95959
- Rule IDs
-
- SV-209614r610285_rule
- SV-105097
Checks: C-9865r282324_chk
To view the setting for the smartcard certification configuration, run the following command: sudo /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep checkCertificateTrust If the return is not "checkCertificateTrust = 1;" with the numeral equal to 1 or greater, this is a finding.
Fix: F-9865r282325_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-5
- Severity
- M
- CCI
- CCI-000187
- Version
- AOSX-14-003005
- Vuln IDs
-
- V-209615
- V-95961
- Rule IDs
-
- SV-209615r610285_rule
- SV-105099
Checks: C-9866r466270_chk
To view the setting for the smartcard certification configuration, run the following command: sudo /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep enforceSmartCard If the return is not "enforceSmartCard = 1;" this is a finding.
Fix: F-9866r466271_fix
For stand-alone systems, 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-5
- Severity
- M
- CCI
- CCI-000194
- Version
- AOSX-14-003007
- Vuln IDs
-
- V-209616
- V-95963
- Rule IDs
-
- SV-209616r610285_rule
- SV-105101
Checks: C-9867r282330_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-9867r282331_fix
This setting is enforced using the "Passcode Policy" configuration profile.
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000199
- Version
- AOSX-14-003008
- Vuln IDs
-
- V-209617
- V-95965
- Rule IDs
-
- SV-209617r610285_rule
- SV-105103
Checks: C-9868r282333_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-9868r282334_fix
This setting is enforced using the "Passcode Policy" configuration profile.
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000200
- Version
- AOSX-14-003009
- Vuln IDs
-
- V-209618
- V-95967
- Rule IDs
-
- SV-209618r610285_rule
- SV-105105
Checks: C-9869r282336_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-9869r282337_fix
This setting is enforced using the "Passcode Policy" configuration profile.
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000205
- Version
- AOSX-14-003010
- Vuln IDs
-
- V-209619
- V-95969
- Rule IDs
-
- SV-209619r610285_rule
- SV-105107
Checks: C-9870r282339_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-9870r282340_fix
This setting is enforced using the "Passcode Policy" configuration profile.
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-001619
- Version
- AOSX-14-003011
- Vuln IDs
-
- V-209620
- V-95971
- Rule IDs
-
- SV-209620r610285_rule
- SV-105109
Checks: C-9871r282342_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-9871r282343_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
- AOSX-14-003012
- Vuln IDs
-
- V-209621
- V-95973
- Rule IDs
-
- SV-209621r610285_rule
- SV-105111
Checks: C-9872r282345_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-9872r282346_fix
This setting is enforce using the "Login Window" Policy.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-14-003013
- Vuln IDs
-
- V-209622
- V-95975
- Rule IDs
-
- SV-209622r610285_rule
- SV-105113
Checks: C-9873r466318_chk
To check that password hints are disabled, run the following command: # sudo /usr/sbin/firmwarepasswd -check If the return is not, "Password Enabled: Yes", this is a finding.
Fix: F-9873r466319_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-2
- Severity
- M
- CCI
- CCI-000765
- Version
- AOSX-14-003020
- Vuln IDs
-
- V-209623
- V-95565
- Rule IDs
-
- SV-209623r610285_rule
- SV-104729
Checks: C-9874r466276_chk
If the system is connected to a directory server, this is Not Applicable. 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 the following, this is a finding. "enforceSmartCard=1. Run the following command to disable password based authentication in SSHD. /usr/bin/grep -e ^[\#]*PasswordAuthentication.* -e ^[\#]*ChallengeResponseAuthentication.* /etc/ssh/sshd_config If this command returns null, or anything other than exactly this text, with no leading hash(#), this is a finding: "PasswordAuthentication no ChallengeResponseAuthentication no"
Fix: F-9874r466277_fix
For non directory bound systems, 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. The following commands must be run to disable passcode based authentication for SSHD: /usr/bin/sudo /usr/bin/sed -i.bak 's/^[\#]*ChallengeResponseAuthentication.*/ChallengeResponseAuthentication no/' /etc/ssh/sshd_config /usr/bin/sudo /usr/bin/sed -i.bak 's/^[\#]*PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
- RMF Control
- MA-4
- Severity
- M
- CCI
- CCI-000877
- Version
- AOSX-14-003024
- Vuln IDs
-
- V-209624
- V-95977
- Rule IDs
-
- SV-209624r610285_rule
- SV-105115
Checks: C-9875r466285_chk
If the system is connected to a directory server, this is Not Applicable. The following command ensures that a mandatory smart card policy is enforced: # /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep enforceSmartCard enforceSmartCard=1 If the command returns null, or any other value, this is a finding. The following command ensures that passwords are disabled in the SSHD configuration file: # grep -e ^[\#]*PasswordAuthentication.* -e ^[\#]*ChallengeResponseAuthentication.* /etc/ssh/sshd_config If this command returns null, or anything other than exactly this text, with no leading hash(#), this is a finding: "PasswordAuthentication no ChallengeResponseAuthentication no"
Fix: F-9875r466286_fix
For non-directory bound systems, 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. To ensure that passcode based logins are disabled in sshd, run the following command: /usr/bin/sudo /usr/bin/sed -i.bak 's/^[\#]*ChallengeResponseAuthentication.*/ChallengeResponseAuthentication no/' /etc/ssh/sshd_config /usr/bin/sudo /usr/bin/sed -i.bak 's/^[\#]*PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
- RMF Control
- IA-2
- Severity
- M
- CCI
- CCI-001948
- Version
- AOSX-14-003025
- Vuln IDs
-
- V-209625
- V-95979
- Rule IDs
-
- SV-209625r610285_rule
- SV-105117
Checks: C-9876r282357_chk
The following command ensures that a mandatory smart card policy is enforced: # /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep enforceSmartCard If the return is not "enforceSmartCard = 1;" this is a finding.
Fix: F-9876r282358_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
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-14-003050
- Vuln IDs
-
- V-209626
- V-95981
- Rule IDs
-
- SV-209626r610285_rule
- SV-105119
Checks: C-9877r466321_chk
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-9877r466322_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
- AOSX-14-003051
- Vuln IDs
-
- V-209627
- V-95983
- Rule IDs
-
- SV-209627r610285_rule
- SV-105121
Checks: C-9878r466324_chk
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-9878r466325_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/login" with the following: # su: auth account 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
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-14-003052
- Vuln IDs
-
- V-209628
- V-95985
- Rule IDs
-
- SV-209628r610285_rule
- SV-105123
Checks: C-9879r466327_chk
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-9879r466328_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/login" 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
- AOSX-14-004001
- Vuln IDs
-
- V-209629
- V-95987
- Rule IDs
-
- SV-209629r610285_rule
- SV-105125
Checks: C-9880r466291_chk
Log files are controlled by "newsyslog" and "aslmanager". These commands check for log files that exist on the system and print out the log with 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 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-9880r466292_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
- AOSX-14-004002
- Vuln IDs
-
- V-209630
- V-95989
- Rule IDs
-
- SV-209630r610285_rule
- SV-105127
Checks: C-9881r466294_chk
These commands check for log files that exist on the system and print out the log with 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 The correct permissions on log files should be "640" or less permissive for system logs. Any file with more permissive settings is a finding.
Fix: F-9881r466295_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
- IA-3
- Severity
- M
- CCI
- CCI-001967
- Version
- AOSX-14-004020
- Vuln IDs
-
- V-209633
- V-95585
- Rule IDs
-
- SV-209633r610285_rule
- SV-104731
Checks: C-9884r282381_chk
For systems where Wi-Fi is not approved for use, run the following command to disable the Wi-Fi service: To list the network devices that are enabled on the system, run the following command: /usr/bin/sudo /usr/sbin/networksetup -listallnetworkservices If the Wi-Fi service name is not preceded by an asterisk(*), this is a finding.
Fix: F-9884r282382_fix
To disable a network device, run the following command: /usr/bin/sudo /usr/sbin/networksetup -setnetworkserviceenabled Wi-Fi off
- RMF Control
- CM-6
- Severity
- H
- CCI
- CCI-000366
- Version
- AOSX-14-004021
- Vuln IDs
-
- V-209634
- V-95587
- Rule IDs
-
- SV-209634r610285_rule
- SV-104733
Checks: C-9885r282384_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-9885r282385_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
- AOSX-14-005001
- Vuln IDs
-
- V-209635
- V-95995
- Rule IDs
-
- SV-209635r610285_rule
- SV-105133
Checks: C-9886r282387_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-9886r282388_fix
To reenable "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
- AOSX-14-005020
- Vuln IDs
-
- V-209636
- V-95997
- Rule IDs
-
- SV-209636r610285_rule
- SV-105135
Checks: C-9887r466288_chk
To check if "FileVault 2" is enabled, run the following command: /usr/bin/sudo /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-9887r466289_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
- AOSX-14-005050
- Vuln IDs
-
- V-209637
- V-95999
- Rule IDs
-
- SV-209637r610285_rule
- SV-105137
Checks: C-9888r282393_chk
If an approved HBSS solution is installed, this is Not Applicable. To check if the macOS firewall has been enabled, run the following command: /usr/bin/sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate If the result is "disabled", this is a finding.
Fix: F-9888r282394_fix
To enable the firewall, run the following command: /usr/bin/sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate on
- RMF Control
- AC-2
- Severity
- M
- CCI
- CCI-002143
- Version
- AOSX-14-000032
- Vuln IDs
-
- V-225094
- V-95597
- Rule IDs
-
- SV-225094r610285_rule
- SV-104735
Checks: C-26786r569431_chk
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 defined FileVault users are disabled: Note: This procedure must be ran for each defined FileVault User. # sudo dscl . read /Users/<FileVault_User> AuthenticationAuthority | grep "DisabledUser" AuthenticationAuthority: ;ShadowHash;HASHLIST:<SALTED-SHA512-PBKDF2,SRP-RFC5054-4096-SHA512-PBKDF2> ;Kerberosv5;;unlock@LKDC:SHA1.20BABA05A6B1A86A8C57581A8487596640A3E37B;LKDC:SHA1.20CEBE04A5B1D92D8C58189D8487593350D3A40A; ;SecureToken; DisabledUser If the FileVault user is not disabled, this is a finding. Verify that password forwarding has been disabled on the system: # sudo defaults read /Library/Preferences/com.apple.loginwindow | grep "DisableFDEAutologin" DisableFDEAutologin = 1; If "DisableFDEAutologin" is not set to a value of "1", this is a finding.
Fix: F-26774r569432_fix
Create an authorized user account that will be used to unlock the disk on startup. Disable the login ability of the newly created user account: # sudo dscl . append /Users/<FileVault_User> AuthenticationAuthority DisabledUser Disable FileVaults Auto-login feature: # sudo defaults write /Library/Preferences/com.apple.loginwindow DisableFDEAutologin -bool YES 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-17
- Severity
- M
- CCI
- CCI-000068
- Version
- AOSX-14-000054
- Vuln IDs
-
- V-233628
- Rule IDs
-
- SV-233628r610285_rule
Checks: C-33607r591063_chk
If SSH is not being used, this is Not Applicable. Inspect the "Ciphers" configuration with the following command: Note: The location of the "sshd_config" file may vary if a different daemon is in use. # /usr/bin/grep "^Ciphers" /etc/ssh/sshd_config Ciphers aes256-ctr,aes192-ctr,aes128-ctr If any ciphers other than "aes256-ctr", "aes192-ctr", or "aes128-ctr" are listed, the order differs from the example above, or the "Ciphers" keyword is missing, this is a finding.
Fix: F-36783r621603_fix
Configure SSH to use secure cryptographic algorithms. To ensure that "Ciphers" set correctly, run the following command: /usr/bin/sudo /usr/bin/grep -q '^Ciphers' /etc/ssh/sshd_config && /usr/bin/sudo /usr/bin/sed -i.bak 's/^Ciphers.*/Ciphers aes256-ctr,aes192-ctr,aes128-ctr/' /etc/ssh/sshd_config || /usr/bin/sudo /usr/bin/sed -i.bak '/.*Ciphers and keying.*/a\'$'\n''Ciphers aes256-ctr,aes192-ctr,aes128-ctr'$'\n' /etc/ssh/sshd_config The SSH service must be restarted for changes to take effect.
- RMF Control
- IA-7
- Severity
- M
- CCI
- CCI-000803
- Version
- AOSX-14-000055
- Vuln IDs
-
- V-233691
- Rule IDs
-
- SV-233691r610285_rule
Checks: C-33608r591066_chk
If SSH is not being used, this is Not Applicable. Inspect the "MACs" configuration with the following command: Note: The location of the "sshd_config" file may vary if a different daemon is in use. /usr/bin/grep "^Macs" /etc/ssh/sshd_config MACs hmac-sha2-512,hmac-sha2-256 If any hashes other than "hmac-sha2-512" and/or "hmac-sha2-256" are listed, the order differs from the example above, or the "MACs" keyword is missing, this is a finding.
Fix: F-36784r621606_fix
Configure SSH to use secure Keyed-Hash Message Authentication Codes. To ensure that "MACs" set correctly, run the following command: /usr/bin/sudo /usr/bin/grep -q '^MACs' /etc/ssh/sshd_config && /usr/bin/sudo /usr/bin/sed -i.bak 's/^MACs.*/MACs hmac-sha2-256,hmac-sha2-512/' /etc/ssh/sshd_config || /usr/bin/sudo /usr/bin/sed -i.bak '/.*Ciphers and keying.*/a\'$'\n''MACs hmac-sha2-512,hmac-sha2-256'$'\n' /etc/ssh/sshd_config The SSH service must be restarted for changes to take effect.
- RMF Control
- AC-17
- Severity
- M
- CCI
- CCI-000068
- Version
- AOSX-14-000056
- Vuln IDs
-
- V-233775
- Rule IDs
-
- SV-233775r610285_rule
Checks: C-33609r591069_chk
If SSH is not being used, this is Not Applicable. Inspect the "KexAlgorithms" configuration with the following command: Note: The location of the "sshd_config" file may vary if a different daemon is in use. /usr/bin/grep "^KexAlgorithms" /etc/ssh/sshd_config KexAlgorithms diffie-hellman-group-exchange-sha256 If any algorithm other than "diffie-hellman-group-exchange-sha256" is listed or the "KexAlgorithms" keyword is missing, this is a finding.
Fix: F-36785r621609_fix
Configure SSH to use a secure Key Exchange Algorithm. To ensure that "KexAlgorithms" set correctly, run the following command: /usr/bin/sudo /usr/bin/grep -q '^KexAlgorithms' /etc/ssh/sshd_config && /usr/bin/sudo /usr/bin/sed -i.bak 's/^KexAlgorithms.*/KexAlgorithms diffie-hellman-group-exchange-sha256/' /etc/ssh/sshd_config || /usr/bin/sudo /usr/bin/sed -i.bak '/.*Ciphers and keying.*/a\'$'\n''KexAlgorithms diffie-hellman-group-exchange-sha256'$'\n' /etc/ssh/sshd_config The SSH service must be restarted for changes to take effect.
- RMF Control
- IA-3
- Severity
- M
- CCI
- CCI-001958
- Version
- AOSX-14-002069
- Vuln IDs
-
- V-234699
- V-95541
- Rule IDs
-
- SV-234699r615888_rule
- SV-104725
Checks: C-37884r621681_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-26889r485788_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