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.

  • thegreekgeek
    link
    fedilink
    English
    arrow-up
    8
    ·
    10 months ago

    The Universal blue project checks some of these boxes I think. It’s a toolset for rolling your own immutable images based distros like Fedora Silverblue and Bazzite.

    • Pantherina@feddit.deOP
      link
      fedilink
      arrow-up
      1
      arrow-down
      1
      ·
      10 months ago

      Check out Secureblue, I am using that currently. Just firefox doesnt work, I hope that gets fixed by the Fedora Devs (and then it needs to either be not installed by ublue or not removed by secureblue, as installing a removed package doesnt work poorly)

      Apart from that at least the things I mentioned are all not ticket.

      • quarterlife@lemmy.sdf.org
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        10 months ago

        We (ublue) remove Firefox and install the flatpak because you want your browser to update when it needs to update, and not only when your OS image updates.

        • Pantherina@feddit.deOP
          link
          fedilink
          arrow-up
          1
          arrow-down
          1
          ·
          10 months ago

          Even on the main images?

          The problem is rpm-ostree override removeing it makes it impossible to reinstall as a native package.

          • quarterlife@lemmy.sdf.org
            link
            fedilink
            arrow-up
            2
            arrow-down
            1
            ·
            10 months ago

            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.

            • Pantherina@feddit.deOP
              link
              fedilink
              arrow-up
              1
              arrow-down
              1
              ·
              10 months ago

              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.