flask: implement xsm_set_system_active

This commit implements full support for starting the idle domain privileged by
introducing a new flask label xenboot_t which the idle domain is labeled with
at creation.  It then provides the implementation for the XSM hook
xsm_set_system_active to relabel the idle domain to the existing xen_t flask
label.

In the reference flask policy a new macro, xen_build_domain(target), is
introduced for creating policies for dom0less/hyperlaunch allowing the
hypervisor to create and assign the necessary resources for domain
construction.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
Reviewed-by: Jason Andryuk <jandryuk@gmail.com>
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
Tested-by: Luca Fancellu <luca.fancellu@arm.com>
Reviewed-by: Rahul Singh <rahul.singh@arm.com>
Tested-by: Rahul Singh <rahul.singh@arm.com>
This commit is contained in:
Daniel P. Smith authored and Jan Beulich committed 2022-07-04 14:47:00 +02:00
1 parent 4b540e8c9f
commit a0bb0960e5
5 files changed
+18 -1

No files matched your search

+7
View File
@@ -62,6 +62,13 @@ define(`create_domain_common', `
setparam altp2mhvm altp2mhvm_op dm };
')
# xen_build_domain(target)
# Allow a domain to be created at boot by the hypervisor
define(`xen_build_domain', `
allow xenboot_t $1:domain create;
allow xenboot_t $1_channel:event create;
')
# create_domain(priv, target)
# Allow a domain to be created directly
define(`create_domain', `
+1
View File
@@ -24,6 +24,7 @@ attribute mls_priv;
################################################################################
# The hypervisor itself
type xenboot_t, xen_type, mls_priv;
type xen_t, xen_type, mls_priv;
# Domain 0
+1
View File
@@ -2,6 +2,7 @@
# objects created before the policy is loaded or for objects that do not have a
# label defined in some other manner.
sid xenboot gen_context(system_u:system_r:xenboot_t,s0)
sid xen gen_context(system_u:system_r:xen_t,s0)
sid dom0 gen_context(system_u:system_r:dom0_t,s0)
sid domxen gen_context(system_u:system_r:domxen_t,s0)
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.