<?xml version="1.0" encoding="UTF-8"?>
<CHECKLIST>
  <ASSET>
    <ROLE>None</ROLE>
    <ASSET_TYPE>Computing</ASSET_TYPE>
    <HOST_NAME></HOST_NAME>
    <HOST_IP></HOST_IP>
  </ASSET>
  <STIGS>
    <iSTIG>
      <STIG_INFO>
        <SI_DATA>
          <SID_NAME>title</SID_NAME>
          <SID_DATA>VMware vSphere 8.0 vCenter Appliance Envoy Security Technical Implementation Guide</SID_DATA>
        </SI_DATA>
        <SI_DATA>
          <SID_NAME>version</SID_NAME>
          <SID_DATA>2</SID_DATA>
        </SI_DATA>
        <SI_DATA>
          <SID_NAME>releaseinfo</SID_NAME>
          <SID_DATA>Release: 1</SID_DATA>
        </SI_DATA>
      </STIG_INFO>
    <VULN>
      <STIG_DATA>
        <VULN_ATTRIBUTE>Vuln_Num</VULN_ATTRIBUTE>
        <ATTRIBUTE_DATA>V-259161</ATTRIBUTE_DATA>
      </STIG_DATA>
      <STIG_DATA>
        <VULN_ATTRIBUTE>Rule_ID</VULN_ATTRIBUTE>
        <ATTRIBUTE_DATA>SV-259161r960930_rule</ATTRIBUTE_DATA>
      </STIG_DATA>
      <STIG_DATA>
        <VULN_ATTRIBUTE>Severity</VULN_ATTRIBUTE>
        <ATTRIBUTE_DATA>medium</ATTRIBUTE_DATA>
      </STIG_DATA>
      <STIG_DATA>
        <VULN_ATTRIBUTE>Rule_Title</VULN_ATTRIBUTE>
        <ATTRIBUTE_DATA>The vCenter Envoy and Rhttpproxy service log files permissions must be set correctly.</ATTRIBUTE_DATA>
      </STIG_DATA>
      <STIG_DATA>
        <VULN_ATTRIBUTE>Vuln_Discuss</VULN_ATTRIBUTE>
        <ATTRIBUTE_DATA>Log data is essential in the investigation of events. If log data were to become compromised, then competent forensic analysis and discovery of the true source of potentially malicious system activity would be difficult, if not impossible, to achieve. In addition, access to log records provides information an attacker could potentially use to their advantage since each event record might contain communication ports, protocols, services, trust relationships, usernames, etc.

The web server must protect the log data from unauthorized read, write, copy, etc. This can be done by the web server if the web server is also doing the logging function. The web server may also use an external log system. In either case, the logs must be protected from access by nonprivileged users.

Satisfies: SRG-APP-000118-WSR-000068, SRG-APP-000119-WSR-000069, SRG-APP-000120-WSR-000070</ATTRIBUTE_DATA>
      </STIG_DATA>
      <STIG_DATA>
        <VULN_ATTRIBUTE>Check_Content</VULN_ATTRIBUTE>
        <ATTRIBUTE_DATA>At the command prompt, run the following commands:

# find /var/log/vmware/rhttpproxy/ -xdev -type f -a &apos;(&apos; -perm -o+w -o -not -user rhttpproxy -o -not -group rhttpproxy &apos;)&apos; -exec ls -ld {} \;
# find /var/log/vmware/envoy/ -xdev -type f -a &apos;(&apos; -perm -o+w -o -not -user envoy -o -not -group envoy &apos;)&apos; -exec ls -ld {} \;

If any files are returned, this is a finding.</ATTRIBUTE_DATA>
      </STIG_DATA>
      <STIG_DATA>
        <VULN_ATTRIBUTE>Fix_Text</VULN_ATTRIBUTE>
        <ATTRIBUTE_DATA>At the command prompt, run the following commands for rhttpproxy log files:

# chmod o-w &lt;file&gt;
# chown rhttpproxy:rhttpproxy &lt;file&gt;

or

At the command prompt, run the following commands for envoy log files:

# chmod o-w &lt;file&gt;
# chown envoy:envoy &lt;file&gt;</ATTRIBUTE_DATA>
      </STIG_DATA>
      <STATUS>Not_Reviewed</STATUS>
      <FINDING_DETAILS></FINDING_DETAILS>
      <COMMENTS></COMMENTS>
    </VULN>
    <VULN>
      <STIG_DATA>
        <VULN_ATTRIBUTE>Vuln_Num</VULN_ATTRIBUTE>
        <ATTRIBUTE_DATA>V-259162</ATTRIBUTE_DATA>
      </STIG_DATA>
      <STIG_DATA>
        <VULN_ATTRIBUTE>Rule_ID</VULN_ATTRIBUTE>
        <ATTRIBUTE_DATA>SV-259162r961041_rule</ATTRIBUTE_DATA>
      </STIG_DATA>
      <STIG_DATA>
        <VULN_ATTRIBUTE>Severity</VULN_ATTRIBUTE>
        <ATTRIBUTE_DATA>medium</ATTRIBUTE_DATA>
      </STIG_DATA>
      <STIG_DATA>
        <VULN_ATTRIBUTE>Rule_Title</VULN_ATTRIBUTE>
        <ATTRIBUTE_DATA>The vCenter Envoy service private key file must be protected from unauthorized access.</ATTRIBUTE_DATA>
      </STIG_DATA>
      <STIG_DATA>
        <VULN_ATTRIBUTE>Vuln_Discuss</VULN_ATTRIBUTE>
        <ATTRIBUTE_DATA>Envoy&apos;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 Transport Layer Security (TLS) traffic between a client and the web server.</ATTRIBUTE_DATA>
      </STIG_DATA>
      <STIG_DATA>
        <VULN_ATTRIBUTE>Check_Content</VULN_ATTRIBUTE>
        <ATTRIBUTE_DATA>At the command prompt, run the following command:

# stat -c &quot;%n permissions are %a, is owned by %U and group owned by %G&quot; /etc/vmware-rhttpproxy/ssl/rui.key

Expected result:

/etc/vmware-rhttpproxy/ssl/rui.key permissions are 600, is owned by rhttpproxy and group owned by rhttpproxy

If the output does not match the expected result, this is a finding.</ATTRIBUTE_DATA>
      </STIG_DATA>
      <STIG_DATA>
        <VULN_ATTRIBUTE>Fix_Text</VULN_ATTRIBUTE>
        <ATTRIBUTE_DATA>At the command prompt, run the following commands:

# chmod 600 /etc/vmware-rhttpproxy/ssl/rui.key
# chown rhttpproxy:rhttpproxy /etc/vmware-rhttpproxy/ssl/rui.key</ATTRIBUTE_DATA>
      </STIG_DATA>
      <STATUS>Not_Reviewed</STATUS>
      <FINDING_DETAILS></FINDING_DETAILS>
      <COMMENTS></COMMENTS>
    </VULN>
    <VULN>
      <STIG_DATA>
        <VULN_ATTRIBUTE>Vuln_Num</VULN_ATTRIBUTE>
        <ATTRIBUTE_DATA>V-259163</ATTRIBUTE_DATA>
      </STIG_DATA>
      <STIG_DATA>
        <VULN_ATTRIBUTE>Rule_ID</VULN_ATTRIBUTE>
        <ATTRIBUTE_DATA>SV-259163r961395_rule</ATTRIBUTE_DATA>
      </STIG_DATA>
      <STIG_DATA>
        <VULN_ATTRIBUTE>Severity</VULN_ATTRIBUTE>
        <ATTRIBUTE_DATA>medium</ATTRIBUTE_DATA>
      </STIG_DATA>
      <STIG_DATA>
        <VULN_ATTRIBUTE>Rule_Title</VULN_ATTRIBUTE>
        <ATTRIBUTE_DATA>The vCenter Rhttpproxy service log files must be sent to a central log server.</ATTRIBUTE_DATA>
      </STIG_DATA>
      <STIG_DATA>
        <VULN_ATTRIBUTE>Vuln_Discuss</VULN_ATTRIBUTE>
        <ATTRIBUTE_DATA>Writing events to a centralized management audit system offers many benefits to the enterprise over having dispersed logs. Centralized management of audit records and logs provides for efficiency in maintenance and management of records, enterprise analysis of events, and backup and archiving of event records enterprise-wide. The web server and related components are required to be capable of writing logs to centralized audit log servers.

Satisfies: SRG-APP-000358-WSR-000063, SRG-APP-000125-WSR-000071</ATTRIBUTE_DATA>
      </STIG_DATA>
      <STIG_DATA>
        <VULN_ATTRIBUTE>Check_Content</VULN_ATTRIBUTE>
        <ATTRIBUTE_DATA>By default, there is a vmware-services-rhttpproxy.conf rsyslog configuration file that includes the service logs when syslog is configured on vCenter, but it must be verified.

At the command prompt, run the following command:

# cat /etc/vmware-syslog/vmware-services-rhttpproxy.conf

Expected result:

#rhttpproxy log
input(type=&quot;imfile&quot;
      File=&quot;/var/log/vmware/rhttpproxy/rhttpproxy.log&quot;
      Tag=&quot;rhttpproxy-main&quot;
      Severity=&quot;info&quot;
      Facility=&quot;local0&quot;)
#rhttpproxy init stdout
input(type=&quot;imfile&quot;
      File=&quot;/var/log/vmware/rhttpproxy/rproxy_init.log.stdout&quot;
      Tag=&quot;rhttpproxy-stdout&quot;
      Severity=&quot;info&quot;
      Facility=&quot;local0&quot;)
#rhttpproxy init stderr
input(type=&quot;imfile&quot;
      File=&quot;/var/log/vmware/rhttpproxy/rproxy_init.log.stderr&quot;
      Tag=&quot;rhttpproxy-stderr&quot;
      Severity=&quot;info&quot;
      Facility=&quot;local0&quot;)

If the output does not match the expected result, this is a finding.</ATTRIBUTE_DATA>
      </STIG_DATA>
      <STIG_DATA>
        <VULN_ATTRIBUTE>Fix_Text</VULN_ATTRIBUTE>
        <ATTRIBUTE_DATA>Navigate to and open:

/etc/vmware-syslog/vmware-services-rhttpproxy.conf

Create the file if it does not exist.

Set the contents of the file as follows:

#rhttpproxy log
input(type=&quot;imfile&quot;
      File=&quot;/var/log/vmware/rhttpproxy/rhttpproxy.log&quot;
      Tag=&quot;rhttpproxy-main&quot;
      Severity=&quot;info&quot;
      Facility=&quot;local0&quot;)
#rhttpproxy init stdout
input(type=&quot;imfile&quot;
      File=&quot;/var/log/vmware/rhttpproxy/rproxy_init.log.stdout&quot;
      Tag=&quot;rhttpproxy-stdout&quot;
      Severity=&quot;info&quot;
      Facility=&quot;local0&quot;)
#rhttpproxy init stderr
input(type=&quot;imfile&quot;
      File=&quot;/var/log/vmware/rhttpproxy/rproxy_init.log.stderr&quot;
      Tag=&quot;rhttpproxy-stderr&quot;
      Severity=&quot;info&quot;
      Facility=&quot;local0&quot;)</ATTRIBUTE_DATA>
      </STIG_DATA>
      <STATUS>Not_Reviewed</STATUS>
      <FINDING_DETAILS></FINDING_DETAILS>
      <COMMENTS></COMMENTS>
    </VULN>
    <VULN>
      <STIG_DATA>
        <VULN_ATTRIBUTE>Vuln_Num</VULN_ATTRIBUTE>
        <ATTRIBUTE_DATA>V-259164</ATTRIBUTE_DATA>
      </STIG_DATA>
      <STIG_DATA>
        <VULN_ATTRIBUTE>Rule_ID</VULN_ATTRIBUTE>
        <ATTRIBUTE_DATA>SV-259164r961395_rule</ATTRIBUTE_DATA>
      </STIG_DATA>
      <STIG_DATA>
        <VULN_ATTRIBUTE>Severity</VULN_ATTRIBUTE>
        <ATTRIBUTE_DATA>medium</ATTRIBUTE_DATA>
      </STIG_DATA>
      <STIG_DATA>
        <VULN_ATTRIBUTE>Rule_Title</VULN_ATTRIBUTE>
        <ATTRIBUTE_DATA>The vCenter Envoy service log files must be sent to a central log server.</ATTRIBUTE_DATA>
      </STIG_DATA>
      <STIG_DATA>
        <VULN_ATTRIBUTE>Vuln_Discuss</VULN_ATTRIBUTE>
        <ATTRIBUTE_DATA>Writing events to a centralized management audit system offers many benefits to the enterprise over having dispersed logs. Centralized management of audit records and logs provides for efficiency in maintenance and management of records, enterprise analysis of events, and backup and archiving of event records enterprise-wide. The web server and related components are required to be capable of writing logs to centralized audit log servers.</ATTRIBUTE_DATA>
      </STIG_DATA>
      <STIG_DATA>
        <VULN_ATTRIBUTE>Check_Content</VULN_ATTRIBUTE>
        <ATTRIBUTE_DATA>By default, there is a vmware-services-envoy.conf rsyslog configuration file that includes the service logs when syslog is configured on vCenter, but it must be verified.

At the command prompt, run the following command:

# cat /etc/vmware-syslog/vmware-services-envoy.conf

Expected result:

#envoy service log
input(type=&quot;imfile&quot;
      File=&quot;/var/log/vmware/envoy/envoy.log&quot;
      Tag=&quot;envoy-main&quot;
      Severity=&quot;info&quot;
      Facility=&quot;local0&quot;)
#envoy access log
input(type=&quot;imfile&quot;
      File=&quot;/var/log/vmware/envoy/envoy-access.log&quot;
      Tag=&quot;envoy-access&quot;
      Severity=&quot;info&quot;
      Facility=&quot;local0&quot;)
#envoy init stdout
input(type=&quot;imfile&quot;
      File=&quot;/var/log/vmware/envoy/envoy_init.log.stdout&quot;
      Tag=&quot;envoy-stdout&quot;
      Severity=&quot;info&quot;
      Facility=&quot;local0&quot;)
#envoy init stderr
input(type=&quot;imfile&quot;
      File=&quot;/var/log/vmware/envoy/envoy_init.log.stderr&quot;
      Tag=&quot;envoy-stderr&quot;
      Severity=&quot;info&quot;
      Facility=&quot;local0&quot;)

If the output does not match the expected result, this is a finding.</ATTRIBUTE_DATA>
      </STIG_DATA>
      <STIG_DATA>
        <VULN_ATTRIBUTE>Fix_Text</VULN_ATTRIBUTE>
        <ATTRIBUTE_DATA>Navigate to and open:

/etc/vmware-syslog/vmware-services-envoy.conf

Create the file if it does not exist.

Set the contents of the file as follows:

#envoy service log
input(type=&quot;imfile&quot;
      File=&quot;/var/log/vmware/envoy/envoy.log&quot;
      Tag=&quot;envoy-main&quot;
      Severity=&quot;info&quot;
      Facility=&quot;local0&quot;)
#envoy access log
input(type=&quot;imfile&quot;
      File=&quot;/var/log/vmware/envoy/envoy-access.log&quot;
      Tag=&quot;envoy-access&quot;
      Severity=&quot;info&quot;
      Facility=&quot;local0&quot;)
#envoy init stdout
input(type=&quot;imfile&quot;
      File=&quot;/var/log/vmware/envoy/envoy_init.log.stdout&quot;
      Tag=&quot;envoy-stdout&quot;
      Severity=&quot;info&quot;
      Facility=&quot;local0&quot;)
#envoy init stderr
input(type=&quot;imfile&quot;
      File=&quot;/var/log/vmware/envoy/envoy_init.log.stderr&quot;
      Tag=&quot;envoy-stderr&quot;
      Severity=&quot;info&quot;
      Facility=&quot;local0&quot;)</ATTRIBUTE_DATA>
      </STIG_DATA>
      <STATUS>Not_Reviewed</STATUS>
      <FINDING_DETAILS></FINDING_DETAILS>
      <COMMENTS></COMMENTS>
    </VULN>
    <VULN>
      <STIG_DATA>
        <VULN_ATTRIBUTE>Vuln_Num</VULN_ATTRIBUTE>
        <ATTRIBUTE_DATA>V-259165</ATTRIBUTE_DATA>
      </STIG_DATA>
      <STIG_DATA>
        <VULN_ATTRIBUTE>Rule_ID</VULN_ATTRIBUTE>
        <ATTRIBUTE_DATA>SV-259165r960735_rule</ATTRIBUTE_DATA>
      </STIG_DATA>
      <STIG_DATA>
        <VULN_ATTRIBUTE>Severity</VULN_ATTRIBUTE>
        <ATTRIBUTE_DATA>medium</ATTRIBUTE_DATA>
      </STIG_DATA>
      <STIG_DATA>
        <VULN_ATTRIBUTE>Rule_Title</VULN_ATTRIBUTE>
        <ATTRIBUTE_DATA>The vCenter Envoy service must set a limit on remote connections.</ATTRIBUTE_DATA>
      </STIG_DATA>
      <STIG_DATA>
        <VULN_ATTRIBUTE>Vuln_Discuss</VULN_ATTRIBUTE>
        <ATTRIBUTE_DATA>Envoy 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.

Envoy comes hard coded with a tested and supported value for &quot;maxRemoteHttpsConnections&quot; and &quot;maxRemoteHttpConnections&quot; that must be verified and maintained.</ATTRIBUTE_DATA>
      </STIG_DATA>
      <STIG_DATA>
        <VULN_ATTRIBUTE>Check_Content</VULN_ATTRIBUTE>
        <ATTRIBUTE_DATA>At the command prompt, run the following commands:

# xmllint --xpath &apos;/config/envoy/L4Filter/maxRemoteHttpsConnections/text()&apos; /etc/vmware-rhttpproxy/config.xml
# xmllint --xpath &apos;/config/envoy/L4Filter/maxRemoteHttpConnections/text()&apos; /etc/vmware-rhttpproxy/config.xml

Example result:

2048

or

XPath set is empty

If the output is not &quot;2048&quot; or &quot;XPath set it empty&quot;, this is a finding.

Note: If &quot;XPath set is empty&quot; is returned the default values are in effect and is 2048.</ATTRIBUTE_DATA>
      </STIG_DATA>
      <STIG_DATA>
        <VULN_ATTRIBUTE>Fix_Text</VULN_ATTRIBUTE>
        <ATTRIBUTE_DATA>Navigate to and open:

/etc/vmware-rhttpproxy/config.xml

Locate the &lt;config&gt;/&lt;envoy&gt;/&lt;L4Filter&gt; block and configure it as follows:

&lt;maxRemoteHttpsConnections&gt;2048&lt;/maxRemoteHttpsConnections&gt;
&lt;maxRemoteHttpConnections&gt;2048&lt;/maxRemoteHttpConnections&gt;

Restart the service for changes to take effect.

# vmon-cli --restart rhttpproxy</ATTRIBUTE_DATA>
      </STIG_DATA>
      <STATUS>Not_Reviewed</STATUS>
      <FINDING_DETAILS></FINDING_DETAILS>
      <COMMENTS></COMMENTS>
    </VULN>
    </iSTIG>
  </STIGS>
</CHECKLIST>