|Finding ID||Version||Rule ID||IA Controls||Severity|
|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.|
|Apache Server 2.4 UNIX Server Security Technical Implementation Guide||2021-06-23|
|Check Text ( C-15466r277016_chk )|
| Review the web server documentation and deployed configuration to determine the length of the generated session identifiers. |
First ensure that "session_crypto" is enabled:
httpd -M |grep session_crypto
If the above command returns "session_crypto_module", the module is enabled in the running server.
Determine the location of the "HTTPD_ROOT" directory and the "httpd.conf" file:
# httpd -V | egrep -i 'httpd_root|server_config_file'
Review the "httpd.conf" file.
If the "SessionCryptoCipher" is not used or "SessionCryptoCipher" is not set to "aes256", this is a finding.
|Fix Text (F-15464r277017_fix)|
| Configure the web server to generate session identifiers that are at least 128 bits in length. |
Ensure that "session_crypto_module" is enabled.
Determine the location of the "httpd.conf" file by running the following command:
Review the "HTTPD_ROOT" path.
Navigate to the "HTTPD_ROOT"/conf directory.
Edit the "httpd.conf" file.
Restart Apache: apachectl restart