Apache Server 2.4 UNIX Site Security Technical Implementation Guide
Pick two releases to diff their requirements.
Open a previous version of this STIG.
Digest of Updates +28 −44
Comparison against the immediately-prior release (V1R0.1). Rule matching uses the Group Vuln ID. Content-change detection compares the rule’s description, check, and fix text after stripping inline markup — cosmetic-only edits aren’t flagged.
Added rules 28
- V-92761 Medium The Apache web server must perform server-side session management.
- V-92763 Medium The Apache web server must use encryption strength in accordance with the categorization of data hosted by the Apache web server when remote connections are provided.
- V-92769 Medium The Apache web server must produce log records containing sufficient information to establish what type of events occurred.
- V-92771 Medium The Apache web server must not perform user management for hosted applications.
- V-92773 Medium The Apache web server must have Multipurpose Internet Mail Extensions (MIME) that invoke operating system shell programs disabled.
- V-92775 Medium The Apache web server must allow mappings to unused and vulnerable scripts to be removed.
- V-92777 Medium The Apache web server must have resource mappings set to disable the serving of certain file types.
- V-92779 Medium Users and scripts running on behalf of users must be contained to the document root or home directory tree of the Apache web server.
- V-92781 Medium The Apache web server must be configured to use a specified IP address and port.
- V-92785 Medium The Apache web server must perform RFC 5280-compliant certification path validation.
- V-92787 Medium Only authenticated system administrators or the designated PKI Sponsor for the Apache web server must have access to the Apache web servers private key.
- V-92795 Medium Cookies exchanged between the Apache web server and client, such as session cookies, must have security settings that disallow cookie access outside the originating Apache web server and hosted application.
- V-92797 Medium The Apache web server must augment re-creation to a stable and known baseline.
- V-92799 Medium The Apache web server document directory must be in a separate partition from the Apache web servers system files.
- V-92801 Medium The Apache web server must be tuned to handle the operational requirements of the hosted application.
- V-92803 Medium The Apache web server must display a default hosted application web page, not a directory listing, when a requested web page cannot be found.
- V-92805 Medium Warning and error messages displayed to clients must be modified to minimize the identity of the Apache web server, patches, loaded modules, and directory paths.
- V-92807 Medium Debugging and trace information used to diagnose the Apache web server must be disabled.
- V-92809 Medium The Apache web server must set an absolute timeout for sessions.
- V-92811 Medium The Apache web server must set an inactive timeout for sessions.
- V-92815 Medium The Apache web server must restrict inbound connections from nonsecure zones.
- V-92817 Medium Non-privileged accounts on the hosting system must only access Apache web server security-relevant information and functions through a distinct administrative account.
- V-92819 Medium The Apache web server application, libraries, and configuration files must only be accessible to privileged users.
- V-92821 Medium The Apache web server must only accept client certificates issued by DoD PKI or DoD-approved PKI Certification Authorities (CAs).
- V-92831 Medium The Apache web server cookies, such as session cookies, sent to the client using SSL/TLS must not be compressed.
- V-92833 Medium Cookies exchanged between the Apache web server and the client, such as session cookies, must have cookie properties set to prohibit client-side scripts from reading the cookie data.
- V-92835 Medium Cookies exchanged between the Apache web server and the client, such as session cookies, must have cookie properties set to force the encryption of cookies.
- V-92843 Low The Apache web server must be configured in accordance with the security configuration settings based on DoD security configuration or implementation guidance, including STIGs, NSA configuration guides, CTOs, and DTMs.
Removed rules 44
- AS24-U2-000020 Medium The Apache web server must perform server-side session management.
- AS24-U2-000030 Medium The Apache web server must use encryption strength in accordance with the categorization of data hosted by the Apache web server when remote connections are provided.
- AS24-U2-000040 Medium The Apache web server must use cryptography to protect the integrity of remote sessions.
- AS24-U2-000060 Medium The Apache web server must enforce approved authorizations for logical access to hosted applications and resources in accordance with applicable access control policies.
- AS24-U2-000090 Medium The Apache web server must produce log records containing sufficient information to establish what type of events occurred.
- AS24-U2-000140 Medium The Apache web server must produce log records that contain sufficient information to establish the outcome (success or failure) of events.
- AS24-U2-000150 Medium The Apache web server must produce log records containing sufficient information to establish the identity of any user/subject or process associated with an event.
- AS24-U2-000240 Medium The Apache web server must not perform user management for hosted applications.
- AS24-U2-000300 Medium The Apache web server must have Multipurpose Internet Mail Extensions (MIME) that invoke operating system shell programs disabled.
- AS24-U2-000310 Medium The Apache web server must allow mappings to unused and vulnerable scripts to be removed.
- AS24-U2-000320 Medium The Apache web server must have resource mappings set to disable the serving of certain file types.
- AS24-U2-000350 Medium Users and scripts running on behalf of users must be contained to the document root or home directory tree of the Apache web server.
- AS24-U2-000360 Medium The Apache web server must be configured to use a specified IP address and port.
- AS24-U2-000370 Medium The Apache web server must encrypt passwords during transmission.
- AS24-U2-000380 Medium The Apache web server must perform RFC 5280-compliant certification path validation.
- AS24-U2-000390 Medium Only authenticated system administrators or the designated PKI Sponsor for the Apache web server must have access to the Apache web servers private key.
- AS24-U2-000400 Medium The Apache web server must use cryptographic modules that meet the requirements of applicable federal laws, Executive Orders, directives, policies, regulations, standards, and guidance when encrypting stored data.
- AS24-U2-000410 Medium The Apache web server must use cryptographic modules that meet the requirements of applicable federal laws, Executive Orders, directives, policies, regulations, standards, and guidance for such authentication.
- AS24-U2-000420 Medium An Apache web server using mobile code must meet DoD-defined mobile code requirements.
- AS24-U2-000470 Medium Cookies exchanged between the Apache web server and client, such as session cookies, must have security settings that disallow cookie access outside the originating Apache web server and hosted application.
- AS24-U2-000540 Medium The Apache web server must augment re-creation to a stable and known baseline.
- AS24-U2-000580 Medium The Apache web server document directory must be in a separate partition from the Apache web servers system files.
- AS24-U2-000590 Medium The Apache web server must restrict the ability of users to launch denial-of-service (DoS) attacks against other information systems or networks.
- AS24-U2-000620 Medium The Apache web server must display a default hosted application web page, not a directory listing, when a requested web page cannot be found.
- AS24-U2-000630 Medium Warning and error messages displayed to clients must be modified to minimize the identity of the Apache web server, patches, loaded modules, and directory paths.
- AS24-U2-000640 Medium Debugging and trace information used to diagnose the Apache web server must be disabled.
- AS24-U2-000650 Medium The Apache web server must set an absolute timeout for sessions.
- AS24-U2-000660 Medium The Apache web server must set an inactive timeout for sessions.
- AS24-U2-000670 High Remote access to the Apache web server must follow access policy or work in conjunction with enterprise tools designed to enforce policy requirements.
- AS24-U2-000680 Medium The Apache web server must restrict inbound connections from nonsecure zones.
- AS24-U2-000700 Medium Non-privileged accounts on the hosting system must only access Apache web server security-relevant information and functions through a distinct administrative account.
- AS24-U2-000780 Medium The Apache web server application, libraries, and configuration files must only be accessible to privileged users.
- AS24-U2-000810 Medium The Apache web server must only accept client certificates issued by DoD PKI or DoD-approved PKI Certification Authorities (CAs).
- AS24-U2-000820 Medium The Apache web server private website must employ cryptographic mechanisms (TLS) and require client certificates.
- AS24-U2-000840 Medium The Apache web server must be tuned to handle the operational requirements of the hosted application.
- AS24-U2-000850 Medium The Apache web server must employ cryptographic mechanisms (TLS/DTLS/SSL) preventing the unauthorized disclosure of information during transmission.
- AS24-U2-000860 Medium The Apache web server session IDs must be sent to the client using SSL/TLS.
- AS24-U2-000870 Medium The Apache web server cookies, such as session cookies, sent to the client using SSL/TLS must not be compressed.
- AS24-U2-000880 Medium Cookies exchanged between the Apache web server and the client, such as session cookies, must have cookie properties set to prohibit client-side scripts from reading the cookie data.
- AS24-U2-000890 Medium Cookies exchanged between the Apache web server and the client, such as session cookies, must have cookie properties set to force the encryption of cookies.
- AS24-U2-000900 High An Apache web server must maintain the confidentiality of controlled information during transmission through the use of an approved TLS version.
- AS24-U2-000920 Medium The Apache web server must maintain the confidentiality and integrity of information during preparation for transmission.
- AS24-U2-000930 Medium The Apache web server must maintain the confidentiality and integrity of information during reception.
- AS24-U2-000960 Low The Apache web server must be configured in accordance with the security configuration settings based on DoD security configuration or implementation guidance, including STIGs, NSA configuration guides, CTOs, and DTMs.
- RMF Control
- AC-10
- Severity
- M
- CCI
- CCI-000054
- Version
- AS24-U2-000020
- Vuln IDs
-
- V-92761
- Rule IDs
-
- SV-102849r1_rule
Checks: C-92067r1_chk
In a command line, run "httpd -M | grep -i session_module" and "httpd -M | grep -i usertrack_module". If "session_module" module and "usertrack_module" are not enabled or do not exist, this is a finding.
Fix: F-99005r1_fix
If the modules are not installed, install any missing packages. Add the following lines to the "httpd.conf" file: LoadModule usertrack_module modules/mod_usertrack.so LoadModule session_module modules/mod_session.so Additional documentation can be found at: https://httpd.apache.org/docs/2.4/mod/mod_usertrack.html https://httpd.apache.org/docs/2.4/mod/mod_session.html Restart Apache: apachectl restart
- RMF Control
- AC-17
- Severity
- M
- CCI
- CCI-000068
- Version
- AS24-U2-000030
- Vuln IDs
-
- V-92763
- Rule IDs
-
- SV-102851r1_rule
Checks: C-92069r1_chk
In a command line, run "httpd -M | grep -i ssl_module". If the "ssl_module" is not enabled, this is a finding. Determine the location of the "HTTPD_ROOT" directory and the "httpd.conf" file: # httpd -V | egrep -i 'httpd_root|server_config_file' -D HTTPD_ROOT="/etc/httpd" -D SERVER_CONFIG_FILE="conf/httpd.conf" Search for the directive "SSLProtocol" in the "httpd.conf" file: # cat /<path_to_file>/httpd.conf | grep -i "SSLProtocol" If the "SSLProtocol" directive is missing or does not look like the following, this is a finding: SSLProtocol -ALL +TLSv1.2 If the TLS version is not TLS 1.2 or higher, according to NIST SP 800-52 Rev 2, or if non-FIPS-approved algorithms are enabled, this is a finding. NOTE: In some cases, web servers are configured in an environment to support load balancing. This configuration most likely uses a content switch to control traffic to the various web servers. In this situation, the TLS certificate for the websites may be installed on the content switch versus the individual websites. This solution is acceptable as long as the web servers are isolated from the general population LAN. Users should not have the ability to bypass the content switch to access the websites.
Fix: F-99007r1_fix
Determine the location of the "HTTPD_ROOT" directory and the "httpd.conf" file: # httpd -V | egrep -i 'httpd_root|server_config_file' -D HTTPD_ROOT="/etc/httpd" -D SERVER_CONFIG_FILE="conf/httpd.conf" Ensure the "SSLProtocol" is added and looks like the following: SSLProtocol -ALL +TLSv1.2 Restart Apache: apachectl restart
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- AS24-U2-000090
- Vuln IDs
-
- V-92769
- Rule IDs
-
- SV-102857r1_rule
Checks: C-92075r1_chk
In a command line, run "httpd -M | grep -i log_config_module". If the "log_config_module" is not enabled, this is a finding. Determine the location of the "HTTPD_ROOT" directory and the "httpd.conf" file: # httpd -V | egrep -i 'httpd_root|server_config_file' -D HTTPD_ROOT="/etc/httpd" -D SERVER_CONFIG_FILE="conf/httpd.conf" Search for the directive "LogFormat" in the httpd.conf file: # cat /<path_to_file>/httpd.conf | grep -i "LogFormat" If the "LogFormat" directive is missing or does not look like the following, this is a finding: LogFormat "%a %A %h %H %l %m %s %t %u %U \"%{Referer}i\" " common
Fix: F-99013r1_fix
Determine the location of the "HTTPD_ROOT" directory and the "httpd.conf" file: # httpd -V | egrep -i 'httpd_root|server_config_file' -D HTTPD_ROOT="/etc/httpd" -D SERVER_CONFIG_FILE="conf/httpd.conf" Uncomment the "log_config_module" module line. Configure the "LogFormat" in the "httpd.conf" file to look like the following: LogFormat "%a %A %h %H %l %m %s %t %u %U \"%{Referer}i\" " common Restart Apache: apachectl restart NOTE: Your log format may be using different variables based on your environment, however it should be verified to be producing the same end result of logged elements.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AS24-U2-000240
- Vuln IDs
-
- V-92771
- Rule IDs
-
- SV-102859r1_rule
Checks: C-92077r1_chk
Interview the System Administrator (SA) about the role of the Apache web server. If the web server is hosting an application, have the SA provide supporting documentation on how the application's user management is accomplished outside of the web server. If the web server is not hosting an application, this is Not Applicable. If the web server is performing user management for hosted applications, this is a finding. If the web server is hosting an application and the SA cannot provide supporting documentation on how the application's user management is accomplished outside of the Apache web server, this is a finding.
Fix: F-99015r1_fix
Reconfigure any hosted applications on the Apache web server to perform user management outside the web server. Document how the hosted application user management is accomplished.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AS24-U2-000300
- Vuln IDs
-
- V-92773
- Rule IDs
-
- SV-102861r1_rule
Checks: C-92079r1_chk
In a command line, run "httpd -M | grep -i ssl_module". If the "ssl_module" is not enabled, this is a finding. Determine the location of the "HTTPD_ROOT" directory and the "httpd.conf" file: # httpd -V | egrep -i 'httpd_root|server_config_file' -D HTTPD_ROOT="/etc/httpd" -D SERVER_CONFIG_FILE="conf/httpd.conf" If "Action" or "AddHandler" exist and they configure .exe, .dll, .com, .bat, or .csh, or any other shell as a viewer for documents, this is a finding. If this is not documented and approved by the Information System Security Officer (ISSO), this is a finding.
Fix: F-99017r1_fix
Determine the location of the "HTTPD_ROOT" directory and the "httpd.conf" file: # httpd -V | egrep -i 'httpd_root|server_config_file' -D HTTPD_ROOT="/etc/httpd" -D SERVER_CONFIG_FILE="conf/httpd.conf" Disable MIME types for .exe, .dll, .com, .bat, and .csh programs. If "Action" or "AddHandler" exist and they configure any of the following (.exe, .dll, .com, .bat, or .csh), remove those references. Restart Apache: apachectl restart Ensure this process is documented and approved by the ISSO.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AS24-U2-000310
- Vuln IDs
-
- V-92775
- Rule IDs
-
- SV-102863r1_rule
Checks: C-92081r1_chk
Determine the location of the "HTTPD_ROOT" directory and the "httpd.conf" file: # httpd -V | egrep -i 'httpd_root|server_config_file' -D HTTPD_ROOT="/etc/httpd" -D SERVER_CONFIG_FILE="conf/httpd.conf" Review "Script", "ScriptAlias" or "ScriptAliasMatch", or "ScriptInterpreterSource" directives. Go into each directory and locate "cgi-bin" files. If any scripts are present that are not needed for application operation, this is a finding. If this is not documented and approved by the Information System Security Officer (ISSO), this is a finding.
Fix: F-99019r1_fix
Determine the location of the "HTTPD_ROOT" directory and the "httpd.conf" file: # httpd -V | egrep -i 'httpd_root|server_config_file' -D HTTPD_ROOT="/etc/httpd" -D SERVER_CONFIG_FILE="conf/httpd.conf" Remove any scripts in "cgi-bin" directory if they are not needed for application operation. Ensure this process is documented and approved by the ISSO.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AS24-U2-000320
- Vuln IDs
-
- V-92777
- Rule IDs
-
- SV-102865r1_rule
Checks: C-92083r1_chk
Determine the location of the "HTTPD_ROOT" directory and the "httpd.conf" file: # httpd -V | egrep -i 'httpd_root|server_config_file' -D HTTPD_ROOT="/etc/httpd" -D SERVER_CONFIG_FILE="conf/httpd.conf" If "Action" or "AddHandler" exist and they configure .exe, .dll, .com, .bat, or .csh, or any other shell as a viewer for documents, this is a finding. If this is not documented and approved by the Information System Security Officer (ISSO), this is a finding.
Fix: F-99021r1_fix
Determine the location of the "HTTPD_ROOT" directory and the "httpd.conf" file: # httpd -V | egrep -i 'httpd_root|server_config_file' -D HTTPD_ROOT="/etc/httpd" -D SERVER_CONFIG_FILE="conf/httpd.conf" Disable MIME types for .exe, .dll, .com, .bat, and .csh programs. If "Action" or "AddHandler" exist and they configure .exe, .dll, .com, .bat, or .csh, remove those references. Restart Apache: apachectl restart Ensure this process is documented and approved by the ISSO.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AS24-U2-000350
- Vuln IDs
-
- V-92779
- Rule IDs
-
- SV-102867r1_rule
Checks: C-92085r1_chk
Determine the location of the "HTTPD_ROOT" directory and the "httpd.conf" file: # httpd -V | egrep -i 'httpd_root|server_config_file' -D HTTPD_ROOT="/etc/httpd" -D SERVER_CONFIG_FILE="conf/httpd.conf" Verify there is a single "Require" directive with the value of "all denied". Verify there are no "Allow" or "Deny" directives in the root <Directory> element. The following may be useful in extracting root directory elements from the Apache configuration for auditing: # perl -ne 'print if /^ *<Directory *\//i .. /<\/Directory/i' $APACHE_PREFIX/conf/httpd.conf If there are "Allow" or "Deny" directives in the root <Directory> element, this is a finding.
Fix: F-99023r1_fix
Determine the location of the "HTTPD_ROOT" directory and the "httpd.conf" file: # httpd -V | egrep -i 'httpd_root|server_config_file' -D HTTPD_ROOT="/etc/httpd" -D SERVER_CONFIG_FILE="conf/httpd.conf" Set the root directory directive as follows: <Directory> ... Require all denied ... </Directory> Remove any "Deny" and "Allow" directives from the root <Directory> element. Restart Apache: apachectl restart
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000382
- Version
- AS24-U2-000360
- Vuln IDs
-
- V-92781
- Rule IDs
-
- SV-102869r1_rule
Checks: C-92087r1_chk
Determine the location of the "HTTPD_ROOT" directory and the "httpd.conf" file: # httpd -V | egrep -i 'httpd_root|server_config_file' -D HTTPD_ROOT="/etc/httpd" -D SERVER_CONFIG_FILE="conf/httpd.conf" Verify that for each "VirtualHost" directive, there is an IP address and port. If there is not, this is a finding.
Fix: F-99025r1_fix
Determine the location of the "HTTPD_ROOT" directory and the "httpd.conf" file: # httpd -V | egrep -i 'httpd_root|server_config_file' -D HTTPD_ROOT="/etc/httpd" -D SERVER_CONFIG_FILE="conf/httpd.conf" Set each "VirtualHost" directive to listen to on a specific IP address and port.
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000185
- Version
- AS24-U2-000380
- Vuln IDs
-
- V-92785
- Rule IDs
-
- SV-102873r1_rule
Checks: C-92091r1_chk
In a command line, run "httpd -M | grep -i ssl_module". If the "ssl_module" is not enabled, this is a finding. Determine the location of the "HTTPD_ROOT" directory and the "ssl.conf" file: # httpd -V | egrep -i 'httpd_root|server_config_file' -D HTTPD_ROOT="/etc/httpd" Review <'HTTPD_ROOT'>/conf.d/ssl.conf Verify "SSLVerifyClient" is set to "require": SSLVerifyClient require Verify "SSLVerifyDepth" is set to a number greater than "0": SSLVerifyDepth 1 If "SSLVerifyClient" is not set to "require" or "SSLVerifyDepth" is not set to a number greater than "0", this is a finding.
Fix: F-99029r1_fix
Determine the location of the "HTTPD_ROOT" directory and the "ssl.conf" file: # httpd -V | egrep -i 'httpd_root|server_config_file' -D HTTPD_ROOT="/etc/httpd" Edit <'HTTPD_ROOT'>/conf.d/ssl.conf Set "SSLVerifyClient" to "require". Set "SSLVerifyDepth" to "1". SSLVerifyDepth 1 For more information: https://httpd.apache.org/docs/current/mod/ssl_module.html
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000186
- Version
- AS24-U2-000390
- Vuln IDs
-
- V-92787
- Rule IDs
-
- SV-102875r1_rule
Checks: C-92093r1_chk
In a command line, run "httpd -M | grep -i ssl_module". If the "ssl_module" is not enabled, this is a finding. Determine the location of the "HTTPD_ROOT" directory and the "httpd.conf" file: # httpd -V | egrep -i 'httpd_root|server_config_file' -D HTTPD_ROOT="/etc/httpd" -D SERVER_CONFIG_FILE="conf/httpd.conf" Review the private key path in the "SSLCertificateFile" directive. Verify only authenticated system administrators and the designated PKI Sponsor for the web server can access the web server private key. If the private key is accessible by unauthenticated or unauthorized users, this is a finding.
Fix: F-99031r1_fix
Determine the location of the "HTTPD_ROOT" directory and the "httpd.conf" file: # httpd -V | egrep -i 'httpd_root|server_config_file' -D HTTPD_ROOT="/etc/httpd" -D SERVER_CONFIG_FILE="conf/httpd.conf" Based on the "SSLCertificateFile" directive path, configure the Apache web server to ensure only authenticated and authorized users can access the web server's private key.
- RMF Control
- SC-23
- Severity
- M
- CCI
- CCI-001664
- Version
- AS24-U2-000470
- Vuln IDs
-
- V-92795
- Rule IDs
-
- SV-102883r1_rule
Checks: C-92101r2_chk
Determine the location of the "HTTPD_ROOT" directory and the "httpd.conf" file: # httpd -V | egrep -i 'httpd_root|server_config_file' -D HTTPD_ROOT="/etc/httpd" -D SERVER_CONFIG_FILE="conf/httpd.conf" Search for the "Header" directive: # cat /<path_to_file>/httpd.conf | grep -i "Header" If "HttpOnly" "secure" is not configured, this is a finding. "Header always edit Set-Cookie ^(.*)$ $1;HttpOnly;secure" Review the code. If, when creating cookies, the following is not occurring, this is a finding: function setCookie() { document.cookie = "ALEPH_SESSION_ID = $SESS; path = /; secure"; }
Fix: F-99039r1_fix
Determine the location of the "HTTPD_ROOT" directory and the "httpd.conf" file: # httpd -V | egrep -i 'httpd_root|server_config_file' -D HTTPD_ROOT="/etc/httpd" -D SERVER_CONFIG_FILE="conf/httpd.conf" Add or configure the following line: "Header always edit Set-Cookie ^(.*)$ $1;HttpOnly;secure" Add the "secure" attribute to the JavaScript set cookie in any application code: function setCookie() { document.cookie = "ALEPH_SESSION_ID = $SESS; path = /; secure"; } HttpOnly cannot be used since by definition this is a cookie set by JavaScript. Restart www_server and Apache.
- RMF Control
- SC-24
- Severity
- M
- CCI
- CCI-001190
- Version
- AS24-U2-000540
- Vuln IDs
-
- V-92797
- Rule IDs
-
- SV-102885r1_rule
Checks: C-92103r1_chk
Interview the System Administrator for the Apache web server. Ask for documentation on the disaster recovery methods tested and planned for the Apache web server in the event of the necessity for rollback. If documentation for a disaster recovery has not been established, this is a finding.
Fix: F-99041r1_fix
Prepare documentation for disaster recovery methods for the Apache web server in the event of the necessity for rollback. Document and test the disaster recovery methods designed.
- RMF Control
- SC-3
- Severity
- M
- CCI
- CCI-001084
- Version
- AS24-U2-000580
- Vuln IDs
-
- V-92799
- Rule IDs
-
- SV-102887r1_rule
Checks: C-92105r1_chk
Run the following command: grep "DocumentRoot"<'INSTALL PATH'>/conf/httpd.conf Note each location following the "DocumentRoot" string. This is the configured path to the document root directory(s). Use the command df -k to view each document root's partition setup. Compare that against the results for the operating system file systems and against the partition for the web server system files, which is the result of the command: df -k <'INSTALL PATH'>/bin If the document root path is on the same partition as the web server system files or the operating system file systems, this is a finding.
Fix: F-99043r1_fix
Move the web document (normally "htdocs") directory to a separate partition other than the operating system root partition and the web server’s system files.
- RMF Control
- SC-5
- Severity
- M
- CCI
- CCI-001094
- Version
- AS24-U2-000590
- Vuln IDs
-
- V-92801
- Rule IDs
-
- SV-102889r1_rule
Checks: C-92107r2_chk
Determine the location of the "HTTPD_ROOT" directory and the "httpd.conf" file: # httpd -V | egrep -i 'httpd_root|server_config_file' -D HTTPD_ROOT="/etc/httpd" -D SERVER_CONFIG_FILE="conf/httpd.conf" Verify that the "Timeout" directive is specified to have a value of "10" seconds or less. # cat /<path_to_file>/httpd.conf | grep -i "Timeout" If the "Timeout" directive is not configured or is set for more than "10" seconds, this is a finding.
Fix: F-99045r1_fix
Determine the location of the "HTTPD_ROOT" directory and the "httpd.conf" file: # httpd -V | egrep -i 'httpd_root|server_config_file' -D HTTPD_ROOT="/etc/httpd" -D SERVER_CONFIG_FILE="conf/httpd.conf" Add or modify the "Timeout" directive in the Apache configuration to have a value of "10" seconds or less. "Timeout 10"
- RMF Control
- SI-11
- Severity
- M
- CCI
- CCI-001312
- Version
- AS24-U2-000620
- Vuln IDs
-
- V-92803
- Rule IDs
-
- SV-102891r1_rule
Checks: C-92109r1_chk
View the "DocumentRoot" value by entering the following command: awk '{print $1,$2,$3}' <'INSTALL PATH'>/conf/httpd.conf|grep -i DocumentRoot|grep -v '^#' Note each location following the "DocumentRoot" string. This is the configured path(s) to the document root directory(s). To view a list of the directories and subdirectories and the file "index.html", from each stated "DocumentRoot" location enter the following commands: find . -type d find . -type f -name index.html Review the results for each document root directory and its subdirectories. If a directory does not contain an "index.html" or equivalent default document, this is a finding.
Fix: F-99047r1_fix
Determine the location of the "HTTPD_ROOT" directory and the "httpd.conf" file: # httpd -V | egrep -i 'httpd_root|server_config_file' -D HTTPD_ROOT="/etc/httpd" -D SERVER_CONFIG_FILE="conf/httpd.conf" Add a default document to the applicable directories.
- RMF Control
- SI-11
- Severity
- M
- CCI
- CCI-001312
- Version
- AS24-U2-000630
- Vuln IDs
-
- V-92805
- Rule IDs
-
- SV-102893r1_rule
Checks: C-92111r1_chk
In a command line, run "httpd -M | grep -i ssl_module". If the "ssl_module" is not enabled, this is a finding. Determine the location of the "HTTPD_ROOT" directory and the "httpd.conf" file: # httpd -V | egrep -i 'httpd_root|server_config_file' -D HTTPD_ROOT="/etc/httpd" -D SERVER_CONFIG_FILE="conf/httpd.conf" If the "ErrorDocument" directive is not being used, this is a finding.
Fix: F-99049r1_fix
Determine the location of the "HTTPD_ROOT" directory and the "httpd.conf" file: # httpd -V | egrep -i 'httpd_root|server_config_file' -D HTTPD_ROOT="/etc/httpd" -D SERVER_CONFIG_FILE="conf/httpd.conf" Use the "ErrorDocument" directive to enable custom error pages. ErrorDocument 500 "Sorry, our script crashed. Oh dear" ErrorDocument 500 /cgi-bin/crash-recover ErrorDocument 500 http://error.example.com/server_error.html ErrorDocument 404 /errors/not_found.html ErrorDocument 401 /subscription/how_to_subscribe.html The syntax of the ErrorDocument directive is: ErrorDocument <3-digit-code> <action> Additional Information: https://httpd.apache.org/docs/2.4/custom-error.html
- RMF Control
- SI-11
- Severity
- M
- CCI
- CCI-001312
- Version
- AS24-U2-000640
- Vuln IDs
-
- V-92807
- Rule IDs
-
- SV-102895r1_rule
Checks: C-92113r1_chk
Determine the location of the "HTTPD_ROOT" directory and the "httpd.conf" file: # httpd -V | egrep -i 'httpd_root|server_config_file' -D HTTPD_ROOT="/etc/httpd" -D SERVER_CONFIG_FILE="conf/httpd.conf" For any enabled "TraceEnable" directives, verify they are part of the server-level configuration (i.e., not nested in a "Directory" or "Location" directive). Also verify that the "TraceEnable" directive is set to "Off". If the "TraceEnable" directive is not part of the server-level configuration and/or is not set to "Off", this is a finding. If the directive does not exist in the "conf" file, this is a finding because the default value is "On".
Fix: F-99051r1_fix
Determine the location of the "HTTPD_ROOT" directory and the "httpd.conf" file: # httpd -V | egrep -i 'httpd_root|server_config_file' -D HTTPD_ROOT="/etc/httpd" -D SERVER_CONFIG_FILE="conf/httpd.conf" Add or set the value of "TraceEnable" to "Off".
- RMF Control
- AC-12
- Severity
- M
- CCI
- CCI-002361
- Version
- AS24-U2-000650
- Vuln IDs
-
- V-92809
- Rule IDs
-
- SV-102897r1_rule
Checks: C-92115r1_chk
Determine the location of the "HTTPD_ROOT" directory and the "httpd.conf" file: # httpd -V | egrep -i 'httpd_root|server_config_file' -D HTTPD_ROOT="/etc/httpd" -D SERVER_CONFIG_FILE="conf/httpd.conf" Verify the "SessionMaxAge" directive exists and is set to "600". If the "SessionMaxAge" directive does not exist, this is a finding. If the "SessionMaxAge" directive exists but is not set to "600", this is a finding.
Fix: F-99053r1_fix
Determine the location of the "HTTPD_ROOT" directory and the "httpd.conf" file: # httpd -V | egrep -i 'httpd_root|server_config_file' -D HTTPD_ROOT="/etc/httpd" -D SERVER_CONFIG_FILE="conf/httpd.conf" Add or set the "SessionMaxAge" directive to "600".
- RMF Control
- AC-12
- Severity
- M
- CCI
- CCI-002361
- Version
- AS24-U2-000660
- Vuln IDs
-
- V-92811
- Rule IDs
-
- SV-102899r1_rule
Checks: C-92117r1_chk
In a command line, run "httpd -M | grep -i Reqtimeout_module". If the "Reqtimeout_module" is not enabled, this is a finding.
Fix: F-99055r1_fix
Determine the location of the "HTTPD_ROOT" directory and the "httpd.conf" file: # httpd -V | egrep -i 'httpd_root|server_config_file' -D HTTPD_ROOT="/etc/httpd" -D SERVER_CONFIG_FILE="conf/httpd.conf" Load the "Reqtimeout_module". Set the "RequestReadTimeout" directive.
- RMF Control
- AC-17
- Severity
- M
- CCI
- CCI-002314
- Version
- AS24-U2-000680
- Vuln IDs
-
- V-92815
- Rule IDs
-
- SV-102903r1_rule
Checks: C-92121r2_chk
If external controls such as host-based firewalls are used to restrict this access, this check is Not Applicable. Determine the location of the "HTTPD_ROOT" directory and the "httpd.conf" file: # httpd -V | egrep -i 'httpd_root|server_config_file' -D HTTPD_ROOT="/etc/httpd" -D SERVER_CONFIG_FILE="conf/httpd.conf" Search for the "RequireAll" directive: # cat /<path_to_file>/httpd.conf | grep -i "RequireAll" If "RequireAll" is not configured or IP ranges configured to allow are not restrictive enough to prevent connections from nonsecure zones, this is a finding.
Fix: F-99059r2_fix
Configure the "http.conf" file to include restrictions. Example: <RequireAll> Require not ip 192.168.205 Require not host phishers.example.com </RequireAll>
- RMF Control
- AC-6
- Severity
- M
- CCI
- CCI-002235
- Version
- AS24-U2-000700
- Vuln IDs
-
- V-92817
- Rule IDs
-
- SV-102905r1_rule
Checks: C-92123r1_chk
Determine which tool or control file is used to control the configuration of the web server. If the control of the web server is done via control files, verify who has update access to them. If tools are being used to configure the web server, determine who has access to execute the tools. If accounts other than the System Administrator, Web Manager, or the Web Manager designees have access to the web administration tool or control files, this is a finding.
Fix: F-99061r1_fix
Restrict access to the web administration tool to only the System Administrator, Web Manager, or the Web Manager designees.
- RMF Control
- CM-5
- Severity
- M
- CCI
- CCI-001813
- Version
- AS24-U2-000780
- Vuln IDs
-
- V-92819
- Rule IDs
-
- SV-102907r1_rule
Checks: C-92125r1_chk
Obtain a list of the user accounts for the system, noting the privileges for each account. Verify with the System Administrator (SA) or the Information System Security Officer (ISSO) that all privileged accounts are mission essential and documented. Verify with the SA or the ISSO that all non-administrator access to shell scripts and operating system functions are mission essential and documented. If undocumented privileged accounts are found, this is a finding. If undocumented access to shell scripts or operating system functions is present, this is a finding.
Fix: F-99063r1_fix
Ensure non-administrators are not allowed access to the directory tree, the shell, or other operating system functions and utilities.
- RMF Control
- SC-23
- Severity
- M
- CCI
- CCI-002470
- Version
- AS24-U2-000810
- Vuln IDs
-
- V-92821
- Rule IDs
-
- SV-102909r1_rule
Checks: C-92127r2_chk
In a command line, run "httpd -M | grep -i ssl_module". If the "ssl_module" is not found, this is a finding. Determine the location of the "HTTPD_ROOT" directory and the "httpd.conf" file: # httpd -V | egrep -i 'httpd_root|server_config_file' -D HTTPD_ROOT="/etc/httpd" -D SERVER_CONFIG_FILE="conf/httpd.conf" Search for the "SSLCACertificateFile" directive: # cat /<path_to_file>/httpd.conf | grep -i "SSLCACertificateFile" Review the path of the "SSLCACertificateFile" directive. Review the contents of <'path of SSLCACertificateFile'>\ca-bundle.crt. Examine the contents of this file to determine if the trusted CAs are DoD approved. If the trusted CA that is used to authenticate users to the website does not lead to an approved DoD CA, this is a finding. NOTE: There are non-DoD roots that must be on the server for it to function. Some applications, such as antivirus programs, require root CAs to function. DoD-approved certificate can include the External Certificate Authorities (ECA) if approved by the AO. The PKE InstallRoot 3.06 System Administrator Guide (SAG), dated 08 Jul 2008, contains a complete list of DoD, ECA, and IECA CAs.
Fix: F-99065r1_fix
Configure the web server’s trust store to trust only DoD-approved PKIs (e.g., DoD PKI, DoD ECA, and DoD-approved external partners).
- RMF Control
- SC-8
- Severity
- M
- CCI
- CCI-002418
- Version
- AS24-U2-000870
- Vuln IDs
-
- V-92831
- Rule IDs
-
- SV-102919r1_rule
Checks: C-92137r1_chk
In a command line, run "httpd -M | grep -i ssl_module". If "ssl_module" is not listed, this is a finding. Determine the location of the "HTTPD_ROOT" directory and the "httpd.conf" file: # httpd -V | egrep -i 'httpd_root|server_config_file' -D HTTPD_ROOT="/etc/httpd" -D SERVER_CONFIG_FILE="conf/httpd.conf" If the "SSLCompression" directive does not exist or is set to "on", this is a finding.
Fix: F-99075r1_fix
Determine the location of the "HTTPD_ROOT" directory and the "httpd.conf" file: # httpd -V | egrep -i 'httpd_root|server_config_file' -D HTTPD_ROOT="/etc/httpd" -D SERVER_CONFIG_FILE="conf/httpd.conf" Ensure the "SSLCompression" is added and looks like the following: SSLCompression off Restart Apache: apachectl restart
- RMF Control
- SC-8
- Severity
- M
- CCI
- CCI-002418
- Version
- AS24-U2-000880
- Vuln IDs
-
- V-92833
- Rule IDs
-
- SV-102921r1_rule
Checks: C-92139r1_chk
In a command line, run "httpd -M | grep -i session_cookie_module". Review the "httpd.conf" file. If the "Session" and "SessionCookieName" directives are not present, this is a finding. If "Session" is not "on" and "SessionCookieName" does not contain "httpOnly" and "secure", this is a finding.
Fix: F-99077r1_fix
Determine the location of the "HTTPD_ROOT" directory and the "httpd.conf" file: # httpd -V | egrep -i 'httpd_root|server_config_file' -D HTTPD_ROOT="/etc/httpd" -D SERVER_CONFIG_FILE="conf/httpd.conf" Set "Session" to "on". Ensure the "SessionCookieName" directive includes "httpOnly" and "secure".
- RMF Control
- SC-8
- Severity
- M
- CCI
- CCI-002418
- Version
- AS24-U2-000890
- Vuln IDs
-
- V-92835
- Rule IDs
-
- SV-102923r1_rule
Checks: C-92141r2_chk
In a command line, run "httpd -M | grep -i session_cookie_module". If "session_cookie_module" is not listed, this is a finding. Determine the location of the "HTTPD_ROOT" directory and the "httpd.conf" file: # httpd -V | egrep -i 'httpd_root|server_config_file' -D HTTPD_ROOT="/etc/httpd" -D SERVER_CONFIG_FILE="conf/httpd.conf" Search for the "Session" and "SessionCookieName" directives: # cat /<path_to_file>/httpd.conf | grep -i "Session" # cat /<path_to_file>/httpd.conf | grep -i "SessionCookieName" If "Session" is not "on" and "SessionCookieName" does not contain "httpOnly" and "secure", this is a finding.
Fix: F-99079r1_fix
Determine the location of the "HTTPD_ROOT" directory and the "httpd.conf" file: # httpd -V | egrep -i 'httpd_root|server_config_file' -D HTTPD_ROOT="/etc/httpd" -D SERVER_CONFIG_FILE="conf/httpd.conf" Set "Session" to "on". Ensure the "SessionCookieName" directive includes "httpOnly" and "secure".
- RMF Control
- CM-6
- Severity
- L
- CCI
- CCI-000366
- Version
- AS24-U2-000960
- Vuln IDs
-
- V-92843
- Rule IDs
-
- SV-102931r1_rule
Checks: C-92149r1_chk
Review the website to determine if HTTP and HTTPs are used in accordance with well-known ports (e.g., 80 and 443) or those ports and services as registered and approved for use by the DoD PPSM. Verify that any variation in PPS is documented, registered, and approved by the PPSM. If well-known ports and services are not approved for used by PPSM, this is a finding.
Fix: F-99087r1_fix
Ensure the website enforces the use of IANA well-known ports for HTTP and HTTPS.