From: Daniel De Graaf <dgdegra@tycho.nsa.gov>
To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Cc: Konrad Rzeszutek Wilk <konrad@darnok.org>,
"xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
"Keir (Xen.org)" <keir@xen.org>
Subject: Re: [PATCH 8/8] xl.pod.1: improve documentation of FLASK commands
Date: Wed, 04 Jan 2012 10:03:12 -0500 [thread overview]
Message-ID: <4F046A30.6000009@tycho.nsa.gov> (raw)
In-Reply-To: <alpine.DEB.2.00.1201041036390.2970@kaball-desktop>
On 01/04/2012 05:47 AM, Stefano Stabellini wrote:
> On Thu, 15 Dec 2011, Daniel De Graaf wrote:
>> On 12/15/2011 03:56 PM, Konrad Rzeszutek Wilk wrote:
>>>> There is already an example policy file in tools/flask/policy/policy/modules/xen/xen.te
>>>> although it will likely require additional rules to be run in enforcing mode.
>>>> The policy is not built as part of the normal build process, but it can be
>>>> built by running "make -C tools/flask/policy". If using Fedora 16 (or systems
>>>> with a checkpolicy version >24) the Makefile will need to be adjusted to
>>>> produce policy version 24 which is the latest version supported by Xen.
>>>
>>> Is there a howto on how to use it for newbies? Or how to apply policies
>>> against a domain? Would it make sense to have that as part of the 'man
>>> xl' ?
>>>
>>
>> I just sent an updated example policy that demonstrates most of the features
>> that can be used without dom0 disaggregation. It has two main types for domU:
>>
>> domU_t is a domain that can communicate with any other domU_t
>> isolated_domU_t can only communicate with dom0
>>
>> There is also a resource type for device passthrough, configured for domU_t.
>> To label the PCI device 3:2.0 for passthrough, run:
>>
>> ./tools/flask/utils/flask-label-pci 0000:03:02.0 system_u:object_r:nic_dev_t
>>
>> I'm not sure this belongs in "man xl" except for a mention of how to set the
>> security label of a newly created domain. There is already a docs/misc/xsm-flask.txt
>> that explains a bit about the policy creation; this may need to be updated
>> to better explain how to use FLASK.
>
> It would be great to have a short introduction to flask in the xl man
> page. What do you think about the following?
>
>
> diff -r 50117a4d1a2c docs/man/xl.pod.1
> --- a/docs/man/xl.pod.1 Mon Jan 02 12:43:07 2012 +0000
> +++ b/docs/man/xl.pod.1 Wed Jan 04 10:46:47 2012 +0000
> @@ -997,6 +997,20 @@ Get information about how much freeable
>
> =head2 FLASK
>
> +B<FLASK> is a security framework that defines a mandatory access control policy
> +providing fine-grained controls over Xen domains, allowing the policy writer
> +to define what interactions between domains, devices, and the hypervisor are
> +permitted. Some example of what you can do using XSM/FLASK:
> + - Prevent two domains from communicating via event channels or grants
> + - Control which domains can use device passthrough (and which devices)
> + - Restrict or audit operations performed by privileged domains
> + - Prevent a privileged domain from arbitrarily mapping pages from other
> + domains.
> +
> +See the following document for more details:
> +
> +L<http://xenbits.xen.org/docs/unstable/misc/xsm-flask.txt>
> +
> =over 4
>
> =item B<getenforce>
>
>
>
> As you can see, I linked docs/misc/xsm-flask.txt from the xl man page,
> however xsm-flask.txt still references xend so it needs to be updated.
This is a good introduction; I have an update to docs/misc/xsm-flask.txt
that references xl and incorporates some of the changes in the example
policy (will post momentarily).
> Also it would be great to link the example policy too, but that one is
> not online because it is not under docs and it is not installed by
> default either. Maybe we need to move the example policy to docs? Or
> maybe it is best to install a copy of it to /etc/xen by default?
The example policy doesn't really belong in docs because it needs to be
compiled to be usable, and this depends on a number of other files (all
files under tools/flask/policy/policy, to be exact). Compiling and
installing FLASK policy during the normal build process (conditional on
FLASK_ENABLE to avoid adding SELinux build tools to build dependencies?)
would be the best solution. The policy must be installed to /boot, not
/etc/xen, because the initial policy load happens prior to starting dom0.
--
Daniel De Graaf
National Security Agency
next prev parent reply other threads:[~2012-01-04 15:03 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-13 20:38 [PATCH 0/8] New XSM hooks and updates Daniel De Graaf
2011-12-13 20:38 ` [PATCH 1/8] xsm/flask: Add missing unlock on error path Daniel De Graaf
2011-12-13 20:38 ` [PATCH 2/8] xsm/flask: report memory and IO ranges in audit messages Daniel De Graaf
2011-12-13 20:38 ` [PATCH 3/8] xsm: only log dummy override if not setting up dummy_xsm_ops Daniel De Graaf
2011-12-13 20:38 ` [PATCH 4/8] xsm: add remote_remap permission Daniel De Graaf
2011-12-13 20:38 ` [PATCH 5/8] xsm: Add missing access checks Daniel De Graaf
2011-12-13 20:38 ` [PATCH 6/8] xsm: fix up dummy ops Daniel De Graaf
2011-12-13 20:38 ` [PATCH 7/8] xsm: add checks on PCI configuration access Daniel De Graaf
2011-12-13 20:38 ` [PATCH 8/8] xl.pod.1: improve documentation of FLASK commands Daniel De Graaf
2011-12-14 10:41 ` Ian Campbell
2011-12-15 16:46 ` Stefano Stabellini
2011-12-15 19:10 ` Daniel De Graaf
2011-12-15 20:56 ` Konrad Rzeszutek Wilk
2011-12-15 21:45 ` [PATCH] flask/policy: Update example policy Daniel De Graaf
2011-12-20 18:20 ` Ian Jackson
2011-12-15 21:57 ` [PATCH 8/8] xl.pod.1: improve documentation of FLASK commands Daniel De Graaf
2012-01-04 10:47 ` Stefano Stabellini
2012-01-04 15:03 ` Daniel De Graaf [this message]
2012-01-04 15:05 ` [PATCH 1/2] docs: Update xsm-flask documentation Daniel De Graaf
2012-01-04 15:05 ` [PATCH 2/2] flask/policy: add missing manage_domain rules Daniel De Graaf
2012-01-10 16:05 ` [PATCH 1/2] docs: Update xsm-flask documentation Ian Jackson
2012-01-04 16:26 ` [PATCH 8/8] xl.pod.1: improve documentation of FLASK commands Ian Campbell
2012-01-04 16:49 ` Stefano Stabellini
2012-01-04 16:54 ` Ian Campbell
2012-01-04 18:28 ` Daniel De Graaf
2012-01-05 8:48 ` Ian Campbell
2012-01-05 11:19 ` Stefano Stabellini
2011-12-20 18:21 ` Ian Jackson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4F046A30.6000009@tycho.nsa.gov \
--to=dgdegra@tycho.nsa.gov \
--cc=keir@xen.org \
--cc=konrad@darnok.org \
--cc=stefano.stabellini@eu.citrix.com \
--cc=xen-devel@lists.xensource.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.