What matters first
- Separate image hygiene from runtime and host security.
- Review privileged modes, mounts, capabilities, and daemon access.
- Keep credentials out of images and constrain workload authority.
Review the image and build inputs
Identify the base image, dependency sources, build stages, and final artifact digest. Remove unnecessary build tools and sensitive files from the runtime image according to the application’s requirements. Deleting a file in a later image layer may not make its earlier contents absent from the artifact.
Review provenance and update ownership for the image. A familiar image name does not establish that the exact artifact is trustworthy or current. Record how the pipeline selects dependencies, verifies the resulting build, and responds when an upstream component has a security advisory.
References: [1] Docker, [2] OWASP
Inspect the runtime authority
Review the process user, capabilities, privileged settings, filesystem mounts, and access to the container-management interface. Docker documents that daemon control is a significant authority boundary. A workload does not need broad host control merely because it uses a container runtime.
Check writable locations, host paths, and network access against the task the container performs. Processing untrusted files or build jobs can require stronger separation from valuable host resources. Treat convenient development settings as explicit decisions before reusing them in production.
References: [1] Docker, [3] AWS
Connect the container to secrets and host maintenance
Supply secrets through the environment’s supported, scoped mechanisms and review who can inspect them. A private image registry is not a reason to embed production credentials into the image. Include logs, crash output, and debugging endpoints in the credential-exposure review.
Containers normally share the host kernel. Updating application dependencies in the image does not by itself fix a vulnerable host kernel. Review host patching, workload placement, and the consequences of a process obtaining more authority than intended inside the container.
References: [4] OWASP, [5] Canonical, [1] Docker
Verify the deployed configuration
Inspect the actual workload specification and running configuration, not only a Dockerfile. Confirm the intended identity, mounts, network paths, resource limits, and artifact digest. A deployment override can change the security posture without modifying the image at all.
Use controlled tests to verify required operations and denied access. Record exceptions and owners, then make the accepted configuration part of the normal deployment definition. Revisit the review when introducing new file processors, build jobs, host integrations, or privilege requirements.
References: [6] NIST, [7] Kubernetes
Your next steps
- Inventory image sources, build artifacts, runtime identities, and host owners.
- Review privileges, mounts, daemon access, and network reachability.
- Check secret delivery and host-kernel maintenance separately from image updates.
- Book a review of the containerized application’s actual boundaries.
Questions teams ask
Is a non-root process the only control we need?
No. It is one useful part of a design. Capabilities, mounts, daemon access, network paths, secrets, and the host still matter.
Does a private registry make an image secure?
It controls distribution access, but does not establish the image’s contents, dependency safety, or runtime configuration.
Sources and editorial notes
Public-source facts are cited above. The review questions and action plans are Cyphen’s guidance for applying those lessons to your own systems. Sources checked on .
- Docker: Docker Engine security
- OWASP: Software Supply Chain Security Cheat Sheet
- AWS: Security best practices in IAM
- OWASP: Secrets Management Cheat Sheet
- Canonical: CVE-2026-31431 status and updates
- NIST: Technical Guide to Information Security Testing and Assessment
- Kubernetes: Kubernetes Security Checklist