* CIL: migrate_store issues with MLS policy @ 2015-05-21 14:42 Miroslav Grepl 2015-05-21 15:36 ` Steve Lawrence 0 siblings, 1 reply; 4+ messages in thread From: Miroslav Grepl @ 2015-05-21 14:42 UTC (permalink / raw) To: SELinux We try to get working Fedora SELinux policy builds with migrated store. But we get some issues with MLS policy. We needed to add the following fixes to make it working. https://github.com/mgrepl/selinux-policy/commit/daad0252400284027e8a5c300addf6226f74e312 and https://github.com/mgrepl/selinux-policy/commit/113792a78ac27e8a05b4e3b550d7bc40c3c937db Please check my commit messages. Regards, Miroslav -- Miroslav Grepl Software Engineering, SELinux Solutions Red Hat, Inc. ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: CIL: migrate_store issues with MLS policy 2015-05-21 14:42 CIL: migrate_store issues with MLS policy Miroslav Grepl @ 2015-05-21 15:36 ` Steve Lawrence 2015-05-21 15:51 ` Miroslav Grepl 0 siblings, 1 reply; 4+ messages in thread From: Steve Lawrence @ 2015-05-21 15:36 UTC (permalink / raw) To: Miroslav Grepl, SELinux On 05/21/2015 10:42 AM, Miroslav Grepl wrote: > We try to get working Fedora SELinux policy builds with migrated store. > But we get some issues with MLS policy. We needed to add the following > fixes to make it working. > > https://github.com/mgrepl/selinux-policy/commit/daad0252400284027e8a5c300addf6226f74e312 Looks like a bug with the pp2cil converter. Looking into this. > and > > https://github.com/mgrepl/selinux-policy/commit/113792a78ac27e8a05b4e3b550d7bc40c3c937db > This works for staff_r, user_r, and sysadm_r because of this hack: https://github.com/SELinuxProject/selinux/blob/master/libsepol/src/module_to_cil.c#L2023-L2045 The issue here is that secadm and auditadm are always defined in their respective modules, but conditionally defined in base if enable_mls is true. Because of this, we can't really use the hack mentioned above, because auditadm_r and secamd_r aren't always in base, which that hack relies on. It's possible we could do the reverse of that for these roles, and only declare secadm_r and auditadm_r when NOT converting a base module. But I this could potentially break things if enable_mls == true and auditadm/secadm modules aren't installed, but something still relies on the roles. Not immediately clear if that's the case. Will have to look into this... > Please check my commit messages. > > Regards, > Miroslav > ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: CIL: migrate_store issues with MLS policy 2015-05-21 15:36 ` Steve Lawrence @ 2015-05-21 15:51 ` Miroslav Grepl 2015-05-22 15:41 ` Steve Lawrence 0 siblings, 1 reply; 4+ messages in thread From: Miroslav Grepl @ 2015-05-21 15:51 UTC (permalink / raw) To: Steve Lawrence, SELinux On 05/21/2015 05:36 PM, Steve Lawrence wrote: > On 05/21/2015 10:42 AM, Miroslav Grepl wrote: >> We try to get working Fedora SELinux policy builds with migrated store. >> But we get some issues with MLS policy. We needed to add the following >> fixes to make it working. >> >> https://github.com/mgrepl/selinux-policy/commit/daad0252400284027e8a5c300addf6226f74e312 > > Looks like a bug with the pp2cil converter. Looking into this. > >> and >> >> https://github.com/mgrepl/selinux-policy/commit/113792a78ac27e8a05b4e3b550d7bc40c3c937db >> > > This works for staff_r, user_r, and sysadm_r because of this hack: > > https://github.com/SELinuxProject/selinux/blob/master/libsepol/src/module_to_cil.c#L2023-L2045 Thanks, I overlooked it. > > The issue here is that secadm and auditadm are always defined in their > respective modules, but conditionally defined in base if enable_mls is > true. Because of this, we can't really use the hack mentioned above, > because auditadm_r and secamd_r aren't always in base, which that hack > relies on. > > It's possible we could do the reverse of that for these roles, and only > declare secadm_r and auditadm_r when NOT converting a base module. But I > this could potentially break things if enable_mls == true and > auditadm/secadm modules aren't installed, but something still relies on > the roles. Not immediately clear if that's the case. Will have to look > into this... > Ok. The point is if we add another SELinux user we will get the same issue also for targeted policy. > >> Please check my commit messages. >> >> Regards, >> Miroslav >> > -- Miroslav Grepl Software Engineering, SELinux Solutions Red Hat, Inc. ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: CIL: migrate_store issues with MLS policy 2015-05-21 15:51 ` Miroslav Grepl @ 2015-05-22 15:41 ` Steve Lawrence 0 siblings, 0 replies; 4+ messages in thread From: Steve Lawrence @ 2015-05-22 15:41 UTC (permalink / raw) To: Miroslav Grepl, SELinux On 05/21/2015 11:51 AM, Miroslav Grepl wrote: > On 05/21/2015 05:36 PM, Steve Lawrence wrote: >> On 05/21/2015 10:42 AM, Miroslav Grepl wrote: >>> We try to get working Fedora SELinux policy builds with migrated store. >>> But we get some issues with MLS policy. We needed to add the following >>> fixes to make it working. >>> >>> https://github.com/mgrepl/selinux-policy/commit/daad0252400284027e8a5c300addf6226f74e312 >> >> Looks like a bug with the pp2cil converter. Looking into this. >> Found this problem, pretty small fix. There is a check we perform for roles that we are missing for role attributes. So we were incorrectly associating roleattributes with types that aren't in scope and could be disabled by an optional. >>> and >>> >>> https://github.com/mgrepl/selinux-policy/commit/113792a78ac27e8a05b4e3b550d7bc40c3c937db >>> >> >> This works for staff_r, user_r, and sysadm_r because of this hack: >> >> https://github.com/SELinuxProject/selinux/blob/master/libsepol/src/module_to_cil.c#L2023-L2045 > > Thanks, I overlooked it. >> >> The issue here is that secadm and auditadm are always defined in their >> respective modules, but conditionally defined in base if enable_mls is >> true. Because of this, we can't really use the hack mentioned above, >> because auditadm_r and secamd_r aren't always in base, which that hack >> relies on. >> >> It's possible we could do the reverse of that for these roles, and only >> declare secadm_r and auditadm_r when NOT converting a base module. But I >> this could potentially break things if enable_mls == true and >> auditadm/secadm modules aren't installed, but something still relies on >> the roles. Not immediately clear if that's the case. Will have to look >> into this... >> > Ok. The point is if we add another SELinux user we will get the same > issue also for targeted policy. The issue is that these two roles (secadm_r and auditadm_r) could be optionally defined and used in the base module (dependent on enable_mls). So they could potentially be defined in two places, which CIL doesn't allow. As I see it there are a few options to how we could change CIL generation to fix this problem: 1) Generate the auditadm/secadm roles for the base module, only when they are defined in base. Ignore declarations in modules. The problem with this is that if enable_mls is false (e.g. targeted policy), then installing the auditadm.pp module will fail, because the auditamd_r role isn't defined anywhere. So this won't work very well. 2) Generate the auditadm/secadm roles for non-base modules, only when defined in a non-base module. Ignore declarations in base. This solves the above problem. However, if enable_mls is true, there would then be rules using auditadm_r in the base module. So removing the auditadm.pp module would fail because nothing defines the role. This doesn't really work either. 3) Generate the auditadm/secadm roles in base, always. Ignore declarations in base and non-base modules. This solves the above problems. It allows one to install or remove the auditadm module and things will still work as expected. The difference is that it would be impossible to remove the roles, meaning the roles and roleallow rules in base will still exist for these roles. However, this isn't a big deal, because the roles will not be associated with any types, so they wouldn't be able to do anything. So I think this is the best option and will solve the problem with out any real functional changes. As to your comment, this issue will only occur if you have roles conditionally defined in base and also defined in a module (right now, that is just auditadm_r and secadm_r). As long as you don't do that, you can add new roles without a problem. I will submit patches for this change and the above shortly. - Steve ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2015-05-22 15:41 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-05-21 14:42 CIL: migrate_store issues with MLS policy Miroslav Grepl 2015-05-21 15:36 ` Steve Lawrence 2015-05-21 15:51 ` Miroslav Grepl 2015-05-22 15:41 ` Steve Lawrence
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.