Skip to content

Latest commit

 

History

19 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

container-research

What container tooling does in a Linux environment that presents uid 0 with a full capability set while refusing most of the kernel operations container runtimes are built on — and a design for a runtime that survives it without lying about what it provides.

Path Contents
paper_final.md The paper. Every empirical claim is tagged: reproduced here [V], observed on the target [T], established from source [S], or reported-and-unreproducible [R].
TOOL.md The build order for podbox, the runtime the paper specifies. Written for an implementer with no prior context: the language decision, the component specs, the milestone tests, and the reference corpus with verdicts.
experiments/ The reconstruction: rebuilds the studied runtime's identity, mount topology and filter in a container on an ordinary host, and asserts every attribution row. Also the language comparison and the interpose-tier measurement.
verification/ The model harness that produces the [V] claims. ./verification/run.sh
verification/real/ Captures from the target runtime itself (2026-09-07) — one session, not repeatable. Everything here is [T].
patches/ lilipod-restricted-v2.diff — a prior Go adaptation. Read for its lessons; TOOL.md §3 says why it is not the seed.
references/ The earlier manuscripts this work reconciles, unmodified.
docs/ The methodology this repository is worked under, copied verbatim from Azathothas/TEMPLATE. Binding, not advisory — start at docs/README.md.

Licence: 0BSD. Everything here — the paper, the harness, the reconstruction, the specification — is free for any use, with no attribution clause and no notice to retain.

The runtime is modelled as three mechanisms that can be switched on independently — a user namespace with a partial ID map, a seccomp filter, and a path-scoped LSM — so that each observed denial can be attributed to the one that actually causes it. That separation is what settles the questions the earlier manuscripts disagreed about.

./verification/run.sh                       # the model harness, all sections
./verification/run.sh census bwrap podman   # selected sections

./experiments/10-build-target-image.sh      # the reconstruction
./experiments/20-enter-target.sh            # a shell inside the reconstructed runtime
./experiments/30-attribution-census.sh      # every attribution row, asserted

Needs go, gcc, and a running docker; sections and scripts whose dependencies are missing print SKIP and exit 2 rather than passing. The reconstruction needs a kernel with Landlock to reproduce the third mechanism, and says so when it does not have one.

About

ai slop, don't bother

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages