Skip to content

feat: update Docker InSpec profile to CIS 1.8.0 - #81

Open
je4yfc wants to merge 4 commits into
dev-sec:masterfrom
je4yfc:cis-180
Open

feat: update Docker InSpec profile to CIS 1.8.0#81
je4yfc wants to merge 4 commits into
dev-sec:masterfrom
je4yfc:cis-180

Conversation

@je4yfc

@je4yfc je4yfc commented Sep 7, 2026

Copy link
Copy Markdown

Updates the profile to CIS Docker Benchmark 1.8.0, covering 118 controls.

  • Adds missing recommendations, updates control numbering, moves Swarm controls to section 7, and removes obsolete checks.
  • Reads daemon startup flags alongside its configuration file, handles process detection, and updates daemon defaults, audit paths, and file permissions.
  • Adds configurable checks for prohibited packages, setuid/setgid binaries, published ports, image age and tags, embedded secrets, package verification, and artifact signatures.
  • Checks package-index updates for apt, apk, yum, dnf, and zypper without treating image metadata as build commands.
  • Shares Docker exec audit-log searches and handles empty, encoded, and malformed execution records.
  • Fixes group membership parsing, missing healthchecks, capability checks, runtime ulimits, and image accounting for stopped containers.
  • Adds image-sprawl thresholds and corrects Swarm manager guards and certificate expiry checks.
  • Provides actionable manual-review instructions where host evidence is insufficient, including containers without supported package queries.
  • Preserves existing titles, descriptions, and tags unless benchmark changes require edits. New controls follow the existing format.
  • Updates profile metadata, documentation, input declarations, and sample inputs.
  • Replaces full Docker inspect objects in test descriptions with container IDs and relevant properties, reducing report size without changing assertions.

Closes #59, updates the profile to CIS Docker Benchmark 1.8.0 with all 118 recommendations.
Closes #80, checks package-manager commands instead of matching “update” in image metadata.
Closes #27, checks running daemon arguments alongside its selected configuration file.
Closes #76, removes full Docker inspect objects from test descriptions while preserving container identification and checked properties.
Partially addresses #28 by sharing the audit-log search between both Docker exec controls; large-log performance remains unverified.

AI Disclosure: Mapping from PDF to code, some linting fixes, messages and titles and some documentation for this Ansible role were completed with assistance from Google Gemini. I'm sorry, I type like a moron who never passed high school english. I reviewed it all myself, and tested it.

Update control numbering, add missing recommendations, and remove
obsolete checks. Preserve existing title and description conventions
and the established skips for controls requiring manual review.

Fix Docker group membership and missing healthcheck handling found
during SSH testing. Update profile metadata and documentation.

Signed-off-by: Joseph Erdosy <168128519+je4yfc@users.noreply.github.com>
Restore executable checks for manual recommendations and add package,
image-history, port, and artifact-signature checks. Fix audit parsing,
daemon detection, and runtime false positives; provide actionable skips
where host evidence is unavailable.

Signed-off-by: Joseph Erdosy <168128519+je4yfc@users.noreply.github.com>
Report container IDs and relevant properties instead of full inspect
objects, preserving existing assertions.

Closes dev-sec#76

Signed-off-by: Joseph Erdosy <168128519+je4yfc@users.noreply.github.com>
Signed-off-by: Joseph Erdosy <168128519+je4yfc@users.noreply.github.com>
@je4yfc

je4yfc commented Sep 8, 2026

Copy link
Copy Markdown
Author

Ah Crap - I forgot your request is that:

Please do not update the CHANGELOG.md. We handle that as part of the release process.

I thought I was being helpful.
Let me know if you want it removed and I'll role that commit back.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant