The most trusted source for computer security training, certification and research.



Critical Control 2: Inventory of Authorized and Unauthorized Software

20 Critical Security Controls << previous controlnext control >>

How do attackers exploit the lack of this control?

Computer attackers deploy systems that continuously scan address spaces of target organizations looking for vulnerable versions of software that can be remotely exploited. Some attackers also distribute hostile web pages, document files, media files, and other content via their own web pages or otherwise trustworthy third-party sites. When unsuspecting victims access this content with a vulnerable browser or other client-side program, attackers compromise their machines, often installing backdoor programs and bots that give the attacker long-term control of the system. Some sophisticated attackers may use zero-day exploits, which take advantage of previously unknown vulnerabilities for which no patch has yet been released by the software vendor. Without proper knowledge or control of the software deployed in an organization, defenders cannot properly secure their assets.

Without the ability to inventory and control which programs are installed and allowed to run on their machines, enterprises make their systems more vulnerable. Such poorly controlled machines are more likely to be either running software that is unneeded for business purposes, introducing potential security flaws, or running malware introduced by a computer attacker after system compromise. Once a single machine has been exploited, attackers often use it as a staging point for collecting sensitive information from the compromised system and from other systems connected to it. In addition, compromised machines are used as a launching point for movement throughout the network and partnering networks. In this way, attackers may quickly turn one compromised machine into many. Organizations that do not have complete software inventories are unable to find systems running vulnerable or malicious software to mitigate problems or root out attackers.

How can this control be implemented, automated, and its effectiveness measured?

  1. QW: Devise a list of authorized software that is required in the enterprise for each type of system, including servers, workstations, and laptops of various kinds and uses.
  2. Vis/Attrib: Deploy software inventory tools throughout the organization covering each of the operating system types in use, including servers, workstations, and laptops. The software inventory system should track the version of the underlying operating system as well as the applications installed on it. Furthermore, the tool should record not only the type of software installed on each system, but also its version number and patch level. The tool should also monitor for unauthorized software installed on each machine. This unauthorized software also includes legitimate system administration software installed on inappropriate systems where there is no business need for it.
  3. Config/Hygiene: To evaluate the effectiveness of automated software inventory tools, periodically install several software updates and new packages on hardened control machines in the network and measure the delay before the software inventory indicates the changes. Such updates should be chosen for the control machines so that they do not negatively impact production systems on the network.
  4. Advanced: Deploy software white-listing technology that allows systems to run only approved applications and prevents execution of all other software on the system.
Associated NIST SP 800-53 Rev 3 Priority 1 Controls:

CM-1, CM-2 (2, 4, 5), CM-3, CM-5 (2, 7), CM-7 (1, 2), CM-8 (1, 2, 3, 4, 6), CM-9, PM-6, SA-6, SA-7

Procedures and tools for implementing and automating this control:

Commercial software and asset inventory tools are widely available and in use in many enterprises today. The best of these tools provide an inventory check of hundreds of common applications used in enterprises, pulling information about the patch level of each installed program to ensure that it is the latest version and leveraging standardized application names, such as those found in CPE.

Features that implement whitelists and blacklists of programs allowed to run or blocked from executing are included in many modern end-point security suites. Moreover, commercial solutions are increasingly bundling together anti-virus, anti-spyware, personal firewall, and host-based Intrusion Detection Systems and Intrusion Prevention Systems (IDS and IPS), along with software white listing and black listing. In particular, most endpoint security solutions can look at the name, file system location, and/or cryptographic hash of a given executable to determine whether the application should be allowed to run on the protected machine. The most effective of these tools offer custom whitelists and blacklists based on executable path, hash, or regular expression matching. Some even include a graylist function that allows administrators to define rules for execution of specific programs only by certain users and at certain times of day, and blacklists based on specific signatures.

Once software inventory and execution control products are deployed, they can be evaluated by attempting to run a black listed program or a program that is not on the whitelist. To test whitelist or blacklist solutions, the organization can define a specific benign executable for which the blacklist or whitelist would block execution, such as a simple benign single EXE file. They can then attempt to run the program and test whether execution is blocked and whether an alert is generated.

20 Critical Security Controls << previous controlnext control >>

List Of Controls

Additional Security Controls

The following sections identify additional controls that are important but that cannot be automatically or continuously monitored.


Contact us: (301) 654-SANS(7267)
Monday - Friday 9am-8pm EST/EDT