5.1 The SELinux Policy

     

General systems theory arose in the middle of the last century, as systems analysts discovered that systems of a variety of types share common characteristics. One such characteristic is that systems can often be understood at any of several levels, sometimes referred to as levels of abstraction . For example, scientists tell us that interactions among atoms and molecules are governed by the quantum mechanical properties of elementary particles. But much of chemistry can be understood without reference to these fundamental structures. Indeed, chemistry arose and prospered as a discipline before the discovery of quantum mechanics and elementary particles.

To understand SELinux, it's important that its internal mechanisms ”such as access vectors ”be understood, because these govern the security decisions SELinux makes. Yet because SELinux is highly configurable, the runtime behavior of an SELinux system can be viewed as effectively determined by the system's SELinux policy, which operates at a higher level of abstraction than low-level mechanisms such as access vectors.

The high flexibility of SELinux is due to the configurability of its policy. Hence the SELinux policy of any given system ”though likely to be more or less based on the SELinux sample policy distributed with the NSA's SELinux release ”is unlikely to exactly match the sample policy. Moreover, the SELinux sample policy is itself a living document. At the time of writing, work is underway to polish the SELinux implementation to be released as part of Fedora Core 2, and the policy is being updated regularly, even daily.

The configurability of policy and the high frequency of policy change complicate explication of the policy in two ways. First, they raise the question: what version of the policy is being explained? And second, they imply that any explanation is likely to be quickly outdated .

Fortunately, this analysis overstates the degree of difficulty. Over an extended period of time, the main features of the SELinux sample policy have remained relatively constant. And, as mentioned, most actual SELinux policies are based on the NSA's sample policy. So although policies vary and are subject to change, they remain more alike than different.

In this chapter, I explain a generic SELinux policy based on the SELinux policy associated with Fedora Core 2. The policy is hypothetical in the sense that it's not identical to any actual policy at any actual time. But that's not to say that it's irrelevant or even artificial. Instead, it's intended to be representative of a cross-section of actual SELinux policies and therefore serve as a baseline for understanding other, more highly customized or developed policies. You'll find the generic SELinux policy described in this chapter a useful point of reference in understanding the behavior of typical SELinux systems. However, please bear in mind that the policy of your own SELinux system is unlikely to match precisely the one described in this chapter.

More particularly, this chapter explains:

  • The two forms (source and binary) of an SELinux policy

  • The component files associated with a typical SELinux policy domain

  • The structure of the directory tree that contains the SELinux source policy and the contents of each component directory



SELinux. NSA's Open Source Security Enhanced Linux
Selinux: NSAs Open Source Security Enhanced Linux
ISBN: 0596007167
EAN: 2147483647
Year: 2003
Pages: 100
Authors: Bill McCarty

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net