mbox series

[0/6] Audit: Records for multiple security contexts

Message ID 20241217230854.6588-1-casey@schaufler-ca.com (mailing list archive)
Headers show
Series Audit: Records for multiple security contexts | expand

Message

Casey Schaufler Dec. 17, 2024, 11:08 p.m. UTC
The Linux audit system includes LSM based security "context" information
in its events. Historically, only one LSM that uses security contexts can
be active on a system. One of the few obsticles to allowing multiple LSM
support is the inability to report more than one security context in an
audit event. This patchset provides a mechanism to provide supplimental
records containing more than one security context for subjects and
objects.

The mechanism for reporting multiple security contexts inspired
considerable discussion. It would have been possible to add multiple
contexts to existing records using sophisticated formatting. This would
have significant backward compatibility issues, and require additional
parsing in user space code. Adding new records for an event that contain
the contexts is more in keeping with the way audit events have been
constructed in the past.

Only audit events associated with system calls have required multiple
records prior to this. Mechanism has been added allowing any event
to be composed of multiple records. This should make it easier to
add information to existing audit events without breaking backward
compatability.

https://github.com/cschaufler/lsm-stacking#audit-record-6.13-rc1-v1

Casey Schaufler (6):
  Audit: Create audit_stamp structure
  Audit: Allow multiple records in an audit_buffer
  LSM: security_lsmblob_to_secctx module selection
  Audit: Add record for multiple task security contexts
  Audit: multiple subject lsm values for netlabel
  Audit: Add record for multiple object contexts

 include/linux/audit.h        |  13 ++
 include/linux/lsm_hooks.h    |   1 +
 include/linux/security.h     |   7 +-
 include/uapi/linux/audit.h   |   2 +
 kernel/audit.c               | 233 +++++++++++++++++++++++++++++------
 kernel/audit.h               |  13 +-
 kernel/auditsc.c             | 105 ++++++----------
 net/netlabel/netlabel_user.c |   8 +-
 security/apparmor/lsm.c      |   1 +
 security/bpf/hooks.c         |   1 +
 security/security.c          |  16 ++-
 security/selinux/hooks.c     |   1 +
 security/smack/smack_lsm.c   |   1 +
 13 files changed, 278 insertions(+), 124 deletions(-)