🚨 CMMC Phase One started November 10! Here's everything you need to know →

How to Configure Windows, macOS, and Linux to Enforce Removable Media Restrictions — NIST SP 800-171 REV.2 / CMMC 2.0 Level 2 - Control - MP.L2-3.8.7

Step-by-step guidance to configure Windows, macOS, and Linux to control removable media access and meet NIST SP 800-171 / CMMC 2.0 Level 2 (MP.L2-3.8.7) requirements.

April 15, 2026
5 min read

Share:

Schedule Your Free Compliance Consultation

Feeling overwhelmed by compliance requirements? Not sure where to start? Get expert guidance tailored to your specific needs in just 15 minutes.

Personalized Compliance Roadmap
Expert Answers to Your Questions
No Obligation, 100% Free

Limited spots available!

NIST SP 800-171/CMMC MP.L2-3.8.7 requires organizations handling Controlled Unclassified Information (CUI) to enforce restrictions on removable media; this post shows how to translate that control into practical configurations for Windows, macOS, and Linux along with monitoring, exception handling, and real-world small-business examples.

Practical implementation overview for Compliance Framework

Treat MP.L2-3.8.7 as a combination of policy + technical enforcement: define a written removable-media policy (deny-by-default, allow-by-exception), deploy technical controls to enforce it, require encryption for any permitted media, and log all insert/mount events for audit. For small businesses that must meet the Compliance Framework, pick a single centralized management approach where possible (Microsoft Intune/Group Policy for Windows, Jamf/Apple MDM for macOS, and Ansible/Puppet/Canonical Landscape for Linux) and apply a consistent control set: block or read-only unauthorized devices, allow-list approved device IDs, require full-disk encryption for approved media, and capture insertion/mount events in your SIEM.

Windows: Group Policy, Intune, BitLocker, and Endpoint DLP

Windows provides multiple layers to enforce removable-media restrictions. Use Group Policy (or Intune Configuration Profiles) to block or restrict classes of removable storage: Computer Configuration → Administrative Templates → System → Removable Storage Access — enable "Removable Disks: Deny read access" and "Removable Disks: Deny write access" as appropriate. For device-installation-level controls, use Computer Configuration → Administrative Templates → System → Device Installation → Device Installation Restrictions to "Prevent installation of removable devices" or apply device ID-based DACLs.

For endpoint encryption, require BitLocker To Go for any allowed removable drives (GPO: Computer Configuration → Administrative Templates → Windows Components → BitLocker Drive Encryption → Removable Data Drives). Example BitLocker To Go GPO settings: enforce password protector, deny write access to unencrypted removable drives, and escrow recovery keys to Active Directory or Intune. For more granular data control, use Microsoft Defender for Endpoint (Endpoint DLP) to block copy/paste and file moves to removable drives by policy. A simple local registry approach to write-protect USBs (useful for staging) is:

New-Item -Path HKLM:\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies -Force; Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies -Name WriteProtect -Value 1 -Type DWord

Note: the registry key is a blunt instrument and affects all USB storage on the host. Prefer GPO/Intune for enterprise scale, and maintain an exception process (device allow-list via Device Instance ID in GPO or Intune's hardware ID device restriction profiles).

macOS: MDM profiles, Jamf policies, encryption, and lightweight blocking scripts

Apple platforms are managed best via an MDM. Use Jamf or another Apple MDM to push profiles that enforce FileVault (FileVault 2) and require external storage to be encrypted if used. For blocking/remediation you have two practical choices: 1) deploy an endpoint DLP/agent that enforces USB blocking (Symantec, Zscaler, Forcepoint, etc.), or 2) use an MDM-driven script/policy that unmounts unauthorized devices on connect. A simple approach for smaller shops without DLP: a jamf policy or launchd job that runs a script which detects new external disks and unmounts them unless they match an approved allow-list (by volume UUID or vendor/product ID). Example minimal unmount script (illustrative):

for disk in $(diskutil list external physical | awk '/\\/dev\\/disk/ {print $1}'); do diskutil unmountDisk $disk; done

Also deploy osquery on macOS to monitor USB events: a sample osquery query to detect new USB devices is: select * from usb_devices where datetime(time, 'unixepoch') > (strftime('%s','now') - 3600);. Combine that with a central log collector to alert on unauthorized device insertion. For macOS, rely on a formal exception process tied to MDM-managed allow-lists rather than ad-hoc local changes.

Linux: udev rules, kernel-module blacklisting, and auditd

On Linux, enforce restrictions with udev rules and kernel module controls. Common, effective options: blacklist the usb-storage module (prevents most USB mass-storage devices), create udev rules that set the authorized attribute to 0 for devices that match the USB Mass Storage class, or implement allow-listing using vendor/product IDs. Example kernel blacklist (Debian/Ubuntu/CentOS): append a file /etc/modprobe.d/blacklist-usb-storage.conf containing install usb-storage /bin/true and update initramfs if required. Example udev rule (blocks mass storage devices):

SUBSYSTEM=="usb", ATTR{bInterfaceClass}=="08", RUN+="/bin/sh -c 'echo 0 > /sys$DEVPATH/authorized' "

For monitoring and auditing, add auditd rules to capture mount events and device node writes, for example: auditctl -w /dev/disk -p wa -k removable_media and monitor dmesg/kernel logs for USB attach/detach messages. Use Ansible or Puppet to distribute rules and manage exceptions centrally; maintain a controlled allow-list file for vendor/product IDs and ensure that any allowed device is encrypted and tracked.

Compliance tips, best practices, and small-business scenarios

Best practices that help small businesses meet Compliance Framework expectations include: implement deny-by-default with an exceptions approval workflow, require and verify encryption on allowed media (BitLocker To Go, FileVault+APFS encrypted volumes, LUKS for Linux), log all insertion/mount events to a centralized SIEM for 1-year retention (or as required by contract), and limit administrative rights so users cannot disable controls locally. Example small-business scenario: a 30-person engineering firm that handles CUI design files should block all direct copy to USB by default, allow a single inventory-controlled encrypted USB device per engineer via allow-list and BitLocker To Go, and require managers to approve temporary exceptions in the ticketing system with automatic log retention and monthly review.

Operational controls and exception handling

Operationally, pair technical controls with these policies: training (brief users about the risk of removable media), an exception ticket and review process (time-limited approvals, device owner and serial number tracked), and periodic audits (monthly device-list reconciliation). Use endpoint inventory (e.g., Intune/Jamf/osquery) to verify the presence of required protection (BitLocker/FileVault/LUKS) and produce evidence for auditors: policy templates, GPO/MDM profiles, allow-list registry/manifest, SIEM logs showing mount/deny events, and approval tickets for exceptions.

Risks of not implementing MP.L2-3.8.7

Failing to enforce removable media restrictions exposes organizations to high-risk outcomes: data exfiltration (an insider copying CUI to a USB drive), malware introduction (ransomware or firmware-level attacks delivered via thumb drives), lost devices containing unencrypted CUI, and ultimately compliance failures that can lead to contract loss, financial penalties, or mandatory remediation. For small businesses, a single lost unencrypted drive can trigger a breach notification, damage reputation, and jeopardize DoD subcontracting eligibility under CMMC requirements.

In summary: document your removable-media policy, implement deny-by-default technical controls across Windows (GPO/Intune + BitLocker + Endpoint DLP), macOS (MDM + FileVault + DLP or scripted unmounts), and Linux (udev + kernel-module blacklist + auditd), keep an allow-list and an exception workflow, and centralize logging for audit evidence. These practical steps will help you meet NIST SP 800-171 / CMMC MP.L2-3.8.7 in a way that is scalable for small businesses and defensible during assessments.

 

Quick & Simple

Discover Our Cybersecurity Compliance Solutions:

Whether you need to meet and maintain your compliance requirements, help your clients meet them, or verify supplier compliance we have the expertise and solution for you

 CMMC Level 1 Compliance App

CMMC Level 1 Compliance

Become compliant, provide compliance services, or verify partner compliance with CMMC Level 1 Basic Safeguarding of Covered Contractor Information Systems requirements.
 NIST SP 800-171 & CMMC Level 2 Compliance App

NIST SP 800-171 & CMMC Level 2 Compliance

Become compliant, provide compliance services, or verify partner compliance with NIST SP 800-171 and CMMC Level 2 requirements.
 HIPAA Compliance App

HIPAA Compliance

Become compliant, provide compliance services, or verify partner compliance with HIPAA security rule requirements.
 ISO 27001 Compliance App

ISO 27001 Compliance

Become compliant, provide compliance services, or verify partner compliance with ISO 27001 requirements.
 FAR 52.204-21 Compliance App

FAR 52.204-21 Compliance

Become compliant, provide compliance services, or verify partner compliance with FAR 52.204-21 Basic Safeguarding of Covered Contractor Information Systems requirements.
 
Hello! How can we help today? 😃

Chat with Lakeridge

We typically reply within minutes