Apache Tomcat Application Server 9 Security Technical Implementation Guide
Rules, Groups, and Values defined within the XCCDF Benchmark
-
The number of allowed simultaneous sessions to the manager application must be limited.
The manager application provides configuration access to the Tomcat server. Access to the manager application must be limited and that includes the number of sessions allowed to access the manageme...Rule Low Severity -
Default password for keystore must be changed.
Tomcat currently operates only on JKS, PKCS11, or PKCS12 format keystores. The JKS format is Java's standard "Java KeyStore" format, and is the format created by the keytool command-line utility wh...Rule High Severity -
Connectors must be secured.
The unencrypted HTTP protocol does not protect data from interception or alteration which can subject users to eavesdropping, tracking, and the modification of received data. To secure an HTTP conn...Rule Medium Severity -
Tomcat servers behind a proxy or load balancer must log client IP.
When running Tomcat behind a load balancer or proxy, default behavior is for Tomcat to log the proxy or load balancer IP address as the client IP. Desired behavior is to log the actual client IP ra...Rule Medium Severity -
The first line of request must be logged.
The access logfile format is defined within a Valve that implements the org.apache.catalina.valves.AccessLogValve interface within the /opt/tomcat/server.xml configuration file: The "%r" ...Rule Medium Severity -
Files in the $CATALINA_BASE/conf/ folder must have their permissions set to 640.
Tomcat file permissions must be restricted. The standard configuration is to have all Tomcat files owned by root with group Tomcat. While root has read/write privileges, group only has read permiss...Rule Medium Severity -
Jar files in the $CATALINA_HOME/bin/ folder must have their permissions set to 640.
Tomcat's file permissions must be restricted. The standard configuration is to have all Tomcat files owned by root with the group Tomcat. While root has read/write privileges, tomcat group only has...Rule Medium Severity -
$CATALINA_HOME/bin folder permissions must be set to 750.
Tomcat file permissions must be restricted. The standard configuration is to have all Tomcat files owned by root with group Tomcat. While root has read/write privileges, group only has read permiss...Rule Medium Severity -
Unapproved connectors must be disabled.
Connectors are how Tomcat receives requests, passes them to hosted web applications, and then sends back the results to the requestor. Tomcat provides HTTP and Apache JServ Protocol (AJP) connector...Rule Medium Severity -
DefaultServlet debug parameter must be disabled.
The DefaultServlet serves static resources as well as serves the directory listings (if directory listings are enabled). It is declared globally in $CATALINA_BASE/conf/web.xml and by default is con...Rule Low Severity -
The deployXML attribute must be set to false in hosted environments.
The Host element controls deployment. Automatic deployment allows for simpler management, but also makes it easier for an attacker to deploy a malicious application. Automatic deployment is control...Rule Medium Severity -
Example applications must be removed.
Tomcat provides example applications, documentation, and other directories in the default installation which do not serve a production use. These files must be deleted.Rule Low Severity -
Tomcat default ROOT web application must be removed.
The default ROOT web application includes the version of Tomcat that is being used, links to Tomcat documentation, examples, FAQs, and mailing lists. The default ROOT web application must be remove...Rule Low Severity -
Applications in privileged mode must be approved by the ISSO.
The privileged attribute controls if a context (application) is allowed to use container provided servlets like the Manager servlet. It is false by default and should only be changed for trusted we...Rule Medium Severity -
TLS must be enabled on JMX.
Java Management Extensions (JMX) provides the means for enterprises to remotely manage the Java VM and can be used in place of the local manager application that comes with Tomcat. JMX management...Rule High Severity -
DOD root CA certificates must be installed in Tomcat trust store.
Tomcat truststores are used to validate client certificates. On the Ubuntu OS, by default, Tomcat uses the "cacerts" file as the CA trust store. The file is located in the /etc/ssl/certs/java/ fold...Rule Medium Severity -
Access to JMX management interface must be restricted.
Java Management Extensions (JMX) is used to provide programmatic access to Tomcat for management purposes. This includes monitoring and control of java applications running on Tomcat. If network ac...Rule Medium Severity -
Access to Tomcat manager application must be restricted.
The Tomcat manager application is used to manage the Tomcat server and the applications that run on Tomcat. By default, the manager application is only accessible via the localhost. Exposing the ma...Rule Medium Severity -
Clusters must operate on a trusted network.
Operating a Tomcat cluster on an untrusted network creates potential for unauthorized persons to view or manipulate cluster session traffic. When operating a Tomcat cluster, care must be taken to i...Rule Medium Severity -
Idle timeout for the management application must be set to 10 minutes.
Tomcat can set idle session timeouts on a per application basis. The management application is provided with the Tomcat installation and is used to manage the applications that are installed on the...Rule Medium Severity -
LockOutRealms failureCount attribute must be set to 5 failed logins for admin users.
A LockOutRealm adds the ability to lock a user out after multiple failed logins. Setting the failureCount attribute to 5 will lock out a user account after 5 failed attempts. LockOutRealm is an i...Rule Medium Severity -
LockOutRealms lockOutTime attribute must be set to 600 seconds (10 minutes) for admin users.
A LockOutRealm adds the ability to specify a lockout time that prevents further attempts after multiple failed logins. Setting the lockOutTime attribute to 600 will lock out a user account for 10 m...Rule Low Severity -
$CATALINA_HOME folder must be owned by the root user, group tomcat.
Tomcat file permissions must be restricted. The standard configuration is to have the folder where Tomcat is installed owned by the root user with the group set to tomcat. The $CATALINA_HOME enviro...Rule Medium Severity -
$CATALINA_BASE/conf/ folder must be owned by root, group tomcat.
Tomcat file permissions must be restricted. The standard configuration is to have Tomcat files contained in the conf/ folder as members of the "tomcat" group. While root has read/write privileges, ...Rule Medium Severity -
$CATALINA_BASE/temp folder permissions must be set to 750.
Tomcat's file permissions must be restricted. The standard configuration is to have all Tomcat files owned by root with the group Tomcat. While root has read/write privileges, tomcat group only has...Rule Low Severity -
$CATALINA_BASE/work/ folder must be owned by tomcat user, group tomcat.
Tomcat file permissions must be restricted. The standard configuration is to have all Tomcat files owned by root with group Tomcat. While root has read/write privileges, group only has read permiss...Rule Medium Severity -
Tomcat server must be patched for security vulnerabilities.
Tomcat is constantly being updated to address newly discovered vulnerabilities, some of which include denial-of-service attacks. To address this risk, the Tomcat administrator must ensure the syste...Rule Medium Severity -
AccessLogValve must be configured for Catalina engine.
The <Engine> container represents the entire request processing machinery associated with a particular Catalina Service. It receives and processes all requests from one or more connectors, and retu...Rule Medium Severity -
Changes to $CATALINA_BASE/conf/ folder must be logged.
The $CATALINA_BASE/conf folder contains configuration files for the Tomcat Catalina server. To provide forensic evidence in the event of file tampering, changes to contents in this folder must be l...Rule Medium Severity -
STRICT_SERVLET_COMPLIANCE must be set to true.
Strict Servlet Compliance forces Tomcat to adhere to standards specifications including but not limited to RFC2109. RFC2109 sets the standard for HTTP session management. This setting affects sever...Rule Low Severity -
RECYCLE_FACADES must be set to true.
If RECYCLE_FACADES is true or if a security manager is in use, a new facade object will be created for each request. This reduces the chances that a bug in an application might expose data from one...Rule Low Severity -
Connectors must be approved by the ISSO.
Connectors are how Tomcat receives requests over a network port, passes them to hosted web applications via HTTP or AJP and then sends back the results to the requestor. A port and a protocol are t...Rule Low Severity -
The application server must alert the system administrator (SA) and information system security offer (ISSO), at a minimum, in the event of a log processing failure.
Logs are essential to monitor the health of the system, investigate changes that occurred to the system, or investigate a security incident. When log processing fails, the events during the failure...Rule Medium Severity -
SRG-APP-000120-AS-000080
Group -
SRG-APP-000001-AS-000001
Group -
SRG-APP-000014-AS-000009
Group -
Secured connectors must be configured to use strong encryption ciphers.
The Tomcat <Connector> element controls the TLS protocol and the associated ciphers used. If a strong cipher is not selected, an attacker may be able to circumvent encryption protections that are c...Rule Medium Severity -
SRG-APP-000015-AS-000010
Group -
HTTP Strict Transport Security (HSTS) must be enabled.
HTTP Strict Transport Security (HSTS) instructs web browsers to only use secure connections for all future requests when communicating with a website. Doing so helps prevent SSL protocol attacks, S...Rule Low Severity -
SRG-APP-000015-AS-000010
Group -
TLS 1.2 must be used on secured HTTP connectors.
Using older versions of TLS introduces security vulnerabilities that exist in the older versions of the protocol. Tomcat by default will use all available versions of the SSL/TLS protocols unless t...Rule Medium Severity -
SRG-APP-000016-AS-000013
Group -
AccessLogValve must be configured for each application context.
Tomcat has the ability to host multiple contexts (applications) on one physical server by using the <Host><Context> attribute. This allows the admin to specify audit log settings on a per applicati...Rule Medium Severity -
SRG-APP-000033-AS-000024
Group -
SRG-APP-000033-AS-000024
Group -
Cookies must have secure flag set.
It is possible to steal or manipulate web application session and cookies without having a secure cookie. Configuring the secure flag injects the setting into the response header. The $CATALINA_BA...Rule Medium Severity -
SRG-APP-000033-AS-000024
Group -
Cookies must have http-only flag set.
It is possible to steal or manipulate web application session and cookies without having a secure cookie. Configuring the secure flag injects the setting into the response header. The $CATALINA_BA...Rule Medium Severity -
SRG-APP-000033-AS-000024
Group -
DefaultServlet must be set to readonly for PUT and DELETE.
The DefaultServlet is a servlet provided with Tomcat. It is called when no other suitable page can be displayed to the client. The DefaultServlet serves static resources as well as directory listin...Rule Medium Severity
Node 2
The content of the drawer really is up to you. It could have form fields, definition lists, text lists, labels, charts, progress bars, etc. Spacing recommendation is 24px margins. You can put tabs in here, and can also make the drawer scrollable.