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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).