Sunday, May 11, 2008

Script to allow ESX to pass a DISA Security Readiness Review

Just created a post on the VMTN but wanted to point it out here.
Script to allow ESX to pass a DISA Security Readiness Review

A co-worker and I have been hammering on this document for a few months and we are now to the point where we need other ESX admins to take a look at it. This might be a bit aggressive of a security lockdown for a commercial site but if you are wanting your ESX server to be as secure as possible... This would help quite a bit.

Hop over to the VMTN and take a read if you are interested. If you see something that can/needs to change post it either on the VMTN or here and I will take a look at it.

Decided to copy the text here as well. If you want to download the script though, go to the VMTN and take a look at it.
Background: taken from the DISA website:
In a DOD facility all systems must pass the Security Technical Implementation Guide (STIGs) for the host operating system. The STIG is the configuration standard for DOD IA and IA-enabled devices/systems.

A Security Checklist (sometimes referred to as a lockdown guide, hardening guide, or benchmark configuration) is essentially a document that contains instructions or procedures to verify compliance to a baseline level of security.

Security Readiness Review Scripts (SRRs) test products for STIG compliance. SRR Scripts are available for all operating systems and databases that have STIGs, and web servers using IIS. The SRR scripts are unlicensed tools developed by the Field Security Office (FSO) and the use of these tools on products is completely at the user's own risk.

The problem:
As of this writing there is no “official” VMware ESX STIG but it has been determined that since the ESX service console is *nix based it must conform to the latest Unix STIG.

The current Unix STIG is located here:
The current Unix SRR is located here:

When reviewing the results of the SRR, not all open issues are valid as the DISA SRR was written for UNIX, LINUX, and AIX. The ESX’s console operating system is based on the Linux Redhat Enterprise 4.5 version, but only contains a subset of the entire operating system and has been customized with specific functionality for interfacing the ESX kernel.

The solution:
Running the SRR will result in an open findings report. After remediating the open issues the SRR is re-run. The goal is to have as few open issues and to document the remaining items as either false findings or open issues with notes as to when they will be closed (patches from VMware) or why they need to be left open.
An example of an open issue is:
==========PDI=IAVA1115 Result========================
PDI Number: IAVA1115
Finding Category: CAT II
Reference: IAVA 2007-T-0042
Description: Sun JRE Web Start Multiple Remote
Status: Open – *will be fixed in a patch from VMware due
in June.*
For example:
IAVA1115: IAVA 2007-T-0042 - Sun JRE Web Start Multiple
Remote Vulnerabilities.
/usr/lib/vmware/webAccess/java/jre1.5.0_12/bin/java, JAVA version
found on
Upgrade to JAVA version on

An example of a false finding that will remain is:
==========PDI=IAVA0360 Result========================
PDI Number: IAVA0360
Finding Category: CAT I
Reference: IAVA 2003-A-0015
Description: There are multiple vulnerabilities in OpenSSL.
Status: Open – *This is a documented false finding as the
vulnerabilities were fixed but the version number was not updated.*
For example:
IAVA0360: IAVA 2003-A-0015
/usr/bin/openssl version 0.9.7a found on 2.4.21-47.0.1.ELvmnix.
==========PDI=IAVA0410 Result========================

The ESX SRR Secure script is a shell script which attempts to remediate all of the issues possible on an ESX 3.x host. Some prerequisites to running this script are as follows:
1. Must be run as root.
2.The host must be in maintenance mode.
3. Before beginning with the SRR its advised to install the LAuS library to increase auditing capabilities within the ESX service console, as by default there is limited auditing taking place within the service console itself. These libraries are located on the VMware ESX CD in the /vmware/RPM/ directory. (Note: It appears that this is installed by default in ESX 3.5 update 1)
4. Make sure that all passwords meet the complexity requirements. 7 characters with at least 1 number, 1 symbol, 1 upper case and 1 lower case. This needs to be done for root and any additional accounts installed manually. (Do not change any accounts created by adding a host to Virtual Center).

Once the system is ready, run the script as root and allow the host to be rebooted. Re-run the Unix SRR and compare the open findings report. Below is an example of the summary section both before and after running ESX SRR Secure:
CAT I = 3/541, CAT II = 55/541, CAT III = 3/541, CAT IV = 0/541
CAT I = 1/139, CAT II = 9/345, CAT III = 1/57, CAT IV = 0/5

The remaining open issues should be documented and should be sufficient to present to the DISA FSO for approval.

Since this is the first “public” exposure for this script, please consider this an early release and test this in a NON-production environment until verification can be made that it does not break something. Also, please give feedback as we would love to see what the community thinks and are continuing to try and make this process better.


  1. Just an update.... DISA now has/supports an ESX STIG and has released a checklist for it.

    Also, the new DISA password requirements are 14 charcters, 2 upper, 2 lower, 2 number, 2 special.

    This will also not apply to people running ESX 3i, as in embeded hardware installs from HP/Dell/etc.

  2. Sorry, missed your June post with all this info....

  3. In ESX SRR prerequisites that the ESX server need to be in the "maintenance mode". Do you know how to do this from the console?

    I guessed I can use VC to put the ESX server in the maintenance mode. But, just want to know if I can do it from CLI.


  4. There is a way to do this from the command line.
    vimsh -n -e /hostsvc/maintenance_mode_exit

    This was going to be in the script but we decided not to do so since it could impact production environments.

  5. Thanks Philip.

    As a note,the doc above mentioned that you run the SRR and allowed the ESX server rebooted. Then, re-run the SRR script again and compare the result. Where the results are save as?


  6. when you run the SRR it creates a folder that is the same as the FQDN of the server you ran it on. IF you told the SRR to only report open findings you should find a file there that should be the It should have all the open findings in txt format.

  7. Thanks Philip.

    Also, for the ESX script, is there a way to output the result to a log file for later review. As I have noticed when I ran the script it has some errors but it went by too fast. Or, is there a way to pause the script at certain point to see what is going on?

    I am new to UNXIX and shell scripting. Thanks again for your help and much appreciated.


  8. I think I answered this in the VMTN but in case I didnt (ive been on a bunch of planes lately)...
    /var/log/ESX_SRRSecure.timestamp should have the output of the results.

  9. I've posted a version to in the DoDBastile project, for those interested.

  10. [...] severely lacking. CYP point me to one SRR? Just two samples, which may be all the OP is looking for, since the original question was just a [...]

  11. Extremely valuable script, very happy I've found it -

  12. I think this is an informative post and it is very useful and knowledgeable. therefore, I would like to thank you for the efforts you have made in writing this article. Serious Security