Qube Manager: What is its attack surface?

Hi Qubes Community,

As a hobby project, I would like to re-design the Qube Manager in Qt Quick and make it more flashy.

The reasons for this are:
  • Qube Manager is frequently used by me (and probably most other Qubes OS users).
  • Qube Manager looks a bit clunky in my opinion.
  • Qube Manager’s codebase seems not to be exposed to any DomUs and thus such a project seems to be a good starting point for me to contribute something to Qubes OS.

This topic is meant to clarify the attack surface exposed by the Qube Manager to DomUs. In other words: To what degree is Qube Manager’s codebase security-relevant?

Why this is relevant to me:

The answer to this question determines my choice of programming language for the project. I consider both C++ and Rust. While C++ seems to be the natural choice for the logic in Qt Quick programs, has an easier integration and I already know C++, using Rust would provide for better security if Qube Manager has relevant attack surface.

Cheers!

1 Like

Please add DNS/ICMP disable in the firewall tab qube settings.

So: ambitious! But: this is going to be very difficult to do in not-Python, because there are no bindings for C++/Rust for the Admin API calls, so there’s also a lot of work in making those.

Plus, what do you consider clunky? I’m just not sure if changing the widget library will make it less clunky, I think it is a design issue, not library issue :slight_smile:

And to the main question: well, dom0 is isolated, so I think that there is not much attack surface in qube manager by design.

4 Likes

Thank you for your informed reply. I will be looking into PyQt6/QML then.

It is my wish to realize my vision of the Qube Manager and Qt Quick appears to be a better fit for that than Widgets.

Regarding the term “clunky”: I do not want to sound like talking from a superior position and, due to that, will not further elaborate on it.

maybe start with a mockup of what you plan to do, it would be easier and faster to collect feedback from users

2 Likes

PyQt6/QML is going to be much easier to work with, based on the existing libraries/tools. I think security-wise there is not much difference whether you work with memory-safe language here or not, because of the dom0 isolation (manager can run things in VMs, but not the other way round).