Covert channel testbed over a Docker network

July 15, 2025

My bachelor’s thesis, defended in 2025 at the University of Bologna (Ingegneria e Scienze Informatiche). The Italian title translates roughly to “Hiding in plain sight: an operational introduction to network covert channels”; it presents a bit of theory paired with a hands-on testbed.

What it does

A network covert channel hides not just what you’re saying but that you’re communicating at all. It is useful when the mere existence of a message is incriminating. The classic framing is Simmons’ “prisoners’ problem”: Alice and Bob may exchange messages only if the warden, Wendy, gets to read everything, so they have to smuggle a secret conversation inside perfectly innocent-looking traffic.

I turned that into a Dockerized testbed: containers alice and bob talk over HTTP, while wendy sits on the path as the gateway recording everything. You bring it up with make, attach to the prisoners, run one of the covert-channel examples, and watch in Wireshark exactly what Wendy would see.

Wendy acts as a router between the two prisoners, right where a real network monitor would sit, so the packet captures are the real thing and not a hand-drawn diagram. I implemented three channels: two over HTTP/1.1 (one hides bits in trailing whitespace, the other in chunked-transfer trailers) and one over HTTP/2 (frame padding). For each one I captured the traffic and looked at how much it leaks and how a passive warden could catch it.

The slides

Defense slides

Full thesis (PDF) · Testbed source · Thesis source