Apache Server 2.4 Windows Site Security Technical Implementation Guide

V1R1 2019-05-22       U_Apache_Server_2-4_Windows_Site_STIG_V1R1_Manual-xccdf.xml
V1R0 2018-11-26       U_Apache_Server_2-4_Windows_Site_STIG_V1R0-1_Manual-xccdf.xml
This Security Technical Implementation Guide is published as a tool to improve the security of Department of Defense (DoD) information systems. The requirements are derived from the National Institute of Standards and Technology (NIST) 800-53 and related documents. Comments or proposed revisions to this document should be sent via email to the following address: [email protected]
Comparison
All 94
No Change 0
Updated 0
Added 37
Removed 57
V-92485 Added
Findings ID: AS24-W2-000010 Rule ID: SV-102573r1_rule Severity: medium CCI: CCI-000054

Discussion

Web server management includes the ability to control the number of users and user sessions that utilize a web server. Limiting the number of allowed users and sessions per user is helpful in limiting risks related to several types of denial-of-service (DoS) attacks. Although there is some latitude concerning the settings, they should follow DoD-recommended values, but the settings should be configurable to allow for future DoD direction. While the DoD will specify recommended values, the values can be adjusted to accommodate the operational requirement of a given system.

Checks

Open the <'INSTALL PATH'>\conf\httpd.conf file with an editor and search for the following directive: MaxKeepAliveRequests Verify the value is "100" or greater. If the directive is not set to "100" or greater, this is a finding.

Fix

Open the <'INSTALL PATH'>\conf\httpd.conf file with an editor and search for the following directive: MaxKeepAliveRequests Set the directive to a value of "100" or greater; add the directive if it does not exist. Restart the Apache service.
V-92487 Added
Findings ID: AS24-W2-000020 Rule ID: SV-102575r1_rule Severity: medium CCI: CCI-000054

Discussion

Session management is the practice of protecting the bulk of the user authorization and identity information. Storing of this data can occur on the client system or on the server. When the session information is stored on the client, the session ID, along with the user authorization and identity information, is sent along with each client request and is stored in a cookie, embedded in the uniform resource locator (URL), or placed in a hidden field on the displayed form. Each of these offers advantages and disadvantages. The biggest disadvantage to all three is the hijacking of a session along with all of the user's credentials. When the user authorization and identity information is stored on the server in a protected and encrypted database, the communication between the client and web server will only send the session identifier, and the server can then retrieve user credentials for the session when needed. If, during transmission, the session were to be hijacked, the user's credentials would not be compromised.

Checks

In a command line, navigate to <'INSTALL PATH'>\bin. Run "httpd -M" to view a list of installed modules. If the module "mod_session" is not enabled, this is a finding.

Fix

Uncomment the "mod_session" module in the <'INSTALLED PATH'>\conf\httpd.conf file. 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
V-92495 Added
Findings ID: AS24-W2-000090 Rule ID: SV-102583r1_rule Severity: medium CCI: CCI-000130

Discussion

Web server logging capability is critical for accurate forensic analysis. Without sufficient and accurate information, a correct replay of the events cannot be determined. Ascertaining the correct type of event that occurred is important during forensic analysis. The correct determination of the event and when it occurred is important in relation to other events that happened at that same time. Without sufficient information establishing what type of log event occurred, investigation into the cause of event is severely hindered. Log record content that may be necessary to satisfy the requirement of this control includes but is not limited to time stamps, source and destination IP addresses, user/process identifiers, event descriptions, application-specific events, success/fail indications, file names involved, access control, and flow control rules invoked. Satisfies: SRG-APP-000095-WSR-000056, SRG-APP-000098-WSR-000060, SRG-APP-000099-WSR-000061, SRG-APP-000100-WSR-000064

Checks

Review the access log file. If necessary, review the <'INSTALLED PATH'>\conf\httpd.conf file to determine the location of the logs. Items to be logged are as shown in this sample line in the <'INSTALLED PATH'>\conf\httpd.conf file: LogFormat "%a %A %h %H %l %m %s %t %u %U \"%{Referer}i\" " combined If the web server is not configured to capture the required audit events for all sites and virtual directories, this is a finding.

Fix

Open the <'INSTALLED PATH'>\conf\httpd.conf file. Configure the "LogFormat" to look like the following within the block: LogFormat "%a %A %h %H %l %m %s %t %u %U \"%{Referer}i\" " combined
V-92503 Added
Findings ID: AS24-W2-000240 Rule ID: SV-102591r1_rule Severity: medium CCI: CCI-000381

Discussion

User management and authentication can be an essential part of any application hosted by the web server. Along with authenticating users, the user management function must perform several other tasks such as password complexity, locking users after a configurable number of failed logons, and management of temporary and emergency accounts. All of this must be done enterprise-wide. The web server contains a minimal user management function, but the web server user management function does not offer enterprise-wide user management, and user management is not the primary function of the web server. User management for the hosted applications should be done through a facility that is built for enterprise-wide user management, such as LDAP and Active Directory.

Checks

Interview the System Administrator (SA) about the role of the Apache web server. If the web server is hosting an application, have the SA provide supporting documentation on how the application's user management is accomplished outside of the web server. If the web server is not hosting an application, this is Not Applicable. If the web server is performing user management for hosted applications, this is a finding. If the web server is hosting an application and the SA cannot provide supporting documentation on how the application's user management is accomplished outside of the Apache web server, this is a finding.

Fix

Reconfigure any hosted applications on the Apache web server to perform user management outside the web server. Document how the hosted application user management is accomplished.
V-92505 Added
Findings ID: AS24-W2-000300 Rule ID: SV-102593r1_rule Severity: medium CCI: CCI-000381

Discussion

Resource mapping is the process of tying a particular file type to a process in the web server that can serve that type of file to a requesting client and to identify which file types are not to be delivered to a client. By not specifying which files can and cannot be served to a user, the web server could deliver to a user web server configuration files, log files, password files, etc. The web server must only allow hosted application file types to be served to a user, and all other types must be disabled. Satisfies: SRG-APP-000141-WSR-000081, SRG-APP-000141-WSR-000083

Checks

Review the <'INSTALLED PATH'>\conf\httpd.conf file. 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.

Fix

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.
V-92507 Added
Findings ID: AS24-W2-000310 Rule ID: SV-102595r1_rule Severity: medium CCI: CCI-000381

Discussion

Scripts allow server-side processing on behalf of the hosted application user or as processes needed in the implementation of hosted applications. Removing scripts not needed for application operation or deemed vulnerable helps to secure the web server. To ensure scripts are not added to the web server and run maliciously, script mappings that are not needed or used by the web server for hosted application operation must be removed.

Checks

Locate cgi-bin files and directories enabled in the Apache configuration via "Script", "ScriptAlias" or "ScriptAliasMatch", or "ScriptInterpreterSource" directives. If any script is present that is not needed for application operation, this is a finding.

Fix

Remove any scripts in cgi-bin directory if they are not needed for application operation.
V-92511 Added
Findings ID: AS24-W2-000350 Rule ID: SV-102599r1_rule Severity: medium CCI: CCI-000381

Discussion

A web server is designed to deliver content and execute scripts or applications on the request of a client or user. Containing user requests to files in the directory tree of the hosted web application and limiting the execution of scripts and applications guarantees that the user is not accessing information protected outside the application's realm. The web server must also prohibit users from jumping outside the hosted application directory tree through access to the user's home directory, symbolic links or shortcuts, or through search paths for missing files.

Checks

Review the <'INSTALLED PATH'>\conf\httpd.conf file and search for the following directive: Directory For every root directory entry (i.e., ), verify the following exists. If it does not, this is a finding: Order Deny,Allow Deny from all If the statement above is not found in the root directory statement, this is a finding. If "Allow" directives are included in the root directory statement, this is a finding.

Fix

Edit the <'INSTALLED PATH'>\conf\httpd.conf file and set the root directory directive as follows: Directory Order Deny,Allow Deny from all
V-92513 Added
Findings ID: AS24-W2-000360 Rule ID: SV-102601r1_rule Severity: medium CCI: CCI-000382

Discussion

The web server must be configured to listen on a specified IP address and port. Without specifying an IP address and port for the web server to use, the web server will listen on all IP addresses available to the hosting server. If the web server has multiple IP addresses, i.e., a management IP address, the web server will also accept connections on the management IP address. Accessing the hosted application through an IP address normally used for non-application functions opens the possibility of user access to resources, utilities, files, ports, and protocols that are protected on the desired application IP address.

Checks

Review the <'INSTALLED PATH'>\conf\httpd.conf file and search for the following directive: Listen For any enabled "Listen" directives, verify they 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

Edit the <'INSTALLED PATH'>\conf\httpd.conf file and set the "Listen" directive to listen on a specific IP address and port.
V-92517 Added
Findings ID: AS24-W2-000380 Rule ID: SV-102605r1_rule Severity: medium CCI: CCI-000185

Discussion

A certificate's certification path is the path from the end entity certificate to a trusted root certification authority (CA). Certification path validation is necessary for a relying party to make an informed decision regarding acceptance of an end entity certificate. Certification path validation includes checks such as certificate issuer trust, time validity, and revocation status for each certificate in the certification path. Revocation status information for CA and subject certificates in a certification path is commonly provided via certificate revocation lists (CRLs) or online certificate status protocol (OCSP) responses.

Checks

Review the <'INSTALLED PATH'>\conf\httpd.conf file to determine if the "SSLVerifyClient" and "SSLVerifyDepth" directives exist and look like the following. If they do not, this is a finding. SSLVerifyClient require SSLVerifyDepth 1 If "SSLVerifyDepth" is set to "0", this is a finding.

Fix

Ensure that client verification is enabled. For each enabled hosted application on the server, enable and set "SSLVerifyClient" to "require" and ensure that the server is configured to verify the client certificate by enabling "SSLVerifyDepth". Example: SSLVerifyClient require Find the line "SSLVerifyDepth" and ensure it is set properly: SSLVerifyDepth 1 "SSLVerifyDepth" is set based on the number of CAs that are required in the certificate chain to check, before the client certificate is accepted as valid. A setting of "0" would allow self-signed CAs to validate client certificates, which is not desirable in this context. Additional Information: https://httpd.apache.org/docs/current/mod/mod_ssl.html
V-92519 Added
Findings ID: AS24-W2-000390 Rule ID: SV-102607r1_rule Severity: medium CCI: CCI-000186

Discussion

The web server's private key is used to prove the identity of the server to clients and securely exchange the shared secret key used to encrypt communications between the web server and clients. By gaining access to the private key, an attacker can pretend to be an authorized server and decrypt the SSL traffic between a client and the web server.

Checks

If the Apache web server does not have a private key, this is Not Applicable. Review the private key path in the "SSLCertificateFile" directive. Verify only authenticated System Administrators and the designated PKI Sponsor for the web server can access the web server private key. If the private key is accessible by unauthenticated or unauthorized users, this is a finding.

Fix

Configure the Apache web server to ensure only authenticated and authorized users can access the web server's private key.
V-92527 Added
Findings ID: AS24-W2-000430 Rule ID: SV-102615r1_rule Severity: medium CCI: CCI-001082

Discussion

As a rule, accounts on a web server are to be kept to a minimum. Only administrators, web managers, developers, auditors, and web authors require accounts on the machine hosting the web server. The resources to which these accounts have access must also be closely monitored and controlled. Only the system administrator needs access to all the system's capabilities, while the web administrator and associated staff require access and control of the web content and web server configuration files.

Checks

Review the web server documentation and configuration to determine what web server accounts are available on the server. If any directories or files 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

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.
V-92529 Added
Findings ID: AS24-W2-000440 Rule ID: SV-102617r1_rule Severity: high CCI: CCI-001082

Discussion

To properly monitor the changes to the web server and the hosted applications, logging must be enabled. Along with logging being enabled, each record must properly contain the changes made and the names of those who made the changes. Allowing anonymous users the capability to change the web server or the hosted application will not generate proper log information that can then be used for forensic reporting in the case of a security issue. Allowing anonymous users to make changes will also grant change capabilities to anybody without forcing a user to authenticate before the changes can be made. Satisfies: SRG-APP-000211-WSR-000031, SRG-APP-000380-WSR-000072

Checks

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

Ensure non-administrators are not allowed access to the directory tree, the shell, or other operating system functions and utilities.
V-92531 Added
Findings ID: AS24-W2-000450 Rule ID: SV-102619r1_rule Severity: medium CCI: CCI-001082

Discussion

The separation of user functionality from web server management can be accomplished by moving management functions to a separate IP address or port. To further separate the management functions, separate authentication methods and certificates should be used. By moving the management functionality, the possibility of accidental discovery of the management functions by non-privileged users during hosted application use is minimized.

Checks

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

Configure Apache to separate the hosted applications from web server management functionality.
V-92533 Added
Findings ID: AS24-W2-000460 Rule ID: SV-102621r1_rule Severity: medium CCI: CCI-001185

Discussion

Captured sessions can be reused in "replay" attacks. This requirement limits the ability of adversaries from capturing and continuing to employ previously valid session IDs. Session IDs are tokens generated by web applications to uniquely identify an application user's session. Unique session IDs help to reduce predictability of said identifiers. When a user logs out, or when any other session termination event occurs, the web server must terminate the user session to minimize the potential for an attacker to hijack that particular user session.

Checks

Review the <'INSTALL PATH'>\conf\httpd.conf file. 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

Open the <'INSTALL PATH'>\conf\httpd.conf file. Set the "SessionMaxAge" directive to a value of "600" or less; add the directive if it does not exist. Restart the Apache service.
V-92535 Added
Findings ID: AS24-W2-000470 Rule ID: SV-102623r1_rule Severity: medium CCI: CCI-001664

Discussion

Cookies are used to exchange data between the web server and the client. Cookies, such as a session cookie, may contain session information and user credentials used to maintain a persistent connection between the user and the hosted application since HTTP/HTTPS is a stateless protocol. When the cookie parameters are not set properly (i.e., domain and path parameters), cookies can be shared within hosted applications residing on the same web server or to applications hosted on different web servers residing on the same domain.

Checks

Review the <'INSTALLED PATH'>\conf\httpd.conf file. If "HttpOnly; secure" is not configured, this is a finding. Review the code. If when creating cookies, the following is not occurring, this is a finding: function setCookie() { document.cookie = "ALEPH_SESSION_ID = $SESS; path = /; secure"; }

Fix

Add this line to the "httpd.conf" file: Header always edit Set-Cookie ^(.*)$ $1;HttpOnly;secure Add the secure attribute to the JavaScript set cookie: function setCookie() { document.cookie = "ALEPH_SESSION_ID = $SESS; path = /; secure"; } "HttpOnly" cannot be used since by definition this is a cookie set by JavaScript. Restart www_server and Apache.
V-92537 Added
Findings ID: AS24-W2-000480 Rule ID: SV-102625r1_rule Severity: medium CCI: CCI-001664

Discussion

Communication between a client and the web server is done using the HTTP protocol, but HTTP is a stateless protocol. To maintain a connection or session, a web server will generate a session identifier (ID) for each client session when the session is initiated. The session ID allows the web server to track a user session and, in many cases, the user, if the user previously logged on to a hosted application. When a web server accepts session identifiers that are not generated by the web server, the web server creates an environment where session hijacking, such as session fixation, could be used to access hosted applications through session IDs that have already been authenticated. Forcing the web server to only accept web server-generated session IDs and to create new session IDs once a user is authenticated will limit session hijacking.

Checks

Review the <'INSTALL PATH'>\conf\httpd.conf file. Verify the "mod_unique_id" is loaded. If it does not exist, this is a finding.

Fix

Edit the <'INSTALL PATH'>\conf\httpd.conf file and load the "mod_unique_id" module. Restart the Apache service.
V-92539 Added
Findings ID: AS24-W2-000500 Rule ID: SV-102627r1_rule Severity: medium CCI: CCI-001188

Discussion

Communication between a client and the web server is done using the HTTP protocol, but HTTP is a stateless protocol. To maintain a connection or session, a web server will generate a session identifier (ID) for each client session when the session is initiated. The session ID allows the web server to track a user session and, in many cases, the user, if the user previously logged on to a hosted application. By being able to guess session IDs, an attacker can easily perform a man-in-the-middle attack. To truly generate random session identifiers that cannot be reproduced, the web server session ID generator, when used twice with the same input criteria, must generate an unrelated random ID. The session ID generator also needs to be a FIPS 140-2 approved generator. Satisfies: SRG-APP-000224-WSR-000136, SRG-APP-000224-WSR-000137

Checks

Review the <'INSTALLED PATH'>\conf\httpd.conf file. Verify the "mod_unique_id" is loaded. If it does not exist, this is a finding.

Fix

Edit the <'INSTALLED PATH'>\conf\httpd.conf file and load the "mod_unique_id" module. Restart Apache.
V-92543 Added
Findings ID: AS24-W2-000520 Rule ID: SV-102631r1_rule Severity: medium CCI: CCI-001188

Discussion

Generating a session identifier (ID) that is not easily guessed through brute force is essential to deter several types of session attacks. By knowing the session ID, an attacker can hijack a user session that has already been user authenticated by the hosted application. The attacker does not need to guess user identifiers and passwords or have a secure token since the user session has already been authenticated. By generating session IDs that contain as much of the character set as possible, i.e., A-Z, a-z, and 0-9, the session ID becomes exponentially harder to guess.

Checks

Review the <'INSTALLED PATH'>\conf\httpd.conf file. Check to see if the "mod_unique_id" is loaded. If it does not exist, this is a finding.

Fix

Edit the <'INSTALLED PATH'>\conf\httpd.conf file and load the "mod_unique_id" module. Restart Apache.
V-92545 Added
Findings ID: AS24-W2-000540 Rule ID: SV-102633r1_rule Severity: medium CCI: CCI-001190

Discussion

Making certain that the web server has not been updated by an unauthorized user is always a concern. Adding patches, functions, and modules that are untested and not part of the baseline opens the possibility for security risks. The web server must offer, and not hinder, a method that allows for the quick and easy reinstallation of a verified and patched baseline to guarantee the production web server is up-to-date and has not been modified to add functionality or expose security risks. When the web server does not offer a method to roll back to a clean baseline, external methods, such as a baseline snapshot or virtualizing the web server, can be used.

Checks

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

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.
V-92547 Added
Findings ID: AS24-W2-000560 Rule ID: SV-102635r1_rule Severity: medium CCI: CCI-001190

Discussion

The web server may host applications that display information that cannot be disrupted, such as information that is time critical or life threatening. In these cases, a web server that shuts down or ceases to be accessible when there is a failure is not acceptable. In these types of cases, clustering of web servers is used. Clustering of multiple web servers is a common approach to providing fail-safe application availability. To ensure application availability, the web server must provide clustering or some form of failover functionality. Satisfies: SRG-APP-000225-WSR-000141, SRG-APP-000356-WSR-000007

Checks

Review the <'INSTALLED PATH'>\conf\httpd.conf file. Verify the "mod_proxy" is loaded. If it does not exist, this is a finding. If the "mod_proxy" module is loaded and the "ProxyPass" directive is not configured, this is a finding.

Fix

Edit the <'INSTALLED PATH'>\conf\httpd.conf file and load the "mod_proxy" module. Set the "ProxyPass" directive.
V-92549 Added
Findings ID: AS24-W2-000580 Rule ID: SV-102637r1_rule Severity: medium CCI: CCI-001084

Discussion

A web server is used to deliver content on the request of a client. The content delivered to a client must be controlled, allowing only hosted application files to be accessed and delivered. To allow a client access to system files of any type is a major security risk that is entirely avoidable. Obtaining such access is the goal of directory traversal and URL manipulation vulnerabilities. To facilitate such access by misconfiguring the web document (home) directory is a serious error. In addition, having the path on the same drive as the system folder compounds potential attacks, such as drive space exhaustion.

Checks

Determine whether the public web server has a two-way trusted relationship with any private asset located within the network. Private web server resources (e.g., drives, folders, printers, etc.) will not be directly mapped to or shared with public web servers. If sharing is selected for any web folder, this is a finding. If private resources (e.g., drives, partitions, folders/directories, printers, etc.) are shared with the public web server, this is a finding.

Fix

Configure the public web server to not have a trusted relationship with any system resource that is also not accessible to the public. Web content is not to be shared via Microsoft shares or NFS mounts.
V-92553 Added
Findings ID: AS24-W2-000610 Rule ID: SV-102641r1_rule Severity: medium CCI: CCI-001312

Discussion

The goal is to completely control the web user's experience in navigating any portion of the web document root directories. Ensuring all web content directories have at least the equivalent of an "index.html" file is a significant factor to accomplish this end. Enumeration techniques, such as URL parameter manipulation, rely upon being able to obtain information about the web server's directory structure by locating directories without default pages. In the scenario, the web server will display to the user a listing of the files in the directory being accessed. By having a default hosted application web page, the anonymous web user will not obtain directory browsing information or an error message that reveals the server type and version.

Checks

Review the DocumentRoot directive in the <'INSTALLED PATH'>\conf\httpd.conf file. Note each location following the "DocumentRoot" string. This is the configured path(s) to the document root directory(s). To view a list of the directories and sub-directories and the file "index.html", from each stated "DocumentRoot" location, enter the following command: dir "index.html" Review the results for each document root directory and its subdirectories. If a directory does not contain an "index.html" or equivalent default document, this is a finding.

Fix

Add a default document to the applicable directories.
V-92555 Added
Findings ID: AS24-W2-000620 Rule ID: SV-102643r1_rule Severity: medium CCI: CCI-001312

Discussion

Information needed by an attacker to begin looking for possible vulnerabilities in a web server includes any information about the web server, backend systems being accessed, and plug-ins or modules being used. Web servers will often display error messages to client users displaying enough information to aid in the debugging of the error. The information given back in error messages may display the web server type, version, patches installed, plug-ins and modules installed, type of code being used by the hosted application, and any backends being used for data storage. This information could be used by an attacker to blueprint what type of attacks might be successful. The information given to users must be minimized to not aid in the blueprinting of the web server.

Checks

Review the <'INSTALLED PATH'>\conf\httpd.conf file. If the "ErrorDocument" directive is not being used, this is a finding.

Fix

Edit the <'INSTALLED PATH'>\conf\httpd.conf file and 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> Additional Information: https://httpd.apache.org/docs/2.4/custom-error.html
V-92557 Added
Findings ID: AS24-W2-000630 Rule ID: SV-102645r1_rule Severity: medium CCI: CCI-001312

Discussion

Information needed by an attacker to begin looking for possible vulnerabilities in a web server includes any information about the web server and plug-ins or modules being used. When debugging or trace information is enabled in a production web server, information about the web server, such as web server type, version, patches installed, plug-ins and modules installed, type of code being used by the hosted application, and any backends being used for data storage may be displayed. Since this information may be placed in logs and general messages during normal operation of the Apache web server, an attacker does not need to cause an error condition to gain this information.

Checks

Review the <'INSTALLED PATH'>\conf\httpd.conf file. For any enabled "TraceEnable" directives, verify they are part of the server-level configuration (i.e., not nested in a "Directory" or "Location" directive). Also, verify the "TraceEnable" directive is set to "Off". If the "TraceEnable" directive is not part of the server-level configuration and/or is not set to "Off", this is a finding. If the directive does not exist in the "conf" file, this is a finding because the default value is "On".

Fix

Edit the <'INSTALLED PATH'>\conf\httpd.conf file and add or set the value of "EnableTrace" to "Off".
V-92559 Added
Findings ID: AS24-W2-000640 Rule ID: SV-102647r1_rule Severity: medium CCI: CCI-002361

Discussion

Leaving sessions open indefinitely is a major security risk. An attacker can easily use an already authenticated session to access the hosted application as the previously authenticated user. By closing sessions after an absolute period of time, the user is forced to reauthenticate, guaranteeing the session is still in use. Enabling an absolute timeout for sessions closes sessions that are still active. Examples would be a runaway process accessing the web server or an attacker using a hijacked session to slowly probe the web server.

Checks

Review the <'INSTALLED PATH'>\conf\httpd.conf file. Verify the "SessionMaxAge" directive exists. If it does not exist, this is a finding. If the "SessionMaxAge" directive exists but is not set to "1", this is a finding.

Fix

Edit the <'INSTALLED PATH'>\conf\httpd.conf file and add or set the "SessionMaxAge" directive to "1".
V-92561 Added
Findings ID: AS24-W2-000650 Rule ID: SV-102649r1_rule Severity: medium CCI: CCI-002361

Discussion

Leaving sessions open indefinitely is a major security risk. An attacker can easily use an already authenticated session to access the hosted application as the previously authenticated user. By closing sessions after a set period of inactivity, the web server can make certain that sessions that are not closed through the user logging out of an application are eventually closed. Acceptable values are 5 minutes for high-value applications, 10 minutes for medium-value applications, and 20 minutes for low-value applications.

Checks

Review the <'INSTALLED PATH'>\conf\httpd.conf file. Verify the "mod_reqtimeout" is loaded. If it does not exist, this is a finding. If the "mod_reqtimeout" module is loaded but the "RequestReadTimeout" directive is not configured, this is a finding.

Fix

Edit the <'INSTALLED PATH'>\conf\httpd.conf file and load the "mod_reqtimeout" module. Set the "RequestReadTimeout" directive.
V-92565 Added
Findings ID: AS24-W2-000670 Rule ID: SV-102653r1_rule Severity: medium CCI: CCI-002314

Discussion

Remote access to the web server is any access that communicates through an external, non-organization-controlled network. Remote access can be used to access hosted applications or to perform management functions. A web server can be accessed remotely and must be capable of restricting access from what the DoD defines as nonsecure zones. Nonsecure zones are defined as any IP, subnet, or region that is defined as a threat to the organization. The nonsecure zones must be defined for public web servers logically located in a DMZ, as well as private web servers with perimeter protection devices. By restricting access from nonsecure zones, through the internal web server access list, the web server can stop or slow denial-of-service (DoS) attacks on the web server.

Checks

Review the <'INSTALLED PATH'>\conf\httpd.conf file. If "IP Address Restrictions" are not configured or IP ranges configured to be "Allow" are not restrictive enough to prevent connections from nonsecure zones, this is a finding.

Fix

Configure the "http.conf" file to include restrictions. Example: Require not host phishers.example.com moreidiots.example
V-92567 Added
Findings ID: AS24-W2-000690 Rule ID: SV-102655r1_rule Severity: medium CCI: CCI-002235

Discussion

By separating web server security functions from non-privileged users, roles can be developed that can then be used to administer the web server. Forcing users to change from a non-privileged account to a privileged account when operating on the web server or on security-relevant information forces users to only operate as a web server administrator when necessary. Operating in this manner allows for better logging of changes and better forensic information and limits accidental changes to the web server.

Checks

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

Restrict access to the web administration tool to only the SA, Web Manager, or the Web Manager designees.
V-92573 Added
Findings ID: AS24-W2-000780 Rule ID: SV-102661r1_rule Severity: medium CCI: CCI-001762

Discussion

Web servers provide numerous processes, features, and functionalities that use TCP/IP ports. Some of these processes may be deemed unnecessary or too unsecure to run on a production system. The web server must provide the capability to disable or deactivate network-related services that are deemed to be non-essential to the server mission, are too unsecure, or are prohibited by the Ports, Protocols, and Services Management (PPSM) Category Assurance List (CAL) and vulnerability assessments.

Checks

Review the web server documentation and deployment configuration to determine which ports and protocols are enabled. Verify the ports and protocols being used are permitted, necessary for the operation of the web server and the hosted applications, and are secure for a production system. Open the <'INSTALLED PATH'>\conf\httpd.conf file. Verify only the listener for IANA well-known ports for HTTP and HTTPS are in use. If any of the ports or protocols are not permitted, are nonsecure, or are not necessary for web server operation, this is a finding.

Fix

Ensure the website enforces the use of IANA well-known ports for HTTP and HTTPS.
V-92575 Added
Findings ID: AS24-W2-000800 Rule ID: SV-102663r1_rule Severity: medium CCI: CCI-002470

Discussion

Non-DoD-approved PKIs have not been evaluated to ensure that they have security controls and identity vetting procedures in place that are sufficient for DoD systems to rely on the identity asserted in the certificate. PKIs lacking sufficient security controls and identity vetting procedures risk being compromised and issuing certificates that enable adversaries to impersonate legitimate users.

Checks

Review the "ssl.conf" file. 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

Configure the web server’s trust store to trust only DoD-approved PKIs (e.g., DoD PKI, DoD ECA, and DoD-approved external partners).
V-92579 Added
Findings ID: AS24-W2-000830 Rule ID: SV-102667r1_rule Severity: medium CCI: CCI-001094

Discussion

A denial of service (DoS) can occur when the web server is so overwhelmed that it can no longer respond to additional requests. A web server not properly tuned may become overwhelmed and cause a DoS condition even with expected traffic from users. To avoid a DoS, the web server must be tuned to handle the expected traffic for the hosted applications. Satisfies: SRG-APP-000435-WSR-000148, SRG-APP-000246-WSR-000149

Checks

Review the <'INSTALLED PATH'>\conf\httpd.conf file. Verify 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

Add or modify the "Timeout" directive in the Apache configuration to have a value of "10" seconds or less. "Timeout 10"
V-92585 Added
Findings ID: AS24-W2-000860 Rule ID: SV-102673r1_rule Severity: medium CCI: CCI-002418

Discussion

A cookie is used when a web server needs to share data with the client's browser. The data is often used to remember the client when the client returns to the hosted application at a later date. A session cookie is a special type of cookie used to remember the client during the session. The cookie will contain the session identifier (ID) and may contain authentication data to the hosted application. To protect this data from easily being compromised, the cookie can be encrypted. When a cookie is sent encrypted via SSL/TLS, an attacker must spend a great deal of time and resources to decrypt the cookie. If, along with encryption, the cookie is compressed, the attacker can now use a combination of plaintext injection and inadvertent information leakage through data compression to reduce the time needed to decrypt the cookie. This attack is called Compression Ratio Info-leak Made Easy (CRIME). Cookies shared between the web server and the client when encrypted should not also be compressed.

Checks

Search the Apache configuration files for the "SSLCompression" directive. If the directive does not exist, this is a not a finding. If the directive exists and is not set to "off", this is a finding.

Fix

Search the Apache configuration files for the "SSLCompression" directive. If the directive is present, set it to "off".
V-92587 Added
Findings ID: AS24-W2-000880 Rule ID: SV-102675r1_rule Severity: medium CCI: CCI-002418

Discussion

Cookies can be sent to a client using TLS/SSL to encrypt the cookies, but TLS/SSL is not used by every hosted application since the data being displayed does not require the encryption of the transmission. To safeguard against cookies, especially session cookies, being sent in plaintext, a cookie can be encrypted before transmission. To force a cookie to be encrypted before transmission, the cookie "Secure" property can be set.

Checks

Verify the "mod_session_crypto" module is installed. If the mod_session_crypto module is not being used, this is a finding.

Fix

Ensure the "mod_session_crypto" module is installed. Enable encrypted session cookies. Example: Session On SessionCookieName session path=/ SessionCryptoPassphrase secret
V-92589 Added
Findings ID: AS24-W2-000890 Rule ID: SV-102677r1_rule Severity: high CCI: CCI-000068

Discussion

Transport Layer Security (TLS) is a required transmission protocol for a web server hosting controlled information. The use of TLS provides confidentiality of data in transit between the web server and client. FIPS 140-2 approved TLS versions must be enabled and non-FIPS-approved SSL versions must be disabled. NIST SP 800-52 defines the approved TLS versions for government applications. Satisfies: SRG-APP-000014-WSR-000006, SRG-APP-000015-WSR-000014, SRG-APP-000033-WSR-000169, SRG-APP-000172-WSR-000104, SRG-APP-000179-WSR-000110, SRG-APP-000179-WSR-000111, SRG-APP-000206-WSR-000128, SRG-APP-000439-WSR-000151, SRG-APP-000439-WSR-000152, SRG-APP-000439-WSR-000156, SRG-APP-000441-WSR-000181, SRG-APP-000442-WSR-000182, SRG-APP-000429-WSR-000113

Checks

In a command line, navigate to "<'INSTALLED PATH'>\bin". Run "httpd -M" to view a list of installed modules. If the module "mod_ssl" is not enabled, this is a finding. Review the <'INSTALLED PATH'>\conf\httpd.conf file to determine if the "SSLProtocol" directive exists and looks like the following: SSLProtocol -ALL +TLSv1.2 If the directive does not exist and does not contain "-ALL +TLSv1.2", this is a finding.

Fix

Ensure the "SSLProtocol" is added and looks like the following in the <'INSTALLED PATH'>\conf\httpd.conf file: SSLProtocol -ALL +TLSv1.2 Ensure the "SSLEngine" parameter is set to "ON" inside the "VirtualHost" directive.
V-92595 Added
Findings ID: AS24-W2-000950 Rule ID: SV-102683r1_rule Severity: low CCI: CCI-000366

Discussion

Configuring the web server to implement organization-wide security implementation guides and security checklists guarantees compliance with federal standards and establishes a common security baseline across the DoD that reflects the most restrictive security posture consistent with operational requirements. Configuration settings are the set of parameters that can be changed that affect the security posture and/or functionality of the system. Security-related parameters are parameters impacting the security state of the web server, including the parameters required to satisfy other security control requirements.

Checks

Review the website to determine if "HTTP" and "HTTPS" are used in accordance with well-known ports (e.g., 80 and 443) or those ports and services as registered and approved for use by the DoD PPSM. Verify that any variation in PPS is documented, registered, and approved by the PPSM. If it is not, this is a finding.

Fix

Ensure the website enforces the use of IANA well-known ports for "HTTP" and "HTTPS".
V-92853 Added
Findings ID: AS24-W2-000850 Rule ID: SV-102941r1_rule Severity: medium CCI: CCI-002418

Discussion

The HTTP protocol is a stateless protocol. To maintain a session, a session identifier is used. The session identifier is a piece of data that is used to identify a session and a user. If the session identifier is compromised by an attacker, the session can be hijacked. By encrypting the session identifier, the identifier becomes more difficult for an attacker to hijack, decrypt, and use before the session has expired.

Checks

In a command line, navigate to "<'INSTALLED PATH'>\bin". Run "httpd -M" to view a list of installed modules. If the module "mod_ssl" is not enabled, this is a finding. Review the <'INSTALLED PATH'>\conf\httpd.conf file to determine if the "SSLProtocol" directive exists and looks like the following: SSLProtocol -ALL +TLSv1.2 If the directive does not exist and does not contain "-ALL +TLSv1.2", this is a finding.

Fix

Ensure the "SSLProtocol" is added and looks like the following in the <'INSTALLED PATH'>\conf\httpd.conf file: SSLProtocol -ALL +TLSv1.2 Ensure the "SSLEngine" parameter is set to "ON" inside the "VirtualHost" directive.
V-92855 Added
Findings ID: AS24-W2-000870 Rule ID: SV-102943r1_rule Severity: medium CCI: CCI-002418

Discussion

A cookie can be read by client-side scripts easily if cookie properties are not set properly. By allowing cookies to be read by the client-side scripts, information such as session identifiers could be compromised and used by an attacker who intercepts the cookie. Setting cookie properties (i.e., HttpOnly property) to disallow client-side scripts from reading cookies better protects the information inside the cookie.

Checks

Verify the "mod_session_crypto" module is installed. If the mod_session_crypto module is not being used, this is a finding.

Fix

Ensure the mod_session_crypto module is installed. Enable encrypted session cookies. Example: Session On SessionCookieName session path=/ SessionCryptoPassphrase secret
AS24-W2-000010 Removed
Findings ID: AS24-W2-000010 Rule ID: AS24-W2-000010_rule Severity: medium CCI: CCI-000054

Discussion

Web server management includes the ability to control the number of users and user sessions that utilize a web server. Limiting the number of allowed users and sessions per user is helpful in limiting risks related to several types of denial-of-service (DoS) attacks. Although there is some latitude concerning the settings, they should follow DoD-recommended values, but the settings should be configurable to allow for future DoD direction. While the DoD will specify recommended values, the values can be adjusted to accommodate the operational requirement of a given system.

Checks

Open the <'INSTALL PATH'>\conf\httpd.conf file with an editor and search for the following directive: MaxKeepAliveRequests Verify the value is "100" or greater. If the directive is not set to "100" or greater, this is a finding.

Fix

Open the <'INSTALL PATH'>\conf\httpd.conf file with an editor and search for the following directive: MaxKeepAliveRequests Set the directive to a value of "100" or greater; add the directive if it does not exist. Restart the Apache service.
AS24-W2-000020 Removed
Findings ID: AS24-W2-000020 Rule ID: AS24-W2-000020_rule Severity: medium CCI: CCI-000054

Discussion

Session management is the practice of protecting the bulk of the user authorization and identity information. Storing of this data can occur on the client system or on the server. When the session information is stored on the client, the session ID, along with the user authorization and identity information, is sent along with each client request and is stored in a cookie, embedded in the uniform resource locator (URL), or placed in a hidden field on the displayed form. Each of these offers advantages and disadvantages. The biggest disadvantage to all three is the hijacking of a session along with all of the user's credentials. When the user authorization and identity information is stored on the server in a protected and encrypted database, the communication between the client and web server will only send the session identifier, and the server can then retrieve user credentials for the session when needed. If, during transmission, the session were to be hijacked, the user's credentials would not be compromised.

Checks

In a command line, navigate to <'INSTALL PATH'>\bin. Run "httpd -M" to view a list of installed modules. If the module "mod_session" is not enabled, this is a finding.

Fix

Uncomment the "mod_session" module in the <'INSTALLED PATH'>\conf\httpd.conf file. 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
AS24-W2-000030 Removed
Findings ID: AS24-W2-000030 Rule ID: AS24-W2-000030_rule Severity: medium CCI: CCI-000068

Discussion

The web server has several remote communications channels. Examples are user requests via http/https, communication to a backend database, and communication to authenticate users. The encryption used to communicate must match the data that is being retrieved or presented. Methods of communication are "http" for publicly displayed information, "https" to encrypt when user data is being transmitted, VPN tunneling, or other encryption methods to a database.

Checks

In a command line, navigate to "<'INSTALLED PATH'>\bin". Run "httpd -M" to view a list of installed modules. If the module "mod_ssl" is not enabled, this is a finding. Review the <'INSTALLED PATH'>\conf\httpd.conf file to determine if the "SSLProtocol" directive exists and looks like the following: SSLProtocol -ALL +TLSv1.2 If the "SSLProtocol" directive does not exist and does not contain "-ALL +TLSv1.2", this is a finding.

Fix

Ensure the "SSLProtocol" is added and looks like the following in the <'INSTALLED PATH'>\conf\httpd.conf file: SSLProtocol -ALL +TLSv1.2 Ensure the "SSLEngine" parameter is set to "ON" inside the "VirtualHost" directive.
AS24-W2-000040 Removed
Findings ID: AS24-W2-000040 Rule ID: AS24-W2-000040_rule Severity: medium CCI: CCI-001453

Discussion

Data exchanged between the user and the web server can range from static display data to credentials used to log on to the hosted application. Even when data appears to be static, the non-displayed logic in a web page may expose business logic or trusted system relationships. The integrity of all the data being exchanged between the user and web server must always be trusted. To protect the integrity and trust, encryption methods should be used to protect the complete communication session.

Checks

In a command line, navigate to "<'INSTALLED PATH'>\bin". Run "httpd -M" to view a list of installed modules. If the module "mod_ssl" is not enabled, this is a finding. Review the <'INSTALLED PATH'>\conf\httpd.conf file to determine if the "SSLProtocol" directive exists and looks like the following: SSLProtocol -ALL +TLSv1.2 If the directive does not exist and does not contain "-ALL +TLSv1.2", this is a finding.

Fix

Ensure the "SSLProtocol" is added and looks like the following in the <'INSTALLED PATH'>\conf\httpd.conf file: SSLProtocol -ALL +TLSv1.2 Ensure the "SSLEngine" parameter is set to "ON" inside the "VirtualHost" directive.
AS24-W2-000060 Removed
Findings ID: AS24-W2-000060 Rule ID: AS24-W2-000060_rule Severity: medium CCI: CCI-000213

Discussion

To control access to sensitive information and hosted applications by entities that have been issued certificates by DoD-approved PKIs, the web server must be properly configured to incorporate a means of authorization that does not simply rely on the possession of a valid certificate for access. Access decisions must include a verification that the authenticated entity is permitted to access the information or application. Authorization decisions must leverage a variety of methods, such as mapping the validated PKI certificate to an account with an associated set of permissions on the system. If the web server relied only on the possession of the certificate and did not map to system roles and privileges, each user would have the same abilities and roles to make changes to the production system.

Checks

In a command line, navigate to "<'INSTALLED PATH'>\bin". Run "httpd -M" to view a list of installed modules. If the module "mod_ssl" is not enabled, this is a finding. Review the <'INSTALLED PATH'>\conf\httpd.conf file to determine if the "SSLProtocol" directive exists and looks like the following: SSLProtocol -ALL +TLSv1.2 If the "SSLProtocol" directive does not exist and does not contain "-ALL +TLSv1.2", this is a finding.

Fix

Ensure the "SSLProtocol" is added and looks like the following in the <'INSTALLED PATH'>\conf\httpd.conf file: SSLProtocol -ALL +TLSv1.2 Ensure that the "SSLEngine" parameter is set to "ON" inside the "VirtualHost" directive.
AS24-W2-000090 Removed
Findings ID: AS24-W2-000090 Rule ID: AS24-W2-000090_rule Severity: medium CCI: CCI-000130

Discussion

Web server logging capability is critical for accurate forensic analysis. Without sufficient and accurate information, a correct replay of the events cannot be determined. Ascertaining the correct type of event that occurred is important during forensic analysis. The correct determination of the event and when it occurred is important in relation to other events that happened at that same time. Without sufficient information establishing what type of log event occurred, investigation into the cause of event is severely hindered. Log record content that may be necessary to satisfy the requirement of this control includes but is not limited to time stamps, source and destination IP addresses, user/process identifiers, event descriptions, application-specific events, success/fail indications, file names involved, access control, and flow control rules invoked.

Checks

Review the access log file. If necessary, review the <'INSTALLED PATH'>\conf\httpd.conf file to determine the location of the logs. Items to be logged are as shown in this sample line in the <'INSTALLED PATH'>\conf\httpd.conf file: LogFormat "%a %A %h %H %l %m %s %t %u %U \"%{Referer}i\" " combined If the web server is not configured to capture the required audit events for all sites and virtual directories, this is a finding.

Fix

Open the <'INSTALLED PATH'>\conf\httpd.conf file. Configure the "LogFormat" to look like the following within the block: LogFormat "%a %A %h %H %l %m %s %t %u %U \"%{Referer}i\" " combined
AS24-W2-000130 Removed
Findings ID: AS24-W2-000130 Rule ID: AS24-W2-000130_rule Severity: medium CCI: CCI-000133

Discussion

Web server logging capability is critical for accurate forensic analysis. Without sufficient and accurate information, a correct replay of the events cannot be determined. Ascertaining the correct source, e.g., source IP, of the events is important during forensic analysis. Correctly determining the source of events will add information to the overall reconstruction of the logable event. By determining the source of the event correctly, analysis of the enterprise can be undertaken to determine if events tied to the source occurred in other areas within the enterprise. A web server behind a load balancer or proxy server, when not configured correctly, will record the load balancer or proxy server as the source of every logable event. When looking at the information forensically, this information is not helpful in the investigation of events. The web server must record with each event the client source of the event.

Checks

Review the access log file. If necessary, review the <'INSTALLED PATH'>\conf\httpd.conf file to determine the location of the logs. Items to be logged are as shown in this sample line in the <'INSTALLED PATH'>\conf\httpd.conf file: LogFormat "%a %A %h %H %l %m %s %t %u %U \"%{Referer}i\" " combined If the web server is not configured to capture the required audit events for all sites and virtual directories, this is a finding.

Fix

Open the <'INSTALLED PATH'>\conf\httpd.conf file. Configure the "LogFormat" to look like the following within the block: LogFormat "%a %A %h %H %l %m %s %t %u %U \"%{Referer}i\" " combined
AS24-W2-000140 Removed
Findings ID: AS24-W2-000140 Rule ID: AS24-W2-000140_rule Severity: medium CCI: CCI-000134

Discussion

Web server logging capability is critical for accurate forensic analysis. Without sufficient and accurate information, a correct replay of the events cannot be determined. Ascertaining the success or failure of an event is important during forensic analysis. Correctly determining the outcome will add information to the overall reconstruction of the logable event. By determining the success or failure of the event correctly, analysis of the enterprise can be undertaken to determine if events tied to the event occurred in other areas within the enterprise. Without sufficient information establishing the success or failure of the logged event, investigation into the cause of event is severely hindered. The success or failure also provides a means to measure the impact of an event and help authorized personnel to determine the appropriate response. Log record content that may be necessary to satisfy the requirement of this control includes, but is not limited to, time stamps, source and destination IP addresses, user/process identifiers, event descriptions, application-specific events, success/fail indications, file names involved, access control, and flow control rules invoked.

Checks

Review the access log file. If necessary, review the <'INSTALLED PATH'>\conf\httpd.conf file to determine the location of the logs. Items to be logged are as shown in this sample line in the <'INSTALLED PATH'>\conf\httpd.conf file: LogFormat "%a %A %h %H %l %m %s %t %u %U \"%{Referer}i\" " combined If the web server is not configured to capture the required audit events for all sites and virtual directories, this is a finding.

Fix

Open the <'INSTALLED PATH'>\conf\httpd.conf file. Configure the "LogFormat" to look like the following within the block: LogFormat "%a %A %h %H %l %m %s %t %u %U \"%{Referer}i\" " combined
AS24-W2-000150 Removed
Findings ID: AS24-W2-000150 Rule ID: AS24-W2-000150_rule Severity: medium CCI: CCI-001487

Discussion

Web server logging capability is critical for accurate forensic analysis. Without sufficient and accurate information, a correct replay of the events cannot be determined. Determining user accounts, processes running on behalf of the user, and running process identifiers also enable a better understanding of the overall event. User tool identification is also helpful to determine if events are related to overall user access or specific client tools. Log record content that may be necessary to satisfy the requirement of this control includes time stamps, source and destination addresses, user/process identifiers, event descriptions, success/fail indications, file names involved, and access control or flow control rules invoked.

Checks

Review the access log file. If necessary, review the <'INSTALLED PATH'>\conf\httpd.conf file to determine the location of the logs. Items to be logged are as shown in this sample line in the <'INSTALLED PATH'>\conf\httpd.conf file: LogFormat "%a %A %h %H %l %m %s %t %u %U \"%{Referer}i\" " combined If the web server is not configured to capture the required audit events for all sites and virtual directories, this is a finding.

Fix

Open the <'INSTALLED PATH'>\conf\httpd.conf file. Configure the "LogFormat" to look like the following within the block: LogFormat "%a %A %h %H %l %m %s %t %u %U \"%{Referer}i\" " combined
AS24-W2-000240 Removed
Findings ID: AS24-W2-000240 Rule ID: AS24-W2-000240_rule Severity: medium CCI: CCI-000381

Discussion

User management and authentication can be an essential part of any application hosted by the web server. Along with authenticating users, the user management function must perform several other tasks such as password complexity, locking users after a configurable number of failed logons, and management of temporary and emergency accounts. All of this must be done enterprise-wide. The web server contains a minimal user management function, but the web server user management function does not offer enterprise-wide user management, and user management is not the primary function of the web server. User management for the hosted applications should be done through a facility that is built for enterprise-wide user management, such as LDAP and Active Directory.

Checks

Interview the System Administrator (SA) about the role of the Apache web server. If the web server is hosting an application, have the SA provide supporting documentation on how the application's user management is accomplished outside of the web server. If the web server is not hosting an application, this is Not Applicable. If the web server is performing user management for hosted applications, this is a finding. If the web server is hosting an application and the SA cannot provide supporting documentation on how the application's user management is accomplished outside of the Apache web server, this is a finding.

Fix

Reconfigure any hosted applications on the Apache web server to perform user management outside the web server. Document how the hosted application user management is accomplished.
AS24-W2-000300 Removed
Findings ID: AS24-W2-000300 Rule ID: AS24-W2-000300_rule Severity: medium CCI: CCI-000381

Discussion

Controlling what a user of a hosted application can access is part of the security posture of the web server. Any time a user can access more functionality than is needed for the operation of the hosted application poses a security issue. A user with too much access can view information that is not needed for the user's job role, or the user could use the function in an unintentional manner. A MIME tells the web server what type of program various file types and extensions are and what external utilities or programs are needed to execute the file type. A shell is a program that serves as the basic interface between the user and the operating system, so hosted application users must not have access to these programs. Shell programs may execute shell escapes and can then perform unauthorized activities that could damage the security posture of the web server.

Checks

Review the <'INSTALLED PATH'>\conf\httpd.conf file. 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.

Fix

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.
AS24-W2-000310 Removed
Findings ID: AS24-W2-000310 Rule ID: AS24-W2-000310_rule Severity: medium CCI: CCI-000381

Discussion

Scripts allow server-side processing on behalf of the hosted application user or as processes needed in the implementation of hosted applications. Removing scripts not needed for application operation or deemed vulnerable helps to secure the web server. To ensure scripts are not added to the web server and run maliciously, script mappings that are not needed or used by the web server for hosted application operation must be removed.

Checks

Locate cgi-bin files and directories enabled in the Apache configuration via "Script", "ScriptAlias" or "ScriptAliasMatch", or "ScriptInterpreterSource" directives. If any script is present that is not needed for application operation, this is a finding.

Fix

Remove any scripts in cgi-bin directory if they are not needed for application operation.
AS24-W2-000320 Removed
Findings ID: AS24-W2-000320 Rule ID: AS24-W2-000320_rule Severity: medium CCI: CCI-000381

Discussion

Resource mapping is the process of tying a particular file type to a process in the web server that can serve that type of file to a requesting client and to identify which file types are not to be delivered to a client. By not specifying which files can and cannot be served to a user, the web server could deliver to a user web server configuration files, log files, password files, etc. The web server must only allow hosted application file types to be served to a user, and all other types must be disabled.

Checks

Review the <'INSTALLED PATH'>\conf\httpd.conf file. 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.

Fix

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.
AS24-W2-000350 Removed
Findings ID: AS24-W2-000350 Rule ID: AS24-W2-000350_rule Severity: medium CCI: CCI-000381

Discussion

A web server is designed to deliver content and execute scripts or applications on the request of a client or user. Containing user requests to files in the directory tree of the hosted web application and limiting the execution of scripts and applications guarantees that the user is not accessing information protected outside the application's realm. The web server must also prohibit users from jumping outside the hosted application directory tree through access to the user's home directory, symbolic links or shortcuts, or through search paths for missing files.

Checks

Review the <'INSTALLED PATH'>\conf\httpd.conf file and search for the following directive: Directory For every root directory entry (i.e., ), verify the following exists. If it does not, this is a finding: Order Deny,Allow Deny from all If the statement above is not found in the root directory statement, this is a finding. If "Allow" directives are included in the root directory statement, this is a finding.

Fix

Edit the <'INSTALLED PATH'>\conf\httpd.conf file and set the root directory directive as follows: Directory Order Deny,Allow Deny from all
AS24-W2-000360 Removed
Findings ID: AS24-W2-000360 Rule ID: AS24-W2-000360_rule Severity: medium CCI: CCI-000382

Discussion

The web server must be configured to listen on a specified IP address and port. Without specifying an IP address and port for the web server to use, the web server will listen on all IP addresses available to the hosting server. If the web server has multiple IP addresses, i.e., a management IP address, the web server will also accept connections on the management IP address. Accessing the hosted application through an IP address normally used for non-application functions opens the possibility of user access to resources, utilities, files, ports, and protocols that are protected on the desired application IP address.

Checks

Review the <'INSTALLED PATH'>\conf\httpd.conf file and search for the following directive: Listen For any enabled "Listen" directives, verify they 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

Edit the <'INSTALLED PATH'>\conf\httpd.conf file and set the "Listen" directive to listen on a specific IP address and port.
AS24-W2-000370 Removed
Findings ID: AS24-W2-000370 Rule ID: AS24-W2-000370_rule Severity: medium CCI: CCI-000197

Discussion

Data used to authenticate, especially passwords, needs to be protected at all times, and encryption is the standard method for protecting authentication data during transmission. Data used to authenticate can be passed to and from the web server for many reasons. Examples include data passed from a user to the web server through an HTTPS connection for authentication, the web server authenticating to a backend database for data retrieval and posting, and the web server authenticating to a clustered web server manager for an update.

Checks

In a command line, navigate to "<'INSTALLED PATH'>\bin". Run "httpd -M" to view a list of installed modules. If the module "mod_ssl" is not enabled, this is a finding. Review the <'INSTALLED PATH'>\conf\httpd.conf file to determine if the "SSLProtocol" directive exists and looks like the following: SSLProtocol -ALL +TLSv1.2 If the "SSLProtocol" directive does not exist and does not contain "-ALL +TLSv1.2", this is a finding.

Fix

Verify the "SSLProtocol" is added and looks like the following in the <'INSTALLED PATH'>\conf\httpd.conf file: SSLProtocol -ALL +TLSv1.2 Ensure the "SSLEngine" parameter is set to "ON" inside the "VirtualHost" directive.
AS24-W2-000380 Removed
Findings ID: AS24-W2-000380 Rule ID: AS24-W2-000380_rule Severity: medium CCI: CCI-000185

Discussion

A certificate's certification path is the path from the end entity certificate to a trusted root certification authority (CA). Certification path validation is necessary for a relying party to make an informed decision regarding acceptance of an end entity certificate. Certification path validation includes checks such as certificate issuer trust, time validity, and revocation status for each certificate in the certification path. Revocation status information for CA and subject certificates in a certification path is commonly provided via certificate revocation lists (CRLs) or online certificate status protocol (OCSP) responses.

Checks

Review the <'INSTALLED PATH'>\conf\httpd.conf file to determine if the "SSLVerifyClient" and "SSLVerifyDepth" directives exist and look like the following. If they do not, this is a finding. SSLVerifyClient require SSLVerifyDepth 1 If "SSLVerifyDepth" is set to "0", this is a finding.

Fix

Ensure that client verification is enabled. For each enabled hosted application on the server, enable and set "SSLVerifyClient" to "require" and ensure that the server is configured to verify the client certificate by enabling "SSLVerifyDepth". Example: SSLVerifyClient require Find the line "SSLVerifyDepth" and ensure it is set properly: SSLVerifyDepth 1 "SSLVerifyDepth" is set based on the number of CAs that are required in the certificate chain to check, before the client certificate is accepted as valid. A setting of "0" would allow self-signed CAs to validate client certificates, which is not desirable in this context. Additional information: https://httpd.apache.org/docs/current/mod/mod_ssl.html
AS24-W2-000390 Removed
Findings ID: AS24-W2-000390 Rule ID: AS24-W2-000390_rule Severity: medium CCI: CCI-000186

Discussion

The web server's private key is used to prove the identity of the server to clients and securely exchange the shared secret key used to encrypt communications between the web server and clients. By gaining access to the private key, an attacker can pretend to be an authorized server and decrypt the SSL traffic between a client and the web server.

Checks

If the Apache web server does not have a private key, this is Not Applicable. Review the private key path in the "SSLCertificateFile" directive. Verify only authenticated System Administrators and the designated PKI Sponsor for the web server can access the web server private key. If the private key is accessible by unauthenticated or unauthorized users, this is a finding.

Fix

Configure the Apache web server to ensure only authenticated and authorized users can access the web server's private key.
AS24-W2-000400 Removed
Findings ID: AS24-W2-000400 Rule ID: AS24-W2-000400_rule Severity: medium CCI: CCI-000803

Discussion

Encryption is only as good as the encryption modules used. Unapproved cryptographic module algorithms cannot be verified and cannot be relied upon to provide confidentiality or integrity, and DoD data may be compromised due to weak algorithms. FIPS 140-2 is the current standard for validating cryptographic modules, and NSA Type-X (where X=1, 2, 3, 4) products are NSA-certified, hardware-based encryption modules. The web server must provide FIPS-compliant encryption modules when storing encrypted data and configuration settings.

Checks

In a command line, navigate to "<'INSTALLED PATH'>\bin". Run "httpd -M" to view a list of installed modules. If the module "mod_ssl" is not enabled, this is a finding. Review the <'INSTALLED PATH'>\conf\httpd.conf file to determine if the "SSLProtocol" directive exists and looks like the following: SSLProtocol -ALL +TLSv1.2 If the directive does not exist and does not contain "-ALL +TLSv1.2", this is a finding.

Fix

Ensure the "SSLProtocol" is added and looks like the following in the <'INSTALLED PATH'>\conf\httpd.conf file: SSLProtocol -ALL +TLSv1.2 Ensure the "SSLEngine" parameter is set to "ON" inside the "VirtualHost" directive.
AS24-W2-000410 Removed
Findings ID: AS24-W2-000410 Rule ID: AS24-W2-000410_rule Severity: medium CCI: CCI-000803

Discussion

Encryption is only as good as the encryption modules used. Unapproved cryptographic module algorithms cannot be verified and cannot be relied upon to provide confidentiality or integrity, and DoD data may be compromised due to weak algorithms. FIPS 140-2 is the current standard for validating cryptographic modules, and NSA Type-X (where X=1, 2, 3, 4) products are NSA-certified, hardware-based encryption modules. The web server must provide FIPS-compliant encryption modules when authenticating users and processes.

Checks

In a command line, navigate to "<'INSTALLED PATH'>\bin". Run "httpd -M" to view a list of installed modules. If the module "mod_ssl" is not enabled, this is a finding. Review the <'INSTALLED PATH'>\conf\httpd.conf file to determine if the "SSLProtocol" directive exists and looks like the following: SSLProtocol -ALL +TLSv1.2 If the directive does not exist and does not contain "-ALL +TLSv1.2", this is a finding.

Fix

Ensure the "SSLProtocol" is added and looks like the following in the <'INSTALLED PATH'>\conf\httpd.conf file: SSLProtocol -ALL +TLSv1.2 Ensure the "SSLEngine" parameter is set to "ON" inside the "VirtualHost" directive.
AS24-W2-000420 Removed
Findings ID: AS24-W2-000420 Rule ID: AS24-W2-000420_rule Severity: medium CCI: CCI-001166

Discussion

Mobile code in hosted applications allows the developer to add functionality and displays to hosted applications that are fluid, as opposed to a static web page. The data presentation becomes more appealing to the user, is easier to analyze, and navigation through the hosted application and data is much less complicated. Some mobile code technologies in use in today's applications are Java, JavaScript, ActiveX, PDF, Postscript, Shockwave movies, Flash animations, and VBScript. The DoD has created policies that define the use of mobile code on DoD systems. The usage restrictions and implementation guidance apply to both the selection and use of mobile code installed on organizational servers and mobile code downloaded and executed on individual workstations. The web server may host applications that contain mobile code and therefore, must meet the DoD-defined requirements regarding the deployment and/or use of mobile code. This includes digitally signing applets to provide a means for the client to establish application authenticity.

Checks

In a command line, navigate to "<'INSTALLED PATH'>\bin". Run "httpd -M" to view a list of installed modules. If the module "mod_ssl" is not enabled, this is a finding. Review the <'INSTALLED PATH'>\conf\httpd.conf file to determine if the "SSLProtocol" directive exists and looks like the following: SSLProtocol -ALL +TLSv1.2 If the directive does not exist and does not contain "-ALL +TLSv1.2", this is a finding.

Fix

Ensure the "SSLProtocol" is added and looks like the following in the <'INSTALLED PATH'>\conf\httpd.conf file: SSLProtocol -ALL +TLSv1.2 Ensure the "SSLEngine" parameter is set to "ON" inside the "VirtualHost" directive.
AS24-W2-000430 Removed
Findings ID: AS24-W2-000430 Rule ID: AS24-W2-000430_rule Severity: medium CCI: CCI-001082

Discussion

As a rule, accounts on a web server are to be kept to a minimum. Only administrators, web managers, developers, auditors, and web authors require accounts on the machine hosting the web server. The resources to which these accounts have access must also be closely monitored and controlled. Only the system administrator needs access to all the system's capabilities, while the web administrator and associated staff require access and control of the web content and web server configuration files.

Checks

Review the web server documentation and configuration to determine what web server accounts are available on the server. If any directories or files 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

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.
AS24-W2-000440 Removed
Findings ID: AS24-W2-000440 Rule ID: AS24-W2-000440_rule Severity: high CCI: CCI-001082

Discussion

To properly monitor the changes to the web server and the hosted applications, logging must be enabled. Along with logging being enabled, each record must properly contain the changes made and the names of those who made the changes. Allowing anonymous users the capability to change the web server or the hosted application will not generate proper log information that can then be used for forensic reporting in the case of a security issue. Allowing anonymous users to make changes will also grant change capabilities to anybody without forcing a user to authenticate before the changes can be made.

Checks

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

Ensure non-administrators are not allowed access to the directory tree, the shell, or other operating system functions and utilities.
AS24-W2-000450 Removed
Findings ID: AS24-W2-000450 Rule ID: AS24-W2-000450_rule Severity: medium CCI: CCI-001082

Discussion

The separation of user functionality from web server management can be accomplished by moving management functions to a separate IP address or port. To further separate the management functions, separate authentication methods and certificates should be used. By moving the management functionality, the possibility of accidental discovery of the management functions by non-privileged users during hosted application use is minimized.

Checks

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

Configure Apache to separate the hosted applications from web server management functionality.
AS24-W2-000460 Removed
Findings ID: AS24-W2-000460 Rule ID: AS24-W2-000460_rule Severity: medium CCI: CCI-001185

Discussion

Captured sessions can be reused in "replay" attacks. This requirement limits the ability of adversaries from capturing and continuing to employ previously valid session IDs. Session IDs are tokens generated by web applications to uniquely identify an application user's session. Unique session IDs help to reduce predictability of said identifiers. When a user logs out, or when any other session termination event occurs, the web server must terminate the user session to minimize the potential for an attacker to hijack that particular user session.

Checks

Review the <'INSTALL PATH'>\conf\httpd.conf file. 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

Open the <'INSTALL PATH'>\conf\httpd.conf file. Set the "SessionMaxAge" directive to a value of "600" or less; add the directive if it does not exist. Restart the Apache service.
AS24-W2-000470 Removed
Findings ID: AS24-W2-000470 Rule ID: AS24-W2-000470_rule Severity: medium CCI: CCI-001664

Discussion

Cookies are used to exchange data between the web server and the client. Cookies, such as a session cookie, may contain session information and user credentials used to maintain a persistent connection between the user and the hosted application since HTTP/HTTPS is a stateless protocol. When the cookie parameters are not set properly (i.e., domain and path parameters), cookies can be shared within hosted applications residing on the same web server or to applications hosted on different web servers residing on the same domain.

Checks

Review the <'INSTALLED PATH'>\conf\httpd.conf file. If "HttpOnly; secure" is not configured, this is a finding. Review the code. If when creating cookies, the following is not occurring, this is a finding: function setCookie() { document.cookie = "ALEPH_SESSION_ID = $SESS; path = /; secure"; }

Fix

Add this line to the "httpd.conf" file: Header always edit Set-Cookie ^(.*)$ $1;HttpOnly;secure Add the secure attribute to the JavaScript set cookie: function setCookie() { document.cookie = "ALEPH_SESSION_ID = $SESS; path = /; secure"; } "HttpOnly" cannot be used since by definition this is a cookie set by JavaScript. Restart www_server and Apache.
AS24-W2-000480 Removed
Findings ID: AS24-W2-000480 Rule ID: AS24-W2-000480_rule Severity: medium CCI: CCI-001664

Discussion

Communication between a client and the web server is done using the HTTP protocol, but HTTP is a stateless protocol. To maintain a connection or session, a web server will generate a session identifier (ID) for each client session when the session is initiated. The session ID allows the web server to track a user session and, in many cases, the user, if the user previously logged on to a hosted application. When a web server accepts session identifiers that are not generated by the web server, the web server creates an environment where session hijacking, such as session fixation, could be used to access hosted applications through session IDs that have already been authenticated. Forcing the web server to only accept web server-generated session IDs and to create new session IDs once a user is authenticated will limit session hijacking.

Checks

Review the <'INSTALL PATH'>\conf\httpd.conf file. Verify the "mod_unique_id" is loaded. If it does not exist, this is a finding.

Fix

Edit the <'INSTALL PATH'>\conf\httpd.conf file and load the "mod_unique_id" module. Restart the Apache service.
AS24-W2-000500 Removed
Findings ID: AS24-W2-000500 Rule ID: AS24-W2-000500_rule Severity: medium CCI: CCI-001188

Discussion

Communication between a client and the web server is done using the HTTP protocol, but HTTP is a stateless protocol. To maintain a connection or session, a web server will generate a session identifier (ID) for each client session when the session is initiated. The session ID allows the web server to track a user session and, in many cases, the user, if the user previously logged on to a hosted application. By being able to guess session IDs, an attacker can easily perform a man-in-the-middle attack. To truly generate random session identifiers that cannot be reproduced, the web server session ID generator, when used twice with the same input criteria, must generate an unrelated random ID. The session ID generator also needs to be a FIPS 140-2 approved generator.

Checks

Review the <'INSTALLED PATH'>\conf\httpd.conf file. Verify the "mod_unique_id" is loaded. If it does not exist, this is a finding.

Fix

Edit the <'INSTALLED PATH'>\conf\httpd.conf file and load the "mod_unique_id" module. Restart Apache.
AS24-W2-000510 Removed
Findings ID: AS24-W2-000510 Rule ID: AS24-W2-000510_rule Severity: medium CCI: CCI-001188

Discussion

Generating a session identifier (ID) that is not easily guessed through brute force is essential to deter several types of session attacks. By knowing the session ID, an attacker can hijack a user session that has already been user authenticated by the hosted application. The attacker does not need to guess user identifiers and passwords or have a secure token since the user session has already been authenticated. Generating session IDs that are at least 128 bits (16 bytes) in length will cause an attacker to take a large amount of time and resources to guess, reducing the likelihood of an attacker guessing a session ID.

Checks

Review the <'INSTALLED PATH'>\conf\httpd.conf file. Verify the "mod_unique_id" is loaded. If it does not exist, this is a finding.

Fix

Edit the <'INSTALLED PATH'>\conf\httpd.conf file and load the "mod_unique_id" module. Restart Apache.
AS24-W2-000520 Removed
Findings ID: AS24-W2-000520 Rule ID: AS24-W2-000520_rule Severity: medium CCI: CCI-001188

Discussion

Generating a session identifier (ID) that is not easily guessed through brute force is essential to deter several types of session attacks. By knowing the session ID, an attacker can hijack a user session that has already been user authenticated by the hosted application. The attacker does not need to guess user identifiers and passwords or have a secure token since the user session has already been authenticated. By generating session IDs that contain as much of the character set as possible, i.e., A-Z, a-z, and 0-9, the session ID becomes exponentially harder to guess.

Checks

Review the <'INSTALLED PATH'>\conf\httpd.conf file. Check to see if the "mod_unique_id" is loaded. If it does not exist, this is a finding.

Fix

Edit the <'INSTALLED PATH'>\conf\httpd.conf file and load the "mod_unique_id" module. Restart Apache.
AS24-W2-000540 Removed
Findings ID: AS24-W2-000540 Rule ID: AS24-W2-000540_rule Severity: medium CCI: CCI-001190

Discussion

Making certain that the web server has not been updated by an unauthorized user is always a concern. Adding patches, functions, and modules that are untested and not part of the baseline opens the possibility for security risks. The web server must offer, and not hinder, a method that allows for the quick and easy reinstallation of a verified and patched baseline to guarantee the production web server is up-to-date and has not been modified to add functionality or expose security risks. When the web server does not offer a method to roll back to a clean baseline, external methods, such as a baseline snapshot or virtualizing the web server, can be used.

Checks

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

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.
AS24-W2-000560 Removed
Findings ID: AS24-W2-000560 Rule ID: AS24-W2-000560_rule Severity: medium CCI: CCI-001190

Discussion

The web server may host applications that display information that cannot be disrupted, such as information that is time critical or life threatening. In these cases, a web server that shuts down or ceases to be accessible when there is a failure is not acceptable. In these types of cases, clustering of web servers is used. Clustering of multiple web servers is a common approach to providing fail-safe application availability. To ensure application availability, the web server must provide clustering or some form of failover functionality.

Checks

Review the <'INSTALLED PATH'>\conf\httpd.conf file. Verify the "mod_proxy" is loaded. If it does not exist, this is a finding. If the "mod_proxy" module is loaded and the "ProxyPass" directive is not configured, this is a finding.

Fix

Edit the <'INSTALLED PATH'>\conf\httpd.conf file and load the "mod_proxy" module. Set the "ProxyPass" directive.
AS24-W2-000580 Removed
Findings ID: AS24-W2-000580 Rule ID: AS24-W2-000580_rule Severity: medium CCI: CCI-001084

Discussion

A web server is used to deliver content on the request of a client. The content delivered to a client must be controlled, allowing only hosted application files to be accessed and delivered. To allow a client access to system files of any type is a major security risk that is entirely avoidable. Obtaining such access is the goal of directory traversal and URL manipulation vulnerabilities. To facilitate such access by misconfiguring the web document (home) directory is a serious error. In addition, having the path on the same drive as the system folder compounds potential attacks, such as drive space exhaustion.

Checks

Determine whether the public web server has a two-way trusted relationship with any private asset located within the network. Private web server resources (e.g., drives, folders, printers, etc.) will not be directly mapped to or shared with public web servers. If sharing is selected for any web folder, this is a finding. If private resources (e.g., drives, partitions, folders/directories, printers, etc.) are shared with the public web server, this is a finding.

Fix

Configure the public web server to not have a trusted relationship with any system resource that is also not accessible to the public. Web content is not to be shared via Microsoft shares or NFS mounts.
AS24-W2-000590 Removed
Findings ID: AS24-W2-000590 Rule ID: AS24-W2-000590_rule Severity: medium CCI: CCI-001094

Discussion

A web server can limit the ability of the web server being used in a DoS attack through several methods. The methods employed will depend upon the hosted applications and their resource needs for proper operation. An example setting that could be used to limit the ability of the web server being used in a DoS attack is bandwidth throttling.

Checks

Review the <'INSTALLED PATH'>\conf\httpd.conf file. Verify 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

Add or modify the "Timeout" directive in the Apache configuration to have a value of "10" seconds or less. "Timeout 10"
AS24-W2-000610 Removed
Findings ID: AS24-W2-000610 Rule ID: AS24-W2-000610_rule Severity: medium CCI: CCI-001312

Discussion

The goal is to completely control the web user's experience in navigating any portion of the web document root directories. Ensuring all web content directories have at least the equivalent of an "index.html" file is a significant factor to accomplish this end. Enumeration techniques, such as URL parameter manipulation, rely upon being able to obtain information about the web server's directory structure by locating directories without default pages. In the scenario, the web server will display to the user a listing of the files in the directory being accessed. By having a default hosted application web page, the anonymous web user will not obtain directory browsing information or an error message that reveals the server type and version.

Checks

Review the DocumentRoot directive in the <'INSTALLED PATH'>\conf\httpd.conf file. Note each location following the "DocumentRoot" string. This is the configured path(s) to the document root directory(s). To view a list of the directories and sub-directories and the file "index.html", from each stated "DocumentRoot" location, enter the following command: dir "index.html" Review the results for each document root directory and its subdirectories. If a directory does not contain an "index.html" or equivalent default document, this is a finding.

Fix

Add a default document to the applicable directories.
AS24-W2-000620 Removed
Findings ID: AS24-W2-000620 Rule ID: AS24-W2-000620_rule Severity: medium CCI: CCI-001312

Discussion

Information needed by an attacker to begin looking for possible vulnerabilities in a web server includes any information about the web server, backend systems being accessed, and plug-ins or modules being used. Web servers will often display error messages to client users displaying enough information to aid in the debugging of the error. The information given back in error messages may display the web server type, version, patches installed, plug-ins and modules installed, type of code being used by the hosted application, and any backends being used for data storage. This information could be used by an attacker to blueprint what type of attacks might be successful. The information given to users must be minimized to not aid in the blueprinting of the web server.

Checks

Review the <'INSTALLED PATH'>\conf\httpd.conf file. If the "ErrorDocument" directive is not being used, this is a finding.

Fix

Edit the <'INSTALLED PATH'>\conf\httpd.conf file and 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> Additional Information: https://httpd.apache.org/docs/2.4/custom-error.html
AS24-W2-000630 Removed
Findings ID: AS24-W2-000630 Rule ID: AS24-W2-000630_rule Severity: medium CCI: CCI-001312

Discussion

Information needed by an attacker to begin looking for possible vulnerabilities in a web server includes any information about the web server and plug-ins or modules being used. When debugging or trace information is enabled in a production web server, information about the web server, such as web server type, version, patches installed, plug-ins and modules installed, type of code being used by the hosted application, and any backends being used for data storage may be displayed. Since this information may be placed in logs and general messages during normal operation of the Apache web server, an attacker does not need to cause an error condition to gain this information.

Checks

Review the <'INSTALLED PATH'>\conf\httpd.conf file. For any enabled "TraceEnable" directives, verify they are part of the server-level configuration (i.e., not nested in a "Directory" or "Location" directive). Also, verify the "TraceEnable" directive is set to “Off”. If the "TraceEnable" directive is not part of the server-level configuration and/or is not set to “Off”, this is a finding. If the directive does not exist in the "conf" file, this is a finding because the default value is "On".

Fix

Edit the <'INSTALLED PATH'>\conf\httpd.conf file and add or set the value of "EnableTrace" to "Off".
AS24-W2-000640 Removed
Findings ID: AS24-W2-000640 Rule ID: AS24-W2-000640_rule Severity: medium CCI: CCI-002361

Discussion

Leaving sessions open indefinitely is a major security risk. An attacker can easily use an already authenticated session to access the hosted application as the previously authenticated user. By closing sessions after an absolute period of time, the user is forced to reauthenticate, guaranteeing the session is still in use. Enabling an absolute timeout for sessions closes sessions that are still active. Examples would be a runaway process accessing the web server or an attacker using a hijacked session to slowly probe the web server.

Checks

Review the <'INSTALLED PATH'>\conf\httpd.conf file. Verify the "SessionMaxAge" directive exists. If it does not exist, this is a finding. If the "SessionMaxAge" directive exists but is not set to "1", this is a finding.

Fix

Edit the <'INSTALLED PATH'>\conf\httpd.conf file and add or set the "SessionMaxAge" directive to "1".
AS24-W2-000650 Removed
Findings ID: AS24-W2-000650 Rule ID: AS24-W2-000650_rule Severity: medium CCI: CCI-002361

Discussion

Leaving sessions open indefinitely is a major security risk. An attacker can easily use an already authenticated session to access the hosted application as the previously authenticated user. By closing sessions after a set period of inactivity, the web server can make certain that sessions that are not closed through the user logging out of an application are eventually closed. Acceptable values are 5 minutes for high-value applications, 10 minutes for medium-value applications, and 20 minutes for low-value applications.

Checks

Review the <'INSTALLED PATH'>\conf\httpd.conf file. Verify the "mod_reqtimeout" is loaded. If it does not exist, this is a finding. If the "mod_reqtimeout" module is loaded but the "RequestReadTimeout" directive is not configured, this is a finding.

Fix

Edit the <'INSTALLED PATH'>\conf\httpd.conf file and load the "mod_reqtimeout" module. Set the "RequestReadTimeout" directive.
AS24-W2-000660 Removed
Findings ID: AS24-W2-000660 Rule ID: AS24-W2-000660_rule Severity: high CCI: CCI-002314

Discussion

Remote access to the web server is any access that communicates through an external, non-organization-controlled network. Remote access can be used to access hosted applications or to perform management functions. A web server can be accessed remotely and must be able to enforce remote access policy requirements or work in conjunction with enterprise tools designed to enforce policy requirements. Examples of the web server enforcing a remote access policy are implementing IP filtering rules, using "https" instead of "http" for communication, implementing secure tokens, and validating users.

Checks

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.2 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

Ensure the web server administration is performed only over a secure path.
AS24-W2-000670 Removed
Findings ID: AS24-W2-000670 Rule ID: AS24-W2-000670_rule Severity: medium CCI: CCI-002314

Discussion

Remote access to the web server is any access that communicates through an external, non-organization-controlled network. Remote access can be used to access hosted applications or to perform management functions. A web server can be accessed remotely and must be capable of restricting access from what the DoD defines as nonsecure zones. Nonsecure zones are defined as any IP, subnet, or region that is defined as a threat to the organization. The nonsecure zones must be defined for public web servers logically located in a DMZ, as well as private web servers with perimeter protection devices. By restricting access from nonsecure zones, through the internal web server access list, the web server can stop or slow denial-of-service (DoS) attacks on the web server.

Checks

Review the <'INSTALLED PATH'>\conf\httpd.conf file. If "IP Address Restrictions" are not configured or IP ranges configured to be "Allow" are not restrictive enough to prevent connections from nonsecure zones, this is a finding.

Fix

Configure the "http.conf" file to include restrictions. Example: Require not host phishers.example.com moreidiots.example
AS24-W2-000690 Removed
Findings ID: AS24-W2-000690 Rule ID: AS24-W2-000690_rule Severity: medium CCI: CCI-002235

Discussion

By separating web server security functions from non-privileged users, roles can be developed that can then be used to administer the web server. Forcing users to change from a non-privileged account to a privileged account when operating on the web server or on security-relevant information forces users to only operate as a web server administrator when necessary. Operating in this manner allows for better logging of changes and better forensic information and limits accidental changes to the web server.

Checks

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

Restrict access to the web administration tool to only the SA, Web Manager, or the Web Manager designees.
AS24-W2-000700 Removed
Findings ID: AS24-W2-000700 Rule ID: AS24-W2-000700_rule Severity: medium CCI: CCI-001844

Discussion

A web server cluster is a group of independent web servers that are managed as a single system for higher availability, easier manageability, and greater scalability. Without having centralized control of the web server cluster, management of the cluster becomes difficult. It is critical that remote management of the cluster be done through a designated management system acting as a single access point.

Checks

Review the <'INSTALLED PATH'>\conf\httpd.conf file. Verify the "mod_proxy" is loaded. If it does not exist, this is a finding. If the "mod_proxy" module is loaded but the "ProxyPass" directive is not configured, this is a finding.

Fix

Edit the <'INSTALLED PATH'>\conf\httpd.conf file and load the "mod_proxy" module. Set the "ProxyPass" directive.
AS24-W2-000770 Removed
Findings ID: AS24-W2-000770 Rule ID: AS24-W2-000770_rule Severity: medium CCI: CCI-001813

Discussion

A web server can be modified through parameter modification, patch installation, upgrades to the web server or modules, and security parameter changes. With each of these changes, there is the potential for an adverse effect such as a denial of service (DoS), web server instability, or hosted application instability. To limit changes to the web server and limit exposure to any adverse effects from the changes, files such as the web server application files, libraries, and configuration files must have permissions and ownership set properly to only allow privileged users access.

Checks

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 found, this is a finding.

Fix

Ensure non-administrators are not allowed access to the directory tree, the shell, or other operating system functions and utilities.
AS24-W2-000780 Removed
Findings ID: AS24-W2-000780 Rule ID: AS24-W2-000780_rule Severity: medium CCI: CCI-001762

Discussion

Web servers provide numerous processes, features, and functionalities that use TCP/IP ports. Some of these processes may be deemed unnecessary or too unsecure to run on a production system. The web server must provide the capability to disable or deactivate network-related services that are deemed to be non-essential to the server mission, are too unsecure, or are prohibited by the Ports, Protocols, and Services Management (PPSM) Category Assurance List (CAL) and vulnerability assessments.

Checks

Review the web server documentation and deployment configuration to determine which ports and protocols are enabled. Verify the ports and protocols being used are permitted, necessary for the operation of the web server and the hosted applications, and are secure for a production system. Open the <'INSTALLED PATH'>\conf\httpd.conf file. Verify only the listener for port 443 is returned. If any of the ports or protocols are not permitted, are nonsecure, or are not necessary for web server operation, this is a finding.

Fix

Open the <'INSTALLED PATH'>\conf\httpd.conf file. Verify the "Listen" directives are configured only for port 443.
AS24-W2-000800 Removed
Findings ID: AS24-W2-000800 Rule ID: AS24-W2-000800_rule Severity: medium CCI: CCI-002470

Discussion

Non-DoD-approved PKIs have not been evaluated to ensure that they have security controls and identity vetting procedures in place that are sufficient for DoD systems to rely on the identity asserted in the certificate. PKIs lacking sufficient security controls and identity vetting procedures risk being compromised and issuing certificates that enable adversaries to impersonate legitimate users.

Checks

Review the "ssl.conf" file. 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

Configure the web server’s trust store to trust only DoD-approved PKIs (e.g., DoD PKI, DoD ECA, and DoD-approved external partners).
AS24-W2-000810 Removed
Findings ID: AS24-W2-000810 Rule ID: AS24-W2-000810_rule Severity: medium CCI: CCI-002476

Discussion

When data is written to digital media, such as hard drives, mobile computers, external/removable hard drives, personal digital assistants, flash/thumb drives, etc., there is risk of data loss and data compromise. User identities and passwords stored on the hard drive of the hosting hardware must be encrypted to protect the data from easily being discovered and used by an unauthorized user to access the hosted applications. The cryptographic libraries and functionality used to store and retrieve the user identifiers and passwords must be part of the web server.

Checks

In a command line, navigate to <'INSTALL PATH'>\bin. Run "httpd -M" to view a list of installed modules. If "ssl_module" is not listed, this is a finding. Review the SSL sections of the <'INSTALLED PATH'>\conf\httpd.conf file. All enabled "SSLProtocol" directives must be set to "ALL -SSLv2 -SSLv3". If "SSLProtocol" is not set to the proper value, this is a finding. All enabled "SSLEngine" directives must be set to "On". If they are not, this 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

Edit the <'INSTALLED PATH'>\conf\httpd.conf file and set the "SSLProtocol" to "ALL -SSLv2 -SSLv3". Set the "SSLEngine" parameter to "On".
AS24-W2-000830 Removed
Findings ID: AS24-W2-000830 Rule ID: AS24-W2-000830_rule Severity: medium CCI: CCI-002385

Discussion

A denial of service (DoS) can occur when the web server is so overwhelmed that it can no longer respond to additional requests. A web server not properly tuned may become overwhelmed and cause a DoS condition even with expected traffic from users. To avoid a DoS, the web server must be tuned to handle the expected traffic for the hosted applications.

Checks

Review the <'INSTALLED PATH'>\conf\httpd.conf file. Verify 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

Add or modify the "Timeout" directive in the Apache configuration to have a value of "10" seconds or less. "Timeout 10"
AS24-W2-000840 Removed
Findings ID: AS24-W2-000840 Rule ID: AS24-W2-000840_rule Severity: medium CCI: CCI-002418

Discussion

Preventing the disclosure of transmitted information requires that the web server take measures to employ some form of cryptographic mechanism to protect the information during transmission. This is usually achieved through the use of Transport Layer Security (TLS). Transmission of data can take place between the web server and a large number of devices/applications external to the web server. Examples are a web client used by a user, a backend database, an audit server, or other web servers in a web cluster. If data is transmitted unencrypted, the data then becomes vulnerable to disclosure. The disclosure may reveal user identifier/password combinations, website code revealing business logic, or other user personal information.

Checks

In a command line, navigate to "<'INSTALLED PATH'>\bin". Run "httpd -M" to view a list of installed modules. If the module "mod_ssl" is not enabled, this is a finding. Review the <'INSTALLED PATH'>\conf\httpd.conf file to determine if the "SSLProtocol" directive exists and looks like the following: SSLProtocol -ALL +TLSv1.2 If the directive does not exist and does not contain "-ALL +TLSv1.2", this is a finding.

Fix

Ensure the "SSLProtocol" is added and looks like the following in the <'INSTALLED PATH'>\conf\httpd.conf file: SSLProtocol -ALL +TLSv1.2 Ensure the "SSLEngine" parameter is set to "ON" inside the "VirtualHost" directive.
AS24-W2-000850 Removed
Findings ID: AS24-W2-000850 Rule ID: AS24-W2-000850_rule Severity: medium CCI: CCI-002418

Discussion

The HTTP protocol is a stateless protocol. To maintain a session, a session identifier is used. The session identifier is a piece of data that is used to identify a session and a user. If the session identifier is compromised by an attacker, the session can be hijacked. By encrypting the session identifier, the identifier becomes more difficult for an attacker to hijack, decrypt, and use before the session has expired.

Checks

In a command line, navigate to "<'INSTALLED PATH'>\bin". Run "httpd -M" to view a list of installed modules. If the module "mod_ssl" is not enabled, this is a finding. Review the <'INSTALLED PATH'>\conf\httpd.conf file to determine if the "SSLProtocol" directive exists and looks like the following: SSLProtocol -ALL +TLSv1.2 If the directive does not exist and does not contain "-ALL +TLSv1.2", this is a finding.

Fix

Ensure the "SSLProtocol" is added and looks like the following in the <'INSTALLED PATH'>\conf\httpd.conf file: SSLProtocol -ALL +TLSv1.2 Ensure the "SSLEngine" parameter is set to "ON" inside the "VirtualHost" directive.
AS24-W2-000860 Removed
Findings ID: AS24-W2-000860 Rule ID: AS24-W2-000860_rule Severity: medium CCI: CCI-002418

Discussion

A cookie is used when a web server needs to share data with the client's browser. The data is often used to remember the client when the client returns to the hosted application at a later date. A session cookie is a special type of cookie used to remember the client during the session. The cookie will contain the session identifier (ID) and may contain authentication data to the hosted application. To protect this data from easily being compromised, the cookie can be encrypted. When a cookie is sent encrypted via SSL/TLS, an attacker must spend a great deal of time and resources to decrypt the cookie. If, along with encryption, the cookie is compressed, the attacker can now use a combination of plaintext injection and inadvertent information leakage through data compression to reduce the time needed to decrypt the cookie. This attack is called Compression Ratio Info-leak Made Easy (CRIME). Cookies shared between the web server and the client when encrypted should not also be compressed.

Checks

Search the Apache configuration files for the "SSLCompression" directive. If the directive does not exist, this is a not a finding. If the directive exists and is not set to "off", this is a finding.

Fix

Search the Apache configuration files for the "SSLCompression" directive. If the directive is present, set it to "off".
AS24-W2-000870 Removed
Findings ID: AS24-W2-000870 Rule ID: AS24-W2-000870_rule Severity: medium CCI: CCI-002418

Discussion

A cookie can be read by client-side scripts easily if cookie properties are not set properly. By allowing cookies to be read by the client-side scripts, information such as session identifiers could be compromised and used by an attacker who intercepts the cookie. Setting cookie properties (i.e., HttpOnly property) to disallow client-side scripts from reading cookies better protects the information inside the cookie.

Checks

Verify the "mod_session_crypto" module is installed. If the mod_session_crypto module is not being used, this is a finding.

Fix

Ensure the mod_session_crypto module is installed. Enable encrypted session cookies. Example: Session On SessionCookieName session path=/ SessionCryptoPassphrase secret
AS24-W2-000880 Removed
Findings ID: AS24-W2-000880 Rule ID: AS24-W2-000880_rule Severity: medium CCI: CCI-002418

Discussion

Cookies can be sent to a client using TLS/SSL to encrypt the cookies, but TLS/SSL is not used by every hosted application since the data being displayed does not require the encryption of the transmission. To safeguard against cookies, especially session cookies, being sent in plaintext, a cookie can be encrypted before transmission. To force a cookie to be encrypted before transmission, the cookie "Secure" property can be set.

Checks

Verify the "mod_session_crypto" module is installed. If the mod_session_crypto module is not being used, this is a finding.

Fix

Ensure the "mod_session_crypto" module is installed. Enable encrypted session cookies. Example: Session On SessionCookieName session path=/ SessionCryptoPassphrase secret
AS24-W2-000890 Removed
Findings ID: AS24-W2-000890 Rule ID: AS24-W2-000890_rule Severity: high CCI: CCI-002418

Discussion

Transport Layer Security (TLS) is a required transmission protocol for a web server hosting controlled information. The use of TLS provides confidentiality of data in transit between the web server and client. FIPS 140-2 approved TLS versions must be enabled and non-FIPS-approved SSL versions must be disabled. NIST SP 800-52 defines the approved TLS versions for government applications.

Checks

In a command line, navigate to "<'INSTALLED PATH'>\bin". Run "httpd -M" to view a list of installed modules. If the module "mod_ssl" is not enabled, this is a finding. Review the <'INSTALLED PATH'>\conf\httpd.conf file to determine if the "SSLProtocol" directive exists and looks like the following: SSLProtocol -ALL +TLSv1.2 If the directive does not exist and does not contain "-ALL +TLSv1.2", this is a finding.

Fix

Ensure the "SSLProtocol" is added and looks like the following in the <'INSTALLED PATH'>\conf\httpd.conf file: SSLProtocol -ALL +TLSv1.2 Ensure the "SSLEngine" parameter is set to "ON" inside the "VirtualHost" directive.
AS24-W2-000910 Removed
Findings ID: AS24-W2-000910 Rule ID: AS24-W2-000910_rule Severity: medium CCI: CCI-002420

Discussion

Information can be either unintentionally or maliciously disclosed or modified during preparation for transmission, including, for example, during aggregation, at protocol transformation points, and during packing/unpacking. These unauthorized disclosures or modifications compromise the confidentiality or integrity of the information. An example of this would be an SMTP queue. This queue may be added to a web server through an SMTP module to enhance error reporting or to allow developers to add SMTP functionality to their applications. Any modules used by the web server that queue data before transmission must maintain the confidentiality and integrity of the information before the data is transmitted.

Checks

In a command line, navigate to "<'INSTALLED PATH'>\bin". Run "httpd -M" to view a list of installed modules. If the module "mod_ssl" is not enabled, this is a finding. Review the <'INSTALLED PATH'>\conf\httpd.conf file to determine if the "SSLProtocol" directive exists and looks like the following: SSLProtocol -ALL +TLSv1.2 If the directive does not exist and does not contain "-ALL +TLSv1.2", this is a finding.

Fix

Ensure the "SSLProtocol" is added and looks like the following in the <'INSTALLED PATH'>\conf\httpd.conf file: SSLProtocol -ALL +TLSv1.2 Ensure the "SSLEngine" parameter is set to "ON" inside the "VirtualHost" directive.
AS24-W2-000920 Removed
Findings ID: AS24-W2-000920 Rule ID: AS24-W2-000920_rule Severity: medium CCI: CCI-002422

Discussion

Information can be either unintentionally or maliciously disclosed or modified during reception, including, for example, during aggregation, at protocol transformation points, and during packing/unpacking. These unauthorized disclosures or modifications compromise the confidentiality or integrity of the information. Protecting the confidentiality and integrity of received information requires that application servers take measures to employ approved cryptography to protect the information during transmission over the network. This is usually achieved through the use of Transport Layer Security (TLS), SSL VPN, or IPsec tunnel. The web server must use approved encryption when receiving transmitted data.

Checks

In a command line, navigate to "<'INSTALLED PATH'>\bin". Run "httpd -M" to view a list of installed modules. If the module "mod_ssl" is not enabled, this is a finding. Review the <'INSTALLED PATH'>\conf\httpd.conf file to determine if the "SSLProtocol" directive exists and looks like the following: SSLProtocol -ALL +TLSv1.2 If the directive does not exist and does not contain "-ALL +TLSv1.2", this is a finding.

Fix

Ensure the "SSLProtocol" is added and looks like the following in the <'INSTALLED PATH'>\conf\httpd.conf file: SSLProtocol -ALL +TLSv1.2 Ensure the "SSLEngine" parameter is set to "ON" inside the "VirtualHost" directive.
AS24-W2-000950 Removed
Findings ID: AS24-W2-000950 Rule ID: AS24-W2-000950_rule Severity: low CCI: CCI-000366

Discussion

Configuring the web server to implement organization-wide security implementation guides and security checklists guarantees compliance with federal standards and establishes a common security baseline across the DoD that reflects the most restrictive security posture consistent with operational requirements. Configuration settings are the set of parameters that can be changed that affect the security posture and/or functionality of the system. Security-related parameters are parameters impacting the security state of the web server, including the parameters required to satisfy other security control requirements.

Checks

Review the website to determine if "HTTP" and "HTTPS" are used in accordance with well-known ports (e.g., 80 and 443) or those ports and services as registered and approved for use by the DoD PPSM. Verify that any variation in PPS is documented, registered, and approved by the PPSM. If it is not, this is a finding.

Fix

Ensure the website enforces the use of IANA well-known ports for "HTTP" and "HTTPS".