Hi
Here is the log from the meeting we did have on 2011-07-13 20:00UTC

/Magnus (Zorry)
[22:17:46] <Zorry> 1.0 Hardened use flag
[22:18:11] <blueness> shall i start?
[22:18:15] <Zorry> do it
[22:18:37] <blueness> okay the issue of what the meaning of the "hardened" use 
flag came up
[22:18:56] <blueness> in the tree, the use flag is 90% meaning "hardened 
toolchain"
[22:19:06] <blueness> but there are places where it means "hardened kernel"
[22:19:19] <blueness> this ambiguity causes problem, so here's a solution
[22:19:30] <blueness> 1. the use flag means *only* hardened toolchain
[22:19:52] <blueness> 2. choosing hardened-sources over gentoo-sources means 
you've got a hardened kernel
[22:20:09] <blueness> 3. the profiles must cover both issues of the hardened 
toolchain and hardened kernel
[22:20:42] <blueness> 4. for packages, like syslog-ng and 
virtual/linux-sources, you either need to use a local flag, or no flag 
whichever is appropariate
[22:20:58] <blueness> eg for syslog-ng you need some flag that says you are 
using a hardened kernel
[22:21:10] <blueness> for virtual/linux-sources, you don't need any flag at all
[22:21:27] <blueness> although both use the "hardened" flag even though they 
have nothing to do with toolchain
[22:21:53] <blueness> the reason for this distinction is that you can have a 
vanilla toolchain with a pax hardened kernel
[22:22:38] <blueness> so, my plan would be to approach the maintainers of those 
packages and/or email gentoo-dev@ to alert them to our decision today about the 
meaning of the flag
[22:22:45] <blueness> and try to stay consistant in the tree
[22:22:49] <blueness> comments?
[22:23:12] <SwifT> for syslog, it's manly logrotate and default configuration, 
not?
[22:23:13] <gengor> so
[22:23:23] <blueness> hi gengor
[22:23:33] <Zorry> SwifT:  the config
[22:23:38] <blueness> SwifT, it has to do with modifications to syslog-ng.conf
[22:23:39] <gengor> the pie and hardened use flags were created and originally 
pertain to toolchain purposes only and not kernel.
[22:24:19] <gengor> firefox was the first to have problems with pax mprotect, 
and since no truly purposeful flag was available, we abused the hardened USE 
flag (as it would in fact represent at least the majority of the userbase)
[22:24:19] <blueness> right and that seems to be how it is mostly used, so we 
should just stamp out alternative uses
[22:24:26] <gengor> now more and more packages are having similar problems
[22:24:28] <gengor> so
[22:24:29] <idl0r> so we need at least one more flag
[22:24:40] <gengor> that leaves people who want to run just a hardened kernel 
or just a hardened toolchain
[22:24:48] <gengor> having to flip the flag on or off per-package
[22:24:50] <gengor> which is lame
[22:25:00] <gengor> so maybe there are better options
[22:25:04] <gengor> but at bare minimum
[22:25:31] <gengor> we should probably make a new USE flag like 
hardened_kernel, pax, pax_mprotect or something.
[22:25:39] <gengor> and we enable it by default in our profiles
[22:25:40] <blueness> do we ask people to use an alternative flag for 
situations like syslog-ng?
[22:25:47] <blueness> k
[22:25:52] <gengor> because we encourage people to use both the hardened 
toolchain and kernel
[22:25:53] <gengor> but
[22:26:03] <gengor> for those souls who want to run a hardened kernel on gentoo 
toolchain
[22:26:07] <gengor> they can now just enable this flag globally
[22:26:21] <gengor> and expect syslog-ng, firefox or whatever package has 
problems with hardened kernel next to "do the right thing"
[22:26:33] <gengor> or for those who want to run hardened toolchain w/o kernel
[22:26:38] <SwifT> but the next question then is when you consider a kernel 
hardened...
[22:26:39] <gengor> they just -flag globally
[22:26:43] <gengor> and they can set it and forget it
[22:27:01] <gengor> and not worry about setting stuff in package.use for each 
individual package or whatever package pops up next
[22:27:07] <SwifT> grsec (USE=grsec), pax (USE=pax), selinux (USE=selinux) ?
[22:27:25] <blueness> SwifT, i know, but the issue is really pax
[22:27:33] <gengor> SwifT: right.. so hence why I was sorta thinking we should 
maybe get a bit specific with the USE flag name rather than hardened_kernel
[22:27:35] <blueness> because pax is the only one that interacts with userland
[22:27:40] <gengor> like pax_mprotect or something
[22:27:58] <gengor> I'm all for better/even more fine grained solutions
[22:28:00] <idl0r> i'd tend to pax instead of pax_*
[22:28:17] <blueness> gengor, i agree with the name and for the reason of 
specificity, but i don't htink we need one for grsec or selinux ... at least 
not yet
[22:28:30] <blueness> so leave the door open to them in the future by choosing 
a specific name now
[22:28:33] <gengor> but if we have to not overcomplicate it (ex. w/ what makes 
up a hardened kernel, which you are right, is debatable) for the sake of 
solving the majority sake.
[22:29:27] <gengor> my 2c.  that's up to all of you to decide :)
[22:29:44] <blueness> okay shall i draft an email to gentoo-dev and propose 
this flag and give our rational, let's see where it goes?
[22:29:57] <Zorry> +1
[22:30:03] <blueness> also explain that hardened is for toolchain only
[22:30:27] <idl0r> e.g. for the pax eclass function we'd just need "pax? ( 
chpax )", it can change more than just mprotect
[22:30:50] <blueness> idl0r, true, there may be some cases where you need to 
turn off randmmap
[22:30:56] <blueness> i would go with just pax
[22:31:05] <Zorry> +1
[22:31:10] <quantumsummers|a> please just describe them well :)
[22:31:13] <gengor> current situation is: imagine you run hardened toolchain 
but not kernel, and one package after breaks w/ pax feature x.  each time this 
happens you have to a) identify the problem b) search around/fix it.
[22:31:22] <idl0r> so people with a hardened kernel but without hardened 
profile just enable pax and the eclass function will work properly
[22:31:28] <gengor> blueness: might want to make it something like pax_kernel 
or something
[22:31:39] <gengor> ("pax" seems to be a popular term/name)
[22:31:55] <blueness> gengor, yeah isn't it also an archive tool?
[22:31:57] <gengor> pax conference, k-pax, others
[22:32:11] -*- blueness thinks of the PAX ROMANA
[22:32:36] <quantumsummers|a> nice
[22:32:40] <onox> anyone ever heard of R_386_GOTOFF?
[22:32:40] <SwifT> yes, gentoo uses USE flags for roman history
[22:32:48] <quantumsummers|a> e tu blueness?
[22:32:48] <blueness> hehe
[22:32:55] <blueness> :)
[22:32:59] <Zorry> onox: later we have meeting
[22:33:14] <gengor> don't get me wrong, it still sucks to have to do this via 
USE flags.
[22:33:16] <blueness> okay i'll draft something and bounce it off Zorry and 
whoever else is here tomorrow
[22:33:31] <blueness> gengor, use flag bloat
[22:33:34] <gengor> the best solution is to patch the software to work standard 
& with whatever pax feature it is running afoul of.
[22:33:41] <gengor> that's traditionally how we fix these issues.
[22:33:50] <gengor> but I know sometimes that's difficult
[22:34:26] <gengor> blueness: yeah, and still tying a userland package to a 
particular kernel, etc.
[22:35:10] <blueness> okay, i don't have much more with one this issue, and i 
have a plan forward, so next agenda item?
[22:35:29] <Zorry> yep
[22:35:31] <blueness> s/one//
[22:35:37] <Zorry> 2.0 toolchain
[22:36:07] <gengor> oh and for the record I hate the idea of doing it based on 
what kernel *sources* are installed
[22:36:40] <gengor> (ie. checking on any specific provider of 
virtual/linux-source)
[22:37:01] <gengor> checking on the existence I mean
[22:37:08] <gengor> sorry, that is all.
[22:37:41] <Zorry> haven't done that mutch for the upstream patch for gcc
[22:37:47] <Zorry> gengor: np
[22:38:14] <Zorry> don't have mutch to say
[22:38:19] <Zorry> so any one
[22:38:43] <blueness> glibc-2.14 is coming and gcc-4.6/4.7 any news or concerns 
about them wrt hardneed?
[22:39:19] <Zorry> blueness: glibc-2.14 havent sen anything there
[22:39:53] <Zorry> and gcc-4.6 looks good
[22:39:58] <blueness> toolchain has a tracker on it, bug #370409
[22:40:02] <willikins> blueness: https://bugs.gentoo.org/370409 "[TRACKER] 
Packages failing to build with sys-libs/glibc-2.14"; Gentoo Linux, Ebuilds; 
CONF; flameeyes:toolchain
[22:40:14] <blueness> but a lot of things are broken
[22:40:14] <Zorry> and gcc-4.7 is still on stage1
[22:40:25] <blueness> yeah so there is still some time
[22:40:31] <Zorry> yes but not hardened things
[22:40:42] <Flameeyes> let's just say that glibc-2.14 is crap, shall we?
[22:40:51] <blueness> lol okay
[22:40:55] <Zorry> :)
[22:41:09] <blueness> every time a nge glibc comes out they change all the 
header structures
[22:41:18] <Flameeyes> blueness: I wish it was just that!
[22:41:21] <blueness> s/nge/new
[22:41:26] <Flameeyes> did you read my posts about the rpc stuff?
[22:41:27] <blueness> ah its worse
[22:41:35] <blueness> no, i heard they dropped it
[22:41:40] <SwifT> tl;dr ;p
[22:41:53] <Flameeyes> SwifT: coming from a doc guy it is sad :(
[22:42:03] <Flameeyes> blueness: 
http://blog.flameeyes.eu/2011/06/11/are-you-kidding-me-or-why-we-ll-wait-glibc-2-14-for-a-while
[22:42:04] <SwifT> was just kidding
[22:42:27] <Flameeyes> short version, glibc 2.14 dropped rpc support, and yp.. 
libtirpc was supposed to be used as a replacement for the rpc code but..
[22:42:35] <Flameeyes> a) it needed yp which was dropped as well, as I just said
[22:42:51] <Flameeyes> b) it still doesn't work with glibc-2.14 as it 
references symbols that are no longer available
[22:43:00] <Flameeyes> so the replacement is ... failing to work
[22:43:37] <blueness> k
[22:43:49] <blueness> i won't bother testing hardened + glibc-2.14 then
[22:44:03] <blueness> looks like there are still many other non-hardened issues 
to be worked out first
[22:44:12] <Zorry> yep
[22:45:13] <blueness> next?
[22:45:19] <Zorry> do any one else have some thing to say?
[22:45:31] <Zorry> k
[22:45:35] <Zorry> 3.0 Kernel
[22:45:43] <Zorry> blueness: ^^
[22:45:48] <gengor> 2.0 switch to eglibc.
[22:46:06] <gengor> :p
[22:46:28] <blueness> 1) stabilization of 2.6.39 is on hold because of a 
problem with parallel builds and a new gcc pax plugin
[22:47:05] <blueness> hopefully pipacs will see what's up with that, its a 
false circular dependency which fails when yo build with -jX where X > 1
[22:47:42] <blueness> 2) there were a few new options added by grsec team, like 
the kernel brute force and kernel stack leak options
[22:48:24] <blueness> these are all new and i think dangerous options which i 
have not forced on for any of the gentoo predefined hardenings, eg SERVER or 
WORKSTATION or VIRTUALIZATION
[22:48:45] <idl0r> can you briefly describe the new pax plugin plz? :D 1-2 
sentences would be enough :P
[22:49:06] <blueness> i tested them and i have had mixed results, and Zorry 
says the stack leak causes lockup
[22:49:29] <blueness> idl0r, i haven't looked into what it does, but its a gcc 
plugin for 4.5 and above, i only tried to figure out the build system
[22:49:34] <Zorry> yes it do 
[22:50:28] <blueness> idl0r, i'm not even sure gentoo needs it because we get 
all the elf mangling we need for pax from patch 63 of our binutils package
[22:50:44] <blueness> so i'll read that code carefully after the meeting
[22:51:03] <idl0r> ok, thx :)
[22:52:18] -*- blueness is impatient and is reading it now
[22:52:28] <blueness> "gcc plugin to help implement various PaX features"
[22:54:08] <blueness> idl0r, it looks like a stub for future development, 
currently it just returns track the lowest stack pointer in some address space
[22:54:19] <blueness> s/returns/
[22:56:07] <blueness> sorry guys, let's move on, i don't want to extend the 
meeting unnecessarily
[22:56:23] <blueness> i'll try to work with pipacs to move ahead on 2.6.39
[22:57:04] <Zorry> k
[22:57:12] <Zorry> next ?
[22:57:56] <blueness> yes
[22:58:00] <Zorry> 3.0 Selinux  SwifT blueness
[22:58:12] <SwifT> k
[22:58:31] <SwifT> base policy -r18 is in the tree now (~arch) which includes 
openrc, syslog and psotgres fixes (in the policy)
[22:58:50] <SwifT> there are also a few package specific policies updated, like 
mozilla and nfs, but nothing major there
[22:59:12] <SwifT> i'm currently working on the policies for puppet (with the 
help of prometheanfire) and nginx, and haveged is also on the queue
[22:59:28] <SwifT> in the near future, i'll be doing the first tests with MCS 
(already have a few users asking for it)
[22:59:51] <SwifT> for the selinux packages (non-policy), I'm currently testing 
the latest userapp version
[23:00:07] <SwifT> it includes a patch from redhat for the vulnerability that 
was reported a few days ago
[23:00:25] -*- prometheanfire will be the guinea pig
[23:00:25] <SwifT> currently, we're not vulnerable, but when we enable MCS and 
want to introduce sandbox, we might be, so having the patch around is good
[23:01:02] <SwifT> i'm also checking if i can enable python3 support for the 
packages, but that's with mixed results
[23:01:17] <SwifT> might need to push that work immediately to upstream and 
hope they have better luck
[23:01:24] -*- SwifT isn't that good in that stuff :/
[23:01:41] <SwifT> vixie-cron is still not stabilized, I'll ping the cron herd 
again to see what's holding it up
[23:01:49] <blueness> SwifT, what sorts of problems are you hitting with 
python2 - python3 move?
[23:01:55] <SwifT> the stabilization of vixie-cron is needed to finalize our 
stabilization of the policies
[23:02:11] <SwifT> blueness: strings, bytes and unicode being used cross each 
other
[23:02:42] <blueness> SwifT, that's the usual kinds of problems i've seen, but 
i think there's stuff out there to fix it automatically
[23:02:46] <blueness> did you try?
[23:02:47] <SwifT> problem is that swig includes a few fixes around that, but 
these require that the code itself (c-code) is also altered (additional malloc 
and such are needed)
[23:03:01] <SwifT> blueness: yes, the 2to3 stuff... made it worse sadly (for 
libselinux-)
[23:03:44] <blueness> i can't say because only played with it on toy examples, 
nothing serious
[23:03:50] <SwifT> that's about it for selinux for me currently (apart from 
profiles, but that's for the profiles discussion I gather)
[23:03:59] <SwifT> we're never serious
[23:04:02] <SwifT> ;)
[23:05:08] <SwifT> oh yeah, blueness has been quite active in pushing the stuff 
from hardened-dev to the portage tree; thanks for that
[23:05:28] <blueness> yeah i've just been following your lead
[23:05:32] <SwifT> i'll send a mail with the bugs that can be closed :)
[23:05:36] <blueness> we need to get  you commit!
[23:06:07] <blueness> oh right, i did see a few i thought could be closed
[23:06:25] <SwifT> any others on selinux? feature requests? ;)
[23:06:34] <SwifT> (not that i don't already have a huge list)
[23:07:00] <blueness> SwifT, low on priority but there is that setroubleshoot 
that i put on the hardened-dev
[23:07:18] <SwifT> yeah, it pulled in too many graphical dependencies here to 
give it a first try :p
[23:07:19] <blueness> i tried to get it to work, but it requires some rpm 
module --- its python based
[23:07:41] <blueness> i'm not sure what we want to do with it, i used to use it 
in my selinux days
[23:07:53] <SwifT> never seen it before tbh
[23:08:06] <blueness> in fedora
[23:08:20] <blueness> well low priority
[23:08:27] <SwifT> i would let it in the overlay for now; I do not remember 
anyone explicitly asking for it and at least we have something to start from 
then
[23:08:41] -*- SwifT can work efficiently with his avc.log and vim
[23:08:47] <blueness> it was there in a bug report ... old bug report
[23:10:12] <blueness> next?
[23:10:24] <Zorry> yep
[23:10:30] <Zorry> 4.0 profiles
[23:10:58] <blueness> no major changes to the hardened profiles
[23:11:19] <blueness> there is a problem with a corner case, ppc64 with 32-bit 
userland
[23:11:21] <Zorry> we have added paxctl to package list
[23:11:28] <blueness> oh yeah!
[23:11:31] <blueness> thanks
[23:11:35] <Zorry> np :)
[23:11:56] <SwifT> i think, and blueness with me iirc, that we might want to 
introduce the new selinux profiles towards the public more (get more people to 
test them) before stabilization. Mail to gentoo-hardened, forum & blog 
requests, ...
[23:12:08] <blueness> anyhow HalcyOn is helping me with that corner case
[23:12:20] <blueness> right i was going to mention that
[23:12:29] <SwifT> ah sorry
[23:12:33] <blueness> no no problem
[23:13:01] <blueness> with the selinux profiles, i cleaned them up a bit
[23:13:21] <SwifT> but generally, the new profiles are positively received. I 
even had a user that did exactly the same thing a while back for him personally 
and was glad to see he could switch to an official profile again
[23:13:31] <blueness> SwifT, said we no longer need the pre 2.20xxx policies so 
i got ride of some of the masking for those
[23:14:06] <blueness> oh good to hear
[23:14:21] <Zorry> :)
[23:14:33] <blueness> all in all the selinux profiles are a lot cleaner and 
easier to work with
[23:15:05] <blueness> so as SwifT said, i'd like to ask people to start testing 
the new feature/selinux and eventually mark them stable
[23:15:19] <Zorry> +1
[23:15:36] <blueness> deprecation of the old ones is far into the future
[23:15:56] <blueness> i don't know what the policy is for marking profiles 
"stable" vs "dev" but i'll find out
[23:16:05] <prometheanfire> I;m going to start rolling out selinux to other 
hosts once the puppet fix is in mainline
[23:16:15] <blueness> nice
[23:16:24] <prometheanfire> so that will test some other software
[23:16:28] <SwifT> one question I do want to ask though is how to deal with 
updates on a profile. For instance, for MCS support, I'll most likely introduce 
a USE flag that I want to use.mask initially (since it's too experimental to 
start with)
[23:16:56] <blueness> SwifT, you just do it
[23:17:04] <blueness> you edit and commit
[23:17:16] <SwifT> I guess such fixes in the selinux profiles are easy and 
without (any) impact, but still... don't want to make a problem like with that 
USE="hardened" and eclass stuff recently :)
[23:17:34] -*- blueness wipes egg of his face
[23:17:45] <Zorry> :)
[23:17:51] <SwifT> hehe
[23:17:54] <blueness> SwifT, you can break things with the profiles, but the 
eclasses are more critical
[23:18:35] <blueness> the biggest thing to watch out for with hte profiles is 
changing the order of inheritance in the parent files
[23:18:57] <blueness> but masking/unmasking a flag, adding/removing a package 
is pretty safe
[23:19:07] <blueness> at least on the leaves
[23:19:28] <blueness> don't mess with base or arch profiles without discussing 
it
[23:19:59] <SwifT> certainly
[23:20:37] <blueness> well not exactly, i'll show you how selinux packages get 
masked and unmasked in base and then feature/selinux afterwards
[23:20:46] <blueness> but you may know that arleady
[23:21:00] <SwifT> yeah
[23:21:11] <SwifT> suckers don't support sec-policy/*
[23:21:19] <blueness> haha
[23:21:20] <SwifT> but I'm digressing ;)
[23:21:33] <blueness> okay i think we're done :P
[23:22:27] <Zorry> any one else?
[23:22:57] <Zorry> 5.0 docs
[23:23:23] <SwifT> me first?
[23:23:28] <Zorry> do it
[23:23:47] <SwifT> okay, for SELinux i've been starting to write module 
information, which is specific user information for particular SELinux policies 
(domains)
[23:24:02] <SwifT> I currently have such documentation for apache, bind, ldap 
and portage and am working on the information for ssh
[23:24:23] <SwifT> the module information informs the user about the SELinux 
booleans in use, how he might want to label files differently, etc.
[23:24:44] <SwifT> for instance, the portage one also talks on how to put 
portage tree on NFS (eh prometheanfire ?)
[23:25:08] <SwifT> if the ssh one is finished, I'll see if I can get klondike 
or so to push them to the cvs repo
[23:25:32] <prometheanfire> SwifT: I have access also methinks
[23:25:34] <SwifT> next to the module docuemntation, the SELinux handbook has 
seen a few changes as well, but all minor and all user command information
[23:25:51] <Zorry> SwifT: can push it to the cvs
[23:25:57] <SwifT> prometheanfire: cvs repo? nah, I mean gentoo's cvs repo 
where the proj drives are located
[23:26:07] <prometheanfire> oh, thought you meant docs
[23:26:08] <SwifT> well, i'll prod someone then ;)
[23:26:38] <SwifT> the other documentation that isn't pushed to cvs yet hasn't 
seen any updates, so I believe they are stable enough to be pushed as well
[23:26:46] <SwifT> that includes the selinux-development & selinux-policy 
documents
[23:26:59] <Zorry> k
[23:27:12] <SwifT> that's all I have to say on selinux docs now
[23:27:30] <Zorry> SwifT: ping me when the is done i fill push it on cvs
[23:27:37] <SwifT> Zorry: k, will do
[23:28:28] <prometheanfire> Ok, as far as virt docs are concerned, it seems 
like xen support for dom0 may be coming
[23:28:34] <prometheanfire> I'm going to be testing it tonight
[23:28:51] <Zorry> blueness: we should add some stuff about the (new use flag) 
when it is done
[23:29:01] <Zorry> prometheanfire: :)
[23:29:17] <prometheanfire> I'm also starting to have more time to do stuff now 
that I'm getting settled into the new job.location
[23:29:46] <prometheanfire> not much else to say otherwise, other then to 
expect me to be back a bit more
[23:29:55] <Zorry> nice
[23:30:26] <Zorry> some else have some thing ?
[23:30:29] <prometheanfire> can't do coding much, but I can at least test
[23:30:34] <prometheanfire> that's all for me
[23:30:56] <SwifT> yes, prometheanfire is helping well with testing and feeding 
information
[23:31:00] <Anarchy> What you having a meeting?
[23:31:03] <SwifT> and he's reactive :)
[23:31:13] <Zorry> Anarchy: yes
[23:31:43] <Zorry> okay next then
[23:31:49] <prometheanfire> not proactive :P
[23:32:41] <Zorry> 7.0 bugs
[23:32:53] <Zorry> any bugs to talk about ?
[23:33:31] <blueness> not really anything serious
[23:33:42] <Zorry> okay
[23:34:00] <blueness> upstream fixed one kernel bug in vanilla kernel that i 
submitted
[23:34:11] <SwifT> prometheanfire: didn't you create a bug for soemthing 
selinux related? can't see it yet in the selinux list
[23:34:14] <blueness> but its a rare case
[23:34:32] <prometheanfire> SwifT: no, the only thing was the nfs bug
[23:34:42] <blueness> ssh over ipsec is broken in all 2.9.39
[23:34:42] <blueness> s
[23:34:45] <SwifT> prometheanfire: k
[23:36:11] <Zorry> okay Open floor
[23:36:26] <Zorry> some one have some thing ?
[23:37:09] <Zorry> else meeting is done and ty for being on the meeting

Reply via email to