|
Karl MacMillan |
65a27e |
Project Overview
|
|
Karl MacMillan |
65a27e |
|
|
Chris PeBenito |
c2ecf0 |
The SELinux Reference Policy project (refpolicy) is creating a complete SELinux
|
|
Chris PeBenito |
c2ecf0 |
policy as an alternative to the existing strict and targeted policies available
|
|
Chris PeBenito |
c2ecf0 |
from http://selinux.sf.net. Once complete,
|
|
Chris PeBenito |
c2ecf0 |
this policy will be able to be used as the system policy for a variety of
|
|
Chris PeBenito |
c2ecf0 |
systems and used as the basis for creating other policies. Refpolicy is based on
|
|
Chris PeBenito |
c2ecf0 |
the current strict and targeted policies, but aims to accomplish many additional
|
|
Chris PeBenito |
c2ecf0 |
goals.
|
|
Karl MacMillan |
9f945b |
|
|
Karl MacMillan |
a585f3 |
|
|
Karl MacMillan |
a585f3 |
|
|
Chris PeBenito |
c2ecf0 |
Refpolicy is under active development, with support and full time development
|
|
Chris PeBenito |
c2ecf0 |
staff from Tresys Technology. The
|
|
Chris PeBenito |
c2ecf0 |
first release is available from the download
|
|
Chris PeBenito |
c2ecf0 |
page. This release is far from complete and is not usable as a drop in
|
|
Chris PeBenito |
c2ecf0 |
replacement for the existing policies. It is for interested policy developers
|
|
Chris PeBenito |
c2ecf0 |
and community members to examine and comment upon. The
|
|
Chris PeBenito |
c2ecf0 |
status page has more details on what is
|
|
Chris PeBenito |
c2ecf0 |
included in the current release. This project is just getting started and we are
|
|
Chris PeBenito |
c2ecf0 |
looking for policy developers interested in contributing.
|
|
Karl MacMillan |
a585f3 |
|
|
Karl MacMillan |
1c5008 |
|
|
Karl MacMillan |
a585f3 |
Project Goals
|
|
Karl MacMillan |
a585f3 |
Security
|
|
Chris PeBenito |
c2ecf0 |
Security is the reason for existence for SELinux policies and must,
|
|
Chris PeBenito |
c2ecf0 |
therefore, always be the first priority. The common view of security as a binary
|
|
Chris PeBenito |
c2ecf0 |
state (secure or not secure) is not a sufficient goal for developing an SELinux
|
|
Chris PeBenito |
c2ecf0 |
policy. In reality, different systems have different requirements and purposes
|
|
Chris PeBenito |
c2ecf0 |
and corresponding differences in the meaning of secure. What is a fundamental
|
|
Chris PeBenito |
c2ecf0 |
security flaw on one system might be the acceptable, or even the primary
|
|
Chris PeBenito |
c2ecf0 |
functionality, of another. The challenge for a system policies like the current
|
|
Chris PeBenito |
c2ecf0 |
strict and targeted policy or refpolicy is to support as many of these differring
|
|
Chris PeBenito |
c2ecf0 |
security goals as is practical. To accomplish this refpolicy will provide:
|
|
Karl MacMillan |
a585f3 |
|
|
Karl MacMillan |
a585f3 |
|
|
Karl MacMillan |
a585f3 |
|
|
Chris PeBenito |
c2ecf0 |
Security Goals: clearly stated security goals will for each
|
|
Chris PeBenito |
c2ecf0 |
component of the policy. This will allow policy developers to
|
|
Chris PeBenito |
c2ecf0 |
determine if a given component meets their security needs.
|
|
Chris PeBenito |
c2ecf0 |
|
|
Chris PeBenito |
c2ecf0 |
Flexible Base Policy: a base policy that protects the basic
|
|
Chris PeBenito |
c2ecf0 |
operating system and serves as a foundation to the rest of the
|
|
Chris PeBenito |
c2ecf0 |
policy. This base policy should be able to support a variety of
|
|
Chris PeBenito |
c2ecf0 |
application policies with differing security goals.
|
|
Chris PeBenito |
c2ecf0 |
|
|
Chris PeBenito |
c2ecf0 |
Application Policy Variations: application policy variations
|
|
Chris PeBenito |
c2ecf0 |
that make different security tradeoffs. For example, two Apache
|
|
Chris PeBenito |
c2ecf0 |
policies might be created. One that is for serving read-only,
|
|
Chris PeBenito |
c2ecf0 |
static content that is severely restricted and another that is
|
|
Chris PeBenito |
c2ecf0 |
appropriate for dynamic content.
|
|
Chris PeBenito |
c2ecf0 |
|
|
Chris PeBenito |
c2ecf0 |
Configuration Tools: configuration tools that allow the
|
|
Chris PeBenito |
c2ecf0 |
policy developer to make important security decisions including
|
|
Chris PeBenito |
c2ecf0 |
defining roles, configuring networking, and trading legacy
|
|
Chris PeBenito |
c2ecf0 |
compatibility for increased security.
|
|
Chris PeBenito |
c2ecf0 |
|
|
Chris PeBenito |
c2ecf0 |
Multi-Level Security: MLS will be supported out-of-the-box
|
|
Chris PeBenito |
c2ecf0 |
without requiring destructive changes to the policy. It will be
|
|
Chris PeBenito |
c2ecf0 |
possible to compile and MLS and non-MLS policy from the same
|
|
Chris PeBenito |
c2ecf0 |
policy files by switching a configuration option.
|
|
Chris PeBenito |
c2ecf0 |
|
|
Karl MacMillan |
a585f3 |
|
|
Karl MacMillan |
a585f3 |
|
|
Karl MacMillan |
a585f3 |
Usability and Documentation
|
|
Karl MacMillan |
1c5008 |
|
|
Chris PeBenito |
c2ecf0 |
The difficulty and complexity of creating SELinux policies has become the number
|
|
Chris PeBenito |
c2ecf0 |
one barrier to the adoption of SELinux. It also potentially reduces the security
|
|
Chris PeBenito |
c2ecf0 |
of the policies: a policy that is too complex to easily understand is difficult
|
|
Chris PeBenito |
c2ecf0 |
to make secure. Refpolicy aims to make aggressive improvements in this area,
|
|
Chris PeBenito |
c2ecf0 |
making policies easier to develop, understand, and analyze. This will be
|
|
Chris PeBenito |
c2ecf0 |
addressed through improved structuring and organization, the addition of
|
|
Chris PeBenito |
c2ecf0 |
modularity and abstraction, and documentation. See
|
|
Chris PeBenito |
c2ecf0 |
getting started and
|
|
Chris PeBenito |
c2ecf0 |
documentation for more information.
|
|
Karl MacMillan |
1c5008 |
|
|
Karl MacMillan |
1c5008 |
Flexibility and Configuration
|
|
Karl MacMillan |
1c5008 |
|
|
Chris PeBenito |
c2ecf0 |
Refpolicy aims to support a variety of policy configurations and formats,
|
|
Chris PeBenito |
c2ecf0 |
including standard source policies, MLS policies, and
|
|
Chris PeBenito |
c2ecf0 |
loadable policy modules
|
|
Chris PeBenito |
c2ecf0 |
all from the same source tree. This is done through the addition of
|
|
Chris PeBenito |
c2ecf0 |
infrastructure for automatically handling the differences between source and
|
|
Chris PeBenito |
c2ecf0 |
loadable module based policies and the additional MLS fields to all policy
|
|
Chris PeBenito |
c2ecf0 |
statements that include contexts.
|
|
Karl MacMillan |
1c5008 |
|
|
Karl MacMillan |
a585f3 |
|