Guide to the Secure Configuration of Apple macOS 10.15
The Compliance As Code Project
https://github.com/ComplianceAsCode/content
https://github.com/ComplianceAsCode/content
This guide presents a catalog of security-relevant
configuration settings for Apple macOS 10.15. It is a rendering of
content structured in the eXtensible Configuration Checklist Description Format (XCCDF)
in order to support security automation.
Providing system administrators with such guidance informs them how to securely configure systems under their control in a variety of network roles. Policy makers and baseline creators can use this catalog of settings, with its associated references to higher-level security control catalogs, in order to assist them in security baseline creation. This guide is a catalog, not a checklist, and satisfaction of every item is not likely to be possible or sensible in many operational scenarios. However, the XCCDF format enables granular selection and adjustment of settings, and their association with OVAL and OCIL content provides an automated checking capability. Transformations of this document, and its associated automated checking content, are capable of providing baselines that meet a diverse set of policy objectives. Some example XCCDF Profiles, which are selections of items that form checklists and can be used as baselines, are available with this guide. They can be processed, in an automated fashion, with tools that support the Security Content Automation Protocol (SCAP). The DISA STIG, which provides required settings for US Department of Defense systems, is one example of a baseline created from this guidance.
Providing system administrators with such guidance informs them how to securely configure systems under their control in a variety of network roles. Policy makers and baseline creators can use this catalog of settings, with its associated references to higher-level security control catalogs, in order to assist them in security baseline creation. This guide is a catalog, not a checklist, and satisfaction of every item is not likely to be possible or sensible in many operational scenarios. However, the XCCDF format enables granular selection and adjustment of settings, and their association with OVAL and OCIL content provides an automated checking capability. Transformations of this document, and its associated automated checking content, are capable of providing baselines that meet a diverse set of policy objectives. Some example XCCDF Profiles, which are selections of items that form checklists and can be used as baselines, are available with this guide. They can be processed, in an automated fashion, with tools that support the Security Content Automation Protocol (SCAP). The DISA STIG, which provides required settings for US Department of Defense systems, is one example of a baseline created from this guidance.
Do not attempt to implement any of the settings in
this guide without first testing them in a non-operational environment. The
creators of this guidance assume no responsibility whatsoever for its use by
other parties, and makes no guarantees, expressed or implied, about its
quality, reliability, or any other characteristic.
Profile Information
Profile ID | (default) |
---|
CPE Platforms
- cpe:/o:apple:macos:10.15
Revision History
Current version: 0.1.54
- draft (as of 2021-02-12)
Table of Contents
- Remediation functions used by the SCAP Security Guide Project
- Services
- Introduction
- System Accounting with audit
Checklist
Group Guide to the Secure Configuration of Apple macOS 10.15 |
Group Remediation functions used by the SCAP Security Guide Project |
[ref]
XCCDF form of the various remediation functions as used by remediation scripts from the SCAP Security Guide Project. |
Group Services |
[ref]
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. |
Group Introduction |
[ref]
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. |
Group General Principles |
[ref]
The following general principles motivate much of the advice in this
guide and should also influence any configuration decisions that are
not explicitly covered. |
Group Minimize Software to Minimize Vulnerability |
[ref]
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. |
Group Encrypt Transmitted Data Whenever Possible |
[ref]
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. |
Group Configure Security Tools to Improve System Robustness |
[ref]
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. |
Group Run Different Network Services on Separate Systems |
[ref]
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. |
Group Least Privilege |
[ref]
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. |
Group How to Use This Guide |
[ref]
Readers should heed the following points when using the guide. |
Group Test in Non-Production Environment |
[ref]
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. |
Group Reboot Required |
[ref]
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. |
Group Root Shell Environment Assumed |
[ref]
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. |
Group Read Sections Completely and in Order |
[ref]
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. |
Group Formatting Conventions |
[ref]
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. |
Group System Accounting with audit |
[ref]
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. |
Group Configure auditd |
[ref]
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. |
Apple, iPadOS, tvOS, watchOS, macOS and OS X are either registered
trademarks or trademarks of Apple, Inc. in the United States and other
countries. All other names are registered trademarks or trademarks of their
respective companies.