Lion Cipher Lab

Cut a container's attack surface with a distroless image — and measure what you removed

Why it matters

Every package inside your container image is code an attacker inherits the moment they land — a CVE to exploit, or a tool like a shell, curl, or a package manager to pull the next stage of an attack. Most images ship a full mini-Linux the app never uses. This lab has you build the exact same service twice and put the numbers side by side: a full base with dozens of OS-package CVEs and an interactive shell, versus a distroless image with almost no OS packages, near-zero OS CVEs, and no shell at all. Once you have measured the difference yourself, 'shrink the base' stops being advice you nod at…

What you'll learn

Steps in this lab

  1. What this lab is — and what it is NOT
  2. Set up: a folder and a 15-line app
  3. BEFORE — build on a full base image
  4. Measure the BEFORE image — size, CVEs, and prove a shell exists
  5. AFTER — a multi-stage build onto distroless
  6. Measure the AFTER image — and prove the shell is GONE
  7. The honest limits — what distroless does NOT fix

Open the full interactive lab →