Apache Server 2.4 UNIX Server Security Technical Implementation Guide
Pick two releases to diff their requirements.
Open a previous version of this STIG.
Digest of Updates +48 −77
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 48
- V-92597 Medium The Apache web server must limit the number of allowed simultaneous session requests.
- V-92599 Medium The Apache web server must perform server-side session management.
- V-92601 Medium The Apache web server must use cryptography to protect the integrity of remote sessions.
- V-92607 Medium The Apache web server must have system logging enabled.
- V-92609 Medium The Apache web server must generate, at a minimum, log records for system startup and shutdown, system access, and system authentication events.
- V-92621 Medium An Apache web server, behind a load balancer or proxy server, must produce log records containing the client IP information as the source and destination and not the load balancer or proxy IP information with each event.
- V-92627 Medium The Apache web server must use a logging mechanism that is configured to alert the Information System Security Officer (ISSO) and System Administrator (SA) in the event of a processing failure.
- V-92629 Medium The Apache web server log files must only be accessible by privileged users.
- V-92631 Medium The log information from the Apache web server must be protected from unauthorized modification or deletion.
- V-92635 Medium The log data and records from the Apache web server must be backed up onto a different system or media.
- V-92637 Medium Expansion modules must be fully reviewed, tested, and signed before they can exist on a production Apache web server.
- V-92639 Medium The Apache web server must not perform user management for hosted applications.
- V-92641 Medium The Apache web server must only contain services and functions necessary for operation.
- V-92643 Medium The Apache web server must not be a proxy server.
- V-92645 High The Apache web server must provide install options to exclude the installation of documentation, sample code, example applications, and tutorials.
- V-92653 Medium The Apache web server must have resource mappings set to disable the serving of certain file types.
- V-92655 Medium The Apache web server must allow the mappings to unused and vulnerable scripts to be removed.
- V-92659 Medium The Apache web server must have Web Distributed Authoring (WebDAV) disabled.
- V-92661 Medium The Apache web server must be configured to use a specified IP address and port.
- V-92671 Medium Apache web server accounts accessing the directory tree, the shell, or other operating system functions and utilities must only be administrative accounts.
- V-92673 High Apache web server application directories, libraries, and configuration files must only be accessible to privileged users.
- V-92675 Medium The Apache web server must separate the hosted applications from hosted Apache web server management functionality.
- V-92677 Medium The Apache web server must invalidate session identifiers upon hosted application user logout or other session termination.
- V-92679 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-92687 Medium The Apache web server must generate a session ID long enough that it cannot be guessed through brute force.
- V-92689 High The Apache web server must generate a session ID using as much of the character set as possible to reduce the risk of brute force.
- V-92695 Medium The Apache web server must be built to fail to a known safe state if system initialization fails, shutdown fails, or aborts fail.
- V-92697 Medium The Apache web server must be tuned to handle the operational requirements of the hosted application.
- V-92699 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-92701 Medium Debugging and trace information used to diagnose the Apache web server must be disabled.
- V-92705 Medium The Apache web server must set an inactive timeout for sessions.
- V-92709 Medium The Apache web server must restrict inbound connections from nonsecure zones.
- V-92711 Medium The Apache web server must be configured to immediately disconnect or disable remote access to the hosted applications.
- V-92713 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-92715 Medium The Apache web server must use a logging mechanism that is configured to allocate log record storage capacity large enough to accommodate the logging requirements of the Apache web server.
- V-92717 Medium The Apache web server must not impede the ability to write specified log record content to an audit log server.
- V-92719 Medium The Apache web server must be configured to integrate with an organizations security infrastructure.
- V-92723 Medium The Apache web server must generate log records that can be mapped to Coordinated Universal Time (UTC) or Greenwich Mean Time (GMT) which are stamped at a minimum granularity of one second.
- V-92727 Medium The Apache web server must prohibit or restrict the use of nonsecure or unnecessary ports, protocols, modules, and/or services.
- V-92731 Medium The Apache web server must be protected from being stopped by a non-privileged user.
- V-92741 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-92745 Medium The Apache web server must remove all export ciphers to protect the confidentiality and integrity of transmitted information.
- V-92749 Medium The Apache web server must install security-relevant software updates within the configured time period directed by an authoritative source (e.g., IAVM, CTOs, DTMs, and STIGs).
- V-92751 High The account used to run the Apache web server must not have a valid login shell and password defined.
- V-92753 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.
- V-92755 High The Apache web server software must be a vendor-supported version.
- V-92757 Medium The Apache web server htpasswd files (if present) must reflect proper ownership and permissions.
- V-92759 Medium HTTP request methods must be limited.
Removed rules 77
- AS24-U1-000010 Medium The Apache web server must limit the number of allowed simultaneous session requests.
- AS24-U1-000020 Medium The Apache web server must perform server-side session management.
- AS24-U1-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-U1-000040 Medium The Apache web server must use cryptography to protect the integrity of remote sessions.
- AS24-U1-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-U1-000070 Medium The Apache web server must generate, at a minimum, log records for system startup and shutdown, system access, and system authentication events.
- AS24-U1-000080 Medium The Apache web server must initiate session logging upon startup.
- AS24-U1-000090 Medium The Apache web server must produce log records containing sufficient information to establish what type of events occurred.
- AS24-U1-000100 Medium The Apache web server must produce log records containing sufficient information to establish when (date and time) events occurred.
- AS24-U1-000110 Medium The Apache web server must produce log records containing sufficient information to establish where within the Apache web server the events occurred.
- AS24-U1-000120 Medium The Apache web server must produce log records containing sufficient information to establish the source of events.
- AS24-U1-000130 Medium An Apache web server, behind a load balancer or proxy server, must produce log records containing the client IP information as the source and destination and not the load balancer or proxy IP information with each event.
- AS24-U1-000140 Medium The Apache web server must produce log records that contain sufficient information to establish the outcome (success or failure) of events.
- AS24-U1-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-U1-000180 Medium The Apache web server log files must only be accessible by privileged users.
- AS24-U1-000190 Medium The log information from the Apache web server must be protected from unauthorized modification.
- AS24-U1-000200 Medium The log information from the Apache web server must be protected from unauthorized deletion.
- AS24-U1-000210 Medium The log data and records from the Apache web server must be backed up onto a different system or media.
- AS24-U1-000230 Medium Expansion modules must be fully reviewed, tested, and signed before they can exist on a production Apache web server.
- AS24-U1-000240 Medium The Apache web server must not perform user management for hosted applications.
- AS24-U1-000250 Medium The Apache web server must only contain services and functions necessary for operation.
- AS24-U1-000260 Medium The Apache web server must not be a proxy server.
- AS24-U1-000270 High The Apache web server must provide install options to exclude the installation of documentation, sample code, example applications, and tutorials.
- AS24-U1-000280 High Apache Web server accounts not used by installed features (e.g., tools, utilities, specific services, etc.) must not be created and must be deleted when the Apache web server feature is uninstalled.
- AS24-U1-000290 Medium The Apache web server must provide options to remove or disable all utility programs not necessary for operations.
- AS24-U1-000300 Medium The Apache web server must have Multipurpose Internet Mail Extensions (MIME) that invoke operating system shell programs disabled.
- AS24-U1-000310 Medium The Apache web server must allow the mappings to unused and vulnerable scripts to be removed.
- AS24-U1-000320 Medium The Apache web server must have resource mappings set to disable the serving of certain file types.
- AS24-U1-000330 Medium The Apache web server must have Web Distributed Authoring (WebDAV) disabled.
- AS24-U1-000360 Medium The Apache web server must be configured to use a specified IP address and port.
- AS24-U1-000370 Medium The Apache web server must encrypt passwords during transmission.
- AS24-U1-000390 Medium Only authenticated system administrators or the designated PKI Sponsor for the Apache web server must have access to the Apache web server private key.
- AS24-U1-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-U1-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-U1-000430 Medium Apache web server accounts accessing the directory tree, the shell, or other operating system functions and utilities must only be administrative accounts.
- AS24-U1-000440 High Anonymous user access to the Apache web server application directories must be prohibited.
- AS24-U1-000450 Medium The Apache web server must separate the hosted applications from hosted Apache web server management functionality.
- AS24-U1-000460 Medium The Apache web server must invalidate session identifiers upon hosted application user logout or other session termination.
- AS24-U1-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-U1-000480 Medium The Apache web server must accept only system-generated session identifiers.
- AS24-U1-000490 Medium The Apache web server must generate a unique session identifier for each session using a FIPS 140-2 approved random number generator.
- AS24-U1-000500 Medium The Apache web server must generate unique session identifiers that cannot be reliably reproduced.
- AS24-U1-000510 Medium The Apache web server must generate a session ID long enough that it cannot be guessed through brute force.
- AS24-U1-000520 High The Apache web server must generate a session ID using as much of the character set as possible to reduce the risk of brute force.
- AS24-U1-000530 Medium The Apache web server must generate unique session identifiers with definable entropy.
- AS24-U1-000540 Medium The Apache web server must augment re-creation to a stable and known baseline.
- AS24-U1-000550 Medium The Apache web server must be built to fail to a known safe state if system initialization fails, shutdown fails, or aborts fail.
- AS24-U1-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-U1-000620 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-U1-000630 Medium Debugging and trace information used to diagnose the Apache web server must be disabled.
- AS24-U1-000640 Medium The Apache web server must set an absolute timeout for sessions.
- AS24-U1-000650 Medium The Apache web server must set an inactive timeout for sessions.
- AS24-U1-000660 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-U1-000670 Medium The Apache web server must restrict inbound connections from nonsecure zones.
- AS24-U1-000680 Medium The Apache web server must be configured to immediately disconnect or disable remote access to the hosted applications.
- AS24-U1-000690 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-U1-000700 Medium An Apache web server that is part of a web server cluster must route all remote management through a centrally managed access control point.
- AS24-U1-000750 Medium The Apache web server must generate log records that can be mapped to Coordinated Universal Time (UTC) or Greenwich Mean Time (GMT).
- AS24-U1-000760 Medium The Apache web server must record time stamps for log records to a minimum granularity of one second.
- AS24-U1-000770 Medium The Apache web server application, libraries, and configuration files must only be accessible to privileged users.
- AS24-U1-000780 Medium The Apache web server must prohibit or restrict the use of nonsecure or unnecessary ports, protocols, modules, and/or services.
- AS24-U1-000800 Medium The Apache web server must only accept client certificates issued by DoD PKI or DoD-approved PKI Certification Authorities (CAs).
- AS24-U1-000820 Medium The Apache web server must be protected from being stopped by a non-privileged user.
- AS24-U1-000830 Medium The Apache web server must be tuned to handle the operational requirements of the hosted application.
- AS24-U1-000840 Medium The Apache web server must employ cryptographic mechanisms (TLS/DTLS/SSL) preventing the unauthorized disclosure of information during transmission.
- AS24-U1-000850 Medium The Apache web server session IDs must be sent to the client using SSL/TLS.
- AS24-U1-000860 Medium The Apache web server cookies, such as session cookies, sent to the client using SSL/TLS must not be compressed.
- AS24-U1-000870 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-U1-000880 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-U1-000900 Medium The Apache web server must remove all export ciphers to protect the confidentiality and integrity of transmitted information.
- AS24-U1-000920 Medium The Apache web server must maintain the confidentiality and integrity of information during reception.
- AS24-U1-000930 Medium The Apache web server must install security-relevant software updates within the configured time period directed by an authoritative source (e.g., IAVM, CTOs, DTMs, and STIGs).
- AS24-U1-000940 High All accounts installed with the Apache web server software and tools must have passwords assigned and default passwords changed.
- AS24-U1-000950 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.
- AS24-U1-000960 High The Apache web server software must be a vendor-supported version.
- AS24-U1-000970 Medium The Apache web server htpasswd files (if present) must reflect proper ownership and permissions.
- AS24-U1-001000 Medium HTTP request methods must be limited.
- RMF Control
- AC-10
- Severity
- M
- CCI
- CCI-000054
- Version
- AS24-U1-000010
- Vuln IDs
-
- V-92597
- Rule IDs
-
- SV-102685r1_rule
Checks: C-91901r1_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-98839r1_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
-
- V-92599
- Rule IDs
-
- SV-102687r1_rule
Checks: C-91903r2_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 "session_module" and "usertrack_module" directives: # cat /<path_to_file>/httpd.conf | grep -i "session_module" # cat /<path_to_file>/httpd.conf | grep -i "usertrack_module" If "session_module" and "usertrack_module" are not enabled or do not exist, this is a finding.
Fix: F-98841r1_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
-
- V-92601
- Rule IDs
-
- SV-102689r1_rule
Checks: C-91905r2_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-98843r1_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
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- AS24-U1-000065
- Vuln IDs
-
- V-92607
- Rule IDs
-
- SV-102695r1_rule
Checks: C-91911r1_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 directive "CustomLog" in the "httpd.conf" file: # cat /<path_to_file>/httpd.conf | grep -i "CustomLog" If the "CustomLog" directive is missing or does not look like the following, this is a finding: CustomLog "Logs/access_log" common
Fix: F-98849r1_fix
Edit the "httpd.conf" file and enter the name, path and level for the CustomLog.
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- AS24-U1-000070
- Vuln IDs
-
- V-92609
- Rule IDs
-
- SV-102697r1_rule
Checks: C-91913r1_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-98851r1_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
- AU-3
- Severity
- M
- CCI
- CCI-000133
- Version
- AS24-U1-000130
- Vuln IDs
-
- V-92621
- Rule IDs
-
- SV-102709r1_rule
Checks: C-91925r1_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. If logs containing source/destination IPs can be obtained at the load balancer/proxy server, this is not a finding.
Fix: F-98863r1_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. Refer to https://httpd.apache.org/docs/2.4/mod/mod_remoteip.html for additional information on logging options based on your proxy/load balancing setup.
- RMF Control
- AU-5
- Severity
- M
- CCI
- CCI-000139
- Version
- AS24-U1-000160
- Vuln IDs
-
- V-92627
- Rule IDs
-
- SV-102715r1_rule
Checks: C-91931r1_chk
Work with the SIEM administrator to determine if an alert is configured when audit data is no longer received as expected. If there is no alert configured, this is a finding.
Fix: F-98869r1_fix
Work with the SIEM administrator to configure an alert when no audit data is received from Apache based on the defined schedule of connections.
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-000162
- Version
- AS24-U1-000180
- Vuln IDs
-
- V-92629
- Rule IDs
-
- SV-102717r1_rule
Checks: C-91933r1_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 system administrators and service accounts running the 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-98871r1_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
-
- V-92631
- Rule IDs
-
- SV-102719r1_rule
Checks: C-91935r1_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 an administrative service account this is a finding.
Fix: F-98873r1_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 an administrative service account: # chown <'service account'> <'ErrorLog directive PATH'>/*
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-001348
- Version
- AS24-U1-000210
- Vuln IDs
-
- V-92635
- Rule IDs
-
- SV-102723r1_rule
Checks: C-91939r1_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-98877r1_fix
Document the web server backup procedures.
- RMF Control
- CM-5
- Severity
- M
- CCI
- CCI-001749
- Version
- AS24-U1-000230
- Vuln IDs
-
- V-92637
- Rule IDs
-
- SV-102725r1_rule
Checks: C-91941r1_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-98879r1_fix
Remove any unsigned modules.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AS24-U1-000240
- Vuln IDs
-
- V-92639
- Rule IDs
-
- SV-102727r1_rule
Checks: C-91943r1_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-98881r1_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
-
- V-92641
- Rule IDs
-
- SV-102729r1_rule
Checks: C-91945r1_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-98883r1_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
-
- V-92643
- Rule IDs
-
- SV-102731r1_rule
Checks: C-91947r1_chk
If the server is a proxy server and not a web server, this check is Not Applicable. 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-98885r1_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
-
- V-92645
- Rule IDs
-
- SV-102733r1_rule
Checks: C-91949r1_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-98887r1_fix
Remove any unnecessary applications per ISSO documentation.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- AS24-U1-000300
- Vuln IDs
-
- V-92653
- Rule IDs
-
- SV-102741r1_rule
Checks: C-91957r2_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 any "Action" or "AddHandler" directives: # cat /<path_to_file>/httpd.conf | grep -i "Action" # cat /<path_to_file>/httpd.conf | grep -i "AddHandler" 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-98895r1_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
-
- V-92655
- Rule IDs
-
- SV-102743r1_rule
Checks: C-91959r2_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: # cat /<path_to_file>/httpd.conf | grep -i "Script" 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-98897r1_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-000330
- Vuln IDs
-
- V-92659
- Rule IDs
-
- SV-102747r1_rule
Checks: C-91963r1_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-98901r1_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
- IA-5
- Severity
- M
- CCI
- CCI-000186
- Version
- AS24-U1-000360
- Vuln IDs
-
- V-92661
- Rule IDs
-
- SV-102749r1_rule
Checks: C-91965r2_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 "Listen" directive: # cat /<path_to_file>/httpd.conf | grep -i "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-98903r1_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
- SC-2
- Severity
- M
- CCI
- CCI-001082
- Version
- AS24-U1-000430
- Vuln IDs
-
- V-92671
- Rule IDs
-
- SV-102759r1_rule
Checks: C-91975r1_chk
Review the web server documentation and configuration to determine what web server accounts are available on the server. Any directories or files owned by anyone other than an administrative service account 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-98913r1_fix
Limit the functions, directories, and files that are accessible by each account and role to administrative service accounts and remove or modify non-privileged account access.
- RMF Control
- CM-7
- Severity
- H
- CCI
- CCI-000381
- Version
- AS24-U1-000440
- Vuln IDs
-
- V-92673
- Rule IDs
-
- SV-102761r1_rule
Checks: C-91977r1_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-98915r1_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
-
- V-92675
- Rule IDs
-
- SV-102763r1_rule
Checks: C-91979r1_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-98917r1_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
-
- V-92677
- Rule IDs
-
- SV-102765r1_rule
Checks: C-91981r2_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" # cat /<path_to_file>/httpd.conf | grep -i "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-98919r1_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
-
- V-92679
- Rule IDs
-
- SV-102767r1_rule
Checks: C-91983r1_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_headers" module is loaded in the web server: # httpd -M |grep header Verify "mod_headers" is returned from the above command. If the cookie settings do not align with these requirements, this is a finding.
Fix: F-98921r1_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-001188
- Version
- AS24-U1-000510
- Vuln IDs
-
- V-92687
- Rule IDs
-
- SV-102775r1_rule
Checks: C-91991r1_chk
Review the web server documentation and deployed configuration to determine the length of the generated session identifiers. First ensure that "session_crypto" is enabled: httpd -M |grep session_crypto If the above command returns "session_crypto_module", 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-98929r1_fix
Configure the web server to generate session identifiers that are at least 128 bits in length. Ensure that "session_crypto_module" 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
-
- V-92689
- Rule IDs
-
- SV-102777r1_rule
Checks: C-91993r2_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 "unique_id_module" is loaded: # cat /<path_to_file>/httpd.conf | grep -i "unique_id_module" If the "unique_id_module" is not loaded, this is a finding.
Fix: F-98931r2_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 "unique_id_module". Example: LoadModule unique_id_module modules/mod_unique_id.so Restart Apache: apachectl restart
- RMF Control
- SC-24
- Severity
- M
- CCI
- CCI-001190
- Version
- AS24-U1-000550
- Vuln IDs
-
- V-92695
- Rule IDs
-
- SV-102783r1_rule
Checks: C-91999r1_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-98937r1_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
-
- V-92697
- Rule IDs
-
- SV-102785r1_rule
Checks: C-92001r2_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-98939r1_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
-
- V-92699
- Rule IDs
-
- SV-102787r1_rule
Checks: C-92003r2_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 for custom error pages for "4xx" or "5xx" HTTP status codes, this is a finding. # cat /<path_to_file>/httpd.conf | grep -i "ErrorDocument"
Fix: F-98941r1_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 for 4xx or 5xx HTTP status codes. 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
-
- V-92701
- Rule IDs
-
- SV-102789r1_rule
Checks: C-92005r2_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": # cat /<path_to_file>/httpd.conf | grep -i "TraceEnable" 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: # cat /<path_to_file>/httpd.conf | grep -i "LogLevel"
Fix: F-98943r1_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". Set the "LogLevel" directive to "info" or below.
- RMF Control
- AC-12
- Severity
- M
- CCI
- CCI-002361
- Version
- AS24-U1-000650
- Vuln IDs
-
- V-92705
- Rule IDs
-
- SV-102793r1_rule
Checks: C-92009r2_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 "reqtimeout_module" is loaded: # cat /<path_to_file>/httpd.conf | grep -i "reqtimeout_module" If the "reqtimeout_module" is not loaded, this is a finding. Verify the "RequestReadTimeout" directive is configured. If the "reqtimeout_module" is loaded and the "RequestReadTimeout" directive is not configured, this is a finding.
Fix: F-98947r1_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-U1-000670
- Vuln IDs
-
- V-92709
- Rule IDs
-
- SV-102797r1_rule
Checks: C-92013r2_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-98951r2_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-17
- Severity
- M
- CCI
- CCI-002322
- Version
- AS24-U1-000680
- Vuln IDs
-
- V-92711
- Rule IDs
-
- SV-102799r1_rule
Checks: C-92015r2_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. 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" 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-98953r1_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
-
- V-92713
- Rule IDs
-
- SV-102801r1_rule
Checks: C-92017r1_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-98955r1_fix
Restrict access to the web administration tool to only the System Administrator, Web Manager, or the Web Manager designees.
- RMF Control
- AU-4
- Severity
- M
- CCI
- CCI-001849
- Version
- AS24-U1-000710
- Vuln IDs
-
- V-92715
- Rule IDs
-
- SV-102803r1_rule
Checks: C-92019r1_chk
Work with SIEM administrator to determine log storage capacity. If there is no setting within a SIEM to accommodate enough a large logging capacity, this is a finding.
Fix: F-98957r1_fix
Work with the SIEM administrator to determine if the SIEM is configured to allocate log record storage capacity large enough to accommodate the logging requirements of the Apache web server.
- RMF Control
- AU-4
- Severity
- M
- CCI
- CCI-001851
- Version
- AS24-U1-000720
- Vuln IDs
-
- V-92717
- Rule IDs
-
- SV-102805r1_rule
Checks: C-92021r1_chk
Work with SIEM administrator to determine audit configurations. If there is a setting within the SIEM that could impede the ability to write specific log record content, this is a finding.
Fix: F-98959r1_fix
Work with the SIEM administrator to allow the ability to write specified log record content to an audit log server.
- RMF Control
- AU-4
- Severity
- M
- CCI
- CCI-001851
- Version
- AS24-U1-000730
- Vuln IDs
-
- V-92719
- Rule IDs
-
- SV-102807r1_rule
Checks: C-92023r1_chk
Work with the SIEM administrator to determine current security integrations. If the SIEM is not integrated with security, this is a finding.
Fix: F-98961r1_fix
Work with the SIEM administrator to integrate with an organizations security infrastructure.
- RMF Control
- AU-8
- Severity
- M
- CCI
- CCI-001889
- Version
- AS24-U1-000750
- Vuln IDs
-
- V-92723
- Rule IDs
-
- SV-102811r1_rule
Checks: C-92027r2_chk
Review the web server documentation and configuration to determine the time stamp format for log data. 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 "log_config_module" directive: # cat /<path_to_file>/httpd.conf | grep -i "LogFormat" Verify the "LogFormat" directive exists. If the "LogFormat" directive does not exist, this is a finding. Verify the "LogFormat" line contains the "%t" flag. If "%t" flag is not present, time is not mapped to UTC or GMT time, this is a finding.
Fix: F-98965r1_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
- CM-7
- Severity
- M
- CCI
- CCI-001762
- Version
- AS24-U1-000780
- Vuln IDs
-
- V-92727
- Rule IDs
-
- SV-102815r1_rule
Checks: C-92033r1_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-98971r1_fix
Ensure the website enforces the use of IANA well-known ports for HTTP and HTTPS.
- RMF Control
- SC-5
- Severity
- M
- CCI
- CCI-002385
- Version
- AS24-U1-000820
- Vuln IDs
-
- V-92731
- Rule IDs
-
- SV-102819r1_rule
Checks: C-92037r1_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 owner/group is of an administrative service account: ls -lah <'httpd.pid location'>/httpd.pid If the file owner/group is not an administrative service account, this is a finding. Verify the service utilities used to manage the Apache service owner/group is of an administrative service account. ls -lah /usr/sbin/service ls -lah /usr/sbin/apachectl If the service utilities owner/group is not an administrative service account, this is a finding. Determine whether the process ID and the utilities are protected from non-privileged users. If the process ID and the utilities are not protected from non-privileged users, this is a finding.
Fix: F-98975r1_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 <'service account'> httpd.pid # chmod 644 httpd.pid # cd /usr/sbin # chown <'service account'> service apachectl # chmod 755 service apachectl
- RMF Control
- SC-8
- Severity
- M
- CCI
- CCI-002418
- Version
- AS24-U1-000870
- Vuln IDs
-
- V-92741
- Rule IDs
-
- SV-102829r1_rule
Checks: C-92047r1_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-98985r1_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
-
- V-92745
- Rule IDs
-
- SV-102833r1_rule
Checks: C-92051r2_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 "SSLCACertificateFile" directive: # cat /<path_to_file>/httpd.conf | grep -i "SSLCACertificateFile" 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-98989r1_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
-
- V-92749
- Rule IDs
-
- SV-102837r1_rule
Checks: C-92055r1_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-98993r1_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
-
- V-92751
- Rule IDs
-
- SV-102839r1_rule
Checks: C-92057r1_chk
Identify the account that is running the "httpd" process: # ps -ef | grep -i httpd | grep -v grep apache 29613 996 0 Feb17 ? 00:00:00 /usr/sbin/httpd apache 29614 996 0 Feb17 ? 00:00:00 /usr/sbin/httpd Check to see if the account has a valid login shell: # cut -d: -f1,7 /etc/passwd | grep -i <service_account> apache:/sbin/nologin If the service account has a valid login shell, verify that no password is configured for the account: # cut -d: -f1,2 /etc/shadow | grep -i <service_account> apache:!! If the account has a valid login shell and a password defined, this is a finding.
Fix: F-98995r1_fix
Update the /etc/passwd file to assign the account used to run the "httpd" process an invalid login shell such as "/sbin/nologin". Lock the account used to run the "httpd" process: # passwd -l <account> Locking password for user <account> passwd: Success
- RMF Control
- CM-6
- Severity
- L
- CCI
- CCI-000366
- Version
- AS24-U1-000950
- Vuln IDs
-
- V-92753
- Rule IDs
-
- SV-102841r1_rule
Checks: C-92059r1_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-98997r1_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
-
- V-92755
- Rule IDs
-
- SV-102843r1_rule
Checks: C-92061r1_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-98999r1_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
-
- V-92757
- Rule IDs
-
- SV-102845r1_rule
Checks: C-92063r1_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-99001r1_fix
Ensure the SA or Web Manager account owns the "htpasswd" file. Ensure permissions are set to "550".
- RMF Control
- SC-3
- Severity
- M
- CCI
- CCI-001084
- Version
- AS24-U1-001000
- Vuln IDs
-
- V-92759
- Rule IDs
-
- SV-102847r1_rule
Checks: C-92065r2_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" Enter the following command into a command line: more <'INSTALLED PATH'>/conf/httpd.conf For every enabled "Directory" directive (except root), verify the following entry exists: <LimitExcept GET POST OPTIONS> Require all denied </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 and approved by the ISSO, at which point this can be considered not a finding.
Fix: F-99003r1_fix
Edit the "httpd.conf" file and add the following entries for every enabled "Directory" directive (except root). <LimitExcept GET POST OPTIONS> Require all denied </LimitExcept> Example: <Directory "/usr/local/apache2/cgi-bin"> . . . # Limit HTTP methods <LimitExcept GET POST OPTIONS> Require all denied </LimitExcept> </Directory>