Apple OS X 10.13 Security Technical Implementation Guide
Pick two releases to diff their requirements.
Open a previous version of this STIG.
Digest of Updates +1 −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.
Added rules 1
- V-237767 Medium The macOS system must enforce requirements for remote connections to the information
Removed rules 1
- V-214885 Medium The macOS system must be configured so that end users cannot override Gatekeeper settings.
Content changes 1
- V-214884 Medium descriptioncheck The macOS system must allow only applications that have a valid digital signature to run.
- RMF Control
- AC-11
- Severity
- L
- CCI
- CCI-000060
- Version
- AOSX-13-000005
- Vuln IDs
-
- V-214802
- V-81463
- Rule IDs
-
- SV-214802r609363_rule
- SV-96177
Checks: C-16002r396978_chk
To view the currently selected screen saver for the logged-on user, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep loginWindowModulePath If there is no result or defined "loginWindowModulePath", this is a finding.
Fix: F-16000r396979_fix
This setting is enforced using the "Login Window Policy" configuration profile.
- RMF Control
- AC-11
- Severity
- M
- CCI
- CCI-000060
- Version
- AOSX-13-000006
- Vuln IDs
-
- V-214803
- V-81465
- Rule IDs
-
- SV-214803r609363_rule
- SV-96179
Checks: C-16003r396981_chk
To check if the system is configured to disable hot corners, run the following commands: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep wvous If the return is null, or does not equal: "wvous-bl-corner = 0; wvous-br-corner = 0; wvous-tl-corner = 0; wvous-tr-corner = 0;" this is a finding.
Fix: F-16001r396982_fix
This setting is enforced using the "Custom Policy" configuration profile.
- RMF Control
- AC-11
- Severity
- M
- CCI
- CCI-000056
- Version
- AOSX-13-000007
- Vuln IDs
-
- V-214804
- V-81467
- Rule IDs
-
- SV-214804r609363_rule
- SV-96181
Checks: C-16004r396984_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-16002r396985_fix
This setting is enforced using the “Restrictions Policy" configuration profile.
- RMF Control
- AC-11
- Severity
- M
- CCI
- CCI-000057
- Version
- AOSX-13-000010
- Vuln IDs
-
- V-214805
- V-81469
- Rule IDs
-
- SV-214805r609363_rule
- SV-96183
Checks: C-16005r396987_chk
To check if the system has a configuration profile configured to enable the screen saver after a time-out period, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep loginWindowIdleTime The check should return a value of "900" or less for "loginWindowIdleTime". If it does not, this is a finding.
Fix: F-16003r396988_fix
This setting is enforced using the "Login Window Policy" configuration profile.
- RMF Control
- AC-11
- Severity
- M
- CCI
- CCI-000056
- Version
- AOSX-13-000020
- Vuln IDs
-
- V-214806
- V-81471
- Rule IDs
-
- SV-214806r609363_rule
- SV-96185
Checks: C-16006r396990_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-16004r396991_fix
This setting is enforced using the "Login Window Policy" configuration profile.
- RMF Control
- AC-11
- Severity
- M
- CCI
- CCI-000056
- Version
- AOSX-13-000025
- Vuln IDs
-
- V-214807
- V-81473
- Rule IDs
-
- SV-214807r609363_rule
- SV-96187
Checks: C-16007r396993_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-16005r396994_fix
This setting is enforced using the "Security and Privacy Policy" configuration profile.
- RMF Control
- AC-17
- Severity
- M
- CCI
- CCI-000067
- Version
- AOSX-13-000030
- Vuln IDs
-
- V-214808
- V-81475
- Rule IDs
-
- SV-214808r609363_rule
- SV-96189
Checks: C-16008r396996_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-16006r396997_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
- AC-17
- Severity
- H
- CCI
- CCI-000068
- Version
- AOSX-13-000035
- Vuln IDs
-
- V-214809
- V-81477
- Rule IDs
-
- SV-214809r609363_rule
- SV-96191
Checks: C-16009r396999_chk
For systems that allow remote access through SSH, run the following command: /usr/bin/sudo /bin/launchctl print-disabled system | /usr/bin/grep com.openssh.sshd If the results do not show the following, this is a finding. "com.openssh.sshd" => false
Fix: F-16007r397000_fix
To enable the SSH 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
- CM-7
- Severity
- H
- CCI
- CCI-000381
- Version
- AOSX-13-000050
- Vuln IDs
-
- V-214810
- V-81479
- Rule IDs
-
- SV-214810r609363_rule
- SV-96193
Checks: C-16010r397002_chk
To check if the "rshd" service is disabled, use the following command: /usr/bin/sudo /bin/launchctl print-disabled system | /usr/bin/grep com.apple.rshd If the results do not show the following, this is a finding: "com.apple.rshd" => true
Fix: F-16008r397003_fix
To disable the "rshd" service, run the following command: /usr/bin/sudo /bin/launchctl disable system/com.apple.rshd The system may need to be restarted for the update to take effect.
- RMF Control
- CM-6
- Severity
- L
- CCI
- CCI-000366
- Version
- AOSX-13-000065
- Vuln IDs
-
- V-214812
- V-81483
- Rule IDs
-
- SV-214812r609363_rule
- SV-96197
Checks: C-16012r397008_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-16010r397009_fix
This setting is enforced using the "Bluetooth Policy" configuration profile.
- RMF Control
- AC-18
- Severity
- M
- CCI
- CCI-001443
- Version
- AOSX-13-000070
- Vuln IDs
-
- V-214813
- V-81485
- Rule IDs
-
- SV-214813r609363_rule
- SV-96199
Checks: C-16013r397011_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-16011r397012_fix
To disable the Wi-Fi network device, run the following command: /usr/bin/sudo /usr/sbin/networksetup -setnetworkserviceenabled "Wi-Fi" off
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-13-000075
- Vuln IDs
-
- V-214814
- V-81487
- Rule IDs
-
- SV-214814r609363_rule
- SV-96201
Checks: C-16014r397014_chk
To check if IR support is disabled, run the following command: /usr/bin/sudo /usr/bin/defaults read /Library/Preferences/com.apple.driver.AppleIRController DeviceEnabled If the result is not "0", this is a finding.
Fix: F-16012r397015_fix
To disable IR, run the following command: /usr/bin/sudo /usr/bin/defaults write /Library/Preferences/com.apple.driver.AppleIRController DeviceEnabled -bool FALSE
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-13-000085
- Vuln IDs
-
- V-214815
- V-81489
- Rule IDs
-
- SV-214815r609363_rule
- SV-96203
Checks: C-16015r397017_chk
If an approved HBSS DCM/DLP solution is installed, this is not applicable. To check if the system has the correct setting for blank CDs in the configuration profile, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -A 2 'com.apple.digihub.blank.cd.appeared' If this is not defined or "action" is not set to "1", this is a finding.
Fix: F-16013r397018_fix
This setting is enforced using the "Custom Policy" configuration profile.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-13-000090
- Vuln IDs
-
- V-214816
- V-81491
- Rule IDs
-
- SV-214816r609363_rule
- SV-96205
Checks: C-16016r397020_chk
If an approved HBSS DCM/DLP solution is installed, this is not applicable. To check if the system has the correct setting for blank DVDs in the configuration profile, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -A 2 'com.apple.digihub.blank.dvd.appeared' If this is not defined or "action" is not set to "1", this is a finding.
Fix: F-16014r397021_fix
This setting is enforced using the "Custom Policy" configuration profile.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-13-000095
- Vuln IDs
-
- V-214817
- V-81493
- Rule IDs
-
- SV-214817r609363_rule
- SV-96207
Checks: C-16017r397023_chk
If an approved HBSS DCM/DLP solution is installed, this is not applicable. To check if the system has the correct setting for music CDs in the configuration profile, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -A 2 'com.apple.digihub.cd.music.appeared' If this is not defined or "action" is not set to "1", this is a finding.
Fix: F-16015r397024_fix
This setting is enforced using the "Custom Policy" configuration profile.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-13-000100
- Vuln IDs
-
- V-214818
- V-81497
- Rule IDs
-
- SV-214818r609363_rule
- SV-96211
Checks: C-16018r397026_chk
If an approved HBSS DCM/DLP solution is installed, this is not applicable. To check if the system has the correct setting for picture CDs in the configuration profile, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -A 2 'com.apple.digihub.cd.picture.appeared' If this is not defined or "action" is not set to "1", this is a finding.
Fix: F-16016r397027_fix
This setting is enforced using the "Custom Policy" configuration profile.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-13-000105
- Vuln IDs
-
- V-214819
- V-81499
- Rule IDs
-
- SV-214819r609363_rule
- SV-96213
Checks: C-16019r397029_chk
If an approved HBSS DCM/DLP solution is installed, this is not applicable. To check if the system has the correct setting for video DVDs in the configuration profile, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -A 2 'com.apple.digihub.dvd.video.appeared' If this is not defined or "action" is not set to "1", this is a finding.
Fix: F-16017r397030_fix
This setting is enforced using the "Custom Policy" configuration profile.
- RMF Control
- AC-2
- Severity
- M
- CCI
- CCI-000016
- Version
- AOSX-13-000110
- Vuln IDs
-
- V-214820
- V-81501
- Rule IDs
-
- SV-214820r609363_rule
- SV-96215
Checks: C-16020r397032_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. 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-16018r397033_fix
This setting may be enforced using a configuration profile or by a directory service. To set the password policy without a configuration profile, run the following command to save a copy of the current policy file, substituting the correct user name in place of "username": /usr/bin/sudo /usr/bin/pwpolicy -u username getaccountpolicies | tail -n +2 > pwpolicy.plist Open the resulting password policy file in a text editor. If other policy settings are present, and the line "<key>policyCategoryAuthentication</key>" already exists, insert the following text after the <array> tag that immediately follows it: <dict> <key>policyContent</key> <string>policyAttributeCurrentTime < policyAttributeCreationTime + 259299</string> <key>policyIdentifier</key> <string>Disable Temporary Account</string> </dict> At a minimum, edit the file to ensure that it contains the following text: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>policyCategoryAuthentication</key> <array> <dict> <key>policyContent</key> <string>policyAttributeCurrentTime < policyAttributeCreationTime + 259299</string> <key>policyIdentifier</key> <string>Disable Temporary Account</string> </dict> </array> </dict> </plist> 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": /usr/bin/sudo /usr/bin/pwpolicy -u username setaccountpolicies pwpolicy.plist
- RMF Control
- AC-2
- Severity
- M
- CCI
- CCI-001682
- Version
- AOSX-13-000115
- Vuln IDs
-
- V-214821
- V-81503
- Rule IDs
-
- SV-214821r609363_rule
- SV-96217
Checks: C-16021r397035_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-16019r397036_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 password 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 password 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 the like <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
- AC-6
- Severity
- M
- CCI
- CCI-002234
- Version
- AOSX-13-000120
- Vuln IDs
-
- V-214822
- V-81505
- Rule IDs
-
- SV-214822r609363_rule
- SV-96219
Checks: C-16022r466213_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-16020r466214_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
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AOSX-13-000139
- Vuln IDs
-
- V-214823
- V-81507
- Rule IDs
-
- SV-214823r609363_rule
- SV-96221
Checks: C-16023r397041_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-16021r397042_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-13-000140
- Vuln IDs
-
- V-214824
- V-81509
- Rule IDs
-
- SV-214824r609363_rule
- SV-96223
Checks: C-16024r397044_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-16022r397045_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-13-000141
- Vuln IDs
-
- V-214825
- V-81511
- Rule IDs
-
- SV-214825r609363_rule
- SV-96225
Checks: C-16025r397047_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-16023r397048_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-13-000142
- Vuln IDs
-
- V-214826
- V-81513
- Rule IDs
-
- SV-214826r609363_rule
- SV-96227
Checks: C-16026r397050_chk
If the NFS lock daemon is required, this is not applicable. To check if the NFS lock daemon is disabled, use the following command: /usr/bin/sudo /bin/launchctl print-disabled system | /usr/bin/grep com.apple.lockd If the results do not show the following, this is a finding: "com.apple.lockd" => true
Fix: F-16024r397051_fix
To disable the NFS lock daemon, run the following command: /usr/bin/sudo /bin/launchctl disable system/com.apple.lockd The system may need to be restarted for the update to take effect.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AOSX-13-000143
- Vuln IDs
-
- V-214827
- V-81515
- Rule IDs
-
- SV-214827r609363_rule
- SV-96229
Checks: C-16027r397053_chk
If the NFS stat daemon is required, this is not applicable. To check if the NFS stat daemon is disabled, use the following command: /usr/bin/sudo /bin/launchctl print-disabled system | /usr/bin/grep com.apple.statd.notify If the results do not show the following, this is a finding: "com.apple.statd.notify" => true
Fix: F-16025r397054_fix
To disable the NFS stat daemon, run the following command: /usr/bin/sudo /bin/launchctl disable system/com.apple.statd.notify The system may need to be restarted for the update to take effect.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-13-000155
- Vuln IDs
-
- V-214828
- V-81517
- Rule IDs
-
- SV-214828r609363_rule
- SV-96231
Checks: C-16028r397056_chk
Ask the System Administrator (SA) or Information System Security Officer (ISSO) if an approved firewall is loaded on the system. The recommended system is the McAfee HBSS. If no firewall is installed on the system, this is a finding. If a firewall is installed and it is not configured with a "default-deny" policy, this is a finding.
Fix: F-16026r397057_fix
Install an approved HBSS or firewall solution onto the system and configure it with a "default-deny" policy.
- RMF Control
- AC-8
- Severity
- M
- CCI
- CCI-000048
- Version
- AOSX-13-000186
- Vuln IDs
-
- V-214829
- V-81519
- Rule IDs
-
- SV-214829r609363_rule
- SV-96233
Checks: C-16029r397059_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-16027r397060_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-13-000187
- Vuln IDs
-
- V-214830
- V-81521
- Rule IDs
-
- SV-214830r609363_rule
- SV-96235
Checks: C-16030r397062_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-16028r397063_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-13-000195
- Vuln IDs
-
- V-214831
- V-81523
- Rule IDs
-
- SV-214831r609363_rule
- SV-96237
Checks: C-16031r397065_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-16029r397066_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
- AU-12
- Severity
- M
- CCI
- CCI-000172
- Version
- AOSX-13-000200
- Vuln IDs
-
- V-214832
- V-81525
- Rule IDs
-
- SV-214832r609363_rule
- SV-96239
Checks: C-16032r466216_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-16030r466217_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
- AU-8
- Severity
- M
- CCI
- CCI-000159
- Version
- AOSX-13-000230
- Vuln IDs
-
- V-214833
- V-81527
- Rule IDs
-
- SV-214833r609363_rule
- SV-96241
Checks: C-16033r466219_chk
To check if the audit service is running, use the following command: /usr/bin/sudo /bin/launchctl list | /usr/bin/grep com.apple.auditd If nothing is returned, the audit service is not running, and this is a finding.
Fix: F-16031r466220_fix
To enable the audit service, run the following command: /usr/bin/sudo /bin/launchctl load -w /System/Library/LaunchDaemons/com.apple.auditd.plist
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-001493
- Version
- AOSX-13-000240
- Vuln IDs
-
- V-214834
- V-81529
- Rule IDs
-
- SV-214834r609363_rule
- SV-96243
Checks: C-16034r397074_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-16032r397075_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
- AU-4
- Severity
- M
- CCI
- CCI-001849
- Version
- AOSX-13-000295
- Vuln IDs
-
- V-214835
- V-81531
- Rule IDs
-
- SV-214835r609363_rule
- SV-96245
Checks: C-16035r397077_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-16033r397078_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-13-000305
- Vuln IDs
-
- V-214836
- V-81533
- Rule IDs
-
- SV-214836r609363_rule
- SV-96247
Checks: C-16036r466222_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-16034r466223_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-13-000310
- Vuln IDs
-
- V-214837
- V-81535
- Rule IDs
-
- SV-214837r609363_rule
- SV-96249
Checks: C-16037r397083_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-16035r397084_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-8
- Severity
- M
- CCI
- CCI-001891
- Version
- AOSX-13-000330
- Vuln IDs
-
- V-214838
- V-81537
- Rule IDs
-
- SV-214838r609363_rule
- SV-96251
Checks: C-16038r466225_chk
The Network Time Protocol (NTP) service must be enabled on all networked systems. To check if the service is running, use the following command: /usr/bin/sudo /bin/launchctl list | grep com.apple.timed 83 0 com.apple.timed If nothing is returned, this is a finding. To verify that an authorized NTP server is configured, run the following command or examine "/etc/ntp.conf": /usr/bin/sudo /usr/bin/grep ^server /etc/ntp.conf server ntp.usno.navy.mil server ntp.usnogps.navy.mil Note: 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-16036r466226_fix
To enable the NTP service, run the following command: /usr/bin/sudo /bin/launchctl load -w /System/Library/LaunchDaemons/com.apple.timed.plist To configure one or more time servers for use, edit "/etc/ntp.conf" and enter each hostname or IP address on a separate line, prefixing each one with the keyword "server".
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-000162
- Version
- AOSX-13-000331
- Vuln IDs
-
- V-214839
- V-81539
- Rule IDs
-
- SV-214839r609363_rule
- SV-96253
Checks: C-16039r397089_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-16037r397090_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-13-000332
- Vuln IDs
-
- V-214840
- V-81541
- Rule IDs
-
- SV-214840r609363_rule
- SV-96255
Checks: C-16040r397092_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-16038r397093_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-13-000333
- Vuln IDs
-
- V-214841
- V-81543
- Rule IDs
-
- SV-214841r609363_rule
- SV-96257
Checks: C-16041r397095_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-16039r397096_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-13-000334
- Vuln IDs
-
- V-214842
- V-81545
- Rule IDs
-
- SV-214842r609363_rule
- SV-96259
Checks: C-16042r397098_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-16040r397099_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-13-000335
- Vuln IDs
-
- V-214843
- V-81547
- Rule IDs
-
- SV-214843r609363_rule
- SV-96261
Checks: C-16043r397101_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-16041r397102_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-13-000336
- Vuln IDs
-
- V-214844
- V-81549
- Rule IDs
-
- SV-214844r609363_rule
- SV-96263
Checks: C-16044r397104_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-16042r397105_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-9
- Severity
- M
- CCI
- CCI-000162
- Version
- AOSX-13-000337
- Vuln IDs
-
- V-214845
- V-81551
- Rule IDs
-
- SV-214845r609363_rule
- SV-96265
Checks: C-16045r397107_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-16043r397108_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-13-000338
- Vuln IDs
-
- V-214846
- V-81553
- Rule IDs
-
- SV-214846r609363_rule
- SV-96267
Checks: C-16046r397110_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-16044r397111_fix
For any log folder that contains ACLs, run the following command: /usr/bin/sudo chmod -N [audit log folder]
- RMF Control
- CM-5
- Severity
- H
- CCI
- CCI-001749
- Version
- AOSX-13-000430
- Vuln IDs
-
- V-214847
- V-81555
- Rule IDs
-
- SV-214847r609363_rule
- SV-96269
Checks: C-16047r397113_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-16045r397114_fix
To enable the Security assessment policy subsystem, run the following command: /usr/bin/sudo /usr/sbin/spctl --master-enable
- RMF Control
- CM-7
- Severity
- L
- CCI
- CCI-001774
- Version
- AOSX-13-000475
- Vuln IDs
-
- V-214848
- V-81557
- Rule IDs
-
- SV-214848r609363_rule
- SV-96271
Checks: C-16048r397116_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 result does not contain "/Applications/FaceTime.app", this is a finding.
Fix: F-16046r397117_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- L
- CCI
- CCI-000381
- Version
- AOSX-13-000490
- Vuln IDs
-
- V-214849
- V-81559
- Rule IDs
-
- SV-214849r609363_rule
- SV-96273
Checks: C-16049r397119_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 result does not contain "/Applications/Messages.app", this is a finding.
Fix: F-16047r397120_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- L
- CCI
- CCI-001774
- Version
- AOSX-13-000505
- Vuln IDs
-
- V-214850
- V-81561
- Rule IDs
-
- SV-214850r609363_rule
- SV-96275
Checks: C-16050r397122_chk
To check if iCloud Calendar is disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep allowCloudCalendar If the result is not “allowCloudCalendar = 0”, this is a finding.
Fix: F-16048r397123_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- L
- CCI
- CCI-000381
- Version
- AOSX-13-000507
- Vuln IDs
-
- V-214851
- V-81563
- Rule IDs
-
- SV-214851r609363_rule
- SV-96277
Checks: C-16051r397125_chk
To check if iCloud Reminders is disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep allowCloudReminders If the result is not “allowCloudReminders = 0”, this is a finding.
Fix: F-16049r397126_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- L
- CCI
- CCI-001774
- Version
- AOSX-13-000510
- Vuln IDs
-
- V-214852
- V-81565
- Rule IDs
-
- SV-214852r609363_rule
- SV-96279
Checks: C-16052r397128_chk
To check if iCloud Address Book is disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep allowCloudAddressBook If the result is not “allowCloudAddressBook = 0”, this is a finding.
Fix: F-16050r397129_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- L
- CCI
- CCI-000381
- Version
- AOSX-13-000515
- Vuln IDs
-
- V-214853
- V-81567
- Rule IDs
-
- SV-214853r609363_rule
- SV-96281
Checks: C-16053r397131_chk
To check if iCloud Mail 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-16051r397132_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- L
- CCI
- CCI-001774
- Version
- AOSX-13-000517
- Vuln IDs
-
- V-214854
- V-81569
- Rule IDs
-
- SV-214854r609363_rule
- SV-96283
Checks: C-16054r397134_chk
To check if iCloud Notes is disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep allowCloudNotes If the result is not “allowCloudNotes = 0”, this is a finding.
Fix: F-16052r397135_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AOSX-13-000518
- Vuln IDs
-
- V-214855
- V-81571
- Rule IDs
-
- SV-214855r609363_rule
- SV-96285
Checks: C-16055r397137_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-16053r397138_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- H
- CCI
- CCI-001774
- Version
- AOSX-13-000520
- Vuln IDs
-
- V-214856
- V-81573
- Rule IDs
-
- SV-214856r609363_rule
- SV-96287
Checks: C-16056r397140_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 5 DisabledPreferencePanes | grep icloud If the return is not “com.apple.preferences.icloud”, this is a finding.
Fix: F-16054r397141_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AOSX-13-000521
- Vuln IDs
-
- V-214857
- V-81575
- Rule IDs
-
- SV-214857r609363_rule
- SV-96289
Checks: C-16057r397143_chk
To check if "Internet Accounts" has been disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -A 5 DisabledPreferencePanes | grep internetaccounts If the return is not "com.apple.preferences.internetaccounts", this is a finding.
Fix: F-16055r397144_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001774
- Version
- AOSX-13-000522
- Vuln IDs
-
- V-214858
- V-81577
- Rule IDs
-
- SV-214858r609363_rule
- SV-96291
Checks: C-16058r397146_chk
To check if "Siri" has been disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -A 5 DisabledPreferencePanes | grep speech If the return is not “com.apple.preference.speech”, this is a finding.
Fix: F-16056r397147_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AOSX-13-000523
- Vuln IDs
-
- V-214859
- V-81579
- Rule IDs
-
- SV-214859r609363_rule
- SV-96293
Checks: C-16059r397149_chk
To check if Siri and dictation has been disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -E '(allowAssistant | IronwoodAllowed)’ If the return is null or not: “IronwoodAllowed = 0 allowAssistant = 0”, this is a finding.
Fix: F-16057r397150_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000382
- Version
- AOSX-13-000530
- Vuln IDs
-
- V-214860
- V-81599
- Rule IDs
-
- SV-214860r609363_rule
- SV-96313
Checks: C-16060r397152_chk
Sending diagnostic and usage data to Apple must be disabled. To check if a configuration profile is configured to enforce this setting, run the following command: /usr/bin/sudo /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep allowDiagnosticSubmission If "allowDiagnosticSubmission" is not set to "0", this is a finding. Alternately, the setting is found in System Preferences >> Security & Privacy >> Privacy >> Analytics. If the checkbox that says "Share Mac Analytics" is checked, this is a finding.
Fix: F-16058r397153_fix
This setting is enforced using the "Restrictions Policy" configuration profile. The setting "Share Mac Analytics" is found in System Preferences >> Security & Privacy >> Privacy >> Analytics. Uncheck the box that says "Share Mac Analytics". 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-000381
- Version
- AOSX-13-000531
- Vuln IDs
-
- V-214861
- V-81601
- Rule IDs
-
- SV-214861r609363_rule
- SV-96315
Checks: C-16061r397155_chk
To check if Find My Mac is disabled, use the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep allowCloudFMM If the return is null or not “allowCloudFMM = 0”, this is a finding.
Fix: F-16059r397156_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AOSX-13-000535
- Vuln IDs
-
- V-214862
- V-81603
- Rule IDs
-
- SV-214862r609363_rule
- SV-96317
Checks: C-16062r397158_chk
Location Services 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 DisableLocationServices If the return is null or not “DisableLocationServices = 1”, this is a finding. 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. To check if the setting was applied on the command line, run the following command: /usr/bin/sudo /usr/bin/defaults read /private/var/db/locationd/Library/Preferences/ByHost/com.apple.locationd.`/usr/sbin/system_profiler SPHardwareDataType | /usr/bin/grep "Hardware UUID" | /usr/bin/cut -c22-57` LocationServicesEnabled If the result is "1" this is a finding.
Fix: F-16060r397159_fix
This setting is enforced using the "Custom Policy" configuration profile. The setting "Enable Location Services" can be found in System Preferences >> Security & Privacy >> Privacy >> Location Services. Uncheck the box that says "Enable Location Services". It can also be set with the following command: /usr/bin/sudo /usr/bin/defaults write /private/var/db/locationd/Library/Preferences/ByHost/com.apple.locationd.`/usr/sbin/system_profiler SPHardwareDataType | /usr/bin/grep "Hardware UUID" | /usr/bin/cut -c22-57` LocationServicesEnabled -bool false
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AOSX-13-000545
- Vuln IDs
-
- V-214863
- V-81605
- Rule IDs
-
- SV-214863r609363_rule
- SV-96319
Checks: C-16063r397161_chk
To check if Bonjour multicast advertising has been disabled, run the following command: /usr/bin/sudo /usr/bin/defaults read /Library/Preferences/com.apple.mDNSResponder | /usr/bin/grep NoMulticastAdvertisements If an error is returned, nothing is returned, or "NoMulticastAdvertisements" is not set to "1", this is a finding.
Fix: F-16061r397162_fix
To configure Bonjour to disable multicast advertising, run the following command: /usr/bin/sudo /usr/bin/defaults write /Library/Preferences/com.apple.mDNSResponder.plist NoMulticastAdvertisements -bool true The system will need to be restarted for the update to take effect.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AOSX-13-000550
- Vuln IDs
-
- V-214864
- V-81607
- Rule IDs
-
- SV-214864r609363_rule
- SV-96321
Checks: C-16064r397164_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-16062r397165_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-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-13-000551
- Vuln IDs
-
- V-214865
- V-81609
- Rule IDs
-
- SV-214865r609363_rule
- SV-96323
Checks: C-16065r397167_chk
To view the setting for Touch ID configuration, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep allowFingerprintForUnlock If the output is null, not "allowFingerprintForUnlock = 0" this is a finding.
Fix: F-16063r397168_fix
This setting is enforced using the "Restrictions" configuration profile.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-13-000552
- Vuln IDs
-
- V-214866
- V-81611
- Rule IDs
-
- SV-214866r609363_rule
- SV-96325
Checks: C-16066r397170_chk
To check if the CatalogURL is configured, run the following command: defaults read /Library/Preferences/com.apple.SoftwareUpdate.plist CatalogURL 2017-11-30 22:21:41.805 defaults[1205:9595] The domain/default pair of (/Library/Preferences/com.apple.SoftwareUpdate.plist, CatalogURL) does not exist. If the output is not an error indicating the item "does not exist" or the output is not a DoD-approved update server, this is a finding. Note: Updates are required to be applied with a frequency determined by the site or Program Management Office (PMO).
Fix: F-16064r397171_fix
To remove the Apple software list from the system configuration run the following command: sudo defaults delete /Library/Preferences/com.apple.SoftwareUpdate.plist CatalogURL
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-13-000553
- Vuln IDs
-
- V-214867
- V-81613
- Rule IDs
-
- SV-214867r609363_rule
- SV-96327
Checks: C-16067r397173_chk
To check if the root account is disabled, run the following command: defaults read /var/db/dslocal/nodes/Default/users/root.plist passwd ( "*" ) The output should be a single asterisk in quotes, as seen above. If the output is as follow, this is a finding: ( "********" )
Fix: F-16065r397174_fix
Disable the root account with the following command: /usr/sbin/dsenableroot -d
- RMF Control
- CM-5
- Severity
- H
- CCI
- CCI-001813
- Version
- AOSX-13-000554
- Vuln IDs
-
- V-214868
- V-81615
- Rule IDs
-
- SV-214868r609363_rule
- SV-96329
Checks: C-16068r397176_chk
To check if the guest user exists, run the following command: dscl . list /Users | grep -i Guest To verify that Guest user cannot unlock volume, run the following command: fdesetup list 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 -E '(DisableGuestAccount | EnableGuestAccount)’ If the result is null or not: DisableGuestAccount = 1; EnableGuestAccount = 0; This is a finding.
Fix: F-16066r397177_fix
Remove the guest user with the following command: sudo dscl . delete /Users/Guest "This can also be managed with "Login Window Policy" configuration profile.
- RMF Control
- IA-5
- Severity
- H
- CCI
- CCI-000197
- Version
- AOSX-13-000555
- Vuln IDs
-
- V-214869
- V-81617
- Rule IDs
-
- SV-214869r609363_rule
- SV-96331
Checks: C-16069r397179_chk
To check if the "tfptd" service is disabled, run the following command: sudo launchctl print-disabled system | grep tftp If "com.apple.tftp" is not set to "true", this is a finding.
Fix: F-16067r397180_fix
To disable the "tfpd" service, run the following command: sudo launchctl unload -w /System/Library/LaunchDaemons/tftp.plist
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AOSX-13-000556
- Vuln IDs
-
- V-214870
- V-81619
- Rule IDs
-
- SV-214870r609363_rule
- SV-96333
Checks: C-16070r397182_chk
To check if the "SkipSiriSetup" 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-16068r397183_fix
This setting is enforced using the "Login Window" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001774
- Version
- AOSX-13-000557
- Vuln IDs
-
- V-214871
- V-81621
- Rule IDs
-
- SV-214871r609363_rule
- SV-96335
Checks: C-16071r397185_chk
To view the setting for the Back to My Mac configuration, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep allowCloudBTMM If the output is null or not "allowCloudBTMM = 0" this is a finding.
Fix: F-16069r397186_fix
This setting is enforced using the "Restrictions" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AOSX-13-000558
- Vuln IDs
-
- V-214872
- V-81623
- Rule IDs
-
- SV-214872r609363_rule
- SV-96337
Checks: C-16072r397188_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-16070r397189_fix
This setting is enforced using the "Restrictions" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001774
- Version
- AOSX-13-000559
- Vuln IDs
-
- V-214873
- V-81625
- Rule IDs
-
- SV-214873r609363_rule
- SV-96339
Checks: C-16073r397191_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-16071r397192_fix
This setting is enforced using the "Restrictions" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AOSX-13-000560
- Vuln IDs
-
- V-214874
- V-81627
- Rule IDs
-
- SV-214874r609363_rule
- SV-96341
Checks: C-16074r397194_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-16072r397195_fix
This setting is enforced using the "Restrictions" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001774
- Version
- AOSX-13-000561
- Vuln IDs
-
- V-214875
- V-81629
- Rule IDs
-
- SV-214875r609363_rule
- SV-96343
Checks: C-16075r569443_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 5 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-16073r569444_fix
This setting is enforced using the "Restrictions" configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AOSX-13-000562
- Vuln IDs
-
- V-214876
- V-81631
- Rule IDs
-
- SV-214876r609363_rule
- SV-96345
Checks: C-16076r397200_chk
To view the setting for the iCloud Desktop And Documents configuration, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep allowCloudDesktopAndDocuments If the output is null or not "allowCloudDesktopAndDocuments = 0" this is a finding.
Fix: F-16074r397201_fix
This setting is enforced using the "Restrictions" configuration profile.
- RMF Control
- IA-2
- Severity
- M
- CCI
- CCI-000770
- Version
- AOSX-13-000565
- Vuln IDs
-
- V-214877
- V-81633
- Rule IDs
-
- SV-214877r609363_rule
- SV-96347
Checks: C-16077r397203_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-16075r397204_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
- IA-2
- Severity
- M
- CCI
- CCI-001941
- Version
- AOSX-13-000570
- Vuln IDs
-
- V-214878
- V-81635
- Rule IDs
-
- SV-214878r609363_rule
- SV-96349
Checks: C-16078r397206_chk
To check which protocol is configured for sshd, run the following: /usr/bin/sudo /usr/bin/grep ^Protocol /etc/ssh/sshd_config If there is no result or the result is not "Protocol 2", this is a finding.
Fix: F-16076r397207_fix
To ensure that "Protocol 2" is used by sshd, run the following command: /usr/bin/sudo /usr/bin/sed -i.bak 's/.*Protocol.*/Protocol 2/' /etc/ssh/sshd_config
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000194
- Version
- AOSX-13-000585
- Vuln IDs
-
- V-214879
- V-81637
- Rule IDs
-
- SV-214879r609363_rule
- SV-96351
Checks: C-16079r397209_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 numeric character: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep requireAlphanumeric If the result is null or is not “requireAlphanumeric = 1”, this is a finding. If password policy is set with the "pwpolicy utility", run the following command instead: /usr/bin/sudo /usr/bin/pwpolicy getaccountpolicies Look for the line "<key>policyCategoryPasswordContent</key>". If it does not exist, and password policy is not controlled by a directory service, this is a finding. Otherwise, in the array section that follows it, there should be a <dict> section that contains a check <string> that "matches" the variable "policyAttributePassword" to the regular expression "(.*[0-9].*){1,}+" or to a similar expression that will ensure the password contains a character in the range 0-9 one or more times. If this check allows users to create passwords without at least one numeric character, or if no such check exists, this is a finding.
Fix: F-16077r397210_fix
This setting may be enforced using the "Passcode Policy" configuration profile or by a directory service. To set the password 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. If the file does not yet contain any policy settings, replace <dict/> with <dict></dict>; then insert the following text after the opening <dict> tag and before the closing </dict> tag. The same text can also be used if the line "<key>policyCategoryPasswordContent</key>" is not present. <key>policyCategoryPasswordContent</key> <array> <dict> <key>policyContent</key> <string>policyAttributePassword matches '(.*[0-9].*){1,}+'</string> <key>policyIdentifier</key> <string>com.apple.policy.legacy.requiresNumeric</string> <key>policyParameters</key> <dict> <key>minimumNumericCharacters</key> <integer>1</integer> </dict> </dict> </array> If the file does contain policy settings, and the line "<key>policyCategoryPasswordContent</key>" does exist, insert the following text after the opening <array> tag that comes right after it: <dict> <key>policyContent</key> <string>policyAttributePassword matches '(.*[0-9].*){1,}+'</string> <key>policyIdentifier</key> <string>com.apple.policy.legacy.requiresNumeric</string> <key>policyParameters</key> <dict> <key>minimumNumericCharacters</key> <integer>1</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 password 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
- IA-5
- Severity
- M
- CCI
- CCI-001619
- Version
- AOSX-13-000587
- Vuln IDs
-
- V-214880
- V-81639
- Rule IDs
-
- SV-214880r609363_rule
- SV-96353
Checks: C-16080r397212_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-16078r397213_fix
This setting may be enforced using the "Passcode Policy" configuration profile or by a directory service.
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000205
- Version
- AOSX-13-000590
- Vuln IDs
-
- V-214881
- V-81641
- Rule IDs
-
- SV-214881r609363_rule
- SV-96355
Checks: C-16081r397215_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-16079r397216_fix
This setting is enforced using the "Passcode Policy" configuration profile. Note: Updates to password 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
- IA-5
- Severity
- H
- CCI
- CCI-000197
- Version
- AOSX-13-000605
- Vuln IDs
-
- V-214882
- V-81643
- Rule IDs
-
- SV-214882r609363_rule
- SV-96357
Checks: C-16082r397218_chk
To check if the "telnet" service is disabled, use the following command: /usr/bin/sudo /bin/launchctl print-disabled system | /usr/bin/grep com.apple.telnetd If the results do not show the following, this is a finding: "com.apple.telnetd" => true
Fix: F-16080r397219_fix
To disable the "telnet" service, run the following command: /usr/bin/sudo /bin/launchctl disable system/com.apple.telnetd The system may need to be restarted for the update to take effect.
- RMF Control
- IA-5
- Severity
- H
- CCI
- CCI-000197
- Version
- AOSX-13-000606
- Vuln IDs
-
- V-214883
- V-81645
- Rule IDs
-
- SV-214883r609363_rule
- SV-96359
Checks: C-16083r397221_chk
To check if the "ftp" service is disabled, use the following command: /usr/bin/sudo /bin/launchctl print-disabled system | /usr/bin/grep com.apple.ftpd If the results do not show the following, this is a finding: "com.apple.ftpd" => true
Fix: F-16081r397222_fix
To disable the "ftp" service, run the following command: /usr/bin/sudo /bin/launchctl disable system/com.apple.ftpd The system may need to be restarted for the update to take effect.
- RMF Control
- CM-5
- Severity
- M
- CCI
- CCI-001749
- Version
- AOSX-13-000710
- Vuln IDs
-
- V-214884
- V-81647
- Rule IDs
-
- SV-214884r648720_rule
- SV-96361
Checks: C-16084r648719_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: AllowIdentifiedDevelopers = 1; EnableAssessment = 1; This is a finding.
Fix: F-16082r397225_fix
This setting is enforced using the "Security and Privacy Policy" configuration profile.
- RMF Control
- SC-10
- Severity
- M
- CCI
- CCI-001133
- Version
- AOSX-13-000720
- Vuln IDs
-
- V-214886
- V-81651
- Rule IDs
-
- SV-214886r609363_rule
- SV-96365
Checks: C-16086r397230_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-16084r397231_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-13-000721
- Vuln IDs
-
- V-214887
- V-81653
- Rule IDs
-
- SV-214887r609363_rule
- SV-96367
Checks: C-16087r397233_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-16085r397234_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-13-000722
- Vuln IDs
-
- V-214888
- V-81655
- Rule IDs
-
- SV-214888r609363_rule
- SV-96369
Checks: C-16088r397236_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-16086r397237_fix
To ensure that "LoginGraceTime" is configured correctly, run the following command: /usr/bin/sudo /usr/bin/sed -i.bak 's/.*LoginGraceTime.*/LoginGraceTime 30/' /etc/ssh/sshd_config
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000185
- Version
- AOSX-13-000750
- Vuln IDs
-
- V-214889
- V-81657
- Rule IDs
-
- SV-214889r609363_rule
- SV-96371
Checks: C-16089r397239_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-16087r397240_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
- SC-28
- Severity
- M
- CCI
- CCI-002475
- Version
- AOSX-13-000780
- Vuln IDs
-
- V-214890
- V-81659
- Rule IDs
-
- SV-214890r609363_rule
- SV-96373
Checks: C-16090r397242_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-16088r397243_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
- SI-2
- Severity
- M
- CCI
- CCI-001233
- Version
- AOSX-13-000835
- Vuln IDs
-
- V-214891
- V-81661
- Rule IDs
-
- SV-214891r609363_rule
- SV-96375
Checks: C-16091r466228_chk
Ask the System Administrator (SA) or Information System Security Officer (ISSO) if an approved tool capable of continuous scanning is loaded on the system. The recommended system is the McAfee HBSS. If no such tool is installed on the system, this is a finding.
Fix: F-16089r466229_fix
Install an approved HBSS solution onto the system.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-13-000850
- Vuln IDs
-
- V-214892
- V-81663
- Rule IDs
-
- SV-214892r609363_rule
- SV-96377
Checks: C-16092r397248_chk
If an approved HBSS DCM/DLP solution is installed, this is not applicable. To verify external USB drives are disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -A 3 harddisk-external If the result is not “harddisk-external" = ( eject, alert );”, this is a finding.
Fix: F-16090r397249_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-13-000862
- Vuln IDs
-
- V-214893
- V-81665
- Rule IDs
-
- SV-214893r609363_rule
- SV-96379
Checks: C-16093r397251_chk
If iTunes file sharing is enabled, unauthorized disclosure could occur. To verify that iTunes file sharing is disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep allowiTunesFileSharing If the result is null or is not “allowiTunesFileSharing = 0”, this is a finding
Fix: F-16091r397252_fix
This setting is enforced using the “Restrictions Policy" configuration profile.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-13-000925
- Vuln IDs
-
- V-214894
- V-81667
- Rule IDs
-
- SV-214894r609363_rule
- SV-96381
Checks: C-16094r397254_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-16092r397255_fix
This setting is enforced using the "Login Window Policy" configuration profile.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-13-000930
- Vuln IDs
-
- V-214895
- V-81669
- Rule IDs
-
- SV-214895r609363_rule
- SV-96383
Checks: C-16095r397257_chk
To check if the logon window is configured to prompt for user name and password, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep SHOWFULLNAME If there is no result, or "SHOWFULLNAME" is not set to "1", this is a finding.
Fix: F-16093r397258_fix
This setting is enforced using the "Login Window Policy" configuration profile.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-13-000950
- Vuln IDs
-
- V-214896
- V-81671
- Rule IDs
-
- SV-214896r609363_rule
- SV-96385
Checks: C-16096r397260_chk
If HBSS is used, this is not applicable. To check if the macOS firewall has logging enabled, run the following command: /usr/libexec/ApplicationFirewall/socketfilterfw --getloggingmode | /usr/bin/grep on If the result does not show "on", this is a finding.
Fix: F-16094r397261_fix
To enable the firewall logging, run the following command: /usr/bin/sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setloggingmode on
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-13-000955
- Vuln IDs
-
- V-214897
- V-81673
- Rule IDs
-
- SV-214897r609363_rule
- SV-96387
Checks: C-16097r397263_chk
To check if the Bluetooth Remote Wake setting is disabled, run the following two commands as the primary user: /usr/bin/defaults -currentHost read com.apple.Bluetooth RemoteWakeEnabled /usr/bin/defaults read /Users/`whoami`/Library/Preferences/ByHost/com.apple.Bluetooth.`/usr/sbin/system_profiler SPHardwareDataType | grep "Hardware UUID" | cut -c22-57`.plist RemoteWakeEnabled If there is an error or nothing is returned, or the return value is "1" for either command, this is a finding.
Fix: F-16095r397264_fix
Manually change this control on the computer by opening System Preferences >> Bluetooth. Click "Advanced" and ensure the "Allow Bluetooth devices to wake this computer" is not checked. This control is not necessary if Bluetooth has been completely disabled. The following can be run from the command line to disable "Remote Wake" for the current user: /usr/bin/defaults write /Users/`whoami`/Library/Preferences/ByHost/com.apple.Bluetooth.`/usr/sbin/system_profiler SPHardwareDataType | /usr/bin/grep "Hardware UUID" | /usr/bin/cut -c22-57`.plist RemoteWakeEnabled 0
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-13-000965
- Vuln IDs
-
- V-214898
- V-81675
- Rule IDs
-
- SV-214898r609363_rule
- SV-96389
Checks: C-16098r397266_chk
To check if Bluetooth Sharing is enabled, open System Preferences >> Sharing and verify that "Bluetooth Sharing" is not checked "ON". If it is "ON", this is a finding. The following command can be run from the command line: /usr/bin/defaults read /Users/`whoami`/Library/Preferences/ByHost/com.apple.Bluetooth.`/usr/sbin/system_profiler SPHardwareDataType | grep "Hardware UUID" | cut -c22-57`.plist PrefKeyServicesEnabled If there is an error or nothing is returned, or the return value is "1", this is a finding.
Fix: F-16096r397267_fix
To disable Bluetooth Sharing, open System Preferences >> Sharing and uncheck the box next to "Bluetooth Sharing". This control is not necessary if Bluetooth has been completely disabled. The following can be run from the command line to disable "Bluetooth Sharing" for the current user: /usr/bin/defaults write /Users/`whoami`/Library/Preferences/ByHost/com.apple.Bluetooth.`/usr/sbin/system_profiler SPHardwareDataType | /usr/bin/grep "Hardware UUID" | /usr/bin/cut -c22-57`.plist PrefKeyServicesEnabled 0
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000382
- Version
- AOSX-13-000975
- Vuln IDs
-
- V-214899
- V-81677
- Rule IDs
-
- SV-214899r609363_rule
- SV-96391
Checks: C-16099r397269_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-16097r397270_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-6
- Severity
- H
- CCI
- CCI-000366
- Version
- AOSX-13-000995
- Vuln IDs
-
- V-214900
- V-81679
- Rule IDs
-
- SV-214900r609363_rule
- SV-96393
Checks: C-16100r397272_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-16098r397273_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
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-13-001080
- Vuln IDs
-
- V-214901
- V-81681
- Rule IDs
-
- SV-214901r609363_rule
- SV-96395
Checks: C-16101r397275_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-16099r397276_fix
To enable the firewall, run the following command: /usr/bin/sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate on
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-13-001110
- Vuln IDs
-
- V-214902
- V-81683
- Rule IDs
-
- SV-214902r609363_rule
- SV-96397
Checks: C-16102r397278_chk
To display all directories that are writable by all and not owned by "root", run the following command: /usr/bin/sudo find / -type d -perm +o+w -not -uid 0 If anything is returned, and those directories are not owned by root or application account, this is a finding.
Fix: F-16100r397279_fix
To change the ownership of any finding, run the following command: /usr/bin/sudo find / -type d -perm +o+w -not -uid 0 -exec chown root {} \;
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-13-001115
- Vuln IDs
-
- V-214903
- V-81685
- Rule IDs
-
- SV-214903r609363_rule
- SV-96399
Checks: C-16103r397281_chk
To check if the "finger" service is disabled, use the following command: /usr/bin/sudo /bin/launchctl print-disabled system | /usr/bin/grep com.apple.fingerd If the results do not show the following, this is a finding: "com.apple.fingerd" => true
Fix: F-16101r397282_fix
To disable the "finger" service, run the following command: /usr/bin/sudo /bin/launchctl disable system/com.apple.fingerd The system may need to be restarted for the update to take effect.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-13-001120
- Vuln IDs
-
- V-214904
- V-81687
- Rule IDs
-
- SV-214904r609363_rule
- SV-96401
Checks: C-16104r397284_chk
Run the following command to view all world-writable directories that do not have the "sticky bit" set: /usr/bin/sudo /usr/bin/find / -type d \( -perm -0002 -a ! -perm -1000 \) If anything is returned, this is a finding.
Fix: F-16102r397285_fix
Run the following command to set the "sticky bit" on all world-writable directories: /usr/bin/sudo /usr/bin/find / -type d \( -perm -0002 -a ! -perm -1000 \) -exec chmod +t {} \;
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-13-001125
- Vuln IDs
-
- V-214905
- V-81689
- Rule IDs
-
- SV-214905r609363_rule
- SV-96403
Checks: C-16105r397287_chk
To check if the system is configured to skip cloud setup, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep SkipCloudSetup If “SkipCloudSetup" is not set to "1", this is a finding. To check if the prompt for "Apple ID" and "iCloud" are disabled for new users, run the following command: /usr/bin/sudo /usr/bin/defaults read /System/Library/User\ Template/English.lproj/Library/Preferences/com.apple.SetupAssistant If there is no result, if it prints out that the domain "does not exist", or the results do not include "DidSeeCloudSetup = 1 AND LastSeenCloudProductVersion = 10.12", this is a finding.
Fix: F-16103r397288_fix
This setting is enforced using the “Login Window Policy" configuration profile.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-13-001130
- Vuln IDs
-
- V-214906
- V-81691
- Rule IDs
-
- SV-214906r609363_rule
- SV-96405
Checks: C-16106r397290_chk
To see if any user account has configured an Apple ID for iCloud usage, run the following command: /usr/bin/sudo find /Users/ -name 'MobileMeAccounts.plist' -exec /usr/bin/defaults read '{}' \; If the results show any accounts listed, this is a finding.
Fix: F-16104r397291_fix
This must be resolved manually. With the affected user logged on, open System Preferences >> iCloud. Choose "Sign Out".
- RMF Control
- CM-6
- Severity
- L
- CCI
- CCI-000366
- Version
- AOSX-13-001140
- Vuln IDs
-
- V-214907
- V-81693
- Rule IDs
-
- SV-214907r609363_rule
- SV-96407
Checks: C-16107r397293_chk
To check if iTunes Music Sharing is disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep disableSharedMusic If the return is null or does not contain “disableSharedMusic = 1” this is a finding.
Fix: F-16105r397294_fix
This setting is enforced using the "Custom Policy" configuration profile.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-13-001145
- Vuln IDs
-
- V-214908
- V-81695
- Rule IDs
-
- SV-214908r609363_rule
- SV-96409
Checks: C-16108r397296_chk
If available, provide a list of "setuids" provided by a vendor. To list all of the files with the "setuid" bit set, run the following command to send all results to a file named "suidfilelist": /usr/bin/sudo find / -perm -4000 -exec /bin/ls -ldb {} \; > suidfilelist If any of the files listed are not documented as needing to have the "setuid" bit set by the vendor, this is a finding.
Fix: F-16106r397297_fix
Document all of the files with the "setuid" bit set. Remove any undocumented files.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-13-001195
- Vuln IDs
-
- V-214909
- V-81697
- Rule IDs
-
- SV-214909r609363_rule
- SV-96411
Checks: C-16109r397299_chk
To check if the system is configured to accept "source-routed" packets, run the following command: sysctl net.inet.ip.accept_sourceroute If the value is not "0", this is a finding.
Fix: F-16107r397300_fix
To configure the system to not accept "source-routed" packets, add the following line to "/etc/sysctl.conf", creating the file if necessary: net.inet.ip.accept_sourceroute=0
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-13-001200
- Vuln IDs
-
- V-214910
- V-81699
- Rule IDs
-
- SV-214910r609363_rule
- SV-96413
Checks: C-16110r397302_chk
To check if the system is configured to ignore "ICMP redirect" messages, run the following command: sysctl net.inet.icmp.drop_redirect If the value is not "1", this is a finding.
Fix: F-16108r397303_fix
To configure the system to ignore "ICMP redirect" messages, add the following line to "/etc/sysctl.conf", creating the file if necessary: net.inet.icmp.drop_redirect=1
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-13-001205
- Vuln IDs
-
- V-214911
- V-81701
- Rule IDs
-
- SV-214911r609363_rule
- SV-96415
Checks: C-16111r397305_chk
To check if "IP forwarding" is enabled, run the following command: sysctl net.inet.ip.forwarding If the values are not "0", this is a finding.
Fix: F-16109r397306_fix
To configure the system to disable "IP forwarding", add the following line to "/etc/sysctl.conf", creating the file if necessary: net.inet.ip.forwarding=0
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-13-001206
- Vuln IDs
-
- V-214912
- V-81703
- Rule IDs
-
- SV-214912r609363_rule
- SV-96417
Checks: C-16112r397308_chk
To check if "IP forwarding" is enabled, run the following command: sysctl net.inet6.ip6.forwarding If the values are not "0", this is a finding.
Fix: F-16110r397309_fix
To configure the system to disable "IP forwarding", add the following line to "/etc/sysctl.conf", creating the file if necessary: net.inet6.ip6.forwarding=0
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-13-001210
- Vuln IDs
-
- V-214913
- V-81705
- Rule IDs
-
- SV-214913r609363_rule
- SV-96419
Checks: C-16113r397311_chk
To check if the system is configured to send ICMP redirects, run the following command: sysctl net.inet.ip.redirect If the values are not set to "0", this is a finding.
Fix: F-16111r397312_fix
To configure the system to not send ICMP redirects, add the following line to "/etc/sysctl.conf", creating the file if necessary: net.inet.ip.redirect=0
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-13-001211
- Vuln IDs
-
- V-214914
- V-81707
- Rule IDs
-
- SV-214914r609363_rule
- SV-96421
Checks: C-16114r397314_chk
To check if the system is configured to send ICMP redirects, run the following command: sysctl net.inet6.ip6.redirect If the values are not set to "0", this is a finding.
Fix: F-16112r397315_fix
To configure the system to not send ICMP redirects, add the following line to "/etc/sysctl.conf", creating the file if necessary: net.inet6.ip6.redirect=0
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-13-001215
- Vuln IDs
-
- V-214915
- V-81711
- Rule IDs
-
- SV-214915r609363_rule
- SV-96425
Checks: C-16115r397317_chk
To check if the system is configured to forward source-routed packets, run the following command: sysctl net.inet.ip.sourceroute If the value is not set to "0", this is a finding.
Fix: F-16113r397318_fix
To configure the system to not forward source-routed packets, add the following line to "/etc/sysctl.conf", creating the file if necessary: net.inet.ip.sourceroute=0
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-13-001220
- Vuln IDs
-
- V-214916
- V-81713
- Rule IDs
-
- SV-214916r609363_rule
- SV-96427
Checks: C-16116r397320_chk
To check if the system is configured to process ICMP timestamp requests, run the following command: sysctl net.inet.icmp.timestamp If the value is not set to "0", this is a finding.
Fix: F-16114r397321_fix
To disable ICMP timestamp responses, add the following line to "/etc/sysctl.conf", creating the file if necessary: net.inet.icmp.timestamp=0
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-13-001235
- Vuln IDs
-
- V-214917
- V-81715
- Rule IDs
-
- SV-214917r609363_rule
- SV-96429
Checks: C-16117r397323_chk
To list the network devices that are enabled on the system, run the following command: /usr/bin/sudo /usr/sbin/networksetup -listallnetworkservices A disabled device will have an asterisk in front of its name. If any listed device that is not in use is missing this asterisk, this is a finding.
Fix: F-16115r397324_fix
To disable a network device, run the following command, substituting the name of the device in place of "'<networkservice>'": /usr/bin/sudo /usr/sbin/networksetup -setnetworkserviceenabled '<networkservice>' off
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AOSX-13-001270
- Vuln IDs
-
- V-214918
- V-81717
- Rule IDs
-
- SV-214918r609363_rule
- SV-96431
Checks: C-16118r397326_chk
To check if Internet Sharing is disabled, use the following command: /usr/bin/sudo /bin/launchctl print-disabled system | /usr/bin/grep com.apple.NetworkSharing If the results do not show the following, this is a finding: "com.apple.NetworkSharing" => true
Fix: F-16116r397327_fix
To disable Internet Sharing, run the following command: /usr/bin/sudo /bin/launchctl disable system/com.apple.NetworkSharing The system may need to be restarted for the update to take effect.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AOSX-13-001275
- Vuln IDs
-
- V-214919
- V-81719
- Rule IDs
-
- SV-214919r609363_rule
- SV-96433
Checks: C-16119r397329_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-16117r397330_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
- AC-7
- Severity
- M
- CCI
- CCI-002238
- Version
- AOSX-13-001324
- Vuln IDs
-
- V-214920
- V-81721
- Rule IDs
-
- SV-214920r609363_rule
- SV-96435
Checks: C-16120r397332_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-16118r397333_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 password 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 password 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-000044
- Version
- AOSX-13-001325
- Vuln IDs
-
- V-214921
- V-81723
- Rule IDs
-
- SV-214921r609363_rule
- SV-96437
Checks: C-16121r397335_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: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep maxFailedAttempts If the return is null, or not, “maxFailedAttempts = 3”, 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-16119r397336_fix
This setting may be enforced using the "Passcode Policy" configuration profile or by a directory service. To set the password 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 <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 password 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-7
- Severity
- M
- CCI
- CCI-002238
- Version
- AOSX-13-001327
- Vuln IDs
-
- V-214922
- V-81725
- Rule IDs
-
- SV-214922r609363_rule
- SV-96439
Checks: C-16122r397338_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-16120r397339_fix
This setting may be enforced using the "Passcode Policy" configuration profile or by a directory service. To set the password 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 password 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
- AU-5
- Severity
- M
- CCI
- CCI-000140
- Version
- AOSX-13-001355
- Vuln IDs
-
- V-214923
- V-81727
- Rule IDs
-
- SV-214923r609363_rule
- SV-96441
Checks: C-16123r397341_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-16121r397342_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
- CM-6
- Severity
- H
- CCI
- CCI-000366
- Version
- AOSX-13-001465
- Vuln IDs
-
- V-214924
- V-81729
- Rule IDs
-
- SV-214924r609363_rule
- SV-96443
Checks: C-16124r397344_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-16122r397345_fix
Install an approved antivirus solution onto the system.
- RMF Control
- CM-7
- Severity
- L
- CCI
- CCI-000381
- Version
- AOSX-13-002050
- Vuln IDs
-
- V-214925
- V-81731
- Rule IDs
-
- SV-214925r609363_rule
- SV-96445
Checks: C-16125r397347_chk
To check if AirDrop has been disabled, run the following command: sudo /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep DisableAirDrop If the result is not "DisableAirDrop = 1", this is a finding.
Fix: F-16123r397348_fix
Disabling AirDrop is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- CM-6
- Severity
- H
- CCI
- CCI-000366
- Version
- AOSX-13-002060
- Vuln IDs
-
- V-214926
- V-81733
- Rule IDs
-
- SV-214926r609363_rule
- SV-96447
Checks: C-16126r397350_chk
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-16124r397351_fix
Integrate the system into an existing directory services infrastructure.
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000199
- Version
- AOSX-13-002085
- Vuln IDs
-
- V-214927
- V-81735
- Rule IDs
-
- SV-214927r609363_rule
- SV-96449
Checks: C-16127r397353_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 users to change their passwords every 60 days: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep maxPINAgeInDays If the return is null, or is not “maxPINAgeInDays = 60” or set to a smaller value, this is a finding. If password policy is set with the "pwpolicy" utility, run the following command instead: /usr/bin/sudo /usr/bin/pwpolicy getaccountpolicies Look for the line <key>policyCategoryPasswordChange</key>. If it does not exist, and password policy is not controlled by a directory service, this is a finding. Otherwise, in the array section that follows it, there should be a <dict> section that contains a check <string> that compares the variable "policyAttributeLastPasswordChangeTime" to the variable "policyAttributeCurrentTime". It may contain additional variables defined in the "policyParameters" section that follows it. All comparisons are done in seconds. If this check allows users to log in with passwords older than "60" days, or if no such check exists, this is a finding.
Fix: F-16125r397354_fix
This setting may be enforced using the "Passcode Policy" configuration profile or by a directory service. To set the password 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. If the file does not yet contain any policy settings, replace <dict/> with <dict></dict>. If there already is a policy block that refers to password expiration, ensure it is set to "60" days. If the line "<key>policyCategoryPasswordChange</key>" is not present in the file, add the following text immediately after the opening <dict> tag in the file: <key>policyCategoryPasswordChange</key> <array> <dict> <key>policyContent</key> <string>policyAttributeCurrentTime > policyAttributeLastPasswordChangeTime + (policyAttributeExpiresEveryNDays * 24 * 60 * 60)</string> <key>policyIdentifier</key> <string>Password Change Interval</string> <key>policyParameters</key> <dict> <key>policyAttributeExpiresEveryNDays</key> <integer>60</integer> </dict> </dict> </array> If the line "<key>policyCategoryPasswordChange</key>" is already present in the file, the following text should be added just after the opening <array> tag that follows the line instead: <dict> <key>policyContent</key> <string>policyAttributeCurrentTime > policyAttributeLastPasswordChangeTime + (policyAttributeExpiresEveryNDays * 24 * 60 * 60)</string> <key>policyIdentifier</key> <string>Password Change Interval</string> <key>policyParameters</key> <dict> <key>policyAttributeExpiresEveryNDays</key> <integer>60</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 password 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
- IA-5
- Severity
- M
- CCI
- CCI-000200
- Version
- AOSX-13-002090
- Vuln IDs
-
- V-214928
- V-81737
- Rule IDs
-
- SV-214928r609363_rule
- SV-96451
Checks: C-16128r397356_chk
Password policy can be set with the "Password Policy" 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 users cannot reuse one of their five previously used passwords: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep pinHistory If the return in null or not “pinHistory = 5” or greater, this is a finding. If password policy is set with the "pwpolicy" utility, run the following command instead: /usr/bin/sudo /usr/bin/pwpolicy getaccountpolicies Look for the line "<key>policyCategoryPasswordContent</key>". If it does not exist, and password policy is not controlled by a directory service, this is a finding. Otherwise, in the array section that follows it, there should be a <dict> section that contains a check <string> such as "<string>none policyAttributePasswordHashes in policyAttributePasswordHistory</string>". This searches for the hash of the user-entered password in the list of previous password hashes. In the "policyParameters" section that follows it, "policyAttributePasswordHistoryDepth" must be set to "5" or greater. If this parameter is not set to "5" or greater, or if no such check exists, this is a finding.
Fix: F-16126r397357_fix
This setting may be enforced using the "Passcode Policy" configuration profile or by a directory service. To set the password 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. If the file does not yet contain any policy settings, replace <dict/> with <dict></dict>. If there already is a policy block that refers to password history, ensure it is set to "5". If the line "<key>policyCategoryPasswordContent</key>" is not present in the file, add the following text immediately after the opening <dict> tag in the file: <key>policyCategoryPasswordContent</key> <array> <dict> <key>policyContent</key> <string>none policyAttributePasswordHashes in policyAttributePasswordHistory</string> <key>policyIdentifier</key> <string>Password History</string> <key>policyParameters</key> <dict> <key>policyAttributePasswordHistoryDepth</key> <integer>5</integer> </dict> </dict> </array> If the line "<key>policyCategoryPasswordContent</key>" is already present in the file, the following text should be added just after the opening <array> tag that follows the line instead: <dict> <key>policyContent</key> <string>none policyAttributePasswordHashes in policyAttributePasswordHistory</string> <key>policyIdentifier</key> <string>Password History</string> <key>policyParameters</key> <dict> <key>policyAttributePasswordHistoryDepth</key> <integer>5</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 password 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
- SI-11
- Severity
- M
- CCI
- CCI-001314
- Version
- AOSX-13-002105
- Vuln IDs
-
- V-214929
- V-81739
- Rule IDs
-
- SV-214929r609363_rule
- SV-96453
Checks: C-16129r397359_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-16127r397360_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-13-002106
- Vuln IDs
-
- V-214930
- V-81741
- Rule IDs
-
- SV-214930r609363_rule
- SV-96455
Checks: C-16130r397362_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-16128r397363_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
- SI-11
- Severity
- M
- CCI
- CCI-001314
- Version
- AOSX-13-002107
- Vuln IDs
-
- V-214931
- V-81743
- Rule IDs
-
- SV-214931r609363_rule
- SV-96457
Checks: C-16131r397365_chk
These commands check for log files that exist on the system and print out the list of ACLs if there are any. /usr/bin/sudo ls -ld@ $(/usr/bin/grep -v '^#' /etc/newsyslog.conf | awk '{ print $1 }') 2> /dev/null /usr/bin/sudo ls -ld@ $(/usr/bin/grep -e '^>' /etc/asl.conf /etc/asl/* | awk '{ print $2 }') 2> /dev/null ACLs will be listed under any file that may contain them (i.e., "0: group:admin allow list,readattr,reaadextattr,readsecurity"). If any system log file contains this information, this is a finding.
Fix: F-16129r397366_fix
For any log file that returns an ACL, run the following command: /usr/bin/sudo chmod -N [log file] [log file] is the full path to the log file in question.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000172
- Version
- AOSX-13-002110
- Vuln IDs
-
- V-214932
- V-81745
- Rule IDs
-
- SV-214932r609363_rule
- SV-96459
Checks: C-16132r397368_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-16130r397369_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
- AC-11
- Severity
- M
- CCI
- CCI-000058
- Version
- AOSX-13-030014
- Vuln IDs
-
- V-214933
- V-81747
- Rule IDs
-
- SV-214933r609363_rule
- SV-96461
Checks: C-16133r397371_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-16131r397372_fix
This is now in the smartcard payload. <key>tokenRemovalAction</key> <integer>1</integer>
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000186
- Version
- AOSX-13-067035
- Vuln IDs
-
- V-214934
- V-81749
- Rule IDs
-
- SV-214934r609363_rule
- SV-96463
Checks: C-16134r397374_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 output is null or not "checkCertificateTrust = 1;" this is a finding.
Fix: F-16132r397375_fix
This setting is enforced using the "Smartcard" configuration profile.
- RMF Control
- CM-11
- Severity
- M
- CCI
- CCI-001812
- Version
- AOSX-13-362149
- Vuln IDs
-
- V-214935
- V-81751
- Rule IDs
-
- SV-214935r609363_rule
- SV-96465
Checks: C-16135r397377_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 5 familyControlsEnabled | grep “/Users" If the result is null, or does not contain “/Users/“, this is a finding
Fix: F-16133r397378_fix
This setting is enforced using the "Restrictions Policy" configuration profile.
- RMF Control
- MA-4
- Severity
- M
- CCI
- CCI-003123
- Version
- AOSX-13-000054
- Vuln IDs
-
- V-233625
- Rule IDs
-
- SV-233625r609363_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
- MA-4
- Severity
- M
- CCI
- CCI-000877
- Version
- AOSX-13-000055
- Vuln IDs
-
- V-233626
- Rule IDs
-
- SV-233626r609363_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
- MA-4
- Severity
- M
- CCI
- CCI-003123
- Version
- AOSX-13-000056
- Vuln IDs
-
- V-233627
- Rule IDs
-
- SV-233627r609363_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-33582r591070_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.*
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-13-000057
- Vuln IDs
-
- V-237767
- V-81481
- Rule IDs
-
- SV-237767r648733_rule
- SV-96195
Checks: C-40981r648732_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-33737r607345_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.