mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
flask/policy: Add boolean example
This shows an example boolean (prot_doms_locked) which can be set at runtime to prevent dom0 from mapping memory of domains of type prot_domU_t. Signed-off-by: Daniel De Graaf <dgdegra@tycho.nsa.gov> Committed-by: Keir Fraser <keir@xen.org>
This commit is contained in:
1 parent
9e68bb1b66
commit
21149fb130
2 files changed
+11
-2
No files matched your search
@@ -55,10 +55,11 @@ kernel; it is normally placed either just above the dom0 kernel or at the end.
|
||||
Once dom0 is running, the policy can be reloaded using "xl loadpolicy".
|
||||
|
||||
The example policy included with Xen demonstrates most of the features of FLASK
|
||||
that can be used without dom0 disaggregation. It has two main types for domUs:
|
||||
that can be used without dom0 disaggregation. The main types for domUs are:
|
||||
|
||||
- domU_t is a domain that can communicate with any other domU_t
|
||||
- isolated_domU_t can only communicate with dom0
|
||||
- prot_domU_t is a domain type whose creation can be disabled with a boolean
|
||||
|
||||
One disadvantage of using type enforcement to enforce isolation is that a new
|
||||
type is needed for each group of domains. In addition, it is not possible to
|
||||
|
||||
@@ -73,7 +73,7 @@ allow dom0_t domio_t:mmu { map_read map_write };
|
||||
|
||||
domain_self_comms(dom0_t)
|
||||
|
||||
auditallow dom0_t security_t:security { load_policy setenforce };
|
||||
auditallow dom0_t security_t:security { load_policy setenforce setbool };
|
||||
|
||||
###############################################################################
|
||||
#
|
||||
@@ -92,6 +92,14 @@ create_domain(dom0_t, isolated_domU_t)
|
||||
manage_domain(dom0_t, isolated_domU_t)
|
||||
domain_comms(dom0_t, isolated_domU_t)
|
||||
|
||||
gen_bool(prot_doms_locked, false)
|
||||
declare_domain(prot_domU_t)
|
||||
if (!prot_doms_locked) {
|
||||
create_domain(dom0_t, prot_domU_t)
|
||||
}
|
||||
domain_comms(dom0_t, prot_domU_t)
|
||||
domain_comms(domU_t, prot_domU_t)
|
||||
|
||||
###############################################################################
|
||||
#
|
||||
# Device delegation
|
||||
|
||||