Free DISA STIG and SRG Library | Vaulted

Apple OS X 10.14 (Mojave) Security Technical Implementation Guide

Version 21 Release 23
2021-01-222020-04-24
U_Apple_OS_X_10-14_STIG_V21R23_Manual-xccdf.xml
This Security Technical Implementation Guide is published as a tool to improve the security of Department of Defense (DoD) information systems. The requirements are derived from the National Institute of Standards and Technology (NIST) 800-53 and related documents. Comments or proposed revisions to this document should be sent via email to the following address: disa.stig_spt@mail.mil.

Compare Summary

Compare V2R2 to V1R3
  • All
  • Updated 0
  • Added 119
  • Removed 118

Vulnerabilities (237)

Added

V-95377

The macOS system must implement DoD-approved encryption to protect the confidentiality and integrity of remote access sessions including transmitted data and data during preparation for transmission.

Finding ID
AOSX-14-000011
Rule ID
SV-104709r2_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000250-GPOS-00093
CCI
CCI-001453
Target Key
(None)
Documentable
No
Discussion

Without confidentiality and integrity protection mechanisms, unauthorized individuals may gain access to sensitive information via a remote access session. Remote access is access to DoD non-public information systems by an authorized user (or an information system) communicating through an external, non-organization-controlled network. Remote access methods include, for example, dial-up, broadband, and wireless. Encryption provides a means to secure the remote connection to prevent unauthorized access to the data traversing the remote access connection (e.g., Remote Desktop Protocol [RDP]), thereby providing a degree of confidentiality. The encryption strength of a mechanism is selected based on the security categorization of the information. SSHD should be enabled to facilitate secure remote access.

Fix Text

To update SSHD to the minimum required version, run Software Update to update to the latest version of macOS. To enable the SSHD service, run the following command: /usr/bin/sudo /bin/launchctl enable system/com.openssh.sshd The system may need to be restarted for the update to take effect.

Check Content

To verify that the installed version of SSH is correct, run the following command: ssh -V If the string that is returned does not include "OpenSSH_7.9p1" or greater, this is a finding. To check if the "SSHD" service is enabled, use the following commands: /usr/bin/sudo launchctl print-disabled system | grep sshd If the results do not show "com.openssh.sshd => false", this is a finding. To check that "SSHD" is currently running, use the following command: /usr/bin/sudo launchctl print system/com.openssh.sshd If the result is the following, "Could not find service "com.openssh.sshd" in domain for system", this is a finding.

Added

V-95385

The macOS system must be integrated into a directory services infrastructure.

Finding ID
AOSX-14-000016
Rule ID
SV-104711r1_rule
Severity
Cat I
CCE
(None)
Group Title
SRG-OS-000480-GPOS-00227
CCI
CCI-000366
Target Key
(None)
Documentable
No
Discussion

Distinct user account databases on each separate system cause problems with username and password policy enforcement. Most approved directory services infrastructure solutions allow centralized management of users and passwords.

Fix Text

Integrate the system into an existing directory services infrastructure.

Check Content

If the system is using a mandatory Smart Card Policy, this is Not Applicable. To determine if the system is integrated to a directory service, ask the System Administrator (SA) or Information System Security Officer (ISSO) or run the following command: /usr/bin/sudo dscl localhost -list . | /usr/bin/grep -vE '(Contact | Search | Local)' If nothing is returned, or if the system is not integrated into a directory service infrastructure, this is a finding.

Added

V-95393

The macOS system must enforce the limit of three consecutive invalid logon attempts by a user before the user account is locked.

Finding ID
AOSX-14-000022
Rule ID
SV-104713r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000329-GPOS-00128
CCI
CCI-002238
Target Key
(None)
Documentable
No
Discussion

By limiting the number of failed logon attempts, the risk of unauthorized system access via user password guessing, otherwise known as brute forcing, is reduced. Limits are imposed by locking the account.

Fix Text

This setting may be enforced using the "Passcode Policy" configuration profile or by a directory service. To set the passcode policy without a configuration profile, run the following command to save a copy of the current "pwpolicy" account policy file: /usr/bin/sudo /usr/bin/pwpolicy getaccountpolicies | tail -n +2 > pwpolicy.plist Open the generated file in a text editor and ensure it contains the following text after the opening <dict> tag and before the closing </dict> tag. Replace <dict/> first with <dict></dict> if necessary. <key>policyCategoryAuthentication</key> <array> <dict> <key>policyContent</key> <string>(policyAttributeFailedAuthentications < policyAttributeMaximumFailedAuthentications) OR (policyAttributeCurrentTime > (policyAttributeLastFailedAuthenticationTime + autoEnableInSeconds))</string> <key>policyIdentifier</key> <string>Authentication Lockout</string> <key>policyParameters</key> <dict> <key>autoEnableInSeconds</key> <integer>900</integer> <key>policyAttributeMaximumFailedAuthentications</key> <integer>3</integer> </dict> </dict> </array> If the line "<key>policyCategoryAuthentication</key>" already exists, the following text should be used instead and inserted after the first <array> tag that follows it: <dict> <key>policyContent</key> <string>(policyAttributeFailedAuthentications < policyAttributeMaximumFailedAuthentications) OR (policyAttributeCurrentTime > (policyAttributeLastFailedAuthenticationTime + autoEnableInSeconds))</string> <key>policyIdentifier</key> <string>Authentication Lockout</string> <key>policyParameters</key> <dict> <key>autoEnableInSeconds</key> <integer>900</integer> <key>policyAttributeMaximumFailedAuthentications</key> <integer>3</integer> </dict> </dict> After saving the file and exiting to the command prompt, run the following command to load the new policy file: /usr/bin/sudo /usr/bin/pwpolicy setaccountpolicies pwpolicy.plist Note: Updates to passcode restrictions must be thoroughly evaluated in a test environment. Mistakes in configuration or bugs in OS X may block password change and local user creation operations, as well as lock out all local users, including administrators.

Check Content

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.

Added

V-95405

The macOS system must use replay-resistant authentication mechanisms and implement cryptographic mechanisms to protect the integrity of and verify remote disconnection at the termination of nonlocal maintenance and diagnostic communications, when used for nonlocal maintenance sessions.

Finding ID
AOSX-14-000040
Rule ID
SV-104715r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000393-GPOS-000173
CCI
CCI-003123
Target Key
(None)
Documentable
No
Discussion

Privileged access contains control and configuration information and is particularly sensitive, so additional protections are necessary. This is maintained by using cryptographic mechanisms, such as a hash function or digital signature, to protect integrity. Nonlocal maintenance and diagnostic activities are those activities conducted by individuals communicating through a network, either an external network (e.g., the Internet) or an internal network. Use of weak or untested encryption algorithms undermines the purposes of using encryption to protect data. The operating system must implement cryptographic modules adhering to the higher standards approved by the federal government since this provides assurance they have been tested and validated. The operating system can meet this requirement through leveraging a cryptographic module. This requirement does not cover hardware/software components that may support information system maintenance, yet are a part of the system (e.g., the software implementing "ping," "ls," "ipconfig," or the hardware and software implementing the monitoring port of an Ethernet switch). Satisfies: SRG-OS-000393-GPOS-00173, SRG-OS-000394-GPOS-00174, SRG-OS-000112-GPOS-00057, SRG-OS-000113-GPOS-00058

Fix Text

To update SSHD to the minimum required version, run Software Update to update to the latest version of macOS. To enable the SSHD service, run the following command: /usr/bin/sudo /bin/launchctl enable system/com.openssh.sshd The system may need to be restarted for the update to take effect.

Check Content

To verify that the installed version of SSH is correct, run the following command: ssh -V If the string that is returned does not include "OpenSSH_7.9p1" or greater, this is a finding. To check if the "SSHD" service is enabled, use the following commands: /usr/bin/sudo launchctl print-disabled system | grep sshd If the results do not show "com.openssh.sshd => false", this is a finding. To check that "SSHD" is currently running, use the following command: /usr/bin/sudo launchctl print system/com.openssh.sshd If the result is the following, "Could not find service "com.openssh.sshd" in domain for system", this is a finding.

Added

V-95407

The macOS system must limit the number of concurrent SSH sessions to 10 for all accounts and/or account types.

Finding ID
AOSX-14-000050
Rule ID
SV-104717r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000027-GPOS-00008
CCI
CCI-000054
Target Key
(None)
Documentable
No
Discussion

Operating system management includes the ability to control the number of users and user sessions that utilize an operating system. Limiting the number of allowed users and sessions per user is helpful in reducing the risks related to DoS attacks. This requirement addresses concurrent sessions for information system accounts and does not address concurrent sessions by single users via multiple system accounts. The maximum number of concurrent sessions should be defined based upon mission needs and the operational environment for each system.

Fix Text

To configure SSHD to limit the number of sessions, use the following command: /usr/bin/sudo /usr/bin/sed -i.bak 's/^[\#]*MaxSessions.*/MaxSessions 10/' /etc/ssh/sshd_config

Check Content

To verify that SSHD is limited to 10 sessions, use the following command: /bin/cat /etc/ssh/sshd_config | grep MaxSessions The command must return "MaxSessions 10". If it returns null, or a commented value, or the value is greater than "10", this is a finding.

Added

V-95437

The macOS system must allocate audit record storage capacity to store at least one weeks worth of audit records when audit records are not immediately sent to a central audit record storage facility.

Finding ID
AOSX-14-001029
Rule ID
SV-104719r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000341-GPOS-00132
CCI
CCI-001849
Target Key
(None)
Documentable
No
Discussion

The audit service must be configured to require that records are kept for seven days or longer before deletion when there is no central audit record storage facility. When "expire-after" is set to "7d", the audit service will not delete audit logs until the log data is at least seven days old.

Fix Text

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.

Check Content

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.

Added

V-95533

The macOS system must limit the ability of non-privileged users to grant other users direct access to the contents of their home directories/folders.

Finding ID
AOSX-14-002065
Rule ID
SV-104721r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000480-GPOS-00230
CCI
CCI-000366
Target Key
(None)
Documentable
No
Discussion

Users' home directories/folders may contain information of a sensitive nature. Non-privileged users should coordinate any sharing of information with an SA through shared resources.

Fix Text

To reset the permissions on a users' home directory to their defaults, run the following command, where "username" is the user's short name: sudo diskutil resetUserPermissions / username

Check Content

For each listing, with the exception of "Shared", verify that the directory is owned by the username, that only the owner has "write" permissions, and the correct Access Control Entry is listed. To verify permissions on users' home directories, use the following command: # ls -le /Users drwxr-xr-x+ 12 Guest _guest 384 Apr 2 09:40 Guest 0: group:everyone deny delete drwxrwxrwt 4 root wheel 128 Mar 28 05:53 Shared drwxr-xr-x+ 13 admin staff 416 Apr 8 08:58 admin 0: group:everyone deny delete drwxr-xr-x+ 11 test user 352 Apr 8 09:00 test 0: group:everyone deny delete If the directory is not owned by the user, this is a finding. If anyone other than the user has "write" permissions to the directory, this is a finding. If the Access Control Entry listed is not "0: group:everyone deny delete", this is a finding.

Added

V-95537

The macOS system must prohibit user installation of software without explicit privileged status.

Finding ID
AOSX-14-002067
Rule ID
SV-104723r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000362-GPOS-00149
CCI
CCI-001812
Target Key
(None)
Documentable
No
Discussion

Allowing regular users to install software, without explicit privileges, creates the risk that untested or potentially malicious software will be installed on the system. Explicit privileges (escalated or administrative privileges) provide the regular user with explicit capabilities and control that exceeds the rights of a regular user. Operating system functionality will vary, and while users are not permitted to install unapproved software, there may be instances where the organization allows the user to install approved software packages, such as from an approved software repository. The operating system or software configuration management utility must enforce control of software installation by users based upon what types of software installations are permitted (e.g., updates and security patches to existing software) and what types of installations are prohibited (e.g., software whose pedigree with regard to being potentially malicious is unknown or suspect) by the organization.

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

To check if the system is configured to prohibit user installation of software, first check to ensure the Parental Controls are enabled with the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -A 6 familyControlsEnabled | grep “/Users" If the result is null, or does not contain “/Users/“, this is a finding.

Added

V-95541

The macOS system must uniquely identify peripherals before establishing a connection.

Finding ID
AOSX-14-002069
Rule ID
SV-104725r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000114-GPOS-00059
CCI
CCI-000778
Target Key
(None)
Documentable
No
Discussion

Without identifying devices, unidentified or unknown devices may be introduced, thereby facilitating malicious activity. Peripherals include, but are not limited to, such devices as flash drives, external storage, and printers.

Fix Text

To ensure that authentication is required to access all system level preference panes use the following procedure: Copy the authorization database to a file using the following command: /usr/bin/sudo /usr/bin/security authorizationdb read system.preferences > ~/Desktop/authdb.txt edit the file to change: <key>shared</key> <true/> To read: <key>shared</key> <false/> Reload the authorization database with the following command: /usr/bin/sudo /usr/bin/security authorizationdb write system.preferences < ~/Desktop/authdb.txt

Check Content

To check that macOS is configured to require authentication to all system preference panes, use the following commands: /usr/bin/sudo /usr/bin/security authorizationdb read system.preferences | grep -A1 shared If what is returned does not include the following, this is a finding. <key>shared</key> <false/>

Added

V-95543

The macOS system must use an approved antivirus program.

Finding ID
AOSX-14-002070
Rule ID
SV-104727r1_rule
Severity
Cat I
CCE
(None)
Group Title
SRG-OS-000480-GPOS-00227
CCI
CCI-000366
Target Key
(None)
Documentable
No
Discussion

An approved antivirus product must be installed and configured to run. Malicious software can establish a base on individual desktops and servers. Employing an automated mechanism to detect this type of software will aid in elimination of the software from the operating system.

Fix Text

Install an approved antivirus solution onto the system.

Check Content

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.

Added

V-95565

The macOS system must use multifactor authentication for local and network access to privileged and non-privileged accounts.

Finding ID
AOSX-14-003020
Rule ID
SV-104729r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000105-GPOS-00052
CCI
CCI-000768
Target Key
(None)
Documentable
No
Discussion

Without the use of multifactor authentication, the ease of access to privileged and non-privileged functions is greatly increased. Multifactor authentication requires using two or more factors to achieve authentication. Factors include: 1) something a user knows (e.g., password/PIN); 2) something a user has (e.g., cryptographic identification device, token); and 3) something a user is (e.g., biometric). A privileged account is defined as an information system account with authorizations of a privileged user. Network access is defined as access to an information system by a user (or a process acting on behalf of a user) communicating through a network (e.g., local area network, wide area network, or the Internet). Local access is defined as access to an organizational information system by a user (or process acting on behalf of a user) communicating through a direct connection without the use of a network. The DoD CAC with DoD-approved PKI is an example of multifactor authentication. Satisfies: SRG-OS-000105-GPOS-00052, SRG-OS-000106-GPOS-00053, SRG-OS-000107-GPOS-00054, SRG-OS-000108-GPOS-00055

Fix Text

For non directory bound systems, this setting is enforced using the "Smart Card Policy" configuration profile. Note: Before applying the "Smart Card Policy", the supplemental guidance provided with the STIG should be consulted to ensure continued access to the operating system. The following commands must be run to disable passcode based authentication for SSHD: /usr/bin/sudo /usr/bin/sed -i.bak 's/^[\#]*ChallengeResponseAuthentication.*/ChallengeResponseAuthentication no/' /etc/ssh/sshd_config /usr/bin/sudo /usr/bin/sed -i.bak 's/^[\#]*PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config

Check Content

If the system is connected to a directory server, this is Not Applicable. To verify that the system is configured to enforce multi-factor authentication, run the following commands: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep enforceSmartCard If the results do not show the following, this is a finding. "enforceSmartCard=1. Run the following command to disable password based authentication in SSHD. /usr/bin/grep -e ^[\#]*PasswordAuthentication.* -e ^[\#]*ChallengeResponseAuthentication.* /etc/ssh/sshd_config If this command returns null, or anything other than exactly this text, with no leading hash(#), this is a finding: "PasswordAuthentication no ChallengeResponseAuthentication no"

Added

V-95585

The macOS system must authenticate all endpoint devices before establishing a local, remote, and/or network connection using bidirectional authentication that is cryptographically based.

Finding ID
AOSX-14-004020
Rule ID
SV-104731r2_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000379-GPOS-00164
CCI
CCI-001967
Target Key
(None)
Documentable
No
Discussion

Without authenticating devices, unidentified or unknown devices may be introduced, thereby facilitating malicious activity. Bidirectional authentication provides stronger safeguards to validate the identity of other devices for connections that are of greater risk. Bidirectional authentication solutions include, but are not limited to, IEEE 802.1x and Extensible Authentication Protocol [EAP], RADIUS server with EAP-Transport Layer Security [TLS] authentication, Kerberos, and SSL mutual authentication. A local connection is any connection with a device communicating without the use of a network. A network connection is any connection with a device that communicates through a network (e.g., local area network, wide area network, or the Internet). A remote connection is any connection with a device communicating through an external network (e.g., the Internet). Because of the challenges of applying this requirement on a large scale, organizations are encouraged to only apply this requirement to those limited number (and type) of devices that truly need to support this capability.

Fix Text

To disable a network device, run the following command: /usr/bin/sudo /usr/sbin/networksetup -setnetworkserviceenabled Wi-Fi off

Check Content

For systems where Wi-Fi is not approved for use, run the following command to disable the Wi-Fi service: To list the network devices that are enabled on the system, run the following command: /usr/bin/sudo /usr/sbin/networksetup -listallnetworkservices If the Wi-Fi service name is not preceded by an asterisk(*), this is a finding.

Added

V-95587

The macOS system must be configured with the sudoers file configured to authenticate users on a per -tty basis.

Finding ID
AOSX-14-004021
Rule ID
SV-104733r1_rule
Severity
Cat I
CCE
(None)
Group Title
SRG-OS-000480-GPOS-00227
CCI
CCI-000366
Target Key
(None)
Documentable
No
Discussion

The "sudo" command must be configured to prompt for the administrator's password at least once in each newly opened Terminal window or remote logon session, as this prevents a malicious user from taking advantage of an unlocked computer or an abandoned logon session to bypass the normal password prompt requirement. Without the "tty_tickets" option, all open local and remote logon sessions would be authenticated to use sudo without a password for the duration of the configured password timeout window.

Fix Text

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.

Check Content

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.

Added

V-95597

The macOS system must be configured with a dedicated user account to decrypt the hard disk upon startup.

Finding ID
AOSX-14-000032
Rule ID
SV-104735r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000480-GPOS-00227
CCI
CCI-000014
Target Key
(None)
Documentable
No
Discussion

When "FileVault" and Multifactor Authentication are configured on the operating system, a dedicated user must be configured to ensure that the implemented Multifactor Authentication rules are enforced. If a dedicated user is not configured to decrypt the hard disk upon startup, the system will allow a user to bypass Multifactor Authentication rules during initial startup and first login.

Fix Text

Create a new user account that will be used to unlock the disk on startup. Disable the login ability of the newly created user account: # sudo dscl . append /Users/<FileVault_User> AuthenticationAuthority DisabledUser Disable FileVaults Auto-login feature: # sudo defaults write /Library/Preferences/com.apple.loginwindow DisableFDEAutologin -bool YES Remove all FileVault login access from each user account defined on the system that is not the designated FileVault user: # sudo fdesetup remove -user <username>

Check Content

Ensure that only one FileVault user is defined: # sudo fdesetup list fvuser,85F41F44-22B3-6CB7-85A1-BCC2EA2B887A If more than one user is defined, this is a finding. Verify that the defined FileVault user has been disabled: # sudo dscl . read /Users/<FileVault_User> AuthenticationAuthority | grep "DisabledUser" AuthenticationAuthority: ;ShadowHash;HASHLIST:<SALTED-SHA512-PBKDF2,SRP-RFC5054-4096-SHA512-PBKDF2> ;Kerberosv5;;unlock@LKDC:SHA1.20BABA05A6B1A86A8C57581A8487596640A3E37B;LKDC:SHA1.20CEBE04A5B1D92D8C58189D8487593350D3A40A; ;SecureToken; DisabledUser If the FileVault user is not disabled, this is a finding. Verify that password forwarding has been disabled on the system: # sudo defaults read /Library/Preferences/com.apple.loginwindow | grep "DisableFDEAutologin" DisableFDEAutologin = 1; If "DisableFDEAutologin" is not set to a value of "1", this is a finding.

Added

V-95787

The macOS system must be configured to prevent Apple Watch from terminating a session lock.

Finding ID
AOSX-14-000001
Rule ID
SV-104925r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000028-GPOS-00009
CCI
CCI-000056
Target Key
(None)
Documentable
No
Discussion

Users must be prompted to enter their passwords when unlocking the screen saver. The screen saver acts as a session lock and prevents unauthorized users from accessing the current user's account.

Fix Text

This setting is enforced using the “Restrictions Policy" configuration profile.

Check Content

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.

Added

V-95789

The macOS system must retain the session lock until the user reestablishes access using established identification and authentication procedures.

Finding ID
AOSX-14-000002
Rule ID
SV-104927r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000028-GPOS-00009
CCI
CCI-000056
Target Key
(None)
Documentable
No
Discussion

Users must be prompted to enter their passwords when unlocking the screen saver. The screen saver acts as a session lock and prevents unauthorized users from accessing the current user's account.

Fix Text

This setting is enforced using the "Login Window Policy" configuration profile.

Check Content

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.

Added

V-95791

The macOS system must initiate the session lock no more than five seconds after a screen saver is started.

Finding ID
AOSX-14-000003
Rule ID
SV-104929r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000028-GPOS-00009
CCI
CCI-000056
Target Key
(None)
Documentable
No
Discussion

A screen saver must be enabled and set to require a password to unlock. An excessive grace period impacts the ability for a session to be truly locked, requiring authentication to unlock.

Fix Text

This setting is enforced using the "Login Window Policy" configuration profile.

Check Content

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.

Added

V-95793

The macOS system must initiate a session lock after a 15-minute period of inactivity.

Finding ID
AOSX-14-000004
Rule ID
SV-104931r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000029-GPOS-00010
CCI
CCI-000057
Target Key
(None)
Documentable
No
Discussion

A screen saver must be enabled and set to require a password to unlock. The timeout should be set to 15 minutes of inactivity. This mitigates the risk that a user might forget to manually lock the screen before stepping away from the computer. A session time-out lock is a temporary action taken when a user stops work and moves away from the immediate physical vicinity of the information system but does not log out because of the temporary nature of the absence. Rather than relying on the user to manually lock their operating system session prior to vacating the vicinity, operating systems need to be able to identify when a user's session has idled and take action to initiate the session lock.

Fix Text

This setting is enforced using the "Login Window Policy" configuration profile.

Check Content

To check if the system has a configuration profile configured to enable the screen saver after a time-out period, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep idleTime If there is no result, or if "idleTime" is not set to "900" seconds or less, this is a finding.

Added

V-95795

The macOS system must be configured to lock the user session when a smart token is removed.

Finding ID
AOSX-14-000005
Rule ID
SV-104933r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000030-GPOS-00011
CCI
CCI-000058
Target Key
(None)
Documentable
No
Discussion

A session lock is a temporary action taken when a user stops work and moves away from the immediate physical vicinity of the information system but does not want to log out because of the temporary nature of the absence. The session lock is implemented at the point where session activity can be determined. Rather than be forced to wait for a period of time to expire before the user session can be locked, operating systems need to provide users with the ability to manually invoke a session lock so users may secure their session should they need to temporarily vacate the immediate physical vicinity.

Fix Text

This setting is enforced using the "Smart Card Policy" configuration profile. Note: Before applying the "Smart Card Policy", the supplemental guidance provided with the STIG should be consulted to ensure continued access to the operating system.

Check Content

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.

Added

V-95797

The macOS system must conceal, via the session lock, information previously visible on the display with a publicly viewable image.

Finding ID
AOSX-14-000006
Rule ID
SV-104935r1_rule
Severity
Cat III
CCE
(None)
Group Title
SRG-OS-000031-GPOS-00012
CCI
CCI-000060
Target Key
(None)
Documentable
No
Discussion

A default screen saver must be configured for all users, as the screen saver will act as a session time-out lock for the system and must conceal the contents of the screen from unauthorized users. The screen saver must not display any sensitive information or reveal the contents of the locked session screen. Publicly viewable images can include static or dynamic images such as patterns used with screen savers, photographic images, solid colors, a clock, a battery life indicator, or a blank screen.

Fix Text

This setting is enforced using the "Login Window Policy" configuration profile.

Check Content

To view the currently selected screen saver for the logged-on user, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep modulePath If there is no result or defined "modulePath", this is a finding.

Added

V-95799

The macOS system must be configured to disable hot corners.

Finding ID
AOSX-14-000007
Rule ID
SV-104937r3_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000031-GPOS-00012
CCI
CCI-000060
Target Key
(None)
Documentable
No
Discussion

Although hot corners can be used to initiate a session lock or launch useful applications, they can also be configured to disable an automatic session lock from initiating. Such a configuration introduces the risk that a user might forget to manually lock the screen before stepping away from the computer. A session time-out lock is a temporary action taken when a user stops work and moves away from the immediate physical vicinity of the information system but does not log out because of the temporary nature of the absence. Rather than relying on the user to manually lock their operating system session prior to vacating the vicinity, operating systems need to be able to identify when a user's session has idled and take action to initiate the session lock.

Fix Text

This setting is enforced using the "Custom Policy" configuration profile.

Check Content

To check if the system is configured to disable hot corners, run the following commands: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep wvous If the return is null or does not equal the following, this is a finding: "wvous-bl-corner = 0 wvous-br-corner = 0; wvous-tl-corner = 0; wvous-tr-corner = 0;"

Added

V-95801

The macOS system must be configured with Wi-Fi support software disabled.

Finding ID
AOSX-14-000008
Rule ID
SV-104939r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000299-GPOS-00117
CCI
CCI-001444
Target Key
(None)
Documentable
No
Discussion

Allowing devices and users to connect to or from the system without first authenticating them allows untrusted access and can lead to a compromise or attack. Since wireless communications can be intercepted, it is necessary to use encryption to protect the confidentiality of information in transit. Wireless technologies include, for example, microwave, packet radio (UHF/VHF), 802.11x, and Bluetooth. Wireless networks use authentication protocols (e.g., EAP/TLS, PEAP), which provide credential protection and mutual authentication. Satisfies: SRG-OS-000299-GPOS-00117, SRG-OS-000300-GPOS-00118

Fix Text

To disable the Wi-Fi network device, run the following command: /usr/bin/sudo /usr/sbin/networksetup -setnetworkserviceenabled "Wi-Fi" off

Check Content

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.

Added

V-95803

The macOS system must implement DoD-approved encryption to protect the confidentiality and integrity of remote access sessions including transmitted data and data during preparation for transmission.

Finding ID
AOSX-14-000010
Rule ID
SV-104941r1_rule
Severity
Cat I
CCE
(None)
Group Title
SRG-OS-000033-GPOS-00014
CCI
CCI-000068
Target Key
(None)
Documentable
No
Discussion

Without confidentiality and integrity protection mechanisms, unauthorized individuals may gain access to sensitive information via a remote access session. Remote access is access to DoD non-public information systems by an authorized user (or an information system) communicating through an external, non-organization-controlled network. Remote access methods include, for example, dial-up, broadband, and wireless. Encryption provides a means to secure the remote connection to prevent unauthorized access to the data traversing the remote access connection (e.g., Remote Desktop Protocol [RDP]), thereby providing a degree of confidentiality. The encryption strength of a mechanism is selected based on the security categorization of the information.

Fix Text

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.

Check Content

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

Added

V-95805

The macOS system must automatically remove or disable temporary user accounts after 72 hours.

Finding ID
AOSX-14-000012
Rule ID
SV-104943r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000002-GPOS-00002
CCI
CCI-000016
Target Key
(None)
Documentable
No
Discussion

If temporary user accounts remain active when no longer needed or for an excessive period, these accounts may be targeted by attackers to gain unauthorized access. To mitigate this risk, automated termination of all temporary accounts must be set upon account creation. Temporary accounts are established as part of normal account activation procedures when there is a need for short-term accounts without the demand for immediacy in account activation. If temporary accounts are used, the operating system must be configured to automatically terminate these types of accounts after a DoD-defined time period of 72 hours. To address access requirements, many operating systems may be integrated with enterprise-level authentication/access mechanisms that meet or exceed access control policy requirements.

Fix Text

This setting may be enforced using local policy or by a directory service. To set local policy to disable a temporary user, create a plain text file containing the following: <dict> <key>policyCategoryAuthentication</key> <array> <dict> <key>policyContent</key> <string>policyAttributeCurrentTime < policyAttributeCreationTime+259299</string> <key>policyIdentifier</key> <string>Disable Tmp Accounts </string> </dict> </array> </dict> After saving the file and exiting to the command prompt, run the following command to load the new policy file, substituting the correct user name in place of "username" and the path to the file in place of "/path/to/file". /usr/bin/sudo /usr/bin/pwpolicy -u username setaccountpolicies /path/to/file

Check Content

Verify if a password policy is enforced by a directory service by asking the System Administrator (SA) or Information System Security Officer (ISSO). If no policy is enforced by a directory service, a password policy can be set with the "pwpolicy" utility. The variable names may vary depending on how the policy was set. If there are no temporary accounts defined on the system, this is Not Applicable. To check if the password policy is configured to disable a temporary account after 72 hours, run the following command to output the password policy to the screen, substituting the correct user name in place of username: /usr/bin/sudo /usr/bin/pwpolicy -u username getaccountpolicies | tail -n +2 If there is no output, and password policy is not controlled by a directory service, this is a finding. Otherwise, look for the line "<key>policyCategoryAuthentication</key>". In the array that follows, there should be a <dict> section that contains a check <string> that allows users to log in if "policyAttributeCurrentTime" is less than the result of adding "policyAttributeCreationTime" to 72 hours (259299 seconds). The check might use a variable defined in its "policyParameters" section. If the check does not exist or if the check adds too great an amount of time to "policyAttributeCreationTime", this is a finding.

Added

V-95807

The macOS system must automatically remove or disable emergency accounts after the crisis is resolved or within 72 hours.

Finding ID
AOSX-14-000013
Rule ID
SV-104945r2_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000123-GPOS-00064
CCI
CCI-001682
Target Key
(None)
Documentable
No
Discussion

Emergency administrator accounts are privileged accounts established in response to crisis situations where the need for rapid account activation is required. Therefore, emergency account activation may bypass normal account authorization processes. If these accounts are automatically disabled, system maintenance during emergencies may not be possible, thus adversely affecting system availability. Emergency administrator accounts are different from infrequently used accounts (i.e., local logon accounts used by system administrators when network or normal logon/access is not available). Infrequently used accounts also remain available and are not subject to automatic termination dates. However, an emergency administrator account is normally a different account created for use by vendors or system maintainers. To address access requirements, many operating systems can be integrated with enterprise-level authentication/access mechanisms that meet or exceed access control policy requirements.

Fix Text

To remove all "pwpolicy" settings for an emergency account, run the following command, replacing "username" with the correct value: /usr/bin/sudo /usr/bin/pwpolicy -u username clearaccountpolicies Otherwise, to change the passcode policy for an emergency account and only remove some policy sections, run the following command to save a copy of the current policy file for the specified username: /usr/bin/sudo /usr/bin/pwpolicy -u username getaccountpolicies | tail -n +2 > pwpolicy.plist Open the resulting passcode policy file in a text editor and remove any policyContent sections that would restrict the ability to log in after a certain date or amount of time. To remove the section cleanly, remove the entire text that begins with <dict>, contains <key>policyContent<'/key>, and ends with </dict>. After saving the file and exiting to the command prompt, run the following command to load the new policy file: /usr/bin/sudo /usr/bin/pwpolicy -u username setaccountpolicies pwpolicy.plist

Check Content

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.

Added

V-95809

The macOS system must, for networked systems, compare internal information system clocks at least every 24 hours with a server that is synchronized to one of the redundant United States Naval Observatory (USNO) time servers or a time server designated for the appropriate DoD network (NIPRNet/SIPRNet) and/or the Global Positioning System (GPS).

Finding ID
AOSX-14-000014
Rule ID
SV-104947r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000355-GPOS-00143
CCI
CCI-002046
Target Key
(None)
Documentable
No
Discussion

Inaccurate time stamps make it more difficult to correlate events and can lead to an inaccurate analysis. Determining the correct time a particular event occurred on a system is critical when conducting forensic analysis and investigating system events. Sources outside of the configured acceptable allowance (drift) may be inaccurate. Synchronizing internal information system clocks provides uniformity of time stamps for information systems with multiple system clocks and systems connected over a network. Organizations should consider endpoints that may not have regular access to the authoritative time server (e.g., mobile, teleworking, and tactical endpoints). Satisfies: SRG-OS-000355-GPOS-00143, SRG-OS-000356-GPOS-00144

Fix Text

To enable the TIMED service, run the following command: /usr/bin/sudo systemsetup -setusingnetworktime on To configure a time server, use the following command: /usr/bin/sudo systemsetup -setnetworktimeserver "server"

Check Content

The TIMED (NTP replacement in Mojave) service must be enabled on all networked systems. To check if the service is running, use the following command: sudo systemsetup -getusingnetworktime If the following in not returned, this is a finding: Network Time: On To verify that an authorized Time Server is configured, run the following command: systemsetup -getnetworktimeserver Only approved time servers should be configured for use. If no server is configured, or if an unapproved time server is in use, this is a finding.

Added

V-95811

The macOS system must utilize an HBSS solution and implement all DoD required modules.

Finding ID
AOSX-14-000015
Rule ID
SV-104949r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000191-GPOS-00080
CCI
CCI-001233
Target Key
(None)
Documentable
No
Discussion

The macOS system must employ automated mechanisms to determine the state of system components. The DoD requires the installation and use of an approved HBSS solution to be implemented on the operating system. For additional information, reference all applicable HBSS OPORDs and FRAGOs on SIPRNet.

Fix Text

Install an approved HBSS solution onto the system and ensure that all components are at least updated to their DoD approved minimal versions.

Check Content

Verify that there is an approved HBSS solution installed on the system. If there is not an approved HBSS solution installed, this is a finding. Verify that all installed components of the HBSS Solution are at the DoD approved minimal version. If the installed components are not at the DoD approved minimal versions, this is a finding.

Added

V-95813

The macOS system must enforce the limit of three consecutive invalid logon attempts by a user.

Finding ID
AOSX-14-000020
Rule ID
SV-104951r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000021-GPOS-00005
CCI
CCI-000044
Target Key
(None)
Documentable
No
Discussion

By limiting the number of failed logon attempts, the risk of unauthorized system access via user password guessing, otherwise known as brute forcing, is reduced. Limits are imposed by locking the account.

Fix Text

This setting is enforced using the “Passcode Policy" configuration profile.

Check Content

The password policy is set with a configuration profile. Run the following command to check if the system has the correct setting for the number of permitted failed logon attempts: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep maxFailedAttempts If the return is null, or not, “maxFailedAttempts = 3”, this is a finding.

Added

V-95815

The macOS system must enforce an account lockout time period of 15 minutes in which a user makes three consecutive invalid logon attempts.

Finding ID
AOSX-14-000021
Rule ID
SV-104953r2_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000329-GPOS-00128
CCI
CCI-002238
Target Key
(None)
Documentable
No
Discussion

Setting a lockout time period of 15 minutes is an effective deterrent against brute forcing that also makes allowances for legitimate mistakes by users. When three invalid logon attempts are made, the account will be locked.

Fix Text

This setting may be enforced using the "Passcode Policy" configuration profile or by a directory service. The following two lines within the configuration enforce lockout expiration to "15" minutes: <key>autoEnableInSeconds</key> <integer>900</integer> To set the passcode policy without a configuration profile, run the following command to save a copy of the current "pwpolicy" account policy file: /usr/bin/sudo /usr/bin/pwpolicy getaccountpolicies | tail -n +2 > pwpolicy.plist Open the generated file in a text editor and ensure it contains the following text after the opening <dict> tag and before the closing </dict> tag. Replace <dict/> first with <dict></dict> if necessary. <key>policyCategoryAuthentication</key> <array> <dict> <key>policyContent</key> <string>(policyAttributeFailedAuthentications < policyAttributeMaximumFailedAuthentications) OR (policyAttributeCurrentTime > (policyAttributeLastFailedAuthenticationTime + autoEnableInSeconds))</string> <key>policyIdentifier</key> <string>Authentication Lockout</string> <key>policyParameters</key> <dict> <key>autoEnableInSeconds</key> <integer>900</integer> <key>policyAttributeMaximumFailedAuthentications</key> <integer>3</integer> </dict> </dict> </array> If the line "<key>policyCategoryAuthentication</key>" already exists, the following text should be used instead and inserted after the first <array> tag that follows it: <dict> <key>policyContent</key> <string>(policyAttributeFailedAuthentications < policyAttributeMaximumFailedAuthentications) OR (policyAttributeCurrentTime > (policyAttributeLastFailedAuthenticationTime + autoEnableInSeconds))</string> <key>policyIdentifier</key> <string>Authentication Lockout</string> <key>policyParameters</key> <dict> <key>autoEnableInSeconds</key> <integer>900</integer> <key>policyAttributeMaximumFailedAuthentications</key> <integer>3</integer> </dict> </dict> After saving the file and exiting to the command prompt, run the following command to load the new policy file: /usr/bin/sudo /usr/bin/pwpolicy setaccountpolicies pwpolicy.plist Note: Updates to passcode restrictions must be thoroughly evaluated in a test environment. Mistakes in configuration may block password change and local user creation operations, as well as lock out all local users, including administrators.

Check Content

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.

Added

V-95817

The macOS system must display the Standard Mandatory DoD Notice and Consent Banner before granting remote access to the operating system.

Finding ID
AOSX-14-000023
Rule ID
SV-104955r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000023-GPOS-00006
CCI
CCI-000048
Target Key
(None)
Documentable
No
Discussion

Display of a standardized and approved use notification before granting access to the operating system ensures privacy and security notification verbiage used is consistent with applicable federal laws, Executive Orders, directives, policies, regulations, standards, and guidance. System use notifications are required only for access via logon interfaces with human users and are not required when such human interfaces do not exist. The banner must be formatted in accordance with DTM-08-060.

Fix Text

Create a text file containing the required DoD text. Name the file "banner" and place it in "/etc/".

Check Content

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.

Added

V-95819

The macOS system must display the Standard Mandatory DoD Notice and Consent Banner before granting access to the system via SSH.

Finding ID
AOSX-14-000024
Rule ID
SV-104957r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000023-GPOS-00006
CCI
CCI-000050
Target Key
(None)
Documentable
No
Discussion

Display of a standardized and approved use notification before granting access to the operating system ensures privacy and security notification verbiage used is consistent with applicable federal laws, Executive Orders, directives, policies, regulations, standards, and guidance. System use notifications are required only for access via logon interfaces with human users and are not required when such human interfaces do not exist. The banner must be formatted in accordance with DTM-08-060. Satisfies: SRG-OS-000023-GPOS-00006, SRG-OS-000024-GPOS-00007

Fix Text

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

Check Content

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.

Added

V-95821

The macOS system must be configured so that any connection to the system must display the Standard Mandatory DoD Notice and Consent Banner before granting GUI access to the system.

Finding ID
AOSX-14-000025
Rule ID
SV-104959r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000023-GPOS-00006
CCI
CCI-001388
Target Key
(None)
Documentable
No
Discussion

Display of a standardized and approved use notification before granting access to the operating system ensures privacy and security notification verbiage used is consistent with applicable federal laws, Executive Orders, directives, policies, regulations, standards, and guidance. System use notifications are required only for access via logon interfaces with human users and are not required when such human interfaces do not exist. The banner must be formatted in accordance with DTM-08-060. Satisfies: SRG-OS-000023-GPOS-00006, SRG-OS-000024-GPOS-00007, SRG-OS-000228-GPOS-00088

Fix Text

Create an RTF file containing the required text. Name the file "PolicyBanner.rtf" or "PolicyBanner.rtfd" and place it in "/Library/Security/".

Check Content

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.

Added

V-95823

The macOS system must be configured so that log files must not contain access control lists (ACLs).

Finding ID
AOSX-14-000030
Rule ID
SV-104961r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000057-GPOS-00027
CCI
CCI-001314
Target Key
(None)
Documentable
No
Discussion

The audit service must be configured to create log files with the correct permissions to prevent normal users from reading audit logs. Audit logs contain sensitive data about the system and users. If log files are set to be readable and writable only by root or administrative users with sudo, the risk is mitigated. Satisfies: SRG-OS-000057-GPOS-00027, SRG-OS-000206-GPOS-00084

Fix Text

For any log file that contains ACLs, run the following command: /usr/bin/sudo chmod -N [audit log file]

Check Content

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.

Added

V-95825

The macOS system must be configured so that log folders must not contain access control lists (ACLs).

Finding ID
AOSX-14-000031
Rule ID
SV-104963r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000057-GPOS-00027
CCI
CCI-000162
Target Key
(None)
Documentable
No
Discussion

The audit service must be configured to create log folders with the correct permissions to prevent normal users from reading audit logs. Audit logs contain sensitive data about the system and users. If log folders are set to be readable and writable only by root or administrative users with sudo, the risk is mitigated.

Fix Text

For any log folder that contains ACLs, run the following command: /usr/bin/sudo chmod -N [audit log folder]

Check Content

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.

Added

V-95827

The macOS system must be configured with the SSH daemon ClientAliveInterval option set to 900 or less.

Finding ID
AOSX-14-000051
Rule ID
SV-104965r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000163-GPOS-00072
CCI
CCI-001133
Target Key
(None)
Documentable
No
Discussion

SSH should be configured to log users out after a 15-minute interval of inactivity and to wait only 30 seconds before timing out logon attempts. Terminating an idle session within a short time period reduces the window of opportunity for unauthorized personnel to take control of a management session enabled on the console or console port that has been left unattended. In addition, quickly terminating an idle session or an incomplete logon attempt will also free up resources committed by the managed network element.

Fix Text

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

Check Content

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.

Added

V-95829

The macOS system must be configured with the SSH daemon ClientAliveCountMax option set to 0.

Finding ID
AOSX-14-000052
Rule ID
SV-104967r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000163-GPOS-00072
CCI
CCI-001133
Target Key
(None)
Documentable
No
Discussion

SSH should be configured with an Active Client Alive Maximum Count of 0. Terminating an idle session within a short time period reduces the window of opportunity for unauthorized personnel to take control of a management session enabled on the console or console port that has been left unattended. In addition, quickly terminating an idle session or an incomplete logon attempt will also free up resources committed by the managed network element.

Fix Text

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

Check Content

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.

Added

V-95831

The macOS system must be configured with the SSH daemon LoginGraceTime set to 30 or less.

Finding ID
AOSX-14-000053
Rule ID
SV-104969r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000163-GPOS-00072
CCI
CCI-001133
Target Key
(None)
Documentable
No
Discussion

SSH should be configured to log users out after a 15-minute interval of inactivity and to wait only 30 seconds before timing out logon attempts. Terminating an idle session within a short time period reduces the window of opportunity for unauthorized personnel to take control of a management session enabled on the console or console port that has been left unattended. In addition, quickly terminating an idle session or an incomplete logon attempt will also free up resources committed by the managed network element.

Fix Text

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

Check Content

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.

Added

V-95833

The macOS system must generate audit records for all account creations, modifications, disabling, and termination events; privileged activities or other system-level access; all kernel module load, unload, and restart actions; all program initiations; and organizationally defined events for all non-local maintenance and diagnostic sessions.

Finding ID
AOSX-14-001001
Rule ID
SV-104971r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000004-GPOS-00004
CCI
CCI-002884
Target Key
(None)
Documentable
No
Discussion

Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. Audit records can be generated from various components within the information system (e.g., module or policy filter). If events associated with nonlocal administrative access or diagnostic sessions are not logged, a major tool for assessing and investigating attacks would not be available. This requirement addresses auditing-related issues associated with maintenance tools used specifically for diagnostic and repair actions on organizational information systems. Nonlocal maintenance and diagnostic activities are those activities conducted by individuals communicating through a network, either an external network (e.g., the Internet) or an internal network. Local maintenance and diagnostic activities are those activities carried out by individuals physically present at the information system or information system component and not communicating across a network connection. This requirement applies to hardware/software diagnostic test equipment or tools. This requirement does not cover hardware/software components that may support information system maintenance, yet are a part of the system, for example, the software implementing "ping," "ls," "ipconfig," or the hardware and software implementing the monitoring port of an Ethernet switch. Satisfies: SRG-OS-000004-GPOS-00004, SRG-OS-000239-GPOS-00089, SRG-OS-000240-GPOS-00090, SRG-OS-000241-GPOS-00091, SRG-OS-000327-GPOS-00127, SRG-OS-000392-GPOS-00172, SRG-OS-000471-GPOS-00215, SRG-OS-000471-GPOS-00216, SRG-OS-000476-GPOS-00221, SRG-OS-000477-GPOS-00222

Fix Text

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.

Check Content

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.

Added

V-95835

The macOS system must monitor remote access methods and generate audit records when successful/unsuccessful attempts to access/modify privileges occur.

Finding ID
AOSX-14-001002
Rule ID
SV-104973r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000032-GPOS-00013
CCI
CCI-000172
Target Key
(None)
Documentable
No
Discussion

Frequently, an attacker that successfully gains access to a system has only gained access to an account with limited privileges, such as a guest account or a service account. The attacker must attempt to change to another user account with normal or elevated privileges in order to proceed. Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. Audit records can be generated from various components within the information system (e.g., module or policy filter). Satisfies: SRG-OS-000032-GPOS-00013, SRG-OS-000462-GPOS-00206

Fix Text

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.

Check Content

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.

Added

V-95837

The macOS system must initiate session audits at system startup, using internal clocks with time stamps for audit records that meet a minimum granularity of one second and can be mapped to Coordinated Universal Time (UTC) or Greenwich Mean Time (GMT), in order to generate audit records containing information to establish what type of events occurred, the identity of any individual or process associated with the event, including individual identities of group account users, establish where the events occurred, source of the event, and outcome of the events including all account enabling actions, full-text recording of privileged commands, and information about the use of encryption for access wireless access to and from the system.

Finding ID
AOSX-14-001003
Rule ID
SV-104975r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000037-GPOS-00015
CCI
CCI-002130
Target Key
(None)
Documentable
No
Discussion

Without establishing what type of events occurred, when they occurred, and by whom it would be difficult to establish, correlate, and investigate the events leading up to an outage or attack. Audit record content that may be necessary to satisfy this requirement includes, for example, time stamps, source and destination addresses, user/process identifiers, event descriptions, success/fail indications, filenames involved, and access control or flow control rules invoked. Associating event types with detected events in the operating system audit logs provides a means of investigating an attack, recognizing resource utilization or capacity thresholds, or identifying an improperly configured operating system. Satisfies: SRG-OS-000037-GPOS-00015, SRG-OS-000038-GPOS-00016, SRG-OS-000039-GPOS-00017, SRG-OS-000040-GPOS-00018, SRG-OS-000041-GPOS-00019, SRG-OS-000042-GPOS-00020, SRG-OS-000042-GPOS-00021, SRG-OS-000055-GPOS-00026, SRG-OS-000254-GPOS-00095, SRG-OS-000255-GPOS-00096, SRG-OS-000303-GPOS-00120, SRG-OS-000337-GPOS-00129, SRG-OS-000358-GPOS-00145, SRG-OS-000359-GPOS-00146

Fix Text

To enable the audit service, run the following command: /usr/bin/sudo /bin/launchctl enable system/com.apple.auditd The system may need to be restarted for the update to take effect.

Check Content

To check if the audit service is running, use the following command: launchctl print-disabled system| grep auditd If the return is not: "com.apple.auditd" => false" the audit service is disabled, and this is a finding.

Added

V-95839

The macOS system must shut down by default upon audit failure (unless availability is an overriding concern).

Finding ID
AOSX-14-001010
Rule ID
SV-104977r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000047-GPOS-00023
CCI
CCI-000140
Target Key
(None)
Documentable
No
Discussion

The audit service should shut down the computer if it is unable to audit system events. Once audit failure occurs, user and system activity is no longer recorded and malicious activity could go undetected. Audit processing failures include software/hardware errors, failures in the audit capturing mechanisms, and audit storage capacity being reached or exceeded. Responses to audit failure depend on the nature of the failure mode. When availability is an overriding concern, other approved actions in response to an audit failure are as follows: (i) If the failure was caused by the lack of audit record storage capacity, the operating system must continue generating audit records if possible (automatically restarting the audit service if necessary), overwriting the oldest audit records in a first-in-first-out manner. (ii) If audit records are sent to a centralized collection server and communication with this server is lost or the server fails, the operating system must queue audit records locally until communication is restored or until the audit records are retrieved manually. Upon restoration of the connection to the centralized collection server, action should be taken to synchronize the local audit data with the collection server.

Fix Text

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

Check Content

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.

Added

V-95841

The macOS system must be configured with audit log files owned by root.

Finding ID
AOSX-14-001012
Rule ID
SV-104979r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000057-GPOS-00027
CCI
CCI-000162
Target Key
(None)
Documentable
No
Discussion

The audit service must be configured to create log files with the correct ownership to prevent normal users from reading audit logs. Audit logs contain sensitive data about the system and users. If log files are set to only be readable and writable by root or administrative users with sudo, the risk is mitigated.

Fix Text

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.

Check Content

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.

Added

V-95843

The macOS system must be configured with audit log folders owned by root.

Finding ID
AOSX-14-001013
Rule ID
SV-104981r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000057-GPOS-00027
CCI
CCI-000162
Target Key
(None)
Documentable
No
Discussion

The audit service must be configured to create log files with the correct ownership to prevent normal users from reading audit logs. Audit logs contain sensitive data about the system and about users. If log files are set to be readable and writable only by root or administrative users with sudo, the risk is mitigated.

Fix Text

For any log folder that has an incorrect owner, run the following command: /usr/bin/sudo chown root [audit log folder]

Check Content

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.

Added

V-95845

The macOS system must be configured with audit log files group-owned by wheel.

Finding ID
AOSX-14-001014
Rule ID
SV-104983r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000057-GPOS-00027
CCI
CCI-000162
Target Key
(None)
Documentable
No
Discussion

The audit service must be configured to create log files with the correct group ownership to prevent normal users from reading audit logs. Audit logs contain sensitive data about the system and users. If log files are set to be readable and writable only by root or administrative users with sudo, the risk is mitigated.

Fix Text

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.

Check Content

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.

Added

V-95847

The macOS system must be configured with audit log folders group-owned by wheel.

Finding ID
AOSX-14-001015
Rule ID
SV-104985r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000057-GPOS-00027
CCI
CCI-000162
Target Key
(None)
Documentable
No
Discussion

The audit service must be configured to create log files with the correct group ownership to prevent normal users from reading audit logs. Audit logs contain sensitive data about the system and about users. If log files are set to be readable and writable only by root or administrative users with sudo, the risk is mitigated.

Fix Text

For any log folder that has an incorrect group, run the following command: /usr/bin/sudo chgrp wheel [audit log folder]

Check Content

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.

Added

V-95849

The macOS system must be configured with audit log files set to mode 440 or less permissive.

Finding ID
AOSX-14-001016
Rule ID
SV-104987r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000057-GPOS-00027
CCI
CCI-000162
Target Key
(None)
Documentable
No
Discussion

The audit service must be configured to create log files with the correct permissions to prevent normal users from reading audit logs. Audit logs contain sensitive data about the system and about users. If log files are set to be readable and writable only by root or administrative users with sudo, the risk is mitigated.

Fix Text

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.

Check Content

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.

Added

V-95851

The macOS system must be configured with audit log folders set to mode 700 or less permissive.

Finding ID
AOSX-14-001017
Rule ID
SV-104989r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000057-GPOS-00027
CCI
CCI-000164
Target Key
(None)
Documentable
No
Discussion

The audit service must be configured to create log folders with the correct permissions to prevent normal users from reading audit logs. Audit logs contain sensitive data about the system and users. If log folders are set to be readable and writable only by root or administrative users with sudo, the risk is mitigated. Satisfies: SRG-OS-000057-GPOS-00027, SRG-OS-000058-GPOS-00028, SRG-OS-000059-GPOS-00029

Fix Text

For any log folder that returns an incorrect permission value, run the following command: /usr/bin/sudo chmod 700 [audit log folder]

Check Content

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.

Added

V-95853

The macOS system must audit the enforcement actions used to restrict access associated with changes to the system.

Finding ID
AOSX-14-001020
Rule ID
SV-104991r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000064-GPOS-00033
CCI
CCI-001814
Target Key
(None)
Documentable
No
Discussion

By auditing access restriction enforcement, changes to application and OS configuration files can be audited. Without auditing the enforcement of access restrictions, it will be difficult to identify attempted attacks and an audit trail will not be available for forensic investigation. Enforcement actions are the methods or mechanisms used to prevent unauthorized changes to configuration settings. Enforcement action methods may be as simple as denying access to a file based on the application of file permissions (access restriction). Audit items may consist of lists of actions blocked by access restrictions or changes identified after the fact. Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. Audit records can be generated from various components within the information system (e.g., module or policy filter). Satisfies: SRG-OS-000064-GPOS-00033, SRG-OS-000365-GPOS-00152, SRG-OS-000458-GPOS-00203, SRG-OS-000461-GPOS-00205, SRG-OS-000463-GPOS-00207, SRG-OS-000465-GPOS-00209, SRG-OS-000466-GPOS-00210, SRG-OS-000467-GPOS-00211, SRG-OS-000468-GPOS-00212, SRG-OS-000474-GPOS-00219

Fix Text

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.

Check Content

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.

Added

V-95855

The macOS system must provide an immediate warning to the System Administrator (SA) and Information System Security Officer (ISSO) (at a minimum) when allocated audit record storage volume reaches 75 percent of repository maximum audit record storage capacity.

Finding ID
AOSX-14-001030
Rule ID
SV-104993r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000343-GPOS-00134
CCI
CCI-001855
Target Key
(None)
Documentable
No
Discussion

The audit service must be configured to require a minimum percentage of free disk space in order to run. This ensures that audit will notify the administrator that action is required to free up more disk space for audit logs. When "minfree" is set to 25 percent, security personnel are notified immediately when the storage volume is 75 percent full and are able to plan for audit record storage capacity expansion.

Fix Text

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".

Check Content

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.

Added

V-95857

The macOS system must provide an immediate real-time alert to the System Administrator (SA) and Information System Security Officer (ISSO), at a minimum, of all audit failure events requiring real-time alerts.

Finding ID
AOSX-14-001031
Rule ID
SV-104995r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000344-GPOS-00135
CCI
CCI-001858
Target Key
(None)
Documentable
No
Discussion

The audit service should be configured to immediately print messages to the console or email administrator users when an auditing failure occurs. It is critical for the appropriate personnel to be aware if a system is at risk of failing to process audit logs as required. Without a real-time alert, security personnel may be unaware of an impending failure of the audit capability and system operation may be adversely affected.

Fix Text

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

Check Content

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.

Added

V-95859

The macOS system must generate audit records for DoD-defined events such as successful/unsuccessful logon attempts, successful/unsuccessful direct access attempts, starting and ending time for user access, and concurrent logons to the same account from different sources.

Finding ID
AOSX-14-001044
Rule ID
SV-104997r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000470-GPOS-00214
CCI
CCI-000172
Target Key
(None)
Documentable
No
Discussion

Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. Audit records can be generated from various components within the information system (e.g., module or policy filter). Satisfies: SRG-OS-000470-GPOS-00214, SRG-OS-000472-GPOS-00217, SRG-OS-000473-GPOS-00218, SRG-OS-000475-GPOS-00220

Fix Text

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.

Check Content

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.

Added

V-95861

The macOS system must accept and verify Personal Identity Verification (PIV) credentials, implement a local cache of revocation data to support path discovery and validation in case of the inability to access revocation information via the network, and only allow the use of DoD PKI-established certificate authorities for verification of the establishment of protected sessions.

Finding ID
AOSX-14-001060
Rule ID
SV-104999r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000376-GPOS-00161
CCI
CCI-002470
Target Key
(None)
Documentable
No
Discussion

The use of PIV credentials facilitates standardization and reduces the risk of unauthorized access. Without configuring a local cache of revocation data, there is the potential to allow access to users who are no longer authorized (users with revoked certificates). Untrusted Certificate Authorities (CA) can issue certificates, but they may be issued by organizations or individuals that seek to compromise DoD systems or by organizations with insufficient security controls. If the CA used for verifying the certificate is not a DoD-approved CA, trust of this CA has not been established. DoD has mandated the use of the CAC to support identity management and personal authentication for systems covered under Homeland Security Presidential Directive (HSPD) 12, as well as making the CAC a primary component of layered protection for national security systems. The DoD will only accept PKI-certificates obtained from a DoD-approved internal or external certificate authority. Reliance on CAs for the establishment of secure sessions includes, for example, the use of SSL/TLS certificates. Satisfies: SRG-OS-000376-GPOS-00161, SRG-OS-000377-GPOS-00162, SRG-OS-000384-GPOS-00167, SRG-OS-000403-GPOS-00182

Fix Text

This setting is enforced using the "Smart Card Policy" configuration profile. Note: Before applying the "Smart Card Policy", the supplemental guidance provided with the STIG should be consulted to ensure continued access to the operating system.

Check Content

To verify that certificate checks are occurring, run the following command. /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep checkCertificateTrust If the output is null or the value returned, "checkCertificateTrust = 0", is not equal to (0) or greater, this is a finding.

Added

V-95863

The macOS system must require individuals to be authenticated with an individual authenticator prior to using a group authenticator.

Finding ID
AOSX-14-001100
Rule ID
SV-105001r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000109-GPOS-00056
CCI
CCI-000770
Target Key
(None)
Documentable
No
Discussion

Administrator users must never log in directly as root. To assure individual accountability and prevent unauthorized access, logging in as root over a remote connection must be disabled. Administrators should only run commands as root after first authenticating with their individual user names and passwords.

Fix Text

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

Check Content

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.

Added

V-95865

The macOS system must be configured to disable SMB File Sharing unless it is required.

Finding ID
AOSX-14-002001
Rule ID
SV-105003r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-000381
Target Key
(None)
Documentable
No
Discussion

File Sharing is usually non-essential and must be disabled if not required. Enabling any service increases the attack surface for an intruder. By disabling unnecessary services, the attack surface is minimized.

Fix Text

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.

Check Content

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

Added

V-95867

The macOS system must be configured to disable Apple File (AFP) Sharing.

Finding ID
AOSX-14-002002
Rule ID
SV-105005r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-000381
Target Key
(None)
Documentable
No
Discussion

File Sharing is non-essential and must be disabled. Enabling any service increases the attack surface for an intruder. By disabling unnecessary services, the attack surface is minimized.

Fix Text

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.

Check Content

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

Added

V-95869

The macOS system must be configured to disable the Network File System (NFS) daemon unless it is required.

Finding ID
AOSX-14-002003
Rule ID
SV-105007r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-000381
Target Key
(None)
Documentable
No
Discussion

If the system does not require access to NFS file shares or is not acting as an NFS server, support for NFS is non-essential and NFS services must be disabled. NFS is a network file system protocol supported by UNIX-like operating systems. Enabling any service increases the attack surface for an intruder. By disabling unnecessary services, the attack surface is minimized.

Fix Text

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.

Check Content

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

Added

V-95871

The macOS system must be configured to disable Location Services.

Finding ID
AOSX-14-002004
Rule ID
SV-105009r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-000381
Target Key
(None)
Documentable
No
Discussion

To prevent unauthorized connection of devices, unauthorized transfer of information, or unauthorized tunneling (i.e., embedding of data types within data types), organizations must disable or restrict unused or unnecessary physical and logical ports/protocols on information systems. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services provided by default may not be necessary to support essential organizational operations. Additionally, it is sometimes convenient to provide multiple services from a single component (e.g., VPN and IPS); however, doing so increases risk over limiting the services provided by any one component. To support the requirements and principles of least functionality, the operating system must support the organizational requirements, providing only essential capabilities and limiting the use of ports, protocols, and/or services to only those required, authorized, and approved to conduct official business or to address authorized quality-of-life issues. Location Services must be disabled.

Fix Text

Disable the Location Services: The setting is found in System Preferences >> Security & Privacy >> Privacy >> Location Services. Uncheck the box labeled "Enable Location Services".

Check Content

If Location Services are authorized by the Authorizing Official, this is Not Applicable. Verify that Location Services are disabled: The setting is found in System Preferences >> Security & Privacy >> Privacy >> Location Services. If the box that says "Enable Location Services" is checked, this is a finding.

Added

V-95873

The macOS system must be configured to disable Bonjour multicast advertising.

Finding ID
AOSX-14-002005
Rule ID
SV-105011r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-000381
Target Key
(None)
Documentable
No
Discussion

To prevent unauthorized connection of devices, unauthorized transfer of information, or unauthorized tunneling (i.e., embedding of data types within data types), organizations must disable or restrict unused or unnecessary physical and logical ports/protocols on information systems. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services provided by default may not be necessary to support essential organizational operations. Additionally, it is sometimes convenient to provide multiple services from a single component (e.g., VPN and IPS); however, doing so increases risk over limiting the services provided by any one component. To support the requirements and principles of least functionality, the operating system must support the organizational requirements, providing only essential capabilities and limiting the use of ports, protocols, and/or services to only those required, authorized, and approved to conduct official business or to address authorized quality-of-life issues. Bonjour multicast advertising must be disabled on the system.

Fix Text

This setting is enforced using the "Custom Policy" configuration profile.

Check Content

To check that Bonjour broadcasts have been disabled, use the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep NoMulticastAdvertisements If the return is not, "NoMulticastAdvertisements = 1", this is a finding.

Added

V-95875

The macOS system must be configured to disable the UUCP service.

Finding ID
AOSX-14-002006
Rule ID
SV-105013r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-000381
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include but are not limited to games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission but that cannot be disabled. The system must not have the UUCP service active.

Fix Text

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.

Check Content

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

Added

V-95877

The macOS system must be configured to disable Internet Sharing.

Finding ID
AOSX-14-002007
Rule ID
SV-105015r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-000381
Target Key
(None)
Documentable
No
Discussion

To prevent unauthorized connection of devices, unauthorized transfer of information, or unauthorized tunneling (i.e., embedding of data types within data types), organizations must disable or restrict unused or unnecessary physical and logical ports/protocols on information systems. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services provided by default may not be necessary to support essential organizational operations. Additionally, it is sometimes convenient to provide multiple services from a single component (e.g., VPN and IPS); however, doing so increases risk over limiting the services provided by any one component. To support the requirements and principles of least functionality, the operating system must support the organizational requirements, providing only essential capabilities and limiting the use of ports, protocols, and/or services to only those required, authorized, and approved to conduct official business or to address authorized quality-of-life issues. Internet Sharing is non-essential and must be disabled.

Fix Text

This setting is enforced using the "Custom Policy" configuration profile.

Check Content

To check if Internet Sharing is disabled, use the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep forceInternetSharingOff If the return is not, "forceInternetSharingOff = 1", this is a finding.

Added

V-95883

The macOS system must be configured to disable Web Sharing.

Finding ID
AOSX-14-002008
Rule ID
SV-105021r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-000381
Target Key
(None)
Documentable
No
Discussion

To prevent unauthorized connection of devices, unauthorized transfer of information, or unauthorized tunneling (i.e., embedding of data types within data types), organizations must disable or restrict unused or unnecessary physical and logical ports/protocols on information systems. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services provided by default may not be necessary to support essential organizational operations. Additionally, it is sometimes convenient to provide multiple services from a single component (e.g., VPN and IPS); however, doing so increases risk over limiting the services provided by any one component. To support the requirements and principles of least functionality, the operating system must support the organizational requirements, providing only essential capabilities and limiting the use of ports, protocols, and/or services to only those required, authorized, and approved to conduct official business or to address authorized quality-of-life issues. Web Sharing is non-essential and must be disabled.

Fix Text

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.

Check Content

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

Added

V-95885

The macOS system must be configured to disable AirDrop.

Finding ID
AOSX-14-002009
Rule ID
SV-105023r1_rule
Severity
Cat III
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-000381
Target Key
(None)
Documentable
No
Discussion

To prevent unauthorized connection of devices, unauthorized transfer of information, or unauthorized tunneling (i.e., embedding of data types within data types), organizations must disable or restrict unused or unnecessary physical and logical ports/protocols on information systems. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services provided by default may not be necessary to support essential organizational operations. Additionally, it is sometimes convenient to provide multiple services from a single component (e.g., VPN and IPS); however, doing so increases risk over limiting the services provided by any one component. To support the requirements and principles of least functionality, the operating system must support the organizational requirements, providing only essential capabilities and limiting the use of ports, protocols, and/or services to only those required, authorized, and approved to conduct official business or to address authorized quality-of-life issues. AirDrop must be disabled.

Fix Text

This setting is enforced using the "Custom Policy" configuration profile.

Check Content

AirDrop relies on Bluetooth LE for discovery. To check if AirDrop has been disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep DisableBluetooth If the return is not, "DisableBluetooth = 1", this is a finding.

Added

V-95887

The macOS system must be configured to disable the application FaceTime.

Finding ID
AOSX-14-002010
Rule ID
SV-105025r2_rule
Severity
Cat III
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-001774
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include but are not limited to games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission but that cannot be disabled. The application FaceTime establishes connections to Apple's iCloud, despite using security controls to disable iCloud access. Satisfies: SRG-OS-000095-GPOS-00049, SRG-OS-000370-GPOS-00155

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

To check if there is a configuration policy defined for "Application Restrictions", run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -A 5 familyControlsEnabled | grep "FaceTime" If the return does not contain "/Applications/FaceTime.app", this is a finding.

Added

V-95889

The macOS system must be configured to disable the application Messages.

Finding ID
AOSX-14-002011
Rule ID
SV-105027r2_rule
Severity
Cat III
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-001774
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include but are not limited to games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission but that cannot be disabled. The application Messages establishes connections to Apple's iCloud, despite using security controls to disable iCloud access. Satisfies: SRG-OS-000095-GPOS-00049, SRG-OS-000370-GPOS-00155

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

To check if there is a configuration policy defined for "Application Restrictions", run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -A 5 familyControlsEnabled | grep "Messages.app" If the return does not contain "/Applications/Messages.app", this is a finding.

Added

V-95891

The macOS system must be configured to disable the iCloud Calendar services.

Finding ID
AOSX-14-002012
Rule ID
SV-105029r1_rule
Severity
Cat III
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-001774
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include but are not limited to games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission but that cannot be disabled. The Calendar application's connections to Apple's iCloud, must be disabled. Satisfies: SRG-OS-000095-GPOS-00049, SRG-OS-000370-GPOS-00155

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

To check if iCloudCalendar is disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep allowCloudCalendar If the return is not “allowCloudCalendar = 0”, this is a finding.

Added

V-95893

The macOS system must be configured to disable the iCloud Reminders services.

Finding ID
AOSX-14-002013
Rule ID
SV-105031r1_rule
Severity
Cat III
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-001774
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include but are not limited to games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission but that cannot be disabled. The Reminder application's connections to Apple's iCloud, must be disabled. Satisfies: SRG-OS-000095-GPOS-00049, SRG-OS-000370-GPOS-00155

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

To check if iCloud Reminders is disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep allowCloudReminders If the return is not “allowCloudReminders = 0”, this is a finding.

Added

V-95895

The macOS system must be configured to disable iCloud Address Book services.

Finding ID
AOSX-14-002014
Rule ID
SV-105033r1_rule
Severity
Cat III
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-001774
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include but are not limited to games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission but that cannot be disabled. The Address Book(Contacts) application's connections to Apple's iCloud, must be disabled. Satisfies: SRG-OS-000095-GPOS-00049, SRG-OS-000370-GPOS-00155

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

/usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep allowCloudAddressBook If the result is not “allowCloudAddressBook = 0”, this is a finding.

Added

V-95897

The macOS system must be configured to disable the Mail iCloud services.

Finding ID
AOSX-14-002015
Rule ID
SV-105035r1_rule
Severity
Cat III
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-001774
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include but are not limited to games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission but that cannot be disabled. The Mail application's connections to Apple's iCloud, must be disabled. Satisfies: SRG-OS-000095-GPOS-00049, SRG-OS-000370-GPOS-00155

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

To check if Mail iCloud is disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep allowCloudMail If the result is not “allowCloudMail = 0”, this is a finding.

Added

V-95899

The macOS system must be configured to disable the iCloud Notes services.

Finding ID
AOSX-14-002016
Rule ID
SV-105037r1_rule
Severity
Cat III
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-001774
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include but are not limited to games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission but that cannot be disabled. The Notes application's connections to Apple's iCloud, must be disabled. Satisfies: SRG-OS-000095-GPOS-00049, SRG-OS-000370-GPOS-00155

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

To check if iCloud Notes is disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep allowCloudNotes If the return is not “allowCloudNotes = 0”, this is a finding.

Added

V-95901

The macOS system must cover or disable the built-in or attached camera when not in use.

Finding ID
AOSX-14-002017
Rule ID
SV-105039r2_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-001153
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Failing to disconnect from collaborative computing devices (i.e. cameras) can result in subsequent compromises of organizational information. Providing easy methods to physically disconnect from such devices after a collaborative computing session helps to ensure that participants actually carry out the disconnect activity without having to go through complex and tedious procedures. Satisfies: SRG-OS-000095-GPOS-00049, SRG-OS-000370-GPOS-00155

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

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.

Added

V-95905

The macOS system must be configured to disable the application Mail.

Finding ID
AOSX-14-002019
Rule ID
SV-105043r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-000381
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include but are not limited to games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission but that cannot be disabled. The application Mail establishes connections to Apple's iCloud, despite using security controls to disable iCloud access.

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

To check if there is a configuration policy defined for "Application Restrictions", run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -A 5 familyControlsEnabled | grep "Mail.app" If the return does not contain "/Applications/Mail.app", this is a finding.

Added

V-95907

The macOS system must be configured to disable Siri and dictation.

Finding ID
AOSX-14-002020
Rule ID
SV-105045r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-001774
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include but are not limited to games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission but that cannot be disabled. Siri and dictation must be disabled. Satisfies: SRG-OS-000095-GPOS-00049, SRG-OS-000370-GPOS-00155

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

To check if Siri and dictation has been disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -e "Assistant Allowed" -e "Ironwood Allowed" If the output is not the following, this is a finding: “Assistant Allowed = 0” “Ironwood Allowed = 0”

Added

V-95909

The macOS system must be configured to disable sending diagnostic and usage data to Apple.

Finding ID
AOSX-14-002021
Rule ID
SV-105047r2_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000096-GPOS-00050
CCI
CCI-000382
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include but are not limited to games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission but that cannot be disabled. The ability to submit diagnostic data to Apple must be disabled.

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile. The setting "Send diagnostic & usage data to Apple" is found in System Preferences >> Security & Privacy >> Privacy >> Diagnostics & Usage. Uncheck the box that says "Send diagnostic & usage data to Apple." To apply the setting from the command line, run the following commands: /usr/bin/defaults read "/Library/Application Support/CrashReporter/DiagnosticMessagesHistory.plist" AutoSubmit /usr/bin/sudo /usr/bin/defaults write "/Library/Application Support/CrashReporter/DiagnosticMessagesHistory.plist" AutoSubmit -bool false /usr/bin/sudo /bin/chmod 644 /Library/Application\ Support/CrashReporter/DiagnosticMessagesHistory.plist /usr/bin/sudo /usr/bin/chgrp admin /Library/Application\ Support/CrashReporter/DiagnosticMessagesHistory.plist

Check Content

Sending diagnostic and usage data to Apple must be disabled. To check if a configuration profile is configured to enforce this setting, run the following command: /usr/bin/sudo /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep allowDiagnosticSubmission If "allowDiagnosticSubmission" is not set to "0", this is a finding. Alternately, the setting is found in System Preferences >> Security & Privacy >> Privacy >> Diagnostics & Usage. If the box that says "Send diagnostic & usage data to Apple" is checked, this is a finding.

Added

V-95911

The macOS system must be configured to disable Remote Apple Events.

Finding ID
AOSX-14-002022
Rule ID
SV-105049r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000096-GPOS-00050
CCI
CCI-000382
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include but are not limited to games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission but that cannot be disabled. Remote Apple Events must be disabled.

Fix Text

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.

Check Content

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

Added

V-95913

The macOS system must be configured to disable the application Calendar.

Finding ID
AOSX-14-002023
Rule ID
SV-105051r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-000381
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include but are not limited to games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission but that cannot be disabled. The application Calendar establishes connections to Apple's iCloud, despite using security controls to disable iCloud access.

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

To check if there is a configuration policy defined for "Application Restrictions", run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -A 5 familyControlsEnabled | grep "Calendar.app" If the return does not contain "/Applications/Calendar.app", this is a finding.

Added

V-95915

The macOS system must be configured to disable the system preference pane for iCloud.

Finding ID
AOSX-14-002031
Rule ID
SV-105053r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000370-GPOS-00155
CCI
CCI-001774
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include but are not limited to games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission but that cannot be disabled. The iCloud System Preference Pane must be disabled.

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

To check if the system has the correct setting in the configuration profile to disable access to the iCloud preference pane, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -A 6 DisabledPreferencePanes | grep icloud If the return is not “com.apple.preferences.icloud”, this is a finding.

Added

V-95917

The macOS system must be configured to disable the system preference pane for Internet Accounts.

Finding ID
AOSX-14-002032
Rule ID
SV-105055r2_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000370-GPOS-00155
CCI
CCI-001774
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include but are not limited to games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission but that cannot be disabled. The Internet Accounts System preference pane must be disabled. Satisfies: SRG-OS-000095-GPOS-00049.

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

To check if the system has the correct setting in the configuration profile to disable access to the Internet Accounts System preference pane, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -A 6 DisabledPreferencePanes If the return is not an array which contains: “com.apple.preferences.internetaccounts”, this is a finding.

Added

V-95919

The macOS system must be configured to disable the Siri Setup services.

Finding ID
AOSX-14-002034
Rule ID
SV-105057r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-000381
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include, but are not limited to, games, software packages, tools, and demonstration software, not related to requirements or providing a wide array of functionality not required for every mission, but which cannot be disabled.

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

To check if SiriSetup is disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep SkipSiriSetup If the return is not “SkipSiriSetup = 1”, this is a finding.

Added

V-95921

The macOS system must be configured to disable the Cloud Setup services.

Finding ID
AOSX-14-002035
Rule ID
SV-105059r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-000381
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include, but are not limited to, games, software packages, tools, and demonstration software, not related to requirements or providing a wide array of functionality not required for every mission, but which cannot be disabled.

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

To check if CloudSetup is disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep SkipCloudSetup If the return is not “SkipCloudSetup = 1”, this is a finding.

Added

V-95923

The macOS system must be configured to disable the Privacy Setup services.

Finding ID
AOSX-14-002036
Rule ID
SV-105061r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-000381
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include, but are not limited to, games, software packages, tools, and demonstration software, not related to requirements or providing a wide array of functionality not required for every mission, but which cannot be disabled.

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

To check if PrivacySetup is disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep SkipPrivacySetup If the return is not “SkipPrivacySetup = 1”, this is a finding.

Added

V-95925

The macOS system must be configured to disable the Cloud Storage Setup services.

Finding ID
AOSX-14-002037
Rule ID
SV-105063r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-000381
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include, but are not limited to, games, software packages, tools, and demonstration software, not related to requirements or providing a wide array of functionality not required for every mission, but which cannot be disabled.

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

To check if CloudStorage Setup is disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep SkipiCloudStorageSetup If the return is not “SkipiCloudStorageSetup = 1”, this is a finding.

Added

V-95927

The macOS system must be configured to disable the tftpd service.

Finding ID
AOSX-14-002038
Rule ID
SV-105065r2_rule
Severity
Cat I
CCE
(None)
Group Title
SRG-OS-000074-GPOS-00042
CCI
CCI-000197
Target Key
(None)
Documentable
No
Discussion

The "tftpd" service service must be disabled as it sends all data in a clear-text form that can be easily intercepted and read. The data needs to be protected at all times during transmission, and encryption is the standard method for protecting data in transit. If the data is not encrypted during transmission, it can be plainly read (i.e., clear text) and easily compromised. Disabling ftp is one way to mitigate this risk. Administrators should be instructed to use an alternate service for data transmission that uses encryption, such as SFTP. Additionally, the "tftpd" service uses UDP which is not secure.

Fix Text

To disable the tftpd service, run the following command: /usr/bin/sudo /bin/launchctl disable system/com.apple.tftpd

Check Content

To check if the tftpd service is disabled, run the following command: sudo launchctl print-disabled system | grep tftpd If the results do not show the following, this is a finding: "com.apple.tftpd" => true

Added

V-95929

The macOS system must disable Siri pop-ups.

Finding ID
AOSX-14-002039
Rule ID
SV-105067r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-001774
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include but are not limited to games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission but that cannot be disabled. The Siri setup pop-up must be disabled. Satisfies: SRG-OS-000095-GPOS-00049, SRG-OS-000370-GPOS-00155

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

To check if the Skip Siri Setup prompt is enabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep SkipSiriSetup If the output is null or "SkipSiriSetup" is not set to "1", this is a finding.

Added

V-95931

The macOS system must disable iCloud Keychain synchronization.

Finding ID
AOSX-14-002040
Rule ID
SV-105069r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-001774
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include but are not limited to games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission but that cannot be disabled. Keychain synchronization must be disabled. Satisfies: SRG-OS-000095-GPOS-00049, SRG-OS-000370-GPOS-00155

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

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.

Added

V-95933

The macOS system must disable iCloud document synchronization.

Finding ID
AOSX-14-002041
Rule ID
SV-105071r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-001774
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include but are not limited to games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission but that cannot be disabled. iCloud document synchronization must be disabled. Satisfies: SRG-OS-000095-GPOS-00049, SRG-OS-000370-GPOS-00155

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

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.

Added

V-95935

The macOS system must disable iCloud bookmark synchronization.

Finding ID
AOSX-14-002042
Rule ID
SV-105073r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-001774
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include but are not limited to games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission but that cannot be disabled. iCloud Bookmark syncing must be disabled. Satisfies: SRG-OS-000095-GPOS-00049, SRG-OS-000370-GPOS-00155

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

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.

Added

V-95937

The macOS system must disable iCloud photo library.

Finding ID
AOSX-14-002043
Rule ID
SV-105075r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-001774
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include but are not limited to games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission but that cannot be disabled. iCloud Photo Library must be disabled. Satisfies: SRG-OS-000095-GPOS-00049, SRG-OS-000370-GPOS-00155

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

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.

Added

V-95939

The macOS system must disable Cloud Document Sync.

Finding ID
AOSX-14-002049
Rule ID
SV-105077r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000370-GPOS-00155
CCI
CCI-001774
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include but are not limited to games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission but that cannot be disabled. Cloud Document Sync must be disabled.

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

To view the setting for the iCloud Desktop and Documents configuration, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep allowCloudDocumentSync If the output is null or not "allowCloudDocumentSync = 0", this is a finding.

Added

V-95941

The macOS system must disable the Screen Sharing feature.

Finding ID
AOSX-14-002050
Rule ID
SV-105079r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000480-GPOS-00227
CCI
CCI-000366
Target Key
(None)
Documentable
No
Discussion

The Screen Sharing feature allows remote users to view or control the desktop of the current user. A malicious user can take advantage of screen sharing to gain full access to the system remotely, either with stolen credentials or by guessing the username and password. Disabling Screen Sharing mitigates this risk.

Fix Text

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.

Check Content

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

Added

V-95943

The macOS system must allow only applications downloaded from the App Store to run.

Finding ID
AOSX-14-002060
Rule ID
SV-105081r2_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000480-GPOS-00227
CCI
CCI-000366
Target Key
(None)
Documentable
No
Discussion

Gatekeeper settings must be configured correctly to only allow the system to run applications downloaded from the Mac App Store or applications signed with a valid Apple Developer ID code. Administrator users will still have the option to override these settings on a per-app basis. Gatekeeper is a security feature that ensures that applications must be digitally signed by an Apple-issued certificate in order to run. Digital signatures allow the macOS host to verify that the application has not been modified by a malicious third party.

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile

Check Content

To verify only applications downloaded from the App Store are allowed to run, type the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -E '(EnableAssessment | AllowIdentifiedDevelopers)' If the return is null, or is not the following, this is a finding: AllowIdentifiedDevelopers = 1; EnableAssessment = 1;

Added

V-95945

The macOS system must be configured so that end users cannot override Gatekeeper settings.

Finding ID
AOSX-14-002061
Rule ID
SV-105083r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000480-GPOS-00227
CCI
CCI-000366
Target Key
(None)
Documentable
No
Discussion

Gatekeeper must be configured with a configuration profile to prevent normal users from overriding its setting. If users are allowed to disable Gatekeeper or set it to a less restrictive setting, malware could be introduced into the system. Gatekeeper is a security feature that ensures applications must be digitally signed by an Apple-issued certificate in order to run. Digital signatures allow the macOS host to verify the application has not been modified by a malicious third party.

Fix Text

This setting is enforced using the "RestrictionsPolicy" configuration profile.

Check Content

To verify only applications downloaded from the App Store are allowed to run, type the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep DisableOverride If the return is null or is not the following, this is a finding: DisableOverride = 1;

Added

V-95947

The macOS system must be configured with Bluetooth turned off unless approved by the organization.

Finding ID
AOSX-14-002062
Rule ID
SV-105085r1_rule
Severity
Cat III
CCE
(None)
Group Title
SRG-OS-000481-GPOS-000481
CCI
CCI-002418
Target Key
(None)
Documentable
No
Discussion

Without protection of communications with wireless peripherals, confidentiality and integrity may be compromised because unprotected communications can be intercepted and either read, altered, or used to compromise the operating system. This requirement applies to wireless peripheral technologies (e.g., wireless mice, keyboards, displays, etc.) used with an operating system. Wireless peripherals (e.g., Wi-Fi/Bluetooth/IR Keyboards, Mice, and Pointing Devices and Near Field Communications [NFC]) present a unique challenge by creating an open, unsecured port on a computer. Wireless peripherals must meet DoD requirements for wireless data transmission and be approved for use by the AO. Even though some wireless peripherals, such as mice and pointing devices, do not ordinarily carry information that need to be protected, modification of communications with these wireless peripherals may be used to compromise the operating system. Communication paths outside the physical protection of a controlled boundary are exposed to the possibility of interception and modification. Protecting the confidentiality and integrity of communications with wireless peripherals can be accomplished by physical means (e.g., employing physical barriers to wireless radio frequencies) or by logical means (e.g., employing cryptographic techniques). If physical means of protection are employed, then logical means (cryptography) do not have to be employed, and vice versa. If the wireless peripheral is only passing telemetry data, encryption of the data may not be required.

Fix Text

This setting is enforced using the "Custom Policy" configuration profile.

Check Content

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.

Added

V-95949

The macOS system must disable the guest account.

Finding ID
AOSX-14-002063
Rule ID
SV-105087r1_rule
Severity
Cat I
CCE
(None)
Group Title
SRG-OS-000364-GPOS-00151
CCI
CCI-001813
Target Key
(None)
Documentable
No
Discussion

Failure to provide logical access restrictions associated with changes to system configuration may have significant effects on the overall security of the system. When dealing with access restrictions pertaining to change control, it should be noted that any changes to the hardware, software, and/or firmware components of the operating system can have significant effects on the overall security of the system. Accordingly, only qualified and authorized individuals should be allowed to obtain access to operating system components for the purposes of initiating changes, including upgrades and modifications. Logical access restrictions include, for example, controls that restrict access to workflow automation, media libraries, abstract layers (e.g., changes implemented into third-party interfaces rather than directly into information systems), and change windows (e.g., changes occur only during specified times, making unauthorized changes easy to discover).

Fix Text

This is managed with Login Window Policy.

Check Content

To check that the system is configured to disable the guest account, run the following command: # /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep DisableGuestAccount If the result is null or not "DisableGuestAccount = 1", this is a finding.

Added

V-95951

The macOS system must have the security assessment policy subsystem enabled.

Finding ID
AOSX-14-002064
Rule ID
SV-105089r1_rule
Severity
Cat I
CCE
(None)
Group Title
SRG-OS-000366-GPOS-00153
CCI
CCI-001749
Target Key
(None)
Documentable
No
Discussion

Any changes to the hardware, software, and/or firmware components of the information system and/or application can potentially have significant effects on the overall security of the system. Accordingly, software defined by the organization as critical must be signed with a certificate that is recognized and approved by the organization.

Fix Text

To enable the Security assessment policy subsystem, run the following command: /usr/bin/sudo /usr/sbin/spctl --master-enable

Check Content

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.

Added

V-95953

The macOS system must not allow an unattended or automatic logon to the system.

Finding ID
AOSX-14-002066
Rule ID
SV-105091r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000480-GPOS-00229
CCI
CCI-000366
Target Key
(None)
Documentable
No
Discussion

Failure to restrict system access to authenticated users negatively impacts operating system security.

Fix Text

This setting is enforced using the "Login Window Policy" configuration profile.

Check Content

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.

Added

V-95955

The macOS system must set permissions on user home directories to prevent users from having access to read or modify another users files.

Finding ID
AOSX-14-002068
Rule ID
SV-105093r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000480-GPOS-00228
CCI
CCI-000366
Target Key
(None)
Documentable
No
Discussion

Configuring the operating system to use the most restrictive permissions possible for user home directories helps to protect against inadvertent disclosures.

Fix Text

To ensure the appropriate permissions are set for each user on the system, run the following command: diskutil resetUserPermissions / userid, where userid is the user name for the user whose home directory permissions need to be repaired.

Check Content

To verify that permissions are set correctly on user home directories, use the following commands: ls -le /Users Should return a listing of the permissions of the root of every user account configured on the system. For each of the users, the permissions should be: "drwxr-xr-x+" with the user listed as the owner and the group listed as "staff". The plus (+) sign indicates an associated Access Control List, which should be: 0: group:everyone deny delete For every authorized user account, also run the following command: /usr/bin/sudo ls -le /Users/userid, where userid is an existing user. This command will return the permissions of all of the objects under the users' home directory. The permissions for each of the subdirectories should be: drwx------+ 0: group:everyone deny delete With the exception of the "Public" directory, whose permissions should match the following: drwxr-xr-x+ 0: group:everyone deny delete If the permissions returned by either of these checks differ from what is shown, this is a finding.

Added

V-95957

The macOS system must issue or obtain public key certificates under an appropriate certificate policy from an approved service provider.

Finding ID
AOSX-14-003001
Rule ID
SV-105095r1_rule
Severity
Cat I
CCE
(None)
Group Title
SRG-OS-000066-GPOS-00034
CCI
CCI-002450
Target Key
(None)
Documentable
No
Discussion

DoD-approved certificates must be installed to the System Keychain so they will be available to all users. For user certificates, each organization obtains certificates from an approved, shared service provider, as required by OMB policy. For federal agencies operating a legacy public key infrastructure cross-certified with the Federal Bridge Certification Authority at medium assurance or higher, this Certification Authority will suffice. This control focuses on certificates with a visibility external to the information system and does not include certificates related to internal system operations; for example, application-specific time services. Use of weak or untested encryption algorithms undermines the purposes of utilizing encryption to protect data. The operating system must implement cryptographic modules adhering to the higher standards approved by the federal government since this provides assurance they have been tested and validated. Satisfies: SRG-OS-000066-GPOS-00034, SRG-OS-000478-GPOS-00223

Fix Text

Obtain the approved DOD certificates from the appropriate authority. Use Keychain Access from "/Applications/Utilities" to add certificates to the System Keychain.

Check Content

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.

Added

V-95959

The macOS system must enable certificate for smartcards.

Finding ID
AOSX-14-003002
Rule ID
SV-105097r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000067-GPOS-00035
CCI
CCI-000186
Target Key
(None)
Documentable
No
Discussion

To prevent untrusted certificates the certificates on a smartcard card must be valid in these ways: its issuer is system-trusted, the certificate is not expired, its "valid-after" date is in the past, and it passes CRL and OCSP checking.

Fix Text

This setting is enforced using the "Smart Card Policy" configuration profile. Note: Before applying the "Smart Card Policy", the supplemental guidance provided with the STIG should be consulted to ensure continued access to the operating system.

Check Content

To view the setting for the smartcard certification configuration, run the following command: sudo /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep checkCertificateTrust If the return is not "checkCertificateTrust = 1;" with the numeral equal to 1 or greater, this is a finding.

Added

V-95961

The macOS system must map the authenticated identity to the user or group account for PKI-based authentication.

Finding ID
AOSX-14-003005
Rule ID
SV-105099r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000068-GPOS-00036
CCI
CCI-000187
Target Key
(None)
Documentable
No
Discussion

Without mapping the certificate used to authenticate to the user account, the ability to determine the identity of the individual user or group will not be available for forensic analysis.

Fix Text

For stand-alone systems, this setting is enforced using the "Smart Card Policy" configuration profile. Note: Before applying the "Smart Card Policy", the supplemental guidance provided with the STIG should be consulted to ensure continued access to the operating system.

Check Content

To view the setting for the smartcard certification configuration, run the following command: sudo /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep enforceSmartCard If the return is not "enforceSmartCard = 1;" this is a finding.

Added

V-95963

The macOS system must enforce password complexity by requiring that at least one numeric character be used.

Finding ID
AOSX-14-003007
Rule ID
SV-105101r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000071-GPOS-00039
CCI
CCI-000194
Target Key
(None)
Documentable
No
Discussion

Use of a complex password helps to increase the time and resources required to compromise the password. Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. Password complexity is one factor of several that determines how long it takes to crack a password. The more complex the password, the greater the number of possible combinations that need to be tested before the password is compromised.

Fix Text

This setting is enforced using the "Passcode Policy" configuration profile.

Check Content

To check the currently applied policies for passwords and accounts, use the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep requireAlphanumeric If the return is not “requireAlphanumeric = 1”, this is a finding.

Added

V-95965

The macOS system must enforce a 60-day maximum password lifetime restriction.

Finding ID
AOSX-14-003008
Rule ID
SV-105103r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000076-GPOS-00044
CCI
CCI-000199
Target Key
(None)
Documentable
No
Discussion

Any password, no matter how complex, can eventually be cracked. Therefore, passwords need to be changed periodically. One method of minimizing this risk is to use complex passwords and periodically change them. If the operating system does not limit the lifetime of passwords and force users to change their passwords, there is the risk that the operating system passwords could be compromised.

Fix Text

This setting is enforced using the "Passcode Policy" configuration profile.

Check Content

To check the currently applied policies for passwords and accounts, use the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep maxPINAgeInDays If "maxPINAgeInDays" is set a value greater than "60", this is a finding.

Added

V-95967

The macOS system must prohibit password reuse for a minimum of five generations.

Finding ID
AOSX-14-003009
Rule ID
SV-105105r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000077-GPOS-00045
CCI
CCI-000200
Target Key
(None)
Documentable
No
Discussion

Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. If the information system or application allows the user to consecutively reuse their password when that password has exceeded its defined lifetime, the end result is a password that is not changed as per policy requirements.

Fix Text

This setting is enforced using the "Passcode Policy" configuration profile.

Check Content

To check the currently applied policies for passwords and accounts, use the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep pinHistory If the return is not “pinHistory = 5” or greater, this is a finding.

Added

V-95969

The macOS system must enforce a minimum 15-character password length.

Finding ID
AOSX-14-003010
Rule ID
SV-105107r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000078-GPOS-00046
CCI
CCI-000205
Target Key
(None)
Documentable
No
Discussion

The minimum password length must be set to 15 characters. Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. Password length is one factor of several that helps to determine strength and how long it takes to crack a password. The use of more characters in a password helps to exponentially increase the time and/or resources required to compromise the password.

Fix Text

This setting is enforced using the "Passcode Policy" configuration profile.

Check Content

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.

Added

V-95971

The macOS system must enforce password complexity by requiring that at least one special character be used.

Finding ID
AOSX-14-003011
Rule ID
SV-105109r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000266-GPOS-00101
CCI
CCI-001619
Target Key
(None)
Documentable
No
Discussion

Use of a complex password helps to increase the time and resources required to compromise the password. Password complexity or strength is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. Password complexity is one factor in determining how long it takes to crack a password. The more complex the password, the greater the number of possible combinations that need to be tested before the password is compromised. Special characters are those characters that are not alphanumeric. Examples include: ~ ! @ # $ % ^ *.

Fix Text

This setting may be enforced using the "Passcode Policy" configuration profile or by a directory service.

Check Content

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.

Added

V-95973

The macOS system must be configured to prevent displaying password hints.

Finding ID
AOSX-14-003012
Rule ID
SV-105111r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000480-GPOS-00227
CCI
CCI-000366
Target Key
(None)
Documentable
No
Discussion

Password hints leak information about passwords in use and can lead to loss of confidentiality.

Fix Text

This setting is enforce using the "Login Window" Policy.

Check Content

To check that password hints are disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep RetriesUntilHint If the return is null or is not "RetriesUntilHint = 0", this is a finding.

Added

V-95975

macOS must be configured with a firmware password to prevent access to single user mode and booting from alternative media.

Finding ID
AOSX-14-003013
Rule ID
SV-105113r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000480-GPOS-00227
CCI
CCI-000366
Target Key
(None)
Documentable
No
Discussion

Single user mode and the boot picker, as well as numerous other tools are available on macOS through booting while holding the "Option" key down. Setting a firmware password restricts access to these tools.

Fix Text

To set a firmware passcode use the following command. sudo /usr/sbin/firmwarepasswd -setpasswd Note: If firmware password or passcode is forgotten, the only way to reset the forgotten password is through the use of a machine specific binary generated and provided by Apple. Schedule a support call, and provide proof of purchase before the firmware binary will be generated.

Check Content

To check that password hints are disabled, run the following command: # sudo /usr/sbin/firmwarepasswd -check If the return is not, "Password Enabled: Yes", this is a finding.

Added

V-95977

The macOS system must use multifactor authentication in the establishment of nonlocal maintenance and diagnostic sessions.

Finding ID
AOSX-14-003024
Rule ID
SV-105115r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000125-GPOS-00065
CCI
CCI-000877
Target Key
(None)
Documentable
No
Discussion

If maintenance tools are used by unauthorized personnel, they may accidentally or intentionally damage or compromise the system. The act of managing systems and applications includes the ability to access sensitive application information, such as system configuration details, diagnostic information, user information, and potentially sensitive application data. Some maintenance and test tools are either standalone devices with their own operating systems or are applications bundled with an operating system. Nonlocal maintenance and diagnostic activities are those activities conducted by individuals communicating through a network, either an external network (e.g., the Internet) or an internal network. Typically, strong authentication requires authenticators that are resistant to replay attacks and employ multifactor authentication. Strong authenticators include, for example, PKI where certificates are stored on a token protected by a password, passphrase, or biometric.

Fix Text

For non-directory bound systems, this setting is enforced using the "Smart Card Policy" configuration profile. Note: Before applying the "Smart Card Policy", the supplemental guidance provided with the STIG should be consulted to ensure continued access to the operating system. To ensure that passcode based logins are disabled in sshd, run the following command: /usr/bin/sudo /usr/bin/sed -i.bak 's/^[\#]*ChallengeResponseAuthentication.*/ChallengeResponseAuthentication no/' /etc/ssh/sshd_config /usr/bin/sudo /usr/bin/sed -i.bak 's/^[\#]*PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config

Check Content

If the system is connected to a directory server, this is Not Applicable. The following command ensures that a mandatory smart card policy is enforced: # /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep enforceSmartCard enforceSmartCard=1 If the command returns null, or any other value, this is a finding. The following command ensures that passwords are disabled in the SSHD configuration file: # grep -e ^[\#]*PasswordAuthentication.* -e ^[\#]*ChallengeResponseAuthentication.* /etc/ssh/sshd_config If this command returns null, or anything other than exactly this text, with no leading hash(#), this is a finding: "PasswordAuthentication no ChallengeResponseAuthentication no"

Added

V-95979

The macOS system must implement multifactor authentication for remote access to privileged accounts in such a way that one of the factors is provided by a device separate from the system gaining access.

Finding ID
AOSX-14-003025
Rule ID
SV-105117r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000375-GPOS-00160
CCI
CCI-001948
Target Key
(None)
Documentable
No
Discussion

Using an authentication device, such as a CAC or token that is separate from the information system, ensures that even if the information system is compromised, that compromise will not affect credentials stored on the authentication device. Multifactor solutions that require devices separate from information systems gaining access include, for example, hardware tokens providing time-based or challenge-response authenticators and smart cards such as the U.S. Government Personal Identity Verification card and the DoD Common Access Card. A privileged account is defined as an information system account with authorizations of a privileged user. Remote access is access to DoD nonpublic information systems by an authorized user (or an information system) communicating through an external, non-organization-controlled network. Remote access methods include, for example, dial-up, broadband, and wireless. This requirement only applies to components where this is specific to the function of the device or has the concept of an organizational user (e.g., VPN, proxy capability). This does not apply to authentication for the purpose of configuring the device itself (management). Requires further clarification from NIST.

Fix Text

This setting is enforced using the "Smart Card Policy" configuration profile. Note: Before applying the "Smart Card Policy", the supplemental guidance provided with the STIG should be consulted to ensure continued access to the operating system.

Check Content

The following command ensures that a mandatory smart card policy is enforced: # /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep enforceSmartCard If the return is not "enforceSmartCard = 1;" this is a finding.

Added

V-95981

The macOS system must be configured so that the login command requires smart card authentication.

Finding ID
AOSX-14-003050
Rule ID
SV-105119r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000480-GPOS-00227
CCI
CCI-000366
Target Key
(None)
Documentable
No
Discussion

Configuring the operating system to implement organization-wide security implementation guides and security checklists ensures compliance with federal standards and establishes a common security baseline across DoD that reflects the most restrictive security posture consistent with operational requirements. Configuration settings are the set of parameters that can be changed in hardware, software, or firmware components of the system that affect the security posture and/or functionality of the system. Security-related parameters are those parameters impacting the security state of the system, including the parameters required to satisfy other security control requirements. Security-related parameters include, for example: registry settings; account, file, directory permission settings; and settings for functions, ports, protocols, services, and remote connections.

Fix Text

Make a backup of the PAM LOGIN settings using the following command: sudo cp /etc/pam.d/login /etc/pam.d/login_backup_`date "+%Y-%m-%d_%H:%M"` Replace the contents of "/etc/pam.d/login" with the following: # login: auth account password session auth sufficient pam_smartcard.so auth optional pam_krb5.so use_kcminit auth optional pam_ntlm.so try_first_pass auth optional pam_mount.so try_first_pass auth required pam_opendirectory.so try_first_pass auth required pam_deny.so account required pam_nologin.so account required pam_opendirectory.so password required pam_opendirectory.so session required pam_launchd.so session required pam_uwtmp.so session optional pam_mount.so

Check Content

To verify that the "login" command has been configured to require smart card authentication, run the following command: # cat /etc/pam.d/login | grep -i pam_smartcard.so If the text that returns does not include the line, "auth sufficient pam_smartcard.so" at the TOP of the listing, this is a finding.

Added

V-95983

The macOS system must be configured so that the su command requires smart card authentication.

Finding ID
AOSX-14-003051
Rule ID
SV-105121r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000480-GPOS-00227
CCI
CCI-000366
Target Key
(None)
Documentable
No
Discussion

Configuring the operating system to implement organization-wide security implementation guides and security checklists ensures compliance with federal standards and establishes a common security baseline across DoD that reflects the most restrictive security posture consistent with operational requirements. Configuration settings are the set of parameters that can be changed in hardware, software, or firmware components of the system that affect the security posture and/or functionality of the system. Security-related parameters are those parameters impacting the security state of the system, including the parameters required to satisfy other security control requirements. Security-related parameters include, for example: registry settings; account, file, directory permission settings; and settings for functions, ports, protocols, services, and remote connections.

Fix Text

Make a backup of the PAM SU settings using the following command: cp /etc/pam.d/su /etc/pam.d/su_backup_`date "+%Y-%m-%d_%H:%M"` Replace the contents of "/etc/pam.d/login" with the following: # su: auth account session auth sufficient pam_smartcard.so #auth required pam_opendirectory.so auth required pam_deny.so account required pam_permit.so password required pam_deny.so session required pam_permit.so

Check Content

To verify that the "su" command has been configured to require smart card authentication, run the following command: cat /etc/pam.d/su | grep -i pam_smartcard.so If the text that returns does not include the line, "auth sufficient pam_smartcard.so" at the TOP of the listing, this is a finding.

Added

V-95985

The macOS system must be configured so that the sudo command requires smart card authentication.

Finding ID
AOSX-14-003052
Rule ID
SV-105123r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000480-GPOS-00227
CCI
CCI-000366
Target Key
(None)
Documentable
No
Discussion

Configuring the operating system to implement organization-wide security implementation guides and security checklists ensures compliance with federal standards and establishes a common security baseline across DoD that reflects the most restrictive security posture consistent with operational requirements. Configuration settings are the set of parameters that can be changed in hardware, software, or firmware components of the system that affect the security posture and/or functionality of the system. Security-related parameters are those parameters impacting the security state of the system, including the parameters required to satisfy other security control requirements. Security-related parameters include, for example: registry settings; account, file, directory permission settings; and settings for functions, ports, protocols, services, and remote connections.

Fix Text

Make a backup of the PAM SUDO settings using the following command: cp /etc/pam.d/login /etc/pam.d/sudo_backup_`date "+%Y-%m-%d_%H:%M"` Replace the contents of "/etc/pam.d/login" with the following: # sudo: auth account password session auth sufficient pam_smartcard.so #auth required pam_opendirectory.so auth required pam_deny.so account required pam_permit.so password required pam_deny.so session required pam_permit.so

Check Content

To verify that the "sudo" command has been configured to require smart card authentication, run the following command: cat /etc/pam.d/sudo | grep -i pam_smartcard.so If the text that returns does not include the line, "auth sufficient pam_smartcard.so" at the TOP of the listing, this is a finding.

Added

V-95987

The macOS system must be configured with system log files owned by root and group-owned by wheel or admin.

Finding ID
AOSX-14-004001
Rule ID
SV-105125r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000206-GPOS-00084
CCI
CCI-001314
Target Key
(None)
Documentable
No
Discussion

System logs should only be readable by root or admin users. System logs frequently contain sensitive information that could be used by an attacker. Setting the correct owner mitigates this risk.

Fix Text

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.

Check Content

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.

Added

V-95989

The macOS system must be configured with system log files set to mode 640 or less permissive.

Finding ID
AOSX-14-004002
Rule ID
SV-105127r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000206-GPOS-00084
CCI
CCI-001314
Target Key
(None)
Documentable
No
Discussion

System logs should only be readable by root or admin users. System logs frequently contain sensitive information that could be used by an attacker. Setting the correct permissions mitigates this risk.

Fix Text

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.

Check Content

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.

Added

V-95991

The macOS system must implement DoD-approved encryption to protect the confidentiality and integrity of remote access sessions including transmitted data and data during preparation for transmission.

Finding ID
AOSX-14-004010
Rule ID
SV-105129r2_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000423-GPOS-00187
CCI
CCI-002418
Target Key
(None)
Documentable
No
Discussion

Without protection of the transmitted information, confidentiality and integrity may be compromised because unprotected communications can be intercepted and either read or altered. This requirement applies to both internal and external networks and all types of information system components from which information can be transmitted (e.g., servers, mobile devices, notebook computers, printers, copiers, scanners, and facsimile machines). Communication paths outside the physical protection of a controlled boundary are exposed to the possibility of interception and modification. Protecting the confidentiality and integrity of organizational information can be accomplished by physical means (e.g., employing physical distribution systems) or by logical means (e.g., employing cryptographic techniques). If physical means of protection are employed, then logical means (cryptography) do not have to be employed, and vice versa.

Fix Text

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.

Check Content

For systems that allow remote access, 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

Added

V-95993

The macOS system must implement DoD-approved encryption to protect the confidentiality and integrity of remote access sessions including transmitted data and data during preparation for transmission.

Finding ID
AOSX-14-004011
Rule ID
SV-105131r2_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000424-GPOS-00188
CCI
CCI-002422
Target Key
(None)
Documentable
No
Discussion

Without confidentiality and integrity protection mechanisms, unauthorized individuals may gain access to sensitive information via a remote access session. Remote access is access to DoD non-public information systems by an authorized user (or an information system) communicating through an external, non-organization-controlled network. Remote access methods include, for example, dial-up, broadband, and wireless. Encryption provides a means to secure the remote connection to prevent unauthorized access to the data traversing the remote access connection (e.g., Remote Desktop Protocol [RDP]), thereby providing a degree of confidentiality. The encryption strength of a mechanism is selected based on the security categorization of the information. Satisfies: SRG-OS-000424-GPOS-00188, SRG-OS-000425-GPOS-00189, SRG-OS-000426-GPOS-00190

Fix Text

To enable the SSHD service, run the following command: /usr/bin/sudo /bin/launchctl enable system/com.openssh.sshd The system may need to be restarted for the update to take effect.

Check Content

For systems that allow remote access, 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

Added

V-95995

The macOS system must enable System Integrity Protection.

Finding ID
AOSX-14-005001
Rule ID
SV-105133r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000051-GPOS-00024
CCI
CCI-001882
Target Key
(None)
Documentable
No
Discussion

System Integrity Protection (SIP) is vital to the protection of the integrity of macOS. SIP restricts what actions can be performed by administrative users, including root, against protected parts of the operating system. SIP protects all system binaries, including audit tools, from unauthorized access by preventing the modification or deletion of system binaries, or the changing of the permissions associated with those binaries. SIP limits the privileges to change software resident within software libraries to processes that have signed by Apple and have special entitlements to write to system files, such as Apple software updates and Apple installers. By protecting audit binaries, SIP ensures the presence of an audit record generation capability for DoD-defined auditable events for all operating system components and supports on-demand and after-the-fact reporting requirements. Satisfies: SRG-OS-000051-GPOS-00024, SRG-OS-000054-GPOS-00025, SRG-OS-000062-GPOS-00031, SRG-OS-000122-GPOS-00063, SRG-OS-000256-GPOS-00097, SRG-OS-000257-GPOS-00098, SRG-OS-000258-GPOS-00099, SRG-OS-000259-GPOS-00100, SRG-OS-000348-GPOS-00136, SRG-OS-000349-GPOS-00137, SRG-OS-000350-GPOS-00138, SRG-OS-000351-GPOS-00139, SRG-OS-000352-GPOS-00140, SRG-OS-000353-GPOS-00141, SRG-OS-000354-GPOS-00142

Fix Text

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

Check Content

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

Added

V-95997

The macOS system must implement cryptographic mechanisms to protect the confidentiality and integrity of all information at rest.

Finding ID
AOSX-14-005020
Rule ID
SV-105135r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000185-GPOS-00079
CCI
CCI-002476
Target Key
(None)
Documentable
No
Discussion

Information at rest refers to the state of information when it is located on a secondary storage device (e.g., disk drive and tape drive) within an organizational information system. Mobile devices, laptops, desktops, and storage devices can be lost or stolen, and the contents of their data storage (e.g., hard drives and non-volatile memory) can be read, copied, or altered. By encrypting the system hard drive, the confidentiality and integrity of any data stored on the system is ensured. FileVault Disk Encryption mitigates this risk. Satisfies: SRG-OS-000185-GPOS-00079, SRG-OS-000404-GPOS-00183, SRG-OS-000405-GPOS-00184

Fix Text

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.

Check Content

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.

Added

V-95999

The macOS Application Firewall must be enabled.

Finding ID
AOSX-14-005050
Rule ID
SV-105137r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000480-GPOS-00232
CCI
CCI-000366
Target Key
(None)
Documentable
No
Discussion

Firewalls protect computers from network attacks by blocking or limiting access to open network ports. Application firewalls limit which applications are allowed to communicate over the network.

Fix Text

To enable the firewall, run the following command: /usr/bin/sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate on

Check Content

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.

Added

V-96001

The macOS system must employ a deny-all, allow-by-exception firewall policy for allowing connections to other systems.

Finding ID
AOSX-14-005051
Rule ID
SV-105139r1_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000480-GPOS-00231
CCI
CCI-002080
Target Key
(None)
Documentable
No
Discussion

Failure to restrict network connectivity only to authorized systems permits inbound connections from malicious systems. It also permits outbound connections that may facilitate exfiltration of DoD data.

Fix Text

Install an approved HBSS or firewall solution onto the system and configure it with a "default-deny" policy. Modify the check to verify that signed binaries cannot automatically accept connections. Update default deny incoming and outgoing with allow for ssh store and activation.

Check Content

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.

Removed

V-209521

The macOS system must be configured to prevent Apple Watch from terminating a session lock.

Finding ID
AOSX-14-000001
Rule ID
SV-209521r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000028-GPOS-00009
CCI
CCI-000056
Target Key
(None)
Documentable
No
Discussion

Users must be prompted to enter their passwords when unlocking the screen saver. The screen saver acts as a session lock and prevents unauthorized users from accessing the current user's account.

Fix Text

This setting is enforced using the “Restrictions Policy" configuration profile.

Check Content

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.

Removed

V-209522

The macOS system must retain the session lock until the user reestablishes access using established identification and authentication procedures.

Finding ID
AOSX-14-000002
Rule ID
SV-209522r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000028-GPOS-00009
CCI
CCI-000056
Target Key
(None)
Documentable
No
Discussion

Users must be prompted to enter their passwords when unlocking the screen saver. The screen saver acts as a session lock and prevents unauthorized users from accessing the current user's account.

Fix Text

This setting is enforced using the "Login Window Policy" configuration profile.

Check Content

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.

Removed

V-209523

The macOS system must initiate the session lock no more than five seconds after a screen saver is started.

Finding ID
AOSX-14-000003
Rule ID
SV-209523r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000028-GPOS-00009
CCI
CCI-000056
Target Key
(None)
Documentable
No
Discussion

A screen saver must be enabled and set to require a password to unlock. An excessive grace period impacts the ability for a session to be truly locked, requiring authentication to unlock.

Fix Text

This setting is enforced using the "Login Window Policy" configuration profile.

Check Content

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.

Removed

V-209524

The macOS system must initiate a session lock after a 15-minute period of inactivity.

Finding ID
AOSX-14-000004
Rule ID
SV-209524r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000029-GPOS-00010
CCI
CCI-000057
Target Key
(None)
Documentable
No
Discussion

A screen saver must be enabled and set to require a password to unlock. The timeout should be set to 15 minutes of inactivity. This mitigates the risk that a user might forget to manually lock the screen before stepping away from the computer. A session time-out lock is a temporary action taken when a user stops work and moves away from the immediate physical vicinity of the information system but does not log out because of the temporary nature of the absence. Rather than relying on the user to manually lock their operating system session prior to vacating the vicinity, operating systems need to be able to identify when a user's session has idled and take action to initiate the session lock.

Fix Text

This setting is enforced using the "Login Window Policy" configuration profile.

Check Content

To check if the system has a configuration profile configured to enable the screen saver after a time-out period, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep idleTime If there is no result, or if "idleTime" is not set to "900" seconds or less, this is a finding.

Removed

V-209525

The macOS system must be configured to lock the user session when a smart token is removed.

Finding ID
AOSX-14-000005
Rule ID
SV-209525r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000030-GPOS-00011
CCI
CCI-000058
Target Key
(None)
Documentable
No
Discussion

A session lock is a temporary action taken when a user stops work and moves away from the immediate physical vicinity of the information system but does not want to log out because of the temporary nature of the absence. The session lock is implemented at the point where session activity can be determined. Rather than be forced to wait for a period of time to expire before the user session can be locked, operating systems need to provide users with the ability to manually invoke a session lock so users may secure their session should they need to temporarily vacate the immediate physical vicinity.

Fix Text

This setting is enforced using the "Smart Card Policy" configuration profile. Note: Before applying the "Smart Card Policy", the supplemental guidance provided with the STIG should be consulted to ensure continued access to the operating system.

Check Content

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.

Removed

V-209526

The macOS system must conceal, via the session lock, information previously visible on the display with a publicly viewable image.

Finding ID
AOSX-14-000006
Rule ID
SV-209526r610285_rule
Severity
Cat III
CCE
(None)
Group Title
SRG-OS-000031-GPOS-00012
CCI
CCI-000060
Target Key
(None)
Documentable
No
Discussion

A default screen saver must be configured for all users, as the screen saver will act as a session time-out lock for the system and must conceal the contents of the screen from unauthorized users. The screen saver must not display any sensitive information or reveal the contents of the locked session screen. Publicly viewable images can include static or dynamic images such as patterns used with screen savers, photographic images, solid colors, a clock, a battery life indicator, or a blank screen.

Fix Text

This setting is enforced using the "Login Window Policy" configuration profile.

Check Content

To view the currently selected screen saver for the logged-on user, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep modulePath If there is no result or defined "modulePath", this is a finding.

Removed

V-209527

The macOS system must be configured to disable hot corners.

Finding ID
AOSX-14-000007
Rule ID
SV-209527r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000031-GPOS-00012
CCI
CCI-000060
Target Key
(None)
Documentable
No
Discussion

Although hot corners can be used to initiate a session lock or launch useful applications, they can also be configured to disable an automatic session lock from initiating. Such a configuration introduces the risk that a user might forget to manually lock the screen before stepping away from the computer. A session time-out lock is a temporary action taken when a user stops work and moves away from the immediate physical vicinity of the information system but does not log out because of the temporary nature of the absence. Rather than relying on the user to manually lock their operating system session prior to vacating the vicinity, operating systems need to be able to identify when a user's session has idled and take action to initiate the session lock.

Fix Text

This setting is enforced using the "Custom Policy" configuration profile.

Check Content

To check if the system is configured to disable hot corners, run the following commands: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep wvous If the return is null or does not equal the following, this is a finding: "wvous-bl-corner = 0 wvous-br-corner = 0; wvous-tl-corner = 0; wvous-tr-corner = 0;"

Removed

V-209528

The macOS system must be configured with Wi-Fi support software disabled.

Finding ID
AOSX-14-000008
Rule ID
SV-209528r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000299-GPOS-00117
CCI
CCI-001444
Target Key
(None)
Documentable
No
Discussion

Allowing devices and users to connect to or from the system without first authenticating them allows untrusted access and can lead to a compromise or attack. Since wireless communications can be intercepted, it is necessary to use encryption to protect the confidentiality of information in transit. Wireless technologies include, for example, microwave, packet radio (UHF/VHF), 802.11x, and Bluetooth. Wireless networks use authentication protocols (e.g., EAP/TLS, PEAP), which provide credential protection and mutual authentication. Satisfies: SRG-OS-000299-GPOS-00117, SRG-OS-000300-GPOS-00118

Fix Text

To disable the Wi-Fi network device, run the following command: /usr/bin/sudo /usr/sbin/networksetup -setnetworkserviceenabled "Wi-Fi" off

Check Content

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.

Removed

V-209530

The macOS system must implement DoD-approved encryption to protect the confidentiality and integrity of remote access sessions including transmitted data and data during preparation for transmission.

Finding ID
AOSX-14-000011
Rule ID
SV-209530r610285_rule
Severity
Cat I
CCE
(None)
Group Title
SRG-OS-000250-GPOS-00093
CCI
CCI-002422
Target Key
(None)
Documentable
No
Discussion

Without confidentiality and integrity protection mechanisms, unauthorized individuals may gain access to sensitive information via a remote access session. Remote access is access to DoD non-public information systems by an authorized user (or an information system) communicating through an external, non-organization-controlled network. Remote access methods include, for example, dial-up, broadband, and wireless. Encryption provides a means to secure the remote connection to prevent unauthorized access to the data traversing the remote access connection (e.g., Remote Desktop Protocol [RDP]), thereby providing a degree of confidentiality. The encryption strength of a mechanism is selected based on the security categorization of the information. SSHD should be enabled to facilitate secure remote access. Satisfies: SRG-OS-000033-GPOS-00014, SRG-OS-000423-GPOS-00187, SRG-OS-000424-GPOS-00188

Fix Text

To update SSHD to the minimum required version, run Software Update to update to the latest version of macOS. To enable the SSHD service, run the following command: /usr/bin/sudo /bin/launchctl enable system/com.openssh.sshd The system may need to be restarted for the update to take effect.

Check Content

To verify that the installed version of SSH is correct, run the following command: ssh -V If the string that is returned does not include "OpenSSH_7.9p1" or greater, this is a finding. To check if the "SSHD" service is enabled, use the following commands: /usr/bin/sudo launchctl print-disabled system | grep sshd If the results do not show "com.openssh.sshd => false", this is a finding. To check that "SSHD" is currently running, use the following command: /usr/bin/sudo launchctl print system/com.openssh.sshd If the result is the following, "Could not find service "com.openssh.sshd" in domain for system", this is a finding.

Removed

V-209531

The macOS system must automatically remove or disable temporary user accounts after 72 hours.

Finding ID
AOSX-14-000012
Rule ID
SV-209531r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000002-GPOS-00002
CCI
CCI-000016
Target Key
(None)
Documentable
No
Discussion

If temporary user accounts remain active when no longer needed or for an excessive period, these accounts may be targeted by attackers to gain unauthorized access. To mitigate this risk, automated termination of all temporary accounts must be set upon account creation. Temporary accounts are established as part of normal account activation procedures when there is a need for short-term accounts without the demand for immediacy in account activation. If temporary accounts are used, the operating system must be configured to automatically terminate these types of accounts after a DoD-defined time period of 72 hours. To address access requirements, many operating systems may be integrated with enterprise-level authentication/access mechanisms that meet or exceed access control policy requirements.

Fix Text

This setting may be enforced using local policy or by a directory service. To set local policy to disable a temporary user, create a plain text file containing the following: <dict> <key>policyCategoryAuthentication</key> <array> <dict> <key>policyContent</key> <string>policyAttributeCurrentTime < policyAttributeCreationTime+259299</string> <key>policyIdentifier</key> <string>Disable Tmp Accounts </string> </dict> </array> </dict> After saving the file and exiting to the command prompt, run the following command to load the new policy file, substituting the correct user name in place of "username" and the path to the file in place of "/path/to/file". /usr/bin/sudo /usr/bin/pwpolicy -u username setaccountpolicies /path/to/file

Check Content

Verify if a password policy is enforced by a directory service by asking the System Administrator (SA) or Information System Security Officer (ISSO). If no policy is enforced by a directory service, a password policy can be set with the "pwpolicy" utility. The variable names may vary depending on how the policy was set. If there are no temporary accounts defined on the system, this is Not Applicable. To check if the password policy is configured to disable a temporary account after 72 hours, run the following command to output the password policy to the screen, substituting the correct user name in place of username: /usr/bin/sudo /usr/bin/pwpolicy -u username getaccountpolicies | tail -n +2 If there is no output, and password policy is not controlled by a directory service, this is a finding. Otherwise, look for the line "<key>policyCategoryAuthentication</key>". In the array that follows, there should be a <dict> section that contains a check <string> that allows users to log in if "policyAttributeCurrentTime" is less than the result of adding "policyAttributeCreationTime" to 72 hours (259299 seconds). The check might use a variable defined in its "policyParameters" section. If the check does not exist or if the check adds too great an amount of time to "policyAttributeCreationTime", this is a finding.

Removed

V-209532

The macOS system must automatically remove or disable emergency accounts after the crisis is resolved or within 72 hours.

Finding ID
AOSX-14-000013
Rule ID
SV-209532r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000123-GPOS-00064
CCI
CCI-001682
Target Key
(None)
Documentable
No
Discussion

Emergency administrator accounts are privileged accounts established in response to crisis situations where the need for rapid account activation is required. Therefore, emergency account activation may bypass normal account authorization processes. If these accounts are automatically disabled, system maintenance during emergencies may not be possible, thus adversely affecting system availability. Emergency administrator accounts are different from infrequently used accounts (i.e., local logon accounts used by system administrators when network or normal logon/access is not available). Infrequently used accounts also remain available and are not subject to automatic termination dates. However, an emergency administrator account is normally a different account created for use by vendors or system maintainers. To address access requirements, many operating systems can be integrated with enterprise-level authentication/access mechanisms that meet or exceed access control policy requirements.

Fix Text

To remove all "pwpolicy" settings for an emergency account, run the following command, replacing "username" with the correct value: /usr/bin/sudo /usr/bin/pwpolicy -u username clearaccountpolicies Otherwise, to change the passcode policy for an emergency account and only remove some policy sections, run the following command to save a copy of the current policy file for the specified username: /usr/bin/sudo /usr/bin/pwpolicy -u username getaccountpolicies | tail -n +2 > pwpolicy.plist Open the resulting passcode policy file in a text editor and remove any policyContent sections that would restrict the ability to log in after a certain date or amount of time. To remove the section cleanly, remove the entire text that begins with <dict>, contains <key>policyContent<'/key>, and ends with </dict>. After saving the file and exiting to the command prompt, run the following command to load the new policy file: /usr/bin/sudo /usr/bin/pwpolicy -u username setaccountpolicies pwpolicy.plist

Check Content

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.

Removed

V-209533

The macOS system must, for networked systems, compare internal information system clocks at least every 24 hours with a server that is synchronized to one of the redundant United States Naval Observatory (USNO) time servers or a time server designated for the appropriate DoD network (NIPRNet/SIPRNet) and/or the Global Positioning System (GPS).

Finding ID
AOSX-14-000014
Rule ID
SV-209533r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000355-GPOS-00143
CCI
CCI-001891
Target Key
(None)
Documentable
No
Discussion

Inaccurate time stamps make it more difficult to correlate events and can lead to an inaccurate analysis. Determining the correct time a particular event occurred on a system is critical when conducting forensic analysis and investigating system events. Sources outside of the configured acceptable allowance (drift) may be inaccurate. Synchronizing internal information system clocks provides uniformity of time stamps for information systems with multiple system clocks and systems connected over a network. Organizations should consider endpoints that may not have regular access to the authoritative time server (e.g., mobile, teleworking, and tactical endpoints). Satisfies: SRG-OS-000355-GPOS-00143, SRG-OS-000356-GPOS-00144

Fix Text

To enable the TIMED service, run the following command: /usr/bin/sudo systemsetup -setusingnetworktime on To configure a time server, use the following command: /usr/bin/sudo systemsetup -setnetworktimeserver "server"

Check Content

The TIMED (NTP replacement in Mojave) service must be enabled on all networked systems. To check if the service is running, use the following command: sudo systemsetup -getusingnetworktime If the following in not returned, this is a finding: Network Time: On To verify that an authorized Time Server is configured, run the following command: systemsetup -getnetworktimeserver Only approved time servers should be configured for use. If no server is configured, or if an unapproved time server is in use, this is a finding.

Removed

V-209534

The macOS system must utilize an HBSS solution and implement all DoD required modules.

Finding ID
AOSX-14-000015
Rule ID
SV-209534r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000191-GPOS-00080
CCI
CCI-001233
Target Key
(None)
Documentable
No
Discussion

The macOS system must employ automated mechanisms to determine the state of system components. The DoD requires the installation and use of an approved HBSS solution to be implemented on the operating system. For additional information, reference all applicable HBSS OPORDs and FRAGOs on SIPRNet.

Fix Text

Install an approved HBSS solution onto the system and ensure that all components are at least updated to their DoD approved minimal versions.

Check Content

Verify that there is an approved HBSS solution installed on the system. If there is not an approved HBSS solution installed, this is a finding. Verify that all installed components of the HBSS Solution are at the DoD approved minimal version. If the installed components are not at the DoD approved minimal versions, this is a finding.

Removed

V-209535

The macOS system must be integrated into a directory services infrastructure.

Finding ID
AOSX-14-000016
Rule ID
SV-209535r610285_rule
Severity
Cat I
CCE
(None)
Group Title
SRG-OS-000480-GPOS-00227
CCI
CCI-000366
Target Key
(None)
Documentable
No
Discussion

Distinct user account databases on each separate system cause problems with username and password policy enforcement. Most approved directory services infrastructure solutions allow centralized management of users and passwords.

Fix Text

Integrate the system into an existing directory services infrastructure.

Check Content

If the system is using a mandatory Smart Card Policy, this is Not Applicable. To determine if the system is integrated to a directory service, ask the System Administrator (SA) or Information System Security Officer (ISSO) or run the following command: /usr/bin/sudo dscl localhost -list . | /usr/bin/grep -vE '(Contact | Search | Local)' If nothing is returned, or if the system is not integrated into a directory service infrastructure, this is a finding.

Removed

V-209536

The macOS system must enforce the limit of three consecutive invalid logon attempts by a user.

Finding ID
AOSX-14-000020
Rule ID
SV-209536r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000021-GPOS-00005
CCI
CCI-000044
Target Key
(None)
Documentable
No
Discussion

By limiting the number of failed logon attempts, the risk of unauthorized system access via user password guessing, otherwise known as brute forcing, is reduced. Limits are imposed by locking the account.

Fix Text

This setting is enforced using the “Passcode Policy" configuration profile.

Check Content

The password policy is set with a configuration profile. Run the following command to check if the system has the correct setting for the number of permitted failed logon attempts: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep maxFailedAttempts If the return is null, or not, “maxFailedAttempts = 3”, this is a finding.

Removed

V-209537

The macOS system must enforce an account lockout time period of 15 minutes in which a user makes three consecutive invalid logon attempts.

Finding ID
AOSX-14-000021
Rule ID
SV-209537r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000329-GPOS-00128
CCI
CCI-002238
Target Key
(None)
Documentable
No
Discussion

Setting a lockout time period of 15 minutes is an effective deterrent against brute forcing that also makes allowances for legitimate mistakes by users. When three invalid logon attempts are made, the account will be locked.

Fix Text

This setting may be enforced using the "Passcode Policy" configuration profile or by a directory service. The following two lines within the configuration enforce lockout expiration to "15" minutes: <key>autoEnableInSeconds</key> <integer>900</integer> To set the passcode policy without a configuration profile, run the following command to save a copy of the current "pwpolicy" account policy file: /usr/bin/sudo /usr/bin/pwpolicy getaccountpolicies | tail -n +2 > pwpolicy.plist Open the generated file in a text editor and ensure it contains the following text after the opening <dict> tag and before the closing </dict> tag. Replace <dict/> first with <dict></dict> if necessary. <key>policyCategoryAuthentication</key> <array> <dict> <key>policyContent</key> <string>(policyAttributeFailedAuthentications < policyAttributeMaximumFailedAuthentications) OR (policyAttributeCurrentTime > (policyAttributeLastFailedAuthenticationTime + autoEnableInSeconds))</string> <key>policyIdentifier</key> <string>Authentication Lockout</string> <key>policyParameters</key> <dict> <key>autoEnableInSeconds</key> <integer>900</integer> <key>policyAttributeMaximumFailedAuthentications</key> <integer>3</integer> </dict> </dict> </array> If the line "<key>policyCategoryAuthentication</key>" already exists, the following text should be used instead and inserted after the first <array> tag that follows it: <dict> <key>policyContent</key> <string>(policyAttributeFailedAuthentications < policyAttributeMaximumFailedAuthentications) OR (policyAttributeCurrentTime > (policyAttributeLastFailedAuthenticationTime + autoEnableInSeconds))</string> <key>policyIdentifier</key> <string>Authentication Lockout</string> <key>policyParameters</key> <dict> <key>autoEnableInSeconds</key> <integer>900</integer> <key>policyAttributeMaximumFailedAuthentications</key> <integer>3</integer> </dict> </dict> After saving the file and exiting to the command prompt, run the following command to load the new policy file: /usr/bin/sudo /usr/bin/pwpolicy setaccountpolicies pwpolicy.plist Note: Updates to passcode restrictions must be thoroughly evaluated in a test environment. Mistakes in configuration may block password change and local user creation operations, as well as lock out all local users, including administrators.

Check Content

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.

Removed

V-209538

The macOS system must enforce the limit of three consecutive invalid logon attempts by a user before the user account is locked.

Finding ID
AOSX-14-000022
Rule ID
SV-209538r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000329-GPOS-00128
CCI
CCI-002238
Target Key
(None)
Documentable
No
Discussion

By limiting the number of failed logon attempts, the risk of unauthorized system access via user password guessing, otherwise known as brute forcing, is reduced. Limits are imposed by locking the account.

Fix Text

This setting may be enforced using the "Passcode Policy" configuration profile or by a directory service. To set the passcode policy without a configuration profile, run the following command to save a copy of the current "pwpolicy" account policy file: /usr/bin/sudo /usr/bin/pwpolicy getaccountpolicies | tail -n +2 > pwpolicy.plist Open the generated file in a text editor and ensure it contains the following text after the opening <dict> tag and before the closing </dict> tag. Replace <dict/> first with <dict></dict> if necessary. <key>policyCategoryAuthentication</key> <array> <dict> <key>policyContent</key> <string>(policyAttributeFailedAuthentications < policyAttributeMaximumFailedAuthentications) OR (policyAttributeCurrentTime > (policyAttributeLastFailedAuthenticationTime + autoEnableInSeconds))</string> <key>policyIdentifier</key> <string>Authentication Lockout</string> <key>policyParameters</key> <dict> <key>autoEnableInSeconds</key> <integer>900</integer> <key>policyAttributeMaximumFailedAuthentications</key> <integer>3</integer> </dict> </dict> </array> If the line "<key>policyCategoryAuthentication</key>" already exists, the following text should be used instead and inserted after the first <array> tag that follows it: <dict> <key>policyContent</key> <string>(policyAttributeFailedAuthentications < policyAttributeMaximumFailedAuthentications) OR (policyAttributeCurrentTime > (policyAttributeLastFailedAuthenticationTime + autoEnableInSeconds))</string> <key>policyIdentifier</key> <string>Authentication Lockout</string> <key>policyParameters</key> <dict> <key>autoEnableInSeconds</key> <integer>900</integer> <key>policyAttributeMaximumFailedAuthentications</key> <integer>3</integer> </dict> </dict> After saving the file and exiting to the command prompt, run the following command to load the new policy file: /usr/bin/sudo /usr/bin/pwpolicy setaccountpolicies pwpolicy.plist Note: Updates to passcode restrictions must be thoroughly evaluated in a test environment. Mistakes in configuration or bugs in OS X may block password change and local user creation operations, as well as lock out all local users, including administrators.

Check Content

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.

Removed

V-209539

The macOS system must display the Standard Mandatory DoD Notice and Consent Banner before granting remote access to the operating system.

Finding ID
AOSX-14-000023
Rule ID
SV-209539r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000023-GPOS-00006
CCI
CCI-000048
Target Key
(None)
Documentable
No
Discussion

Display of a standardized and approved use notification before granting access to the operating system ensures privacy and security notification verbiage used is consistent with applicable federal laws, Executive Orders, directives, policies, regulations, standards, and guidance. System use notifications are required only for access via logon interfaces with human users and are not required when such human interfaces do not exist. The banner must be formatted in accordance with DTM-08-060.

Fix Text

Create a text file containing the required DoD text. Name the file "banner" and place it in "/etc/".

Check Content

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.

Removed

V-209540

The macOS system must display the Standard Mandatory DoD Notice and Consent Banner before granting access to the system via SSH.

Finding ID
AOSX-14-000024
Rule ID
SV-209540r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000023-GPOS-00006
CCI
CCI-000050
Target Key
(None)
Documentable
No
Discussion

Display of a standardized and approved use notification before granting access to the operating system ensures privacy and security notification verbiage used is consistent with applicable federal laws, Executive Orders, directives, policies, regulations, standards, and guidance. System use notifications are required only for access via logon interfaces with human users and are not required when such human interfaces do not exist. The banner must be formatted in accordance with DTM-08-060. Satisfies: SRG-OS-000023-GPOS-00006, SRG-OS-000024-GPOS-00007

Fix Text

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

Check Content

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.

Removed

V-209541

The macOS system must be configured so that any connection to the system must display the Standard Mandatory DoD Notice and Consent Banner before granting GUI access to the system.

Finding ID
AOSX-14-000025
Rule ID
SV-209541r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000023-GPOS-00006
CCI
CCI-001388
Target Key
(None)
Documentable
No
Discussion

Display of a standardized and approved use notification before granting access to the operating system ensures privacy and security notification verbiage used is consistent with applicable federal laws, Executive Orders, directives, policies, regulations, standards, and guidance. System use notifications are required only for access via logon interfaces with human users and are not required when such human interfaces do not exist. The banner must be formatted in accordance with DTM-08-060. Satisfies: SRG-OS-000023-GPOS-00006, SRG-OS-000024-GPOS-00007, SRG-OS-000228-GPOS-00088

Fix Text

Create an RTF file containing the required text. Name the file "PolicyBanner.rtf" or "PolicyBanner.rtfd" and place it in "/Library/Security/".

Check Content

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.

Removed

V-209542

The macOS system must be configured so that log files must not contain access control lists (ACLs).

Finding ID
AOSX-14-000030
Rule ID
SV-209542r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000057-GPOS-00027
CCI
CCI-000162
Target Key
(None)
Documentable
No
Discussion

The audit service must be configured to create log files with the correct permissions to prevent normal users from reading audit logs. Audit logs contain sensitive data about the system and users. If log files are set to be readable and writable only by root or administrative users with sudo, the risk is mitigated. Satisfies: SRG-OS-000057-GPOS-00027, SRG-OS-000206-GPOS-00084

Fix Text

For any log file that contains ACLs, run the following command: /usr/bin/sudo chmod -N [audit log file]

Check Content

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.

Removed

V-209543

The macOS system must be configured so that log folders must not contain access control lists (ACLs).

Finding ID
AOSX-14-000031
Rule ID
SV-209543r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000057-GPOS-00027
CCI
CCI-000162
Target Key
(None)
Documentable
No
Discussion

The audit service must be configured to create log folders with the correct permissions to prevent normal users from reading audit logs. Audit logs contain sensitive data about the system and users. If log folders are set to be readable and writable only by root or administrative users with sudo, the risk is mitigated.

Fix Text

For any log folder that contains ACLs, run the following command: /usr/bin/sudo chmod -N [audit log folder]

Check Content

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.

Removed

V-209544

The macOS system must use replay-resistant authentication mechanisms and implement cryptographic mechanisms to protect the integrity of and verify remote disconnection at the termination of nonlocal maintenance and diagnostic communications, when used for nonlocal maintenance sessions.

Finding ID
AOSX-14-000040
Rule ID
SV-209544r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000393-GPOS-00173
CCI
CCI-003123
Target Key
(None)
Documentable
No
Discussion

Privileged access contains control and configuration information and is particularly sensitive, so additional protections are necessary. This is maintained by using cryptographic mechanisms, such as a hash function or digital signature, to protect integrity. Nonlocal maintenance and diagnostic activities are those activities conducted by individuals communicating through a network, either an external network (e.g., the Internet) or an internal network. Use of weak or untested encryption algorithms undermines the purposes of using encryption to protect data. The operating system must implement cryptographic modules adhering to the higher standards approved by the federal government since this provides assurance they have been tested and validated. The operating system can meet this requirement through leveraging a cryptographic module. This requirement does not cover hardware/software components that may support information system maintenance, yet are a part of the system (e.g., the software implementing "ping," "ls," "ipconfig," or the hardware and software implementing the monitoring port of an Ethernet switch). Satisfies: SRG-OS-000393-GPOS-00173, SRG-OS-000394-GPOS-00174, SRG-OS-000112-GPOS-00057, SRG-OS-000113-GPOS-00058

Fix Text

To update SSHD to the minimum required version, run Software Update to update to the latest version of macOS. To enable the SSHD service, run the following command: /usr/bin/sudo /bin/launchctl enable system/com.openssh.sshd The system may need to be restarted for the update to take effect.

Check Content

To verify that the installed version of SSH is correct, run the following command: ssh -V If the string that is returned does not include "OpenSSH_7.9p1" or greater, this is a finding. To check if the "SSHD" service is enabled, use the following commands: /usr/bin/sudo launchctl print-disabled system | grep sshd If the results do not show "com.openssh.sshd => false", this is a finding. To check that "SSHD" is currently running, use the following command: /usr/bin/sudo launchctl print system/com.openssh.sshd If the result is the following, "Could not find service "com.openssh.sshd" in domain for system", this is a finding.

Removed

V-209545

The macOS system must limit the number of concurrent SSH sessions to 10 for all accounts and/or account types.

Finding ID
AOSX-14-000050
Rule ID
SV-209545r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000027-GPOS-00008
CCI
CCI-000054
Target Key
(None)
Documentable
No
Discussion

Operating system management includes the ability to control the number of users and user sessions that utilize an operating system. Limiting the number of allowed users and sessions per user is helpful in reducing the risks related to DoS attacks. This requirement addresses concurrent sessions for information system accounts and does not address concurrent sessions by single users via multiple system accounts. The maximum number of concurrent sessions should be defined based upon mission needs and the operational environment for each system.

Fix Text

To configure SSHD to limit the number of sessions, use the following command: /usr/bin/sudo /usr/bin/sed -i.bak 's/^[\#]*MaxSessions.*/MaxSessions 10/' /etc/ssh/sshd_config

Check Content

To verify that SSHD is limited to 10 sessions, use the following command: /bin/cat /etc/ssh/sshd_config | grep MaxSessions The command must return "MaxSessions 10". If it returns null, or a commented value, or the value is greater than "10", this is a finding.

Removed

V-209546

The macOS system must be configured with the SSH daemon ClientAliveInterval option set to 900 or less.

Finding ID
AOSX-14-000051
Rule ID
SV-209546r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000163-GPOS-00072
CCI
CCI-001133
Target Key
(None)
Documentable
No
Discussion

SSH should be configured to log users out after a 15-minute interval of inactivity and to wait only 30 seconds before timing out logon attempts. Terminating an idle session within a short time period reduces the window of opportunity for unauthorized personnel to take control of a management session enabled on the console or console port that has been left unattended. In addition, quickly terminating an idle session or an incomplete logon attempt will also free up resources committed by the managed network element.

Fix Text

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

Check Content

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.

Removed

V-209547

The macOS system must be configured with the SSH daemon ClientAliveCountMax option set to 0.

Finding ID
AOSX-14-000052
Rule ID
SV-209547r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000163-GPOS-00072
CCI
CCI-001133
Target Key
(None)
Documentable
No
Discussion

SSH should be configured with an Active Client Alive Maximum Count of 0. Terminating an idle session within a short time period reduces the window of opportunity for unauthorized personnel to take control of a management session enabled on the console or console port that has been left unattended. In addition, quickly terminating an idle session or an incomplete logon attempt will also free up resources committed by the managed network element.

Fix Text

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

Check Content

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.

Removed

V-209548

The macOS system must be configured with the SSH daemon LoginGraceTime set to 30 or less.

Finding ID
AOSX-14-000053
Rule ID
SV-209548r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000163-GPOS-00072
CCI
CCI-001133
Target Key
(None)
Documentable
No
Discussion

SSH should be configured to log users out after a 15-minute interval of inactivity and to wait only 30 seconds before timing out logon attempts. Terminating an idle session within a short time period reduces the window of opportunity for unauthorized personnel to take control of a management session enabled on the console or console port that has been left unattended. In addition, quickly terminating an idle session or an incomplete logon attempt will also free up resources committed by the managed network element.

Fix Text

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

Check Content

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.

Removed

V-209549

The macOS system must generate audit records for all account creations, modifications, disabling, and termination events; privileged activities or other system-level access; all kernel module load, unload, and restart actions; all program initiations; and organizationally defined events for all non-local maintenance and diagnostic sessions.

Finding ID
AOSX-14-001001
Rule ID
SV-209549r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000004-GPOS-00004
CCI
CCI-002884
Target Key
(None)
Documentable
No
Discussion

Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. Audit records can be generated from various components within the information system (e.g., module or policy filter). If events associated with nonlocal administrative access or diagnostic sessions are not logged, a major tool for assessing and investigating attacks would not be available. This requirement addresses auditing-related issues associated with maintenance tools used specifically for diagnostic and repair actions on organizational information systems. Nonlocal maintenance and diagnostic activities are those activities conducted by individuals communicating through a network, either an external network (e.g., the Internet) or an internal network. Local maintenance and diagnostic activities are those activities carried out by individuals physically present at the information system or information system component and not communicating across a network connection. This requirement applies to hardware/software diagnostic test equipment or tools. This requirement does not cover hardware/software components that may support information system maintenance, yet are a part of the system, for example, the software implementing "ping," "ls," "ipconfig," or the hardware and software implementing the monitoring port of an Ethernet switch. Satisfies: SRG-OS-000004-GPOS-00004, SRG-OS-000239-GPOS-00089, SRG-OS-000240-GPOS-00090, SRG-OS-000241-GPOS-00091, SRG-OS-000327-GPOS-00127, SRG-OS-000392-GPOS-00172, SRG-OS-000471-GPOS-00215, SRG-OS-000471-GPOS-00216, SRG-OS-000476-GPOS-00221, SRG-OS-000477-GPOS-00222

Fix Text

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.

Check Content

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.

Removed

V-209550

The macOS system must monitor remote access methods and generate audit records when successful/unsuccessful attempts to access/modify privileges occur.

Finding ID
AOSX-14-001002
Rule ID
SV-209550r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000032-GPOS-00013
CCI
CCI-000172
Target Key
(None)
Documentable
No
Discussion

Frequently, an attacker that successfully gains access to a system has only gained access to an account with limited privileges, such as a guest account or a service account. The attacker must attempt to change to another user account with normal or elevated privileges in order to proceed. Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. Audit records can be generated from various components within the information system (e.g., module or policy filter). Satisfies: SRG-OS-000032-GPOS-00013, SRG-OS-000462-GPOS-00206

Fix Text

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.

Check Content

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.

Removed

V-209551

The macOS system must initiate session audits at system startup, using internal clocks with time stamps for audit records that meet a minimum granularity of one second and can be mapped to Coordinated Universal Time (UTC) or Greenwich Mean Time (GMT), in order to generate audit records containing information to establish what type of events occurred, the identity of any individual or process associated with the event, including individual identities of group account users, establish where the events occurred, source of the event, and outcome of the events including all account enabling actions, full-text recording of privileged commands, and information about the use of encryption for access wireless access to and from the system.

Finding ID
AOSX-14-001003
Rule ID
SV-209551r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000037-GPOS-00015
CCI
CCI-002130
Target Key
(None)
Documentable
No
Discussion

Without establishing what type of events occurred, when they occurred, and by whom it would be difficult to establish, correlate, and investigate the events leading up to an outage or attack. Audit record content that may be necessary to satisfy this requirement includes, for example, time stamps, source and destination addresses, user/process identifiers, event descriptions, success/fail indications, filenames involved, and access control or flow control rules invoked. Associating event types with detected events in the operating system audit logs provides a means of investigating an attack, recognizing resource utilization or capacity thresholds, or identifying an improperly configured operating system. Satisfies: SRG-OS-000037-GPOS-00015, SRG-OS-000038-GPOS-00016, SRG-OS-000039-GPOS-00017, SRG-OS-000040-GPOS-00018, SRG-OS-000041-GPOS-00019, SRG-OS-000042-GPOS-00020, SRG-OS-000042-GPOS-00021, SRG-OS-000055-GPOS-00026, SRG-OS-000254-GPOS-00095, SRG-OS-000255-GPOS-00096, SRG-OS-000303-GPOS-00120, SRG-OS-000337-GPOS-00129, SRG-OS-000358-GPOS-00145, SRG-OS-000359-GPOS-00146

Fix Text

To enable the audit service, run the following command: /usr/bin/sudo /bin/launchctl enable system/com.apple.auditd The system may need to be restarted for the update to take effect.

Check Content

To check if the audit service is running, use the following command: launchctl print-disabled system| grep auditd If the return is not: "com.apple.auditd" => false" the audit service is disabled, and this is a finding.

Removed

V-209552

The macOS system must shut down by default upon audit failure (unless availability is an overriding concern).

Finding ID
AOSX-14-001010
Rule ID
SV-209552r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000047-GPOS-00023
CCI
CCI-000140
Target Key
(None)
Documentable
No
Discussion

The audit service should shut down the computer if it is unable to audit system events. Once audit failure occurs, user and system activity is no longer recorded and malicious activity could go undetected. Audit processing failures include software/hardware errors, failures in the audit capturing mechanisms, and audit storage capacity being reached or exceeded. Responses to audit failure depend on the nature of the failure mode. When availability is an overriding concern, other approved actions in response to an audit failure are as follows: (i) If the failure was caused by the lack of audit record storage capacity, the operating system must continue generating audit records if possible (automatically restarting the audit service if necessary), overwriting the oldest audit records in a first-in-first-out manner. (ii) If audit records are sent to a centralized collection server and communication with this server is lost or the server fails, the operating system must queue audit records locally until communication is restored or until the audit records are retrieved manually. Upon restoration of the connection to the centralized collection server, action should be taken to synchronize the local audit data with the collection server.

Fix Text

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

Check Content

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.

Removed

V-209553

The macOS system must be configured with audit log files owned by root.

Finding ID
AOSX-14-001012
Rule ID
SV-209553r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000057-GPOS-00027
CCI
CCI-000162
Target Key
(None)
Documentable
No
Discussion

The audit service must be configured to create log files with the correct ownership to prevent normal users from reading audit logs. Audit logs contain sensitive data about the system and users. If log files are set to only be readable and writable by root or administrative users with sudo, the risk is mitigated.

Fix Text

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.

Check Content

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.

Removed

V-209554

The macOS system must be configured with audit log folders owned by root.

Finding ID
AOSX-14-001013
Rule ID
SV-209554r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000057-GPOS-00027
CCI
CCI-000162
Target Key
(None)
Documentable
No
Discussion

The audit service must be configured to create log files with the correct ownership to prevent normal users from reading audit logs. Audit logs contain sensitive data about the system and about users. If log files are set to be readable and writable only by root or administrative users with sudo, the risk is mitigated.

Fix Text

For any log folder that has an incorrect owner, run the following command: /usr/bin/sudo chown root [audit log folder]

Check Content

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.

Removed

V-209555

The macOS system must be configured with audit log files group-owned by wheel.

Finding ID
AOSX-14-001014
Rule ID
SV-209555r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000057-GPOS-00027
CCI
CCI-000162
Target Key
(None)
Documentable
No
Discussion

The audit service must be configured to create log files with the correct group ownership to prevent normal users from reading audit logs. Audit logs contain sensitive data about the system and users. If log files are set to be readable and writable only by root or administrative users with sudo, the risk is mitigated.

Fix Text

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.

Check Content

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.

Removed

V-209556

The macOS system must be configured with audit log folders group-owned by wheel.

Finding ID
AOSX-14-001015
Rule ID
SV-209556r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000057-GPOS-00027
CCI
CCI-000162
Target Key
(None)
Documentable
No
Discussion

The audit service must be configured to create log files with the correct group ownership to prevent normal users from reading audit logs. Audit logs contain sensitive data about the system and about users. If log files are set to be readable and writable only by root or administrative users with sudo, the risk is mitigated.

Fix Text

For any log folder that has an incorrect group, run the following command: /usr/bin/sudo chgrp wheel [audit log folder]

Check Content

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.

Removed

V-209557

The macOS system must be configured with audit log files set to mode 440 or less permissive.

Finding ID
AOSX-14-001016
Rule ID
SV-209557r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000057-GPOS-00027
CCI
CCI-000162
Target Key
(None)
Documentable
No
Discussion

The audit service must be configured to create log files with the correct permissions to prevent normal users from reading audit logs. Audit logs contain sensitive data about the system and about users. If log files are set to be readable and writable only by root or administrative users with sudo, the risk is mitigated.

Fix Text

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.

Check Content

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.

Removed

V-209558

The macOS system must be configured with audit log folders set to mode 700 or less permissive.

Finding ID
AOSX-14-001017
Rule ID
SV-209558r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000057-GPOS-00027
CCI
CCI-000164
Target Key
(None)
Documentable
No
Discussion

The audit service must be configured to create log folders with the correct permissions to prevent normal users from reading audit logs. Audit logs contain sensitive data about the system and users. If log folders are set to be readable and writable only by root or administrative users with sudo, the risk is mitigated. Satisfies: SRG-OS-000057-GPOS-00027, SRG-OS-000058-GPOS-00028, SRG-OS-000059-GPOS-00029

Fix Text

For any log folder that returns an incorrect permission value, run the following command: /usr/bin/sudo chmod 700 [audit log folder]

Check Content

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.

Removed

V-209559

The macOS system must audit the enforcement actions used to restrict access associated with changes to the system.

Finding ID
AOSX-14-001020
Rule ID
SV-209559r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000064-GPOS-00033
CCI
CCI-001814
Target Key
(None)
Documentable
No
Discussion

By auditing access restriction enforcement, changes to application and OS configuration files can be audited. Without auditing the enforcement of access restrictions, it will be difficult to identify attempted attacks and an audit trail will not be available for forensic investigation. Enforcement actions are the methods or mechanisms used to prevent unauthorized changes to configuration settings. Enforcement action methods may be as simple as denying access to a file based on the application of file permissions (access restriction). Audit items may consist of lists of actions blocked by access restrictions or changes identified after the fact. Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. Audit records can be generated from various components within the information system (e.g., module or policy filter). Satisfies: SRG-OS-000064-GPOS-00033, SRG-OS-000365-GPOS-00152, SRG-OS-000458-GPOS-00203, SRG-OS-000461-GPOS-00205, SRG-OS-000463-GPOS-00207, SRG-OS-000465-GPOS-00209, SRG-OS-000466-GPOS-00210, SRG-OS-000467-GPOS-00211, SRG-OS-000468-GPOS-00212, SRG-OS-000474-GPOS-00219

Fix Text

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.

Check Content

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.

Removed

V-209560

The macOS system must allocate audit record storage capacity to store at least one weeks worth of audit records when audit records are not immediately sent to a central audit record storage facility.

Finding ID
AOSX-14-001029
Rule ID
SV-209560r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000341-GPOS-00132
CCI
CCI-001849
Target Key
(None)
Documentable
No
Discussion

The audit service must be configured to require that records are kept for seven days or longer before deletion when there is no central audit record storage facility. When "expire-after" is set to "7d", the audit service will not delete audit logs until the log data is at least seven days old.

Fix Text

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.

Check Content

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.

Removed

V-209561

The macOS system must provide an immediate warning to the System Administrator (SA) and Information System Security Officer (ISSO) (at a minimum) when allocated audit record storage volume reaches 75 percent of repository maximum audit record storage capacity.

Finding ID
AOSX-14-001030
Rule ID
SV-209561r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000343-GPOS-00134
CCI
CCI-001855
Target Key
(None)
Documentable
No
Discussion

The audit service must be configured to require a minimum percentage of free disk space in order to run. This ensures that audit will notify the administrator that action is required to free up more disk space for audit logs. When "minfree" is set to 25 percent, security personnel are notified immediately when the storage volume is 75 percent full and are able to plan for audit record storage capacity expansion.

Fix Text

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".

Check Content

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.

Removed

V-209562

The macOS system must provide an immediate real-time alert to the System Administrator (SA) and Information System Security Officer (ISSO), at a minimum, of all audit failure events requiring real-time alerts.

Finding ID
AOSX-14-001031
Rule ID
SV-209562r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000344-GPOS-00135
CCI
CCI-001858
Target Key
(None)
Documentable
No
Discussion

The audit service should be configured to immediately print messages to the console or email administrator users when an auditing failure occurs. It is critical for the appropriate personnel to be aware if a system is at risk of failing to process audit logs as required. Without a real-time alert, security personnel may be unaware of an impending failure of the audit capability and system operation may be adversely affected.

Fix Text

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

Check Content

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.

Removed

V-209563

The macOS system must generate audit records for DoD-defined events such as successful/unsuccessful logon attempts, successful/unsuccessful direct access attempts, starting and ending time for user access, and concurrent logons to the same account from different sources.

Finding ID
AOSX-14-001044
Rule ID
SV-209563r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000470-GPOS-00214
CCI
CCI-000172
Target Key
(None)
Documentable
No
Discussion

Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. Audit records can be generated from various components within the information system (e.g., module or policy filter). Satisfies: SRG-OS-000470-GPOS-00214, SRG-OS-000472-GPOS-00217, SRG-OS-000473-GPOS-00218, SRG-OS-000475-GPOS-00220

Fix Text

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.

Check Content

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.

Removed

V-209564

The macOS system must accept and verify Personal Identity Verification (PIV) credentials, implement a local cache of revocation data to support path discovery and validation in case of the inability to access revocation information via the network, and only allow the use of DoD PKI-established certificate authorities for verification of the establishment of protected sessions.

Finding ID
AOSX-14-001060
Rule ID
SV-209564r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000376-GPOS-00161
CCI
CCI-002470
Target Key
(None)
Documentable
No
Discussion

The use of PIV credentials facilitates standardization and reduces the risk of unauthorized access. Without configuring a local cache of revocation data, there is the potential to allow access to users who are no longer authorized (users with revoked certificates). Untrusted Certificate Authorities (CA) can issue certificates, but they may be issued by organizations or individuals that seek to compromise DoD systems or by organizations with insufficient security controls. If the CA used for verifying the certificate is not a DoD-approved CA, trust of this CA has not been established. DoD has mandated the use of the CAC to support identity management and personal authentication for systems covered under Homeland Security Presidential Directive (HSPD) 12, as well as making the CAC a primary component of layered protection for national security systems. The DoD will only accept PKI-certificates obtained from a DoD-approved internal or external certificate authority. Reliance on CAs for the establishment of secure sessions includes, for example, the use of SSL/TLS certificates. Satisfies: SRG-OS-000376-GPOS-00161, SRG-OS-000377-GPOS-00162, SRG-OS-000384-GPOS-00167, SRG-OS-000403-GPOS-00182

Fix Text

This setting is enforced using the "Smart Card Policy" configuration profile. Note: Before applying the "Smart Card Policy", the supplemental guidance provided with the STIG should be consulted to ensure continued access to the operating system.

Check Content

To verify that certificate checks are occurring, run the following command. /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep checkCertificateTrust If the output is null or the value returned, "checkCertificateTrust = 0", is not equal to (0) or greater, this is a finding.

Removed

V-209565

The macOS system must require individuals to be authenticated with an individual authenticator prior to using a group authenticator.

Finding ID
AOSX-14-001100
Rule ID
SV-209565r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000109-GPOS-00056
CCI
CCI-000770
Target Key
(None)
Documentable
No
Discussion

Administrator users must never log in directly as root. To assure individual accountability and prevent unauthorized access, logging in as root over a remote connection must be disabled. Administrators should only run commands as root after first authenticating with their individual user names and passwords.

Fix Text

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

Check Content

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.

Removed

V-209566

The macOS system must be configured to disable SMB File Sharing unless it is required.

Finding ID
AOSX-14-002001
Rule ID
SV-209566r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-000381
Target Key
(None)
Documentable
No
Discussion

File Sharing is usually non-essential and must be disabled if not required. Enabling any service increases the attack surface for an intruder. By disabling unnecessary services, the attack surface is minimized.

Fix Text

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.

Check Content

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

Removed

V-209567

The macOS system must be configured to disable Apple File (AFP) Sharing.

Finding ID
AOSX-14-002002
Rule ID
SV-209567r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-000381
Target Key
(None)
Documentable
No
Discussion

File Sharing is non-essential and must be disabled. Enabling any service increases the attack surface for an intruder. By disabling unnecessary services, the attack surface is minimized.

Fix Text

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.

Check Content

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

Removed

V-209568

The macOS system must be configured to disable the Network File System (NFS) daemon unless it is required.

Finding ID
AOSX-14-002003
Rule ID
SV-209568r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-000381
Target Key
(None)
Documentable
No
Discussion

If the system does not require access to NFS file shares or is not acting as an NFS server, support for NFS is non-essential and NFS services must be disabled. NFS is a network file system protocol supported by UNIX-like operating systems. Enabling any service increases the attack surface for an intruder. By disabling unnecessary services, the attack surface is minimized.

Fix Text

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.

Check Content

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

Removed

V-209569

The macOS system must be configured to disable Location Services.

Finding ID
AOSX-14-002004
Rule ID
SV-209569r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-000381
Target Key
(None)
Documentable
No
Discussion

To prevent unauthorized connection of devices, unauthorized transfer of information, or unauthorized tunneling (i.e., embedding of data types within data types), organizations must disable or restrict unused or unnecessary physical and logical ports/protocols on information systems. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services provided by default may not be necessary to support essential organizational operations. Additionally, it is sometimes convenient to provide multiple services from a single component (e.g., VPN and IPS); however, doing so increases risk over limiting the services provided by any one component. To support the requirements and principles of least functionality, the operating system must support the organizational requirements, providing only essential capabilities and limiting the use of ports, protocols, and/or services to only those required, authorized, and approved to conduct official business or to address authorized quality-of-life issues. Location Services must be disabled.

Fix Text

Disable the Location Services: The setting is found in System Preferences >> Security & Privacy >> Privacy >> Location Services. Uncheck the box labeled "Enable Location Services".

Check Content

If Location Services are authorized by the Authorizing Official, this is Not Applicable. Verify that Location Services are disabled: The setting is found in System Preferences >> Security & Privacy >> Privacy >> Location Services. If the box that says "Enable Location Services" is checked, this is a finding.

Removed

V-209570

The macOS system must be configured to disable Bonjour multicast advertising.

Finding ID
AOSX-14-002005
Rule ID
SV-209570r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-000381
Target Key
(None)
Documentable
No
Discussion

To prevent unauthorized connection of devices, unauthorized transfer of information, or unauthorized tunneling (i.e., embedding of data types within data types), organizations must disable or restrict unused or unnecessary physical and logical ports/protocols on information systems. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services provided by default may not be necessary to support essential organizational operations. Additionally, it is sometimes convenient to provide multiple services from a single component (e.g., VPN and IPS); however, doing so increases risk over limiting the services provided by any one component. To support the requirements and principles of least functionality, the operating system must support the organizational requirements, providing only essential capabilities and limiting the use of ports, protocols, and/or services to only those required, authorized, and approved to conduct official business or to address authorized quality-of-life issues. Bonjour multicast advertising must be disabled on the system.

Fix Text

This setting is enforced using the "Custom Policy" configuration profile.

Check Content

To check that Bonjour broadcasts have been disabled, use the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep NoMulticastAdvertisements If the return is not, "NoMulticastAdvertisements = 1", this is a finding.

Removed

V-209571

The macOS system must be configured to disable the UUCP service.

Finding ID
AOSX-14-002006
Rule ID
SV-209571r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-000381
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include but are not limited to games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission but that cannot be disabled. The system must not have the UUCP service active.

Fix Text

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.

Check Content

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

Removed

V-209572

The macOS system must be configured to disable Internet Sharing.

Finding ID
AOSX-14-002007
Rule ID
SV-209572r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-000381
Target Key
(None)
Documentable
No
Discussion

To prevent unauthorized connection of devices, unauthorized transfer of information, or unauthorized tunneling (i.e., embedding of data types within data types), organizations must disable or restrict unused or unnecessary physical and logical ports/protocols on information systems. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services provided by default may not be necessary to support essential organizational operations. Additionally, it is sometimes convenient to provide multiple services from a single component (e.g., VPN and IPS); however, doing so increases risk over limiting the services provided by any one component. To support the requirements and principles of least functionality, the operating system must support the organizational requirements, providing only essential capabilities and limiting the use of ports, protocols, and/or services to only those required, authorized, and approved to conduct official business or to address authorized quality-of-life issues. Internet Sharing is non-essential and must be disabled.

Fix Text

This setting is enforced using the "Custom Policy" configuration profile.

Check Content

To check if Internet Sharing is disabled, use the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep forceInternetSharingOff If the return is not, "forceInternetSharingOff = 1", this is a finding.

Removed

V-209573

The macOS system must be configured to disable Web Sharing.

Finding ID
AOSX-14-002008
Rule ID
SV-209573r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-000381
Target Key
(None)
Documentable
No
Discussion

To prevent unauthorized connection of devices, unauthorized transfer of information, or unauthorized tunneling (i.e., embedding of data types within data types), organizations must disable or restrict unused or unnecessary physical and logical ports/protocols on information systems. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services provided by default may not be necessary to support essential organizational operations. Additionally, it is sometimes convenient to provide multiple services from a single component (e.g., VPN and IPS); however, doing so increases risk over limiting the services provided by any one component. To support the requirements and principles of least functionality, the operating system must support the organizational requirements, providing only essential capabilities and limiting the use of ports, protocols, and/or services to only those required, authorized, and approved to conduct official business or to address authorized quality-of-life issues. Web Sharing is non-essential and must be disabled.

Fix Text

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.

Check Content

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

Removed

V-209574

The macOS system must be configured to disable AirDrop.

Finding ID
AOSX-14-002009
Rule ID
SV-209574r610285_rule
Severity
Cat III
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-000381
Target Key
(None)
Documentable
No
Discussion

To prevent unauthorized connection of devices, unauthorized transfer of information, or unauthorized tunneling (i.e., embedding of data types within data types), organizations must disable or restrict unused or unnecessary physical and logical ports/protocols on information systems. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services provided by default may not be necessary to support essential organizational operations. Additionally, it is sometimes convenient to provide multiple services from a single component (e.g., VPN and IPS); however, doing so increases risk over limiting the services provided by any one component. To support the requirements and principles of least functionality, the operating system must support the organizational requirements, providing only essential capabilities and limiting the use of ports, protocols, and/or services to only those required, authorized, and approved to conduct official business or to address authorized quality-of-life issues. AirDrop must be disabled.

Fix Text

This setting is enforced using the "Custom Policy" configuration profile.

Check Content

AirDrop relies on Bluetooth LE for discovery. To check if AirDrop has been disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep DisableBluetooth If the return is not, "DisableBluetooth = 1", this is a finding.

Removed

V-209575

The macOS system must be configured to disable the application FaceTime.

Finding ID
AOSX-14-002010
Rule ID
SV-209575r610285_rule
Severity
Cat III
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-001774
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include but are not limited to games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission but that cannot be disabled. The application FaceTime establishes connections to Apple's iCloud, despite using security controls to disable iCloud access. Satisfies: SRG-OS-000095-GPOS-00049, SRG-OS-000370-GPOS-00155

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

To check if there is a configuration policy defined for "Application Restrictions", run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -A 5 familyControlsEnabled | grep "FaceTime" If the return does not contain "/Applications/FaceTime.app", this is a finding.

Removed

V-209576

The macOS system must be configured to disable the application Messages.

Finding ID
AOSX-14-002011
Rule ID
SV-209576r610285_rule
Severity
Cat III
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-001774
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include but are not limited to games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission but that cannot be disabled. The application Messages establishes connections to Apple's iCloud, despite using security controls to disable iCloud access. Satisfies: SRG-OS-000095-GPOS-00049, SRG-OS-000370-GPOS-00155

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

To check if there is a configuration policy defined for "Application Restrictions", run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -A 5 familyControlsEnabled | grep "Messages.app" If the return does not contain "/Applications/Messages.app", this is a finding.

Removed

V-209577

The macOS system must be configured to disable the iCloud Calendar services.

Finding ID
AOSX-14-002012
Rule ID
SV-209577r610285_rule
Severity
Cat III
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-001774
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include but are not limited to games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission but that cannot be disabled. The Calendar application's connections to Apple's iCloud, must be disabled. Satisfies: SRG-OS-000095-GPOS-00049, SRG-OS-000370-GPOS-00155

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

To check if iCloudCalendar is disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep allowCloudCalendar If the return is not “allowCloudCalendar = 0”, this is a finding.

Removed

V-209578

The macOS system must be configured to disable the iCloud Reminders services.

Finding ID
AOSX-14-002013
Rule ID
SV-209578r610285_rule
Severity
Cat III
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-001774
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include but are not limited to games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission but that cannot be disabled. The Reminder application's connections to Apple's iCloud, must be disabled. Satisfies: SRG-OS-000095-GPOS-00049, SRG-OS-000370-GPOS-00155

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

To check if iCloud Reminders is disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep allowCloudReminders If the return is not “allowCloudReminders = 0”, this is a finding.

Removed

V-209579

The macOS system must be configured to disable iCloud Address Book services.

Finding ID
AOSX-14-002014
Rule ID
SV-209579r610285_rule
Severity
Cat III
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-001774
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include but are not limited to games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission but that cannot be disabled. The Address Book(Contacts) application's connections to Apple's iCloud, must be disabled. Satisfies: SRG-OS-000095-GPOS-00049, SRG-OS-000370-GPOS-00155

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

/usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep allowCloudAddressBook If the result is not “allowCloudAddressBook = 0”, this is a finding.

Removed

V-209580

The macOS system must be configured to disable the Mail iCloud services.

Finding ID
AOSX-14-002015
Rule ID
SV-209580r610285_rule
Severity
Cat III
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-001774
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include but are not limited to games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission but that cannot be disabled. The Mail application's connections to Apple's iCloud, must be disabled. Satisfies: SRG-OS-000095-GPOS-00049, SRG-OS-000370-GPOS-00155

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

To check if Mail iCloud is disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep allowCloudMail If the result is not “allowCloudMail = 0”, this is a finding.

Removed

V-209581

The macOS system must be configured to disable the iCloud Notes services.

Finding ID
AOSX-14-002016
Rule ID
SV-209581r610285_rule
Severity
Cat III
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-000381
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include but are not limited to games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission but that cannot be disabled. The Notes application's connections to Apple's iCloud, must be disabled. Satisfies: SRG-OS-000095-GPOS-00049, SRG-OS-000370-GPOS-00155

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

To check if iCloud Notes is disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep allowCloudNotes If the return is not “allowCloudNotes = 0”, this is a finding.

Removed

V-209582

The macOS system must cover or disable the built-in or attached camera when not in use.

Finding ID
AOSX-14-002017
Rule ID
SV-209582r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-001774
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Failing to disconnect from collaborative computing devices (i.e. cameras) can result in subsequent compromises of organizational information. Providing easy methods to physically disconnect from such devices after a collaborative computing session helps to ensure that participants actually carry out the disconnect activity without having to go through complex and tedious procedures. Satisfies: SRG-OS-000095-GPOS-00049, SRG-OS-000370-GPOS-00155

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

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.

Removed

V-209583

The macOS system must be configured to disable the application Mail.

Finding ID
AOSX-14-002019
Rule ID
SV-209583r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-000381
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include but are not limited to games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission but that cannot be disabled. The application Mail establishes connections to Apple's iCloud, despite using security controls to disable iCloud access.

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

To check if there is a configuration policy defined for "Application Restrictions", run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -A 5 familyControlsEnabled | grep "Mail.app" If the return does not contain "/Applications/Mail.app", this is a finding.

Removed

V-209584

The macOS system must be configured to disable Siri and dictation.

Finding ID
AOSX-14-002020
Rule ID
SV-209584r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-001774
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include but are not limited to games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission but that cannot be disabled. Siri and dictation must be disabled. Satisfies: SRG-OS-000095-GPOS-00049, SRG-OS-000370-GPOS-00155

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

To check if Siri and dictation has been disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -e "Assistant Allowed" -e "Ironwood Allowed" If the output is not the following, this is a finding: “Assistant Allowed = 0” “Ironwood Allowed = 0”

Removed

V-209585

The macOS system must be configured to disable sending diagnostic and usage data to Apple.

Finding ID
AOSX-14-002021
Rule ID
SV-209585r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000096-GPOS-00050
CCI
CCI-000382
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include but are not limited to games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission but that cannot be disabled. The ability to submit diagnostic data to Apple must be disabled.

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile. The setting "Send diagnostic & usage data to Apple" is found in System Preferences >> Security & Privacy >> Privacy >> Diagnostics & Usage. Uncheck the box that says "Send diagnostic & usage data to Apple." To apply the setting from the command line, run the following commands: /usr/bin/defaults read "/Library/Application Support/CrashReporter/DiagnosticMessagesHistory.plist" AutoSubmit /usr/bin/sudo /usr/bin/defaults write "/Library/Application Support/CrashReporter/DiagnosticMessagesHistory.plist" AutoSubmit -bool false /usr/bin/sudo /bin/chmod 644 /Library/Application\ Support/CrashReporter/DiagnosticMessagesHistory.plist /usr/bin/sudo /usr/bin/chgrp admin /Library/Application\ Support/CrashReporter/DiagnosticMessagesHistory.plist

Check Content

Sending diagnostic and usage data to Apple must be disabled. To check if a configuration profile is configured to enforce this setting, run the following command: /usr/bin/sudo /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep allowDiagnosticSubmission If "allowDiagnosticSubmission" is not set to "0", this is a finding. Alternately, the setting is found in System Preferences >> Security & Privacy >> Privacy >> Diagnostics & Usage. If the box that says "Send diagnostic & usage data to Apple" is checked, this is a finding.

Removed

V-209586

The macOS system must be configured to disable Remote Apple Events.

Finding ID
AOSX-14-002022
Rule ID
SV-209586r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000096-GPOS-00050
CCI
CCI-000382
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include but are not limited to games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission but that cannot be disabled. Remote Apple Events must be disabled.

Fix Text

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.

Check Content

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

Removed

V-209587

The macOS system must be configured to disable the application Calendar.

Finding ID
AOSX-14-002023
Rule ID
SV-209587r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-000381
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include but are not limited to games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission but that cannot be disabled. The application Calendar establishes connections to Apple's iCloud, despite using security controls to disable iCloud access.

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

To check if there is a configuration policy defined for "Application Restrictions", run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -A 5 familyControlsEnabled | grep "Calendar.app" If the return does not contain "/Applications/Calendar.app", this is a finding.

Removed

V-209588

The macOS system must be configured to disable the system preference pane for iCloud.

Finding ID
AOSX-14-002031
Rule ID
SV-209588r610285_rule
Severity
Cat I
CCE
(None)
Group Title
SRG-OS-000370-GPOS-00155
CCI
CCI-001774
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include but are not limited to games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission but that cannot be disabled. The iCloud System Preference Pane must be disabled.

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

To check if the system has the correct setting in the configuration profile to disable access to the iCloud preference pane, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -A 6 DisabledPreferencePanes | grep icloud If the return is not “com.apple.preferences.icloud”, this is a finding.

Removed

V-209589

The macOS system must be configured to disable the system preference pane for Internet Accounts.

Finding ID
AOSX-14-002032
Rule ID
SV-209589r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000370-GPOS-00155
CCI
CCI-000381
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include but are not limited to games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission but that cannot be disabled. The Internet Accounts System preference pane must be disabled. Satisfies: SRG-OS-000095-GPOS-00049.

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

To check if the system has the correct setting in the configuration profile to disable access to the Internet Accounts System preference pane, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -A 6 DisabledPreferencePanes If the return is not an array which contains: “com.apple.preferences.internetaccounts”, this is a finding.

Removed

V-209590

The macOS system must be configured to disable the Siri Setup services.

Finding ID
AOSX-14-002034
Rule ID
SV-209590r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-000381
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include, but are not limited to, games, software packages, tools, and demonstration software, not related to requirements or providing a wide array of functionality not required for every mission, but which cannot be disabled.

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

To check if SiriSetup is disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep SkipSiriSetup If the return is not “SkipSiriSetup = 1”, this is a finding.

Removed

V-209591

The macOS system must be configured to disable the Cloud Setup services.

Finding ID
AOSX-14-002035
Rule ID
SV-209591r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-000381
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include, but are not limited to, games, software packages, tools, and demonstration software, not related to requirements or providing a wide array of functionality not required for every mission, but which cannot be disabled.

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

To check if CloudSetup is disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep SkipCloudSetup If the return is not “SkipCloudSetup = 1”, this is a finding.

Removed

V-209592

The macOS system must be configured to disable the Privacy Setup services.

Finding ID
AOSX-14-002036
Rule ID
SV-209592r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-000381
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include, but are not limited to, games, software packages, tools, and demonstration software, not related to requirements or providing a wide array of functionality not required for every mission, but which cannot be disabled.

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

To check if PrivacySetup is disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep SkipPrivacySetup If the return is not “SkipPrivacySetup = 1”, this is a finding.

Removed

V-209593

The macOS system must be configured to disable the Cloud Storage Setup services.

Finding ID
AOSX-14-002037
Rule ID
SV-209593r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-000381
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include, but are not limited to, games, software packages, tools, and demonstration software, not related to requirements or providing a wide array of functionality not required for every mission, but which cannot be disabled.

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

To check if CloudStorage Setup is disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep SkipiCloudStorageSetup If the return is not “SkipiCloudStorageSetup = 1”, this is a finding.

Removed

V-209594

The macOS system must be configured to disable the tftpd service.

Finding ID
AOSX-14-002038
Rule ID
SV-209594r610285_rule
Severity
Cat I
CCE
(None)
Group Title
SRG-OS-000074-GPOS-00042
CCI
CCI-000197
Target Key
(None)
Documentable
No
Discussion

The "tftpd" service must be disabled as it sends all data in a clear-text form that can be easily intercepted and read. The data needs to be protected at all times during transmission, and encryption is the standard method for protecting data in transit. If the data is not encrypted during transmission, it can be plainly read (i.e., clear text) and easily compromised. Disabling ftp is one way to mitigate this risk. Administrators should be instructed to use an alternate service for data transmission that uses encryption, such as SFTP.

Fix Text

To disable the tftpd service, run the following command: /usr/bin/sudo /bin/launchctl disable system/com.apple.tftpd

Check Content

To check if the tftpd service is disabled, run the following command: sudo launchctl print-disabled system | grep tftpd If the results do not show the following, this is a finding: "com.apple.tftpd" => true

Removed

V-209595

The macOS system must disable Siri pop-ups.

Finding ID
AOSX-14-002039
Rule ID
SV-209595r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-000381
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include but are not limited to games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission but that cannot be disabled. The Siri setup pop-up must be disabled. Satisfies: SRG-OS-000095-GPOS-00049, SRG-OS-000370-GPOS-00155

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

To check if the Skip Siri Setup prompt is enabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep SkipSiriSetup If the output is null or "SkipSiriSetup" is not set to "1", this is a finding.

Removed

V-209596

The macOS system must disable iCloud Keychain synchronization.

Finding ID
AOSX-14-002040
Rule ID
SV-209596r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-001774
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include but are not limited to games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission but that cannot be disabled. Keychain synchronization must be disabled. Satisfies: SRG-OS-000095-GPOS-00049, SRG-OS-000370-GPOS-00155

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

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.

Removed

V-209597

The macOS system must disable iCloud document synchronization.

Finding ID
AOSX-14-002041
Rule ID
SV-209597r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-000381
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include but are not limited to games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission but that cannot be disabled. iCloud document synchronization must be disabled. Satisfies: SRG-OS-000095-GPOS-00049, SRG-OS-000370-GPOS-00155

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

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.

Removed

V-209598

The macOS system must disable iCloud bookmark synchronization.

Finding ID
AOSX-14-002042
Rule ID
SV-209598r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-001774
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include but are not limited to games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission but that cannot be disabled. iCloud Bookmark syncing must be disabled. Satisfies: SRG-OS-000095-GPOS-00049, SRG-OS-000370-GPOS-00155

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

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.

Removed

V-209599

The macOS system must disable iCloud photo library.

Finding ID
AOSX-14-002043
Rule ID
SV-209599r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000095-GPOS-00049
CCI
CCI-000381
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include but are not limited to games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission but that cannot be disabled. iCloud Photo Library must be disabled. Satisfies: SRG-OS-000095-GPOS-00049, SRG-OS-000370-GPOS-00155

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

To check if the system has the correct setting in the configuration profile to disable access to the iCloud preference pane, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -A 6 DisabledPreferencePanes | grep icloud If the return is not “com.apple.preferences.icloud”, this is a CAT I finding. To view the setting for the iCloud Photo Library configuration, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep allowCloudPhotoLibrary If the output is null or not "allowCloudPhotoLibrary = 0", this is a finding.

Removed

V-209600

The macOS system must disable Cloud Document Sync.

Finding ID
AOSX-14-002049
Rule ID
SV-209600r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000370-GPOS-00155
CCI
CCI-001774
Target Key
(None)
Documentable
No
Discussion

It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). Examples of non-essential capabilities include but are not limited to games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission but that cannot be disabled. Cloud Document Sync must be disabled.

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

To view the setting for the iCloud Desktop and Documents configuration, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep allowCloudDocumentSync If the output is null or not "allowCloudDocumentSync = 0", this is a finding.

Removed

V-209601

The macOS system must disable the Screen Sharing feature.

Finding ID
AOSX-14-002050
Rule ID
SV-209601r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000480-GPOS-00227
CCI
CCI-000366
Target Key
(None)
Documentable
No
Discussion

The Screen Sharing feature allows remote users to view or control the desktop of the current user. A malicious user can take advantage of screen sharing to gain full access to the system remotely, either with stolen credentials or by guessing the username and password. Disabling Screen Sharing mitigates this risk.

Fix Text

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.

Check Content

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

Removed

V-209602

The macOS system must allow only applications downloaded from the App Store to run.

Finding ID
AOSX-14-002060
Rule ID
SV-209602r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000480-GPOS-00227
CCI
CCI-000366
Target Key
(None)
Documentable
No
Discussion

Gatekeeper settings must be configured correctly to only allow the system to run applications downloaded from the Mac App Store or applications signed with a valid Apple Developer ID code. Administrator users will still have the option to override these settings on a per-app basis. Gatekeeper is a security feature that ensures that applications must be digitally signed by an Apple-issued certificate in order to run. Digital signatures allow the macOS host to verify that the application has not been modified by a malicious third party.

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile

Check Content

To verify only applications downloaded from the App Store are allowed to run, type the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -E '(EnableAssessment | AllowIdentifiedDevelopers)' If the return is null, or is not the following, this is a finding: AllowIdentifiedDevelopers = 1; EnableAssessment = 1;

Removed

V-209603

The macOS system must be configured so that end users cannot override Gatekeeper settings.

Finding ID
AOSX-14-002061
Rule ID
SV-209603r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000480-GPOS-00227
CCI
CCI-000366
Target Key
(None)
Documentable
No
Discussion

Gatekeeper must be configured with a configuration profile to prevent normal users from overriding its setting. If users are allowed to disable Gatekeeper or set it to a less restrictive setting, malware could be introduced into the system. Gatekeeper is a security feature that ensures applications must be digitally signed by an Apple-issued certificate in order to run. Digital signatures allow the macOS host to verify the application has not been modified by a malicious third party.

Fix Text

This setting is enforced using the "RestrictionsPolicy" configuration profile.

Check Content

To verify only applications downloaded from the App Store are allowed to run, type the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep DisableOverride If the return is null or is not the following, this is a finding: DisableOverride = 1;

Removed

V-209604

The macOS system must be configured with Bluetooth turned off unless approved by the organization.

Finding ID
AOSX-14-002062
Rule ID
SV-209604r610285_rule
Severity
Cat III
CCE
(None)
Group Title
SRG-OS-000481-GPOS-000481
CCI
CCI-002418
Target Key
(None)
Documentable
No
Discussion

Without protection of communications with wireless peripherals, confidentiality and integrity may be compromised because unprotected communications can be intercepted and either read, altered, or used to compromise the operating system. This requirement applies to wireless peripheral technologies (e.g., wireless mice, keyboards, displays, etc.) used with an operating system. Wireless peripherals (e.g., Wi-Fi/Bluetooth/IR Keyboards, Mice, and Pointing Devices and Near Field Communications [NFC]) present a unique challenge by creating an open, unsecured port on a computer. Wireless peripherals must meet DoD requirements for wireless data transmission and be approved for use by the AO. Even though some wireless peripherals, such as mice and pointing devices, do not ordinarily carry information that need to be protected, modification of communications with these wireless peripherals may be used to compromise the operating system. Communication paths outside the physical protection of a controlled boundary are exposed to the possibility of interception and modification. Protecting the confidentiality and integrity of communications with wireless peripherals can be accomplished by physical means (e.g., employing physical barriers to wireless radio frequencies) or by logical means (e.g., employing cryptographic techniques). If physical means of protection are employed, then logical means (cryptography) do not have to be employed, and vice versa. If the wireless peripheral is only passing telemetry data, encryption of the data may not be required.

Fix Text

This setting is enforced using the "Custom Policy" configuration profile.

Check Content

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.

Removed

V-209605

The macOS system must disable the guest account.

Finding ID
AOSX-14-002063
Rule ID
SV-209605r610285_rule
Severity
Cat I
CCE
(None)
Group Title
SRG-OS-000364-GPOS-00151
CCI
CCI-001813
Target Key
(None)
Documentable
No
Discussion

Failure to provide logical access restrictions associated with changes to system configuration may have significant effects on the overall security of the system. When dealing with access restrictions pertaining to change control, it should be noted that any changes to the hardware, software, and/or firmware components of the operating system can have significant effects on the overall security of the system. Accordingly, only qualified and authorized individuals should be allowed to obtain access to operating system components for the purposes of initiating changes, including upgrades and modifications. Logical access restrictions include, for example, controls that restrict access to workflow automation, media libraries, abstract layers (e.g., changes implemented into third-party interfaces rather than directly into information systems), and change windows (e.g., changes occur only during specified times, making unauthorized changes easy to discover).

Fix Text

This is managed with Login Window Policy.

Check Content

To check that the system is configured to disable the guest account, run the following command: # /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep DisableGuestAccount If the result is null or not "DisableGuestAccount = 1", this is a finding.

Removed

V-209606

The macOS system must have the security assessment policy subsystem enabled.

Finding ID
AOSX-14-002064
Rule ID
SV-209606r610285_rule
Severity
Cat I
CCE
(None)
Group Title
SRG-OS-000366-GPOS-00153
CCI
CCI-001749
Target Key
(None)
Documentable
No
Discussion

Any changes to the hardware, software, and/or firmware components of the information system and/or application can potentially have significant effects on the overall security of the system. Accordingly, software defined by the organization as critical must be signed with a certificate that is recognized and approved by the organization.

Fix Text

To enable the Security assessment policy subsystem, run the following command: /usr/bin/sudo /usr/sbin/spctl --master-enable

Check Content

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.

Removed

V-209607

The macOS system must limit the ability of non-privileged users to grant other users direct access to the contents of their home directories/folders.

Finding ID
AOSX-14-002065
Rule ID
SV-209607r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000480-GPOS-00230
CCI
CCI-000366
Target Key
(None)
Documentable
No
Discussion

Users' home directories/folders may contain information of a sensitive nature. Non-privileged users should coordinate any sharing of information with an SA through shared resources.

Fix Text

To reset the permissions on a users' home directory to their defaults, run the following command, where "username" is the user's short name: sudo diskutil resetUserPermissions / username

Check Content

For each listing, with the exception of "Shared", verify that the directory is owned by the username, that only the owner has "write" permissions, and the correct Access Control Entry is listed. To verify permissions on users' home directories, use the following command: # ls -le /Users drwxr-xr-x+ 12 Guest _guest 384 Apr 2 09:40 Guest 0: group:everyone deny delete drwxrwxrwt 4 root wheel 128 Mar 28 05:53 Shared drwxr-xr-x+ 13 admin staff 416 Apr 8 08:58 admin 0: group:everyone deny delete drwxr-xr-x+ 11 test user 352 Apr 8 09:00 test 0: group:everyone deny delete If the directory is not owned by the user, this is a finding. If anyone other than the user has "write" permissions to the directory, this is a finding. If the Access Control Entry listed is not "0: group:everyone deny delete", this is a finding.

Removed

V-209608

The macOS system must not allow an unattended or automatic logon to the system.

Finding ID
AOSX-14-002066
Rule ID
SV-209608r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000480-GPOS-00229
CCI
CCI-000366
Target Key
(None)
Documentable
No
Discussion

Failure to restrict system access to authenticated users negatively impacts operating system security.

Fix Text

This setting is enforced using the "Login Window Policy" configuration profile.

Check Content

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.

Removed

V-209609

The macOS system must prohibit user installation of software without explicit privileged status.

Finding ID
AOSX-14-002067
Rule ID
SV-209609r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000362-GPOS-00149
CCI
CCI-001812
Target Key
(None)
Documentable
No
Discussion

Allowing regular users to install software, without explicit privileges, creates the risk that untested or potentially malicious software will be installed on the system. Explicit privileges (escalated or administrative privileges) provide the regular user with explicit capabilities and control that exceeds the rights of a regular user. Operating system functionality will vary, and while users are not permitted to install unapproved software, there may be instances where the organization allows the user to install approved software packages, such as from an approved software repository. The operating system or software configuration management utility must enforce control of software installation by users based upon what types of software installations are permitted (e.g., updates and security patches to existing software) and what types of installations are prohibited (e.g., software whose pedigree with regard to being potentially malicious is unknown or suspect) by the organization.

Fix Text

This setting is enforced using the "Restrictions Policy" configuration profile.

Check Content

To check if the system is configured to prohibit user installation of software, first check to ensure the Parental Controls are enabled with the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep -A 6 familyControlsEnabled | grep “/Users" If the result is null, or does not contain “/Users/“, this is a finding.

Removed

V-209610

The macOS system must set permissions on user home directories to prevent users from having access to read or modify another users files.

Finding ID
AOSX-14-002068
Rule ID
SV-209610r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000480-GPOS-00228
CCI
CCI-000366
Target Key
(None)
Documentable
No
Discussion

Configuring the operating system to use the most restrictive permissions possible for user home directories helps to protect against inadvertent disclosures.

Fix Text

To ensure the appropriate permissions are set for each user on the system, run the following command: diskutil resetUserPermissions / userid, where userid is the user name for the user whose home directory permissions need to be repaired.

Check Content

To verify that permissions are set correctly on user home directories, use the following commands: ls -le /Users Should return a listing of the permissions of the root of every user account configured on the system. For each of the users, the permissions should be: "drwxr-xr-x+" with the user listed as the owner and the group listed as "staff". The plus (+) sign indicates an associated Access Control List, which should be: 0: group:everyone deny delete For every authorized user account, also run the following command: /usr/bin/sudo ls -le /Users/userid, where userid is an existing user. This command will return the permissions of all of the objects under the users' home directory. The permissions for each of the subdirectories should be: drwx------+ 0: group:everyone deny delete With the exception of the "Public" directory, whose permissions should match the following: drwxr-xr-x+ 0: group:everyone deny delete If the permissions returned by either of these checks differ from what is shown, this is a finding.

Removed

V-209612

The macOS system must use an approved antivirus program.

Finding ID
AOSX-14-002070
Rule ID
SV-209612r610285_rule
Severity
Cat I
CCE
(None)
Group Title
SRG-OS-000480-GPOS-00227
CCI
CCI-000366
Target Key
(None)
Documentable
No
Discussion

An approved antivirus product must be installed and configured to run. Malicious software can establish a base on individual desktops and servers. Employing an automated mechanism to detect this type of software will aid in elimination of the software from the operating system.

Fix Text

Install an approved antivirus solution onto the system.

Check Content

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.

Removed

V-209613

The macOS system must issue or obtain public key certificates under an appropriate certificate policy from an approved service provider.

Finding ID
AOSX-14-003001
Rule ID
SV-209613r610285_rule
Severity
Cat I
CCE
(None)
Group Title
SRG-OS-000066-GPOS-00034
CCI
CCI-002450
Target Key
(None)
Documentable
No
Discussion

DoD-approved certificates must be installed to the System Keychain so they will be available to all users. For user certificates, each organization obtains certificates from an approved, shared service provider, as required by OMB policy. For federal agencies operating a legacy public key infrastructure cross-certified with the Federal Bridge Certification Authority at medium assurance or higher, this Certification Authority will suffice. This control focuses on certificates with a visibility external to the information system and does not include certificates related to internal system operations; for example, application-specific time services. Use of weak or untested encryption algorithms undermines the purposes of utilizing encryption to protect data. The operating system must implement cryptographic modules adhering to the higher standards approved by the federal government since this provides assurance they have been tested and validated. Satisfies: SRG-OS-000066-GPOS-00034, SRG-OS-000478-GPOS-00223

Fix Text

Obtain the approved DOD certificates from the appropriate authority. Use Keychain Access from "/Applications/Utilities" to add certificates to the System Keychain.

Check Content

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.

Removed

V-209614

The macOS system must enable certificate for smartcards.

Finding ID
AOSX-14-003002
Rule ID
SV-209614r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000067-GPOS-00035
CCI
CCI-000186
Target Key
(None)
Documentable
No
Discussion

To prevent untrusted certificates the certificates on a smartcard card must be valid in these ways: its issuer is system-trusted, the certificate is not expired, its "valid-after" date is in the past, and it passes CRL and OCSP checking.

Fix Text

This setting is enforced using the "Smart Card Policy" configuration profile. Note: Before applying the "Smart Card Policy", the supplemental guidance provided with the STIG should be consulted to ensure continued access to the operating system.

Check Content

To view the setting for the smartcard certification configuration, run the following command: sudo /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep checkCertificateTrust If the return is not "checkCertificateTrust = 1;" with the numeral equal to 1 or greater, this is a finding.

Removed

V-209615

The macOS system must map the authenticated identity to the user or group account for PKI-based authentication.

Finding ID
AOSX-14-003005
Rule ID
SV-209615r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000068-GPOS-00036
CCI
CCI-000187
Target Key
(None)
Documentable
No
Discussion

Without mapping the certificate used to authenticate to the user account, the ability to determine the identity of the individual user or group will not be available for forensic analysis.

Fix Text

For stand-alone systems, this setting is enforced using the "Smart Card Policy" configuration profile. Note: Before applying the "Smart Card Policy", the supplemental guidance provided with the STIG should be consulted to ensure continued access to the operating system.

Check Content

To view the setting for the smartcard certification configuration, run the following command: sudo /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep enforceSmartCard If the return is not "enforceSmartCard = 1;" this is a finding.

Removed

V-209616

The macOS system must enforce password complexity by requiring that at least one numeric character be used.

Finding ID
AOSX-14-003007
Rule ID
SV-209616r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000071-GPOS-00039
CCI
CCI-000194
Target Key
(None)
Documentable
No
Discussion

Use of a complex password helps to increase the time and resources required to compromise the password. Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. Password complexity is one factor of several that determines how long it takes to crack a password. The more complex the password, the greater the number of possible combinations that need to be tested before the password is compromised.

Fix Text

This setting is enforced using the "Passcode Policy" configuration profile.

Check Content

To check the currently applied policies for passwords and accounts, use the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep requireAlphanumeric If the return is not “requireAlphanumeric = 1”, this is a finding.

Removed

V-209617

The macOS system must enforce a 60-day maximum password lifetime restriction.

Finding ID
AOSX-14-003008
Rule ID
SV-209617r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000076-GPOS-00044
CCI
CCI-000199
Target Key
(None)
Documentable
No
Discussion

Any password, no matter how complex, can eventually be cracked. Therefore, passwords need to be changed periodically. One method of minimizing this risk is to use complex passwords and periodically change them. If the operating system does not limit the lifetime of passwords and force users to change their passwords, there is the risk that the operating system passwords could be compromised.

Fix Text

This setting is enforced using the "Passcode Policy" configuration profile.

Check Content

To check the currently applied policies for passwords and accounts, use the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep maxPINAgeInDays If "maxPINAgeInDays" is set a value greater than "60", this is a finding.

Removed

V-209618

The macOS system must prohibit password reuse for a minimum of five generations.

Finding ID
AOSX-14-003009
Rule ID
SV-209618r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000077-GPOS-00045
CCI
CCI-000200
Target Key
(None)
Documentable
No
Discussion

Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. If the information system or application allows the user to consecutively reuse their password when that password has exceeded its defined lifetime, the end result is a password that is not changed as per policy requirements.

Fix Text

This setting is enforced using the "Passcode Policy" configuration profile.

Check Content

To check the currently applied policies for passwords and accounts, use the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep pinHistory If the return is not “pinHistory = 5” or greater, this is a finding.

Removed

V-209619

The macOS system must enforce a minimum 15-character password length.

Finding ID
AOSX-14-003010
Rule ID
SV-209619r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000078-GPOS-00046
CCI
CCI-000205
Target Key
(None)
Documentable
No
Discussion

The minimum password length must be set to 15 characters. Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. Password length is one factor of several that helps to determine strength and how long it takes to crack a password. The use of more characters in a password helps to exponentially increase the time and/or resources required to compromise the password.

Fix Text

This setting is enforced using the "Passcode Policy" configuration profile.

Check Content

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.

Removed

V-209620

The macOS system must enforce password complexity by requiring that at least one special character be used.

Finding ID
AOSX-14-003011
Rule ID
SV-209620r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000266-GPOS-00101
CCI
CCI-001619
Target Key
(None)
Documentable
No
Discussion

Use of a complex password helps to increase the time and resources required to compromise the password. Password complexity or strength is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. Password complexity is one factor in determining how long it takes to crack a password. The more complex the password, the greater the number of possible combinations that need to be tested before the password is compromised. Special characters are those characters that are not alphanumeric. Examples include: ~ ! @ # $ % ^ *.

Fix Text

This setting may be enforced using the "Passcode Policy" configuration profile or by a directory service.

Check Content

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.

Removed

V-209621

The macOS system must be configured to prevent displaying password hints.

Finding ID
AOSX-14-003012
Rule ID
SV-209621r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000480-GPOS-00227
CCI
CCI-000366
Target Key
(None)
Documentable
No
Discussion

Password hints leak information about passwords in use and can lead to loss of confidentiality.

Fix Text

This setting is enforce using the "Login Window" Policy.

Check Content

To check that password hints are disabled, run the following command: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep RetriesUntilHint If the return is null or is not "RetriesUntilHint = 0", this is a finding.

Removed

V-209622

macOS must be configured with a firmware password to prevent access to single user mode and booting from alternative media.

Finding ID
AOSX-14-003013
Rule ID
SV-209622r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000480-GPOS-00227
CCI
CCI-000366
Target Key
(None)
Documentable
No
Discussion

Single user mode and the boot picker, as well as numerous other tools are available on macOS through booting while holding the "Option" key down. Setting a firmware password restricts access to these tools.

Fix Text

To set a firmware passcode use the following command. sudo /usr/sbin/firmwarepasswd -setpasswd Note: If firmware password or passcode is forgotten, the only way to reset the forgotten password is through the use of a machine specific binary generated and provided by Apple. Schedule a support call, and provide proof of purchase before the firmware binary will be generated.

Check Content

To check that password hints are disabled, run the following command: # sudo /usr/sbin/firmwarepasswd -check If the return is not, "Password Enabled: Yes", this is a finding.

Removed

V-209623

The macOS system must use multifactor authentication for local and network access to privileged and non-privileged accounts.

Finding ID
AOSX-14-003020
Rule ID
SV-209623r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000105-GPOS-00052
CCI
CCI-000768
Target Key
(None)
Documentable
No
Discussion

Without the use of multifactor authentication, the ease of access to privileged and non-privileged functions is greatly increased. Multifactor authentication requires using two or more factors to achieve authentication. Factors include: 1) something a user knows (e.g., password/PIN); 2) something a user has (e.g., cryptographic identification device, token); and 3) something a user is (e.g., biometric). A privileged account is defined as an information system account with authorizations of a privileged user. Network access is defined as access to an information system by a user (or a process acting on behalf of a user) communicating through a network (e.g., local area network, wide area network, or the Internet). Local access is defined as access to an organizational information system by a user (or process acting on behalf of a user) communicating through a direct connection without the use of a network. The DoD CAC with DoD-approved PKI is an example of multifactor authentication. Satisfies: SRG-OS-000105-GPOS-00052, SRG-OS-000106-GPOS-00053, SRG-OS-000107-GPOS-00054, SRG-OS-000108-GPOS-00055

Fix Text

For non directory bound systems, this setting is enforced using the "Smart Card Policy" configuration profile. Note: Before applying the "Smart Card Policy", the supplemental guidance provided with the STIG should be consulted to ensure continued access to the operating system. The following commands must be run to disable passcode based authentication for SSHD: /usr/bin/sudo /usr/bin/sed -i.bak 's/^[\#]*ChallengeResponseAuthentication.*/ChallengeResponseAuthentication no/' /etc/ssh/sshd_config /usr/bin/sudo /usr/bin/sed -i.bak 's/^[\#]*PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config

Check Content

If the system is connected to a directory server, this is Not Applicable. To verify that the system is configured to enforce multi-factor authentication, run the following commands: /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep enforceSmartCard If the results do not show the following, this is a finding. "enforceSmartCard=1. Run the following command to disable password based authentication in SSHD. /usr/bin/grep -e ^[\#]*PasswordAuthentication.* -e ^[\#]*ChallengeResponseAuthentication.* /etc/ssh/sshd_config If this command returns null, or anything other than exactly this text, with no leading hash(#), this is a finding: "PasswordAuthentication no ChallengeResponseAuthentication no"

Removed

V-209624

The macOS system must use multifactor authentication in the establishment of nonlocal maintenance and diagnostic sessions.

Finding ID
AOSX-14-003024
Rule ID
SV-209624r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000125-GPOS-00065
CCI
CCI-000877
Target Key
(None)
Documentable
No
Discussion

If maintenance tools are used by unauthorized personnel, they may accidentally or intentionally damage or compromise the system. The act of managing systems and applications includes the ability to access sensitive application information, such as system configuration details, diagnostic information, user information, and potentially sensitive application data. Some maintenance and test tools are either standalone devices with their own operating systems or are applications bundled with an operating system. Nonlocal maintenance and diagnostic activities are those activities conducted by individuals communicating through a network, either an external network (e.g., the Internet) or an internal network. Typically, strong authentication requires authenticators that are resistant to replay attacks and employ multifactor authentication. Strong authenticators include, for example, PKI where certificates are stored on a token protected by a password, passphrase, or biometric.

Fix Text

For non-directory bound systems, this setting is enforced using the "Smart Card Policy" configuration profile. Note: Before applying the "Smart Card Policy", the supplemental guidance provided with the STIG should be consulted to ensure continued access to the operating system. To ensure that passcode based logins are disabled in sshd, run the following command: /usr/bin/sudo /usr/bin/sed -i.bak 's/^[\#]*ChallengeResponseAuthentication.*/ChallengeResponseAuthentication no/' /etc/ssh/sshd_config /usr/bin/sudo /usr/bin/sed -i.bak 's/^[\#]*PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config

Check Content

If the system is connected to a directory server, this is Not Applicable. The following command ensures that a mandatory smart card policy is enforced: # /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep enforceSmartCard enforceSmartCard=1 If the command returns null, or any other value, this is a finding. The following command ensures that passwords are disabled in the SSHD configuration file: # grep -e ^[\#]*PasswordAuthentication.* -e ^[\#]*ChallengeResponseAuthentication.* /etc/ssh/sshd_config If this command returns null, or anything other than exactly this text, with no leading hash(#), this is a finding: "PasswordAuthentication no ChallengeResponseAuthentication no"

Removed

V-209625

The macOS system must implement multifactor authentication for remote access to privileged accounts in such a way that one of the factors is provided by a device separate from the system gaining access.

Finding ID
AOSX-14-003025
Rule ID
SV-209625r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000375-GPOS-00160
CCI
CCI-001948
Target Key
(None)
Documentable
No
Discussion

Using an authentication device, such as a CAC or token that is separate from the information system, ensures that even if the information system is compromised, that compromise will not affect credentials stored on the authentication device. Multifactor solutions that require devices separate from information systems gaining access include, for example, hardware tokens providing time-based or challenge-response authenticators and smart cards such as the U.S. Government Personal Identity Verification card and the DoD Common Access Card. A privileged account is defined as an information system account with authorizations of a privileged user. Remote access is access to DoD nonpublic information systems by an authorized user (or an information system) communicating through an external, non-organization-controlled network. Remote access methods include, for example, dial-up, broadband, and wireless. This requirement only applies to components where this is specific to the function of the device or has the concept of an organizational user (e.g., VPN, proxy capability). This does not apply to authentication for the purpose of configuring the device itself (management). Requires further clarification from NIST.

Fix Text

This setting is enforced using the "Smart Card Policy" configuration profile. Note: Before applying the "Smart Card Policy", the supplemental guidance provided with the STIG should be consulted to ensure continued access to the operating system.

Check Content

The following command ensures that a mandatory smart card policy is enforced: # /usr/sbin/system_profiler SPConfigurationProfileDataType | /usr/bin/grep enforceSmartCard If the return is not "enforceSmartCard = 1;" this is a finding.

Removed

V-209626

The macOS system must be configured so that the login command requires smart card authentication.

Finding ID
AOSX-14-003050
Rule ID
SV-209626r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000480-GPOS-00227
CCI
CCI-000366
Target Key
(None)
Documentable
No
Discussion

Configuring the operating system to implement organization-wide security implementation guides and security checklists ensures compliance with federal standards and establishes a common security baseline across DoD that reflects the most restrictive security posture consistent with operational requirements. Configuration settings are the set of parameters that can be changed in hardware, software, or firmware components of the system that affect the security posture and/or functionality of the system. Security-related parameters are those parameters impacting the security state of the system, including the parameters required to satisfy other security control requirements. Security-related parameters include, for example: registry settings; account, file, directory permission settings; and settings for functions, ports, protocols, services, and remote connections.

Fix Text

Make a backup of the PAM LOGIN settings using the following command: sudo cp /etc/pam.d/login /etc/pam.d/login_backup_`date "+%Y-%m-%d_%H:%M"` Replace the contents of "/etc/pam.d/login" with the following: # login: auth account password session auth sufficient pam_smartcard.so auth optional pam_krb5.so use_kcminit auth optional pam_ntlm.so try_first_pass auth optional pam_mount.so try_first_pass auth required pam_opendirectory.so try_first_pass auth required pam_deny.so account required pam_nologin.so account required pam_opendirectory.so password required pam_opendirectory.so session required pam_launchd.so session required pam_uwtmp.so session optional pam_mount.so

Check Content

To verify that the "login" command has been configured to require smart card authentication, run the following command: # cat /etc/pam.d/login | grep -i pam_smartcard.so If the text that returns does not include the line, "auth sufficient pam_smartcard.so" at the TOP of the listing, this is a finding.

Removed

V-209627

The macOS system must be configured so that the su command requires smart card authentication.

Finding ID
AOSX-14-003051
Rule ID
SV-209627r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000480-GPOS-00227
CCI
CCI-000366
Target Key
(None)
Documentable
No
Discussion

Configuring the operating system to implement organization-wide security implementation guides and security checklists ensures compliance with federal standards and establishes a common security baseline across DoD that reflects the most restrictive security posture consistent with operational requirements. Configuration settings are the set of parameters that can be changed in hardware, software, or firmware components of the system that affect the security posture and/or functionality of the system. Security-related parameters are those parameters impacting the security state of the system, including the parameters required to satisfy other security control requirements. Security-related parameters include, for example: registry settings; account, file, directory permission settings; and settings for functions, ports, protocols, services, and remote connections.

Fix Text

Make a backup of the PAM SU settings using the following command: cp /etc/pam.d/su /etc/pam.d/su_backup_`date "+%Y-%m-%d_%H:%M"` Replace the contents of "/etc/pam.d/login" with the following: # su: auth account session auth sufficient pam_smartcard.so #auth required pam_opendirectory.so auth required pam_deny.so account required pam_permit.so password required pam_deny.so session required pam_permit.so

Check Content

To verify that the "su" command has been configured to require smart card authentication, run the following command: cat /etc/pam.d/su | grep -i pam_smartcard.so If the text that returns does not include the line, "auth sufficient pam_smartcard.so" at the TOP of the listing, this is a finding.

Removed

V-209628

The macOS system must be configured so that the sudo command requires smart card authentication.

Finding ID
AOSX-14-003052
Rule ID
SV-209628r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000480-GPOS-00227
CCI
CCI-000366
Target Key
(None)
Documentable
No
Discussion

Configuring the operating system to implement organization-wide security implementation guides and security checklists ensures compliance with federal standards and establishes a common security baseline across DoD that reflects the most restrictive security posture consistent with operational requirements. Configuration settings are the set of parameters that can be changed in hardware, software, or firmware components of the system that affect the security posture and/or functionality of the system. Security-related parameters are those parameters impacting the security state of the system, including the parameters required to satisfy other security control requirements. Security-related parameters include, for example: registry settings; account, file, directory permission settings; and settings for functions, ports, protocols, services, and remote connections.

Fix Text

Make a backup of the PAM SUDO settings using the following command: cp /etc/pam.d/login /etc/pam.d/sudo_backup_`date "+%Y-%m-%d_%H:%M"` Replace the contents of "/etc/pam.d/login" with the following: # sudo: auth account password session auth sufficient pam_smartcard.so #auth required pam_opendirectory.so auth required pam_deny.so account required pam_permit.so password required pam_deny.so session required pam_permit.so

Check Content

To verify that the "sudo" command has been configured to require smart card authentication, run the following command: cat /etc/pam.d/sudo | grep -i pam_smartcard.so If the text that returns does not include the line, "auth sufficient pam_smartcard.so" at the TOP of the listing, this is a finding.

Removed

V-209629

The macOS system must be configured with system log files owned by root and group-owned by wheel or admin.

Finding ID
AOSX-14-004001
Rule ID
SV-209629r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000206-GPOS-00084
CCI
CCI-001314
Target Key
(None)
Documentable
No
Discussion

System logs should only be readable by root or admin users. System logs frequently contain sensitive information that could be used by an attacker. Setting the correct owner mitigates this risk.

Fix Text

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.

Check Content

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.

Removed

V-209630

The macOS system must be configured with system log files set to mode 640 or less permissive.

Finding ID
AOSX-14-004002
Rule ID
SV-209630r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000206-GPOS-00084
CCI
CCI-001314
Target Key
(None)
Documentable
No
Discussion

System logs should only be readable by root or admin users. System logs frequently contain sensitive information that could be used by an attacker. Setting the correct permissions mitigates this risk.

Fix Text

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.

Check Content

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.

Removed

V-209633

The macOS system must authenticate all endpoint devices before establishing a local, remote, and/or network connection using bidirectional authentication that is cryptographically based.

Finding ID
AOSX-14-004020
Rule ID
SV-209633r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000379-GPOS-00164
CCI
CCI-001967
Target Key
(None)
Documentable
No
Discussion

Without authenticating devices, unidentified or unknown devices may be introduced, thereby facilitating malicious activity. Bidirectional authentication provides stronger safeguards to validate the identity of other devices for connections that are of greater risk. Bidirectional authentication solutions include, but are not limited to, IEEE 802.1x and Extensible Authentication Protocol [EAP], RADIUS server with EAP-Transport Layer Security [TLS] authentication, Kerberos, and SSL mutual authentication. A local connection is any connection with a device communicating without the use of a network. A network connection is any connection with a device that communicates through a network (e.g., local area network, wide area network, or the Internet). A remote connection is any connection with a device communicating through an external network (e.g., the Internet). Because of the challenges of applying this requirement on a large scale, organizations are encouraged to only apply this requirement to those limited number (and type) of devices that truly need to support this capability.

Fix Text

To disable a network device, run the following command: /usr/bin/sudo /usr/sbin/networksetup -setnetworkserviceenabled Wi-Fi off

Check Content

For systems where Wi-Fi is not approved for use, run the following command to disable the Wi-Fi service: To list the network devices that are enabled on the system, run the following command: /usr/bin/sudo /usr/sbin/networksetup -listallnetworkservices If the Wi-Fi service name is not preceded by an asterisk(*), this is a finding.

Removed

V-209634

The macOS system must be configured with the sudoers file configured to authenticate users on a per -tty basis.

Finding ID
AOSX-14-004021
Rule ID
SV-209634r610285_rule
Severity
Cat I
CCE
(None)
Group Title
SRG-OS-000480-GPOS-00227
CCI
CCI-000366
Target Key
(None)
Documentable
No
Discussion

The "sudo" command must be configured to prompt for the administrator's password at least once in each newly opened Terminal window or remote logon session, as this prevents a malicious user from taking advantage of an unlocked computer or an abandoned logon session to bypass the normal password prompt requirement. Without the "tty_tickets" option, all open local and remote logon sessions would be authenticated to use sudo without a password for the duration of the configured password timeout window.

Fix Text

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.

Check Content

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.

Removed

V-209635

The macOS system must enable System Integrity Protection.

Finding ID
AOSX-14-005001
Rule ID
SV-209635r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000051-GPOS-00024
CCI
CCI-001882
Target Key
(None)
Documentable
No
Discussion

System Integrity Protection (SIP) is vital to the protection of the integrity of macOS. SIP restricts what actions can be performed by administrative users, including root, against protected parts of the operating system. SIP protects all system binaries, including audit tools, from unauthorized access by preventing the modification or deletion of system binaries, or the changing of the permissions associated with those binaries. SIP limits the privileges to change software resident within software libraries to processes that have signed by Apple and have special entitlements to write to system files, such as Apple software updates and Apple installers. By protecting audit binaries, SIP ensures the presence of an audit record generation capability for DoD-defined auditable events for all operating system components and supports on-demand and after-the-fact reporting requirements. Satisfies: SRG-OS-000051-GPOS-00024, SRG-OS-000054-GPOS-00025, SRG-OS-000062-GPOS-00031, SRG-OS-000122-GPOS-00063, SRG-OS-000256-GPOS-00097, SRG-OS-000257-GPOS-00098, SRG-OS-000258-GPOS-00099, SRG-OS-000259-GPOS-00100, SRG-OS-000348-GPOS-00136, SRG-OS-000349-GPOS-00137, SRG-OS-000350-GPOS-00138, SRG-OS-000351-GPOS-00139, SRG-OS-000352-GPOS-00140, SRG-OS-000353-GPOS-00141, SRG-OS-000354-GPOS-00142

Fix Text

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

Check Content

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

Removed

V-209636

The macOS system must implement cryptographic mechanisms to protect the confidentiality and integrity of all information at rest.

Finding ID
AOSX-14-005020
Rule ID
SV-209636r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000185-GPOS-00079
CCI
CCI-002476
Target Key
(None)
Documentable
No
Discussion

Information at rest refers to the state of information when it is located on a secondary storage device (e.g., disk drive and tape drive) within an organizational information system. Mobile devices, laptops, desktops, and storage devices can be lost or stolen, and the contents of their data storage (e.g., hard drives and non-volatile memory) can be read, copied, or altered. By encrypting the system hard drive, the confidentiality and integrity of any data stored on the system is ensured. FileVault Disk Encryption mitigates this risk. Satisfies: SRG-OS-000185-GPOS-00079, SRG-OS-000404-GPOS-00183, SRG-OS-000405-GPOS-00184

Fix Text

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.

Check Content

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.

Removed

V-209637

The macOS Application Firewall must be enabled.

Finding ID
AOSX-14-005050
Rule ID
SV-209637r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000480-GPOS-00232
CCI
CCI-000366
Target Key
(None)
Documentable
No
Discussion

Firewalls protect computers from network attacks by blocking or limiting access to open network ports. Application firewalls limit which applications are allowed to communicate over the network.

Fix Text

To enable the firewall, run the following command: /usr/bin/sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate on

Check Content

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.

Removed

V-225094

The macOS system must be configured with dedicated user accounts to decrypt the hard disk upon startup.

Finding ID
AOSX-14-000032
Rule ID
SV-225094r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000480-GPOS-00227
CCI
CCI-002143
Target Key
(None)
Documentable
No
Discussion

When "FileVault" and Multifactor Authentication are configured on the operating system, a dedicated user must be configured to ensure that the implemented Multifactor Authentication rules are enforced. If a dedicated user is not configured to decrypt the hard disk upon startup, the system will allow a user to bypass Multifactor Authentication rules during initial startup and first login.

Fix Text

Create an authorized user account that will be used to unlock the disk on startup. Disable the login ability of the newly created user account: # sudo dscl . append /Users/<FileVault_User> AuthenticationAuthority DisabledUser Disable FileVaults Auto-login feature: # sudo defaults write /Library/Preferences/com.apple.loginwindow DisableFDEAutologin -bool YES Remove all FileVault login access from each user account defined on the system that is not a designated FileVault user: # sudo fdesetup remove -user <username>

Check Content

Retrieve a list of authorized FileVault users: # sudo fdesetup list fvuser,85F41F44-22B3-6CB7-85A1-BCC2EA2B887A If any unauthorized users are listed, this is a finding. Verify that the defined FileVault users are disabled: Note: This procedure must be ran for each defined FileVault User. # sudo dscl . read /Users/<FileVault_User> AuthenticationAuthority | grep "DisabledUser" AuthenticationAuthority: ;ShadowHash;HASHLIST:<SALTED-SHA512-PBKDF2,SRP-RFC5054-4096-SHA512-PBKDF2> ;Kerberosv5;;unlock@LKDC:SHA1.20BABA05A6B1A86A8C57581A8487596640A3E37B;LKDC:SHA1.20CEBE04A5B1D92D8C58189D8487593350D3A40A; ;SecureToken; DisabledUser If the FileVault user is not disabled, this is a finding. Verify that password forwarding has been disabled on the system: # sudo defaults read /Library/Preferences/com.apple.loginwindow | grep "DisableFDEAutologin" DisableFDEAutologin = 1; If "DisableFDEAutologin" is not set to a value of "1", this is a finding.

Removed

V-233628

The macOS system must implement approved Ciphers to protect the confidentiality of SSH connections.

Finding ID
AOSX-14-000054
Rule ID
SV-233628r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000033-GPOS-00014
CCI
CCI-002890
Target Key
(None)
Documentable
No
Discussion

Unapproved mechanisms for authentication to the cryptographic module are not verified, and therefore cannot be relied upon to provide confidentiality or integrity, resulting in the compromise of DoD data. Operating systems using encryption are required to use FIPS-compliant mechanisms for authenticating to cryptographic modules. The implementation of OpenSSH that is included with macOS does not utilize a FIPS 140-2 validated cryptographic module. While the listed ciphers are FIPS 140-2 approved algorithms, the module implementing them has not been validated. By specifying a cipher list with the order of ciphers being in a “strongest to weakest” orientation, the system will automatically attempt to use the strongest cipher for securing SSH connections. Satisfies: SRG-OS-000033-GPOS-00014, SRG-OS-000120-GPOS-00061, SRG-OS-000125-GPOS-00065, SRG-OS-000250-GPOS-00093, SRG-OS-000393-GPOS-00173, SRG-OS-000394-GPOS-00174

Fix Text

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.

Check Content

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.

Removed

V-233691

The macOS system must use only Message Authentication Codes (MACs) employing FIPS 140-2 validated cryptographic hash algorithms.

Finding ID
AOSX-14-000055
Rule ID
SV-233691r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000033-GPOS-00014
CCI
CCI-003123
Target Key
(None)
Documentable
No
Discussion

Unapproved mechanisms for authentication to the cryptographic module are not verified, and therefore cannot be relied upon to provide confidentiality or integrity, resulting in the compromise of DoD data. Operating systems using encryption are required to use FIPS-compliant mechanisms for authenticating to cryptographic modules. The implementation of OpenSSH that is included with macOS does not utilize a FIPS 140-2 validated cryptographic module. While the listed MACs are FIPS 140-2 approved algorithms, the module implementing them has not been validated. By specifying a Keyed-Hash Message Authentication Code list with the order of hashes being in a “strongest to weakest” orientation, the system will automatically attempt to use the strongest hash for securing SSH connections. Satisfies: SRG-OS-000033-GPOS-00014, SRG-OS-000120-GPOS-00061, SRG-OS-000125-GPOS-00065, SRG-OS-000250-GPOS-00093, SRG-OS-000393-GPOS-00173, SRG-OS-000394-GPOS-00174

Fix Text

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.

Check Content

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.

Removed

V-233775

The macOS system must implement an approved Key Exchange Algorithm.

Finding ID
AOSX-14-000056
Rule ID
SV-233775r610285_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000033-GPOS-00014
CCI
CCI-003123
Target Key
(None)
Documentable
No
Discussion

Unapproved mechanisms for authentication to the cryptographic module are not verified, and therefore cannot be relied upon to provide confidentiality or integrity, resulting in the compromise of DoD data. Operating systems using encryption are required to use FIPS-compliant mechanisms for authenticating to cryptographic modules. The implementation of OpenSSH that is included with macOS does not utilize a FIPS 140-2 validated cryptographic module. While the listed Key Exchange Algorithms are FIPS 140-2 approved, the module implementing them has not been validated. By specifying a Key Exchange Algorithm list with the order of hashes being in a “strongest to weakest” orientation, the system will automatically attempt to use the strongest Key Exchange Algorithm for securing SSH connections. Satisfies: SRG-OS-000033-GPOS-00014, SRG-OS-000120-GPOS-00061, SRG-OS-000125-GPOS-00065, SRG-OS-000250-GPOS-00093, SRG-OS-000393-GPOS-00173, SRG-OS-000394-GPOS-00174

Fix Text

Configure SSH to use a secure Key Exchange Algorithm. To ensure that "KexAlgorithms" set correctly, run the following command: /usr/bin/sudo /usr/bin/grep -q '^KexAlgorithms' /etc/ssh/sshd_config && /usr/bin/sudo /usr/bin/sed -i.bak 's/^KexAlgorithms.*/KexAlgorithms diffie-hellman-group-exchange-sha256/' /etc/ssh/sshd_config || /usr/bin/sudo /usr/bin/sed -i.bak '/.*Ciphers and keying.*/a\'$'\n''KexAlgorithms diffie-hellman-group-exchange-sha256'$'\n' /etc/ssh/sshd_config The SSH service must be restarted for changes to take effect.

Check Content

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.

Removed

V-234699

The macOS system must authenticate peripherals before establishing a connection.

Finding ID
AOSX-14-002069
Rule ID
SV-234699r615888_rule
Severity
Cat II
CCE
(None)
Group Title
SRG-OS-000378-GPOS-00163
CCI
CCI-001958
Target Key
(None)
Documentable
No
Discussion

Without authenticating devices, unidentified or unknown devices may be introduced, thereby facilitating malicious activity. Peripherals include, but are not limited to, such devices as flash drives, external storage, and printers.

Fix Text

To ensure that authentication is required to access all system level preference panes use the following procedure: Copy the authorization database to a file using the following command: /usr/bin/sudo /usr/bin/security authorizationdb read system.preferences > ~/Desktop/authdb.txt Edit the file to change: <key>shared</key> <true/> To read: <key>shared</key> <false/> Reload the authorization database with the following command: /usr/bin/sudo /usr/bin/security authorizationdb write system.preferences < ~/Desktop/authdb.txt

Check Content

To check that macOS is configured to require authentication to all system preference panes, use the following commands: /usr/bin/sudo /usr/bin/security authorizationdb read system.preferences | grep -A1 shared If what is returned does not include the following, this is a finding. <key>shared</key> <false/>