SELinux Symposium



Symposium Committees

Previous Meetings
2007 Symposium
2006 Symposium
2005 Symposium
2004 Meeting


Sponsorship opportunities

Contact Us


2006 SELinux Symposium Abstracts

SELinux Year in Review (invited talk)

Stephen Smalley, National Security Agency

During the past year, SELinux has experienced a rapid evolution in its capabilities and maturity. This talk provides an overview of the major advances and changes in SELinux since the prior symposium, and describes what to expect for SELinux development in the coming year.

Moving FLASK to BSD Systems (invited talk)

Chris Vance, SPARTA, Inc.

By porting the SELinux FLASK components from Linux to FreeBSD, and finally to Darwin, we have shown that by separating policy decision-making logic from the policy enforcement logic, the security of three very different operating systems may be improved by the same core technology. Much like the Linux Security Modules support, FreeBSD and Darwin have available security frameworks that permit pluggable mandatory security policies. Since the majority of FLASK components build and run on BSD systems with very little modifications, only the framework-specific enforcement layer required implementation. We were able to immediately constrain system behavior and focus on improving both the policy rule sets and the BSD frameworks themselves. In this talk, we compare the Linux and BSD security frameworks and describe efforts to support FLASK on the FreeBSD and Darwin operating systems.

Design and Implementation of the SELinux Policy Management Server

Karl MacMillan, Joshua Brindle, Frank Mayer, Dave Caplan, and Jason Tang Tresys Technology

Policy management is an important capability for effectively using and deploying SELinux. There are several challenges to managing the SELinux policy in a production environment, which include properly integrating package management with policy management. It is also important to address the lack of granular security controls for policy updates. In the Policy Management Server we have designed an access control mechanism for policy updates that provides fine-grained access using SELinux's own security enhancements. In this paper we present an overview of the Policy Management Server, including its goals, design, and implementation status.

Towards Automated Authorization Policy Enforcement

Trent Jaeger, Penn State University

Vinod Ganapathy, Somesh Jha University of Wisconsin, Madison

A popular architecture for authorization policy enforcement uses a reference monitor, with calls to the reference monitor (also called hooks) placed at appropriate locations in the source code of the system that needs to be secured. This architecture has been adopted by several enforcement frameworks, including Linux security modules (LSM), where hooks are placed in the Linux kernel. In current practice, reference monitor hooks are placed manually. This approach is tedious, and as prior work has shown in the context of LSM, is prone to security holes. We present a technique for automatic placement of authorization hooks. Our technique uses static program analysis to recover semantic information embedded in the code of the system to be secured (such as the Linux kernel), and in the code of the reference monitor, to determine the set of hooks that must guard each function in the system. We present a prototype tool that uses this technique and report preliminary results on using this tool with the LSM implementation of SELinux, and in creating a security-enhanced version of the X11 server.

SELinux and MLS: Putting the Pieces Together

Chad Hanson, Trusted Computer Solutions

Multi-Level Security (MLS) has been implemented on many different operating systems. We will discuss the reasons and motivations behind the improvements to the MLS model in SELinux that were accepted into the 2.6.12 Linux Kernel. An introduction to SELinux MLS representation, policy creation, and integration is provided to help further the adoption and use of this technology.

Extending SELinux to meet LSPP data import/export requirements

Janak Desai, George Wilson, IBM Corporation
Chad Sellers, Tresys Technology

Common Criteria certification of SELinux at Evaluation Assurance Level 4 against the Labeled Security Protection Profile (LSPP) and Role-Based Access Control Protection Profile (RBACPP) is intended to advance its acceptance and deployment in the federal sector. SELinux already provides a flexible security policy infrastructure upon which systems that conform to hierarchical Multi-level Security (MLS), as required by LSPP, and role-based access control security policies may be built. However, some RBACPP and LSPP requirements in the user data protection category and their effects on usability make support for features such as polyinstantiated directories, multi-context aware cron, and data import/export restrictions based on device security attributes desirable. This paper presents extensions to SELinux to satisfy some of the LSPP data import/export and RBACPP requirements for Common Criteria certification at EAL4, while maintaining a functional and usable system.

MCS - adding MLS features to the targeted policy

Russel Coker, Red Hat

It has become apparent that many people want some of the benefits of MLS but in a way that is easier to use than the full MLS implementation.

MCS (Multi-Category Security) is a change to policy that applies to both strict and targeted policies (it is in strict and targeted in rawhide). It uses the categories of MLS but makes no use of the sensitivity level field (all processes have sensitivity level s0). The initial design of MCS is based around the targeted policy so it has the same initial aims (minimizing the cost of implementation for end-users). However MCS is used in the strict policy as well and provides the same confidentiality benefits for strict as for targeted.

MCS operates in addition to the type enforcement model and is designed to be used primarily for protecting data confidentiality while type enforcement will be used for protecting system integrity. It is an optional feature which is always enabled but will not have an impact on anyone who doesn't choose to use it.

Reference Policy for Security Enhanced Linux

Christopher J. PeBenito, Frank Mayer, Karl MacMillan Tresys Technology

The Reference Policy project is an effort to restructure the NSA example policy for SELinux, which has evolved through many years of community involvement and is the basis for nearly all sample SELinux Policy in use today. The Reference Policy is rigorously structured using modularity, layering, encapsulation, and abstraction, making it simpler to maintain, modify, and use. The goal of this restructuring is to allow greater adaptation and adoption of SELinux while maintaining the knowledge gained through the years of policy evolution, while increasing our ability to validate the security properties of a given SELinux policy.

Dynamic Policy Enforcement in a Network Environment

Brandon Pollet, Matthew Butler, John Hale, University of Tulsa

The challenge of maintaining a secure and usable system in a hostile environment makes self-defending systems an attractive addition to network security. Using the conditional policy extensions in the Security Enhanced Linux (SELinux) policy language, it is now possible to dynamically adjust a SELinux system's security policy based on its environment. The Dynamic Policy Enforcement Agent (DPEA) utilizes the CLIPS expert system and the conditional policy construct to activate and deactivate portions of the SELinux policy based on peer DPEA alerts, SELinux audit logs, and system logs, as well as to alert other hosts on the network of attacks.

SELinux Protected Paths Revisited

Trent Jaeger, Penn State University

We revisit the notion of Internet-scale protected paths based on SELinux control of labeled IPSec security associations. Last year, we discussed the mechanism for integrating IPSec with SELinux security labels, but we did not consider the system goals for using such labels. Toward this end, we revisit early SELinux proposals for what is called a protected path. A protected path is a path that has the same security guarantees as if the two ends are directly connected and mutually authenticated. If a protected path can be constructed over the Internet in a reliable manner, then distributed applications can be as secure as two applications running on the same, isolated environment. A variety of challenges remain in building a protected path system, but interestingly, efforts are underway in most areas, with the notable exception of secure windowing systems. This talk will outline an approach to protected paths in the context of a distributed computing example, what work is underway toward achieving protected paths, and what is required of that work to compose protected paths with SELinux.

Experiences Implementing a Higher-Level Policy Language for SELinux

Chad Sellers, James Athey, Spencer Shimko, Frank Mayer, Karl MacMillan, and Art Wilson Tresys Technology

Expressing security architectures that meet required security goals for a system in SELinux policy language is quite difficult, particularly for those without a strong understanding of SELinux security mechanisms and object class per-missions, and their implications. However, SELinux policy language is an excellent base upon which to build a higher-level policy language that more directly expresses specific security architectures. We have developed one such language, CDS Framework, for implementing security policies focused on information flow applications as typically found in cross-domain solutions. This paper presents the components of this language and describes some of the issues that we faced in implementing the language and its tools.

SENG: An Enhanced Policy Language for SELinux

Paul Kuliniewicz, Purdue University

Most of the statements in the current SELinux policy language operate directly on features of the underlying access control model. Because the policy for a typical Linux system contains a large number of distinct types, a realistic policy will be large and unwieldy. Current practice is to manage this complexity through preprocessor macros, using them to encapsulate portions of the policy and allow for their reuse. However, such macros inhibit the use of tools to analyze the policy, as these macros must first undergo expansion. As a result, the policy being analyzed is not in the same form as the one originally written, complicating the task of using the analysis results to improve the policy.

This paper introduces SENG, an experimental alternative language for writing SELinux policies. SENG builds upon the existing policy language by adding abstractions with well-defined semantics, with the goal of eliminating the need for macros to write a maintainable policy. To facilitate testing and adoption, a compiler has been implemented to transform SENG policies into the existing policy language, allowing SENG to be used without requiring changes to the existing policy framework.

Guided Policy Generation for Application Authors

Brian T. Sniffen, David R. Harris, John D. Ramsdell, The MITRE Corporation

MITRE has developed Polgen, a tool for human-guided semi-automated policy generation. We initially designed Polgen for use by security administrators confronting unfamiliar programs and obliged to integrate them into existing policy. However, SE Linux adoption will come about when application authors can also at least bootstrap the policy generation process. Polgen works by processing traces of the dynamic behavior of a target program. By observing information flow patterns such as Pipeline, Interpreter, or Proxy in that behavior, Polgen creates new types when appropriate and generates policy based on the patterns it has detected. Because the dynamic behavior is insufficient to fully inform security policy, Polgen presents a wizard-style interface for human interaction. We call the interaction ``guided automatic policy generation.'' This paper highlights the needs for type generation support, Polgen's pattern recognition capability, and our future plans for human-guided automation. The primary challenges are the introduction of new types, and the use of the M4 macro language as the primary vehicle for abstraction.

Lopol: A Deductive Database Approach to Policy Analysis and Rewriting

Aleks Kissinger Dr. John Hale, University of Tulsa - Center for Information Security

This paper presents a method for deductive database-driven analysis of security policies on mandatory access control systems such as SELinux.

First, it discusses how directives in a policy can be normalized and encoded as logical relations. Next, the paper describes how to use these relations in conjunction with inference rules to perform a number of simple analyses. The techniques used to detect security characteristics within a policy can then be applied to automated policy rewriting, where those characteristics (i.e. security goals) are actually projected upon to the policy to generate a new one. The paper closes by discussing the use of a logical ruleset as a high-level language, allowing administrators to quickly tailor a large default policy (such as "strict", "targeted", or "refpolicy") to the specific needs of a system.

Attack-based Domain Transition Analysis

Susan Hinrichs, University of Illinois - Urbana-Champaign
Prasad Naldurg, Microsoft Research

SE Linux type enforcement policies are widely understood to be large and difficult for humans to understand. Several groups have created tool sets to aid SE Linux policy writers and maintainers in the task of working with SE Linux policies. We propose an attack-based model to look at the transitive domain transitions allowed in the policy. We have augmented Apol, a graph-based policy analysis tool, to implement global transitive domain translation analysis and more focused reduced transitive domain transition graphs between sets of suspect domains and sensitive domains.

Lessons Learned Developing Cross-Domain Solutions on SELinux

Karl MacMillan, Spencer Shimko, Chad Sellers, Frank Mayer, and Art Wilson Tresys Technology

Building computer systems that allow the controlled transfer of data between security domains, commonly called cross-domain solutions (CDS) or guards, presents many common and some unique security challenges. In this paper, we explore lessons learned from building several CDS systems on SELinux. We explore the desired security proper-ties of a CDS, define the role of the operating system in enforcing these security properties, and describe our experience using SELinux to fulfill the operating system role.

SELinux Case Studies

Case studies are an opportunity to present information about the use and application of SELinux and present lessons-learned, success, and areas of growth for SELinux. Information about deployed, production systems are of particular interest. These presentations will be brief (15 - 20 minutes) and no formal paper is required. Interested parties can submit case studies to Please include a title, brief description of the case study, and contact information for the presenter. Presenters will be notified of the acceptance by email and the final schedule will be placed on the website and posted at the conference.

©Copyright 2005-2006 SELinux Symposium, LLC
Privacy Statement