Apache Server 2.4 UNIX Server Security Technical Implementation Guide
Pick two releases to diff their requirements.
Open a previous version of this STIG.
- RMF Control
- AC-10
- Severity
- M
- CCI
- CCI-000054
- Version
- AS24-U1-000010
- Vuln IDs
-
- AS24-U1-000010
- Rule IDs
-
- AS24-U1-000010_rule
Checks: C-AS24-U1-000010_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 directives "KeepAlive" and "MaxKeepAliveRequests" in the "httpd.conf" file: # cat /<path_to_file>/httpd.conf | grep -i "keepalive" KeepAlive On MaxKeepAliveRequests 100 If the value of "KeepAlive" is set to "off" or does not exist, this is a finding. If the value of "MaxKeepAliveRequests" is set to a value less than "100" or does not exist, this is a finding.
Fix: F-AS24-U1-000010_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 "KeepAlive" directive to a value of "on"; add the directive if it does not exist. Set the "MaxKeepAliveRequests" directive to a value of "100" or greater; add the directive if it does not exist. Restart Apache: apachectl restart
- RMF Control
- AC-10
- Severity
- M
- CCI
- CCI-000054
- Version
- AS24-U1-000020
- Vuln IDs
-
- AS24-U1-000020
- Rule IDs
-
- AS24-U1-000020_rule
Checks: C-AS24-U1-000020_chk
In a command line, run "httpd -M | grep -i mod_session" and "httpd -M | grep -i mod_usertrack". If "mod_session" module and "mod_usertrack" are not enabled or do not exist, this is a finding.
Fix: F-AS24-U1-000020_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-U1-000030
- Vuln IDs
-
- AS24-U1-000030
- Rule IDs
-
- AS24-U1-000030_rule
Checks: C-AS24-U1-000030_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-AS24-U1-000030_fix
If the modules are not installed, install any missing packages. 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
- AC-17
- Severity
- M
- CCI
- CCI-001453
- Version
- AS24-U1-000040
- Vuln IDs
-
- AS24-U1-000040
- Rule IDs
-
- AS24-U1-000040_rule
Checks: C-AS24-U1-000040_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-AS24-U1-000040_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
- AC-3
- Severity
- M
- CCI
- CCI-000213
- Version
- AS24-U1-000060
- Vuln IDs
-
- AS24-U1-000060
- Rule IDs
-
- AS24-U1-000060_rule
Checks: C-AS24-U1-000060_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-AS24-U1-000060_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-12
- Severity
- M
- CCI
- CCI-000169
- Version
- AS24-U1-000070
- Vuln IDs
-
- AS24-U1-000070
- Rule IDs
-
- AS24-U1-000070_rule
Checks: C-AS24-U1-000070_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\
Fix: F-AS24-U1-000070_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\" " combined Restart Apache: apachectl restart
- RMF Control
- AU-14
- Severity
- M
- CCI
- CCI-001464
- Version
- AS24-U1-000080
- Vuln IDs
-
- AS24-U1-000080
- Rule IDs
-
- AS24-U1-000080_rule
Checks: C-AS24-U1-000080_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\
Fix: F-AS24-U1-000080_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\" " combined Restart Apache: apachectl restart
- RMF Control
- SC-3
- Severity
- M
- CCI
- CCI-001084
- Version
- AS24-U1-001000
- Vuln IDs
-
- AS24-U1-001000
- Rule IDs
-
- AS24-U1-001000_rule
Checks: C-AS24-U1-001000_chk
Enter the following command: more <'INSTALLED PATH'>/conf/httpd.conf For every enabled "Directory" directive (except root), verify the following entry exists: Order allow,deny <LimitExcept GET POST OPTIONS> Deny from all </LimitExcept> If the statement above is found in the LimitExcept statement (i.e. <Directory />), this is a finding. If the statement above is found enabled but without the appropriate "LimitExcept" or "Order" statement, this is a finding. If the statement is not found inside an enabled "Directory" directive, this is a finding. NOTE: If the "LimitExcept" statement above is operationally limiting, this should be explicitly documented with the Web Manager, at which point this can be considered not a finding.
Fix: F-AS24-U1-001000_fix
Edit the "httpd.conf" file and add the following entries for every enabled directory except root. Order allow,deny <LimitExcept GET POST OPTIONS> Deny from all </LimitExcept>
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- AS24-U1-000090
- Vuln IDs
-
- AS24-U1-000090
- Rule IDs
-
- AS24-U1-000090_rule
Checks: C-AS24-U1-000090_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\
Fix: F-AS24-U1-000090_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\" " combined Restart Apache: apachectl restart
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000131
- Version
- AS24-U1-000100
- Vuln IDs
-
- AS24-U1-000100
- Rule IDs
-
- AS24-U1-000100_rule
Checks: C-AS24-U1-000100_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\
Fix: F-AS24-U1-000100_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\" " combined Restart Apache: apachectl restart
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000132
- Version
- AS24-U1-000110
- Vuln IDs
-
- AS24-U1-000110
- Rule IDs
-
- AS24-U1-000110_rule
Checks: C-AS24-U1-000110_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\
Fix: F-AS24-U1-000110_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\" " combined Restart Apache: apachectl restart
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000133
- Version
- AS24-U1-000120
- Vuln IDs
-
- AS24-U1-000120
- Rule IDs
-
- AS24-U1-000120_rule
Checks: C-AS24-U1-000120_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\
Fix: F-AS24-U1-000120_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\" " combined Restart Apache: apachectl restart
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000133
- Version
- AS24-U1-000130
- Vuln IDs
-
- AS24-U1-000130
- Rule IDs
-
- AS24-U1-000130_rule
Checks: C-AS24-U1-000130_chk
Interview the System Administrator to review the configuration of the Apache web server architecture and determine if inbound web traffic is passed through a proxy. If the Apache web server is receiving inbound web traffic through a proxy, the audit logs must be reviewed to determine if correct source information is being passed through by the proxy server. 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 location of the log files. When the log file is displayed, review the source IP information in the log entries and verify the entries do not reflect the IP address of the proxy server. If the log entries in the log file(s) reflect the IP address of the proxy server as the source, this is a finding.
Fix: F-AS24-U1-000130_fix
Access the proxy server through which inbound web traffic is passed and configure settings to pass web traffic to the Apache web server transparently.
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000134
- Version
- AS24-U1-000140
- Vuln IDs
-
- AS24-U1-000140
- Rule IDs
-
- AS24-U1-000140_rule
Checks: C-AS24-U1-000140_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\
Fix: F-AS24-U1-000140_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\" " combined Restart Apache: apachectl restart
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-001487
- Version
- AS24-U1-000150
- Vuln IDs
-
- AS24-U1-000150
- Rule IDs
-
- AS24-U1-000150_rule
Checks: C-AS24-U1-000150_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\
Fix: F-AS24-U1-000150_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\" " combined Restart Apache: apachectl restart
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-000162
- Version
- AS24-U1-000180
- Vuln IDs
-
- AS24-U1-000180
- Rule IDs
-
- AS24-U1-000180_rule
Checks: C-AS24-U1-000180_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 the log file location. To determine permissions for log files, from the command line, navigate to the directory where the log files are located and enter the following command: ls –al *log Note the owner and group permissions on these files. Only the Auditors, Web Managers, Administrators, and the account that runs the web server should have permissions to the files. If any users other than those authorized have read access to the log files, this is a finding.
Fix: F-AS24-U1-000180_fix
To protect the integrity of the data that is being captured in the log files, ensure that only the members of the Auditors group, Administrators, and the user assigned to run the web server software is granted permissions to read the log files.
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-000163
- Version
- AS24-U1-000190
- Vuln IDs
-
- AS24-U1-000190
- Rule IDs
-
- AS24-U1-000190_rule
Checks: C-AS24-U1-000190_chk
Verify the log information from the web server is protected from unauthorized modification. Review the web server documentation and deployed configuration settings to determine if the web server logging features protect log information from unauthorized modification. Review file system settings to verify the log files have secure file permissions. Run the following command: ls -l <'INSTALL PATH'>/logs If the web server log files present are owned by anyone other than root, this is a finding.
Fix: F-AS24-U1-000190_fix
Determine the location of the "ErrorLog" directory in 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" Open the "httpd.conf" file. Look for the "ErrorLog" directive. Ensure the permissions and ownership of all files in the Apache log directory are correct by executing the following commands as root: # chown root.root <'ErrorLog directive PATH'>/*
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-000164
- Version
- AS24-U1-000200
- Vuln IDs
-
- AS24-U1-000200
- Rule IDs
-
- AS24-U1-000200_rule
Checks: C-AS24-U1-000200_chk
Verify the log information from the web server must be protected from unauthorized modification. Review the web server documentation and deployed configuration settings to determine if the web server logging features protect log information from unauthorized modification. Review file system settings to verify the log files have secure file permissions. Run the following command: ls -l <'INSTALL PATH'>/logs If the web server log files present are owned by anyone other than root, this is a finding.
Fix: F-AS24-U1-000200_fix
Determine the location of the "ErrorLog" directory in 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" Open the "httpd.conf" file. Look for the "ErrorLog" directive. Ensure the permissions and ownership of all files in the Apache log directory are correct by executing the following commands as root: # chown root.root <'ErrorLog directive PATH'>/*
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-001348
- Version
- AS24-U1-000210
- Vuln IDs
-
- AS24-U1-000210
- Rule IDs
-
- AS24-U1-000210_rule
Checks: C-AS24-U1-000210_chk
Interview the Information System Security Officer, System Administrator, Web Manager, Webmaster, or developers as necessary to determine whether a tested and verifiable backup strategy has been implemented for web server software and all web server data files. Proposed questions: - Who maintains the backup and recovery procedures? - Do you have a copy of the backup and recovery procedures? - Where is the off-site backup location? - Is the contingency plan documented? - When was the last time the contingency plan was tested? - Are the test dates and results documented? If there is not a backup and recovery process for the web server, this is a finding.
Fix: F-AS24-U1-000210_fix
Document the web server backup procedures.
- RMF Control
- CM-5
- Severity
- M
- CCI
- CCI-001749
- Version
- AS24-U1-000230
- Vuln IDs
-
- AS24-U1-000230
- Rule IDs
-
- AS24-U1-000230_rule
Checks: C-AS24-U1-000230_chk
Enter the following command: "httpd -M" This will provide a list of the loaded modules. Validate that all displayed modules are required for operations. If any module is not required for operation, this is a finding. NOTE: The following modules are needed for basic web function and do not need to be reviewed: core_module http_module so_module mpm_prefork_module For a complete list of signed Apache Modules, review https://httpd.apache.org/docs/2.4/mod/.
Fix: F-AS24-U1-000230_fix
Remove any unsigned modules.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AS24-U1-000240
- Vuln IDs
-
- AS24-U1-000240
- Rule IDs
-
- AS24-U1-000240_rule
Checks: C-AS24-U1-000240_chk
Review the web server documentation and configuration to determine if the web server is being used as a user management application. Search for "AuthUserFile" in the configuration files in the installed Apache Path. Example: grep -rin AuthUserFile * If there are uncommented lines pointing to files on disk using the above configuration option, this is a finding.
Fix: F-AS24-U1-000240_fix
Comment out the "AuthUserFile" lines found in the Apache configuration.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AS24-U1-000250
- Vuln IDs
-
- AS24-U1-000250
- Rule IDs
-
- AS24-U1-000250_rule
Checks: C-AS24-U1-000250_chk
Verify the document root directory and the configuration files do not provide for default index.html or welcome page. Verify the Apache User Manual content is not installed by checking the configuration files for manual location directives. Verify the Apache configuration files do not have the Server Status handler configured. Verify the Server Information handler is not configured. Verify that any other handler configurations such as perl-status are not enabled. If any of these are present, this is a finding.
Fix: F-AS24-U1-000250_fix
Review all pre-installed content and remove content that is not required. In particular, look for the unnecessary content that may be found in the document root directory, a configuration directory such as conf/extra directory, or as a UNIX/Linux package. Remove the default index.html or welcome page if it is a separate package. If the default welcome page is part of the main Apache httpd package as it is on Red Hat Linux, then comment out the configuration as shown below. Removing a file such as "welcome.conf" is not recommended as it may be replaced if the package is updated. # # This configuration file enables the default "Welcome" # page if there is no default index page present for # the root URL. To disable the Welcome page, comment # out all the lines below. # ##<LocationMatch "^/+$"> ## Options -Indexes ## ErrorDocument 403 /error/noindex.html ##</LocationMatch> Remove the Apache User Manual content or comment out configurations referencing the manual. Example: # yum erase httpd-manual Remove or comment out any Server Status handler configuration: # # Allow server status reports generated by mod_status, # with the URL of http://servername/server-status # Change the ".example.com" to match your domain to enable. # ##<Location /server-status> ## SetHandler server-status ## Order deny,allow ## Deny from all ## Allow from .example.com ##</Location> Remove or comment out any Server Information handler configuration: # # Allow remote server configuration reports, with the URL of # http://servername/server-info (requires that mod_info.c be loaded). # Change the ".example.com" to match your domain to enable. # ##<Location /server-info> ## SetHandler server-info ## Order deny,allow ## Deny from all ## Allow from .example.com ##</Location> Remove or comment out any other handler configuration such as perl-status: # This will allow remote server configuration reports, with the URL of # http://servername/perl-status # Change the ".example.com" to match your domain to enable. # ##<Location /perl-status> ## SetHandler perl-script ## PerlResponseHandler Apache2::Status ## Order deny,allow ## Deny from all ## Allow from .example.com ##</Location> The default source build provides extra content available in the <'INSTALLED PATH'>/conf/extra/ directory, but the configuration of most of the extra content is commented out by default. In particular, the inclusion of conf/extra/proxyhtml.conf is not commented out in "httpd.conf": # Server-pool management (MPM specific) #Include conf/extra/httpd-mpm.conf # Multi-language error messages #Include conf/extra/httpd-multilang-errordoc.conf # Fancy directory listings #Include conf/extra/httpd-autoindex.conf # Language settings #Include conf/extra/httpd-languages.conf # User home directories #Include conf/extra/httpd-userdir.conf # Real-time info on requests and configuration #Include conf/extra/httpd-info.conf # Virtual hosts #Include conf/extra/httpd-vhosts.conf # Local access to the Apache HTTP Server Manual #Include conf/extra/httpd-manual.conf # Distributed authoring and versioning (WebDAV) #Include conf/extra/httpd-dav.conf # Various default settings #Include conf/extra/httpd-default.conf # Configure mod_proxy_html to understand HTML4/XHTML1 <IfModule proxy_html_module> Include conf/extra/proxy-html.conf </IfModule> # Secure (SSL/TLS) connections #Include conf/extra/httpd-ssl.conf For applications developed in-house, ensure that development artifacts (sample data and scripts; unused libraries, components, debug code; or tools) are not included in the deployed software or accessible in the production environment.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AS24-U1-000260
- Vuln IDs
-
- AS24-U1-000260
- Rule IDs
-
- AS24-U1-000260_rule
Checks: C-AS24-U1-000260_chk
In a command line, run "httpd -M | sort" to view a list of installed modules. If any of the following modules are present, this is a finding: proxy_module proxy_ajp_module proxy_balancer_module proxy_ftp_module proxy_http_module proxy_connect_module
Fix: F-AS24-U1-000260_fix
Determine where the proxy modules are located by running the following command: grep -rl "proxy_module" <'INSTALL PATH'> Edit the file and comment out the following modules: proxy_module proxy_ajp_module proxy_balancer_module proxy_ftp_module proxy_http_module proxy_connect_module Restart Apache: apachectl restart
- RMF Control
- CM-7
- Severity
- H
- CCI
- CCI-000381
- Version
- AS24-U1-000270
- Vuln IDs
-
- AS24-U1-000270
- Rule IDs
-
- AS24-U1-000270_rule
Checks: C-AS24-U1-000270_chk
If the site requires the use of a particular piece of software, verify that the Information System Security Officer (ISSO) maintains documentation identifying this software as necessary for operations. The software must be operated at the vendor’s current patch level and must be a supported vendor release. If programs or utilities that meet the above criteria are installed on the web server and appropriate documentation and signatures are in evidence, this is not a finding. Determine whether the web server is configured with unnecessary software. Determine whether processes other than those that support the web server are loaded and/or run on the web server. Examples of software that should not be on the web server are all web development tools, office suites (unless the web server is a private web development server), compilers, and other utilities that are not part of the web server suite or the basic operating system. Check the directory structure of the server and verify that additional, unintended, or unneeded applications are not loaded on the system. If, after review of the application on the system, there is no justification for the identified software, this is a finding.
Fix: F-AS24-U1-000270_fix
Remove any unnecessary applications per ISSO documentation.
- RMF Control
- CM-7
- Severity
- H
- CCI
- CCI-000381
- Version
- AS24-U1-000280
- Vuln IDs
-
- AS24-U1-000280
- Rule IDs
-
- AS24-U1-000280_rule
Checks: C-AS24-U1-000280_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 present, this is a finding. If undocumented access to shell scripts or operating system functions is present, this is a finding.
Fix: F-AS24-U1-000280_fix
Ensure non-administrators are not allowed access to the directory tree, the shell, or other operating system functions and utilities.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AS24-U1-000290
- Vuln IDs
-
- AS24-U1-000290
- Rule IDs
-
- AS24-U1-000290_rule
Checks: C-AS24-U1-000290_chk
If the site requires the use of a particular piece of software, verify that the Information System Security Officer maintains documentation identifying this software as necessary for operations. The software must be operated at the vendor’s current patch level and must be a supported vendor release. If programs or utilities that meet the above criteria are installed on the web server, and appropriate documentation and signatures are in evidence, this is not a finding. Determine whether the web server is configured with unnecessary software. Determine whether processes other than those that support the web server are loaded and/or run on the web server. Examples of software that should not be on the web server are all web development tools, office suites (unless the web server is a private web development server), compilers, and other utilities that are not part of the web server suite or the basic operating system. Check the directory structure of the server and ensure that additional, unintended, or unneeded applications are not loaded on the system. If, after review of the application on the system, there is no justification for the identified software, this is a finding.
Fix: F-AS24-U1-000290_fix
Remove any unnecessary applications.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AS24-U1-000300
- Vuln IDs
-
- AS24-U1-000300
- Rule IDs
-
- AS24-U1-000300_rule
Checks: C-AS24-U1-000300_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-AS24-U1-000300_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 within the "httpd.conf" file 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-U1-000310
- Vuln IDs
-
- AS24-U1-000310
- Rule IDs
-
- AS24-U1-000310_rule
Checks: C-AS24-U1-000310_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" Locate "cgi-bin" files and directories enabled in the Apache configuration via "Script", "ScriptAlias" or "ScriptAliasMatch", and "ScriptInterpreterSource" directives. 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-AS24-U1-000310_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" Review "Script", "ScriptAlias" or "ScriptAliasMatch", and "ScriptInterpreterSource" directives. Go into each directory and locate "cgi-bin" files. Remove any script that is 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-U1-000320
- Vuln IDs
-
- AS24-U1-000320
- Rule IDs
-
- AS24-U1-000320_rule
Checks: C-AS24-U1-000320_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-AS24-U1-000320_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-U1-000330
- Vuln IDs
-
- AS24-U1-000330
- Rule IDs
-
- AS24-U1-000330_rule
Checks: C-AS24-U1-000330_chk
In a command line, run "httpd -M | sort" to view a list of installed modules. If any of the following modules are present, this is a finding: dav_module dav_fs_module dav_lock_module
Fix: F-AS24-U1-000330_fix
Determine where the "dav" modules are located by running the following command: grep -rl "dav_module" <'INSTALL PATH'> Edit the file and comment out the following modules: dav_module dav_fs_module dav_lock_module Restart Apache: apachectl restart
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000382
- Version
- AS24-U1-000360
- Vuln IDs
-
- AS24-U1-000360
- Rule IDs
-
- AS24-U1-000360_rule
Checks: C-AS24-U1-000360_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 following directive: Listen Verify that any enabled "Listen" directives specify both an IP address and port number. If the "Listen" directive is found with only an IP address or only a port number specified, this is finding. If the IP address is all zeros (i.e., 0.0.0.0:80 or [::ffff:0.0.0.0]:80), this is a finding. If the "Listen" directive does not exist, this is a finding.
Fix: F-AS24-U1-000360_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 "Listen" directive to listen on a specific IP address and port. Restart Apache: apachectl restart
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000197
- Version
- AS24-U1-000370
- Vuln IDs
-
- AS24-U1-000370
- Rule IDs
-
- AS24-U1-000370_rule
Checks: C-AS24-U1-000370_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-AS24-U1-000370_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
- IA-5
- Severity
- M
- CCI
- CCI-000186
- Version
- AS24-U1-000390
- Vuln IDs
-
- AS24-U1-000390
- Rule IDs
-
- AS24-U1-000390_rule
Checks: C-AS24-U1-000390_chk
Review the private key path in the SSLCertificateFile directive. Verify that 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-AS24-U1-000390_fix
Configure the Apache web server to ensure that only authenticated and authorized users can access the web server's private key.
- RMF Control
- IA-7
- Severity
- M
- CCI
- CCI-000803
- Version
- AS24-U1-000400
- Vuln IDs
-
- AS24-U1-000400
- Rule IDs
-
- AS24-U1-000400_rule
Checks: C-AS24-U1-000400_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-AS24-U1-000400_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
- IA-7
- Severity
- M
- CCI
- CCI-000803
- Version
- AS24-U1-000410
- Vuln IDs
-
- AS24-U1-000410
- Rule IDs
-
- AS24-U1-000410_rule
Checks: C-AS24-U1-000410_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-AS24-U1-000410_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
- SC-2
- Severity
- M
- CCI
- CCI-001082
- Version
- AS24-U1-000430
- Vuln IDs
-
- AS24-U1-000430
- Rule IDs
-
- AS24-U1-000430_rule
Checks: C-AS24-U1-000430_chk
Review the web server documentation and configuration to determine what web server accounts are available on the server. If any directories or files are present that are owned by anyone other than root, this is a finding. If non-privileged web server accounts are available with access to functions, directories, or files not needed for the role of the account, this is a finding.
Fix: F-AS24-U1-000430_fix
Limit the functions, directories, and files that are accessible by each account and role to administrative accounts and remove or modify non-privileged account access.
- RMF Control
- SC-2
- Severity
- H
- CCI
- CCI-001082
- Version
- AS24-U1-000440
- Vuln IDs
-
- AS24-U1-000440
- Rule IDs
-
- AS24-U1-000440_rule
Checks: C-AS24-U1-000440_chk
Obtain a list of the user accounts for the system, noting the privileges for each account. Verify with the 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 present, this is a finding. If undocumented access to shell scripts or operating system functions is present, this is a finding.
Fix: F-AS24-U1-000440_fix
Ensure non-administrators are not allowed access to the directory tree, the shell, or other operating system functions and utilities.
- RMF Control
- SC-2
- Severity
- M
- CCI
- CCI-001082
- Version
- AS24-U1-000450
- Vuln IDs
-
- AS24-U1-000450
- Rule IDs
-
- AS24-U1-000450_rule
Checks: C-AS24-U1-000450_chk
Review the web server documentation and deployed configuration to determine whether hosted application functionality is separated from web server management functions. If the functions are not separated, this is a finding.
Fix: F-AS24-U1-000450_fix
Configure Apache to separate the hosted applications from web server management functionality.
- RMF Control
- SC-23
- Severity
- M
- CCI
- CCI-001185
- Version
- AS24-U1-000460
- Vuln IDs
-
- AS24-U1-000460
- Rule IDs
-
- AS24-U1-000460_rule
Checks: C-AS24-U1-000460_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 following directive: "SessionMaxAge" Verify the value of "SessionMaxAge" is set to "600" or less. If the "SessionMaxAge" does not exist or is set to more than "600", this is a finding.
Fix: F-AS24-U1-000460_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 the following line to the "httpd.conf" file: SessionMaxAge 600 Restart Apache: apachectl restart
- RMF Control
- SC-23
- Severity
- M
- CCI
- CCI-001664
- Version
- AS24-U1-000470
- Vuln IDs
-
- AS24-U1-000470
- Rule IDs
-
- AS24-U1-000470_rule
Checks: C-AS24-U1-000470_chk
Review the web server documentation and configuration to determine if cookies between the web server and client are accessible by applications or web servers other than the originating pair. grep SessionCookieName <'INSTALL LOCATION'>/mod_session.conf Confirm that the "HttpOnly" and "Secure" settings are present in the line returned. Confirm that the line does not contain the "Domain" cookie setting. Verify the "mod_header" module is loaded in the web server: # httpd -M |grep header Verify "mod_header" is returned from the above command. If the cookie settings do not align with these requirements, this is a finding.
Fix: F-AS24-U1-000470_fix
Edit the "mod_session.conf" file and find the "SessionCookieName" directive. Set the "SessionCookieName" to "session path=/; HttpOnly; Secure; " Example: SessionCookieName session path=/; HttpOnly; Secure; Restart Apache: apachectl restart
- RMF Control
- SC-23
- Severity
- M
- CCI
- CCI-001664
- Version
- AS24-U1-000480
- Vuln IDs
-
- AS24-U1-000480
- Rule IDs
-
- AS24-U1-000480_rule
Checks: C-AS24-U1-000480_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 "mod_unique_id" is loaded. If it does not exist, this is a finding.
Fix: F-AS24-U1-000480_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 "mod_unique_id" module. Restart Apache: apachectl restart
- RMF Control
- SC-23
- Severity
- M
- CCI
- CCI-001188
- Version
- AS24-U1-000490
- Vuln IDs
-
- AS24-U1-000490
- Rule IDs
-
- AS24-U1-000490_rule
Checks: C-AS24-U1-000490_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 "mod_unique_id" is loaded. If it does not exist, this is a finding.
Fix: F-AS24-U1-000490_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 "mod_unique_id" module. Restart Apache: apachectl restart
- RMF Control
- SC-23
- Severity
- M
- CCI
- CCI-001188
- Version
- AS24-U1-000500
- Vuln IDs
-
- AS24-U1-000500
- Rule IDs
-
- AS24-U1-000500_rule
Checks: C-AS24-U1-000500_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 "mod_unique_id" is loaded. If it does not exist, this is a finding.
Fix: F-AS24-U1-000500_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 "mod_unique_id" module. Restart Apache: apachectl restart
- RMF Control
- SC-23
- Severity
- M
- CCI
- CCI-001188
- Version
- AS24-U1-000510
- Vuln IDs
-
- AS24-U1-000510
- Rule IDs
-
- AS24-U1-000510_rule
Checks: C-AS24-U1-000510_chk
Review the web server documentation and deployed configuration to determine the length of the generated session identifiers. First ensure that "mod_session_crypto" is enabled: httpd -M |grep session_crypto If the above command returns "session_crypto", the module is enabled in the running server. 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 "httpd.conf" file. If the "SessionCryptoCipher" is not used or "SessionCryptoCipher" is not set to "aes256", this is a finding.
Fix: F-AS24-U1-000510_fix
Configure the web server to generate session identifiers that are at least 128 bits in length. Ensure that "mod_session_crypto" is enabled. Determine the location of the "httpd.conf" file by running the following command: httpd -V Review the "HTTPD_ROOT" path. Navigate to the "HTTPD_ROOT"/conf directory. Edit the "httpd.conf" file. SessionCryptoCipher aes256 Restart Apache: apachectl restart
- RMF Control
- SC-23
- Severity
- H
- CCI
- CCI-001188
- Version
- AS24-U1-000520
- Vuln IDs
-
- AS24-U1-000520
- Rule IDs
-
- AS24-U1-000520_rule
Checks: C-AS24-U1-000520_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 "mod_unique_id" is loaded. If it does not exist, this is a finding.
Fix: F-AS24-U1-000520_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 "mod_unique_id" module. Restart Apache: apachectl restart
- RMF Control
- SC-23
- Severity
- M
- CCI
- CCI-001188
- Version
- AS24-U1-000530
- Vuln IDs
-
- AS24-U1-000530
- Rule IDs
-
- AS24-U1-000530_rule
Checks: C-AS24-U1-000530_chk
Review the web server documentation and deployed configuration to verify that the web server is generating random session IDs with entropy equal to at least half the session ID length. First ensure that ssl is enabled: httpd2 -M |grep ssl If the above command returns "ssl_module", then the SSL module is enabled in the running Apache service. Check for the random seed used to generate session IDs: grep SSLRandomSeed /etc/apache2/ssl-global.conf The above command should return two lines: SSLRandomSeed startup file:/dev/urandom 512 SSLRandomSeed connect file:/dev/urandom 512 The above lines ensure that the SSL module is using a proper entropy source. This should be the only entropy source enabled. If the web server is not configured to generate random session IDs with the proper entropy and the size of the entropy seed is too small, this is a finding.
Fix: F-AS24-U1-000530_fix
Configure the web server to generate random session IDs with minimum entropy equal to half the session ID length. First ensure that ssl is enabled: httpd2 -M |grep ssl If the above command returns "ssl_module", then the SSL module is enabled in the running Apache service. Edit the file "/etc/apache2/ssl-global.conf". Configure the entropy section of the file with the following values: SSLRandomSeed startup file:/dev/urandom 512 SSLRandomSeed connect file:/dev/urandom 512 Turn off any other values for SSLRandomSeed by putting a # sign in front of them. Example: #SSLRandomSeed builtin Restart Apache: apachectl restart
- RMF Control
- SC-24
- Severity
- M
- CCI
- CCI-001190
- Version
- AS24-U1-000540
- Vuln IDs
-
- AS24-U1-000540
- Rule IDs
-
- AS24-U1-000540_rule
Checks: C-AS24-U1-000540_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-AS24-U1-000540_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-24
- Severity
- M
- CCI
- CCI-001190
- Version
- AS24-U1-000550
- Vuln IDs
-
- AS24-U1-000550
- Rule IDs
-
- AS24-U1-000550_rule
Checks: C-AS24-U1-000550_chk
Interview the System Administrator for the Apache 2.4 web server. Ask for documentation on the disaster recovery methods tested and planned for the Apache 2.4 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-AS24-U1-000550_fix
Prepare documentation for disaster recovery methods for the Apache 2.4 web server in the event of the necessity for rollback. Document and test the disaster recovery methods designed.
- RMF Control
- SC-5
- Severity
- M
- CCI
- CCI-001094
- Version
- AS24-U1-000590
- Vuln IDs
-
- AS24-U1-000590
- Rule IDs
-
- AS24-U1-000590_rule
Checks: C-AS24-U1-000590_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. If the "Timeout" directive is not configured or is set for more than "10" seconds, this is a finding.
Fix: F-AS24-U1-000590_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 to have a value of "10" seconds or less: "Timeout 10"
- RMF Control
- SI-11
- Severity
- M
- CCI
- CCI-001312
- Version
- AS24-U1-000620
- Vuln IDs
-
- AS24-U1-000620
- Rule IDs
-
- AS24-U1-000620_rule
Checks: C-AS24-U1-000620_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 the "ErrorDocument" directive is not being used, this is a finding.
Fix: F-AS24-U1-000620_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-U1-000630
- Vuln IDs
-
- AS24-U1-000630
- Rule IDs
-
- AS24-U1-000630_rule
Checks: C-AS24-U1-000630_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). 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". If the LogLevel directive is not being used, this is a finding.
Fix: F-AS24-U1-000630_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 "EnableTrace" to "Off". Set the "LogLevel" directive to "info" or below.
- RMF Control
- AC-12
- Severity
- M
- CCI
- CCI-002361
- Version
- AS24-U1-000640
- Vuln IDs
-
- AS24-U1-000640
- Rule IDs
-
- AS24-U1-000640_rule
Checks: C-AS24-U1-000640_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" exists. Verify the "SessionMaxAge" is set to "600" or less. If the "SessionMaxAge" directive does not exist or is not set to "600" or less, this is a finding.
Fix: F-AS24-U1-000640_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" or less.
- RMF Control
- AC-12
- Severity
- M
- CCI
- CCI-002361
- Version
- AS24-U1-000650
- Vuln IDs
-
- AS24-U1-000650
- Rule IDs
-
- AS24-U1-000650_rule
Checks: C-AS24-U1-000650_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 "mod_reqtimeout" is loaded. If it does not exist, this is a finding. Verify the "RequestReadTimeout" directive is configured. If the "mod_reqtimeout" module is loaded and the "RequestReadTimeout" directive is not configured, this is a finding.
Fix: F-AS24-U1-000650_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 "mod_reqtimeout" module. Set the "RequestReadTimeout" directive.
- RMF Control
- AC-17
- Severity
- H
- CCI
- CCI-002314
- Version
- AS24-U1-000660
- Vuln IDs
-
- AS24-U1-000660
- Rule IDs
-
- AS24-U1-000660_rule
Checks: C-AS24-U1-000660_chk
If web administration is performed at the console, this check is Not Applicable. If web administration is performed remotely, the following checks will apply. If administration of the server is performed remotely, it will be performed securely and only by System Administrators. If website administration or web application administration has been delegated, those users will be documented and approved by the Information System Security Officer. Remote administration must be in compliance with any requirements contained within the Windows Server STIGs and any applicable network STIGs. Remote administration of any kind will be restricted to documented and authorized personnel. All users performing remote administration must be authenticated. All remote sessions will be encrypted and they will use FIPS 140-2 approved protocols. FIPS 140-2 approved TLS versions include TLS V1.1 or greater. Review with site management how remote administration, if applicable, is configured on the website. If remote management meets the criteria listed above, this is not a finding. If remote management is used and does not meet the criteria listed above, this is a finding.
Fix: F-AS24-U1-000660_fix
Ensure the web server administration is performed only over a secure path.
- RMF Control
- AC-17
- Severity
- M
- CCI
- CCI-002314
- Version
- AS24-U1-000670
- Vuln IDs
-
- AS24-U1-000670
- Rule IDs
-
- AS24-U1-000670_rule
Checks: C-AS24-U1-000670_chk
Determine the location of the "httpd.conf" file by running the following command: httpd -V Review the "HTTPD_ROOT" path. Navigate to the "HTTPD_ROOT"/conf directory. Edit the "httpd.conf" file. If "IP Address Restrictions" are not configured or IP ranges configured to "Allow" are not restrictive enough to prevent connections from nonsecure zones, this is a finding.
Fix: F-AS24-U1-000670_fix
Configure the "http.conf" file to include restrictions. Example: <RequireAll> Require not host phishers.example.com sample.example </RequireAll>
- RMF Control
- AC-17
- Severity
- M
- CCI
- CCI-002322
- Version
- AS24-U1-000680
- Vuln IDs
-
- AS24-U1-000680
- Rule IDs
-
- AS24-U1-000680_rule
Checks: C-AS24-U1-000680_chk
Interview the SA and Web Manager. Ask for documentation for the Apache web server administration. Verify there are documented procedures for shutting down an Apache website in the event of an attack. The procedure should, at a minimum, provide the following steps: Determine the respective website for the application at risk of an attack. In a command line, enter the following command: "kill -TERM `cat <'INSTALLED PATH'>/logs/httpd.pid`" If the web server is not capable of or cannot be configured to disconnect or disable remote access to the hosted applications when necessary, this is a finding.
Fix: F-AS24-U1-000680_fix
Prepare documented procedures for shutting down an Apache website in the event of an attack. The procedure should, at a minimum, provide the following steps: In a command line, enter the following command: "kill -TERM `cat <'INSTALLED PATH'>/logs/httpd.pid`"
- RMF Control
- AC-6
- Severity
- M
- CCI
- CCI-002235
- Version
- AS24-U1-000690
- Vuln IDs
-
- AS24-U1-000690
- Rule IDs
-
- AS24-U1-000690_rule
Checks: C-AS24-U1-000690_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 (SA), the Web Manager, or the Web Manager designees have access to the web administration tool or control files, this is a finding.
Fix: F-AS24-U1-000690_fix
Restrict access to the web administration tool to only the System Administrator, Web Manager, or the Web Manager designees.
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-001844
- Version
- AS24-U1-000700
- Vuln IDs
-
- AS24-U1-000700
- Rule IDs
-
- AS24-U1-000700_rule
Checks: C-AS24-U1-000700_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 "mod_proxy" is loaded and that the ProxyPass directive is configured. If the "mod_proxy" module is loaded and the "ProxyPass" directive is not configured, this is a finding.
Fix: F-AS24-U1-000700_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 "mod_proxy" module. Set the "ProxyPass" directive.
- RMF Control
- AU-8
- Severity
- M
- CCI
- CCI-001890
- Version
- AS24-U1-000750
- Vuln IDs
-
- AS24-U1-000750
- Rule IDs
-
- AS24-U1-000750_rule
Checks: C-AS24-U1-000750_chk
Review the web server documentation and configuration to determine the time stamp format for log data. In a command line, run "httpd -M" to view a list of installed modules. If "log_config_module" is not listed, this is a finding. Review the "httpd.conf" file. Verify the "LogFormat" directive exists. If it does not exist, this is a finding. Verify the "LogFormat" line contains the %t flag. If %t is not present, time is not mapped to UTC or GMT time, and this is a finding.
Fix: F-AS24-U1-000750_fix
In a command line, run "httpd -M" to view a list of installed modules. If "log_config_module" is not listed, enable this module. Review the "httpd.conf" file. Determine if the "LogFormat" directive exists. If it does not exist, ensure the "LogFormat" line contains the %t flag.
- RMF Control
- AU-8
- Severity
- M
- CCI
- CCI-001889
- Version
- AS24-U1-000760
- Vuln IDs
-
- AS24-U1-000760
- Rule IDs
-
- AS24-U1-000760_rule
Checks: C-AS24-U1-000760_chk
Review the web server documentation and configuration to determine the time stamp format for log data. In a command line, run "httpd -M" to view a list of installed modules. If "log_config_module" is not listed, this is a finding. Determine the location of the "httpd.conf" file by running the following command: httpd -V Review the "HTTPD_ROOT" path. Navigate to the "HTTPD_ROOT"/conf directory. Edit the "httpd.conf" file. Verify the "LogFormat" directive exists. If it does not exist, this is a finding. Verify the "LogFormat" line contains the %t flag. If %t is not present, time is not mapped to UTC or GMT time, and this is a finding.
Fix: F-AS24-U1-000760_fix
In a command line, run "httpd -M" to view a list of installed modules. If "log_config_module" is not listed, enable this module. Determine the location of the "httpd.conf" file by running the following command: httpd -V Review the "HTTPD_ROOT" path. Navigate to the "HTTPD_ROOT"/conf directory. Edit the "httpd.conf" file. Determine if the "LogFormat" directive exists. If it does not exist, ensure the "LogFormat" line contains the %t flag.
- RMF Control
- CM-5
- Severity
- M
- CCI
- CCI-001813
- Version
- AS24-U1-000770
- Vuln IDs
-
- AS24-U1-000770
- Rule IDs
-
- AS24-U1-000770_rule
Checks: C-AS24-U1-000770_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 present, this is a finding. If undocumented access to shell scripts or operating system functions is present, this is a finding.
Fix: F-AS24-U1-000770_fix
Ensure non-administrators are not allowed access to the directory tree, the shell, or other operating system functions and utilities.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001762
- Version
- AS24-U1-000780
- Vuln IDs
-
- AS24-U1-000780
- Rule IDs
-
- AS24-U1-000780_rule
Checks: C-AS24-U1-000780_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. Any variation in PPS will be documented, registered, and approved by the PPSM. If not, this is a finding.
Fix: F-AS24-U1-000780_fix
Ensure the website enforces the use of IANA well-known ports for HTTP and HTTPS.
- RMF Control
- SC-23
- Severity
- M
- CCI
- CCI-002470
- Version
- AS24-U1-000800
- Vuln IDs
-
- AS24-U1-000800
- Rule IDs
-
- AS24-U1-000800_rule
Checks: C-AS24-U1-000800_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. Look for the "SSLCACertificateFile" directive. Review the path of the "SSLCACertificateFile" directive. Review the contents of <'path of cert'>\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-AS24-U1-000800_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-5
- Severity
- M
- CCI
- CCI-002385
- Version
- AS24-U1-000820
- Vuln IDs
-
- AS24-U1-000820
- Rule IDs
-
- AS24-U1-000820_rule
Checks: C-AS24-U1-000820_chk
Review the web server documentation and deployed configuration to determine where the process ID is stored and which utilities are used to start/stop the web server. Determine where the "httpd.pid" file is located by running the following command: find / -name "httpd.pid" This file is automatically generated upon service start. Verify the file is owner/group root: ls -lah <'httpd.pid location'>/httpd.pid If the file owner/group is not root, this is a finding. Verify the service utilities to manage the Apache service are owner/group root: ls -lah /usr/sbin/service ls -lah /usr/sbin/apachectl If they are not, this is a finding. Determine whether the process ID and the utilities are protected from non-privileged users. If they are not protected, this is a finding.
Fix: F-AS24-U1-000820_fix
Review the web server documentation and deployed configuration to determine where the process ID is stored and which utilities are used to start/stop the web server. Determine where the "httpd.pid" file is located by running the following command: find / -name "httpd.pid" Run the following commands: # cd <'httpd.pid location'>/ # chown root.root httpd.pid # chmod 644 httpd.pid # cd /usr/sbin # chown root.root service apachectl # chmod 755 service apachectl
- RMF Control
- SC-5
- Severity
- M
- CCI
- CCI-002385
- Version
- AS24-U1-000830
- Vuln IDs
-
- AS24-U1-000830
- Rule IDs
-
- AS24-U1-000830_rule
Checks: C-AS24-U1-000830_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 "Timeout" directive is specified in the Apache configuration files to have a value of "10" seconds or less. If the Timeout directive is not configured or is set for more than "10" seconds, this is a finding.
Fix: F-AS24-U1-000830_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
- SC-8
- Severity
- M
- CCI
- CCI-002418
- Version
- AS24-U1-000840
- Vuln IDs
-
- AS24-U1-000840
- Rule IDs
-
- AS24-U1-000840_rule
Checks: C-AS24-U1-000840_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 does not exist 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-AS24-U1-000840_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
- SC-8
- Severity
- M
- CCI
- CCI-002418
- Version
- AS24-U1-000850
- Vuln IDs
-
- AS24-U1-000850
- Rule IDs
-
- AS24-U1-000850_rule
Checks: C-AS24-U1-000850_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 does not exist 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-AS24-U1-000850_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
- SC-8
- Severity
- M
- CCI
- CCI-002418
- Version
- AS24-U1-000860
- Vuln IDs
-
- AS24-U1-000860
- Rule IDs
-
- AS24-U1-000860_rule
Checks: C-AS24-U1-000860_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" Search for the directive "SSLCompression" in the "httpd.conf" file: # cat /<path_to_file>/httpd.conf | grep -i "SSLCompression" If the "SSLCompression" directive does not exist or is set to "on", this is a finding.
Fix: F-AS24-U1-000860_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-U1-000870
- Vuln IDs
-
- AS24-U1-000870
- Rule IDs
-
- AS24-U1-000870_rule
Checks: C-AS24-U1-000870_chk
In a command line, run "httpd -M | grep -i session_cookie_module". 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 "Session" in the "httpd.conf" file: # cat /<path_to_file>/httpd.conf | grep -i "Session" If the "Session" and "SessionCookieName" directives are not present, this is a finding. If "Session" is not set to "on" and "SessionCookieName" does not contain "httpOnly" and "secure", this is a finding.
Fix: F-AS24-U1-000870_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-U1-000880
- Vuln IDs
-
- AS24-U1-000880
- Rule IDs
-
- AS24-U1-000880_rule
Checks: C-AS24-U1-000880_chk
In a command line, run "httpd -M | grep -i session_cookie_module". 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 "Session" in the "httpd.conf" file: # cat /<path_to_file>/httpd.conf | grep -i "Session" If the "Session" and "SessionCookieName" directives are not present, this is a finding. If "Session" is not set to "on" and "SessionCookieName" does not contain "httpOnly" and "secure", this is a finding.
Fix: F-AS24-U1-000880_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-U1-000900
- Vuln IDs
-
- AS24-U1-000900
- Rule IDs
-
- AS24-U1-000900_rule
Checks: C-AS24-U1-000900_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" Search for the directive "SSLCipherSuite" in the "httpd.conf" file: # cat /<path_to_file>/httpd.conf | grep -i "SSLCipherSuite" If the "SSLCipherSuite" directive does not exist or does not remove non-FIPS-approved ciphers, this is a finding.
Fix: F-AS24-U1-000900_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 "SSLCipherSuite" is added and removes any non-FIPS-approved ciphers. Example: SSLCipherSuite ALL:!EXP:!NULL:!LOW:!SSLv2:!MD5:!RC4:!aNULL:!3DES:!IDEA Restart Apache: apachectl restart
- RMF Control
- SC-8
- Severity
- M
- CCI
- CCI-002422
- Version
- AS24-U1-000920
- Vuln IDs
-
- AS24-U1-000920
- Rule IDs
-
- AS24-U1-000920_rule
Checks: C-AS24-U1-000920_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 does not exist 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-AS24-U1-000920_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
- SI-2
- Severity
- M
- CCI
- CCI-002605
- Version
- AS24-U1-000930
- Vuln IDs
-
- AS24-U1-000930
- Rule IDs
-
- AS24-U1-000930_rule
Checks: C-AS24-U1-000930_chk
Determine the most recent patch level of the Apache Web Server 2.4 software, as posted on the Apache HTTP Server Project website. In a command line, type "httpd -v". If the version is more than one version behind the most recent patch level, this is a finding.
Fix: F-AS24-U1-000930_fix
Install the current version of the web server software and maintain appropriate service packs and patches.
- RMF Control
- CM-6
- Severity
- H
- CCI
- CCI-000366
- Version
- AS24-U1-000940
- Vuln IDs
-
- AS24-U1-000940
- Rule IDs
-
- AS24-U1-000940_rule
Checks: C-AS24-U1-000940_chk
Review the configured users. If the default "apache" user is being used to run Apache, this is a finding.
Fix: F-AS24-U1-000940_fix
Create a new non-privileged account to run the Apache processes through.
- RMF Control
- CM-6
- Severity
- L
- CCI
- CCI-000366
- Version
- AS24-U1-000950
- Vuln IDs
-
- AS24-U1-000950
- Rule IDs
-
- AS24-U1-000950_rule
Checks: C-AS24-U1-000950_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 Ports, Protocols, and Services Management (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-AS24-U1-000950_fix
Ensure the website enforces the use of IANA well-known ports for "HTTP" and "HTTPS".
- RMF Control
- CM-6
- Severity
- H
- CCI
- CCI-000366
- Version
- AS24-U1-000960
- Vuln IDs
-
- AS24-U1-000960
- Rule IDs
-
- AS24-U1-000960_rule
Checks: C-AS24-U1-000960_chk
Determine the version of the Apache software that is running on the system by entering the following command: httpd -v If the version of Apache is not at the following version or higher, this is a finding: Apache 2.4 (February 2012) NOTE: In some situations, the Apache software that is being used is supported by another vendor, such as Oracle in the case of the Oracle Application Server or IBM's HTTP Server. The versions of the software in these cases may not match the version number noted above. If the site can provide vendor documentation showing the version of the web server is supported, this would not be a finding.
Fix: F-AS24-U1-000960_fix
Install the current version of the web server software and maintain appropriate service packs and patches.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AS24-U1-000970
- Vuln IDs
-
- AS24-U1-000970
- Rule IDs
-
- AS24-U1-000970_rule
Checks: C-AS24-U1-000970_chk
Locate the htpasswd file by entering the following command: find / -name htpasswd Navigate to that directory. Run: ls -l htpasswd Permissions should be: r-x r - x - - - (550) If permissions on "htpasswd" are greater than "550", this is a finding. Verify the owner is the SA or Web Manager account. If another account has access to this file, this is a finding.
Fix: F-AS24-U1-000970_fix
Ensure the SA or Web Manager account owns the "htpasswd" file. Ensure permissions are set to "550".