Ensure the Error Log Filename and Severity Level Are Configured Correctly
Description
The LogLevel directive is used to configure the severity level for the error logs, while the ErrorLog directive configures the log file name. The log level values are the standard syslog levels of emerg, alert, crit, error, warn, notice, info and debug. The recommended level is notice, so that all errors from the emerg level through the notice level will be logged.
Rationale
The server error logs are invaluable because they can be used to spot potential problems before they become serious. Most importantly, they can be used to watch for anomalous behavior such as numerous "not found" or "unauthorized" errors that may be an indication an attack is pending or has occurred.
IMPORTANT NOTE
The Apache httpd server stopped including 404 not found errors in its error log several years ago. Not including the 404 errors may cause log monitoring and host intrusion detection and prevention software to miss web scanning attacks which cause a large number of not found errors, and may fail to block the attack. For Apache 2.4 benchmark we have recommended using "notice core:info" in order to pick up the 404 errors. However, in Apache 2.2, the LogLevel directive doesn't support multiple levels. So the same recommended solution is not available. There are three alternatives to consider:
Set the
LogLevelto info – However this may create excessive logs, especially for TLS connections. The excessive logs may overwhelm the log monitoring processes.Adapt the log monitoring and IDS to monitor the access logs. Which are much more frequent and may also overwhelm the log monitoring system.
Upgrade to Apache 2.4.
For historical context:
- A useful discussion which includes a justification by the bug fix author for the not found log level change. https://stackoverflow.com/questions/36568205/404-error-doesnt-appear-in-apache-error-log
- The Apache "bug fix" that caused the change in logging 404 not found errors is available at https://bz.apache.org/bugzilla/show_bug.cgi?id=35768
Audit Procedure
Perform the following steps to determine if the recommended state is implemented:
- Verify the
LogLevelin the Apache server configuration has a value ofnoticeor lower. Note that it is also compliant to have a value ofinfoordebugif there is a need for a more verbose log and storage and monitoring processes are capable of handling the extra load. The recommended value isnotice. - Verify the
ErrorLogdirective is configured to an appropriate log file or syslog facility. - Verify there is a similar
ErrorLogdirective for each virtual host configured if the virtual host will have different people responsible for the web site.
Remediation
Perform the following to implement the recommended state:
- Add or modify the
LogLevelin the Apache configuration to have a value ofnoticeor lower. Note that is it is compliant to have a value ofinfoordebugif there is a need for a more verbose log and the storage and monitoring processes are capable of handling the extra load. The recommended value isnotice.
LogLevel notice
- Add an
ErrorLogdirective if not already configured. The file path may be relative or absolute, or the logs may be configured to be sent to a syslog server.
ErrorLog "logs/error_log"
- Add a similar
ErrorLogdirective for each virtual host configured if the virtual host will have different people responsible for the web site. Each responsible individual or organization needs access to their own web logs.
Default Value
The following is the default configuration:
LogLevel warn
ErrorLog "logs/error_log"
References
- https://httpd.apache.org/docs/2.2/logs.html
- https://httpd.apache.org/docs/2.2/mod/core.html#loglevel
- https://httpd.apache.org/docs/2.2/mod/core.html#errorlog
CIS Controls
Version 6
6.2 Ensure Audit Log Settings Support Appropriate Log Entry Formatting Validate audit log settings for each hardware device and the software installed on it, ensuring that logs include a date, timestamp, source addresses, destination addresses, and various other useful elements of each packet and/or transaction. Systems should record logs in a standardized format such as syslog entries or those outlined by the Common Event Expression initiative. If systems cannot generate logs in a standardized format, log normalization tools can be deployed to convert logs into such a format.
Version 7
6.2 Activate audit logging Ensure that local logging has been enabled on all systems and networking devices.
6.3 Enable Detailed Logging Enable system logging to include detailed information such as an event source, date, user, timestamp, source addresses, destination addresses, and other useful elements.
Profile
Level 1 | Scored Level 2 | Scored