mSCP 2.0 (Beta)
The newest version, runs in a container or locally (with dependencies), supports all macOS/iOS/visionOS versions in one place without switching branches.
Decide which version to set up with, then follow the steps below.
mSCP 2.0 (Beta)
The newest version, runs in a container or locally (with dependencies), supports all macOS/iOS/visionOS versions in one place without switching branches.
mSCP 1.0
The stable release, runs locally (with dependencies), uses separate branches for each macOS/iOS/visionOS version and requires switching branches to change versions.
Requirements:
Create Local Folders
mkdir -p ~/Desktop/mscp/customRun the Container
Using Apple Container:
container run -it \ --volume ~/Desktop/mscp:/mscp/build \ --volume ~/Desktop/mscp/custom:/mscp/custom \ ghcr.io/usnistgov/macos_security:latestStart the container service (required before first run):
container system startExit the container:
exitStop the container service:
container system stopCheck container service status:
container system statusOr Using Docker:
# Note: Docker requires full paths for volume mountsdocker run -it \ --volume /Users/<username>/Desktop/mscp:/mscp/build \ --volume /Users/<username>/Desktop/mscp/custom:/mscp/custom \ ghcr.io/usnistgov/macos_security:latestGenerate Content
# Create a baseline./mscp.py baseline -k cis_lvl1# Generate guidance with all outputs./mscp.py guidance custom/baselines/cis_lvl1_macos_26.0.yaml -A# Output: MSCP DOCUMENT GENERATION COMPLETE! All documents in: /build/cis_lvl1_macos_26.0/Manual setup with Python and Ruby.
Requirements:
Clone the Repository
git clone -b dev_2.0 https://github.com/usnistgov/macos_security.gitcd macos_securityPython Setup
# Create virtual environmentpython3 -m venv .venvsource .venv/bin/activate
# Update and install toolspython3 -m pip install --upgrade pip setuptools wheelpython3 -m pip install --upgrade -r requirements.txtRuby Setup
bundle config path mscp_gemsbundle config bin mscp_gems/binbundle installbundle binstubs --allGenerate Content
# Create a baseline./mscp.py baseline -k cis_lvl1
# Generate guidance with all outputs./mscp.py guidance custom/baselines/cis_lvl1_macos_26.0.yaml -A
# When done, deactivate the virtual environmentdeactivateRequirements:
Clone the Repository
git clone https://github.com/usnistgov/macos_security.gitcd macos_securitygit checkout sequoiaReplace sequoia with your target macOS version (sequoia, sonoma, ventura, etc.).
Python Setup
# Create virtual environmentpython3 -m venv .venvsource .venv/bin/activate
# Install requirementspip3 install -r requirements.txtCheck your Python version:
python3 --versionCheck version inside the venv:
source .venv/bin/activatepython --versionList all installed Python versions:
ls /opt/homebrew/bin/python3*ls /usr/local/bin/python3*Create venv with a specific version:
# Remove old venv if neededrm -rf .venv
# Use full path to the Python version you want/opt/homebrew/bin/python3.13 -m venv .venvsource .venv/bin/activateRuby Setup (Optional — for PDF output)
bundle install --binstubs --path mscp_gemsVerify Setup
Run this command to confirm everything works:
./scripts/generate_baseline.py -l
# When done, deactivate the virtual environmentdeactivateYou should see a list of available baselines.
With the project set up, you can:
Or explore specific topics: