Skip to content
ATO Pathways
Log In
Overview
Search
Catalogs
SCAP
OSCAL
Catalogs
Profiles
Documents
References
Knowledge Base
Platform Documentation
Compliance Dictionary
Platform Changelog
About
Catalogs
XCCDF
Guide to the Secure Configuration of Apple macOS 10.15
Guide to the Secure Configuration of Apple macOS 10.15
An XCCDF Benchmark
Details
Profiles
Items
Prose
2 rules organized in 16 groups
Introduction
The purpose of this guidance is to provide security configuration recommendations and baselines for the Apple macOS 10.15 operating system. Recommended settings for the basic operating system are provided, as well as for many network services that the system can provide to other systems. The guide is intended for system administrators. Readers are assumed to possess basic system administration skills for Unix-like systems, as well as some familiarity with the product's documentation and administration conventions. Some instructions within this guide are complex. All directions should be followed completely and with understanding of their effects in order to avoid serious adverse effects on the system and its security.
General Principles
The following general principles motivate much of the advice in this guide and should also influence any configuration decisions that are not explicitly covered.
Encrypt Transmitted Data Whenever Possible
Data transmitted over a network, whether wired or wireless, is susceptible to passive monitoring. Whenever practical solutions for encrypting such data exist, they should be applied. Even if data is expected to be transmitted only over a local network, it should still be encrypted. Encrypting authentication data, such as passwords, is particularly important. Networks of Apple macOS 10.15 machines can and should be configured so that no unencrypted authentication data is ever transmitted between machines.
Least Privilege
Grant the least privilege necessary for user accounts and software to perform tasks. For example,
sudo
can be implemented to limit authorization to super user accounts on the system only to designated personnel. Another example is to limit logins on server systems to only those administrators who need to log into them in order to perform administration tasks.
Minimize Software to Minimize Vulnerability
The simplest way to avoid vulnerabilities in software is to avoid installing that software. Apple macOS 10.15 allows for careful management of the set of software packages installed on a system. Installed software contributes to system vulnerability in several ways. Packages that include setuid programs may provide local attackers a potential path to privilege escalation. Packages that include network services may give this opportunity to network-based attackers. Packages that include programs which are predictably executed by local users (e.g. after graphical login) may provide opportunities for trojan horses or other attack code to be run undetected. The number of software packages installed on a system can almost always be significantly pruned to include only the software for which there is an environmental or operational need.
Run Different Network Services on Separate Systems
Whenever possible, a server should be dedicated to serving exactly one network service. This limits the number of other services that can be compromised in the event that an attacker is able to successfully exploit a software flaw in one network service.
Configure Security Tools to Improve System Robustness
Several tools exist which can be effectively used to improve a system's resistance to and detection of unknown attacks. These tools can improve robustness against attack at the cost of relatively little configuration effort. In particular, this guide recommends and discusses the use of host-based firewalling, a logging, and auditing infrastructure for detection of problems.
How to Use This Guide
Readers should heed the following points when using the guide.
Formatting Conventions
Commands intended for shell execution, as well as configuration file text, are featured in a
monospace font
.
Italics
are used to indicate instances where the system administrator must substitute the appropriate information into a command or configuration file.
Read Sections Completely and in Order
Each section may build on information and recommendations discussed in prior sections. Each section should be read and understood completely; instructions should never be blindly applied. Relevant discussion may occur after instructions for an action.
Reboot Required
A system reboot is implicitly required after some actions in order to complete the reconfiguration of the system. In many cases, the changes will not take effect until a reboot is performed. In order to ensure that changes are applied properly and to test functionality, always reboot the system after applying a set of recommendations from this guide.
Root Shell Environment Assumed
Most of the actions listed in this document are written with the assumption that they will be executed by the root user running the
/bin/bash
shell. Commands preceded with a hash mark (#) assume that the administrator will execute the commands as root, i.e. apply the command via
sudo
whenever possible, or use
su
to gain root privileges if
sudo
cannot be used. Commands which can be executed as a non-root user are are preceded by a dollar sign ($) prompt.
Test in Non-Production Environment
This guidance should always be tested in a non-production environment before deployment. This test environment should simulate the setup in which the system will be deployed as closely as possible.
Services
The best protection against vulnerable software is running less software. This section describes how to review the software which Apple macOS 10.15 installs on a system and disable software which is not needed. It then enumerates the software packages installed on a default Apple macOS 10.15 system and provides guidance about which ones can be safely disabled.
Apple macOS 10.15 provides a convenient minimal install option that essentially installs the bare necessities for a functional system. When building Apple macOS 10.15 systems, it is highly recommended to select the minimal packages and then build up the system from there.
System Accounting with audit
2 Rules
The Basic Security Module (BSM) security audit API and file format is Apple's auditing system. The audit() function submits a record to the kernel for inclusion in the global audit trail. The record must already be in BSM format. To protect the integrity of the audit trail, this system call must be made with sufficient privileges. Libbsm can be used to create and manipulate BSM data. Length is the length in bytes of the BSM record and record points to the data. The audit service provides substantial capabilities for recording system activities. Secure networks often have substantial auditing requirements, and
auditd
can be configured to meet these requirements.
Enable audit Service
High Severity
The
audit
service is an essential userspace component of the auditing system, as it is responsible for writing audit records to disk.
Configure auditd
1 Rule
The
auditd
program can perform comprehensive monitoring of system activity. This section describes recommended configuration settings for comprehensive auditing, but a full description of the auditing system's capabilities is beyond the scope of this guide.
Shutdown System When Auditing Failures Occur
Medium Severity
The macOS system must shut down by default upon audit failure unless availability is an overriding concern.