5/15/2006 lspp Meeting Minutes:
===============================
Attendees

   Janak Desai (IBM) - JD
   Paul Moore (HP) - PM
   Amy Griffis (HP) - AG
   Steve Grubb (Red Hat) - SG
   Loulwa Salem (IBM) - LS
   Lisa Smith (HP) - LMS
   Michael Thompson (IBM) - MT
   Al Viro (Red Hat) - AV
   Dan Walsh (Red Hat) - DW
   George Wilson (IBM) - GW
   Matt Anderson (HP) - MA
   Klaus Weidner (Atsec) - KW
   Linda Knippers (HP) - LK
   James Antel (Red Hat) - JA


Kernel update
-------------
    GW: we'll lead off with AL, any updates or issues with the kernel
    AV: last week there have been minor changes to the tree, a deadlock was
        found and fixed. I hope to have updates on Friday. I've had a bit
        of hardware trouble and it got serviced today, so I'll have
        updates Tuesday.
    SG: AL, when should we step up to rc4 of git tree?
    AV: well, next update is tomorrow. I hoped to have had it done
        Friday afternoon, but there have been raid array problems.
    SG: I just wanted to know when to move up
    AV: tomorrow I'll put an update out, so it's up to you to keep it for
        now; or wait until tomorrow, there will be more patches added to the set
    GW: thanks for the update AL, so far with new audit, things are looking
        good, have we run any regression tests lou.
    LS: no, not yet.


LSPP kernel issues
------------------
    SG: Michael was reporting a problem, that lou was seeing before
    MT: yeah, first execution of auditctl command is denied, but subsequent
        ones are permitted
    SG: I got an strace from lou, and it looked like the problem is from
        the kernel. I am at a loss of what it is, sounds like an
        uninitialized variable.
    AV: try to see where it goes next. how far does it get.
    SG: it shows a normal syscall exit.
    AV: ok we send a packet hopefully it is received. inside kernel in
        the kernel we start to handle that. question is how far did it get.
    MT: is there a kernel build in your tree steve
    SG: yes. one of hooks you want is /etc/security/nlssg-pass that has
        the netlink code. The function name is selinux_nlm_lookup, that's
        where it makes the decision to allow package or not, unless there
        is another basis to reject it.
    GW: Does this happen in permissive only, I always ran in enforcing, I
        want to try that, how do you recreate it.
    MT: Just boot in permissive, login as root, execute auditctl -l. I'm
        seeing it on i386, and lou saw it on x86_64. could it be an intel
        thing, but that doesn't make sense
    GW: Ok. Any other kernel issues
    AV: I have a question for Amy, but she is not here yet.

Audit performance and stability issues
--------------------------------------
    GW: Amy if you are on, can you tell us about audit.
    LMS: Amy is not here yet, I'll go get her.

AuditFS/inotify completion
---------------------------
    AG: I found a bug in inotify release patch. There is a bug where the list
        got mangled. I need something to compare the code with my additions
        to. I have to figure out what is going on. Last week Al and I were
        talking about not having records for files/directory removes; he had
        an idea that I liked about applying a filter. I am thinking to get
        a patch out tomorrow, after I'm done with the inotify work. One more
        issue, it is actually a bug; when you tell inotify to clean up, it
        doesn't clean properly, so when you add a rule later it thinks it's
        already there.
    SG: You think we are in good shape to let the code go to -mm tree.
    AG: depends on the inotify patch, I need to test that first. I ran
        into something that looks like a bug so I need to get that fixed.
        After that, we might be ready.
    SG: Ok. 2.6.17 is about to release and the window to 2.6.18 is about to
        open. We won't have time to test in -mm.
    AV: I'm going to star pushing stuff that doesn't depend on inotify to -mm,
        so that inotify won't interfere with the rest, I'm going to push them
        to Andrew, so if anyone can think of patches that are not Dependant
        on inotify, you need to tell me. However, nothing not in the current
        tree will go into -mm.
    SG: George, the patches you have need to also see the light of day,
        everything going into 2.6.18 needs to go in -mm tree to check for bugs.
    GW: Ok, I'll commit to put the patches out by tomorrow.

Audit of POSIX message queues
------------------------------
    GW: I still need to put my patch out. I found bug and I'm in the process
        of fixing it.

Audit API
---------
    SG: Not alot new, Friday I put an update to fix the problem of deleting
        everything. Also add audit by ppid.
    AV: By the way, I'm going to put validation of stuff that validates rules in
        userland . I don't believe that range checks on those ever makes
        sense; only thing we do with inode number is compare it equal or
        not equal to another inode
    SG: sounds fine to me


Audit failure action inquiry function
--------------------------------------
    GW: Lisa, would you like to tell us how is this going?
    LMS: sure, I sent out an updated proposal last week, and waiting
        for feedback
    GW: I looked at it and it's fine with me. It may be an overkill after we
        had our discussion. I certainly need to call something from the
        self tests. Have you started implementing anything?
    LMS: Not yet, I'm still waiting on feedback. Do we still have consensus
        to pursue this. we were gonna make a call to a function and I was
        gonna return ENUM; do we still need that? are there many applications
        that need this. Do we still feel we should pursue this. I would like
        people's thoughts on this.
    GW: I remember we ran into problem about what if auditd is not running,
        what if messages can't make it out.
    LMS: if auditd is not running, it gets written to syslog. messages are
        still logged.
    GW: we wanted to do this in audit library, that was the consensus last time.
    SG: yeah, that can be done in audit library
    GW: so all applications will fail from audit library and can decide what
        to do. self test is going to be the one that brings the system down?
    LK: I don't think self test will call that function
    GW: they were gonna send messages and check audit system health
        periodically.
    LK: not sure what that has to do with userspace.
    GW: well we were gonna have applications stop the system, but not any more
    AG: I don't think it was gonna panic the system. seems to me self tests
        are separate than this.
    GW: I agree. any reason not to go ahead and start prototyping.
    LMS: I can start that if people think this is the way to go. Ok, sounds like
        I'll start prototyping. if people have comments please send to list
        or directly to me.

Audit of service discontinuity
------------------------------
    GW: I remember .. klaus said we need explicit records to go between
        run levels. that's when we got into discussion of what to do when
        auditd shuts down. is James working on these. We need some
        configurability there to panic the system.
    JA: I wasn't sure I was assigned to be working on that.
    GW: so we need owners for that. we need it configurable but we don't have
        to make it more usable friendly if we are out of time
    SG: We don't want automatic relabeling, it goes to shell for administrator
        to make changes.
    GW: we discussed that before. it is not a requirement, but nice feature
        to have.
    SG: it was in RBAC. there is a maintenance mode, but also single user
        mode. when it booted up, it had an option to auto relabel or go
        into single user mode
    GW: it doesn't specify it tightly, but yeah. I am trying to check
        the protection profile. No one is working on this. Ivan was gonna
        take that.
    SG: looks like a simple thing to do, about 5-10 minutes
    GW: but no one owns it. we need to be clear on requirements. There is
        an explicit requirement, I agree.

Print
-----
    MA: the postscript(PS) container I mentioned last week is not completely
        working. I'm getting close. Once that is working, I was planning
        on implementing access control check. I need some code so I can write
        a design doc. Also I tried changing the resolution as Klaus mentioned
        last time, it was better, but still pixelated, and produced a
        larger file.
    GW: Does it still look like a fax
    MA: Yes .. like a fax.
    KW: did you print it or saw it on screen?
    MA: The thing is on screen it looks always good, but on print it is
        not good. Also it has slow printing.
    KW: maybe the printer has small memory. Some old printers have
        these problems
    MA: this is a fairly modern printer, but I'll check on it's memory though.
    KW: if you use the postscript as the intermediate language you would
        still have to put the interpreter in the LLD since you can't trust
        the output.
    MA: but the input postscript has been completely rendered to bitmap.
        The labeling filter would only be called after the rendering filter.
    AV: you can't encapsulate original interpreter. you can' trust it won't
        be able to do anything . you can't make assumptions about output
        being compromised.
    KW: you don't have that trust separation anymore. Now instead of
        having simple output, you get postscript.
    MA: that postscript outputs a .tiff, then you can string together
        tiff images.
    AV: one thing to keep in mind, compromised .tiff can cause considerable
        trouble to parse unless you are careful
    MA: I'll do good error checking around that
    KW: need to try hard to argue that the postscript interpreter in
        backend does not need to be included in the LLD.
    GW: how hard we have to argue klaus.
    KW: You need to know privileges of what things are running at.
    AV: what I think is going on, we get a completely untrusted PS in input,
        we run it in sandbox. the output is completely untrusted, .tiff
        is easier to validate if we do the validation of that stuff in
        trusted and the output is PS. Then it does not depend on ps input it
        is .tiff frame containing bitmaps. bitmaps are the only place where
        regional input may affect this. That is a very restricted subset of PS.
    KW: the tricky part is in the details. make sure people can't pass          
        pipeline. how can you be sure you are only getting that subset
    MA: subset is picked by the filter.
    KW: It doesn't work that way. you have to ensure filters can't be bypassed.
    MA: the postscript is interpreted by filter.
    KW: but it is only an assumption that postscript is not hostile.
    AV: that's not what is going on. what we're saying is that if everything
        in sandbox is subverted, you get hostile files pretending to be .tiffs,
        this affects assumptions of everything after that stage. only thing
        you get out of compromised interpreter will be those files.
    KW: maybe not even root. it can be running at different level. in sandbox
        it starts a process, but they need to be running at different levels
    AV: you need to prove that sandbox will contain whatever is put inside.
    KW: in general it is feasible. filter and sandbox are not by passable.
        we need to show that if we need to exclude the postscritp interpreter
        from the trusted list.
    GW: how much explanations do we need?
    KW: not much, maybe a page or two explaining privileges
    MA: Ok, shouldn't be hard.
    GW: argue that it is constrained by selinux.
    MA: to get to filters you need to bypass the selinux.
    KW: as long as you make a good case about not caring what it does in detail.
    AV: let's say low-level backend in PS that generates data for whatever
        printer is out there. lets assume that it recognizes given combination
        of pixels and does something nice to it. assumes author of PS is
        hostile if got a bug in rendering that can be used to subvert backend
        PS driver, may still be in trouble no matter how easy the PS part is
    MA: the printer would have that backdoor or the interpreter?
    AV: interpreter
    KW: It is generally safe to assume developers of software are not hostile.
    AV: bugs in rendering part of driver can be generated by sequences fed
        to printer. those parts may have unintentional exploitable bugs
    KW: we don't need to show it is completely free of backdoors, but just
        that is has reasonable separation.
    AV: more details, suppose printer uses odd compression scheme, and backend
        part of ps will have to take whatever bitmap it got and run compression
        over it. assume on some inputs you have a buffer overrun in compression
    MA: I think you're example is a little off AL. I think a buffer overflow,
        once you are talking about compression, that's beyond the scope of
        EAL4. There is clearly a security vulnerability there, but it's
        beyond our work.
    KW: make sure it is not easily by passable. if you can do that with
        selinux it's good enough
    MA: the vulnerability will be in actual printer firmware.
    KW: for that you got the LLD of printer which should address those issues.

    GW: going back to manual recovery. it is a requirement
    SG: put something in /etc/sysconfig. it can be a variable to tell if it is
        a relabel or single user mode. seems like a quicker fix to do it than
        to talk about it.
    GW: you don't want to just auto relabel, need to give them option to drop
        to single user mode.
    DW: give option or force.
    KW: make a flag, if something happens and system doesn't know, it goes
        to single user mode. create a file and indicate a dirty state.
    DW: it knows it is not running in selinux. there is a file like that,
        every time you reboot it creates a new file.
    KW: our solution could be something similar.
    DW: You want to put a flag that says don't auto relabel, just go to single
        user mode. that's fine, but prompting the user is bad.
    GW: we can configure it right?
    DW: yeah configure to do relabel or single user mode.
    DW: assign this one to me.
    GW: thanks Dan.


CIPSO
-----
    PM: still going, got all feedback from stephen smalley and james morris.
        I finished the code to enable the pure sec(??) socket option. I'll
        try to get it out by end of this week, but other things are preoccupying
        me, if not this week, then early next week. For the next one that comes
        out, everyone with experience, please take a look at it, since at this
        point we are at the stage of minimal functionality. And I would like
        some feedback. Any questions.
    GW: I am hoping joy and serge will take a good look at that from our
        end. Trent also would be nice for him to look at it.
    PM: I'll continue posting to lspp mailing list, also the lsm list. Depending
        on feedback from this patch, the other one should soon follow.
    GW: sounds good, thanks


SELinux base update
-------------------
    DW: mcstrans got in. The dev mls utils is still in fedora extras, trying
        to push that see if they approve it. As for policy, we go back and
        forth with Michael about that. We are going through difference between
        the roles. Q&A coming from IBM are helping define those roles. we are
        testing as we go. right now all roles can change passwd, but only
        sysadmin needs to change passwd. we need to prethink of those scenarios
        early so we don't stumble later. I'll respond to your email
        tonight Michael.
    SG: George, let's remove the label transition daemon from the agenda, if
        you have issues, send bugs


IPsec labeling, xinetd, secpeer
-------------------------------
    GW: Trent posted xinetd.
    SG: I took a very quick look. I don't think the code addressed the issues
        I brought up in October. But I still need to look at it in more details.
    GW: level negotiation kind of issues
    SG: I'll take a look at it this week, and see how it meshes with the
        way xinetd is designed.
    GW: good, sounds reasonable. Did unix domain datagram support ever make
        it into kernel. katheryn did separate patch for unix domain datagrams,
        but I never knew if it made it in. We need to make sure that got
        incorporated. Al do you know
    AV: I don't think I ever had it, might have gone to mainline before
        January. I never had that. We need to get it in lspp kernel first.
    GW: we also need the netdev community to accept it first. This was in
        an email on april 10 (updated af_unix datagram get peer sec).
    AV: It never made it into lspp, and as far as I can tell never made it
        into mainline.
    GW: I'll follow up with katheryn, I'll follow to completion with her.
    AV: just post it.

ipsec-tools patches:  Base, SPD dump, and racoon MLS
-----------------------------------------------------
   GW: joy is out on personal business. she is not contactable right now. Chad
        and vinkat, wanna talk about the posting you had. are they on? Ok, they
        are not on. Vinkat made postings about MLS negotiation with IPSEC.
        it's a pretty sizable patch, I didn't look at it. we need to decide
        what to do with it. Wish joy was here since she is our primary ipsec
        person now. Wanted to thanks TCS for putting this out. we need to review
        it, get comments and get it upstream. Same thing with the spd dump.

Device allocation
------------------
    GW: Anything new with that Debbie?
    DV: Steve posted couple of small items to fix. Corey started making changes,
        and said he will make changes over weekend and get them out by Monday.
        I still haven't seen anything from Corey yet.
    GW: we'll have another record type for that.
    SG: those are already in the version of audit that I released last Friday


Label translation daemon
-------------------------
    GW: will be removed from agenda next week

Self tests
----------
    GW: I am still working on that

VFS polyinstantiation
---------------------s
    JD: pam namespaces is in rawhide, few people are testing. bugzilla
        reports are being fixed and tested, one turned out a bug with   
        regression, Andrew Morton said he'll revert the patch that caused it.
        As far as cron, it's still not in rawhide, but fedora maintainer said
        it should be in rawhide to test
    DW: any solution for x windows
    KW: there has been discussion on how to handle directory structure
    JD: I told Russel I'll look through, he had certain attacks that he said I
        should take care of. I'll write those attacks down, and we can decide
        on them, some of them are beyond our work. What I told Russel, is
        I'll try and write down and have more coherent explanation of
        those possibilities
    KW: What about the direcotry discussion?
    JD: he wants an intermediate directory.
    KW: he can create an intermediate directory himself and put it as part
        of config file
    JD: I'll have email with each of these attack scenarios and we can
        address them. I agree, you can manually create this direcotry and
        add it.
    DW: so he wants a /tmp/?? directory to be created.
    JD: yes .. a user will have access to a file, and only way to do that if
        you have unmount .. or if user is running without polyinstantiation.
    DW: ???
    JD: right now we run with policy default. We do set execon to null to
        let policy decide.
    DW: You do it before set execcon.
    JD: it happens from a different process. it does happen before user
        shell gets executed.
    DW: can you do something with mount bind with x windows on top
    JD: to the script?
    DW: yes, can you take the top level X11 and put that over user directory
    JD: haven't tried that. I'll try that. As far as mount patch, I saw
        someone from redhat named Zack mailed Adrian to include the patch.
        would be great to include it in rawhide.
    DW: I triggered that, I sent the patch to zack to put it upstream.
    JD: I checked if the patch is upstream or he heard anything back, and
        he said no to both.


    GW: we are still trying to get work completed. we are at home streatch and
        just need to keep the energy up. We need to get everything in 2.6.18.
        We need to redouble our efforts to get things in 2.6.18, also in -mm. As
        far as the 2.6.18 we don't know when the window will open for that, so
        finish as soon as possible. I don't know of any patches that don't need
        to be in -mm.

--
redhat-lspp mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/redhat-lspp

Reply via email to