I found this really old blog post and it still applies today.
We don’t really have antiviruses, and thats nice. But we have a huge monolithic kernel, we have random executable files all over the filesystem, we have systems that to this day often dont even update without elevated privileges.
Android took Linux and fixed it, long ago. You dont even have root! Their app ecosystem is often very restricted by design though, as its a phone OS.
Desktop Linux needs to get more secure, compartimentalized, perfectly usable
- without sudo privileges
- without apps having read/write access everywhere
- without X.Org
- with portals, control, Wayland, Pipewire, Flatpak
- with a split up kernel, drivers in userspace, adapted to the actual hardware you are running
- with as much hardening applied as possible to simply shut off everything you dont need.
I guess there are many great projects out there that try to create exactly such a system
- musl, busybox
- RedoxOS
- hardened_malloc, *BSD software
Can you recommend more software that is secure by design? The blog author mentioned Postfix.
Even on the main images?
The problem is
rpm-ostree override remove
ing it makes it impossible to reinstall as a native package.Those we leave alone, they’re really only meant as a base for other images anyway.
Not being able to relayer it is a good thing in this case, you don’t want the browser to have any limits on when it can update.
If you need something other than the flatpak, I would recommend installing it in a Fedora distrobox and exporting it.
Browsers need usernamespaces to isolate Tabs from another. At least thats how Chromium does it, and I think Firefox does too.
Flatpak Chromium browsers are very experimental, Zypak is a thing and it sounds nice, spawning a seperate flatpak process instead. But its probably less secure than what is officially supported.
This is why there is no official Flatpak Chromium Browser, Vivaldi actively decided against because of that thing. The Chromium Flatpak does something better, but this was (at least some time ago) not done in other Flatpak Chromium Derivates.
Firefox is supposedly more compatible with the restrictions of Flatpak as it doesnt use user namespaces, but there also is no statement on how they do it, how it can be equally secure etc.
Browser can be best ran in Bubblejail, allowing user namespaces but the rest being blocked just as in Flatpak. The issue is simply that the bubblewrap in Flatpak uses a single seccomp filter, while just Browsers should be allowed to spawn user namespaces.
I am not sure about Distrobox, the Apps are spawned in a seperate user namespace but I suppose they can still use user namespaces anyways. But this is unnecessary overhead without any reason. One could isolate the Distrobox from the system, but portals dont cover that afaik.
So it stays a no. I think if the main image would not include Firefox, projects like Secureblue wouldnt need to actively remove Firefox so users could still layer it regularly. The problem is with having it included and downstream Distros removing it via an override.