| name | cis-apache-12.2 |
| description | Ensure the Apache AppArmor Profile Is Configured Properly |
| category | cis-apache |
| version | 3.6.0 |
| author | cyberstrike-official |
| tags | ["cis","apache","linux","apparmor","mandatory-access-control","mac"] |
| cis_id | 12.2 |
| cis_benchmark | CIS Apache HTTP Server 2.2 Benchmark v3.6.0 |
| tech_stack | ["linux","apache"] |
| cwe_ids | [] |
| chains_with | [] |
| prerequisites | [] |
| severity_boost | {} |
Ensure the Apache AppArmor Profile Is Configured Properly
Description
AppArmor includes customizable profiles that may be used to confine the Apache web server to enforce least privileges so the server has only the minimal access to specified directories, files, and network ports. Access is controlled by a profile defined for the apache2 process. The default AppArmor profile is typically a very permissive profile that allows read-write access to all system files. Therefore, it's important that the default profile be customized to enforce least privilege. AppArmor utilities such as aa-autodep, aa-complain, and aa-logprof can be used to generate an initial profile based on actual usage. However, thorough testing, review, and customization will be necessary to ensure the Apache profile restrictions allow the necessary functionality while implementing least privilege.
Rationale
With the proper implementation of an AppArmor profile, vulnerabilities in the web application may be prevented from being exploited due to the additional restrictions. For example, a vulnerability that allows an attacker to read an inappropriate system files may be prevented from execution by AppArmor because the inappropriate files are not allowed by the profile. Likewise, writing to an unexpected directory or executing unexpected content can be prevented by similar mandatory security controls enforced by AppArmor.
Impact
None documented
Audit Procedure
Perform the following steps to determine if the recommended state is implemented:
-
Find the Apache AppArmor profile typically found in /etc/apparmor.d/usr.sbin.apache2 with any files included by the profile such as /etc/apparmor.d/apache2.d/* and files in the /etc/apparmor.d/abstractions/ directory.
-
Review the capabilities and permissions granted to ensure that the profile implements least privileges for the web application. Wild-card paths such as /** which grant access to all files and directories starting with the root level directory should not be present in the profile. Instead, read-only access to specific necessary system files such as /etc/group and to web content files such as /var/www/html/** should be given. Refer to the apparmor.d man page for additional details. Shown below are some possible example capabilities and path permissions.
capability dac_override,
capability dac_read_search,
capability net_bind_service,
capability setgid,
capability setuid,
capability kill,
capability sys_tty_config,
. . .
/usr/sbin/apache2 mr,
/etc/gai.conf r,
/etc/group r,
/etc/apache2/** r,
/var/www/html/** r,
/run/apache2/** rw,
/run/lock/apache2/** rw,
/var/log/apache2/** rw,
/etc/mime.types r,