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.
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.
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/
Err. Rocket is from the guys that brought you CoreOS. CoreOS uses systemd. Not the same thing.
Breakfast served all day!
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."
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.