Skip to content
  • James Morris's avatar
    [PATCH] SELinux: add finer grained permissions to Netlink audit processing · b207a290
    James Morris authored
    
    
    This patch provides finer grained permissions for the audit family of
    Netlink sockets under SELinux.
    
    1.  We need a way to differentiate between privileged and unprivileged
       reads of kernel data maintained by the audit subsystem.  The AUDIT_GET
       operation is unprivileged: it returns the current status of the audit
       subsystem (e.g.  whether it's enabled etc.).  The AUDIT_LIST operation
       however returns a list of the current audit ruleset, which is considered
       privileged by the audit folk.  To deal with this, a new SELinux
       permission has been implemented and applied to the operation:
       nlmsg_readpriv, which can be allocated to appropriately privileged
       domains.  Unprivileged domains would only be allocated nlmsg_read.
    
    2.  There is a requirement for certain domains to generate audit events
       from userspace.  These events need to be collected by the kernel,
       collated and transmitted sequentially back to the audit daemon.  An
       example is user level login, an auditable event under CAPP, where
       login-related domains generate AUDIT_USER messages via PAM which are
       relayed back to auditd via the kernel.  To prevent handing out
       nlmsg_write permissions to such domains, a new permission has been
       added, nlmsg_relay, which is intended for this type of purpose: data is
       passed via the kernel back to userspace but no privileged information is
       written to the kernel.
    
    Also, AUDIT_LOGIN messages are now valid only for kernel->user messaging,
    so this value has been removed from the SELinux nlmsgtab (which is only
    used to check user->kernel messages).
    
    Signed-off-by: default avatarJames Morris <jmorris@redhat.com>
    Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    b207a290