opnsense-src/sys/security
Robert Watson e257c20ec1 Introduce support for per-audit pipe preselection independent from the
global audit trail configuration.  This allows applications consuming
audit trails to specify parameters for which audit records are of
interest, including selecting records not required by the global trail.
Allowing application interest specification without changing the global
configuration allows intrusion detection systems to run without
interfering with global auditing or each other (if multiple are
present).  To implement this:

- Kernel audit records now carry a flag to indicate whether they have
  been selected by the global trail or by the audit pipe subsystem,
  set during record commit, so that this information is available
  after BSM conversion when delivering the BSM to the trail and audit
  pipes in the audit worker thread asynchronously.  Preselection by
  either record target will cause the record to be kept.

- Similar changes to preselection when the audit record is created
  when the system call is entering: consult both the global trail and
  pipes.

- au_preselect() now accepts the class in order to avoid repeatedly
  looking up the mask for each preselection test.

- Define a series of ioctls that allow applications to specify whether
  they want to track the global trail, or program their own
  preselection parameters: they may specify their own flags and naflags
  masks, similar to the global masks of the same name, as well as a set
  of per-auid masks.  They also set a per-pipe mode specifying whether
  they track the global trail, or user their own -- the door is left
  open for future additional modes.  A new ioctl is defined to allow a
  user process to flush the current audit pipe queue, which can be used
  after reprogramming pre-selection to make sure that only records of
  interest are received in future reads.

- Audit pipe data structures are extended to hold the additional fields
  necessary to support preselection.  By default, audit pipes track the
  global trail, so "praudit /dev/auditpipe" will track the global audit
  trail even though praudit doesn't program the audit pipe selection
  model.

- Comment about the complexities of potentially adding partial read
  support to audit pipes.

By using a set of ioctls, applications can select which records are of
interest, and toggle the preselection mode.

Obtained from:	TrustedBSD Project
2006-06-05 14:48:17 +00:00
..
audit Introduce support for per-audit pipe preselection independent from the 2006-06-05 14:48:17 +00:00
mac Reconstitute struct mac_policy_ops by breaking out individual function 2006-04-26 14:18:55 +00:00
mac_biba Introduce a new sysctl variable: 2005-12-31 05:06:59 +00:00
mac_bsdextended Add some new options to mac_bsdestended. We can now match on: 2006-04-23 17:06:18 +00:00
mac_ifoff Update my personal copyrights and NETA copyrights in the kernel 2004-02-22 00:33:12 +00:00
mac_lomac Normalize a significant number of kernel malloc type names: 2005-10-31 15:41:29 +00:00
mac_mls Add #include <sys/sx.h>, devfs is going to require this shortly. 2005-09-19 18:52:51 +00:00
mac_none Add #include <sys/sx.h>, devfs is going to require this shortly. 2005-09-19 18:52:51 +00:00
mac_partition Add #include <sys/sx.h>, devfs is going to require this shortly. 2005-09-19 18:52:51 +00:00
mac_portacl Normalize a significant number of kernel malloc type names: 2005-10-31 15:41:29 +00:00
mac_seeotheruids Allow the root user to be aware of other credentials by virtue 2005-09-30 23:41:10 +00:00
mac_stub Add #include <sys/sx.h>, devfs is going to require this shortly. 2005-09-19 18:52:51 +00:00
mac_test Add #include <sys/sx.h>, devfs is going to require this shortly. 2005-09-19 18:52:51 +00:00