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

[Xen-devel] Re: [Xense-devel] [PATCH] ACM: adding C-support for policy translation and labeling support for domains




David Palmer <dwpalmer.xense@xxxxxxxxx> wrote on 09/01/2005 02:34:10 PM:

>
> Is it your experience that decision cache's aren't efficient?  


I must have expressed myself clumsily. Decision caches are extremely efficient as long as we use policies that don't change often, which is the goal on the hypervisor level.


> I thought the theory was that most access checks will be against the
> local cache in order to make calls to the security server
> infrequent.  This is accomplished by the ACM responding to each
> decision request with a list of related decisions.  As the cache is
> checked locally, it avoids the context switch and should perform
> well.  By adding a method for the ACM to signal each object manager
> when to clear the cache, we're still able to support changing the
> policy.  This could be provided by a standard static library and
> promoted as the accepted method for creating object managers and
> should be carefully optimized.

The sHype security architecture for Xen is designed so that you can choose. If you like to have "policy-unaware" domains then this is absolutely OK. In this case some trusted domains act simply as the long arm of Xen access control enforcement.

Additionally, you can only get decisions from the hypervisor that are based on what the hypervisor knows. For example, the hypervisor does not know about disk drives and other peripherals. You could submit the security reference of a device and the id of a domain and let the hypervisor ACM make the decision but it seems more natural that those domains that manage the peripheral make the decision (they are trusted and part of the security architecture anyway and they might have additional information on which the decision can be based). The security policy that controls sharing is (intentionally) extremely simple to implement.

> By suggesting that domains should make "informed decisions" rather
> than "blindly call the ACM", are you suggesting that you'll be
> making the Xen security policy that everyone else will abide by?  


The point I hoped to make in my last mail is quite the opposite of what I hear you saying: By exposing all the policy information (types) to appropriately privileged domains, we actually empower policy-aware domains to make their own access control decisions. Such decisions can be simply based on the received hypervisor security types, but they can also be based on additional security information available to these domains (for example: the history of users of a disk partition).

When we thought about it, we felt that the "decision call" approach (that you are suggesting) is opposing the ACM policies onto upper layers (e.g. OS) and limiting them in participation in decisions.

Thanks
Reiner

> On 8/31/05, Reiner Sailer <sailer@xxxxxxxxxx> wrote:
>
> Hi Dave,
>
> we are introducing the get_ssid ACM command to allow  ACM policy-
> specific decisions
> and enforcement in  policy-aware domains.
>
> One can call back into the hypervisor for policy decisions having
> the benefit you are
> naming (transparency). However doing this for every IP packet, for
> example, seems not efficient.
> Consequently, you'll end up establishing decision cashes in the
> domains. Then you have the same
> problem as before (change in policy) without the performance
> benefit. If transparency
> (policy hiding) is the most important factor, then such a solution
> has merit. Another benefit of
> getting the whole ssid is that you can re-use this information for
> other decisions since you get
> all the types of a domain, not just a yes/no decision.
>
> Nothing speaks against having an optional "acm_decision" call that
> can be used
> by domains that don't  want to make informed decisions but blindly
> call the ACM
> (hypervisor call++ overhead) each time they make a decisions. Such a
> call might prove useful
> where decisions are made very infrequently. For example, a virtual
> block device domain owning a
> hard drive and allowing other domains to mount certain logical
> partitions might just ask the ACM for
> a decision  when deciding about accepting a mount-request from a
> domain to a logical partition
> (right now, the virtual block device domain is dom0 but this could
> be refined in the future when other
> domains can 'own' peripherals).
>
> Regards
> Reiner
>
> xense-devel-bounces@xxxxxxxxxxxxxxxxxxx wrote on 08/31/2005 07:11:44 PM:

>
>
> > I'm not clear why the getssid() needs to be introduced.  Isn't the
> > problem better solved by introducing new object managers?  With the
> > getssid(), the code must know about the specific policy, making the
> > policy less amenable to adjustment as problems are discovered.  
> > Wouldn't it be better for the domains to provide object managers?  
> > This would allow the STE policy to make statements about those new
> > objects.  The code can be policy neutral by strictly following the
> > decisions of the security server.  Wouldn't this make it easier to
> > revoke policies and update them without having to change the code and patch?
> >
> > Dave
> >

>
> > On 8/18/05, Reiner Sailer <sailer@xxxxxxxxxx> wrote:
> >
> > This patch:
> >
> > * adds a C-based security policy translation tool to Xen
> > (secpol_xml2bin) and removes the current Java
> > security policy translator (Java dependencies).  The C-based tool
> > integrates into the Xen source tree build
> > and install (using gnome libxml2 for XML parsing). See install.txt.
> >
> > * introduces security labels and related tools. Users can now use
> > semantic-rich label names to put security-tags
> > on domains. See example.txt, policy.txt.
> >
> > * moves the security configuration (currently
> > ACM_USE_SECURITY_POLICY) from xen/Rules.mk
> > into a separate top-level Security.mk file  (it is needed by the
> > tools/security and xen/acm).
> >
> > Both xen/acm and tools/security are built during the Xen build
> > process only if ACM_USE_SECURITY_POLICY
> > is not ACM_NULL_POLICY (which is the default setting).
> >
> > Comments welcome!
> >
> > Note: We are currently preparing a patch that introduces a new ACM
> > command (getssid) to retrieve the security types
> > of a running domain. This command is enables domain-internal
> > enforcement functions based on the ACM security policy.
> >
> > Thanks
> > Reiner
> >
> > Signed-off-by Reiner Sailer <sailer@xxxxxxxxxx>
> > Signed-off by Stefan Berger <stefanb@xxxxxxxxxx>
> > Signed-off by Ray Valdez <rvaldez@xxxxxxxxxx>
> >
> >
> > _______________________________________________
> > Xense-devel mailing list
> > Xense-devel@xxxxxxxxxxxxxxxxxxx
> > http://lists.xensource.com/xense-devel
> >
> >
>
> > _______________________________________________
> > Xense-devel mailing list
> > Xense-devel@xxxxxxxxxxxxxxxxxxx
> > http://lists.xensource.com/xense-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®.