[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] dom0 vs non-dom0 differentiation inside Xen hypervisor



Hi Peter,

I think you'll find that all security-sensitive hypercalls contain a test of IS_PRIV(current->domain), which is #defined in xen/include/ xen/sched.h. Only privileged domains are able to carry out operations such as creating a domain, or accessing the memory of another domain. In practice, dom0 is the only privileged domain (and, hence, it is the only domain with its d->is_privileged bit set). However, it is conceivable that another domain could be granted privileges, and so we do not insist on the privileged domain being dom0.

Hope this helps.

Regards,

Derek Murray.

On 2 Sep 2007, at 08:12, Peter Teoh wrote:

In some parts of IA64 I can see that domain==dom0 checking is done, but in all x86 - I have yet to find a proper checking that the hypercalls comes from a dom0 domain instead of any other domain.

Theoretically, this means that any domain (PV or HVM) can always modify its own kernel binary and then make a direct hypercall (via int 0x82 or SYSENTER) into the hypervisor, executing domain controller commands like create domain etc.

Is this possible? Access control should be done from the hypervisor side, so any existing dom0 checking (CONFIG_XEN_PRIVILEGED_GUEST compilation option - done from the dom0 side) seems like useless, because another domU can always modify its own kernel binaries to achieve all the features what CONF_XEN_PRIVILEGED_GUEST restrict.

Am I right?

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.