OpenParable
Skip to content
← Back to skills

Cis Docker 5.15

DevOps & Security
cis-docker-5.15

Cis Docker 5.15 is an Agent Skill for devops & security published in the CyberStrikeus/CyberStrike repository on GitHub: a SKILL.md instruction file an AI agent can load to do this task.

Ensure that the 'on-failure' container restart policy is set to '5'

View on GitHub ↗
QUICK START

How to use this skill

Bring this guide into your coding agent with a prompt tailored to the tool you use.

  1. Open your project in Codex.
  2. Copy and paste the prompt below.
  3. Review files and risks before approving any action.
Prompt to paste
Inspect the Agent Skill at https://github.com/CyberStrikeus/CyberStrike/blob/HEAD/.cyberstrike/skill/CIS_benchmarks/Server_Software/Docker/CIS_Docker_Benchmark_v1.8.0/cis-docker-5.15/SKILL.md and all supporting files. Report provenance, permissions, scripts, dependencies, and security risks. Propose an exact installation into .agents/skills/cis-docker-5-15, but wait for my approval before writing files or running scripts.

Copying this prompt does not install or run the skill. Review third-party files before use.

5.15 Ensure that the 'on-failure' container restart policy is set to '5' (Manual)

Profile Applicability

  • Level 1 - Docker - Linux

Description

By using the --restart flag in the docker run command you can specify a restart policy for how a container should or should not be restarted on exit. You should choose the on-failure restart policy and limit the restart attempts to 5.

Rationale

If you indefinitely keep trying to start the container, it could possibly lead to a denial of service on the host. It could be an easy way to do a distributed denial of service attack especially if you have many containers on the same host. Additionally, ignoring the exit status of the container and always attempting to restart the container, leads to non-investigation of the root cause behind containers getting terminated. If a container gets terminated, you should investigate the reason behind it instead of just attempting to restart it indefinitely. You should use the on-failure restart policy to limit the number of container restarts to a maximum of 5 attempts.

Impact

If this option is set, a container will only attempt to restart itself 5 times.

Audit Procedure

You should use the command below

docker ps --quiet --all | xargs docker inspect --format='{{ .Id }}: RestartPolicyName={{ .HostConfig.RestartPolicy.Name }} MaximumRetryCount={{ .HostConfig.RestartPolicy.MaximumRetryCount }}'

If this command returns RestartPolicyName=always, then the system is not configured optimally.

If the above command returns RestartPolicyName=no or just RestartPolicyName=, then restart policies are not being used and the container would never be restarted automatically. Whilst this may be a secure option, it is not the best option from a usability standpoint.

If the above command returns RestartPolicyName=on-failure, then verify that the number of restart attempts is set to 5 or less by looking at MaximumRetryCount.

Remediation

If you wish a container to be automatically restarted, a sample command is as below:

docker run --detach --restart=on-failure:5 nginx

Default Value

By default, containers are not configured with restart policies.

References

  1. https://docs.docker.com/engine/reference/commandline/run/#restart-policies---restart

CIS Controls

v8

4 Secure Configuration of Enterprise Assets and Software

Establish and maintain the secure configuration of enterprise assets (end-user devices, including portable and mobile; network devices; non-computing/IoT devices; and servers) and software (operating systems and applications).

v7

5.2 Maintain Secure Images

Maintain secure images or templates for all systems in the enterprise based on the organization's approved configuration standards. Any new system deployment or existing system that becomes compromised should be imaged using one of those images or templates.