CMMC Practice CM.L2-3.4.8 – Application Execution Policy: Apply deny-by-exception (blacklisting) policy to prevent the use of unauthorized software or deny-all, permit-by-exception (whitelisting) policy to allow the execution of authorized software.
Links to Publicly Available Resources
This is a blog on aspera.com for the eight best practices to follow for successful software license management. This list provides a list of free and commercial tools that can help with software inventory management (e.g., blacklisting, whitelisting, unauthorized software identification). This document provides assessment guidance for conducting Cybersecurity Maturity Model Certification (CMMC) assessments for Level 2. This document highlights and summarizes the types of choices, and the related decisions, that need to be made prior to starting the planning process. This checklist walks you through the definition of an Enterprise License and all of its components to help you determine whether or not an Enterprise License (EL) will meet your organization’s needs. This is Gartner’s rating based on customer reviews of software asset management tools in the market. This link is Microsoft’s page on evaluations of various versions of system center configuration manager and the install files. The purpose of this publication is to assist organizations in understanding the basics of application whitelisting and planning for its implementation. NIST resource that defines requirements for configuring information systems to provide only essential capabilities such as restricting / blacklisting software. This is a PC magazine article that compares asset management software by it features. This sample policy from SANS, can be used to outline the requirements around installation of software on an organizations devices. This is a blog by technoresult on what SCCM is and how it works. In this guide, you’ll learn everything you need to know about SAM tools.
Discussion [NIST SP 800-171 R2]
The process used to identify software programs that are not authorized to execute on systems is commonly referred to as blacklisting. The process used to identify software programs that are authorized to execute on systems is commonly referred to as whitelisting. Whitelisting is the stronger of the two policies for restricting software program execution.
In addition to whitelisting, organizations consider verifying the integrity of whitelisted software programs using, for example, cryptographic checksums, digital signatures, or hash functions. Verification of whitelisted software can occur either prior to execution or at system startup.
NIST SP 800-167 provides guidance on application whitelisting.
Further Discussion
Organizations should determine their blacklisting or whitelisting policy and configure the system to manage software that is allowed to run. Blacklisting or deny-by-exception allows all software to run except if on an unauthorized software list such as what is maintained in antivirus solutions. Whitelisting or permit-by-exception does not allow any software to run except if on an authorized software list. The stronger policy of the two is whitelisting.
This practice, CM.L2-3.4.8, requires the implementation of allow-lists and deny-lists for application software. It leverages CM.L2-3.4.1, which requires the organization to establish and maintain software inventories.
This practice, CM.L2-3.4.8, also extends CM.L2-3.4.9, which only requires control and monitoring of any user installed software.