NIST 800-171 • LEVEL 2 • CONFIGURATION MANAGEMENT

3.4.7Restrict, Disable, or Prevent the Use of Nonessential Programs, Functions, Ports, Protocols, and Services

Restrict, disable, or prevent the use of nonessential programs, functions, ports, protocols, and services.

CMMC Practice Mapping

NIST 800-53 Controls

Assessment Objectives

Assessment objectives not available for this requirement.

Practitioner Notes

This practice reinforces the "least functionality" concept: actively restrict, disable, or prevent anything nonessential from running on your systems. Think of it as the enforcement arm of CM.L2-3.4.6 — you identified what is unnecessary, now you block it.

Example 1: Use Windows Defender Application Control (WDAC) or AppLocker to block unauthorized executables. In Group Policy, navigate to Computer Configuration > Windows Settings > Security Settings > Application Control Policies > AppLocker. Create default rules that allow Windows and Program Files paths, then add explicit deny rules for user-writable directories like %TEMP% and %APPDATA%.

Example 2: On Linux systems, use systemctl list-unit-files --type=service to identify all enabled services. Disable nonessential ones with systemctl disable --now [service]. For ports, configure firewalld or iptables to drop all inbound traffic except explicitly allowed ports, and run ss -tlnp periodically to verify no unexpected listeners appear.