{
  "title": "How to Configure Windows AppLocker and Group Policy for NIST SP 800-171 REV.2 / CMMC 2.0 Level 2 - Control - CM.L2-3.4.8: Practical Implementation Steps",
  "date": "2026-04-04",
  "author": "Lakeridge Technologies",
  "featured_image": "/assets/images/blog/2026/4/how-to-configure-windows-applocker-and-group-policy-for-nist-sp-800-171-rev2-cmmc-20-level-2-control-cml2-348-practical-implementation-steps.jpg",
  "content": {
    "full_html": "<p>This post gives a practical, actionable walkthrough for configuring Windows AppLocker and Group Policy to satisfy NIST SP 800-171 Rev.2 / CMMC 2.0 Level 2 control CM.L2-3.4.8 (control of software execution)—covering prerequisites, policy design, test-to-enforce deployment, logging/monitoring, and small-business scenarios so you can implement application control that maps to your Compliance Framework obligations.</p>\n\n<h2>What CM.L2-3.4.8 requires and how AppLocker fits</h2>\n<p>CM.L2-3.4.8 in the NIST/CMMC mapping requires organizations to restrict, manage, and monitor the installation and execution of unauthorized software. AppLocker (Windows Application Control) is a practical mechanism to implement that requirement for domain-joined Windows endpoints: it enforces an allow-list model (recommended for compliance), provides audit vs. enforce modes, and integrates with Group Policy so you can centrally manage rules that align with your Compliance Framework policies and evidence requirements.</p>\n\n<h2>Prerequisites and initial planning</h2>\n<p>Before creating policies: inventory your environment (SCCM/Intune, Software Inventory, or a manual app list), confirm OS editions (AppLocker is fully supported on Windows Enterprise/Education and Windows Server; on Pro editions use Software Restriction Policies or consider Intune WDAC alternatives), and assemble a pilot group. Have Domain Admin or delegated GPO privileges and a baseline list of approved vendor-signed apps (Office, Adobe, browser executables) and in-house binaries. Document the intended policy as part of your Compliance Framework artifacts (policy statement, scope, change control process, and exceptions handling).</p>\n\n<h2>Step-by-step AppLocker + Group Policy configuration</h2>\n<p>Implement via Group Policy Management Console (GPMC) using this sequence: 1) Create a new GPO in GPMC targeted at a pilot OU or security group (do not apply to all users/devices immediately). 2) Navigate to Computer Configuration -> Policies -> Windows Settings -> Security Settings -> Application Control Policies -> AppLocker. 3) Create rule collections for Executable, Windows Installer, Script, DLL, and Packaged app; start by creating the default rules (Allow everyone Program Files and Windows directories). 4) Add publisher rules for widely-deployed signed apps (use the file's digital signature to allow a publisher and narrow by product name/version as needed), add hash rules for unique in-house utilities, and avoid broad path rules pointing to user-writable locations (e.g., %USERPROFILE%) because those are fragile and risky. 5) Enable enforcement only after sufficient audit data; AppLocker supports \"Enforce rules\" or \"Audit only\" per rule collection—use Audit first.</p>\n\n<h3>Technical details and recommended rule types</h3>\n<p>Prefer publisher rules where possible (they automatically cover legitimate updates when scoped to product/version) and hash rules for immutable, internal executables. Use script rules to control PowerShell, .ps1, and other script execution—allow only signed scripts if you require stricter controls. If you need to control DLL loading, enable DLL rule enforcement explicitly in the AppLocker policy (note: DLL enforcement is supported on modern Windows versions but can cause compatibility issues—test thoroughly). For domain deployment, use GPO security filtering or WMI filtering to scope to specific OS versions or hardware profiles.</p>\n\n<h2>Testing, logging, and monitoring (practical operations)</h2>\n<p>Run AppLocker in Audit mode for a minimum pilot window (2–4 weeks is common) to capture deny/allow data without impacting users. AppLocker events are logged under Event Viewer -> Applications and Services Logs -> Microsoft -> Windows -> AppLocker (subchannels for EXE and DLL, MSI and Script, Packaged app-Deployment). Forward these logs to your SIEM or a centralized collector using Windows Event Forwarding or Sysmon/Elastic/ Splunk; capture denied executions and prioritize high-risk hits (unsigned executables in user profiles, PowerShell script execution, script-based toolchains). Use the AppLocker log output and SCCM/Intune inventory to refine rules before switching to Enforce mode.</p>\n\n<h2>Small-business real-world example</h2>\n<p>Scenario: a 50-seat engineering firm needs to comply with CM.L2-3.4.8. Steps they took: (1) Created a security group \"AppLocker-Pilot\" and moved 10 pilot machines into an OU; (2) Built a GPO applied to that OU, added default rules, added publisher rules for \"Microsoft Corporation\" (Office/Edge) and \"Adobe Systems\" (Acrobat), and a hash rule for a proprietary CAD helper tool; (3) Created a Script rule that allows signed PowerShell scripts and blocks unsigned .ps1 files; (4) Ran Audit-only for three weeks, collected AppLocker logs to a Windows Event Collector on a management server, and used reports to identify legitimate apps missed by rules (e.g., vendor update services) and add targeted exceptions; (5) After iteration and stakeholder sign-off, switched rule collections to Enforce. The small business also documented exceptions and used a simple change-control ticket for future rule additions to maintain audit evidence for compliance reviews.</p>\n\n<h2>Best practices, tips, and compliance evidence</h2>\n<p>Best practices: start with audit mode and a small pilot OU, prefer publisher rules over path rules, enable DLL rules only after compatibility testing, centrally collect AppLocker logs and retain them per your retention policy, and document every rule change in change control so you have evidence for audits. Maintain a documented exception process (who approves, mitigation, expiration), export and version your AppLocker XML policy, and back it up. Integrate AppLocker policy changes into your Configuration Management Database (CMDB) or compliance tracking tool to show traceability to the Compliance Framework's practice requirements.</p>\n\n<h2>Risks of not implementing application control</h2>\n<p>Without AppLocker or equivalent application control you increase the risk of malware execution, lateral movement (e.g., living-off-the-land binaries and unsigned tools), script-based exfiltration, and unauthorized software that can compromise CUI. From a compliance perspective, failure to implement CM.L2-3.4.8 increases the chance of negative audit findings, lost contracts, and regulatory exposure. Operationally, you also risk outages from unauthorized admin tools and undetected persistent backdoors.</p>\n\n<p>Summary: to satisfy NIST SP 800-171 Rev.2 / CMMC 2.0 CM.L2-3.4.8, use AppLocker deployed through Group Policy as a centralized allow-list enforcement mechanism—plan and inventory first, use audit mode and pilot OUs, prefer publisher and hash rules, collect and analyze AppLocker logs, document changes and exceptions, and only move to enforcement after testing. For small businesses, a phased pilot (10–20% of machines), central log collection, and a documented exception process are pragmatic ways to achieve compliance while minimizing business disruption.</p>",
    "plain_text": "This post gives a practical, actionable walkthrough for configuring Windows AppLocker and Group Policy to satisfy NIST SP 800-171 Rev.2 / CMMC 2.0 Level 2 control CM.L2-3.4.8 (control of software execution)—covering prerequisites, policy design, test-to-enforce deployment, logging/monitoring, and small-business scenarios so you can implement application control that maps to your Compliance Framework obligations.\n\nWhat CM.L2-3.4.8 requires and how AppLocker fits\nCM.L2-3.4.8 in the NIST/CMMC mapping requires organizations to restrict, manage, and monitor the installation and execution of unauthorized software. AppLocker (Windows Application Control) is a practical mechanism to implement that requirement for domain-joined Windows endpoints: it enforces an allow-list model (recommended for compliance), provides audit vs. enforce modes, and integrates with Group Policy so you can centrally manage rules that align with your Compliance Framework policies and evidence requirements.\n\nPrerequisites and initial planning\nBefore creating policies: inventory your environment (SCCM/Intune, Software Inventory, or a manual app list), confirm OS editions (AppLocker is fully supported on Windows Enterprise/Education and Windows Server; on Pro editions use Software Restriction Policies or consider Intune WDAC alternatives), and assemble a pilot group. Have Domain Admin or delegated GPO privileges and a baseline list of approved vendor-signed apps (Office, Adobe, browser executables) and in-house binaries. Document the intended policy as part of your Compliance Framework artifacts (policy statement, scope, change control process, and exceptions handling).\n\nStep-by-step AppLocker + Group Policy configuration\nImplement via Group Policy Management Console (GPMC) using this sequence: 1) Create a new GPO in GPMC targeted at a pilot OU or security group (do not apply to all users/devices immediately). 2) Navigate to Computer Configuration -> Policies -> Windows Settings -> Security Settings -> Application Control Policies -> AppLocker. 3) Create rule collections for Executable, Windows Installer, Script, DLL, and Packaged app; start by creating the default rules (Allow everyone Program Files and Windows directories). 4) Add publisher rules for widely-deployed signed apps (use the file's digital signature to allow a publisher and narrow by product name/version as needed), add hash rules for unique in-house utilities, and avoid broad path rules pointing to user-writable locations (e.g., %USERPROFILE%) because those are fragile and risky. 5) Enable enforcement only after sufficient audit data; AppLocker supports \"Enforce rules\" or \"Audit only\" per rule collection—use Audit first.\n\nTechnical details and recommended rule types\nPrefer publisher rules where possible (they automatically cover legitimate updates when scoped to product/version) and hash rules for immutable, internal executables. Use script rules to control PowerShell, .ps1, and other script execution—allow only signed scripts if you require stricter controls. If you need to control DLL loading, enable DLL rule enforcement explicitly in the AppLocker policy (note: DLL enforcement is supported on modern Windows versions but can cause compatibility issues—test thoroughly). For domain deployment, use GPO security filtering or WMI filtering to scope to specific OS versions or hardware profiles.\n\nTesting, logging, and monitoring (practical operations)\nRun AppLocker in Audit mode for a minimum pilot window (2–4 weeks is common) to capture deny/allow data without impacting users. AppLocker events are logged under Event Viewer -> Applications and Services Logs -> Microsoft -> Windows -> AppLocker (subchannels for EXE and DLL, MSI and Script, Packaged app-Deployment). Forward these logs to your SIEM or a centralized collector using Windows Event Forwarding or Sysmon/Elastic/ Splunk; capture denied executions and prioritize high-risk hits (unsigned executables in user profiles, PowerShell script execution, script-based toolchains). Use the AppLocker log output and SCCM/Intune inventory to refine rules before switching to Enforce mode.\n\nSmall-business real-world example\nScenario: a 50-seat engineering firm needs to comply with CM.L2-3.4.8. Steps they took: (1) Created a security group \"AppLocker-Pilot\" and moved 10 pilot machines into an OU; (2) Built a GPO applied to that OU, added default rules, added publisher rules for \"Microsoft Corporation\" (Office/Edge) and \"Adobe Systems\" (Acrobat), and a hash rule for a proprietary CAD helper tool; (3) Created a Script rule that allows signed PowerShell scripts and blocks unsigned .ps1 files; (4) Ran Audit-only for three weeks, collected AppLocker logs to a Windows Event Collector on a management server, and used reports to identify legitimate apps missed by rules (e.g., vendor update services) and add targeted exceptions; (5) After iteration and stakeholder sign-off, switched rule collections to Enforce. The small business also documented exceptions and used a simple change-control ticket for future rule additions to maintain audit evidence for compliance reviews.\n\nBest practices, tips, and compliance evidence\nBest practices: start with audit mode and a small pilot OU, prefer publisher rules over path rules, enable DLL rules only after compatibility testing, centrally collect AppLocker logs and retain them per your retention policy, and document every rule change in change control so you have evidence for audits. Maintain a documented exception process (who approves, mitigation, expiration), export and version your AppLocker XML policy, and back it up. Integrate AppLocker policy changes into your Configuration Management Database (CMDB) or compliance tracking tool to show traceability to the Compliance Framework's practice requirements.\n\nRisks of not implementing application control\nWithout AppLocker or equivalent application control you increase the risk of malware execution, lateral movement (e.g., living-off-the-land binaries and unsigned tools), script-based exfiltration, and unauthorized software that can compromise CUI. From a compliance perspective, failure to implement CM.L2-3.4.8 increases the chance of negative audit findings, lost contracts, and regulatory exposure. Operationally, you also risk outages from unauthorized admin tools and undetected persistent backdoors.\n\nSummary: to satisfy NIST SP 800-171 Rev.2 / CMMC 2.0 CM.L2-3.4.8, use AppLocker deployed through Group Policy as a centralized allow-list enforcement mechanism—plan and inventory first, use audit mode and pilot OUs, prefer publisher and hash rules, collect and analyze AppLocker logs, document changes and exceptions, and only move to enforcement after testing. For small businesses, a phased pilot (10–20% of machines), central log collection, and a documented exception process are pragmatic ways to achieve compliance while minimizing business disruption."
  },
  "metadata": {
    "description": "Step-by-step guidance to implement AppLocker via Group Policy to meet NIST SP 800-171 Rev.2 / CMMC 2.0 Level 2 control CM.L2-3.4.8, including testing, logging, and small-business examples.",
    "permalink": "/how-to-configure-windows-applocker-and-group-policy-for-nist-sp-800-171-rev2-cmmc-20-level-2-control-cml2-348-practical-implementation-steps.json",
    "categories": [],
    "tags": []
  }
}