Re: Possible system call interface for LSM

From: Crispin Cowan (crispinat_private)
Date: Thu Aug 09 2001 - 10:12:52 PDT

  • Next message: Seth Arnold: "Re: Possible system call interface for LSM"

    Lachlan McIlroy wrote:
    
    > There was some minor discussion recently about modules needing to modify
    > the system call table to create module specific system calls.  It prompted
    > me to investigate a fixed system call for LSM that will multiplex the
    > variety of system calls required for each different security scheme.  I've
    > attached a patch of the proposed idea for people to comment on.
    
    Asking Linus for a single system call, and then multiplexing it to serve
    whatever LSM modules need, was actually a decision we came to some months
    ago.  However, we then didn't do anything about it.  Thanks for getting the
    ball rolling.
    
    richard offer wrote:
    
    > The only problem I have about having security.h maintaining the list of
    > policy ID numbers is that that is going to have to change everytime someone
    > writes a new policy.
    
    I agree that it's kind of a hairy problme, and it's going to require some
    kind of arbitration.  However, exactly what kind of arbitration is not
    clear.  IMHO, it critically depends on our module stacking scheme.  To wit:
    
      1. No stacking:  if we strictly enforce that only one module can be loaded
         at a time (which we're not, this case is just for illustration) then no
         arbitration is needed at all.  Each module simply implements its own
         table of functions to be implemented, and applications are customized to
         the module.
      2. Stacking arbitrated by a module: the first module loaded is responsible
         for implementing the stacking.  It essentially has a LSM interface on
         its back end, and when called by hooks or the syscall, decides whether
         to process the action or pass it along to other loaded modules. In this
         case, arbitration is only needed between "families" of modules that are
         intended to work together.  This is consistent with the "vendor"
         oriented revision that Richard just posted.
      3. Fully generic stacking:  all modules can inter-operate, and be loaded
         simultaneously.  This is the only case that actually needs full
         arbitration of syscall numbers.  However, we've already established that
         it is impossible to support, and so we don't actually need full
         arbitration.
    
    > And we're going to get into the issue of "we're not going to accept your
    > policy in phase 1" even if all that's required is an ID number.
    
    I do hope you're kidding.  The "not in stage 1" stuff is only to exclude
    *features* from LSM 1 that cannot be justified as necessary to support the
    scope of LSM 1 (access control) and thus demonstrate that we can build
    something lean and mean.  I think it would be great if a partial audit module
    that worked with LSM 1 was produced.
    
    
    > Perhaps it should be vendor rather than policy specific ? It forces the
    > vendor of the policy to be self consistant withing their organisation in
    > terms of cmd codes and would require less changes to security.h before and
    > after the code is mainlined ?
    
    From above, it's clear to me that Case 2 is the desirable one, and so I agree
    that the syscall numbers only need to be consistent within a "vendor".
    I prefer to think of it as a "family" of cooperating modules, as it doesn't
    have to be a single vendor, and doesn't have to be commercial.  It could even
    be the case that one module provider could plop themselves on top of a module
    provided by a different vendor by strategically choosing numbers.
    
    Crispin
    
    --
    Crispin Cowan, Ph.D.
    Chief Scientist, WireX Communications, Inc. http://wirex.com
    Security Hardened Linux Distribution:       http://immunix.org
    Available for purchase: http://wirex.com/Products/Immunix/purchase.html
    
    
    _______________________________________________
    linux-security-module mailing list
    linux-security-moduleat_private
    http://mail.wirex.com/mailman/listinfo/linux-security-module
    



    This archive was generated by hypermail 2b30 : Thu Aug 09 2001 - 10:14:43 PDT