[refpolicy] Status and discussion about rbacsep

Christopher J. PeBenito cpebenito at tresys.com
Fri Aug 12 07:42:05 CDT 2011


On 08/11/11 03:03, HarryCiao wrote:
> Hi Chris,
> 
> These days I read through your discussions about rbacsep way back to
> 2008. At that time you'd pointed out a todo list for full rbac
> separation support:
> 
> 1. Kernel's recognition of role_transition rule for non process classes;
> 
> 2. Role attribute support as in below rbacsep constrain:
> 
> constrain { dir file ... } { getattr read write .... }   
>     r1 == r2
>     or r1 == system_r
>     or r2 == object_r
>     or r1 == rbac_subj_role_file_exempt
>     or r2 == rbac_obj_role_file_exempt
>     or t1 == rbac_subj_type_file_exempt
>     or t2 == rbac_obj_type_file_exempt;
> 
> 3. Add a new "role_change" rule and modify login/newrole program to
> change controlling terminal's role according to that of user;
> 
> 4. Add a new "role_member" rule for polyinstantiation support;
> 
> 5. genhomedircon updated for role;
> *6. Move the policy to initialize newcontext from security_compute_sid()
> in kernel up to refpolicy, by introducing new rules such as(suggested by
> Stephen, not directly related with rbacsep):
> 
> role_default {process socket ...} fromsource;
> type_default {process socket ...} fromsource;
> role_default {file dir ...} fromtarget;
> type_default {file dir ...} fromtarget;

I don't remember this one.

> Here are my comments and questions:
> 
> As for 1, it has been done since we have added the class support to the
> role_transition rule. Refpolicy could have whatever needed rules added
> to transition the role of files/dirs from object_r;
> 
> As for 2, it has been done too since we have added the role attribute
> support;
> 
> As for 3 & 4, it won't be difficult for us to add these two new rules,
> but I have not understand clear yet the influence and meanings of the
> role_change rule, could you explain it a bit more?

Well we've had role_change rules since the ancient times.  Its purpose
is to inform userspace apps how to relabel a user's terminal when they
change roles.

> Also it seems that you had branched refpolicy to provide the rbac sep
> constrain and collapse per-role templates such as xxx_sudo_t to
> sudo_t(where can I get it?) but further run into type_transition
> conflicts when sudo_t needs to transition back to user's domain:
> 
> type_transition sudo_t shell_exec_t:process auditadm_t;
> type_transition sudo_t shell_exec_t:process secadm_t;
> type_transition sudo_t shell_exec_t:process staff_t;
> type_transition sudo_t shell_exec_t:process sysadm_t;
> type_transition sudo_t shell_exec_t:process user_t;
> 
> You've mentioned since we can't make sudo application SELinux-aware due
> to their vast differences, we would have to fall back on the per-role
> template of xxx_sudo_t. (Actually this is the end of your rbacsep
> effort, right?)

Correct, thats where we stopped.

> Would it be possible to tackle such condition by introducing a new
> "type_transition_osid" rule? For example,
> 
> type_transition_osid    sudo_t  shell_exec_t : process;
> 
> And in security_compute_sid(), for AVTAB_TRANSITION rules we would
> search for type_transition_osid rules aside from type_transition rules
> for the process class. If a matching type_transition_osid rule is found,
> then newcontext->type would be set to the type from tsec->osid.
> 
> If it makes sense, then what else works may have been required aside
> from it and the above todo list for full rbacsep support?

We don't need to add anything special; we have the same problem with
ubacsep, and solved it by retaining the per-role domains, eg. user_su_t,
sysadm_sudo_t, etc.

When we restart, it don't think it will be nearly as much work, since
all of the collapsing was done for ubacsep.

-- 
Chris PeBenito
Tresys Technology, LLC
www.tresys.com | oss.tresys.com


More information about the refpolicy mailing list