New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consider supporting Xen's Virtual Machine Introspection / DRAKVUF #2417

Open
andrewdavidwong opened this Issue Nov 5, 2016 · 2 comments

Comments

Projects
None yet
3 participants
@andrewdavidwong
Member

andrewdavidwong commented Nov 5, 2016

On 2016-11-04 02:35, Zrubi wrote:

Intrusion/virus detection inside the affected VM not really makes sense.

However newer Xen versions has a nice feature:
https://wiki.xenproject.org/wiki/Virtual_Machine_Introspection

And already a real project using this feature:
https://drakvuf.com/

That feature wound really make sense and would fit in Qubes philosophy
pretty nicely.

@rootkovska

This comment has been minimized.

Show comment
Hide comment
@rootkovska

rootkovska Nov 5, 2016

Member

There are lots of problems that VM introspection presents to security of a system like Qubes OS. Architecture-wise.

The biggest one is that even if we allow read-only access to memory and contexts of the VMs, we should still assume the Introspection VM would be able to establish a communication (covert) channel with any of the VMs in the system, including the least trusted on. This means the read-only Introspection VM is hard (or even impossible) to realize currently, especially on Xen. Now, because we need to assume that the (complex) logic inside such an Introspection VM will be exploitable, this means we're negating VM isolation in the system.

It's worth thinking if the above problem could be satisfactory solved by introducing many Introspection VMs and enforcing that each of them has access to only one AppVM?

Member

rootkovska commented Nov 5, 2016

There are lots of problems that VM introspection presents to security of a system like Qubes OS. Architecture-wise.

The biggest one is that even if we allow read-only access to memory and contexts of the VMs, we should still assume the Introspection VM would be able to establish a communication (covert) channel with any of the VMs in the system, including the least trusted on. This means the read-only Introspection VM is hard (or even impossible) to realize currently, especially on Xen. Now, because we need to assume that the (complex) logic inside such an Introspection VM will be exploitable, this means we're negating VM isolation in the system.

It's worth thinking if the above problem could be satisfactory solved by introducing many Introspection VMs and enforcing that each of them has access to only one AppVM?

@tklengyel

This comment has been minimized.

Show comment
Hide comment
@tklengyel

tklengyel Dec 1, 2016

Indeed, granting an introspection VM blank VMI access to all domains would by definition negate hard isolation between them. Also, as you say, with XSM it is very much possible to restrict the introspection access to specific domain(s) and also to run the VMI logic from dedicated VM(s). I already require users of DRAKVUF to deploy Xen with a custom XSM policy like that (see tklengyel/xen@bfdf206).

Indeed, granting an introspection VM blank VMI access to all domains would by definition negate hard isolation between them. Also, as you say, with XSM it is very much possible to restrict the introspection access to specific domain(s) and also to run the VMI logic from dedicated VM(s). I already require users of DRAKVUF to deploy Xen with a custom XSM policy like that (see tklengyel/xen@bfdf206).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment