Apple OS X 10.9 (Mavericks) Workstation Security Technical Implementation Guide
Pick two releases to diff their requirements.
Open a previous version of this STIG.
Digest of Updates −1
Comparison against the immediately-prior release (V1R1). Rule matching uses the Group Vuln ID. Content-change detection compares the rule’s description, check, and fix text after stripping inline markup — cosmetic-only edits aren’t flagged.
Removed rules 1
- V-58447 Medium IP forwarding for IPv6 must not be enabled.
- RMF Control
- AC-11
- Severity
- L
- CCI
- CCI-000060
- Version
- AOSX-09-000005
- Vuln IDs
-
- V-58251
- Rule IDs
-
- SV-72681r1_rule
Checks: C-59075r1_chk
To view the currently selected screen saver for the logged in user, run the following command: system_profiler SPConfigurationProfileDataType | grep moduleName If there is no result or defined moduleName, this is a finding.
Fix: F-63565r1_fix
This setting is enforced using a configuration profile.
- RMF Control
- AC-11
- Severity
- M
- CCI
- CCI-000057
- Version
- AOSX-09-000010
- Vuln IDs
-
- V-58253
- Rule IDs
-
- SV-72683r1_rule
Checks: C-59077r1_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: system_profiler SPConfigurationProfileDataType | grep idleTime The check should return a value of '900' or less for idleTime. If not, this is a finding.
Fix: F-63567r1_fix
This setting is enforced using a configuration profile.
- RMF Control
- AC-11
- Severity
- M
- CCI
- CCI-000056
- Version
- AOSX-09-000020
- Vuln IDs
-
- V-58255
- Rule IDs
-
- SV-72685r1_rule
Checks: C-59079r1_chk
To check if the system will prompt users to enter their passwords to unlock the screensaver, run the following command: system_profiler SPConfigurationProfileDataType | grep askForPassword If there is no result, or if askForPassword is not set to '1', this is a finding.
Fix: F-63569r1_fix
This setting is enforced using a configuration profile.
- RMF Control
- AC-17
- Severity
- M
- CCI
- CCI-000067
- Version
- AOSX-09-000030
- Vuln IDs
-
- V-58257
- Rule IDs
-
- SV-72687r1_rule
Checks: C-59081r1_chk
To check to make sure the audit daemon is configured to log all login events, both local and remote, run the following command: sudo grep ^flags /etc/security/audit_control The flag 'lo' should be included in the list of flags set. If it is not, this is a finding.
Fix: F-63571r1_fix
To make sure the appropriate flags are enabled for auditing, run the following command: sudo sed -i.bak '/^flags/ s/$/,lo/' /etc/security/audit_control; sudo audit -s A text editor may also be used to implement the required update to the /etc/security/audit_control file.
- RMF Control
- AC-17
- Severity
- H
- CCI
- CCI-000068
- Version
- AOSX-09-000035
- Vuln IDs
-
- V-58259
- Rule IDs
-
- SV-72689r1_rule
Checks: C-59083r1_chk
The service 'rexec' should be disabled, to check the status of the service, run the following command: sudo /usr/libexec/PlistBuddy -c 'print com.apple.rexecd:Disabled' /var/db/launchd.db/com.apple.launchd/overrides.plist If the returned value isn't 'true' or doesn't exist, this is a finding.
Fix: F-63573r1_fix
To disable the 'rexec' service, run the following command: sudo defaults write /private/var/db/launchd.db/com.apple.launchd/overrides.plist 'com.apple.rexecd' -dict Disabled -bool true
- RMF Control
- AC-17
- Severity
- H
- CCI
- CCI-001453
- Version
- AOSX-09-000040
- Vuln IDs
-
- V-58261
- Rule IDs
-
- SV-72691r1_rule
Checks: C-59085r1_chk
The service 'telnet' should be disabled, to check the status of the service, run the following command: sudo /usr/libexec/PlistBuddy -c 'print com.apple.telnetd:Disabled' /var/db/launchd.db/com.apple.launchd/overrides.plist If the returned value isn't 'true' or doesn't exist, this is a finding.
Fix: F-63575r1_fix
To set the telnet service to disabled, run the following command: sudo defaults write /private/var/db/launchd.db/com.apple.launchd/overrides.plist 'com.apple.telnetd' -dict Disabled -bool true
- RMF Control
- CM-7
- Severity
- H
- CCI
- CCI-000381
- Version
- AOSX-09-000050
- Vuln IDs
-
- V-58263
- Rule IDs
-
- SV-72693r1_rule
Checks: C-59087r1_chk
The 'rshd' service should be disabled. To check the status of the service, run the following command: sudo /usr/libexec/PlistBuddy -c 'print com.apple.rshd:Disabled' /var/db/launchd.db/com.apple.launchd/overrides.plist If the returned value isn't 'true', this is a finding.
Fix: F-63577r1_fix
To disable the 'rshd' service, run the following command: sudo defaults write /private/var/db/launchd.db/com.apple.launchd/overrides.plist 'com.apple.rshd' -dict Disabled -bool true
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-09-000055
- Vuln IDs
-
- V-58265
- Rule IDs
-
- SV-72695r1_rule
Checks: C-59089r1_chk
To check if screen sharing is disabled, run the following command: sudo /usr/libexec/PlistBuddy -c 'print com.apple.screensharing:Disabled' /var/db/launchd.db/com.apple.launchd/overrides.plist If the returned value isn't 'true' or doesn't exist, this is a finding.
Fix: F-63579r1_fix
To disable screen sharing, run the following command: sudo defaults write /private/var/db/launchd.db/com.apple.launchd/overrides.plist 'com.apple.screensharing' -dict Disabled -bool true
- RMF Control
- CM-6
- Severity
- L
- CCI
- CCI-000366
- Version
- AOSX-09-000065
- Vuln IDs
-
- V-58267
- Rule IDs
-
- SV-72697r1_rule
Checks: C-59091r1_chk
To check if there are any hardware components for Bluetooth loaded in the system, run the following command: sudo kextstat | grep -i bluetooth If there is a result, this is a finding.
Fix: F-63581r1_fix
Removing the kernel extensions for Bluetooth will remove the system's ability to load Bluetooth devices, use the following commands to remove them: sudo rm -rf /System/Library/Extensions/IOBluetoothFamily.kext /System/Library/Extensions/IOBluetoothHIDDriver.kext; sudo touch /System/Library/Extensions
- RMF Control
- AC-18
- Severity
- M
- CCI
- CCI-001443
- Version
- AOSX-09-000070
- Vuln IDs
-
- V-58269
- Rule IDs
-
- SV-72699r1_rule
Checks: C-59093r1_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: sudo 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-63583r1_fix
To disable the Wi-Fi network device, run the following command: sudo networksetup -setnetworkserviceenabled 'Wi-Fi' off
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-09-000075
- Vuln IDs
-
- V-58271
- Rule IDs
-
- SV-72701r1_rule
Checks: C-59095r1_chk
To check if IR support is disabled, run the following command: sudo defaults read /Library/Preferences/com.apple.driver.AppleIRController DeviceEnabled If the result is not '0', this is a finding.
Fix: F-63585r1_fix
To disable IR, run the following command: sudo defaults write /Library/Preferences/com.apple.driver.AppleIRController DeviceEnabled -bool FALSE
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-09-000085
- Vuln IDs
-
- V-58273
- Rule IDs
-
- SV-72703r1_rule
Checks: C-59097r1_chk
To check if the system has the correct setting for blank CDs in the configuration profile, run the following command: system_profiler SPConfigurationProfileDataType | 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-63587r1_fix
This setting is enforced using a configuration profile.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-09-000090
- Vuln IDs
-
- V-58275
- Rule IDs
-
- SV-72705r1_rule
Checks: C-59101r1_chk
To check if the system has the correct setting for blank DVDs in the configuration profile, run the following command: system_profiler SPConfigurationProfileDataType | 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-63591r1_fix
This setting is enforced using a configuration profile.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-09-000095
- Vuln IDs
-
- V-58277
- Rule IDs
-
- SV-72707r1_rule
Checks: C-59103r2_chk
To check if the system has the correct setting for music CDs in the configuration profile, run the following command: system_profiler SPConfigurationProfileDataType | 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-63593r1_fix
This setting is enforced using a configuration profile.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-09-000100
- Vuln IDs
-
- V-58279
- Rule IDs
-
- SV-72709r1_rule
Checks: C-59105r2_chk
To check if the system has the correct setting for picture CDs in the configuration profile, run the following command: system_profiler SPConfigurationProfileDataType | 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-63595r1_fix
This setting is enforced using a configuration profile.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-09-000105
- Vuln IDs
-
- V-58281
- Rule IDs
-
- SV-72711r1_rule
Checks: C-59107r2_chk
To check if the system has the correct setting for video DVDs in the configuration profile, run the following command: system_profiler SPConfigurationProfileDataType | 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-63597r1_fix
This setting is enforced using a configuration profile.
- RMF Control
- AC-2
- Severity
- M
- CCI
- CCI-000016
- Version
- AOSX-09-000110
- Vuln IDs
-
- V-58283
- Rule IDs
-
- SV-72713r1_rule
Checks: C-59109r1_chk
If a temporary user has been created on the workstation, check the expiration settings using the following command, substituting the correct user name in place of username: sudo pwpolicy -u username get-effective-policy | tr ' ' '\n' | grep 'usingHardExpirationDate\|hardExpireDateGMT' The value of 'usingHardExpirationDate' should be '1', and the value for the 'hardExpireDateGMT' should be a valid date. If they are not set correctly, and password policy is not controlled by a directory server, this is a finding.
Fix: F-63599r2_fix
To set an expiration date for a temporary account, use the following command, substituting the correct user name in place of username: sudo pwpolicy -u username setpolicy 'usingHardExpirationDate=1 hardExpireDateGMT=mm/dd/yy'
- RMF Control
- AC-2
- Severity
- M
- CCI
- CCI-001682
- Version
- AOSX-09-000115
- Vuln IDs
-
- V-58285
- Rule IDs
-
- SV-72715r1_rule
Checks: C-59111r1_chk
If an emergency account has been created on the workstation, check the expiration settings using the following command, replacing username with the correct value: sudo pwpolicy -u username get-effective-policy | tr ' ' '\n' | grep 'usingHardExpirationDate\|maxMinutesUntilDisabled If anything is returned, this is a finding.
Fix: F-63601r1_fix
To remove all pwpolicy settings for the emergency account, run the following command, replacing username with the correct value: sudo dscl . -delete /Users/username PasswordPolicyOptions
- RMF Control
- AC-2
- Severity
- M
- CCI
- CCI-000018
- Version
- AOSX-09-000120
- Vuln IDs
-
- V-58287
- Rule IDs
-
- SV-72717r1_rule
Checks: C-59113r1_chk
In order to view the currently configured flags for the audit daemon, run the following command: sudo grep ^flags /etc/security/audit_control The account creation events 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-63603r1_fix
To make sure the appropriate flags are enabled for auditing, run the following command: sudo sed -i.bak '/^flags/ s/$/,ad/' /etc/security/audit_control; sudo audit -s A text editor may also be used to implement the required update to the /etc/security/audit_control file.
- RMF Control
- AC-2
- Severity
- M
- CCI
- CCI-001403
- Version
- AOSX-09-000125
- Vuln IDs
-
- V-58289
- Rule IDs
-
- SV-72719r1_rule
Checks: C-59115r1_chk
In order to view the currently configured flags for the audit daemon, run the following command: sudo grep ^flags /etc/security/audit_control The account creation events 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-63605r1_fix
To make sure the appropriate flags are enabled for auditing, run the following command: sudo sed -i.bak '/^flags/ s/$/,ad/' /etc/security/audit_control; sudo audit -s A text editor may also be used to implement the required update to the /etc/security/audit_control file.
- RMF Control
- AC-2
- Severity
- M
- CCI
- CCI-001404
- Version
- AOSX-09-000130
- Vuln IDs
-
- V-58291
- Rule IDs
-
- SV-72721r1_rule
Checks: C-59117r1_chk
In order to view the currently configured flags for the audit daemon, run the following command: sudo grep ^flags /etc/security/audit_control The account modification events 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-63607r1_fix
To make sure the appropriate flags are enabled for auditing, run the following command: sudo sed -i.bak '/^flags/ s/$/,ad/' /etc/security/audit_control; sudo audit -s A text editor may also be used to implement the required update to the /etc/security/audit_control file.
- RMF Control
- AC-2
- Severity
- M
- CCI
- CCI-001405
- Version
- AOSX-09-000135
- Vuln IDs
-
- V-58293
- Rule IDs
-
- SV-72723r1_rule
Checks: C-59119r1_chk
In order to view the currently configured flags for the audit daemon, run the following command: sudo grep ^flags /etc/security/audit_control The account modification events 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-63609r1_fix
To make sure the appropriate flags are enabled for auditing, run the following command: sudo sed -i.bak '/^flags/ s/$/,ad/' /etc/security/audit_control; sudo audit -s A text editor may also be used to implement the required update to the /etc/security/audit_control file.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AOSX-09-000139
- Vuln IDs
-
- V-58295
- Rule IDs
-
- SV-72725r1_rule
Checks: C-59121r1_chk
SMB File Sharing must be disabled. To check if SMB File Sharing is disabled, run the following command: sudo /usr/libexec/PlistBuddy -c 'print com.apple.smbd:Disabled' /var/db/launchd.db/com.apple.launchd/overrides.plist If the returned value isn't 'true', this is a finding.
Fix: F-63611r1_fix
To disable SMB File Sharing, run the following command: sudo defaults write /private/var/db/launchd.db/com.apple.launchd/overrides.plist 'com.apple.smbd' -dict Disabled -bool true
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AOSX-09-000140
- Vuln IDs
-
- V-58297
- Rule IDs
-
- SV-72727r1_rule
Checks: C-59123r1_chk
Apple File (AFP) Sharing must be disabled. To check if Apple File (AFP) Sharing is disabled, run the following command: sudo /usr/libexec/PlistBuddy -c 'print com.apple.AppleFileServer:Disabled' /var/db/launchd.db/com.apple.launchd/overrides.plist If the returned value isn't 'true', this is a finding.
Fix: F-63613r1_fix
To disable Apple File (AFP) Sharing, run the following command: sudo defaults write /private/var/db/launchd.db/com.apple.launchd/overrides.plist 'com.apple.AppleFileServer' -dict Disabled -bool true
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AOSX-09-000141
- Vuln IDs
-
- V-58299
- Rule IDs
-
- SV-72729r1_rule
Checks: C-59125r1_chk
The NFS daemon must be disabled. To check if NFS is disabled, run the following command: sudo /usr/libexec/PlistBuddy -c 'print com.apple.nfsd:Disabled' /var/db/launchd.db/com.apple.launchd/overrides.plist If the returned value isn't 'true', this is a finding.
Fix: F-63615r1_fix
To disable NFS, run the following command: sudo defaults write /private/var/db/launchd.db/com.apple.launchd/overrides.plist 'com.apple.nfsd' -dict Disabled -bool true
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AOSX-09-000142
- Vuln IDs
-
- V-58301
- Rule IDs
-
- SV-72731r1_rule
Checks: C-59127r1_chk
The NFS lock daemon must be disabled. To check if the NFS lock daemon is disabled, run the following command: sudo /usr/libexec/PlistBuddy -c 'print com.apple.lockd:Disabled' /var/db/launchd.db/com.apple.launchd/overrides.plist If the returned value isn't 'true', this is a finding.
Fix: F-63617r1_fix
To disable the NFS lock daemon, run the following command: sudo defaults write /private/var/db/launchd.db/com.apple.launchd/overrides.plist 'com.apple.lockd' -dict Disabled -bool true
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AOSX-09-000143
- Vuln IDs
-
- V-58303
- Rule IDs
-
- SV-72733r1_rule
Checks: C-59129r1_chk
The NFS stat daemon must be disabled. To check if the NFS stat daemon is disabled, run the following command: sudo /usr/libexec/PlistBuddy -c 'print com.apple.statd.notify:Disabled' /var/db/launchd.db/com.apple.launchd/overrides.plist If the returned value isn't 'true', this is a finding.
Fix: F-63619r1_fix
To disable the NFS stat daemon, run the following command: sudo defaults write /private/var/db/launchd.db/com.apple.launchd/overrides.plist 'com.apple.statd.notify' -dict Disabled -bool true
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-09-000155
- Vuln IDs
-
- V-58305
- Rule IDs
-
- SV-72735r1_rule
Checks: C-59131r1_chk
The system firewall must be configured with a default-deny policy. Ask the SA or ISSO if an approved firewall is loaded on the system. The recommended system is the McAfee HBSS. If there is no firewall installed on the system, this is a finding. If there is a firewall installed and it is not configured with a default deny policy, this is a finding.
Fix: F-63621r1_fix
Install an approved HBSS or firewall solution onto the system and configure it with a default-deny policy.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000172
- Version
- AOSX-09-000170
- Vuln IDs
-
- V-58307
- Rule IDs
-
- SV-72737r1_rule
Checks: C-59133r1_chk
In order to view the currently configured flags for the audit daemon, run the following command: sudo grep ^flags /etc/security/audit_control Privileged activities 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-63623r1_fix
To make sure the appropriate flags are enabled for auditing, run the following command: sudo sed -i.bak '/^flags/ s/$/,ad/' /etc/security/audit_control; sudo audit -s A text editor may also be used to implement the required update to the /etc/security/audit_control file.
- RMF Control
- AC-8
- Severity
- L
- CCI
- CCI-000048
- Version
- AOSX-09-000185
- Vuln IDs
-
- V-58309
- Rule IDs
-
- SV-72739r1_rule
Checks: C-59135r2_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: ls -l /Library/Security/PolicyBanner.rtf* If neither PolicyBanner.rtf nor PolicyBanner.rtfd exists, this is a finding. For systems that allow remote access through SSH, run the following command to ensure that /etc/motd exists: ls -l /etc/motd If /etc/motd does not exist, this is a finding. The banner text of each 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-63625r1_fix
Create a RTF formatted file containing the required text. Name the file PolicyBanner.rtf or PolicyBanner.rtfd and place it in /Library/Security/ For systems that allow remote access through SSH, create a plain text file containing the required text and save it as /etc/motd.
- RMF Control
- AC-8
- Severity
- M
- CCI
- CCI-001384
- Version
- AOSX-09-000195
- Vuln IDs
-
- V-58311
- Rule IDs
-
- SV-72741r1_rule
Checks: C-59137r2_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: ls -l /Library/Security/PolicyBanner.rtf* If neither PolicyBanner.rtf nor PolicyBanner.rtfd exists, this is a finding. For systems that allow remote access through SSH, run the following command to ensure that /etc/motd exists: ls -l /etc/motd If /etc/motd does not exist, this is a finding. The banner text of each 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-63627r1_fix
Create a RTF formatted file containing the required text. Name the file PolicyBanner.rtf or PolicyBanner.rtfd and place it in /Library/Security/ For systems that allow remote access through SSH, create a plain text file containing the required text and save it as /etc/motd.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000172
- Version
- AOSX-09-000200
- Vuln IDs
-
- V-58313
- Rule IDs
-
- SV-72743r1_rule
Checks: C-59139r1_chk
In order to view the currently configured flags for the audit daemon, run the following command: sudo 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-63629r1_fix
To make sure the appropriate flags are enabled for auditing, run the following command: sudo sed -i.bak '/^flags/ s/$/,aa/' /etc/security/audit_control; sudo audit -s A text editor may also be used to implement the required update to the /etc/security/audit_control file.
- RMF Control
- AU-14
- Severity
- M
- CCI
- CCI-001464
- Version
- AOSX-09-000230
- Vuln IDs
-
- V-58315
- Rule IDs
-
- SV-72745r1_rule
Checks: C-59141r1_chk
To check if the audit service is running, use the following command: sudo launchctl list | grep com.apple.auditd If nothing is returned, the audit service is not running and this is a finding.
Fix: F-63631r1_fix
To enable the audit service, run the following command: sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.auditd.plist
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- AOSX-09-000240
- Vuln IDs
-
- V-58317
- Rule IDs
-
- SV-72747r1_rule
Checks: C-59143r2_chk
The options to configure the audit daemon are located in the /etc/security/audit_control file. To view the current settings, run the following command: sudo grep ^flags /etc/security/audit_control If the 'lo', 'ad', and 'aa' options are not set, this is a finding.
Fix: F-63633r1_fix
To set the audit flags to the recommended setting, run the following command to add the flags 'lo', 'ad', and 'aa' all at once: sudo sed -i.bak '/^flags/ s/$/,lo,ad,aa/' /etc/security/audit_control; sudo audit -s A text editor may also be used to implement the required update to the /etc/security/audit_control file.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000172
- Version
- AOSX-09-000245
- Vuln IDs
-
- V-58319
- Rule IDs
-
- SV-72749r1_rule
Checks: C-59145r1_chk
In order to view the currently configured flags for the audit daemon, run the following command: sudo grep ^flags /etc/security/audit_control Privileged access, including the creation, modification, and deletion of local user accounts, is logged via the 'ad' flag. If 'ad' is not listed in the result of the check, this is a finding.
Fix: F-63635r1_fix
To make sure the appropriate flags are enabled for auditing, run the following command: sudo sed -i.bak '/^flags/ s/$/,ad/' /etc/security/audit_control; sudo audit -s A text editor may also be used to implement the required update to the /etc/security/audit_control file.
- RMF Control
- AU-4
- Severity
- M
- CCI
- CCI-001849
- Version
- AOSX-09-000295
- Vuln IDs
-
- V-58321
- Rule IDs
-
- SV-72751r1_rule
Checks: C-59147r1_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: sudo 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-63637r1_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': sudo sed -i.bak 's/.*expire-after.*/expire-after:7d/' /etc/security/audit_control; sudo audit -s
- RMF Control
- AU-5
- Severity
- M
- CCI
- CCI-001855
- Version
- AOSX-09-000305
- Vuln IDs
-
- V-58323
- Rule IDs
-
- SV-72753r1_rule
Checks: C-59149r1_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: sudo grep ^minfree /etc/security/audit_control If this returns no results, or does not contain 25, this is a finding.
Fix: F-63639r1_fix
Edit the /etc/security/audit_control file, and change the value for 'minfree' to 25. Use the following command to set the 'minfree' value to '25%': sudo sed -i.bak 's/.*minfree.*/minfree:25/' /etc/security/audit_control; sudo audit -s A text editor may also be used to implement the required update to the /etc/security/audit_control file.
- RMF Control
- AU-5
- Severity
- M
- CCI
- CCI-001858
- Version
- AOSX-09-000310
- Vuln IDs
-
- V-58325
- Rule IDs
-
- SV-72755r1_rule
Checks: C-59151r1_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: sudo 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-63641r1_fix
To make auditd log errors to standard error as well as syslogd, run the following command: sudo sed -i.bak 's/logger -p/logger -s -p/' /etc/security/audit_warn; sudo audit -s
- RMF Control
- AU-8
- Severity
- M
- CCI
- CCI-001891
- Version
- AOSX-09-000330
- Vuln IDs
-
- V-58327
- Rule IDs
-
- SV-72757r1_rule
Checks: C-59153r1_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: sudo launchctl list | grep org.ntp.ntpd If nothing is returned, this is a finding. To ensure that an authorized NTP server is configured, run the following command or examine /etc/ntp.conf: sudo grep ^server /etc/ntp.conf 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-63643r1_fix
To enable the NTP service, run the following command: sudo launchctl load -w /System/Library/LaunchDaemons/org.ntp.ntpd.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-09-000335
- Vuln IDs
-
- V-58329
- Rule IDs
-
- SV-72759r1_rule
Checks: C-59155r2_chk
To check the permissions of the audit log files, run the following command: sudo ls -le $(sudo grep '^dir' /etc/security/audit_control | awk -F: '{print $2}') | grep -v current The results should show the permissions (first column) to be 440 or less permissive. If not, this is a finding.
Fix: F-63645r3_fix
For any log files that returns an incorrect permission value, run the following command: 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-000163
- Version
- AOSX-09-000336
- Vuln IDs
-
- V-58331
- Rule IDs
-
- SV-72761r1_rule
Checks: C-59157r2_chk
To check the permissions of the audit log folder, run the following command: sudo ls -lde $(sudo 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 not, this is a finding.
Fix: F-63647r3_fix
For any log folder that returns an incorrect permission value, run the following command: sudo chmod 700 [audit log folder]
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-000164
- Version
- AOSX-09-000337
- Vuln IDs
-
- V-58333
- Rule IDs
-
- SV-72763r1_rule
Checks: C-59159r3_chk
To check if a log file contains ACLs, run the following commands: sudo ls -le $(sudo grep '^dir' /etc/security/audit_control | awk -F: '{print $2}') | 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-63649r2_fix
For any log file that contains ACLs, run the following command: sudo chmod -N [audit log file]
- RMF Control
- CM-5
- Severity
- M
- CCI
- CCI-001499
- Version
- AOSX-09-000435
- Vuln IDs
-
- V-58339
- Rule IDs
-
- SV-72769r1_rule
Checks: C-59165r1_chk
To check the permissions and ownership of the system files and make sure they haven't changed from the original installation, run the following command: sudo diskutil verifyPermissions / Any results indicating User/Group/Permissions differ is a finding.
Fix: F-63655r1_fix
To correct ownership and permissions of files found in the check, run the following command: sudo diskutil repairPermissions /
- RMF Control
- CM-5
- Severity
- H
- CCI
- CCI-001749
- Version
- AOSX-09-000430
- Vuln IDs
-
- V-58341
- Rule IDs
-
- SV-72771r1_rule
Checks: C-59167r1_chk
To check the status of the Security assessment policy subsystem, run the following command: sudo spctl --status | grep enabled If nothing is returned, this is a finding.
Fix: F-63657r1_fix
To enable the Security assessment policy subsystem, run the following command: sudo spctl --master-enable
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-09-000455
- Vuln IDs
-
- V-58343
- Rule IDs
-
- SV-72773r1_rule
Checks: C-59169r1_chk
To check if the computer has a configuration profile applied to the workstation, run the following command: sudo profiles -H If there are no profiles installed, this is a finding.
Fix: F-63659r1_fix
Obtain a configuration profile from an MDM or trusted provider containing the configuration settings required to be applied.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001774
- Version
- AOSX-09-000460
- Vuln IDs
-
- V-58345
- Rule IDs
-
- SV-72775r1_rule
Checks: C-59171r1_chk
To check if there is a configuration policy defined for Application Restrictions, run the following command: sudo profiles -Pv | grep 'Application Restrictions' If nothing is returned, this is a finding.
Fix: F-63661r1_fix
This setting is enforced using a configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AOSX-09-000520
- Vuln IDs
-
- V-58347
- Rule IDs
-
- SV-72777r1_rule
Checks: C-59173r1_chk
The system preference panel iCloud must be removed or disabled along with the Internet Accounts preference pane in a configuration profile. To check for the existence of the iCloud preference panel, run the following command: ls -ld /System/Library/PreferencePanes/iCloudPref.prefPane If anything is returned, and access to the iCloud and Internet Accounts preference panes have not been disabled with a configuration profile, this is a finding.
Fix: F-63663r1_fix
Either disable access to the iCloud and Internet Accounts preference panes through a configuration profile or run the following command to remove the iCloud panel: sudo rm -rf /System/Library/PreferencePanes/iCloudPref.prefPane
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000382
- Version
- AOSX-09-000530
- Vuln IDs
-
- V-58349
- Rule IDs
-
- SV-72779r1_rule
Checks: C-59175r3_chk
Sending diagnostic & usage data to Apple must be disabled. The setting is found in System Preferences->Security & Privacy->Diagnostics & Usage. If the box that says "Send diagnostic & usage data to Apple" is checked, this is a finding. To check if a configuration profile is configured to enforce this setting, run the following command: sudo system_profiler SPConfigurationProfileDataType | grep AutoSubmit If AutoSubmit is not set to '0', this is a finding.
Fix: F-63665r3_fix
The setting "Send diagnostic & usage data to Apple" is found in System Preferences->Security & Privacy->Diagnostics & Usage. Uncheck the box that says "Send diagnostic & usage data to Apple". This setting can be enforced using a configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AOSX-09-000531
- Vuln IDs
-
- V-58351
- Rule IDs
-
- SV-72781r1_rule
Checks: C-59177r1_chk
Find My Mac must be disabled. To check if Find My Mac is disabled on the system, run the following command: sudo /usr/libexec/PlistBuddy -c 'print com.apple.findmymacd:Disabled' /var/db/launchd.db/com.apple.launchd/overrides.plist If the returned value isn't 'true' or doesn't exist, this is a finding.
Fix: F-63667r1_fix
To disable Find My Mac, run the following command: sudo defaults write /private/var/db/launchd.db/com.apple.launchd/overrides.plist 'com.apple.findmymacd' -dict Disabled -bool true
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AOSX-09-000532
- Vuln IDs
-
- V-58353
- Rule IDs
-
- SV-72783r1_rule
Checks: C-59179r1_chk
Find My Mac messenger must be disabled. To check if Find My Mac messenger is disabled on the system, run the following command: sudo /usr/libexec/PlistBuddy -c 'print com.apple.findmymacmessenger:Disabled' /var/db/launchd.db/com.apple.launchd/overrides.plist If the returned value isn't 'true' or doesn't exist, this is a finding.
Fix: F-63669r1_fix
To disable Find My Mac messenger, run the following command: sudo defaults write /private/var/db/launchd.db/com.apple.launchd/overrides.plist 'com.apple.findmymacmessenger' -dict Disabled -bool true
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AOSX-09-000535
- Vuln IDs
-
- V-58355
- Rule IDs
-
- SV-72785r1_rule
Checks: C-59181r2_chk
Location Services must be disabled. The setting is found in System Preferences->Security & Privacy->Location Services. If the box that says 'Enable Location Services' is checked, this is a finding. To check if a configuration profile is configured to enforce this setting, run the following command: sudo system_profiler SPConfigurationProfileDataType | grep DisableLocationServices If DisableLocationServices is not set to '1', this is a finding.
Fix: F-63671r1_fix
The setting "Enable Location Services" is found in System Preferences->Security & Privacy->Location Services. Uncheck the box that says 'Enable Location Services'. This setting can be enforced using a configuration profile.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AOSX-09-000545
- Vuln IDs
-
- V-58357
- Rule IDs
-
- SV-72787r1_rule
Checks: C-59183r1_chk
Bonjour multicast advertising must be disabled on the system. To check if multicast advertisements have been disabled, run the following command: sudo defaults read /System/Library/LaunchDaemons/com.apple.mDNSResponder | grep NoMulticastAdvertisements If nothing is returned, this is a finding.
Fix: F-63673r3_fix
To configure Bonjour to disable multicast advertising, run the following command: sudo /usr/libexec/PlistBuddy -c 'Add :ProgramArguments:2 string '-NoMulticastAdvertisements /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AOSX-09-000550
- Vuln IDs
-
- V-58359
- Rule IDs
-
- SV-72789r1_rule
Checks: C-59185r1_chk
The system must not have the UUCP service active. To check if UUCP is disabled, run the following command: sudo /usr/libexec/PlistBuddy -c 'print com.apple.uucp:Disabled' /var/db/launchd.db/com.apple.launchd/overrides.plist If the returned value isn't 'true', this is a finding.
Fix: F-63675r2_fix
To disable UUCP, run the following command: sudo defaults write /private/var/db/launchd.db/com.apple.launchd/overrides.plist 'com.apple.uucp' -dict Disabled -bool true
- RMF Control
- IA-2
- Severity
- M
- CCI
- CCI-000770
- Version
- AOSX-09-000565
- Vuln IDs
-
- V-58361
- Rule IDs
-
- SV-72791r1_rule
Checks: C-59187r1_chk
To check if SSH has root logins enabled, run the following command: sudo grep ^PermitRootLogin /etc/sshd_config If there is no result, or the result is set to 'yes', this is a finding.
Fix: F-63677r1_fix
In order to make sure that PermitRootLogin is disabled by sshd, run the following command: sudo sed -i.bak 's/^[\#]*PermitRootLogin.*/PermitRootLogin no/' /etc/sshd_config
- RMF Control
- IA-2
- Severity
- M
- CCI
- CCI-001941
- Version
- AOSX-09-000570
- Vuln IDs
-
- V-58363
- Rule IDs
-
- SV-72793r1_rule
Checks: C-59189r2_chk
To check which protocol is configured for sshd, run the following: sudo grep ^Protocol /etc/sshd_config If there is no result or the result is not '2', this is a finding.
Fix: F-63679r1_fix
In order to make sure that 'Protocol 2' is used by sshd, run the following command: sudo sed -i.bak 's/.*Protocol.*/Protocol 2/' /etc/sshd_config
- RMF Control
- IA-2
- Severity
- M
- CCI
- CCI-001942
- Version
- AOSX-09-000575
- Vuln IDs
-
- V-58365
- Rule IDs
-
- SV-72795r1_rule
Checks: C-59191r1_chk
To check which protocol is configured for sshd, run the following: sudo grep ^Protocol /etc/sshd_config If there is no result or the result is not '2', this is a finding.
Fix: F-63681r2_fix
In order to make sure that 'Protocol 2' is used by sshd, run the following command: sudo sed -i.bak 's/.*Protocol.*/Protocol 2/' /etc/sshd_config
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000194
- Version
- AOSX-09-000585
- Vuln IDs
-
- V-58367
- Rule IDs
-
- SV-72797r1_rule
Checks: C-59193r2_chk
To check if the password policy is configured to require that at least one numeric character be used, run the following command: sudo pwpolicy getglobalpolicy | tr ' ' '\n' | grep requiresNumeric If the result is not 'requiresNumeric=1', and password policy is not controlled by a directory server, this is a finding.
Fix: F-63683r1_fix
To set the password policy, run the following command: sudo pwpolicy setglobalpolicy 'requiresNumeric=1'
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000205
- Version
- AOSX-09-000590
- Vuln IDs
-
- V-58369
- Rule IDs
-
- SV-72799r1_rule
Checks: C-59195r1_chk
To check the currently applied policies for password and accounts, use the following command: sudo system_profiler SPConfigurationProfileDataType | grep minLength The parameter minLength should be '15'. If it is less than '15', this is a finding.
Fix: F-63685r1_fix
This setting is enforced using a configuration profile.
- RMF Control
- IA-5
- Severity
- H
- CCI
- CCI-000197
- Version
- AOSX-09-000605
- Vuln IDs
-
- V-58371
- Rule IDs
-
- SV-72801r1_rule
Checks: C-59197r1_chk
The service 'telnet' should be disabled, to check the status of the service, run the following command: sudo /usr/libexec/PlistBuddy -c 'print com.apple.telnetd:Disabled' /var/db/launchd.db/com.apple.launchd/overrides.plist If the returned value isn't 'true' or doesn't exist, this is a finding.
Fix: F-63687r1_fix
To set the telnet service to disabled, run the following command: sudo defaults write /private/var/db/launchd.db/com.apple.launchd/overrides.plist 'com.apple.telnetd' -dict Disabled -bool true
- RMF Control
- MA-4
- Severity
- H
- CCI
- CCI-002890
- Version
- AOSX-09-000690
- Vuln IDs
-
- V-58373
- Rule IDs
-
- SV-72803r1_rule
Checks: C-59199r1_chk
The service 'telnet' should be disabled, to check the status of the service, run the following command: sudo /usr/libexec/PlistBuddy -c 'print com.apple.telnetd:Disabled' /var/db/launchd.db/com.apple.launchd/overrides.plist If the returned value isn't 'true' or doesn't exist, this is a finding.
Fix: F-63689r1_fix
To set the 'telnet' service to disabled, run the following command: sudo defaults write /private/var/db/launchd.db/com.apple.launchd/overrides.plist 'com.apple.telnetd' -dict Disabled -bool true
- RMF Control
- MA-4
- Severity
- H
- CCI
- CCI-003123
- Version
- AOSX-09-000691
- Vuln IDs
-
- V-58375
- Rule IDs
-
- SV-72805r1_rule
Checks: C-59201r1_chk
The service 'telnet' should be disabled, to check the status of the service, run the following command: sudo /usr/libexec/PlistBuddy -c 'print com.apple.telnetd:Disabled' /var/db/launchd.db/com.apple.launchd/overrides.plist If the returned value isn't 'true' or doesn't exist, this is a finding.
Fix: F-63691r1_fix
To set the 'telnet' service to disabled, run the following command: sudo defaults write /private/var/db/launchd.db/com.apple.launchd/overrides.plist 'com.apple.telnetd' -dict Disabled -bool true
- RMF Control
- MA-4
- Severity
- H
- CCI
- CCI-000877
- Version
- AOSX-09-000695
- Vuln IDs
-
- V-58377
- Rule IDs
-
- SV-72807r1_rule
Checks: C-59203r1_chk
The service 'telnet' should be disabled, to check the status of the service, run the following command: sudo /usr/libexec/PlistBuddy -c 'print com.apple.telnetd:Disabled' /var/db/launchd.db/com.apple.launchd/overrides.plist If the returned value isn't 'true' or doesn't exist, this is a finding.
Fix: F-63693r1_fix
To set the 'telnet' service to disabled, run the following command: sudo defaults write /private/var/db/launchd.db/com.apple.launchd/overrides.plist 'com.apple.telnetd' -dict Disabled -bool true
- RMF Control
- CM-5
- Severity
- M
- CCI
- CCI-001749
- Version
- AOSX-09-000710
- Vuln IDs
-
- V-58379
- Rule IDs
-
- SV-72809r1_rule
Checks: C-59205r1_chk
To check to make sure only applications downloaded from the App Store are allowed to run, type the following code: system_profiler SPConfigurationProfileDataType | grep AllowIdentifiedDevelopers If 'AllowIdentifiedDevelopers' is not set to '1', this is a finding.
Fix: F-63695r1_fix
This setting is enforced using a configuration profile.
- RMF Control
- SC-10
- Severity
- M
- CCI
- CCI-001133
- Version
- AOSX-09-000720
- Vuln IDs
-
- V-58383
- Rule IDs
-
- SV-72813r1_rule
Checks: C-59209r1_chk
The SSH daemon ClientAliveInterval option must be set correctly. To check the idle timeout setting for SSH sessions, run the following: sudo grep ^ClientAliveInterval /etc/sshd_config If the setting is not '600', this is a finding.
Fix: F-63699r1_fix
In order to make sure that ClientAliveInterval is set correctly, run the following command: sudo sed -i.bak 's/.*ClientAliveInterval.*/ClientAliveInterval 600/' /etc/sshd_config
- RMF Control
- SC-10
- Severity
- M
- CCI
- CCI-001133
- Version
- AOSX-09-000721
- Vuln IDs
-
- V-58385
- Rule IDs
-
- SV-72815r1_rule
Checks: C-59211r1_chk
The SSH daemon ClientAliveCountMax option must be set correctly. To ensure the SSH idle timeout will occur when the 'ClientAliveCountMax' is set, run the following command: sudo grep ^ClientAliveCountMax /etc/sshd_config If the setting is not 'ClientAliveCountMax 0', this is a finding.
Fix: F-63701r1_fix
In order to make sure that the SSH idle timeout occurs precisely when the 'ClientAliveCountMax' is set, run the following command: sudo sed -i.bak 's/.*ClientAliveCountMax.*/ClientAliveCountMax 0/' /etc/sshd_config
- RMF Control
- SC-10
- Severity
- M
- CCI
- CCI-001133
- Version
- AOSX-09-000722
- Vuln IDs
-
- V-58387
- Rule IDs
-
- SV-72817r1_rule
Checks: C-59213r1_chk
The SSH daemon LoginGraceTime must be set correctly. To check the amount of time that a user can login through SSH, run the following command: sudo grep ^LoginGraceTime /etc/sshd_config If the value is not set to '30' or less, this is a finding.
Fix: F-63703r1_fix
In order to make sure that LoginGraceTime is configured correctly, run the following command: sudo sed -i.bak 's/.*LoginGraceTime.*/LoginGraceTime 30/' /etc/sshd_config
- RMF Control
- SC-13
- Severity
- M
- CCI
- CCI-002450
- Version
- AOSX-09-000750
- Vuln IDs
-
- V-58389
- Rule IDs
-
- SV-72819r1_rule
Checks: C-59215r1_chk
To view a list of installed certificates, run the following command: sudo security dump-keychain | grep labl | awk -F\" '{ print $4 }' If this list does not contain approved certificates, this is a finding.
Fix: F-63705r1_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-001199
- Version
- AOSX-09-000780
- Vuln IDs
-
- V-58391
- Rule IDs
-
- SV-72821r1_rule
Checks: C-59217r1_chk
To check if FileVault 2 is enabled, run the following command: sudo fdesetup status If FileVault is 'Off' and the device is a laptop, this is a finding.
Fix: F-63707r3_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: sudo fdesetup enable After FileVault is initially set up, additional users can be added.
- RMF Control
- SC-28
- Severity
- M
- CCI
- CCI-002476
- Version
- AOSX-09-000786
- Vuln IDs
-
- V-58393
- Rule IDs
-
- SV-72823r1_rule
Checks: C-59219r1_chk
To check if FileVault 2 is enabled, run the following command: sudo fdesetup status If FileVault is 'Off', and the device is a laptop, this is a finding.
Fix: F-63709r3_fix
Open System Preferences->Security & 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: sudo fdesetup enable After FileVault is initially set up, additional users can be added.
- RMF Control
- SC-28
- Severity
- M
- CCI
- CCI-002475
- Version
- AOSX-09-000785
- Vuln IDs
-
- V-58395
- Rule IDs
-
- SV-72825r1_rule
Checks: C-59221r1_chk
To check if FileVault 2 is enabled, run the following command: sudo fdesetup status If FileVault is 'Off', and the device is a laptop, this is a finding.
Fix: F-63711r3_fix
Open System Preferences->Security & 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: sudo fdesetup enable After FileVault is initially set up, additional users can be added.
- RMF Control
- SI-2
- Severity
- M
- CCI
- CCI-001233
- Version
- AOSX-09-000835
- Vuln IDs
-
- V-58397
- Rule IDs
-
- SV-72827r1_rule
Checks: C-59223r1_chk
Ask the SA or 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-63713r2_fix
Install an approved HBSS solution onto the system.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-09-000850
- Vuln IDs
-
- V-58399
- Rule IDs
-
- SV-72829r1_rule
Checks: C-59225r1_chk
To ensure external USB drives are disabled, run the following command: system_profiler SPConfigurationProfileDataType | grep -A 3 harddisk-external If the option 'alert' is not set for 'harddisk-external', this is a finding.
Fix: F-63715r1_fix
This setting is enforced using a configuration profile.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-09-000862
- Vuln IDs
-
- V-58401
- Rule IDs
-
- SV-72831r1_rule
Checks: C-59227r1_chk
To check the status of the usbmuxd daemon, run the following command: sudo launchctl list | grep usbmuxd If there is any output, this is a finding.
Fix: F-63717r1_fix
To disable the usbmuxd daemon, run the following command: sudo launchtctl unload -w /System/Library/LaunchDaemons/com.apple.usbmuxd.plist
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-09-000925
- Vuln IDs
-
- V-58403
- Rule IDs
-
- SV-72833r1_rule
Checks: C-59229r1_chk
To check if the system if configured to automatically log in, run the following command: system_profiler SPConfigurationProfileDataType | grep DisableAutoLoginClient If 'com.apple.login.mcx.DisableAutoLoginClient' is not set to '1', this is a finding.
Fix: F-63923r1_fix
This setting is enforced using a configuration profile.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-09-000930
- Vuln IDs
-
- V-58405
- Rule IDs
-
- SV-72835r1_rule
Checks: C-59231r1_chk
To check if the login window is configured to prompt for user name and password, run the following command: system_profiler SPConfigurationProfileDataType | grep SHOWFULLNAME If there is no result, or SHOWFULLNAME is not set to '1', this is a finding.
Fix: F-63719r1_fix
This setting is enforced using a configuration profile.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-09-000950
- Vuln IDs
-
- V-58407
- Rule IDs
-
- SV-72837r1_rule
Checks: C-59233r1_chk
If HBSS is used, this is not applicable. To check if the OS X firewall has logging enabled, run the following command: /usr/libexec/ApplicationFirewall/socketfilterfw --getloggingmode | grep on If the result does not show 'on', this is a finding.
Fix: F-63721r1_fix
To enable the firewall logging, run the following command: sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setloggingmode on
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-09-000955
- Vuln IDs
-
- V-58409
- Rule IDs
-
- SV-72839r1_rule
Checks: C-59235r1_chk
To check if this setting is disabled run the following command as the primary user: defaults -currentHost read com.apple.Bluetooth RemoteWakeEnabled If the return value is '1', this is a finding.
Fix: F-63723r1_fix
This control needs to be manually changed on the computer by opening System Preferences->Bluetooth, Click Advanced, and make sure the 'Allow Bluetooth devices to wake this computer' is not checked.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-09-000965
- Vuln IDs
-
- V-58411
- Rule IDs
-
- SV-72841r1_rule
Checks: C-59237r2_chk
To check if Bluetooth Sharing is enabled, Open up System Preferences->Sharing and verify that 'Bluetooth Sharing' is not checked 'ON'. If it is 'ON', this is a finding.
Fix: F-63725r2_fix
To disable Bluetooth Sharing, open System Preferences->Sharing and uncheck the box next to Bluetooth Sharing.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000382
- Version
- AOSX-09-000975
- Vuln IDs
-
- V-58413
- Rule IDs
-
- SV-72843r1_rule
Checks: C-59239r1_chk
Remote Apple Events must be disabled. To check if Remote Apple Events is disabled, run the following command: sudo /usr/libexec/PlistBuddy -c 'print com.apple.AEServer:Disabled' /var/db/launchd.db/com.apple.launchd/overrides.plist If the returned value isn't 'true', this is a finding.
Fix: F-63727r1_fix
To disable Remote Apple Events, run the following command: sudo defaults write /private/var/db/launchd.db/com.apple.launchd/overrides.plist 'com.apple.AEServer' -dict Disabled -bool true
- RMF Control
- CM-6
- Severity
- H
- CCI
- CCI-000366
- Version
- AOSX-09-000995
- Vuln IDs
-
- V-58415
- Rule IDs
-
- SV-72845r1_rule
Checks: C-59241r1_chk
To check if the tty_tickets option is set for sudo, run the following command: sudo grep tty_tickets /etc/sudoers If there is no result, this is a finding.
Fix: F-63729r1_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-09-001015
- Vuln IDs
-
- V-58417
- Rule IDs
-
- SV-72847r1_rule
Checks: C-59243r1_chk
To view the umask setting, run the following command: awk '{ print $2 }' /etc/launchd-user.conf If the command produces an error, or the result is not '027', this is a finding.
Fix: F-63731r1_fix
To set the umask setting for user applications, run the following command: sudo sh -c 'echo 'umask 027' > /etc/launchd-user.conf'
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-09-001020
- Vuln IDs
-
- V-58419
- Rule IDs
-
- SV-72849r1_rule
Checks: C-59245r1_chk
To view the umask setting, run the following command: umask If the setting is not '022', this is a finding.
Fix: F-63733r2_fix
To set the umask setting for applications, run the following command: sudo sh -c 'echo 'umask 022' > /etc/launchd.conf'
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-09-001065
- Vuln IDs
-
- V-58421
- Rule IDs
-
- SV-72851r1_rule
Checks: C-59247r1_chk
To list all of the accounts with a UID of '0', run this command: sudo dscl . -list /Users UniqueID | grep -w 0 | wc -l If the result is not '1', this is a finding.
Fix: F-63735r1_fix
Investigate as to why any additional accounts were set up with a UID of '0'. Remove any invalid accounts.
- RMF Control
- CM-6
- Severity
- L
- CCI
- CCI-000366
- Version
- AOSX-09-001075
- Vuln IDs
-
- V-58423
- Rule IDs
-
- SV-72853r1_rule
Checks: C-59249r1_chk
To check that the finder will only present the option to securely empty trash run the following command as the primary user: system_profiler SPConfigurationProfileDataType | grep EmptyTrashSecurely If 'EmptyTrashSecurely' is not set to '1' or there is no result, this is a finding.
Fix: F-63737r1_fix
This setting is enforced using a configuration profile.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-09-001080
- Vuln IDs
-
- V-58425
- Rule IDs
-
- SV-72855r1_rule
Checks: C-59251r2_chk
If an approved HBSS solution is installed per AOSX-09-000835, this is not applicable. To check if the OS X firewall has been enabled, run the following command: sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate If the result is 'disabled', this is a finding.
Fix: F-63739r1_fix
To enable the firewall run the following command: sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate on
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-09-001110
- Vuln IDs
-
- V-58427
- Rule IDs
-
- SV-72857r1_rule
Checks: C-59253r1_chk
To display all directories that are writable by all and not owned by root, run the following command: sudo find / -type d -perm +o+w -not -uid 0 If anything is returned, and those directories are not owned by a local admin or application account, this is a finding.
Fix: F-63741r2_fix
To change the ownership of any finding, run the following command: sudo find / -type d -perm +o+w -not -uid 0 -exec chown root {} \;
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-09-001115
- Vuln IDs
-
- V-58429
- Rule IDs
-
- SV-72859r1_rule
Checks: C-59255r1_chk
To check if the finger service has been disabled, run the following command: sudo /usr/libexec/PlistBuddy -c 'print com.apple.fingerd:Disabled' /var/db/launchd.db/com.apple.launchd/overrides.plist If the returned value isn't 'true' or doesn't exist, this is a finding.
Fix: F-63743r1_fix
To ensure that the finger service is disabled, run the following command: sudo defaults write /private/var/db/launchd.db/com.apple.launchd/overrides.plist 'com.apple.fingerd' -dict Disabled -bool true
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-09-001120
- Vuln IDs
-
- V-58431
- Rule IDs
-
- SV-72861r1_rule
Checks: C-59257r1_chk
Run the following command to view all world-writable directories that have the sticky bit set: sudo find / -type d \( -perm -0002 -a ! -perm -1000 \) If anything is returned, this is a finding.
Fix: F-63745r1_fix
Run the following command to set the sticky bit on all world-writable directories: sudo find / -type d \( -perm -0002 -a ! -perm -1000 \) -exec chmod +t {} \;
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-09-001125
- Vuln IDs
-
- V-58433
- Rule IDs
-
- SV-72863r1_rule
Checks: C-59259r1_chk
To check if the prompt for Apple ID and iCloud are disabled for new users, run the following command: sudo defaults read /System/Library/User\ Template/English.lproj/Library/Preferences/com.apple.SetupAssistant If there is no result, or the results do not include 'DidSeeCloudSetup = 1 AND LastSeenCloudProductVersion = 10.9', this is a finding.
Fix: F-63747r1_fix
To ensure that the prompt for Apple ID and iCloud is disabled, run the following commands: sudo defaults write /System/Library/User\ Template/English.lproj/Library/Preferences/com.apple.SetupAssistant DidSeeCloudSetup -bool TRUE; sudo defaults write /System/Library/User\ Template/English.lproj/Library/Preferences/com.apple.SetupAssistant LastSeenCloudProductVersion '10.9'
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-09-001130
- Vuln IDs
-
- V-58435
- Rule IDs
-
- SV-72865r1_rule
Checks: C-59261r1_chk
To see if any user account has configured an Apple ID for iCloud usage, run the following command: sudo find /Users/ -name 'MobileMeAccounts.plist' -exec defaults read '{}' \; If the results show any accounts listed, this is a finding.
Fix: F-63749r2_fix
This must be manually resolved. With the affected user logged in, open System Preferences->iCloud. Choose 'Sign Out'.
- RMF Control
- CM-6
- Severity
- L
- CCI
- CCI-000366
- Version
- AOSX-09-001140
- Vuln IDs
-
- V-58437
- Rule IDs
-
- SV-72867r1_rule
Checks: C-59263r1_chk
To check if the iTunes music sharing is disabled, run the following command: system_profiler SPConfigurationProfileDataType | grep disableSharedMusic If 'disableSharedMusic' is not set to '1', this is a finding.
Fix: F-63751r1_fix
This setting is enforced using a configuration profile.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-09-001145
- Vuln IDs
-
- V-58439
- Rule IDs
-
- SV-72869r1_rule
Checks: C-59265r1_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: sudo find / -perm -4000 -exec 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-63753r1_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-09-001195
- Vuln IDs
-
- V-58441
- Rule IDs
-
- SV-72871r1_rule
Checks: C-59269r1_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-63757r1_fix
To configure the system to not accept source-routed packets, add the following line to /etc/sysctl.conf: net.inet.ip.accept_sourceroute=0
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-09-001200
- Vuln IDs
-
- V-58443
- Rule IDs
-
- SV-72873r1_rule
Checks: C-59271r1_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-63759r1_fix
To configure the system to ignore ICMP redirect messages, add the following line to /etc/sysctl.conf: net.inet.icmp.drop_redirect=1
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-09-001205
- Vuln IDs
-
- V-58445
- Rule IDs
-
- SV-72875r1_rule
Checks: C-59275r1_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-63763r1_fix
To configure the system to disable IP forwarding, add the following line to /etc/sysctl.conf: net.inet.ip.forwarding=0
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-09-001210
- Vuln IDs
-
- V-58449
- Rule IDs
-
- SV-72879r1_rule
Checks: C-59281r1_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-63769r1_fix
To configure the system to not send ICMP redirects, add the following line to /etc/sysctl.conf: net.inet.ip.redirect=0
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-09-001211
- Vuln IDs
-
- V-58451
- Rule IDs
-
- SV-72881r1_rule
Checks: C-59287r2_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-63775r1_fix
To configure the system to not send ICMP redirects, add the following line to /etc/sysctl.conf: net.inet6.ip6.redirect=0
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-09-001215
- Vuln IDs
-
- V-58453
- Rule IDs
-
- SV-72883r1_rule
Checks: C-59289r1_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-63777r1_fix
To configure the system to not forward source-routed packets, add the following line to /etc/sysctl.conf: net.inet.ip.sourceroute=0
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-09-001220
- Vuln IDs
-
- V-58455
- Rule IDs
-
- SV-72885r1_rule
Checks: C-59293r1_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-63781r2_fix
To disable ICMP timestamp responses, add the following line to /etc/sysctl.conf: net.inet.icmp.timestamp=0
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-09-001235
- Vuln IDs
-
- V-58457
- Rule IDs
-
- SV-72887r1_rule
Checks: C-59295r1_chk
To list the network devices that are enabled on the system, run the following command: sudo 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-63783r1_fix
To disable a network device, run the following command, substituting the name of the device in place of '<networkservice>': sudo networksetup -setnetworkserviceenabled '<networkservice>' off
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-09-001240
- Vuln IDs
-
- V-58459
- Rule IDs
-
- SV-72889r1_rule
Checks: C-59301r1_chk
Run the following command to check if IPv6 is enabled on any network interfaces: sudo networksetup -listallnetworkservices | (while read dev; do echo "$dev"; networksetup -getinfo "$dev" | grep IPv6:; echo ; done) If there is an enabled network interface without the setting 'IPv6: Off' and it does not require IPv6, this is a finding.
Fix: F-63789r1_fix
Run the following command to turn off IPv6 addressing for the Ethernet interface: sudo networksetup -setv6off 'Ethernet' Repeat this command for each enabled interface, interface names are case sensitive.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-09-001260
- Vuln IDs
-
- V-58461
- Rule IDs
-
- SV-72891r1_rule
Checks: C-59305r1_chk
To check if the system is using secure virtual memory run the following command: sysctl vm.swapusage If the result does not show '(encrypted)', this is a finding.
Fix: F-63793r1_fix
To ensure secure virtual memory is secure, run the following command: sudo defaults write /Library/Preferences/com.apple.virtualMemory DisableEncryptedSwap -bool FALSE
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AOSX-09-001270
- Vuln IDs
-
- V-58463
- Rule IDs
-
- SV-72893r1_rule
Checks: C-59307r1_chk
Internet Sharing must be disabled. To check if Internet sharing is disabled, run the following command: sudo /usr/libexec/PlistBuddy -c 'print com.apple.InternetSharing:Disabled' /var/db/launchd.db/com.apple.launchd/overrides.plist If the returned value isn't 'true' or doesn't exist, this is a finding.
Fix: F-63795r1_fix
To disable Internet Sharing, run the following command: sudo defaults write /private/var/db/launchd.db/com.apple.launchd/overrides.plist 'com.apple.InternetSharing' -dict Disabled -bool true
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AOSX-09-001275
- Vuln IDs
-
- V-58465
- Rule IDs
-
- SV-72895r1_rule
Checks: C-59309r1_chk
Web Sharing must be disabled. To check if Web Sharing is enabled, run the following command: sudo /usr/libexec/PlistBuddy -c 'print org.apache.httpd:Disabled' /var/db/launchd.db/com.apple.launchd/overrides.plist If the returned value isn't 'true', this is a finding.
Fix: F-63797r1_fix
To disable Web Sharing, run the following command: sudo defaults write /private/var/db/launchd.db/com.apple.launchd/overrides.plist 'org.apache.httpd' -dict Disabled -bool true
- RMF Control
- AC-7
- Severity
- M
- CCI
- CCI-002238
- Version
- AOSX-09-001324
- Vuln IDs
-
- V-58467
- Rule IDs
-
- SV-72897r1_rule
Checks: C-59313r1_chk
To check if the password policy is configured to disable an account after 3 unsuccessful login attempts, run the following command: sudo pwpolicy getglobalpolicy | tr ' ' '\n' | grep 'maxFailedLoginAttempts' If the result is not 'maxFailedLoginAttempts=3' and password policy is not controlled by a directory server, this is a finding.
Fix: F-63801r1_fix
To set the password policy, run the following command: sudo pwpolicy setglobalpolicy 'maxFailedLoginAttempts=3'
- RMF Control
- AC-7
- Severity
- M
- CCI
- CCI-000044
- Version
- AOSX-09-001325
- Vuln IDs
-
- V-58469
- Rule IDs
-
- SV-72899r1_rule
Checks: C-59319r1_chk
To check if the password policy is configured to disable an account for 15 minutes in the event 3 unsuccessful login are attempted, run the following command: sudo pwpolicy getglobalpolicy | tr ' ' '\n' | grep 'minutesUntilFailedLoginReset' If the result is not 'minutesUntilFailedLoginReset=15', and password policy is not controlled by a directory server, this is a finding.
Fix: F-63807r1_fix
To set the password policy, run the following command: sudo pwpolicy setglobalpolicy 'minutesUntilFailedLoginReset=15'
- RMF Control
- AC-7
- Severity
- M
- CCI
- CCI-002238
- Version
- AOSX-09-001326
- Vuln IDs
-
- V-58471
- Rule IDs
-
- SV-72901r1_rule
Checks: C-59321r1_chk
To check if the password policy is configured to disable an account for 15 minutes after 3 unsuccessful login attempts, run the following command: sudo pwpolicy getglobalpolicy | tr ' ' '\n' | grep 'maxFailedLoginAttempts\|minutesUntilFailedLoginReset' If the result is not 'maxFailedLoginAttempts=3' and 'minutesUntilFailedLoginReset=15', and password policy is not controlled by a directory server, this is a finding.
Fix: F-63809r1_fix
To set the password policy, run the following command: sudo pwpolicy setglobalpolicy 'maxFailedLoginAttempts=3 minutesUntilFailedLoginReset=15'
- RMF Control
- AU-5
- Severity
- M
- CCI
- CCI-000140
- Version
- AOSX-09-001355
- Vuln IDs
-
- V-58473
- Rule IDs
-
- SV-72903r1_rule
Checks: C-59323r1_chk
To view the setting for the audit control system, run the following command: sudo grep ^policy /etc/security/audit_control | grep ahlt If there is no result, this is a finding.
Fix: F-63811r1_fix
Edit the /etc/security/audit_control file, and change the value for policy to include the setting 'ahlt'. To programmatically do this, run the following command: sudo sed -i.bak '/^policy/ s/$/,ahlt/' /etc/security/audit_control; sudo audit -s
- RMF Control
- CM-6
- Severity
- H
- CCI
- CCI-000366
- Version
- AOSX-09-001465
- Vuln IDs
-
- V-58475
- Rule IDs
-
- SV-72905r1_rule
Checks: C-59325r1_chk
Ask the SA or ISSO if an approved anti-virus solution is loaded on the system. The anti-virus solution may be bundled with an approved host-based security solution. If there is no local anti-virus solution installed on the system, this is a finding.
Fix: F-63813r1_fix
Install an approved anti-virus solution onto the system.
- RMF Control
- CM-7
- Severity
- L
- CCI
- CCI-000381
- Version
- AOSX-09-002050
- Vuln IDs
-
- V-58477
- Rule IDs
-
- SV-72907r1_rule
Checks: C-59327r1_chk
Airdrop must be disabled. To check if Airdrop has been disabled, run the following command: sudo system_profiler SPConfigurationProfileDataType | grep DisableAirDrop If DisableAirDrop is not set to '1', this is a finding.
Fix: F-63815r1_fix
Disabling AirDrop is enforced using a configuration profile.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-09-002055
- Vuln IDs
-
- V-58479
- Rule IDs
-
- SV-72909r1_rule
Checks: C-59329r1_chk
Ask the SA or ISSO if an approved PKI authentication solution is implemented on the system for user logins and privileged access. If a non-emergency account can log into the system or gain privileged access without a smart card, this is a finding.
Fix: F-63817r1_fix
Implement PKI authentication using approved third-party PKI tools, to integrate with an existing directory services infrastructure or local password database, where no directory services infrastructure exists.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-09-002060
- Vuln IDs
-
- V-58481
- Rule IDs
-
- SV-72911r1_rule
Checks: C-59331r1_chk
To determine if the system is integrated to a directory server, ask the SA or ISSO or run the following command: sudo dscl localhost -list . | 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-63819r1_fix
Integrate the system into an existing directory services infrastructure, such as Active Directory.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000172
- Version
- AOSX-09-002065
- Vuln IDs
-
- V-58483
- Rule IDs
-
- SV-72913r1_rule
Checks: C-59333r1_chk
In order to view the currently configured flags for the audit daemon, run the following command: sudo grep ^flags /etc/security/audit_control Privileged access, including administrative use of the command line tools kextload and kextunload, is logged via the 'ad' flag. If 'ad' is not listed in the result of the check, this is a finding.
Fix: F-63821r1_fix
To make sure the appropriate flags are enabled for auditing, run the following command: sudo sed -i.bak '/^flags/ s/$/,ad/' /etc/security/audit_control; sudo audit -s A text editor may also be used to implement the required update to the /etc/security/audit_control file.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000172
- Version
- AOSX-09-002070
- Vuln IDs
-
- V-58485
- Rule IDs
-
- SV-72915r1_rule
Checks: C-59335r1_chk
In order to view the currently configured flags for the audit daemon, run the following command: sudo grep ^flags /etc/security/audit_control Changes to file permissions are logged by way of the 'fm' flag. If 'fm' is not listed in the result of the check, this is a finding.
Fix: F-63823r1_fix
To make sure the appropriate flags are enabled for auditing, run the following command: sudo sed -i.bak '/^flags/ s/$/,fm/' /etc/security/audit_control; sudo audit -s A text editor may also be used to implement the required update to the /etc/security/audit_control file.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000172
- Version
- AOSX-09-002075
- Vuln IDs
-
- V-58487
- Rule IDs
-
- SV-72917r1_rule
Checks: C-59337r1_chk
In order to view the currently configured flags for the audit daemon, run the following command: sudo grep ^flags /etc/security/audit_control Changes to file permissions are logged by way of the 'fm' flag. If 'fm' is not listed in the result of the check, this is a finding.
Fix: F-63825r1_fix
To make sure the appropriate flags are enabled for auditing, run the following command: sudo sed -i.bak '/^flags/ s/$/,fm/' /etc/security/audit_control; sudo audit -s A text editor may also be used to implement the required update to the /etc/security/audit_control file.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000172
- Version
- AOSX-09-002080
- Vuln IDs
-
- V-58489
- Rule IDs
-
- SV-72919r1_rule
Checks: C-59339r1_chk
In order to view the currently configured flags for the audit daemon, run the following command: sudo grep ^flags /etc/security/audit_control Changes to file permissions are logged by way of the 'fm' flag. If 'fm' is not listed in the result of the check, this is a finding.
Fix: F-63827r1_fix
To make sure the appropriate flags are enabled for auditing, run the following command: sudo sed -i.bak '/^flags/ s/$/,fm/' /etc/security/audit_control; sudo audit -s A text editor may also be used to implement the required update to the /etc/security/audit_control file.
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000199
- Version
- AOSX-09-002085
- Vuln IDs
-
- V-58491
- Rule IDs
-
- SV-72921r1_rule
Checks: C-59341r1_chk
To check if the password policy is configured to require that users change their password every 60 days, run the following command: sudo pwpolicy getglobalpolicy | tr ' ' '\n' | grep maxMinutesUntilChangePassword If the result is not 'maxMinutesUntilChangePassword=86400', and password policy is not controlled by a directory server, this is a finding.
Fix: F-63829r1_fix
To set the password policy, run the following command: sudo pwpolicy setglobalpolicy 'maxMinutesUntilChangePassword=86400'
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000200
- Version
- AOSX-09-002090
- Vuln IDs
-
- V-58493
- Rule IDs
-
- SV-72923r1_rule
Checks: C-59343r1_chk
To check if the password policy is configured to prevent users from reusing one of their five previously used passwords, run the following command: sudo pwpolicy getglobalpolicy | tr ' ' '\n' | grep usingHistory If the result is not 'usingHistory=5', and password policy is not controlled by a directory server, this is a finding.
Fix: F-63831r1_fix
To set the password policy, run the following command: sudo pwpolicy setglobalpolicy 'usingHistory=5'
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000172
- Version
- AOSX-09-002095
- Vuln IDs
-
- V-58495
- Rule IDs
-
- SV-72925r1_rule
Checks: C-59345r1_chk
In order to view the currently configured flags for the audit daemon, run the following command: sudo grep ^flags /etc/security/audit_control Changes to file permissions are logged by way of the 'fm' flag. If 'fm' is not listed in the result of the check, this is a finding.
Fix: F-63833r1_fix
To make sure the appropriate flags are enabled for auditing, run the following command: sudo sed -i.bak '/^flags/ s/$/,fm/' /etc/security/audit_control; sudo audit -s A text editor may also be used to implement the required update to the /etc/security/audit_control file.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000172
- Version
- AOSX-09-002100
- Vuln IDs
-
- V-58497
- Rule IDs
-
- SV-72927r1_rule
Checks: C-59347r1_chk
The options to configure the audit daemon are located in the /etc/security/audit_control file. To view the current settings, run the following command: sudo grep ^flags /etc/security/audit_control If the 'lo', 'ad', and 'aa' options are not set, this is a finding.
Fix: F-63835r1_fix
To set the audit flags to the recommended setting, run the following command to add the flags 'lo', 'ad', and 'aa' all at once: sudo sed -i.bak '/^flags/ s/$/,lo,ad,aa/' /etc/security/audit_control; sudo audit -s A text editor may also be used to implement the required update to the /etc/security/audit_control file.
- RMF Control
- SI-11
- Severity
- M
- CCI
- CCI-001314
- Version
- AOSX-09-002105
- Vuln IDs
-
- V-58499
- Rule IDs
-
- SV-72929r1_rule
Checks: C-59349r2_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: sudo stat -f '%Su:%Sg:%N' $(grep -v '^#' /etc/newsyslog.conf | awk '{ print $1 }') 2> /dev/null sudo stat -f '%Su:%Sg:%N' $(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-63837r1_fix
For any log file that returns an incorrect owner or group value, run the following command: 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-09-002106
- Vuln IDs
-
- V-58501
- Rule IDs
-
- SV-72931r1_rule
Checks: C-59351r1_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: sudo stat -f '%A:%N' $(grep -v '^#' /etc/newsyslog.conf | awk '{ print $1 }') 2> /dev/null sudo stat -f '%A:%N' $(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-63839r1_fix
For any log file that returns an incorrect permission value, run the following command: 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-09-002107
- Vuln IDs
-
- V-58503
- Rule IDs
-
- SV-72933r1_rule
Checks: C-59353r1_chk
These commands check for log files that exist on the system and print out the list of ACLs if there are any. sudo ls -ld@ $(grep -v '^#' /etc/newsyslog.conf | awk '{ print $1 }') 2> /dev/null sudo ls -ld@ $(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-63841r1_fix
For any log file that returns an ACL, run the following command: sudo chmod -N [log file] [log file] is the full path to the log file in question.
- RMF Control
- CM-5
- Severity
- M
- CCI
- CCI-001814
- Version
- AOSX-09-002110
- Vuln IDs
-
- V-58505
- Rule IDs
-
- SV-72935r1_rule
Checks: C-59355r1_chk
In order to view the currently configured flags for the audit daemon, run the following command: sudo 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-63843r1_fix
To make sure the appropriate flags are enabled for auditing, run the following command to add 'fm', '-fr', and '-fw' at the same time: sudo sed -i.bak '/^flags/ s/$/,fm,-fr,-fw/' /etc/security/audit_control; sudo audit -s A text editor may also be used to implement the required update to the /etc/security/audit_control file.
- RMF Control
- MA-4
- Severity
- M
- CCI
- CCI-002884
- Version
- AOSX-09-002115
- Vuln IDs
-
- V-58507
- Rule IDs
-
- SV-72937r1_rule
Checks: C-59369r1_chk
In order to view the currently configured flags for the audit daemon, run the following command: sudo grep ^flags /etc/security/audit_control Administrative actions 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-63857r1_fix
To make sure the appropriate flags are enabled for auditing, run the following command: sudo sed -i.bak '/^flags/ s/$/,ad/' /etc/security/audit_control; sudo audit -s A text editor may also be used to implement the required update to the /etc/security/audit_control file.
- RMF Control
- AC-6
- Severity
- M
- CCI
- CCI-002234
- Version
- AOSX-09-002120
- Vuln IDs
-
- V-58509
- Rule IDs
-
- SV-72939r1_rule
Checks: C-59371r1_chk
In order to view the currently configured flags for the audit daemon, run the following command: sudo grep ^flags /etc/security/audit_control Privileged access is logged via the 'ad' flag. If 'ad' is not listed in the result of the check, this is a finding.
Fix: F-63859r1_fix
To make sure the appropriate flags are enabled for auditing, run the following command: sudo sed -i.bak '/^flags/ s/$/,ad/' /etc/security/audit_control; sudo audit -s A text editor may also be used to implement the required update to the /etc/security/audit_control file.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000172
- Version
- AOSX-09-002125
- Vuln IDs
-
- V-58511
- Rule IDs
-
- SV-72941r1_rule
Checks: C-59373r1_chk
In order to view the currently configured flags for the audit daemon, run the following command: sudo 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-63861r1_fix
To make sure the appropriate flags are enabled for auditing, run the following command: sudo sed -i.bak '/^flags/ s/$/,lo/' /etc/security/audit_control; sudo audit -s A text editor may also be used to implement the required update to the /etc/security/audit_control file.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AOSX-09-000711
- Vuln IDs
-
- V-58541
- Rule IDs
-
- SV-72971r1_rule
Checks: C-59413r1_chk
To check to make sure the user cannot override Gatekeeper settings, type the following code: system_profiler SPConfigurationProfileDataType | grep DisableOverride If DisableOverride is not set to '1', this is a finding.
Fix: F-63925r1_fix
This setting is enforced using a configuration profile.
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-000162
- Version
- AOSX-09-000331
- Vuln IDs
-
- V-58891
- Rule IDs
-
- SV-73321r1_rule
Checks: C-59737r1_chk
To check the ownership of the audit log files, run the following command: sudo ls -le $(sudo 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 not, this is a finding.
Fix: F-64275r2_fix
For any log file that returns an incorrect owner, run the following command: 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-09-000332
- Vuln IDs
-
- V-58893
- Rule IDs
-
- SV-73323r1_rule
Checks: C-59739r1_chk
To check the ownership of the audit log folder, run the following command: sudo ls -lde $(sudo grep '^dir' /etc/security/audit_control | awk -F: '{print $2}') The results should show the owner (third column) to be root. If not, this is a finding.
Fix: F-64277r2_fix
For any log folder that has an incorrect owner, run the following command: sudo chown root [audit log folder]
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-000162
- Version
- AOSX-09-000333
- Vuln IDs
-
- V-58895
- Rule IDs
-
- SV-73325r1_rule
Checks: C-59741r1_chk
To check the group-ownership of the audit log files, run the following command: sudo ls -le $(sudo grep '^dir' /etc/security/audit_control | awk -F: '{print $2}') | grep -v current The results should show the group owner (fourth column) to be wheel. If not, this is a finding.
Fix: F-64279r2_fix
For any log file that returns an incorrect group-owner, run the following command: 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-000163
- Version
- AOSX-09-000334
- Vuln IDs
-
- V-58897
- Rule IDs
-
- SV-73327r1_rule
Checks: C-59743r1_chk
To check the group-ownership of the audit log folder, run the following command: sudo ls -lde $(sudo grep '^dir' /etc/security/audit_control | awk -F: '{print $2}') The results should show the group (fourth column) to be wheel. If not, this is a finding.
Fix: F-64281r2_fix
For any log folder that has an incorrect group, run the following command: sudo chgrp wheel [audit log folder]
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-000164
- Version
- AOSX-09-000338
- Vuln IDs
-
- V-58899
- Rule IDs
-
- SV-73329r1_rule
Checks: C-59745r1_chk
To check if a log folder contains ACLs, run the following commands: sudo ls -lde $(sudo 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-64283r1_fix
For any log folder that contains ACLs, run the following command: sudo chmod -N [audit log folder]