|
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 |
698a4a |
current release is available from the download
|
|
Chris PeBenito |
698a4a |
page. The status page has more details on
|
|
Chris PeBenito |
f3791f |
what is included in the current release.
|
|
Chris PeBenito |
f3791f |
|
|
Chris PeBenito |
f3791f |
|
|
Chris PeBenito |
f3791f |
|
|
Chris PeBenito |
f3791f |
The project is always looking for policy developers interested in contributing.
|
|
Chris PeBenito |
f3791f |
See the getting started guide for
|
|
Chris PeBenito |
f3791f |
more information on writing Refpolicy modules.
|
|
Karl MacMillan |
a585f3 |
|
|
Karl MacMillan |
1c5008 |
|
|
Karl MacMillan |
a585f3 |
Project Goals
|
|
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 |
|
|
Chris PeBenito |
f3791f |
Strong Modularity: central to the design of the policy is
|
|
Chris PeBenito |
f3791f |
strict modularity. Access to resources are abstracted, and
|
|
Chris PeBenito |
f3791f |
implementation details are encapsulated in the module.
|
|
Chris PeBenito |
f3791f |
|
|
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 |
f3791f |
Documentation: the difficulty and complexity of creating
|
|
Chris PeBenito |
f3791f |
SELinux policies has become the number one barrier to the
|
|
Chris PeBenito |
f3791f |
adoption of SELinux. It also potentially reduces the security
|
|
Chris PeBenito |
f3791f |
of the policies: a policy that is too complex to easily
|
|
Chris PeBenito |
f3791f |
understand is difficult to make secure. Refpolicy will make
|
|
Chris PeBenito |
f3791f |
aggressive improvements in this area by including documentation
|
|
Chris PeBenito |
f3791f |
for modules and their interfaces as a critical part of the
|
|
Chris PeBenito |
f3791f |
infrastructure. See the documentation
|
|
Chris PeBenito |
f3791f |
page for more information.
|
|
Chris PeBenito |
f3791f |
|
|
Chris PeBenito |
f3791f |
Development Tool Support: In addition to documentation,
|
|
Chris PeBenito |
f3791f |
Refpolicy aims to make improvements in this area, making
|
|
Chris PeBenito |
f3791f |
policies easier to develop, understand, analyze, and verify by adding
|
|
Chris PeBenito |
f3791f |
interface call backtraces which can be used for debugging and
|
|
Chris PeBenito |
f3791f |
graphical development tools.
|
|
Chris PeBenito |
f3791f |
|
|
Chris PeBenito |
f3791f |
Forward Looking: Refpolicy aims to support a variety of
|
|
Chris PeBenito |
f3791f |
policy configurations and formats, including standard source
|
|
Chris PeBenito |
f3791f |
policies, MLS policies, and loadable policy modules
|
|
Chris PeBenito |
f3791f |
all from the same source tree. This is done through the addition
|
|
Chris PeBenito |
f3791f |
of infrastructure for automatically handling the differences
|
|
Chris PeBenito |
f3791f |
between source and loadable module based policies and the
|
|
Chris PeBenito |
f3791f |
additional MLS fields to all policy statements that include
|
|
Chris PeBenito |
f3791f |
contexts.
|
|
Chris PeBenito |
f3791f |
|
|
Chris PeBenito |
f3791f |
Configurability: configuration tools that allow the
|
|
Chris PeBenito |
f3791f |
policy developer to make important security decisions including
|
|
Chris PeBenito |
f3791f |
defining roles, configuring networking, and trading legacy
|
|
Chris PeBenito |
f3791f |
compatibility for increased security.
|
|
Chris PeBenito |
f3791f |
|
|
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 |
f3791f |
policies might be created, one that is for serving read-only
|
|
Chris PeBenito |
f3791f |
static content that is severely restricted, and another that is
|
|
Chris PeBenito |
c2ecf0 |
appropriate for dynamic content.
|
|
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 |
|