I’ve read that standard containers are optimized for developer productivity and not security, which makes sense.
But then what would be ideal to use for security? Suppose I want to isolate environments from each other for security purposes, to run questionable programs or reduce attack surface. What are some secure solutions?
Something without the performance hit of VMs
It is the application Docker that is not secure. Containers are. In fact Docker runs a daemon as root to wich you communicate from a client. This is what makes it less secure; running under root power. It also has a few shortcomings of privileged containers. This can be easily solved by using podman and SELinux. If you can manage to run Docker rootless, then you are magnitudes higher in security.
There can also be old images with e.g. old openssl versions being used. Its not a concern if they are updated frequently, but still manual.
This is a problem of the containerized program and the image itself. This problem affect, containers, VM, and baremetal aswel.
I agree. But imo these usecases are more known and mature in traditional setups, we could
apt updateand restart a systemd service and its done.Its not so obvious and there are no mechanisms for containers/images.
(I am not into devops/sysadmin, so this might also be my lack of exposure)
Most often, images are updated automatically and are managed by the developers themselves so images are usually up to date. If you don’t know how to build images, it may be difficult for you to update the containerized software before the vendor does. But this situation is infrequent.
Many projects just pull in a bunch of images from wherever and never update them. Especially if it’s that one obscure image that happens to package this over obscure app you absolutely need.
Where did you read that and which arguments did the authors make?
Many times, the configuration of Docker is the issue, e.g. mounting stuff like files from
/etc/or the Docker socket from the outside, using insecure file permissions or running the application asrootuser.If you use rootless Docker or Podman, you already eliminated one of the security risks. The same goes for the other mentioned things.
What exactly do you mean by “questionable programs”? If you want to run malware, you shouldn’t do so in an environment where it can break out of anything. There’s the possibility of hardware virtualisation which prevents many of the outbreaks possible, but even then, exploits have been found.
You’re really only secure if you run questionable software on an airgapped computer with no speakers and never run anything else on it.
What would be your use case?
There are multiple use cases I have in mind, but one of them is running proprietary software I don’t outright trust. For example, zoom video conferencing for work, or steam for games.
Docker isnt build to run these type of Programms. You should look into sandbox environments to test these apps.
Try firejail and flatseal for that.
How come no speakers? Is it to prevent your ears from being blasted just in case, or is there malware that can be transmitted through audio?
Dang, that’s wild. there is some insane malware out there
Docker has an additional issue, but not one unique to docker. Like flatpak, pip, composer, npm or even back to cpan and probably further, as a third-party source of installed software, it breaks single-source of truth when we want to examine the installed-state of applications on a given host.
I’ve seen iso27002/12.2.1f, I’ve seen supply-chain management in action to massive benefit for uptime, changes, validation and rollback, and it’s simplified the work immensely.
.1.3.6.1.2.1.25.6.3If anyone remembers dependency hell - which is always self-inflicted - then this should be Old Hat.
HAVING SAID THAT, I’ve seen docker images loaded as the entire, sole running image, apparently over a razor-thin bmc-sized layer, on very small gear, to wondrous effect. But - and this is how VMware did it - a composed bare micro-image with Just Enough OS to load a single container on top, may not violate 27002 in that circumstance.
Just to add to the already existing and much more comprehensive comments, here’s an interesting solution which Flatpak uses: https://wiki.archlinux.org/title/Bubblewrap



