I'm sponsoring this fast track for Jan Friedel and the Solaris Audit Project
team.  PSARC/2008/787 Obsolete of some Solaris Audit commands
announced Obsolescence (EOF) of a number Solaris Audit interfaces
in the next Patch release -- paperwork is underway.

When svc:/system/auditd was created (6232332 auditd should run under SMF)
as part of the conversion from /etc/rc scripts to SMF (PSARC/2002/547 Greenline)
the configuration information in audit_startup(1m) and audit_control(4)
were not converted.  This case proposes to provide the configuration
information contained in audit_startup in svc:/system/auditd private
properties and to remove audit_startup(1m) in a Minor release.

The interface taxonomy of auditconfig(1m) is unchange (Committed).
The Obsolete Committed audit_startup(1m) is removed.
Project Private properties are added to svc:/system/auditd.

Copies of the audit_startup(1m) man page, a diff marked auditconfig(1m)
man page, as well as the delivered audit_startup script are in the case
directory.

The timer is set for 21 Jan 2009.

Background:
==========
audit_startup(1m) is a shell script that contains auditconfig(1m) commands
used to initialize kernel values for the Solaris Audit subsystem.
It is run as part of the start method of svc:/system/auditd.
An administrator can configure the Audit Policy by editing the audit_startup
file and adding auditconfig commands to the file.  While other changes could
be made to this file, the only valid commands are -setpolicy, -setqbufsz,
-setqdelay, -setqhiwater, -setqlowater.  The other auditconfig commands
report on kernel state or modify running processes and are intended for
administrators to run interactively from the Audit Control Rights Profile.

Proposal:
========
    1) Remove the audit_startup(1m) script from the system.
    2) As the audit_startup(1m) script was not world readable,
       add Project Private read protected SMF property groups (PSARC/2007/177
       SMF Read-Protected Property Storage) to contain the persistent
       values for the audit policy and buffer parameters (-setpolicy,
       -setqbufsz, -setqdelay, -setqhiwater, -setqlowater).
    3) Modify auditconfig(1m) -setpolicy, -setqbufsz, -setqctrl, -setqdelay,
       -setqhiwater, -setqlowater to not only set the persistent property
       values, but also the running system values.
       (If audit is not loaded in the kernel - as would be the case
       before a reboot after bsmconv(1m) is run, only set the persistent
       properties.)
    4) Add a -t option to the auditconfig -setpolicy, -setqbufsz, setqctrl,
       -setqdelay, -setqhiwater, -setqlowater commands to temporarily
       (i.e., only modify the running system) set these values.
    5) Modify auditconfig(1m) -getpolicy, -getqbufsz, -getqctrl, -getqdelay,
       -getqhiwater, -getqlowater to not only get the persistent property
       values, but also the running system values.
       (If audit is not loaded in the kernel - as would be the case
       before a reboot after bsmconv(1m) is run, only get the persistent
       properties.)
    6) Add a -t option to the auditconfig -getpolicy, -getqbufsz, getqctrl,
       -getqdelay, -getqhiwater, -getqlowater commands to temporarily
       (i.e., only report the running system) get these values.
    7) Modify auditd(1m) to initialize the the audit policy and buffer
       parameters based on the svc:/system/auditd properties.
       And to initialize the kernels event to class mappings (-aconf,
       -conf).
    8) Modify the Audit Control Rights Profile appropriately to allow
       persistent property setting.
    9) Deliver the "cnt" policy enabled in the service manifest.
       This matches the default audit_startup script.
       No other audit policy or buffer parameters are changed from
       the compiled in default.
    
Notes:
======
    1) Persistent auditconfig -setclass is done by modifying audit_event(4).
    2) Persistent auditconfig -setkaudit is done by hostname lookup
       and set by auditd(1m) on startup.  This subcommand was created
       for test and debugging quite a while ago and probably should not
       have been documented.
    3) Persistent auditconfig -setkmask is done by modifying
       audit_control(4):naflags -- to be converted to SMF properties in a
       separate project.
    4) The remaining auditconfig -set commands do not deal with state
       that is persistent.

Issues:
=======
    1) The other obsoleted audit configuration file, audit_control(4), is
       not part of this project.  The plan is to also remove it before the
       next "Minor" release.
       It is not part of this project for resource considerations.  The
       ITeam has essentially completed this work and needs to be redirected
       to other immediate tasks.
       Mitigating this is that the two configuration files are independent
       of each other, thus this project is complete even without the
       removal of audit_control.
    2) Doing the project in two phases means that in the interim, if
       someone runs the development system and has modified the default
       audit configuration, they may have two transitions to make.  One
       for the removal of audit_startup and one for the removal of
       audit_control.
    3) The policy for read protected properties states that values should
       not be delivered in the manifest.
       The project team believes that compatibility with the existing
       default which is openly documented in the Solaris Auditing section
       of the System Administration Guide section of the Solaris Security
       Services document is sufficient motivation for delivering the "cnt"
       audit policy enabled in the service manifest.
http://docs.sun.com/app/docs/doc/816-4557/audittask-18?l=en&q=audit+policy&a=view

Reply via email to