Container Security

End-to-end container defense, from base image to running pod.

The container you ship is a stack. Your code sits on top of a runtime, system packages, and a base OS image you did not write. Most of the risk lives in those lower layers. Moolé x-rays every layer, works out the true base OS by looking at the filesystem, then ties each finding to what is actually running in Kubernetes. You get alarms on reachable, exposed risk, not on everything.

01 · The problem

You wrote the top layer. You inherited the rest.

A container image is built in layers. Your application code is a thin slice on top. Underneath sit language libraries, system packages, and a full base OS. Every one of those layers ships in your image, and every one carries its own known flaws. When people say a container is "vulnerable," they usually mean the base is, not the code the team wrote. Here is where the CVEs actually live.

your app code
2 CVEs
runtime / language libs
7 CVEs
system packages (apt)
12 CVEs
base OS image (debian:11-slim)
31 CVEs

Two of these findings came from code your team wrote. The other fifty came with the base image and the packages layered on top. Scan only your code and you miss where the risk really is. Moolé reads every layer, so nothing beneath your code hides from view.

Most tools scan your code.
Moolé scans everything under it too.

02 · What it scans

The whole image, tied to what is really running.

Moolé opens the image, reads every layer, and works out what it is actually made of. Then it looks at your cluster to see which parts are exposed and reachable. A flaw in a package no running pod uses is not the same as one on your front door, and Moolé tells the two apart.

01

Image layers & registries

Reads every package across all layers of the image, not just the top one. Connects to your registry directly: Amazon ECR, Google Artifact Registry, Docker Hub, Azure Container Registry, and Nexus.

One scan, every layer, wherever the image lives.
02

OS fingerprinting

Identifies the true base OS by looking at the filesystem, not by trusting a label. If a base image quietly changes from one build to the next, Moolé catches the drift.

The label can lie. The filesystem does not.
03

Runtime & Kubernetes context

Maps each vulnerability to the pods and namespaces actually running it. Findings on code paths no running workload reaches drop out of the way.

Reachable and exposed, or quietly parked.
04

Supply-chain protection

Watches for poisoned images and dependency-confusion attacks, where a bad package slips in by matching the name of one you trust.

Catches the image that should not be there.
05

Container SBOMs

Produces an image-level bill of materials in SPDX or CycloneDX, tied to the exact image digest so you always know what a given build contained.

A precise parts list for every image you ship.
06

Policy-as-Code

Guardrails written once and applied the same way every time, with scoped exceptions that carry an expiry date so temporary waivers do not become permanent.

Rules that hold, exceptions that end.
03 · Build to runtime

One container, followed the whole way.

A container does not stop changing when the build ends. It moves from a base image through your pipeline into a registry, then into the cluster, then into production traffic. Moolé watches the same image at every stop, and enforces at the point where a bad build should not be allowed to move forward.

start

Base image

the layers you did not write
01

Build / CI

image assembled in the pipeline
02

Registry

Moolé enforces before promotion
03

Deploy (K8s)

scheduled onto the cluster
04

Runtime

live traffic, exposed paths

Moolé tracks the same container end to end, so a change slipped in outside CI/CD, a swapped base image or a hand-patched layer, does not go unseen. Enforcement lands at the registry, where a failing image can be stopped before it reaches the cluster.

04 · Fits governance

Blocks the builds that matter. Not all of them.

A gate that fails every build on every CVE gets turned off within a week. Moolé fails a build only when a finding breaks policy and carries real, reachable risk. Everything else is recorded, ranked, and left for you to handle on your own schedule.

01

Enforcement with a reason

Fail-build only on policy-breaking, reachable risk. The gate stays trusted because it fires when it should, so teams keep it on instead of routing around it.

A gate people leave switched on.
02

Portfolio-level view

One picture of container risk across every repo and team, so a base image with a serious flaw is visible everywhere it is used, not one project at a time.

Every image, one place.
03

Audit-ready views

Reporting mapped to the frameworks auditors ask about: CIS, NIST, PCI, SOC 2, and HIPAA. The evidence is ready when the request lands.

Answers before the auditor asks.

Tour the platform →