Run a workload in a locked network namespace, witness its packets from below the guest, and emit a re-runnable report that observed egress was zero — or catch the one that phoned home. The kernel on this page is the gated kernel.
Each capture below is decoded and classified by the exact kernel that CI mutation-gates. Press re-run: it re-derives from the pinned bytes and must match the committed verdict.
These are the actual pcaps tcpdump recorded on the host side of the veth during the sealed namespace run — the offline workload and the phone-home control. The same kernel re-derives their verdicts here, in your browser. the run.
Egress is observed at the host / network-namespace boundary over the capture window, by tcpdump on the host side of the veth. The guest cannot edit packets the host already saw — that is why the measurement is from below.
A kernel-level or firmware-level implant below this capture point can move bytes this never sees. So this is “observed egress zero under a stated threat model”, never “proof of a negative”. L3 (the OS) and L2 (firmware) are the next layers down: adopt-and-prove, not claimed here.
tcpdump on the host side records every packet that crossed it.8.8.8.8 — the SYN is caught at the boundary → CAUGHT (0 false-pass). It never reaches Google.sha256, so it re-derives byte-identically.ip netns + tcpdump are Linux, so the real measured run happens on the GitHub Actions runner — the CI re-derivation is the un-forgeable proof.
▶ The live measurement on CI · source · the latest run’s sealed-captures artifact holds the real pcaps + reports.
That over the capture window, zero packets crossed the host / namespace boundary to a routable destination that was not declared. It is measured from below the guest, so the workload cannot edit the packets the host already observed. It is “observed egress zero under a stated threat model”, not “proof of a negative”.
A kernel- or firmware-level implant below the capture point can move bytes this never observes. That is why L3 (the OS) and L2 (firmware) are the next layers down — adopt-and-prove, not claimed here.
The report carries the sha256 of exactly the capture observed. The verdict kernel is deterministic, so anyone can re-run it over the same pcap and derive the same verdict. CI re-derives both the synthetic fixtures and the real namespace captures on every push.
A positive control: a workload that opens a connection to 8.8.8.8 runs in the same sealed namespace. The prover must report CAUGHT. The gate fails on any false-pass.