Docker Image Insecurity
An anonymous reader writes Developer Jonathan Rudenberg has discovered and pointed out a glaring security hole in Docker's system. He says, "Recently while downloading an 'official' container image with Docker I saw this line: ubuntu:14.04: The image you are pulling has been verified
I assumed this referenced Docker's heavily promoted image signing system and didn't investigate further at the time. Later, while researching the cryptographic digest system that Docker tries to secure images with, I had the opportunity to explore further. What I found was a total systemic failure of all logic related to image security.
Docker's report that a downloaded image is 'verified' is based solely on the presence of a signed manifest, and Docker never verifies the image checksum from the manifest. An attacker could provide any image alongside a signed manifest. This opens the door to a number of serious vulnerabilities." Docker's lead security engineer has responded here.
I assumed this referenced Docker's heavily promoted image signing system and didn't investigate further at the time. Later, while researching the cryptographic digest system that Docker tries to secure images with, I had the opportunity to explore further. What I found was a total systemic failure of all logic related to image security.
Docker's report that a downloaded image is 'verified' is based solely on the presence of a signed manifest, and Docker never verifies the image checksum from the manifest. An attacker could provide any image alongside a signed manifest. This opens the door to a number of serious vulnerabilities." Docker's lead security engineer has responded here.
Read the update. Pretty much the Docker team is implementing a container verification system and working through the details of decentralized security. v1 is part of the mechanism being in place. It assumes that an upstream verification is in place which is at best-semi helpful. Everyone agrees that the current system does nothing and the message is highly misleading in that it might lead someone to believe that there is a security system in place when the plumbing isn't finished.
So there is no argument here between the parties (what nothing to fight about on /.). Worth pointing out to the /. community however not to take that message seriously yet.
In fact, build your own casino, with blackjack and hookers.
But how does Bennet Hasselton verify Bennet Hasselton's hand?
I'm about to leave for Sears, inseam and waist measurements in hand. And here I read that my image security is at risk. I better find a new brand of pants I guess.
just another example of the "bleep'ed ed bleep" that passes for a good idea
it REALLY is time for a X30+ solar flare to kill the electricity for 10 years
then MAYBE we will have had time to well THINK FIRST!!!
and change the priories from
new and "Bleeped up"
to stable and SECURE
"I don't pitch OpenSUSE Linux to my friends, i let Microsoft do it for me
Don't tell us what the fuck a docker is or anything...
Only the State obtains its revenue by coercion. - Murray Rothbard
Dockers is a brand of khaki garments and other accessories from Levi Strauss & Co.
It's obviously a single pant-leg or shoe, hence, Docker, not Dockers.
You're welcome.
Docker's report that a downloaded image is 'verified' is based solely on the presence of a signed manifest, and Docker never verifies the image checksum from the manifest.
Can it be enabled? If yes, then I do not see a problem.
Otherwise, the signing crap is just that: crap.
It takes needlessly long time to verify the signature. (Because they are not slow! - they are so secure, so very much OMG secure.)
It is a huge risk to reconfigure a production system to use unsigned data if emergency arises. (Think recovery from a local backup.)
Developers forget to renew their certificates and suddenly, in the middle of a production, whole system goes down, because OMG the certificate has expired and data may be not secure!!!
And then, in the end, the signing keys get leaked or stolen...
All hope abandon ye who enter here.
A summary of that wall-of-text "response" from the Docker "lead security engineer":
"Bullshit, bullshit v1 bullshit. Bullshit discussions about bullshit CVE bullshit. (yes we know its broken) Bullshit v2 bullshit, next version bullshit Bullshit."
If you can't dazzle them with your intelligence, baffle them with your bullshit.
Maw! Fire up the karma burner!
http://xkcd.com/1181/
Long live Rocket!
Is that after cutting off circulation to the hand so it feels like a stranger is stroking his cock?
I'm glad I'm not the only one who had that reaction. Unintelligible drivel!
Here are my favorite excerpts:
-- "There is nothing particularly new in Jonathan's post and I thank him for facilitating a conversation [about nothing particularly new apparently]."
-- "Image security is of the upmost importance to us. For these reasons, we've [reached] many of the same conclusions [that there is no image security]."
-- "v1 is not v2. v1 has a flawed design. we have a draft for v2. v2 will be better. v2 will be much more shiny. when you have v2, you will forget how insecure v1 is. until then, we recommend you use v2, because v1 is not secure. v2 is still in draft."
-- "THESE AREN'T THE DROIDS YOU'RE LOOKING FOR."
So did you email them in the first instance or did you go for the thunder and glory on slashdot first?
That is a job for his hand.
Sleep your way to a whiter smile...date a dentist!
Read the article, summary makes it sound as if Docker doesn't verify the checksums and it does. What his complaint is, that it verifies the checksum AFTER decompress, de-tar'ing from a HTTPS source, and only does a cursory check on the TAR file.
He complains that the check on the TAR file is imperfect, which is true, and that the act of unpacking might reveal a vulnerability in the unpacker which could compromise the machine.
So, to be clear, his proposed attack is "intercept the https source" (which is possible by the NSA/GCHQ due to the certificate authority weakness), they then send a TAR which triggers a bug in unpack and takes control of a machine (which surely needs this untar bug to be fixed rather than docker to slap a fix around it), and then creates a plausible clean version sent to Docker to be verified.
It's then presented on slashdot, as "docker doesn't verify signatures" which is misleading to the point of deception.
Especially when anti-Fascism Architecture ensures that the left hand knoweth not what the right hand doeth.
Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
It's one of those stupid buzzword masturbatory things that every quarter-assed IT person thinks is going to SAVE THE WORLD but isn't really any better than a bunch of scripts except that half of it (cf. this article) isn't really implemented properly yet and lack of understanding is excused with "well, it wasn't written in-house".
As a member of the old internet, I scoff at your presumption that we even know what Docker is.
So....It's a glorified app packager?
How quaint.
"C is not a memory-safe language" - for that comment alone, the entire review becomes untrusted.
One fallacy means that the entire work might just be a continuous set of fallacies.
(C is only memory-unsafe if not used safely - which, given that there's very few barriers to a programmer from shooting themselves in the foot - is always a risk)
It would be ok if the message said "Manifest file contains correctly formatted checksum - still need to verify."
That might also give you the hint that, if no message about "checksum verified correctly" appears later, probably no verification has been done.
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
Build a base tar.gz with debootstrap and use Dockerfiles. Downloading images is insecure by design. What makes you trust the docker verification? How are they supposed to spot a backdoor in a whole big image? Build it yourself, use Dockerfiles you read first.