{"stig":{"title":"Apache Server 2.4 UNIX Site Security Technical Implementation Guide","version":"2","release":"7"},"checks":[{"vulnId":"V-214280","ruleId":"SV-214280r960963_rule","severity":"medium","ruleTitle":"The Apache web server must not perform user management for hosted applications.","description":"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. \n \nThe 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, like LDAP and Active Directory.","checkContent":"Interview the System Administrator (SA) about the role of the Apache web server. \n \nIf 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. \n \nIf the web server is not hosting an application, this is Not Applicable. \n \nIf the web server is performing user management for hosted applications, this is a finding. \n \nIf 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.","fixText":"Reconfigure any hosted applications on the Apache web server to perform user management outside the web server. \n \nDocument how the hosted application user management is accomplished.","ccis":["CCI-000381"]},{"vulnId":"V-214282","ruleId":"SV-214282r960963_rule","severity":"medium","ruleTitle":"The Apache web server must allow mappings to unused and vulnerable scripts to be removed.","description":"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. \n \nTo 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.","checkContent":"Determine the location of the \"HTTPD_ROOT\" directory and the \"httpd.conf\" file: \n \n# apachectl -V | egrep -i 'httpd_root|server_config_file'\n-D HTTPD_ROOT=\"/etc/httpd\"\n-D SERVER_CONFIG_FILE=\"conf/httpd.conf\"\n\nNote: The apachectl front end is the preferred method for locating the Apache httpd file. For some Linux distributions \"apache2ctl -V\" or  \"httpd -V\" can also be used.  \nReview \"Script\", \"ScriptAlias\" or \"ScriptAliasMatch\", or \"ScriptInterpreterSource\" directives. \n \nGo into each directory and locate \"cgi-bin\" files. \n \nIf any scripts are present that are not needed for application operation, this is a finding. \n \nIf this is not documented and approved by the Information System Security Officer (ISSO), this is a finding.","fixText":"Determine the location of the \"HTTPD_ROOT\" directory and the \"httpd.conf\" file: \n \n# apachectl -V | egrep -i 'httpd_root|server_config_file' \n-D HTTPD_ROOT=\"/etc/httpd\" \n-D SERVER_CONFIG_FILE=\"conf/httpd.conf\" \n \nRemove any scripts in \"cgi-bin\" directory if they are not needed for application operation. \n \nEnsure this process is documented and approved by the ISSO.","ccis":["CCI-000381"]},{"vulnId":"V-214284","ruleId":"SV-214284r960963_rule","severity":"medium","ruleTitle":"Users and scripts running on behalf of users must be contained to the document root or home directory tree of the Apache web server.","description":"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. \n \nThe 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.","checkContent":"Determine the location of the \"HTTPD_ROOT\" directory and the \"httpd.conf\" file: \n \n# apachectl -V | egrep -i 'httpd_root|server_config_file'\n-D HTTPD_ROOT=\"/etc/httpd\"\n-D SERVER_CONFIG_FILE=\"conf/httpd.conf\"\n\nNote: The apachectl front end is the preferred method for locating the Apache httpd file. For some Linux distributions \"apache2ctl -V\" or  \"httpd -V\" can also be used. \n \nVerify there is a single \"Require\" directive with the value of \"all denied\". \n \nVerify there are no \"Allow\" or \"Deny\" directives in the root <Directory> element. \n \nThe following may be useful in extracting root directory elements from the Apache configuration for auditing: \n \n# perl -ne 'print if /^ *<Directory *\\//i .. /<\\/Directory/i' $APACHE_PREFIX/conf/httpd.conf  \n \nIf there are \"Allow\" or \"Deny\" directives in the root <Directory> element, this is a finding.","fixText":"Determine the location of the \"HTTPD_ROOT\" directory and the \"httpd.conf\" file: \n \n# apachectl -V | egrep -i 'httpd_root|server_config_file' \n-D HTTPD_ROOT=\"/etc/httpd\" \n-D SERVER_CONFIG_FILE=\"conf/httpd.conf\" \n \nSet the root directory directive as follows: \n \n<Directory> \n... \nRequire all denied \n... \n</Directory> \n \nRemove any \"Deny\" and \"Allow\" directives from the root <Directory> element. \n \nRestart Apache: apachectl restart","ccis":["CCI-000381"]},{"vulnId":"V-214286","ruleId":"SV-214286r1051289_rule","severity":"medium","ruleTitle":"The Apache web server must perform RFC 5280-compliant certification path validation.","description":"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.","checkContent":"Review the Apache server documentation and deployed configuration to determine whether the application server provides PKI functionality that validates certification paths in accordance with RFC 5280.\n\nIf PKI is not being used, this is NA.\n\nIf the Apache server is using PKI, but it does not perform this requirement, this is a finding.","fixText":"Configure the Apache server to validate certificates in accordance with RFC 5280.","ccis":["CCI-000185"]},{"vulnId":"V-214287","ruleId":"SV-214287r961041_rule","severity":"medium","ruleTitle":"Only authenticated system administrators or the designated PKI Sponsor for the Apache web server must have access to the Apache web servers private key.","description":"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. \n \nBy 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.","checkContent":"Verify the \"ssl module\" module is loaded\n# httpd -M | grep -i ssl_module\nOutput:  ssl_module (shared) \n\nIf the \"ssl_module\" is not enabled, this is a finding. \n\nDetermine the location of the ssl.conf file:\n# find / -name ssl.conf\nOutput: /etc/httpd/conf.d/ssl.conf\n\nSearch the ssl.conf file for the SSLCertificateKeyFile location.\n# cat <path to file>/ssl.conf | grep -i SSLCertificateKeyFile\nOutput: SSLCertificateKeyFile /etc/pki/tls/private/localhost.key\n\nIdentify the correct permission set and owner/group of the certificate key file.\n# ls -laH /etc/pki/tls/private/localhost.key\nOutput: -rw-------. 1 root root 1675 Sep 10  2020 /etc/pki/tls/private/localhost.key\n\nThe permission set must be 600 or more restrictive and the owner/group of the key file must be accessible to only authenticated system administrator and the designated PKI Sponsor.\n\nIf the correct permissions are not set or if the private key is accessible by unauthenticated or unauthorized users, this is a finding.","fixText":"Determine the location of the ssl.conf file:\n# find / -name ssl.conf\nOutput: /etc/httpd/conf.d/ssl.conf\n\nSearch the ssl.conf file for the SSLCertificateKeyFile location.\n# cat <path to file>/ssl.conf | grep -i SSLCertificateKeyFile\nOutput: SSLCertificateKeyFile /etc/pki/tls/private/localhost.key\n\nBased on the \" SSLCertificateKeyFile\" directive path, configure the Apache web server to ensure only authenticated and authorized users can access the web server's private key.  \n\nPermissions must be 600 or more restrictive.","ccis":["CCI-000186"]},{"vulnId":"V-214288","ruleId":"SV-214288r1211011_rule","severity":"medium","ruleTitle":"Cookies exchanged between the Apache web server and client, such as session cookies, must have security settings that disallow cookie access outside the originating Apache web server and hosted application.","description":"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. \n \nWhen 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.","checkContent":"Determine the location of the \"HTTPD_ROOT\" directory and the \"httpd.conf\" file: \n \n# apachectl -V | egrep -i 'httpd_root|server_config_file'\n-D HTTPD_ROOT=\"/etc/httpd\"\n-D SERVER_CONFIG_FILE=\"conf/httpd.conf\"\n\nNote: The apachectl front end is the preferred method for locating the Apache httpd file. For some Linux distributions, \"apache2ctl -V\" or  \"httpd -V\" can also be used. \n\nSearch for the Set-Cookie Header directive:\n\n# cat /<path_to_file>/httpd.conf | grep -i \"Header.*Set-Cookie\"\n \nIf \"HttpOnly\" \"secure\" is not configured, this is a finding. \n \n\"Header always edit Set-Cookie ^(.*)$ $1;HttpOnly;secure\" \n \nReview the code. If, when creating cookies, the following is not occurring, this is a finding: \n \nfunction setCookie() { document.cookie = \"ALEPH_SESSION_ID = $SESS; path = /; secure\"; }","fixText":"Determine the location of the \"HTTPD_ROOT\" directory and the \"httpd.conf\" file: \n \n# apachectl -V | egrep -i 'httpd_root|server_config_file' \n-D HTTPD_ROOT=\"/etc/httpd\" \n-D SERVER_CONFIG_FILE=\"conf/httpd.conf\" \n \nAdd or configure the following line: \n \n\"Header always edit Set-Cookie ^(.*)$ $1;HttpOnly;secure\" \n \nAdd the \"secure\" attribute to the JavaScript set cookie in any application code: \n \nfunction setCookie() { document.cookie = \"ALEPH_SESSION_ID = $SESS; path = /; secure\"; }  \n\nHttpOnly cannot be used since by definition this is a cookie set by JavaScript. \n \nRestart www_server and Apache.","ccis":["CCI-001664"]},{"vulnId":"V-214289","ruleId":"SV-214289r961122_rule","severity":"medium","ruleTitle":"The Apache web server must augment re-creation to a stable and known baseline.","description":"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. \n \nWhen 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.","checkContent":"Interview the System Administrator for the Apache web server. \n \nAsk for documentation on the disaster recovery methods tested and planned for the Apache web server in the event of the necessity for rollback. \n \nIf documentation for a disaster recovery has not been established, this is a finding.","fixText":"Prepare documentation for disaster recovery methods for the Apache web server in the event of the necessity for rollback. \n \nDocument and test the disaster recovery methods designed.","ccis":["CCI-001190"]},{"vulnId":"V-214290","ruleId":"SV-214290r961131_rule","severity":"medium","ruleTitle":"The Apache web server document directory must be in a separate partition from the Apache web servers system files.","description":"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.","checkContent":"Run the following command: \n \ngrep \"DocumentRoot\"<'INSTALL PATH'>/conf/httpd.conf \n \nNote each location following the \"DocumentRoot\" string. This is the configured path to the document root directory(s). \n \nUse the command df -k to view each document root's partition setup. \n \nCompare that against the results for the operating system file systems and against the partition for the web server system files, which is the result of the command: \n \ndf -k <'INSTALL PATH'>/bin \n \nIf the document root path is on the same partition as the web server system files or the operating system file systems, this is a finding.","fixText":"Move the web document (normally \"htdocs\") directory to a separate partition other than the operating system root partition and the web server’s system files.","ccis":["CCI-001084"]},{"vulnId":"V-214292","ruleId":"SV-214292r961167_rule","severity":"medium","ruleTitle":"The Apache web server must display a default hosted application web page, not a directory listing, when a requested web page cannot be found.","description":"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. \n \nEnumeration techniques, such as URL parameter manipulation, rely upon being able to obtain information about the Apache web server's directory structure by locating directories without default pages. In the scenario, the Apache 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.","checkContent":"View the \"DocumentRoot\" value by entering the following command: \n \nawk '{print $1,$2,$3}' <'INSTALL PATH'>/conf/httpd.conf|grep -i DocumentRoot|grep -v '^#' \n \nNote each location following the \"DocumentRoot\" string. This is the configured path(s) to the document root directory(s). \n \nTo view a list of the directories and subdirectories and the file \"index.html\", from each stated \"DocumentRoot\" location enter the following commands: \n \nfind . -type d \nfind . -type f -name index.html \n \nReview the results for each document root directory and its subdirectories. \n \nIf a directory does not contain an \"index.html\" or equivalent default document, this is a finding.","fixText":"Determine the location of the \"HTTPD_ROOT\" directory and the \"httpd.conf\" file: \n \n# apachectl -V | egrep -i 'httpd_root|server_config_file' \n-D HTTPD_ROOT=\"/etc/httpd\" \n-D SERVER_CONFIG_FILE=\"conf/httpd.conf\" \n \nAdd a default document to the applicable directories.","ccis":["CCI-001312"]},{"vulnId":"V-214296","ruleId":"SV-214296r1043182_rule","severity":"medium","ruleTitle":"The Apache web server must set an inactive timeout for sessions.","description":"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 Apache web server can make certain that those sessions that are not closed through the user logging out of an application are eventually closed. \n \nAcceptable values are 5 minutes for high-value applications, 10 minutes for medium-value applications, and 20 minutes for low-value applications.","checkContent":"In a command line, run \"httpd -M | grep -i Reqtimeout_module\". \n \nIf the \"Reqtimeout_module\" is not enabled, this is a finding.","fixText":"Determine the location of the \"HTTPD_ROOT\" directory and the \"httpd.conf\" file: \n \n# apachectl -V | egrep -i 'httpd_root|server_config_file' \n-D HTTPD_ROOT=\"/etc/httpd\" \n-D SERVER_CONFIG_FILE=\"conf/httpd.conf\" \n \nLoad the \"Reqtimeout_module\". \n \nSet the \"RequestReadTimeout\" directive.","ccis":["CCI-002391"]},{"vulnId":"V-214297","ruleId":"SV-214297r961278_rule","severity":"medium","ruleTitle":"The Apache web server must restrict inbound connections from nonsecure zones.","description":"Remote access to the Apache 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. \n \nA 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 Apache web server can stop or slow denial-of-service (DoS) attacks on the web server.","checkContent":"If external controls such as host-based firewalls are used to restrict this access, this check is Not Applicable.\n\nDetermine the location of the \"HTTPD_ROOT\" directory and the \"httpd.conf\" file:\n\n# apachectl -V | egrep -i 'httpd_root|server_config_file'\n-D HTTPD_ROOT=\"/etc/httpd\"\n-D SERVER_CONFIG_FILE=\"conf/httpd.conf\"\n\nNote: The apachectl front end is the preferred method for locating the Apache httpd file. For some Linux distributions \"apache2ctl -V\" or  \"httpd -V\" can also be used. \n\nSearch for the \"RequireAll\" directive:\n\n# cat /<path_to_file>/httpd.conf | grep -i \"RequireAll\"\n\nIf \"RequireAll\" is not configured or IP ranges configured to allow are not restrictive enough to prevent connections from nonsecure zones, this is a finding.","fixText":"Configure the \"http.conf\" file to include restrictions.\n\nExample:\n\n<RequireAll>\nRequire not ip 192.168.205\nRequire not host phishers.example.com\n</RequireAll>","ccis":["CCI-002344"]},{"vulnId":"V-214298","ruleId":"SV-214298r961353_rule","severity":"medium","ruleTitle":"Non-privileged accounts on the hosting system must only access Apache web server security-relevant information and functions through a distinct administrative account.","description":"By separating Apache web server security functions from non-privileged users, roles can be developed that can then be used to administer the Apache web server. Forcing users to change from a non-privileged account to a privileged account when operating on the Apache 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 Apache web server.","checkContent":"Determine which tool or control file is used to control the configuration of the web server. \n \nIf 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. \n \nIf accounts other than the System Administrator, Web Manager, or the Web Manager designees have access to the web administration tool or control files, this is a finding.","fixText":"Restrict access to the web administration tool to only the System Administrator, Web Manager, or the Web Manager designees.","ccis":["CCI-002265"]},{"vulnId":"V-214300","ruleId":"SV-214300r1051295_rule","severity":"medium","ruleTitle":"The Apache web server must only accept client certificates issued by DOD PKI or DoD-approved PKI Certification Authorities (CAs).","description":"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.","checkContent":"Verify the “ssl module” module is loaded:\n# httpd -M | grep -i ssl_module\nOutput:  ssl_module (shared) \n\nIf the \"ssl_module\" is not found, this is a finding. \n\nDetermine the location of the ssl.conf file:\n# find / -name ssl.conf\nOutput: /etc/httpd/conf.d/ssl.conf\n\nSearch the ssl.conf file for the following:\n# cat /etc/httpd/conf.d/ssl.conf | grep -i \"SSLCACertificateFile\"\nOutput should be similar to: SSLCACertificateFile /etc/pki/tls/certs/ca-bundle.crt\n\nReview the path of the \"SSLCACertificateFile\" directive.\n\nReview the contents of <'path of SSLCACertificateFile'>\\ca-bundle.crt.\n\nExamine the contents of this file to determine if the trusted CAs are DOD approved.\n\nIf the trusted CA that is used to authenticate users to the website does not lead to an approved DOD CA, this is a finding.\n\nNOTE: 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.","fixText":"Configure the web server's trust store to trust only DOD-approved PKIs (e.g., DOD PKI, DOD ECA, and DOD-approved external partners).","ccis":["CCI-002470"]},{"vulnId":"V-214301","ruleId":"SV-214301r961632_rule","severity":"medium","ruleTitle":"The Apache web server cookies, such as session cookies, sent to the client using SSL/TLS must not be compressed.","description":"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. \n \nWhen 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). \n \nCookies shared between the Apache web server and the client when encrypted should not also be compressed.","checkContent":"In a command line, run \"httpd -M | grep -i ssl_module\". \n \nIf \"ssl_module\" is not listed, this is a finding. \n \nDetermine the location of the \"HTTPD_ROOT\" directory and the \"httpd.conf\" file: \n \n# apachectl -V | egrep -i 'httpd_root|server_config_file'\n-D HTTPD_ROOT=\"/etc/httpd\"\n-D SERVER_CONFIG_FILE=\"conf/httpd.conf\"\n\nNote: The apachectl front end is the preferred method for locating the Apache httpd file. For some Linux distributions \"apache2ctl -V\" or  \"httpd -V\" can also be used. \n \nIf the \"SSLCompression\" directive does not exist or is set to \"on\", this is a finding.","fixText":"Determine the location of the \"HTTPD_ROOT\" directory and the \"httpd.conf\" file: \n \n# apachectl -V | egrep -i 'httpd_root|server_config_file' \n-D HTTPD_ROOT=\"/etc/httpd\" \n-D SERVER_CONFIG_FILE=\"conf/httpd.conf\" \n \nEnsure the \"SSLCompression\" is added and looks like the following: \n \nSSLCompression off \n \nRestart Apache: apachectl restart","ccis":["CCI-002448"]},{"vulnId":"V-214303","ruleId":"SV-214303r961632_rule","severity":"medium","ruleTitle":"Cookies exchanged between the Apache web server and the client, such as session cookies, must have cookie properties set to force the encryption of cookies.","description":"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.","checkContent":"In a command line, run \"httpd -M | grep -i session_cookie_module\". \n \nIf \"session_cookie_module\" is not listed, this is a finding. \n \nDetermine the location of the \"HTTPD_ROOT\" directory and the \"httpd.conf\" file:\n\n# apachectl -V | egrep -i 'httpd_root|server_config_file'\n-D HTTPD_ROOT=\"/etc/httpd\"\n-D SERVER_CONFIG_FILE=\"conf/httpd.conf\"\n\nNote: The apachectl front end is the preferred method for locating the Apache httpd file. For some Linux distributions \"apache2ctl -V\" or  \"httpd -V\" can also be used. \n\nSearch for the \"Session\" and \"SessionCookieName\" directives:\n\n# cat /<path_to_file>/httpd.conf | grep -i \"Session\"\n# cat /<path_to_file>/httpd.conf | grep -i \"SessionCookieName\"\n\nIf \"Session\" is not \"on\" and \"SessionCookieName\" does not contain \"httpOnly\" and \"secure\", this is a finding.","fixText":"Determine the location of the \"HTTPD_ROOT\" directory and the \"httpd.conf\" file: \n \n# apachectl -V | egrep -i 'httpd_root|server_config_file' \n-D HTTPD_ROOT=\"/etc/httpd\" \n-D SERVER_CONFIG_FILE=\"conf/httpd.conf\" \n \nSet \"Session\" to \"on\". \n \nEnsure the \"SessionCookieName\" directive includes \"httpOnly\" and \"secure\".","ccis":["CCI-002448"]},{"vulnId":"V-214304","ruleId":"SV-214304r1211013_rule","severity":"low","ruleTitle":"The Apache web server must prohibit or restrict the use of nonsecure or unnecessary ports, protocols, modules, and/or services.","description":"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.\n\nThe web server must provide the capability to disable or deactivate network-related services that are deemed nonessential 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.\n\nConfiguring the web server to implement organizationwide 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. \n\nSatisfies: SRG-APP-000516-WSR-000174, SRG-APP-000383-WSR-000175","checkContent":"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. \n \nVerify that any variation in PPS is documented, registered, and approved by the PPSM. \n \nIf well-known ports and services are not approved for use by PPSM, this is a finding.","fixText":"Ensure the website enforces the use of IANA well-known ports for HTTP and HTTPS.","ccis":["CCI-001762","CCI-000366"]}]}