Select any two versions of this STIG to compare the individual requirements
Select any old version/release of this STIG to view the previous requirements
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.
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.
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.
Remove any scripts in cgi-bin directory if they are not needed for application operation.
Review the <'INSTALLED PATH'>\conf\httpd.conf file and search for the following directive: Directory For every root directory entry (i.e., <Directory />), verify the following exists. If it does not, this is a finding: Require all denied If the statement above is not found in the root directory statement, this is a finding.
Edit the <'INSTALLED PATH'>\conf\httpd.conf file and set the root directory directive as follows: Directory Require all denied
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.
Configure the Apache web server to ensure only authenticated and authorized users can access the web server's private key.
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.
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.
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.
Ensure non-administrators are not allowed access to the directory tree, the shell, or other operating system functions and utilities.
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.
Configure Apache to separate the hosted applications from web server management functionality.
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"; }
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.
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.
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.
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.
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.
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.
Add a default document to the applicable directories.
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.
Configure the "http.conf" file to include restrictions. Example: <RequireAll> Require not host phishers.example.com moreidiots.example </RequireAll>
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.
Restrict access to the web administration tool to only the SA, Web Manager, or the Web Manager designees.
Review the website documentation and deployment configuration to determine which ports and protocols are enabled. Verify the ports and protocols being used are permitted, are necessary for the operation of the web server and the hosted applications, and are secure for a production system. Review both the <'INSTALLED PATH'>\conf\httpd.conf and the <'INSTALLED PATH'>\conf\extra\httpd-ssl.conf files. Verify only the listener for IANA well-known ports for HTTP and HTTPS (80 and 443) are in use. If any of the ports or protocols are not permitted, are nonsecure, or are not necessary for website operation, this is a finding.
Ensure the website enforces the use of IANA well-known ports for HTTP and HTTPS.
Verify the "session_cookie_module" module is installed. Inspect the httpd.conf file to confirm the "session_cookie_module" is being used. If the "session_cookie_module" module is not being used, this is a finding. Search for the "Session" and "SessionCookieName" directives. If "Session" is not "on" and "SessionCookieName" does not contain "httpOnly" and "secure", this is a finding.
Set "Session" to "on". Ensure the "SessionCookieName" directive includes "httpOnly" and "secure".
Verify the "mod_session_crypto" module is installed. If the mod_session_crypto module is not being used, this is a finding.
Ensure the "mod_session_crypto" module is installed. Enable encrypted session cookies. Example: Session On SessionCookieName session path=/ SessionCryptoPassphrase secret