public inbox for gentoo-hardened@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-hardened] SELinux ebuilds and patches
@ 2011-01-08 13:45 Sven Vermeulen
  2011-01-09  5:10 ` Chris Richards
  0 siblings, 1 reply; 2+ messages in thread
From: Sven Vermeulen @ 2011-01-08 13:45 UTC (permalink / raw
  To: gentoo-hardened

[-- Attachment #1: Type: text/plain, Size: 2933 bytes --]


Hi Chris & hardened development,

The ebuilds within the hardened-dev overlay for the SELinux policies are
currently fully based upon the reference policy as released by Tresys. The
changes made beyond the reference policy are currently added as patches in the
files/ folder. However, as things progress, the number of patches is increasing
and will soon hit the 20k limit that Gentoo (and the QA team) sets for files
inside the files/ folder.

Of course, the main idea is that we feed back those changes towards the
reference policy development itself (which is gradually done) but this will take
time and will not remove this situation.

A few solutions are possible:

- Put the patches as separate downloads (SRC_URI in the ebuild), in which case
  we will need to combine the patches in "less frequent" releases. This is
  entirely plausible and used by other ebuilds as well. It also allows for some
  package stability (the patchbundle in SRC_URI is the master, subpatching is
  still possible through the files/ folder)

- Create intermediate releases based on our own repository of the policies and
  modules (like Fedora and other distributions do). This makes development
  easier, but maintenance becomes more difficult: you'll need to perform quality
  testing before we can create ebuilds (or use snapshots and from time to time
  stabilize a snapshot) and staying close with the reference policy itself might
  be more challenging (although I've heard great things of git being able to do
  such mergers, but have no experience with that myself)

- Instead of patching existing modules, we can also create modules that
  introduce the "patches" themselves. After all, most (if not all) patches are
  about allowing more things or declaring more types/domains rather than
  dismissing privileges that have been granted.

The biggest patch user remains the selinux-base-policy ebuild as this needs to
be patched every time. Until now, I have not seen any other ebuild which might
get too many patches.

Why selinux-base-policy? Well, this one needs to be patched every time

- an interface is added to some domain (regardless if the user is using that
  domain or not) as only the base policy manages the include files in
  /usr/share/selinux/strict/include (or targeted/include).
- an additional module is added as this means that the regular roles and domains
  (user_t, staff_t and sysadm_t + affiliated roles) need to be 'enhanced' with
  support for these modules (new module for gorg -> gorg_role interface needs to
  be defined and used by the various users)

I don't know what you guys think? Chris, you especially ;-) My personal
preference goes to the patches themselves so that we do not drift away from the
reference policy and are forced to keep track of it. Also, when a new release is
made, we can look at the individual patches to see which still need to be
included and which not.

Wkr,
	Sven Vermeulen

[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [gentoo-hardened] SELinux ebuilds and patches
  2011-01-08 13:45 [gentoo-hardened] SELinux ebuilds and patches Sven Vermeulen
@ 2011-01-09  5:10 ` Chris Richards
  0 siblings, 0 replies; 2+ messages in thread
From: Chris Richards @ 2011-01-09  5:10 UTC (permalink / raw
  To: gentoo-hardened

On 01/08/2011 07:45 AM, Sven Vermeulen wrote:
> Hi Chris&  hardened development,
>
> The ebuilds within the hardened-dev overlay for the SELinux policies are
> currently fully based upon the reference policy as released by Tresys. The
> changes made beyond the reference policy are currently added as patches in the
> files/ folder. However, as things progress, the number of patches is increasing
> and will soon hit the 20k limit that Gentoo (and the QA team) sets for files
> inside the files/ folder.
>
> Of course, the main idea is that we feed back those changes towards the
> reference policy development itself (which is gradually done) but this will take
> time and will not remove this situation.
>
> A few solutions are possible:
>
> - Put the patches as separate downloads (SRC_URI in the ebuild), in which case
>    we will need to combine the patches in "less frequent" releases. This is
>    entirely plausible and used by other ebuilds as well. It also allows for some
>    package stability (the patchbundle in SRC_URI is the master, subpatching is
>    still possible through the files/ folder)
>
I personally favor this approach.  It allows us to stay close to the 
refpolicy, and should also help in making it easier to track when 
something in refpolicy obviates the need for a particular patch.
> - Create intermediate releases based on our own repository of the policies and
>    modules (like Fedora and other distributions do). This makes development
>    easier, but maintenance becomes more difficult: you'll need to perform quality
>    testing before we can create ebuilds (or use snapshots and from time to time
>    stabilize a snapshot) and staying close with the reference policy itself might
>    be more challenging (although I've heard great things of git being able to do
>    such mergers, but have no experience with that myself)
>
I do this in my private git repo.  merging with git can sometimes be a 
bit challenging, but then I'm not well versed in git either.  The 
concern about quality testing before we create ebuilds is, I think, a 
wash.  We need to do that regardless of our approach.  After all, a bad 
patch is still a pretty serious problem.  IMO, this option is best kept 
for private repos.
> - Instead of patching existing modules, we can also create modules that
>    introduce the "patches" themselves. After all, most (if not all) patches are
>    about allowing more things or declaring more types/domains rather than
>    dismissing privileges that have been granted.
>
This is neat and sexy, but can potentially create a situation where we 
have loads of packages coming and going as we change patch sets, plus 
the user not being able to have a reasonably good idea of what packages 
are pulled in as deps.  Not to mention the whole issue of changing 
deps.  And if we make a single package called selinux-patches or 
something similar, then we are really back to the first option.  Or am I 
misunderstanding?
> The biggest patch user remains the selinux-base-policy ebuild as this needs to
> be patched every time. Until now, I have not seen any other ebuild which might
> get too many patches.
>
> Why selinux-base-policy? Well, this one needs to be patched every time
>
> - an interface is added to some domain (regardless if the user is using that
>    domain or not) as only the base policy manages the include files in
>    /usr/share/selinux/strict/include (or targeted/include).
> - an additional module is added as this means that the regular roles and domains
>    (user_t, staff_t and sysadm_t + affiliated roles) need to be 'enhanced' with
>    support for these modules (new module for gorg ->  gorg_role interface needs to
>    be defined and used by the various users)
>
Every selinux-* package has an in-built dependency on 
selinux-base-policy anway, so I don't really see this as a problem.
> I don't know what you guys think? Chris, you especially ;-) My personal
> preference goes to the patches themselves so that we do not drift away from the
> reference policy and are forced to keep track of it. Also, when a new release is
> made, we can look at the individual patches to see which still need to be
> included and which not.
>
> Wkr,
> 	Sven Vermeulen




^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2011-01-09  6:03 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-01-08 13:45 [gentoo-hardened] SELinux ebuilds and patches Sven Vermeulen
2011-01-09  5:10 ` Chris Richards

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox