Software: Apache/2.0.54 (Fedora). PHP/5.0.4 uname -a: Linux mina-info.me 2.6.17-1.2142_FC4smp #1 SMP Tue Jul 11 22:57:02 EDT 2006 i686 uid=48(apache) gid=48(apache) groups=48(apache) Safe-mode: OFF (not secure) /usr/share/setools/ drwxr-xr-x |
Viewing file: Select action/file-type: AN OVERVIEW OF DOMAIN TRANSITION ANALYSIS apol, version 2.1 August 31, 2005 selinux@tresys.com A key feature of Type Enforcement (TE) security is the ability to define domain types with which programs run, use that domain type to control access to objects (which are also typed), and strictly control the ability of a process to change its domain type. This last ability is known as "domain transition". Apol allows one to analyze an SELinux policy and understand the domain transitions allowed by the policy. As with all access in SELinux, the ability to transition from one domain to another is controlled by 'allow' rules in the policy. Below, we describe how the apol tool performs a domain transition analysis. THE THREE TYPES OF INTEREST FOR DOMAIN TRANSITIONS When discussing domain transition access, there are three different types we must consider: SOURCE TYPE: This is the domain type associated with a process that is trying to change (transition) its domain type to another type. TARGET TYPE: This is the domain type to which the source type is trying to transition. FILE TYPE (ENTRYPOINT TYPE): This is a type associated with an executable file object that allows the target type to be entered as part of an execve() system call. FORWARD VS. REVERSE DOMAIN TRANSITION ANALYSIS Apol allows you to perform both forward and reverse domain transition analysis. A forward analysis allows you to select a SOURCE type and determine all the TARGET types to which the source may transition. You may also select object classes, permissions, and object types to find transitions to domains that have specific privileges or that have access to a particular object type(s). A reverse analysis is the opposite; you select a TARGET type and determine all the SOURCE types that may transition to the target type. In each case, apol creates a tree structure to show the result. You can drill down the tree to follow any given transition path. CRITERIA FOR IDENTIFYING ALLOW DOMAIN TRANSITIONS In SELinux, there are three types of access (and hence at least three rules) that must be allowed by the policy if a domain transition is to occur. These three access types form the criteria used by apol to determine allowed transitions. Given an understanding of the three types of interest in a domain transition, the criteria for an allowed domain transition are as follows. (In the examples below, assume 'user_t' is the source type, 'passwd_t' is the target type, and 'passwd_exec_t' is the file entry point type). 1. There must be a rule that allows the SOURCE domain type 'transition' access for 'process' object class for the TARGET domain type. As an example, the rule: allow user_t passwd_t : process transition; meets this criterion by allowing the source type (user_t) 'process transition' permission to the target type (passwd_t). 2. There must be a rule that allows the SOURCE domain type 'execute' access to the FILE ENTRYPOINT type. As an example, the rule: allow user_t passwd_exec_t: file {read getattr execute}; meets the criterion by allowing the source type (user_t) 'execute' access to the file entrypoint type (passwd_exec_t). 3. There must be a rule that allows the TARGET domain type 'entrypoint' access to the FILE ENTRYPOINT type for file objects. As an example, the rule: allow passwd_t passwd_exec_t : file entrypoint; meets this criterion by allowing the target type (passwd_t) 'file entrypoint' access to the file entrypoint type (pass_exec_t). In the analysis results for a reverse domain transition analysis, apol will list all the types that meet the above three criteria. On the other hand, results for a forward domain transition analysis will be limited to types that meet the above three criteria and that have the specified privileges or access to a particular object type(s). See 'General Help' for the Forward DTA Advanced Search Options feature in apol. FILTERING DOMAIN TRANSITION RESULTS IN APOL The domain transition analysis interface in apol provides the user with the ability to further refine a domain transition query in order to find transitions to a specific domain and/or transitions to domains which are granted specific access to object types or classes. Filtering results types using regular expression is enabled for both forward and reverse domain transition queries, however, the access filters are only enabled for a forward domain transition query. To enable and use the access filters, the user needs to select the "Use access filters" checkbutton at which point, he can display the Access Filters dialog. This dialog presents listboxes for including object types in the access filter and also a textview where the user can specify particular object class access. The object class/permissions section is only enabled if an object type has been included. An access filter may be particulary useful to a user if he or she is searching for transitions to domains that have specific access to an object type and/or class. For example, one could determine whether the type user_t is allowed to transition to a domain that can write a file of type shadow_t. To run this query from apol, the user simply needs to specify the starting type as user_t, go to the Access Filters dialog, add shadow_t to the included object types listbox, select 'file' from the Object Classes listbox and make sure that 'write' permission has been included. |
:: Command execute :: | |
--[ c99shell v. 1.0 pre-release build #16 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0032 ]-- |