Engineering Leadership & Technical HiringPlaybook3 min readUpdated September 2026

Where Container Security Actually Breaks Down in Practice

Container security often stops at "we scan our images," which catches known vulnerabilities in the packages you shipped and misses almost everything that happens after the container starts running. Scanning is necessary and genuinely useful. It's also only the first of several layers that a container actually needs to be considered hardened.

The gap between "we scan" and "we're hardened" is where most real incidents happen, because scanning tells you what's wrong with a static image, not what a running container is actually doing on your infrastructure.

Vendors Covered in this Article

Disclosure: We may earn a commission if you buy through some links on this page. It doesn't change what we recommend.

Scanning the Image Isn't the Same as Hardening the Runtime

Image scanning catches known CVEs in the packages baked into your image at build time. It says nothing about what the container does after it starts: what it can access on the host, what privileges it runs with, whether it can reach the internet when it has no legitimate reason to.

A perfectly clean scan result can still run as root with a mounted host socket, which is a runtime problem scanning was never designed to catch in the first place. Treat scanning as necessary and clearly insufficient on its own.

A hardened container needs more than a clean scan:

  • Image scanning at build time, which catches known vulnerabilities in the packages baked into the image.
  • A current, deliberately chosen base image instead of whatever tag was convenient when the image was first built.
  • Runtime protection that watches for unexpected process execution, unusual network connections and file access outside expected paths.
  • A non-root default user, with any exception documented and reviewed.
  • A rebuild process fast enough to meet your patch deadline when the fix means rebuilding an image.

Base Image Sprawl: The Silent Source of Most Vulnerabilities

Most vulnerabilities don't come from application code, they come from the base image and its accumulated layers, often pulled from whatever tag was convenient the day someone wrote the Dockerfile and never revisited since. Teams running a dozen services frequently end up with a dozen slightly different base images, each accumulating its own patch lag on its own schedule.

Standardizing on a small number of actively maintained base images, and rebuilding on a schedule rather than only when a scan complains, closes most of this gap on its own without any new tooling.

A simple inventory, which base image and which tag each service actually runs, takes an afternoon to build and immediately surfaces the outliers: the one service still pinned to a tag from two years ago because nobody wanted to risk breaking it during a migration. That inventory is worth repeating quarterly, since sprawl reaccumulates quietly every time a new service gets added without anyone checking what the rest of the fleet is standardized on.

Runtime Protection: Catching What Scanning Misses

Runtime protection watches what a running container actually does: unexpected process execution, unusual network connections, file access outside its expected paths, the behaviors that indicate a container has been compromised after the fact rather than shipped with a known flaw from the start.

This is a genuinely different capability from scanning, not a more thorough version of it, and skipping it means an exploit of an unknown, unscanned vulnerability runs undetected until it causes damage visible somewhere else in the system.

Meeting a Patch SLA When the Fix Means Rebuilding an Image

CISA's directive to federal agencies sets remediation at fifteen calendar days for a critical, internet-facing vulnerability1, and for a containerized service that clock doesn't stop at "we know about the fix," it stops at "the rebuilt image is actually deployed."

If your image build and deploy pipeline takes days on its own, patching under pressure means that pipeline, not the patch itself, is your real bottleneck. Measuring how long a rebuild-and-redeploy actually takes, before you're under pressure to do one, tells you where that SLA is genuinely at risk.

Where CrowdStrike and Tenable Actually Fit in a Container Stack

A vulnerability management platform in this category, such as Tenable, extends image scanning into a continuously updated view of what's exposed across every image you're running, not just a one-time check at build time. An endpoint or cloud workload protection platform in this category, such as CrowdStrike, covers the runtime side, watching container behavior for the compromise signals a static scan can't see.

Treat them as covering different halves of the problem, not as interchangeable options you'd pick one of. A stack with only scanning is exposed at runtime; a stack with only runtime protection is exposed to known issues nobody ever checked for.

What to Check Before Trusting a Third-Party Image

A base image pulled from a public registry carries whatever its maintainer shipped, including dependencies you never explicitly chose and have no direct visibility into. Before adopting one, check who maintains it, how recently it was last updated, and whether it's built from a minimal base rather than a full general-purpose distribution carrying tools you'll never use.

Pin to a specific digest rather than a mutable tag once you've vetted an image, so a maintainer's later change to that tag doesn't silently swap in different content than what you actually reviewed. A tag like latest, or even a version tag, can point to different content over time in a way a digest cannot.

Executive Capability Standard

What Good Looks Like

Good container security means known vulnerabilities are caught in scanning, base images are actively kept current, and runtime behavior is watched separately for signs of compromise a scan can't see.

Building The Capability (5-Stage Skill Ladder)

1. Learn:Audit how many distinct base images your services actually use and when each was last rebuilt.
2. Do Manually:Consolidate onto a small number of actively maintained base images and rebuild them on a fixed schedule.
3. Delegate:Assign a platform engineer ownership of the image build pipeline's speed, since a slow pipeline is what actually blocks fast patching.
4. Automate:Add scheduled scanning on top of build-time scanning so newly disclosed vulnerabilities in unchanged images still get caught.
5. Buy:Layer in a vulnerability management platform like Tenable and a runtime protection platform like CrowdStrike to cover both halves of the problem directly.

How to Get Started

Disclosure: We may earn a commission if you buy through some links on this page. It doesn't change what we recommend.

Frequently Asked Questions

Is scanning at build time enough if we also scan on a schedule?

It's better than scanning only once, since it catches newly disclosed vulnerabilities in images that haven't changed, but it still says nothing about runtime behavior. Scheduled scanning closes the gap where a vulnerability is disclosed after your last build; it doesn't close the gap between scanning and actual runtime hardening.

Should containers ever run as root?

Rarely, and only with a specific, documented reason. Running as a non-root user by default closes off a wide class of privilege-escalation paths at essentially no cost to most applications, and exceptions should be reviewed individually rather than left as a default nobody questions.

How do we know if our base images are actually being kept current?

Check when each base image was last rebuilt, not just when it was last scanned. An image can pass every scan while sitting on a stale base for months, because scanning only checks what's there, not how long it's been since anyone refreshed it against upstream security fixes.

Sources

Where we quote a benchmark, we show its source. Other figures in this guide are estimates or general guidance, so check them against your own numbers.

  1. Security patch remediation SLAs (CISA federal mandates, used as industry norm). CISA Binding Operational Directives 19-02 and 22-01 (CISA briefing hosted at NIST CSRC), 2022.

Related Guides