VMware vSphere 6.7 EAM Tomcat Security Technical Implementation Guide

  • Version/Release: V1R3
  • Published: 2022-06-17
  • Expand All:
  • Severity:
  • Sort:
Compare

Select any two versions of this STIG to compare the individual requirements

View

Select any old version/release of this STIG to view the previous requirements

This Security Technical Implementation Guide is published as a tool to improve the security of Department of Defense (DoD) information systems. The requirements are derived from the National Institute of Standards and Technology (NIST) 800-53 and related documents. Comments or proposed revisions to this document should be sent via email to the following address: disa.stig_spt@mail.mil.
b
ESX Agent Manager must limit the amount of time that each TCP connection is kept alive.
AC-10 - Medium - CCI-000054 - V-239372 - SV-239372r674610_rule
RMF Control
AC-10
Severity
Medium
CCI
CCI-000054
Version
VCEM-67-000001
Vuln IDs
  • V-239372
Rule IDs
  • SV-239372r674610_rule
Denial of service is one threat against web servers. Many DoS attacks attempt to consume web server resources in such a way that no more resources are available to satisfy legitimate requests. In Tomcat, the "connectionTimeout" attribute sets the number of milliseconds the server will wait after accepting a connection for the request URI line to be presented. This timeout will also be used when reading the request body (if any). This prevents idle sockets that are not sending HTTP requests from consuming system resources and potentially denying new connections.
Checks: C-42605r674608_chk

At the command prompt, execute the following command: # xmllint --xpath '/Server/Service/Connector/@connectionTimeout' /usr/lib/vmware-eam/web/conf/server.xml Expected result: connectionTimeout="20000" If the output does not match the expected result, this is a finding.

Fix: F-42564r674609_fix

Navigate to and open: /usr/lib/vmware-eam/web/conf/server.xml Configure the <Connector> node with the value: connectionTimeout="20000"

b
ESX Agent Manager must limit the number of concurrent connections permitted.
AC-10 - Medium - CCI-000054 - V-239373 - SV-239373r674613_rule
RMF Control
AC-10
Severity
Medium
CCI
CCI-000054
Version
VCEM-67-000002
Vuln IDs
  • V-239373
Rule IDs
  • SV-239373r674613_rule
Resource exhaustion can occur when an unlimited number of concurrent requests are allowed on a website, facilitating a denial-of-service attack. Unless the number of requests is controlled, the web server can consume enough system resources to cause a system crash. Mitigating this kind of attack will include limiting the number of concurrent HTTP/HTTPS requests. In Tomcat, each incoming request requires a thread for the duration of that request. If more simultaneous requests are received than can be handled by the currently available request processing threads, additional threads will be created up to the value of the maxThreads attribute.
Checks: C-42606r674611_chk

At the command prompt, execute the following command: # xmllint --xpath '/Server/Service/Executor[@name="tomcatThreadPool"]/@maxThreads' /usr/lib/vmware-eam/web/conf/server.xml Expected result: maxThreads="300" If the output does not match the expected result, this is a finding.

Fix: F-42565r674612_fix

Navigate to and open: /usr/lib/vmware-eam/web/conf/server.xml Navigate to the <Executor> mode with the name of tomcatThreadPool and configure with the value 'maxThreads="300"' Note: The <Executor> node should be configured as follows: <Executor maxThreads="300" minSpareThreads="50" name="tomcatThreadPool" namePrefix="tomcat-http--"/>

b
ESX Agent Manager must limit the maximum size of a POST request.
AC-10 - Medium - CCI-000054 - V-239374 - SV-239374r674616_rule
RMF Control
AC-10
Severity
Medium
CCI
CCI-000054
Version
VCEM-67-000003
Vuln IDs
  • V-239374
Rule IDs
  • SV-239374r674616_rule
The "maxPostSize" value is the maximum size in bytes of the POST that will be handled by the container FORM URL parameter parsing. Limit its size to reduce exposure to a denial-of-service attack. If "maxPostSize" is not set, the default value of 2097152 (2 MB) is used. ESX Agent Manager is configured in its shipping state to not set a value for "maxPostSize".
Checks: C-42607r674614_chk

At the command prompt, execute the following command: # xmllint --xpath '/Server/Service/Connector[@port="${bio-custom.http.port}"]/@maxPostSize' /usr/lib/vmware-eam/web/conf/server.xml Expected result: XPath set is empty If the output does not match the expected result, this is a finding.

Fix: F-42566r674615_fix

Navigate to and open: /usr/lib/vmware-eam/web/conf/server.xml Remove any configuration for "maxPostSize" from the <Connector> node.

b
ESX Agent Manager must protect cookies from XSS.
AC-10 - Medium - CCI-000054 - V-239375 - SV-239375r674619_rule
RMF Control
AC-10
Severity
Medium
CCI
CCI-000054
Version
VCEM-67-000004
Vuln IDs
  • V-239375
Rule IDs
  • SV-239375r674619_rule
Cookies are a common way to save session state over the HTTP(S) protocol. If attackers can compromise session data stored in a cookie, they are better able to launch an attack against the server and its applications. When a cookie is tagged with the "HttpOnly" flag, it tells the browser that this particular cookie should only be accessed by the originating server. Any attempt to access the cookie from client script is strictly forbidden. Satisfies: SRG-APP-000001-WSR-000002, SRG-APP-000439-WSR-000154, SRG-APP-000439-WSR-000155
Checks: C-42608r674617_chk

At the command prompt, execute the following command: # xmllint --format /usr/lib/vmware-eam/web/webapps/eam/WEB-INF/web.xml | sed 's/xmlns=".*"//g' | xmllint --xpath '/web-app/session-config/cookie-config/http-only' - Expected result: &lt;http-only&gt;true&lt;/http-only&gt; If the output does not match the expected result, this is a finding.

Fix: F-42567r674618_fix

Navigate to and open: /usr/lib/vmware-eam/web/webapps/eam/WEB-INF/web.xml Navigate to the <session-config> node and configure it as follows. <session-config> <cookie-config> <http-only>true</http-only> <secure>true</secure> </cookie-config> <session-timeout>30</session-timeout> </session-config>

b
ESX Agent Manager must record user access in a format that enables monitoring of remote access.
AC-17 - Medium - CCI-000067 - V-239376 - SV-239376r674700_rule
RMF Control
AC-17
Severity
Medium
CCI
CCI-000067
Version
VCEM-67-000005
Vuln IDs
  • V-239376
Rule IDs
  • SV-239376r674700_rule
Remote access can be exploited by an attacker to compromise the server. By recording all remote access activities, it will be possible to determine the attacker's location, intent, and degree of success. Tomcat can be configured with an "AccessLogValve", a component that can be inserted into the request processing pipeline to provide robust access logging. The AccessLogValve creates log files in the same format as those created by standard web servers. When AccessLogValve is properly configured, log files will contain all the forensic information necessary in the case of a security incident. Satisfies: SRG-APP-000016-WSR-000005, SRG-APP-000089-WSR-000047, SRG-APP-000092-WSR-000055, SRG-APP-000095-WSR-000056, SRG-APP-000096-WSR-000057, SRG-APP-000097-WSR-000058, SRG-APP-000098-WSR-000059, SRG-APP-000098-WSR-000060, SRG-APP-000099-WSR-000061, SRG-APP-000100-WSR-000064, SRG-APP-000374-WSR-000172, SRG-APP-000375-WSR-000171
Checks: C-42609r674620_chk

At the command prompt, execute the following command: # xmllint --xpath '/Server/Service/Engine/Host/Valve[@className="org.apache.catalina.valves.AccessLogValve"]'/@pattern /usr/lib/vmware-eam/web/conf/server.xml Expected result: pattern="%h %{X-Forwarded-For}i %l %u %t [%I] &amp;quot;%r&amp;quot; %s %b [Processing time %D msec] &amp;quot;%{User-Agent}i&amp;quot;" If the output does not match the expected result, this is a finding.

Fix: F-42568r674621_fix

Navigate to and open: /usr/lib/vmware-eam/web/conf/server.xml Add the following line at the very top of the <Host> node. <Valve className="org.apache.catalina.valves.RemoteIpValve" httpServerPort="80" httpsServerPort="443" protocolHeader="x-forwarded-proto" proxiesHeader="x-forwarded-by" remoteIpHeader="x-forwarded-for" requestAttributesEnabled="true" internalProxies="127\.0\.0\.1"/> Inside the <Host> node, remove the existing "AccessLogValve" <Valve> node entirely and replace it with the following line: <Valve className="org.apache.catalina.valves.AccessLogValve" directory="${eam.catalina.logdir}" pattern="%h %{X-Forwarded-For}i %l %u %t [%I] &quot;%r&quot; %s %b [Processing time %D msec] &quot;%{User-Agent}i&quot;" resolveHosts="false" prefix="localhost_access_log" suffix=".txt"/>

b
ESX Agent Manager must generate log records for system startup and shutdown.
AU-12 - Medium - CCI-000169 - V-239377 - SV-239377r674625_rule
RMF Control
AU-12
Severity
Medium
CCI
CCI-000169
Version
VCEM-67-000006
Vuln IDs
  • V-239377
Rule IDs
  • SV-239377r674625_rule
Logging must be started as soon as possible when a service starts and as late as possible when a service is stopped. Many forms of suspicious actions can be detected by analyzing logs for unexpected service starts and stops. Also, by starting to log immediately after a service starts, it becomes more difficult for suspicious activity to go unlogged.
Checks: C-42610r674623_chk

At the command prompt, execute the following command: # grep StreamRedirectFile /etc/vmware/vmware-vmon/svcCfgfiles/eam.json Expected output: "StreamRedirectFile" : "%VMWARE_LOG_DIR%/vmware/eam/jvm.log", If no log file is specified for the "StreamRedirectFile" setting, this is a finding.

Fix: F-42569r674624_fix

Navigate to and open: /etc/vmware/vmware-vmon/svcCfgfiles/eam.json Below the last line of the "PreStartCommandArg" block, add the following line: "StreamRedirectFile" : "%VMWARE_LOG_DIR%/vmware/eam/jvm.log", Restart the appliance for changes to take effect.

b
ESX Agent Manager log files must only be modifiable by privileged users.
AU-9 - Medium - CCI-000163 - V-239378 - SV-239378r674628_rule
RMF Control
AU-9
Severity
Medium
CCI
CCI-000163
Version
VCEM-67-000007
Vuln IDs
  • V-239378
Rule IDs
  • SV-239378r674628_rule
Log data is essential in the investigation of events. The accuracy of the information is always pertinent. One of the first steps an attacker will undertake is the modification or deletion of log records to cover tracks and prolong discovery. The web server must protect the log data from unauthorized modification. ESX Agent Manager restricts all modification of log files by default but this configuration must be verified. Satisfies: SRG-APP-000119-WSR-000069, SRG-APP-000120-WSR-000070
Checks: C-42611r674626_chk

At the command prompt, execute the following command: # find /var/log/vmware/eam/web/ -xdev -type f -a '(' -perm -o+w -o -not -user eam -o -not -group users ')' -exec ls -ld {} \; If any files are returned, this is a finding.

Fix: F-42570r674627_fix

At the command prompt, execute the following commands: # chmod o-w <file> # chown eam:users <file> Note: Substitute <file> with the listed file.

b
ESX Agent Manager application files must be verified for their integrity.
CM-5 - Medium - CCI-001749 - V-239379 - SV-239379r674631_rule
RMF Control
CM-5
Severity
Medium
CCI
CCI-001749
Version
VCEM-67-000008
Vuln IDs
  • V-239379
Rule IDs
  • SV-239379r674631_rule
Verifying that ESX Agent Manager application code is unchanged from its shipping state is essential for file validation and non-repudiation of the ESX Agent Manager. There is no reason that the MD5 hash of the rpm original files should be changed after installation, excluding configuration files. Satisfies: SRG-APP-000131-WSR-000051, SRG-APP-000357-WSR-000150
Checks: C-42612r674629_chk

At the command prompt, execute the following command: # rpm -V vmware-eam|grep "^..5......"|grep -E "\.war|\.jar|\.sh|\.py" If there is any output, this is a finding.

Fix: F-42571r674630_fix

Reinstall the VCSA or roll back to a snapshot. Modifying the EAM installation files manually is not supported by VMware.

b
ESX Agent Manager must only run one webapp.
CM-5 - Medium - CCI-001749 - V-239380 - SV-239380r674634_rule
RMF Control
CM-5
Severity
Medium
CCI
CCI-001749
Version
VCEM-67-000009
Vuln IDs
  • V-239380
Rule IDs
  • SV-239380r674634_rule
VMware ships ESX Agent Managers on the VCSA with one webapp. Any other path is potentially malicious and must be removed.
Checks: C-42613r674632_chk

At the command prompt, execute the following command: # ls -A /usr/lib/vmware-eam/web/webapps Expected result: eam If the output does not match the expected result, this is a finding.

Fix: F-42572r674633_fix

For each unexpected directory returned in the check, run the following command: # rm /usr/lib/vmware-eam/web/webapps/<NAME> Restart the service with the following command: # vmon-cli --restart eam

b
ESX Agent Manager must not be configured with unsupported realms.
CM-7 - Medium - CCI-000381 - V-239381 - SV-239381r674637_rule
RMF Control
CM-7
Severity
Medium
CCI
CCI-000381
Version
VCEM-67-000010
Vuln IDs
  • V-239381
Rule IDs
  • SV-239381r674637_rule
ESX Agent Manager performs authentication at the application level and not through Tomcat. To eliminate unnecessary features and ensure that ESX Agent Manager remains in its shipping state, the lack of a UserDatabaseRealm configuration must be confirmed.
Checks: C-42614r674635_chk

At the command prompt, execute the following command: # grep UserDatabaseRealm /usr/lib/vmware-eam/web/conf/server.xml If the command produces any output, this is a finding.

Fix: F-42573r674636_fix

Navigate to and open: /usr/lib/vmware-eam/web/conf/server.xml Remove the <Realm> node returned in the check.

b
ESX Agent Manager must be configured to limit access to internal packages.
CM-7 - Medium - CCI-000381 - V-239382 - SV-239382r674640_rule
RMF Control
CM-7
Severity
Medium
CCI
CCI-000381
Version
VCEM-67-000011
Vuln IDs
  • V-239382
Rule IDs
  • SV-239382r674640_rule
The "package.access" entry in the "catalina.properties" file implements access control at the package level. When properly configured, a security exception will be reported if there is an errant or malicious webapp attempt to access the listed internal classes directly or if a new class is defined under the protected packages. The ESX Agent Manager comes preconfigured with the appropriate packages defined in "package.access", and this configuration must be maintained.
Checks: C-42615r674638_chk

At the command prompt, execute the following command: # grep "package.access" -A 5 /etc/vmware-eam/catalina.properties Expected result: package.access=\ sun.,\ org.apache.catalina.,\ org.apache.coyote.,\ org.apache.tomcat.,\ org.apache.jasper. If the output of the command does not match the expected result, this is a finding.

Fix: F-42574r674639_fix

Navigate to and open: /etc/vmware-eam/catalina.properties Ensure that the "package.access" line is configured as follows: package.access=\ sun.,\ org.apache.catalina.,\ org.apache.coyote.,\ org.apache.tomcat.,\ org.apache.jasper.

b
ESX Agent Manager must have Multipurpose Internet Mail Extensions (MIMEs) that invoke operating system shell programs disabled.
CM-7 - Medium - CCI-000381 - V-239383 - SV-239383r674643_rule
RMF Control
CM-7
Severity
Medium
CCI
CCI-000381
Version
VCEM-67-000012
Vuln IDs
  • V-239383
Rule IDs
  • SV-239383r674643_rule
MIME mappings tell ESX Agent Manager what type of program various file types and extensions are and what external utilities or programs are needed to execute the file type. By ensuring that various shell script MIME types are not included in web.xml, the server is protected against malicious users tricking the server into executing shell command files.
Checks: C-42616r674641_chk

At the command prompt, execute the following command: # grep -En '(x-csh&lt;)|(x-sh&lt;)|(x-shar&lt;)|(x-ksh&lt;)' /usr/lib/vmware-eam/web/webapps/eam/WEB-INF/web.xml If the command produces any output, this is a finding.

Fix: F-42575r674642_fix

Open /usr/lib/vmware-eam/web/webapps/eam/WEB-INF/web.xml in a text editor. Remove the following nodes lines: <mime-type>application/x-csh</mime-type> <mime-type>application/x-shar</mime-type> <mime-type>application/x-sh</mime-type> <mime-type>application/x-ksh</mime-type>

b
ESX Agent Manager must have mappings set for Java servlet pages.
CM-7 - Medium - CCI-000381 - V-239384 - SV-239384r674646_rule
RMF Control
CM-7
Severity
Medium
CCI
CCI-000381
Version
VCEM-67-000013
Vuln IDs
  • V-239384
Rule IDs
  • SV-239384r674646_rule
Resource mapping is the process of tying a particular file type to a process in the web server that can serve that type of file to a requesting client and identify which file types are not to be delivered to a client. By not specifying which files can and cannot be served to a user, the web server could deliver to a user web server configuration files, log files, password files, etc. Because Tomcat is a Java-based web server, the main file extension used is *.jsp. This check ensures that the *.jsp file type has been properly mapped to servlets.
Checks: C-42617r674644_chk

At the command prompt, execute the following command: # xmllint --format /usr/lib/vmware-eam/web/webapps/eam/WEB-INF/web.xml | sed 's/xmlns=".*"//g' | xmllint --xpath '/web-app/servlet-mapping/servlet-name[text()="JspServlet"]/parent::servlet-mapping' - Expected result: &lt;servlet-mapping&gt; &lt;servlet-name&gt;JspServlet&lt;/servlet-name&gt; &lt;url-pattern&gt;*.jsp&lt;/url-pattern&gt; &lt;/servlet-mapping&gt; If the output of the command does not match the expected result, this is a finding.

Fix: F-42576r674645_fix

Navigate to and open: /usr/lib/vmware-eam/web/webapps/eam/WEB-INF/web.xml Navigate to and locate the mapping for the JSP servlet. The <servlet-mapping> node contains <servlet-name>JspServlet</servlet-name>. Configure the <servlet-mapping> node to look like the code snippet below: <servlet-mapping> <servlet-name>JspServlet</servlet-name> <url-pattern>*.jsp</url-pattern> </servlet-mapping>

b
ESX Agent Manager must not have the Web Distributed Authoring (WebDAV) servlet installed.
CM-7 - Medium - CCI-000381 - V-239385 - SV-239385r674649_rule
RMF Control
CM-7
Severity
Medium
CCI
CCI-000381
Version
VCEM-67-000014
Vuln IDs
  • V-239385
Rule IDs
  • SV-239385r674649_rule
WebDAV is an extension to the HTTP protocol that, when developed, was meant to allow users to create, change, and move documents on a server, typically a web server or web share. WebDAV is not widely used and has serious security concerns because it may allow clients to modify unauthorized files on the web server and must therefore be disabled. Tomcat uses the "org.apache.catalina.servlets.WebdavServlet" servlet to provide WebDAV services. Because the WebDAV service has been found to have an excessive number of vulnerabilities, this servlet must not be installed. ESX Agent Manager does not configure WebDAV by default.
Checks: C-42618r674647_chk

At the command prompt, execute the following command: # grep -n 'webdav' /usr/lib/vmware-eam/web/webapps/eam/WEB-INF/web.xml If the command produces any output, this is a finding.

Fix: F-42577r674648_fix

Navigate to and open: /usr/lib/vmware-eam/web/webapps/eam/WEB-INF/web.xml Find the <servlet-name>webdav</servlet-name> node and remove the entire parent <servlet> block. Find the <servlet-name>webdav</servlet-name> node and remove the entire parent <servlet-mapping> block.

b
ESX Agent Manager must be configured with memory leak protection.
CM-7 - Medium - CCI-000381 - V-239386 - SV-239386r674652_rule
RMF Control
CM-7
Severity
Medium
CCI
CCI-000381
Version
VCEM-67-000015
Vuln IDs
  • V-239386
Rule IDs
  • SV-239386r674652_rule
The Java Runtime environment can cause a memory leak or lock files under certain conditions. Without memory leak protection, ESX Agent Manager can continue to consume system resources, which will lead to "OutOfMemoryErrors" when reloading web applications. Memory leaks occur when JRE code uses the context class loader to load a singleton, as this will cause a memory leak if a web application class loader happens to be the context class loader at the time. The "JreMemoryLeakPreventionListener" class is designed to initialize these singletons when Tomcat's common class loader is the context class loader. Proper use of JRE memory leak protection will ensure that the hosted application does not consume system resources and cause an unstable environment.
Checks: C-42619r674650_chk

At the command prompt, execute the following command: # grep JreMemoryLeakPreventionListener /usr/lib/vmware-eam/web/conf/server.xml Expected result: &lt;Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/&gt; If the output of the command does not match the expected result, this is a finding.

Fix: F-42578r674651_fix

Navigate to and open: /usr/lib/vmware-eam/web/conf/server.xml Navigate to the <Server> node. Add '<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>' to the <Server> node.

b
ESX Agent Manager must not have any symbolic links in the web content directory tree.
CM-7 - Medium - CCI-000381 - V-239387 - SV-239387r674655_rule
RMF Control
CM-7
Severity
Medium
CCI
CCI-000381
Version
VCEM-67-000016
Vuln IDs
  • V-239387
Rule IDs
  • SV-239387r674655_rule
A web server is designed to deliver content and execute scripts or applications at the request of a client or user. Containing user requests to files in the directory tree of the hosted web application and limiting the execution of scripts and applications guarantees that the user is not accessing information protected outside the application's realm. By checking that no symbolic links exist in the document root, the web server is protected from users jumping outside the hosted application directory tree and gaining access to the other directories, including the system root.
Checks: C-42620r674653_chk

At the command prompt, execute the following command: # find /usr/lib/vmware-eam/web/webapps/ -type l -ls If the command produces any output, this is a finding.

Fix: F-42579r674654_fix

At the command prompt, execute the following commands: Note: Replace <file_name> for the name of any files that were returned. unlink <file_name> Repeat the commands for each file that was returned.

b
ESX Agent Manager directory tree must have permissions in an "out-of-the box" state.
SC-2 - Medium - CCI-001082 - V-239388 - SV-239388r674658_rule
RMF Control
SC-2
Severity
Medium
CCI
CCI-001082
Version
VCEM-67-000017
Vuln IDs
  • V-239388
Rule IDs
  • SV-239388r674658_rule
As a rule, accounts on a web server are to be kept to a minimum. Only administrators, web managers, developers, auditors, and web authors require accounts on the machine hosting the web server. The resources to which these accounts have access must also be closely monitored and controlled. ESX Agent Manager files must be adequately protected with correct permissions as applied "out of the box". Satisfies: SRG-APP-000211-WSR-000030, SRG-APP-000380-WSR-000072
Checks: C-42621r674656_chk

At the command prompt, execute the following command: # find /usr/lib/vmware-eam/web/ -xdev -type f -a '(' -not -user eam -o -not -group cis ')' -exec ls -ld {} \; If the command produces any output, this is a finding.

Fix: F-42580r674657_fix

At the command prompt, execute the following command: # chown eam:cis <file_name> Repeat the command for each file that was returned. Note: Replace <file_name> for the name of the file that was returned.

b
ESX Agent Manager must fail to a known safe state if system initialization fails, shutdown fails, or aborts fail.
SC-24 - Medium - CCI-001190 - V-239389 - SV-239389r674661_rule
RMF Control
SC-24
Severity
Medium
CCI
CCI-001190
Version
VCEM-67-000018
Vuln IDs
  • V-239389
Rule IDs
  • SV-239389r674661_rule
Determining a safe state for failure and weighing that against a potential denial of service for users depends on what type of application the web server is hosting. For the ESX Agent Manager, it is preferable that the service abort startup on any initialization failure rather than continuing in a degraded, and potentially insecure, state.
Checks: C-42622r674659_chk

At the command line, execute the following command: # grep EXIT_ON_INIT_FAILURE /etc/vmware-eam/catalina.properties Expected result: org.apache.catalina.startup.EXIT_ON_INIT_FAILURE=true If the output of the command does not match the expected result, this is a finding.

Fix: F-42581r674660_fix

Navigate to and open: /etc/vmware-eam/catalina.properties Add or change the following line: org.apache.catalina.startup.EXIT_ON_INIT_FAILURE=true

b
ESX Agent Manager must limit the number of allowed connections.
SC-5 - Medium - CCI-001094 - V-239390 - SV-239390r674664_rule
RMF Control
SC-5
Severity
Medium
CCI
CCI-001094
Version
VCEM-67-000019
Vuln IDs
  • V-239390
Rule IDs
  • SV-239390r674664_rule
Limiting the number of established connections to the ESX Agent Manager is a basic denial-of-service protection. Servers where the limit is too high or unlimited can potentially run out of system resources and negatively affect system availability.
Checks: C-42623r674662_chk

At the command prompt, execute the following command: # xmllint --xpath '/Server/Service/Connector/@acceptCount' /usr/lib/vmware-eam/web/conf/server.xml Expected result: acceptCount="300" If the output does not match the expected result, this is a finding.

Fix: F-42582r674663_fix

Navigate to and open: /usr/lib/vmware-eam/web/conf/server.xml Configure the <Connector> node with the following value: acceptCount="300"

b
ESX Agent Manager must set "URIEncoding" to UTF-8.
SI-10 - Medium - CCI-001310 - V-239391 - SV-239391r674667_rule
RMF Control
SI-10
Severity
Medium
CCI
CCI-001310
Version
VCEM-67-000020
Vuln IDs
  • V-239391
Rule IDs
  • SV-239391r674667_rule
Invalid user input occurs when a user inserts data or characters into a hosted application's data entry field and the hosted application is unprepared to process that data. This results in unanticipated application behavior, potentially leading to an application compromise. Invalid user input is one of the primary methods employed when attempting to compromise an application. An attacker can also enter Unicode characters into hosted applications in an effort to break out of the document home or root home directory or to bypass security checks. ESX Agent Manager must be configured to use a consistent character set via the "URIEncoding" attribute on the Connector nodes.
Checks: C-42624r674665_chk

At the command prompt, execute the following command: # xmllint --xpath '/Server/Service/Connector/@URIEncoding' /usr/lib/vmware-eam/web/conf/server.xml Expected result: URIEncoding="UTF-8" If the output does not match the expected result, this is a finding.

Fix: F-42583r674666_fix

Navigate to and open: /usr/lib/vmware-eam/web/conf/server.xml Configure the <Connector> node with the following value: URIEncoding="UTF-8"

b
ESX Agent Manager must use the "setCharacterEncodingFilter" filter.
SI-10 - Medium - CCI-001310 - V-239392 - SV-239392r816567_rule
RMF Control
SI-10
Severity
Medium
CCI
CCI-001310
Version
VCEM-67-000021
Vuln IDs
  • V-239392
Rule IDs
  • SV-239392r816567_rule
Invalid user input occurs when a user inserts data or characters into a hosted application's data entry field and the hosted application is unprepared to process that data. This results in unanticipated application behavior, potentially leading to an application compromise. Invalid user input is one of the primary methods employed when attempting to compromise an application. An attacker can also enter Unicode characters into hosted applications in an effort to break out of the document home or root home directory or to bypass security checks. VMware uses the standard Tomcat "SetCharacterEncodingFilter" to provide a layer of defense against character encoding attacks. Filters are Java objects that perform filtering tasks on the request to a resource (a servlet or static content), the response from a resource, or both.
Checks: C-42625r816565_chk

At the command prompt, execute the following command: # xmllint --format /usr/lib/vmware-eam/web/webapps/eam/WEB-INF/web.xml | sed 's/xmlns=".*"//g' | xmllint --xpath '/web-app/filter-mapping/filter-name[text()="setCharacterEncodingFilter"]/parent::filter-mapping' - Expected result: &lt;filter-mapping&gt; &lt;filter-name&gt;setCharacterEncodingFilter&lt;/filter-name&gt; &lt;url-pattern&gt;/*&lt;/url-pattern&gt; &lt;/filter-mapping&gt; If the output is does not match the expected result, this is a finding. At the command prompt, execute the following command: # xmllint --format /usr/lib/vmware-eam/web/webapps/eam/WEB-INF/web.xml | sed 's/xmlns=".*"//g' | xmllint --xpath '/web-app/filter/filter-name[text()="setCharacterEncodingFilter"]/parent::filter' - Expected result: &lt;filter&gt; &lt;filter-name&gt;setCharacterEncodingFilter&lt;/filter-name&gt; &lt;filter-class&gt;org.apache.catalina.filters.SetCharacterEncodingFilter&lt;/filter-class&gt; &lt;init-param&gt; &lt;param-name&gt;encoding&lt;/param-name&gt; &lt;param-value&gt;UTF-8&lt;/param-value&gt; &lt;/init-param&gt; &lt;init-param&gt; &lt;param-name&gt;ignore&lt;/param-name&gt; &lt;param-value&gt;true&lt;/param-value&gt; &lt;/init-param&gt; &lt;async-supported&gt;true&lt;/async-supported&gt; &lt;/filter&gt; If the output is does not match the expected result, this is a finding.

Fix: F-42584r816566_fix

Navigate to and open: /usr/lib/vmware-eam/web/webapps/eam/WEB-INF/web.xml Configure the <web-app> node with the child nodes listed below: <filter-mapping> <filter-name>setCharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter> <filter-name>setCharacterEncodingFilter</filter-name> <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>ignore</param-name> <param-value>true</param-value> </init-param> <async-supported>true</async-supported> </filter>

b
ESX Agent Manager must set the welcome-file node to a default web page.
SI-11 - Medium - CCI-001312 - V-239393 - SV-239393r674673_rule
RMF Control
SI-11
Severity
Medium
CCI
CCI-001312
Version
VCEM-67-000022
Vuln IDs
  • V-239393
Rule IDs
  • SV-239393r674673_rule
Enumeration techniques, such as URL parameter manipulation, rely on being able to obtain information about the web server's directory structure by locating directories without default pages. In this scenario, the web server will display to the user a listing of the files in the directory being accessed. By having a default hosted application web page, the anonymous web user will not obtain directory browsing information or an error message that reveals the server type and version. Ensuring that every document directory has an "index.jsp" (or equivalent) file is one approach to mitigating the vulnerability.
Checks: C-42626r674671_chk

At the command prompt, execute the following command: # xmllint --format /usr/lib/vmware-eam/web/webapps/eam/WEB-INF/web.xml | sed 's/xmlns=".*"//g' | xmllint --xpath '/web-app/welcome-file-list' - Expected result: &lt;welcome-file-list&gt; &lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt; &lt;/welcome-file-list&gt; If the output does not match the expected result, this is a finding.

Fix: F-42585r674672_fix

Navigate to and open: /usr/lib/vmware-eam/web/webapps/eam/WEB-INF/web.xml Add the following section under the <web-apps> node: <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list>

b
ESX Agent Manager must not show directory listings.
SI-11 - Medium - CCI-001312 - V-239394 - SV-239394r674676_rule
RMF Control
SI-11
Severity
Medium
CCI
CCI-001312
Version
VCEM-67-000023
Vuln IDs
  • V-239394
Rule IDs
  • SV-239394r674676_rule
Enumeration techniques, such as URL parameter manipulation, rely on being able to obtain information about the web server's directory structure by locating directories without default pages. In this scenario, the web server will display to the user a listing of the files in the directory being accessed. Ensuring that directory listing is disabled is one approach to mitigating the vulnerability. In Tomcat, directory listing is disabled by default but can be enabled via the "listings" parameter. Ensure that this node is not present in order to have the default effect.
Checks: C-42627r674674_chk

At the command prompt, execute the following command: # xmllint --format /usr/lib/vmware-eam/web/webapps/eam/WEB-INF/web.xml | sed 's/xmlns=".*"//g' | xmllint --xpath '//param-name[text()="listings"]/parent::init-param' - Expected result: XPath set is empty If the output of the command does not match the expected result, this is a finding.

Fix: F-42586r674675_fix

Navigate to and open: /usr/lib/vmware-eam/web/webapps/eam/WEB-INF/web.xml Find and remove the entire block returned in the check. Example: <init-param> <param-name>listings</param-name> <param-value>true</param-value> </init-param>

b
ESX Agent Manager must be configured to show error pages with minimal information.
SI-11 - Medium - CCI-001312 - V-239395 - SV-239395r674679_rule
RMF Control
SI-11
Severity
Medium
CCI
CCI-001312
Version
VCEM-67-000024
Vuln IDs
  • V-239395
Rule IDs
  • SV-239395r674679_rule
Web servers will often display error messages to client users, including enough information to aid in the debugging of the error. The information given back in error messages may display the web server type, version, patches installed, plug-ins and modules installed, type of code being used by the hosted application, and any backends being used for data storage. This information could be used by an attacker to blueprint what type of attacks might be successful. Therefore, the Security Token Service must be configured with a catch-all error handler that redirects to a standard "error.jsp".
Checks: C-42628r674677_chk

At the command prompt, execute the following command: # xmllint --format /usr/lib/vmware-eam/web/webapps/eam/WEB-INF/web.xml | sed 's/xmlns=".*"//g' | xmllint --xpath '/web-app/error-page/exception-type["text()=java.lang.Throwable"]/parent::error-page' - Expected result: &lt;error-page&gt; &lt;exception-type&gt;java.lang.Throwable&lt;/exception-type&gt; &lt;location&gt;/error.jsp&lt;/location&gt; &lt;/error-page&gt; If the output does not match the expected result, this is a finding.

Fix: F-42587r674678_fix

Navigate to and open: /usr/lib/vmware-eam/web/webapps/eam/WEB-INF/web.xml Add the following section under the <web-apps> node: <error-page> <exception-type>java.lang.Throwable</exception-type> <location>/error.jsp</location> </error-page>

b
ESX Agent Manager must not enable support for TRACE requests.
SI-11 - Medium - CCI-001312 - V-239396 - SV-239396r717040_rule
RMF Control
SI-11
Severity
Medium
CCI
CCI-001312
Version
VCEM-67-000025
Vuln IDs
  • V-239396
Rule IDs
  • SV-239396r717040_rule
"Trace" is a technique for a user to request internal information about Tomcat. This is useful during product development but should not be enabled in production. Allowing an attacker to conduct a Trace operation against ESX Agent Manager will expose information that would be useful to perform a more targeted attack. ESX Agent Manager provides the "allowTrace" parameter to disable responding to Trace requests.
Checks: C-42629r674680_chk

At the command prompt, execute the following command: # grep allowTrace /usr/lib/vmware-eam/web/conf/server.xml If "allowTrace" is set to "true", this is a finding. If no line is returned, this is NOT a finding.

Fix: F-42588r674681_fix

Navigate to and open: /usr/lib/vmware-eam/web/conf/server.xml Navigate to and locate: 'allowTrace="true"' Remove the 'allowTrace="true"' setting.

b
ESX Agent Manager must have the debug option turned off.
SI-11 - Medium - CCI-001312 - V-239397 - SV-239397r816570_rule
RMF Control
SI-11
Severity
Medium
CCI
CCI-001312
Version
VCEM-67-000026
Vuln IDs
  • V-239397
Rule IDs
  • SV-239397r816570_rule
Information needed by an attacker to begin looking for possible vulnerabilities in a web server includes any information about the web server and plug-ins or modules being used. When debugging or trace information is enabled in a production web server, information about the web server, such as web server type, version, patches installed, plug-ins and modules installed, type of code being used by the hosted application, and any backends being used for data storage may be displayed. Because this information may be placed in logs and general messages during normal operation of the web server, an attacker does not need to cause an error condition to gain this information. ESX Agent Manager can be configured to set the debugging level. By setting the debugging level to zero (0), no debugging information will be provided to a malicious user.
Checks: C-42630r816568_chk

At the command prompt, execute the following command: # xmllint --format /usr/lib/vmware-eam/web/webapps/eam/WEB-INF/web.xml | sed 's/xmlns=".*"//g' | xmllint --xpath '//param-name[text()="debug"]/parent::init-param' - Expected result: &lt;init-param&gt; &lt;param-name&gt;debug&lt;/param-name&gt; &lt;param-value&gt;0&lt;/param-value&gt; &lt;/init-param&gt; OR XPath set is empty If the output does not match the expected result, this is a finding. If no lines are returned, this is NOT a finding.

Fix: F-42589r816569_fix

Navigate to and open: /usr/lib/vmware-eam/web/webapps/eam/WEB-INF/web.xml Navigate to all <debug> nodes that are not set to "0". Set the <param-value> to "0" in all <param-name>debug</param-name> nodes. Note: The debug setting should look like the following: <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param>

b
Rsyslog must be configured to monitor and ship ESX Agent Manager log files.
AU-9 - Medium - CCI-001348 - V-239398 - SV-239398r840143_rule
RMF Control
AU-9
Severity
Medium
CCI
CCI-001348
Version
VCEM-67-000027
Vuln IDs
  • V-239398
Rule IDs
  • SV-239398r840143_rule
ESX Agent Manager a number of logs that must be offloaded from the originating system. This information can then be used for diagnostic, forensic, or other purposes relevant to ensuring the availability and integrity of the hosted application. Satisfies: SRG-APP-000358-WSR-000163, SRG-APP-000125-WSR-000071
Checks: C-42631r840142_chk

At the command prompt, execute the following command: # grep -v "^#" /etc/vmware-syslog/stig-services-eam.conf Expected result: input(type="imfile" File="/var/log/vmware/eam/eam.log" Tag="eam-main" Severity="info" Facility="local0") input(type="imfile" File="/var/log/vmware/eam/web/localhost_access_log*.txt" Tag="eam-access" Severity="info" Facility="local0") input(type="imfile" File="/var/log/vmware/eam/jvm.log.std*" Tag="eam-stdout" Severity="info" Facility="local0") input(type="imfile" File="/var/log/vmware/eam/web/catalina*.log" Tag="eam-catalina" Severity="info" Facility="local0") input(type="imfile" File="/var/log/vmware/eam/web/localhost.*.log" Tag="eam-catalina" Severity="info" Facility="local0") input(type="imfile" File="/var/log/vmware/firstboot/eam_firstboot.py*.log" Tag="eam-firstboot" Severity="info" Facility="local0") Tag="eam-firstboot" Severity="info" Facility="local0") If the file does not exist, this is a finding. If the output of the command does not match the expected result, this is a finding.

Fix: F-42590r674687_fix

Navigate to and open: /etc/vmware-syslog/stig-services-eam.conf. Create the file if it does not exist. Set the contents of the file as follows: input(type="imfile" File="/var/log/vmware/eam/eam.log" Tag="eam-main" Severity="info" Facility="local0") input(type="imfile" File="/var/log/vmware/eam/web/localhost_access_log*.txt" Tag="eam-access" Severity="info" Facility="local0") input(type="imfile" File="/var/log/vmware/eam/jvm.log.std*" Tag="eam-stdout" Severity="info" Facility="local0") input(type="imfile" File="/var/log/vmware/eam/web/catalina*.log" Tag="eam-catalina" Severity="info" Facility="local0") input(type="imfile" File="/var/log/vmware/eam/web/localhost.*.log" Tag="eam-catalina" Severity="info" Facility="local0") input(type="imfile" File="/var/log/vmware/firstboot/eam_firstboot.py*.log" Tag="eam-firstboot" Severity="info" Facility="local0")

b
ESX Agent Manager must set the secure flag for cookies.
CM-5 - Medium - CCI-001813 - V-239399 - SV-239399r674691_rule
RMF Control
CM-5
Severity
Medium
CCI
CCI-001813
Version
VCEM-67-000028
Vuln IDs
  • V-239399
Rule IDs
  • SV-239399r674691_rule
The secure flag is an option that can be set by the application server when sending a new cookie to the user within an HTTP Response. The purpose of the secure flag is to prevent cookies from being observed by unauthorized parties due to the transmission of a cookie in clear text. By setting the secure flag, the browser will prevent the transmission of a cookie over an unencrypted channel. The ESX Agent Manager is configured to only be accessible over a TLS tunnel, but this cookie flag is still a recommended best practice.
Checks: C-42632r674689_chk

At the command prompt, execute the following command: # xmllint --format /usr/lib/vmware-eam/web/webapps/eam/WEB-INF/web.xml | sed 's/xmlns=".*"//g' | xmllint --xpath '/web-app/session-config/cookie-config/secure' - Expected result: &lt;secure&gt;true&lt;/secure&gt; If the output of the command does not match the expected result, this is a finding.

Fix: F-42591r674690_fix

Navigate to and open: /usr/lib/vmware-eam/web/webapps/eam/WEB-INF/web.xml Navigate to the /<web-apps>/<session-config>/<cookie-config> node and configure it as follows: <cookie-config> <http-only>true</http-only> <secure>true</secure> </cookie-config>

b
ESX Agent Manager must be configured with the appropriate ports.
CM-7 - Medium - CCI-001762 - V-239400 - SV-239400r674694_rule
RMF Control
CM-7
Severity
Medium
CCI
CCI-001762
Version
VCEM-67-000029
Vuln IDs
  • V-239400
Rule IDs
  • SV-239400r674694_rule
Web servers provide numerous processes, features, and functionalities that use TCP/IP ports. Some of these processes may be deemed unnecessary or too unsecure to run on a production system. The ports that the ESX Agent Manager listens on are configured in the "catalina.properties" file and must be verified as accurate to their shipping state.
Checks: C-42633r674692_chk

At the command prompt, execute the following command: # grep 'bio.http.port' /etc/vmware-eam/catalina.properties Expected result: bio.http.port=15005 If the output of the command does not match the expected result, this is a finding.

Fix: F-42592r674693_fix

Navigate to and open: /etc/vmware-eam/catalina.properties Navigate to the ports specification section. Set the ESX Agent Manager port specifications according to the following: bio.http.port=15005

b
ESX Agent Manager must disable the shutdown port.
SC-5 - Medium - CCI-002385 - V-239401 - SV-239401r674697_rule
RMF Control
SC-5
Severity
Medium
CCI
CCI-002385
Version
VCEM-67-000030
Vuln IDs
  • V-239401
Rule IDs
  • SV-239401r674697_rule
An attacker has at least two reasons to stop a web server. The first is to cause a denial of service, and the second is to put in place changes the attacker made to the web server configuration. If the Tomcat shutdown port feature is enabled, a shutdown signal can be sent to the ESX Agent Manager through this port. To ensure availability, the shutdown port must be disabled.
Checks: C-42634r674695_chk

At the command prompt, execute the following command: # grep 'base.shutdown.port' /etc/vmware-eam/catalina.properties Expected result: base.shutdown.port=-1 If the output of the command does not match the expected result, this is a finding.

Fix: F-42593r674696_fix

Open /etc/vmware-eam/catalina.properties in a text editor. Add or modify the setting "base.shutdown.port=-1" in the "catalina.properties" file.