On Mon, Mar 19, 2007 at 08:56:07AM -0800, Gary Winiger wrote:

> > 2.1.1. Definition
> > 
> >    The read_authorization property may optionally be added to any
> >    property group of type application (SCF_GROUP_APPLICATION).  It is
> 
>       Why should it be restricted to only application PGs at this time?
>       What's the drawback of being general?

I don't think this has any sensible meaning with respect to the other
property group types, which contain information, broadly speaking,
about the SMF representation and state of the service.  Application
groups are inherently different; they contain information used by the
underlying implmentation of the service.  Given the purpose of the
former, a huge number of failure cases (both present and future) must
be anticipated if we permit structural property groups to be marked
sensitive; I don't see a benefit that would justify the amount of
complexity that would introduce.

> > 2.3. svcprop(1) changes
> 
> >    - If no property or property group was specified, properties for
> >      which the user lacks appropriate authorization to read will be
> >      displayed as if they had zero values.
> 
>       Are string values the empty string?

All properties with no values show up as the empty string; i.e.,

svc:/network/nis/client:default> addpg foo application
svc:/network/nis/client:default> setprop foo/bar = integer: ()
svc:/network/nis/client:default> listprop foo/bar             
foo/bar  integer                                 
...
root at fallout:~ # svcprop -p foo/bar nis/client:default

root at fallout:~ # 

So yes.

> > 2.4. svccfg(1M) changes
> > 
> > 2.4.1. export changes, introduction of exportall
> > 
> >    'svccfg export' is modified to export the values of properties in
> >    SPGs as if they had no values, regardless of whether the user performing
> >    the operation has the required authorization.  This prevents accidental
> >    exposure of sensitive data in XML documents used for interchange
> >    purposes.
> 
>       I believe this needs guidance in the SMF policy.  If you use
>       read_authorization properties, the manifest should not initialize
>       the default value to anything sensitive.

Agree.

> >    To provide the ability to export documents containing the values of
> >    sensitive properties, we introduce 'svccfg exportall'.  This command
> >    behaves identically to 'export', except that the values of properties in
> >    SPGs are exported if the user has sufficient authorization to read them.
> >    Otherwise, the command terminates and displays an appropriate error
> >    message.
> 
>       Does it terminate at the first SPG, or will it always terminated
>       just in case there may be an SPG in the repository even if there
>       are none?

It will abort only if an SPG is encountered for which the user does
not have sufficient authorization to read its contents.

>       Additionally I believe the policy needs to be updated.
>       It should outline the form. VIZ.
>       solaris.smf.read.cioppino
>       And as noted above guide against putting sensitive values
>       in the manifests as they are (at least today) publically readable.

Agree.  I'll add diffs to the policy to this effect.

>       How does the repository protect sensitive values from view?

svc.configd(1M) already has checks for adequate priviliges and
authorizations for add/modify/delete transactions.  I'm adding similar
checks to the code path that returns property values.  This seems like
implementation details, though; I can provide a webrev in a couple of
days if you want the nitty-gritty.

>       What requirements does this place on remote repositories?

Since the interface between svc.configd and a remote backend is not
defined by any case I've found, it's difficult to be sure.  To prevent
privilege escalation, a remote repository storing SMF data would
already need to prevent changes to its contents by unauthorized users
(and the administrator thereof must ensure that authorization to
change the contents is granted only to those who would be authorized
to do so on the affected hosts).  This change requires the same
capability with respect to reads.  The most likely future networked
backend, LDAP, already offers this capability.

>       Have the NSS2/Sparks folk been included in any new remote
>       repository requirement?

I don't see anything in the Sparks (nor Duckwater) materials to
suggest that they're considering implementing networked backends for
SMF.  If I've overlooked something here, please let me know.

-- 
Keith M Wesolowski              "Sir, we're surrounded!" 
FishWorks                       "Excellent; we can attack in any direction!" 

Reply via email to