Linux Kernel capabilities must be restricted within containers.
Severity | Group ID | Group Title | Version | Rule ID | Date | STIG Version |
|---|---|---|---|---|---|---|
| medium | V-260923 | SRG-APP-000141-CTR-000315 | CNTR-MK-000560 | SV-260923r966126_rule | 2024-08-27 | 2 |
Description
By default, MKE starts containers with a restricted set of Linux Kernel Capabilities. Any process may be granted the required capabilities instead of root access. Using Linux Kernel Capabilities, the processes do not have to run as root for almost all the specific areas where root privileges are usually needed. MKE supports the addition and removal of capabilities, allowing the use of a nondefault profile. Remove all capabilities except those explicitly required for the user's container process.
By default, below capabilities are available for Linux containers:
AUDIT_WRITE
CHOWN
DAC_OVERRIDE
FOWNER
FSETID
KILL
MKNOD
NET_BIND_SERVICE
NET_RAW
SETFCAP
SETGID
SETPCAP
SETUID
SYS_CHROOT
ℹ️ Check
When using Kubernetes orchestration this check is Not Applicable.
When using Swarm orchestration, via CLI:
Linux: Execute the following command as a trusted user on the host operating system:
docker ps --quiet --all | xargs docker inspect --format '{{ .Name }}: CapAdd={{ .HostConfig.CapAdd }} CapDrop={{ .HostConfig.CapDrop }}'
The command will output all Linux Kernel Capabilities.
If Linux Kernel Capabilities exceed what is defined in the System Security Plan (SSP), this is a finding.
✔️ Fix
When using Kubernetes orchestration this check is Not Applicable.
When using Swarm orchestration, review and remove nonsystem containers previously created by these users that allowed capabilities to be added or must be removed using:
docker container rm [container]