VMware vSphere 6.7 RhttpProxy STIG
VMware vSphere 6.7 RhttpProxy Security Technical Implementation Guide. Version v1 r3, released July 26, 2023.
VCRP-67-000007: The rhttpproxy private key file must be protected from unauthorized access.
At the command prompt, execute the following command: # stat -c "%n permissions are %a, is owned by %U and group owned by %G" /etc/vmware-rhttpproxy/ssl/rui.key Expected result: /etc/vmware-rhttpproxy/ssl/rui.key permissions are 600, is owned by root and group owned by root If the output does not match the expected result, this is a finding.
Discussion
The rhttpproxy's private key is used to prove the identity of the server to clients and securely exchange the shared secret key used to encrypt communications between the web server and clients. By gaining access to the private key, an attacker can pretend to be an authorized server and decrypt the TLS traffic between a client and the web server.
Fix
At the command prompt, execute the following commands: # chmod 600 /etc/vmware-rhttpproxy/ssl/rui.key # chown root:root /etc/vmware-rhttpproxy/ssl/rui.key
Rating Info
DISA Cat II. NIST impact 3.
Expert Comment
None
VCRP-67-000999: The version of RhttpProxy running on the system must be a supported version.
RhttpProxy 6.7 is no longer supported by the vendor. If the system is running RhttpProxy 6.7, this is a finding.
Discussion
Security flaws with software applications are discovered daily. Vendors are constantly updating and patching their products to address newly discovered security vulnerabilities. Organizations (including any contractor to the organization) are required to promptly install security-relevant software updates (e.g., patches, service packs, and hot fixes). Flaws discovered during security assessments, continuous monitoring, incident response activities, or information system error handling must also be addressed expeditiously. Organization-defined time periods for updating security-relevant software may vary based on a variety of factors including, for example, the security category of the information system or the criticality of the update (i.e., severity of the vulnerability related to the discovered flaw). This requirement will apply to software patch management solutions that are used to install patches across the enclave and to applications that are not part of that patch management solution. For example, many browsers today provide the capability to install their own patch software. Patch criticality, as well as system criticality, will vary. Therefore, the tactical situations regarding the patch management process will also vary. This means the time period used must be a configurable parameter. Time frames for application of security-relevant software updates may be dependent upon the Information Assurance Vulnerability Management (IAVM) process. The application will be configured to check for and install security-relevant software updates within an identified time period from the availability of the update. The specific time period will be defined by an authoritative source (e.g., IAVM, CTOs, DTMs, and STIGs).
Fix
Upgrade to a supported version.
Rating Info
DISA Cat I. NIST impact 4.
Expert Comment
None
VCRP-67-000006: The rhttpproxy must have logging enabled.
At the command prompt, execute the following command: # xmllint --xpath '/config/log/outputToFiles' /etc/vmware-rhttpproxy/config.xml Expected result: <outputToFiles>true</outputToFiles> If the output does not match the expected result, this is a finding.
Discussion
After a security incident has occurred, investigators will often review log files to determine what happened. The rhttpproxy must create logs upon service startup to capture information relevant to investigations.
Fix
Navigate to and open /etc/vmware-rhttpproxy/config.xml. Locate the <config>/<log> block and configure <outputToFiles> as follows: <outputToFiles>true</outputToFiles> Restart the service for changes to take effect. # vmon-cli --restart rhttpproxy
Rating Info
DISA Cat II. NIST impact 3.
Expert Comment
None
VCRP-67-000002: The rhttpproxy must set a limit on established connections.
At the command prompt, execute the following command: # xmllint --xpath '/config/vmacore/http/maxConnections' /etc/vmware-rhttpproxy/config.xml Expected result: <maxConnections> 2048 </maxConnections> If the output does not match the expected result, this is a finding.
Discussion
The rhttpproxy client connections must be limited to preserve system resources and continue servicing connections without interruption. Without a limit set, the system would be vulnerable to a trivial denial-of-service attack where connections are created en masse and vCenter resources are entirely consumed. The rhttproxy comes configured with a tested and supported value that must be maintained.
Fix
Navigate to and open /etc/vmware-rhttpproxy/config.xml. Locate the <config>/<vmacore>/<http> block and configure <maxConnections> as follows: <maxConnections> 2048 </maxConnections> Restart the service for changes to take effect. # vmon-cli --restart rhttpproxy
Rating Info
DISA Cat II. NIST impact 3.
Expert Comment
None
VCRP-67-000009: The rhttpproxy log files must be moved to a permanent repository in accordance with site policy.
At the command prompt, execute the following command: # grep -v "^#" /etc/vmware-syslog/stig-services-rhttpproxy.conf Expected result: input(type="imfile" File="/var/log/vmware/rhttpproxy/rhttpproxy.log" Tag="rhttpproxy-main" 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.
Discussion
The rhttpproxy produces a handful 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.
Fix
Navigate to and open /etc/vmware-syslog/stig-services-rhttpproxy.conf. Create the file if it does not exist. Set the contents of the file as follows: input(type="imfile" File="/var/log/vmware/rhttpproxy/rhttpproxy.log" Tag="rhttpproxy-main" Severity="info" Facility="local0")
Rating Info
DISA Cat II. NIST impact 3.
Expert Comment
None
VCRP-67-000003: The rhttpproxy must be configured to operate solely with FIPS ciphers.
At the command prompt, execute the following command: # xmllint --xpath '/config/vmacore/ssl/fips' /etc/vmware-rhttpproxy/config.xml Expected result: <fips>true</fips> If the output does not match the expected result, this is a finding.
Discussion
The rhttpproxy ships with FIPS 140-2 validated OpenSSL cryptographic libraries and is configured by default to run in FIPS mode. This module is used for all crypto operations performed by rhttproxy, including protection of data-in-transit over the client TLS connection.
Fix
Navigate to and open /etc/vmware-rhttpproxy/config.xml. Locate the <config>/<vmacore>/<ssl> block and configure <fips> as follows: <fips>true</fips> Restart the service for changes to take effect. # vmon-cli --restart rhttpproxy
Rating Info
DISA Cat II. NIST impact 3.
Expert Comment
None
VCRP-67-000004: The rhttpproxy must use cryptography to protect the integrity of remote sessions.
At the command prompt, execute the following command: # xmllint --xpath '/config/vmacore/ssl/protocols' /etc/vmware-rhttpproxy/config.xml Expected result: <protocols>tls1.2</protocols> OR XPath set is empty If the output does not match the expected result, this is a finding.
Discussion
The rhttpproxy can be configured to support TLS 1.0, 1.1 and 1.2. Due to intrinsic problems in TLS 1.0 and TLS 1.1, they are disabled by default. The <protocol> block in the rhttproxy configuration is commented out by default, and this configuration forces TLS 1.2. The block may also be set to "tls1.2" in certain upgrade scenarios, but the effect is the same.
Fix
Navigate to and open /etc/vmware-rhttpproxy/config.xml. Locate the <config>/<vmacore>/<ssl> block and configure <protocols> as follows: <protocols>tls1.2</protocols> Restart the service for changes to take effect. # vmon-cli --restart rhttpproxy
Rating Info
DISA Cat II. NIST impact 3.
Expert Comment
None
VCRP-67-000008: The rhttproxy must exclusively use the HTTPS protocol for client connections.
At the command prompt, execute the following command: # xmllint --xpath '/config/ssl' /etc/vmware-rhttpproxy/config.xml Expected result: <ssl> <!-- The server private key file --> <privateKey>/etc/vmware-rhttpproxy/ssl/rui.key</privateKey> <!-- The server side certificate file --> <certificate>/etc/vmware-rhttpproxy/ssl/rui.crt</certificate> <!-- vecs server name. Currently vecs runs on all node types. --> <vecsServerName>localhost</vecsServerName> </ssl> If the output does not match the expected result, this is a finding.
Discussion
Remotely accessing vCenter via the rhttpproxy involves sensitive information going over the wire. To protect the confidentiality and integrity of these communications, the rhttpproxy must be configured to use an encrypted session of HTTPS rather than plain-text HTTP. The SSL configuration block inside the rhttproxy configuration must be present and configured correctly to safely enable TLS.
Fix
Navigate to and open /etc/vmware-rhttpproxy/config.xml. Locate the first <ssl> block and set its content to the following: <ssl> <!-- The server private key file --> <privateKey>/etc/vmware-rhttpproxy/ssl/rui.key</privateKey> <!-- The server side certificate file --> <certificate>/etc/vmware-rhttpproxy/ssl/rui.crt</certificate> <!-- vecs server name. Currently vecs runs on all node types. --> <vecsServerName>localhost</vecsServerName> </ssl> Restart the service for changes to take effect. # vmon-cli --restart rhttpproxy
Rating Info
DISA Cat II. NIST impact 3.
Expert Comment
None
VCRP-67-000005: The rhttpproxy must produce log records containing sufficient information to establish the source of events.
At the command prompt, execute the following command: # xmllint --xpath '/config/log/level' /etc/vmware-rhttpproxy/config.xml Expected result: <level>verbose</level> If the output does not match the expected result, this is a finding.
Discussion
After a security incident has occurred, investigators will often review log files to determine what happened, and determining the source of an event is crucial for forensics. The rhttpproxy must be configured for verbose logging to capture client IP addresses and the associated actions.
Fix
Navigate to and open /etc/vmware-rhttpproxy/config.xml. Locate the <config>/<log> block and configure <level> as follows: <level>verbose</level> Restart the service for changes to take effect. # vmon-cli --restart rhttpproxy
Rating Info
DISA Cat II. NIST impact 3.
Expert Comment
None
VCRP-67-000001: The rhttpproxy must drop connections to disconnected clients.
At the command prompt, execute the following command: # xmllint --xpath '/config/vmacore/tcpKeepAlive/clientSocket/idleTimeSec' /etc/vmware-rhttpproxy/config.xml Expected result: <idleTimeSec>900</idleTimeSec> If the output does not match the expected result, this is a finding.
Discussion
The rhttpproxy client connections that are established but no longer connected can consume resources that might otherwise be required by active connections. It is a best practice to terminate connections that are no longer connected to an active client.
Fix
Navigate to and open /etc/vmware-rhttpproxy/config.xml. Locate the <config>/<vmacore>/<tcpKeepAlive>/<clientSocket> block and configure <idleTimeSec> as follows: <idleTimeSec>900</idleTimeSec> Restart the service for changes to take effect. # vmon-cli --restart rhttpproxy
Rating Info
DISA Cat II. NIST impact 3.
Expert Comment
None