RBAC update: user attrs from profiles [PSARC/2010/072 FastTrack timeout 03/03/2010]

2010-03-03 Thread Gary Winiger
> This project proposes updates to the rbac implementation.
> 
> Release binding: minor.

This case was approved at today's PSARC meeting.

Gary..


RBAC update: user attrs from profiles [PSARC/2010/072 FastTrack timeout 03/03/2010]

2010-03-02 Thread Gary Winiger
> > Only authorizations seem to be explicitly addressed here.  How are
> > executables addressed?  That is the use of pfexec?
> 
> Through the profiles.  There are no "defaults" exec attributes listed in
> policy.conf.

So you're saying that the pfexec search as well as the auth
search stops at the "Stop" reserved Rights Profile name.

That answers my question.

Gary..


RBAC update: user attrs from profiles [PSARC/2010/072 FastTrack timeout 03/03/2010]

2010-03-01 Thread Gary Winiger
> This project proposes updates to the rbac implementation.
> 
> Release binding: minor.
> 
> The current rbac implementation has several shortcomings:

The project team doesn't say why these are shortcomings.
I was having a hard time getting the motivation.  Fortunately
in an offline discussion today, it was pointed out that
the particular use model was for a "kiosk user" model and that
the intent was to explicitly define specific user accounts
that would be restricted as an exception to the architecture
introduced when RBAC was introduced.

Given that I too am happy with the case (+1), but have a few nits
with the specification that I'd like acknowledged.

>   - it's not easy to override the default privileges
> defined in /etc/security/policy.conf
> 
>   - every user *always* inherits whatever is specified in
> /etc/security/policy.conf: AUTHS_GRANTED, PROFS_GRANTED

And the "console owner" gets the CONSOLE_USER.

> To fix these problems, this fasttrack defines the following new
> features:
> 
> 
>   The prof_attr(4) database supports two new keywords:
>   defaultpriv, limitpriv; they have the same semantics as they
>   have in user_attr(4).  On establishing a user credential,
>   the profiles database is searched and the first match for
>   each keyword is returned.

There is nothing inherent in this proposal that will stop
getting other keywords.  In particular audit_flags as
specified in PSARC/2010/003, EOL and removal of audit_user(4)
and getausernam(3bsm).

>   The new system defined profile "Stop"; when this profile
>   is encountered it excludes all the later profiles which would
>   normally be encountered.  Specifically, if a user has a profile
>   in its list which includes "Stop", then the PROFS_GRANTED
>   profiles are never considered for this user and the
>   AUTHS_GRANTED are ignored.

Additionally if the user is the "console owner", the CONSOLE_USER
profiles are never considered for this user.

Only authorizations seem to be explicitly addressed here.  How are
executables addressed?  That is the use of pfexec?
 
Gary..


Network Auto-Magic (NWAM) Phase 1 Updates part 2 (PSARC 2010/049)

2010-02-10 Thread Gary Winiger

> PSARC 2008/532 NWAM Phase 1
> PSARC 2009/577 Network Auto-Magic (NWAM) Phase 1 Updates

+1
And see below for a code review comment.

Gary..
>any of these.  The Network Autoconf profile is now split into the
>Network Autoconf User and Network Autoconf Admin profiles.  The User
>profile is assigned to the console user, and allows the user to activate
>profiles, and create/modify Known WLAN entries.  The Admin profile
>includes all authorizations given to the User profile, plus the ability
>to create and modify NWAM profiles.

The way to do this is to include the User profile in the Admin
profile with the "profiles=" keyword.


PSARC/2009/642 audit_control(4) EOL and removal

2010-01-20 Thread Gary Winiger
> I'm sponsoring this case for Jan Friedel and the Solaris Audit project team.
> It is the second phase of converting the audit service configuration to
> SMF.  The first phase was PSARC/2009/022 audit_startup(1m) EOL and removal.

This case was approved at today's PSARC meeting.

Gary..


PSARC/2009/642 audit_control(4) EOL and removal

2010-01-11 Thread Gary Winiger
> All logins, not just root login?  Sharon


Proposal:

Project Private properties are added to auditd(1m).

7) Deliver the service manifest with slightly different default
   configuration from what audit_control contained (flags lo, naflags lo,
   plugin audit_binfile(5) active).  audit_control flags were empty and
   naflags were lo, which would audit for failed events of the "login"
   class, but not for successful ones.  The change is to audit both
   successful and failed logins when auditing is enabled.  audit_binfile
   default is unchanged.

Gary..


PSARC/2009/642 audit_control(4) EOL and removal

2010-01-09 Thread Gary Winiger
I'm sponsoring this case for Jan Friedel and the Solaris Audit project team.
It is the second phase of converting the audit service configuration to
SMF.  The first phase was PSARC/2009/022 audit_startup(1m) EOL and removal.

PSARC/2008/787 Obsolete of some Solaris Audit commands and PSARC/2009/636
Obsolete getacinfo(3bsm) announced Obsolescence (EOF) of a number Solaris
Audit interfaces in the next Patch release.

When the audit service, auditd(1m), 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_control in audit service private
properties and to remove audit_control(4) in a Minor release.

Copies of the Obsolete audit_control(4) and getacinfo(3bsm) man pages, a
diff marked auditconfig(1m) man page and the new proposed audit_flags(5)
man page, as well as the delivered audit_control file are in the case
directory.

The interface taxonomy of auditconfig(1m) is unchange (Committed).

For reference purposes a "references" subdirectory is provided with other
related man pages and a prototype audit service manifest.

The timer is set for 19 Jan 2010.

Gary..
+

Background:
==
audit_control(4) is a file that contains configuration of the default
audit classes (flags: and naflags: keywords) [see audit_flags(5) and
audit_class(4)] and audit trail destinations (plugin: keyword) [the dir:
and minfree: keywords were effectively EOLed but not removed by PSARC/2002/150
Secure Remote Audit Log -- "Secure" a misnomer here].  An administrator can
configure these by editing the audit_control file.

Proposal:

Project Private properties are added to auditd(1m).

1) Remove the Obsolete Committed audit_control(4) file from the system.
2) As the audit_control(4) file 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 default audit flags and audit trail destinations.
3) Remove the Obsolete Committed getacinfo(3bsm) APIs from the system.
   These interfaces are used to access fields in the audit_control file.
4) Add project private properties to the audit service to contain
   the information in the removed audit_control file.
5) Add auditconfig(1m) subcommands -getflags, -getnaflags, -getplugin,
   -setflags, -setnaflags, -setplugin to display and set the default
   audit classes and audit trail destinations.
6) Modify auditd(1m) to initialize the default audit classes and audit
   trail destinations from audit service properties.
7) Deliver the service manifest with slightly different default
   configuration from what audit_control contained (flags lo, naflags lo,
   plugin audit_binfile(5) active).  audit_control flags were empty and
   naflags were lo, which would audit for failed events of the "login"
   class, but not for successful ones.  The change is to audit both
   successful and failed logins when auditing is enabled.  audit_binfile
   default is unchanged.
8) Update au_user_mask(3bsm) to use default audit classes configured in
   the audit service.

auditconfig(1m):
NAME
 auditconfig - configure auditing

SYNOPSIS
 auditconfig subcommand ...

  SUBCOMMANDS

+-getflags
+Display the default audit preselection flags.

+-getnaflags
+Display the non-attributable audit mask.

+-getplugin [name]
+Display information about the plugin name.  If name is not
+specified, display all plugins.

+-setflags audit_flags
+Set the default audit classes, see audit_flags(5).  The default
+audit classes are combined with the user's specific audit
+flags to form the user's process audit preselection mask.
 
+-setnaflags audit_flags
+Set the non-attributable audit classes, see audit_flags(5).
+Non-attributable audit classes define what classes of events
+are to be audited when the action cannot be attributed to
+an authenticated user.  Failed login is an example of an
+event that is non-attributable.

+-setplugin name active | inactive [ attributes [ qsize]]
+Configure the plugin name to be "active" or "inactive".
+Optionally configure the attributes and number of
+unprocessed audit records to queue for the plugin.
+See the audit plugin man pages and auditd(1m).

NOTES

+The change to plugins (-setplugin) settings do not take effect
+(such as becoming active or inactive, changing the active attribute
+or queue size values) until the audit service is refreshed.  Use
+audit(1M) to refresh the audit service.

Notes:
==
1) Activation of u

User object audit token [PSARC/2010/001 FastTrack timeout 01/11/2010]]

2010-01-06 Thread Gary Winiger
For some reason, this never made it to the case log or my inbox.
Sorry for the delay.

> From: Richard L. Hamilton 
> To: opensolaris-arc at opensolaris.org
> Subject: Re: User object audit token [PSARC/2010/001 FastTrack timeout
> 01/11/2010]
> Date: Sat, 02 Jan 2010 05:39:59 -0800 (PST)
> 
> Is the user SID also in audit output?  If it isn't, shouldn't it be, if 
> available, esp.
> if the UID is ephemeral?  Wouldn't it be worth recording for forensics?

The short answer is no presuming SIDs are Windows Security IDs
as opposed to Solaris Audit Session IDs.

Windows SIDs are not presently part of OpenSolaris.  Auditing
covers identified and authenticated users logged into OpenSolaris.
No OpenSolaris user has an ephemeral user ID.  The purpose of
the user object token is to represent a user as the object
of some action, not as the subject of an action.  In particular,
as noted in the case "passwd -f" auditing would be served well
by being able to express the user as an object in a searchable
way.  Thus, the motivation for this new token.

Cheers,
Gary..



User object audit token [PSARC/2010/001 FastTrack timeout 01/11/2010]

2010-01-06 Thread Gary Winiger
This case was approved at today's PSARC meeting.

Gary..


Reserved uid/gid for distinguishing unmappable users/groups in NFSv4 ACLs [PSARC/2009/683 FastTrack timeout 01/06/2010]

2010-01-04 Thread Gary Winiger
Darren writes:

> While I think it is unfortunate we need yet another special uid/gid for 
> this it seems like the only workable solution (I'd already discussed 
> this offline with the project team).  So I'm happy to given this case a 
> +1 as specified.

I agree with Darren, it's unfortunate (and that nobody4 cannot
be repurposed).

Tim writes:

> Proposed Solution:
> --
> 
> The /etc/passwd entry will be as follows:
> unknown:x:96:96:Unknown Remote UID:/:
> 
> The /etc/shadow entry will be as follows:
> unknown:NP:::

Why is this being proposed as a nologin account (NP) rather
than a locked account (*LK*)?  Why does unknown need to
run jobs on the system?

+1 if a locked account.

Gary..


Improving the use and debugging of the basic privilege set. [PSARC/2009/686 FastTrack timeout 01/01/2010]

2010-01-04 Thread Gary Winiger
> --- priv_addset.3   Mon Dec 21 12:08:24 2009
> +++ priv_addset.3.new   Mon Dec 21 12:10:00 2009
> @@ -20,6 +20,8 @@
>  
>   void priv_emptyset(priv_set_t *sp);
>  
> + void priv_basicset(priv_set_t *sp);
> +
>   void priv_fillset(priv_set_t *sp);
>  
>   void priv_freeset(priv_set_t *sp);
> @@ -58,6 +60,8 @@
>  
>   The priv_emptyset() function clears all privileges from sp.
>  
> + The priv_basicset() function copies the basic privilege set to sp.
> +
>   The priv_fillset() function asserts all privileges in sp, includ-
>   ing the privileges not currently defined in the system.

+1
Gary..


Basic Network Privilege [PSARC/2009/685 FastTrack timeout 01/01/2010]

2010-01-04 Thread Gary Winiger
> I want to clarify the definition of the NET_ACCESS privilege as follows:
> 
> privilege  NET_ACCESS
> 
>  Allows a process to open a TCP, UDP or SCTP network endpoint.
> 
> 
> This makes clear that ICMP and RAW sockets do not require more than the
> NET_ICMPACCESS or NET_RAWACCESS.

+1
Gary..


User object audit token [PSARC/2010/001 FastTrack timeout 01/11/2010]

2010-01-01 Thread Gary Winiger
I'm sponsoring the case on behalf of myself, the Audit Project Team
and the RBAC and Admin Project Team.

It requests a Patch Release Binding.  However, there is no intention to
back port unless there is a business need to do so.  The exposed interfaces
were never formally ARCed.  They have been treated as Committed by the
Audit Project team for some time.  The man pages are updated to indicate
this.  The project requests a Committed Interface Taxonomy for the
proposed changes.

Full diff-marked man pages are in the case directory.

The timer is set for 11 Jan, 2010.

Gary..
~~
Background:
==
Audit records include information on who did what to what.  The who is
the subject of the audit record, the what is the audit event and the
to what is the object of the audit record.  Audit records are generally
searchable based on who, what and to what by auditreduce(1m).

Audit records dealing with the administration of user attributes are not
searchable for the user affected.  Present audit records contain a text
token of the user name.  Examples of such audit records are those
generated by passwd user, passwd -f user, usermod  user.

Text tokens are generally used for supplemental information not object
identifiers.  Current object types include "path" for files, "fmri" for
FMRIs, "ipc" for System V IPC, "process" for processes.

Proposal:

Add a new audit token named "user" and permit selection of audit records
that contain that user value.  The auditreduce user object user name is
the same form as the other auditreduce user specifications.  The actual
token value is both a uid_t and a user name string.  Both are needed for
the case where the user has been removed from the system and the name to
uid translation is not available.

audit.log(4):

NAME
 audit.log - audit trail file

DESCRIPTION

 The audit.log  files  contains  audit  records.  Each  audit
 record  is  made  up of audit tokens. Each record contains a
 header token followed by various data tokens.  Depending  on
 the  audit  policy  in  place  by auditon(2), optional other
 tokens such as trailers or sequences may be included.

+The user token consists of:
+  token ID1 byte
+  user ID 4 bytes
+  user name length2 bytes
+  user nameincluding terminating NULL byte

auditreduce(1m):
+++

NAME
 auditreduce - merge and  select  audit  records  from  audit
 trail files

SYNOPSIS
 auditreduce [options] [audit-trail-file]...

OPTIONS

  Record Selection Options
 The record selection options listed below are used to  indi-
 cate  which  records are written to the output file produced
 by auditreduce.

 Multiple arguments of the same type are not permitted.

 -o object_type=objectID_value
 Select records by object type. A match occurs  when  the
 record contains the information describing the specified
 object_type and the object ID equals the value specified
 by objectID_value. The allowable object types and values
 are as follows:

+   user=user name
+Select records containing the user object whose name
+is specified.  User objects are generally specified
+for administrative actions on a user.


PSARC/2008/195 Validated Execution

2009-12-16 Thread Gary Winiger
At the request of the project team, this case has been superseded by
PSARC/2009/676  Validated Execution Umbrella Case.

Gary..


PSARC 2009/576 pam_krb5 pkinit - final spec

2009-12-15 Thread Gary Winiger
> I've attached updated pam_krb5.5 and pam_krb5.5.diffmarked.

+1
Gary..


PSARC 2009/576 pam_krb5 pkinit - final spec

2009-12-14 Thread Gary Winiger
> The final spec and man page for the pam_krb5 pkinit project
> have been put into the case directory.  If there are no
> further objections, this case should get approved at the meeting
> this week.

From message 60 of 17 Nov and not yet answered:

Gary..
==
>From pkinit-final:

"The pam_krb5 password module will change in that if PKINIT
authentication was done it will return PAM_IGNORE in the following
cases:

- the new passwd is NULL
- the old passwd is NULL
- verification of the old passwd fails.

If none of the above is true then pam_krb tries to change the password
and will return an error if that fails.  The rational behind this is if
some PAM module causes pam_acct_mgmt() to return PAM_NEW_AUTHTOK_REQD
and/or the app subsequently calls pam_chauthtok(), pam_krb5 will change
a user's password.  But this may well fail: the KDC may not want to
allow a PKINIT user to change/set a password since the user may be
expected to use PKINIT."

This information does not seem to be in the man page.  How does the
administrator know it?  Not being a pkinit expert, I'd like to understand
how the password stack will know if the user was authenticated by pkinit?
I feel TCR strong that the man page needs to be complete relative to this
part of the spec.  I'm also concerned that pam_krb5 in the password stack
won't likely be called without PAM_AUTHTOK or PAM_OLDAUTHTOK set.
Which call to pam_sm_chauthtok() PAM_PRELIM_CHECK and/or PAM_UPDATE_AUTHTOK
will be making these checks?


2009/661 [noaclfab share option]

2009-12-09 Thread Gary Winiger
> Improving ACL fabrication and making it do a better job of approximating 
> NFSv4 ACL, will still have the following problem:
> 
> >>
> >> - The user could retrieve the fabricated ACL on the client and attempt
> >> to perform some operation only to be denied when the "real" ACL is
> >> evaluated on the server.

This was my compelling reason for not doing my normal, I hate
configuration options, please fix it so ACL fabrication works.
IMO, it can't be reasonably fixed because ACL/ACE are different.
That's something we/the ARC accepted in the ZFS and NFSv4 cases.

Gary..


[kerberos-discuss] PSARC/2009/576 final spec

2009-12-09 Thread Gary Winiger
> > One question; should pam_krb5 doing PKINIT ever try using the password
> > acquired via pam_authtok_get as the PIN if pam_krb5 is stacked below
> > pam_authtok_get like so:
> > 
> >login auth required   pam_unix_cred.so.1
> >login auth sufficient pam_krb5.so.1 pkinit
> >login auth requisite  pam_authtok_get.so.1
> >login auth required   pam_dhkeys.so.1
> >login auth required   pam_unix_auth.so.1
> > ?
> > 
> > I was thinking that pam_krb5 could try doing PKINIT preauth with the
> > user's password and if that failed would try PKINIT preauth again, this
> > time prompting for the user's PIN.  If that is a bad idea then pam_krb5
> > doing PKINIT would ignore the user's password and always prompt for the
> > PIN  regardless of where it was in the auth stack.

IMO, it is a site configuration error to put pkinit below
authtok_get.  That said, it is possible for applications
to set PAM_AUTHTOK before calling pam_authenticate.

IMO, you either have an administrative error, or an application
error.  I'd say, if PAM_AUTHTOK is set to use it rather than
prompt.  If it locks out the card, the admin/application will
be noted as buggy.

Gary..


noaclfab share option [PSARC/2009/661 FastTrack timeout 12/11/2009]

2009-12-07 Thread Gary Winiger
> I'm sponsoring this fast-track on behalf of Vallish Vaidyeshwara (RPE).
> This case seeks minor binding.

Is this really only needed in Solaris Next?  It seems OK to me
for a Patch binding if needed.
+1 for either binding.

Gary..


delete obsolete system call traps [PSARC/2009/657]

2009-12-03 Thread Gary Winiger
> I am sponsoring this fast-track case for myself.
> 
> No external/ABI interfaces are changing, so there is no documentation change.

I don't see any mention of how Solaris Audit will be affected.
I've not looked at the current implementation to see how each
of the current syscalls maps into audit events.
Are all the current audit events preserved?

Gary..


Software Events Notification Parameters CLI [PSARC/2009/617 FastTrack timeout 11/18/2009]

2009-11-20 Thread Gary Winiger
> setnotfy and delnotify are just wrappers that create and delete 
> properties and property groups. The auditing of these operations are 
> handled by the standard property and property group add/modify/delete 
> audit records. Do you think a more robust auditing is required here?

OK, thanks.

+1
Gary..
> Gary Winiger wrote:
> >> New exported interface  Stability   Binding
> >> ---
> >> setnotify subcommand of svccfg(1M)  Committed   Patch
> >> listnotify subcommand of svccfg(1M) Committed   Patch
> >> delnotify subcommand of svccfg(1M)  Committed   Patch
> > 
> > It seems to me that setnotify and delnotify would qualify
> > as auditable administrative actions.  I see no mention of
> > audit.


Obsolete getacinfo(3bsm) [PSARC/2009/636 Self Review]

2009-11-19 Thread Gary Winiger
I'm sponsoring this case for myself and the the Solaris Audit project team.
I believe it qualifies for self review and am marking it closed approved
automatic.

I'm happy to turn it into a fast track and set the timer if anyone believes
I've misjudged.

The case requests an obselescence announcement in a Patch release for
potential removal in a Minor release.
For convenience full diff-marked man pages are in the case directory.

Gary..
==
Background:
+++
PSARC/2008/787 "Obsolete of some Solaris Audit commands" changed
the interface taxonomy of the audit_control(4) file to Obsolete Committed
and announced it in a Solaris 10 update.  getacinfo(3bsm) is a set of library
interfaces that extract fields from the audit_control file.  With the
potential for removal of the audit_control file, interfaces to extract
fields from the will no longer work.  Auditing was introduced some time
around SunOS 5.2 and getacinfo() was never ARCed or assigned a formal
Interface Taxonomy.  This case assumes that it is form of Stable.  The
project team assumes Evolving (now Committed).

Proposal:
+
* Change the Interface Taxonomies of getacinfo(3bsm) to Obsolete Committed
  in a Patch release of Solaris.

* Add a paragraph to the man page NOTES section:
These functions are Obsolete and may be removed and replaced with
equivalent functionality in a future release of Solaris.

* Add an announcement in the "What's New in the Solaris Release" document:
A previous What's New announced that in a future release, the
configuration file for controlling the audit service -- auditd(1M),
audit_control(4), may be removed and replaced with equivalent
functionality.  In a future release that removes audit_control(4),
getacinfo(3bsm) - get audit control file information will also
be removed.

As discussed in PSARC/2008/787, the intent is to move functionality of
[audit_startup and] audit_control into the SMF service svc:/system/auditd
(auditd(1M)).  As PSARC/2009/022 "audit_startup(1m) EOL and removal" did
for audit_startup, a future case will be submitted for the actual EOL and
removal of audit_control(4) and getacinfo(3bsm).


snmp-notify: SNMP Notification Daemon for Software Events [PSARC/2009/618 FastTrack timeout 11/18/2009]

2009-11-18 Thread Gary Winiger
> >> Additionally this case seems not to follow the SMF policy for
> >> configuring properties.  See
> >> http://sac.eng.sun.com/cgi-bin/bp.cgi?NAME=SMF.bp
> >> (there is an opensolsaris.org equivalent, but that website is
> >> not presently responding so I can't cut a paste the url).
> >> See appendix D relative to value_authorization.
> > 
> > 
> > Ok - let me look through this and get back.
> 
> Ah - ok - I see what you mean now.  I've added the following authorizations 
> for 
> configuring the service properties for the two daemons, respectively:
> 
> solaris.smf.value.smtp-notify
> solaris.smf.value.snmp-notify

You've answered my issues.  And as commented at today's PSARC
meeting,  uid 0 and all privs is (unfortunately) required by the
underlying channel initialization infrastructure.

> I've added these two authorizations to the "Event Notification Agent 
> Management"
> profile (which also encapsulates the manage authorizations for these two 
> daemons)
> 
> I've also made the appropriate modifications to the service manifests.

+1
Gary..


smtp-notify: Email Notification Daemon for Software Events [PSARC/2009/619 FastTrack timeout 11/18/2009]

2009-11-18 Thread Gary Winiger
> > of by the daemon?  If so, why isn't that the choice.  If not,
> > why not?
> 
> 
> The daemon needs to start as uid/gid 0, because it needs to create/bind a
> sysevent channel during initialization.  Afterward doing this, it reduces
> it's privilege set to the minimal set noted above and changes its uid/gid
> to user noaccess (60002).

As commented at today's PSARC meeting uid 0 and all privs is
(unfortunately) required by the underlying channel initialization
infrastructure.

+1
Gary..


snmp-notify: SNMP Notification Daemon for Software Events [PSARC/2009/618 FastTrack timeout 11/18/2009]

2009-11-17 Thread Gary Winiger
> Rob's sent me updated materials which reflect the clarifications due 
> to the conversation here around privileges and the removal of 
> config/debug from the manpages.
> 
> I've put them in the case directory.

>  config/rootdir
>  
>  This is an astring property that defaults to "/".
>When set, the specified root directory will be used for
>all pathnames evaluated by snmp-notify.

> 4.11. Security Impact:
> 
>   During daemon initialization, the smtp-notify daemon will reduce its
>   privileges to the following minimal set:
> 
>   afsr# ppriv 103247
>   103247: /usr/lib/fm/notify/snmp-notify
>   flags = PRIV_AWARE
>   E: basic
>   I: basic
>   P: basic
>   L: basic
> 
>   The case will introduce the following new authorization for management
>   of the smtp-notify service:
>   
>   solaris.smf.manage.snmp-notify
>   
>   This case also introduces the "Event Notification Agent Management"
>   profile which will include the above authorization as well as the new
>   authorization being added for the smtp-notify service.

Similar to 2009/619,
Can this privilege reduction be done with a method context instead
of by the daemon?  If so, why isn't that the choice?  If not,
why not?

What uid/gid does the daemon run with and why -- unless it is noaccess.

Additionally this case seems not to follow the SMF policy for
configuring properties.  See
http://sac.eng.sun.com/cgi-bin/bp.cgi?NAME=SMF.bp
(there is an opensolsaris.org equivalent, but that website is
not presently responding so I can't cut a paste the url).
See appendix D relative to value_authorization.

Nit, I suspect there's a case dependency on PSARC/2009/617

Gary..


smtp-notify: Email Notification Daemon for Software Events [PSARC/2009/619 FastTrack timeout 11/18/2009]

2009-11-17 Thread Gary Winiger
> Rob's sent me updated materials which reflect the clarifications due 
> to the conversation here around privileges and the removal of 
> config/debug from the manpages.
> 
> I've put them in the case directory.

> 4.11. Security Impact:
>   During daemon initialization, the smtp-notify daemon will reduce its
>   privileges to the following minimal set:
> 
>   afsr# ppriv 104651
>   104651: /usr/lib/fm/notify/smtp-notify
>   flags = PRIV_AWARE
>   E: basic,proc_setid
>   I: basic,proc_setid
>   P: basic,proc_setid
>   L: basic,proc_setid

The updated materials don't state what uid(s)/gid(s) the service runs
with.  If it starts with uid/gid 0 and changes it's uid/gid, what is
the new uid?
Note: proc_setid Allow a process to set its UIDs at will, assuming
UID 0 requires all privileges to be asserted.
Can this privilege reduction be done with a method context instead
of by the daemon?  If so, why isn't that the choice.  If not,
why not?

Nit, I suspect there's a case dependency on PSARC/2009/617

Gary..


Software Events Notification Parameters CLI [PSARC/2009/617 FastTrack timeout 11/18/2009]

2009-11-17 Thread Gary Winiger
> New exported interface  Stability   Binding
> ---
> setnotify subcommand of svccfg(1M)  Committed   Patch
> listnotify subcommand of svccfg(1M) Committed   Patch
> delnotify subcommand of svccfg(1M)  Committed   Patch

It seems to me that setnotify and delnotify would qualify
as auditable administrative actions.  I see no mention of
audit.

Gary..


PSARC 2009/576 pam_krb5 PKINIT support - APPROVED

2009-11-17 Thread Gary Winiger
> > The submitter has updated the spec and I believe all of the issues have
> > been addressed.  The timer expired yesterday, this case is now
> > approved.
> 
>   I believe this is premature.  In any case Darren and I discussed
>   things Wed afternoon and came up with a number of points.

Again thanks for the time to do another review.  I split out the "final"
man page into the case directory for easier viewing.  Using it as the
"final" spec along with pkinit-final.txt, unfortunately, I believe there
are still open issues.  I've been told the project team is on holiday.
I'll move the timer to 3 Dec if the project team is not at the next PSARC
meeting.

As I said, Darren and I chatted last week.  (I'm sure he'll correct me
if I've misstated our conversation.)  I also received unsolicited
mail from someone in the Sun field who supports large customers stating
that PAM is difficult enough to configure, so my previous points 1 and 2
should not be taken lightly.  That was also part of Darren and my discussion.

1 I'm still uncomfortable with stacking pam_krb5 multiple
  times within the same stack type.  IMO, it will lead
  to more confusion than the cost of generating a new
  module.  I'll "hold my nose[tm]" here and hope the project
  team doesn't get customer calls.

2 I'm uncomfortable about keying off of an empty PAM_AUTHTOK
  to mean do PKINIT.  See above.

With this input in mind, I'm no longer comfortable holding my nose and
feel TCR strong about having this resolved.  Darren and I believe there
are straight forward solutions to 1-2:
* provide a separate pam_pkinit module (my and the field person's
  preference),
* add a "pkinit" option to pam_krb5.
and do not key off of an empty PAM_AUTHTOK.  I feel TCA strong about
the separate module.  Given the project's schedule, according to the
manager, first chance to integrate isn't until 2010/02, I believe
factoring the code, most of which is library, into a separate module
is doable and the cleanest way to view a pam.conf configuration.

The man page and pkinit-final differ with respect to keying off
of PAM items:

"In order to avoid misleading prompting by pam_authtok_get (which
assumes a password must be prompted for) pam_krb5 would be modified
to do its own prompting when it determines that the PAM_USER and
PAM_AUTHTOK are not available which indicates it is above pam_authtok_get
in the auth stack.  pam_krb5 would assume at this point that PKINIT
is to be used to acquire the user's Kerberos credential.  If PKINIT
fails to acquire a Kerberos credential an error would be returned."

I assume that the man page is accurate and only PAM_AUTHOTK is keyed (recall
the TCR strongness to resolve this as above).

Relative to my previous point 3

3 In the case of stacking two pam_krb5(5) modules such that
  the first will pass through to pam_authtok_get(5), I'm unclear
  from the pam_sm_authenticate() spec what pam_authtok_get will
  do.  Please specify what PAM items are set by the first
  instance so the admin knows what they will get from
  pam_authtok_get.  I suspect there are two cases here:
 * PKINIT is not done, or fails;
 * PKINIT succeeds.

The man page seems silent, however pkinit-final says:

"pam_krb does not set any PAM items when doing PKINIT on the auth
stack."

Independent of how pkinit is stacked, PAM_USER must be set to the
authenticated user's name if the auth stack succeeds.  Perhaps I've
missed something in my reading, I don't see where PAM_USER is set by
this proposal.  (Calling pam_get_user(3) ensures that PAM_USER is set ;-)
Viz:
+   login auth required   pam_unix_cred.so.1
+   login auth sufficient pam_krb5.so.1
+   login auth requisite  pam_authtok_get.so.1
+   login auth required   pam_dhkeys.so.1
+   login auth required   pam_unix_auth.so.1

>From pkinit-final:

"The pam_krb5 password module will change in that if PKINIT
authentication was done it will return PAM_IGNORE in the following
cases:

- the new passwd is NULL
- the old passwd is NULL
- verification of the old passwd fails.

If none of the above is true then pam_krb tries to change the password
and will return an error if that fails.  The rational behind this is if
some PAM module causes pam_acct_mgmt() to return PAM_NEW_AUTHTOK_REQD
and/or the app subsequently calls pam_chauthtok(), pam_krb5 will change
a user's password.  But this may well fail: the KDC may not want to
allow a PKINIT user to change/set a password since the user may be
expected to use PKINIT."

This information does not seem to be in the man page.  How does the
administrator know it?  Not being a pkinit expert, I'd like to understand
how the password stack will know if the user was authenticate

acpihpd ACPI Hotplug Daemon [PSARC/2009/551 fast-track timeout 10/19/2009]

2009-11-16 Thread Gary Winiger
Gerry,

>   Please also refer to inline comments below.
>   Thanks!
>   --Gerry
> 
> Gary Winiger <mailto:gww at eng.sun.com> wrote:
> > Mike,
> > 
> >> I'm working with Intel to answer your questions.  Essentially we
> >> want to provide the least amount of access possible for this daemon
> >> to do its job.
> > 
> > IIRC, my initial question had 3 parts:  How does the project meet
> > the SMF requirement for authorizations to manage?  What is the
> > Method Context used to start the service? The service is to be
> We haven't defined any method_environment, method_profile, 
> method_credential or method_context properties in the manifest file.
> So it should use the default configuration, is that OK?

Not really.  The point is to meet the principle of least privilege.
That is done with a method_context in the start method.  The
default method_context is euid=ruid=egid=rgid = 0, privs = all.
Why is this required for this service?  What above noaccess,
privs = none is actually required?

> > enabled only on the xxx platform - how is this done?
> The service will be enabled on all x86 platforms. We provide an x86
> specific package named SUNWacpihpd, which includes the service 
> manifest file for acpihpd. When installing the package, the acpihpd 
> service should be installed and enabled. So seems we don't need to
> touch the platform profile file, is that true?

I personally don't know about how the platform profiles are
intended to be used.  Contact the smf team about that.  The
SMF usage policy
http://hub.opensolaris.org/bin/view/Community+Group+arc/SMF%2Dpolicy
states:
"Services must be delivered (by manifest or programatically) disabled by
 default to align with Sun's security goals. Projects impacted by
 Appendix C, must consult with the ARC to determine if this aspect of the
 policy is applicable."

So, it seems that the project team should address why and how
the service is enabled.

> > I'd like to clarify the first part about authorizations.  When
> > we talked I may not have been complete.
> > If there are no properties that configure the service as in
> > a property group of type application, there is no need for
> > value authorizations to manage them.
> Currently acpihpd service doesn't define any properties of category
> "application", so seems we don't need to define the "modify_authorization",
> "value_authorization" and "read_authorization" security properties.
> Is that true?

"application" type property groups are not the only types that
have configurable properties.  The question is about any/all
configurable properties.  Property group types are arbitrary.

> > If the service is never intended to be enabled/disabled by
> > the administrator (but always enabled/started automatically
> > at boot time and never disabled), there is no need for
> > action/value authorizations to manage the service.
> The service should always be enabled and not intended to be managed
> by administrators.

So there are no circumstances that the service should be disabled?

Then I think the open questions are:
1) what is the least user/group ids and privileges?
2) how is the service enabled?
3) is there any configuration?

Gary..


PSARC 2009/576 pam_krb5 PKINIT support - APPROVED

2009-11-13 Thread Gary Winiger

> The submitter has updated the spec and I believe all of the issues have
> been addressed.  The timer expired yesterday, this case is now
> approved.

I believe this is premature.  In any case Darren and I discussed
things Wed afternoon and came up with a number of points.  Since he
was traveling, I was going to send them.  I've not had the chance
to do so yet.  I'll review whter the case stands by next meeting
to ensure the outstanding issues are resolved.

Gary..


[kerberos-discuss] pam_krb5 PKINIT support [PSARC/2009/576 FastTrack timeout 10/29/2009]

2009-11-11 Thread Gary Winiger

> I think this is 
> sufficient for now and it doesn't preclude adding module options or a 
> krb5.conf stanza (or even user_attr(4) name=value pairs) to control this 
> in the future.

Hopefully pam_eval will be a longer term way of doing this.

> I'm happy with the latest spec that has been proposed.

I asked for through today at the meeting.  Here's my summary:

1 I'm still uncomfortable with stacking pam_krb5 multiple
  times within the same stack type.  IMO, it will lead
  to more confusion than the cost of generating a new
  module.  I'll "hold my nose[tm]" here and hope the project
  team doesn't get customer calls.

2 I'm uncomfortable about keying off of an empty PAM_AUTHTOK
  to mean do PKINIT.  See above.

3 In the case of stacking two pam_krb5(5) modules such that
  the first will pass through to pam_authtok_get(5), I'm unclear
  from the pam_sm_authenticate() spec what pam_authtok_get will
  do.  Please specify what PAM items are set by the first
  instance so the admin knows what they will get from
  pam_authtok_get.  I suspect there are two cases here:
 * PKINIT is not done, or fails;
 * PKINIT succeeds.

4 I'm still concerned that pam_sm_acct_mgmt() isn't applied
  when PKINIT is done.  Viz with the diff marks removed.

 Kerberos V5 Account Management Module
The Kerberos account management component provides a
function to perform account management, pam_sm_acct_mgmt().
This function checks to see if the pam_krb5 authentication
module has noted that the user's password has not expired.
This does not apply if the module is using PKINIT
preauthentication. The following options may be passed in
to the Kerberos V5  account management module:

  Does pam_sm_authenticate() fail?  What the outcome of not
  applying account management?  Does it mean accounts cannot be
  expired if PKINIT is used?

5 I'm still concerned that pam_sm_chauthtok() isn't applied
  when PKINIT is done.  Viz with diff marks removed.

 Kerberos V5 Password Management Module
The Kerberos V5 password management component provides a
function to change passwords, pam_sm_chauthtok(), in the
Key Distribution Center (KDC) database. This does not
apply if the module is using PKINIT preauthentication.
The following flags  may be passed to pam_sm_chauthtok(3PAM):

  What does this mean to the example PAM password stack and kpasswd?

6 Nit, this project has a Minor release binding.  Therefore
  it makes no sense to describe things in terms of dtlogin.

7 Has the project team coordianted with SunRay (SRSS) team
  (as the primary implementor of smartcards)?  Has the project
  team coordinated with the TX team and how this may work/affect
  the multi-level desktop?

Bottom line, IMO, 3, 4 and 5 need to be addressed in the spec.  If they
have been, please point me to where?  I'll "hold my nose[tm]" relative
to 1 and 2.

Thanks for the extra time,
Gary..


[kerberos-discuss] pam_krb5 PKINIT support [PSARC/2009/576 FastTrack timeout 10/29/2009]

2009-11-09 Thread Gary Winiger
> > What is the Release Binding?
> 
> Minor/Patch

Which is it Minor or Patch -- they are different see
http://sac.eng/BestPractices/release_taxonomy.html
and
http://sac.eng/cgi-bin/bp.cgi?NAME=interface_taxonomy.bp

Patch implies Minor, Minor does not imply Patch.

Gary..


[kerberos-discuss] pam_krb5 PKINIT support [PSARC/2009/576 FastTrack timeout 10/29/2009]

2009-11-09 Thread Gary Winiger
> > >  I want to see an updated pam_krb5(5) man page explaining how to use 
> > > PKINIT 
> > >  and including the example PAM stacks for use of PKINIT.

I don't seem to find a Release Binding in the case materials.
What is the Release Binding?

Gary..


[kerberos-discuss] pam_krb5 PKINIT support [PSARC/2009/576 FastTrack timeout 10/29/2009]

2009-11-09 Thread Gary Winiger
> > >  I want to see an updated pam_krb5(5) man page explaining how to use 
> > > PKINIT 
> > >  and including the example PAM stacks for use of PKINIT.

If I understand the project correctly:

* The project wants to do different prompting than pam_authtok_get(5).

* The project proposes to keying off of the contents of PAM_AUTHTOK

* The project proposes adding new configuration options.

* The project proposes to bypass account management and password
  change.

* The project proposes changes the the PAM stack.

I'd like to propose a different tact.  This seem to be to suggest a
separate PAM service module.  Has that been considered?
I'd suggest something like pam_pkinit(5) that interacts with the current
way the PAM stack is configured for pam_krb5(5).

* pam_pkinit would sit on the PAM stacks above pam_authtok_get(5)

* If the KDC and krb5.conf(5) are configured for PKINIT and there's
  no present user (PAM_USER), pam_pkinit:pam_sm_authenticate()
  prompts for the type of login desired:
"Public Key," "Password," ...
  If it is "Public Key", do the pkinit thing
  If it is "Password", return PAM_IGNORE.

* If the KDC and krb5.conf(5) are configured for PKINIT and there
  is a present user (PAM_USER), pam_pkinit:pam_sm_authenticate()
  determines if the user had done the pkinit thing.
  If yes, do the pkinit thing for reauthentication.
  If not, return PAM_IGNORE.

* If the KDC and krb5.conf(5) are not configured for PKINIT,
  return PAM_SYSTEM_ERR (or possibly PAM_IGNORE).

* for pam_pkinit:pam_sm_setcred(), return PAM_IGNORE.

* pass sufficient information in PAM_USER, PAM_AUTHTOK and 
  SUNW-KRB5-AUTH-DATA pam_data for pam_krb5(5) to know what
  to do.  Or add another pam_krb pam_data_item ala
  KRB5_AUTOMIGRATE_DATA.  Note the definition of pam_authtok_get(5)
  is to only prompt for the user name if PAM_USER is not set an
  only prompt for an authtok (using PAM_PROMPT) if PAM_AUTHTOK
  is not set.

Why should it be that account management and password change are disallowed?

It seems to me that PKINIT would act similarly to password in pam_krb5
that account management could be done.  It seems to me that the public
key certificate may have expired and the KDC would say so and return
PAM_NEW_AUTHTOK_REQD.

Similarly it seems to me that even if the user had done a public key login
that they may which to update their Kerberos password.

To me, a separate module as described seem cleaner and easier to understand
and configure than how I understand the current proposal.
What have I missed in my understanding (or have I missed so much that
it can't even be explained ;-)?

Gary..


Open Fabrics User Verbs (OFUV) primary kernel components [PSARC/2009/421 FastTrack timeout 11/13/2009]

2009-11-06 Thread Gary Winiger

> I am the licensee.

As a licensee you should know what to do.  Contact your mentor
and RTM
http://sac.eng.sun.com/arc/Processes/ARC-LicenseeDuties.html

In general it's automagic it you use the tools.

Gary..


Open Fabrics User Verbs (OFUV) primary kernel components [PSARC/2009/421 FastTrack timeout 11/13/2009]

2009-11-06 Thread Gary Winiger
Ted,

> Note to PSARC admin folks: I may need manual
> intervention to get this into the agenda.
> (As far as I can tell, the tools don't support
> a fasttrack using an existing case with
> one-pager already in place.)

Not sure what you're asking.  If you have a case that needs
an owner and it is a fast track, you need to directly find
an owner from the list of available owners (members, intern,
licensees).

Gary..


Abandon the use of snapshots in mntfs. [PSARC/2009/352 FastTrack timeout 06/19/2009]

2009-11-06 Thread Gary Winiger
Brian,

> I little house cleaning. After this case was approved, the project
> team decided to take a different approach which was submitted and
> approved in PSARC 2009/566. Since the approach in 2009/352 is no
> longer valid, I am marking it as withdrawn to avoid future confusion.

Wouldn't superceeded be more appropriate?

Gary..


[kerberos-discuss] pam_krb5 PKINIT support [PSARC/2009/576 FastTrack timeout 10/29/2009]

2009-11-05 Thread Gary Winiger
> While working out the various permutations of PAM auth stacks I've
> discovered that my fasttrack was not complete in regards to new
> interfaces.

At yesterday's meeting, I asked for more time through today.
Unfortuntely, I'm not going to be able to get through this
case today.  So, I'd like to ask the case be extended to next
meeting.

A few brief comments that may have already been covered,
if so, I apologize.  1st, I think pam_eval() that Nico mentioned
could well be a positive alternative -- I know I'm the bottle
neck in code review.  2nd, applications can set PAM_AUTHTOK
just the same way they can set PAM_USER.  So keying off unset
PAM_USER/PAM_AUTHTOK may not be as robust as it might have been
thought.  3rd, a module could be written and stacked above
pam_authtok_get(5) that prompted for what type of authentication
was desired and set PAM_PROMPT before returning PAM_IGNORE
and falling into pam_authtok_get(5).

I'm working to get caught up on this case.

I unfortunately missed the pre-review and when I asked where it
stood, was told the issues had been resolved.

More later,
Gary..
P.S.I, too, would really like to see a man page update for pam_krb5(5)
as a separate part of the case materials.


EOF of plotting components [PSARC/2009/540 FastTrack timeout 10/21/2009]

2009-11-04 Thread Gary Winiger
> Garrett asked me for codereview, and in looking, I've noticed that xterm 
> still 
> supports the crufty old Tek 4014 mode, and one can actually make it work with 
> graph and plot (at least).  So it's *conceivable* that someone is still using 
> this, although it would have to be nasty moldy old code, I'd think.
> 
> Given that those people can certainly use graph | postplot, we may officially 
> not care about them.  I'm willing to accept that; I just want to make sure 
> those 
> with an opinion know that we're removing the bundled stuff that someone might 
> be 
> using, because, strictly speaking, it's one of the few workable things we 
> have 
> in Solaris at the moment.
> 
> Given the followups for plotutils, I can't imagine this will be any kind of 
> issue for long, so this is only a nit to make doubly sure the committee 
> agrees.

At today's PSARC meeting Garrett asked for a follow up to this
comment.  Since graph is not part of the removal, and there
appears to be an OpenSolaris follow up.  I don't see an issue
surrounding cleaning up the 4014 stuff in a Minor release.

Gary..


contract for 2008/181 Hotplug Framework to use 2000/517 audit interfaces and 2003/397

2009-10-29 Thread Gary Winiger
I've executed and recorded 2000/517-19 for PSARC/2008/181 Hotplug Framework
to use the project private interfaces described in the prototype contract
approved in 2003/397.  2003/397 and 2008/181 have a symlink to the executed
contract.

Gary..


PSARC 2009/538 EOF of Tadpole SPARCLE

2009-10-20 Thread Gary Winiger
> I didn't see any +1s on this, although the case timed out.  Can I get a 
> member to review this?

The case states: 
> Approximately 2.5 years ago, we integrated the basic platmod support
> for the Douglas platform (PSARC 2007/152), which is the Tadpole SPARCLE
> laptop.  These laptops contain an UltraSPARC-IIe or IIi processor from 500 to
> 650 MHz.
> 
> Even at that time, the platforms were a bit on the underpowered side.
> 
> This laptop was very briefly marketed by Sun as the Sun Ultra 3, but it
> would appear that very few units were sold under this brand.  (Those units
> shipped with a customized version of Solaris 10, provided by Tadpole.)
> Note that the Sun Ultra 3 was also used to cover mobile laptops from 
> Naturetech, which are not affected by this case.

And I'm aware that there is a "Tadpole" based on UltraSPARC IIIi
that is still in use in some TX environments.  I suspect such
use would also carry over to Solaris Next with TX.  How does
this case affect that "Tadpole"?   And if it does, have you checked
with the TX folk on how that might affect those customers?

Gary..


acpihpd ACPI Hotplug Daemon [PSARC/2009/551 fast-track timeout 10/19/2009]

2009-10-16 Thread Gary Winiger
Mike,

> I'm working with Intel to answer your questions.  Essentially we want to
> provide the least amount of access possible for this daemon to do its
> job.

IIRC, my initial question had 3 parts:  How does the project meet
the SMF requirement for authorizations to manage?  What is the
Method Context used to start the service? The service is to be
enabled only on the xxx platform - how is this done?

I'd like to clarify the first part about authorizations.  When
we talked I may not have been complete.
If there are no properties that configure the service as in
a property group of type application, there is no need for
value authorizations to manage them.
If the service is never intended to be enabled/disabled by
the administrator (but always enabled/started automatically
at boot time and never disabled), there is no need for
action/value authorizations to manage the service.
If both are true and there is no need for defining authorizations
for the service, there is no need for a service related 
Rights Profile.

HTH,
Gary..
> 
> For starting the daemon, I'm guessing that we'll have to create
> something similar to
> usr/src/cmd/svc/profile/platform_SUNW,SPARC-Enterprise.xml
> for these x86 machines since we want the service to be enabled by
> default on the platforms that support it.  Does anyone have any
> recommendation about who to talk to about how to get this done?
> 
> Thanks,
> 
> Mike
> 
> On Tue, 2009-10-13 at 13:29 -0700, Gary Winiger wrote:
> > >   The acpihpd is started and stopped using the standard Solaris service
> > > management facility. The acpihpd is an smf service, and will only be 
> > > enabled on
> > > the platforms which supports IOH/CPU/memory hot plug.
> > 
> > How is the SMF usage policy met?
> > http://opensolaris.org/os/community/arc/policies/SMF-policy
> > Specifically the authorizations, what Rights Profile the authorizations
> > will be contained in, method context, ...
> > 
> > How will this be enabled?  Is it enabled from platform.xml?
> > 
> > Gary..
> 
> 
> 


acpihpd ACPI Hotplug Daemon [PSARC/2009/551 fast-track timeout 10/19/2009]

2009-10-13 Thread Gary Winiger
>   The acpihpd is started and stopped using the standard Solaris service
> management facility. The acpihpd is an smf service, and will only be enabled 
> on
> the platforms which supports IOH/CPU/memory hot plug.

How is the SMF usage policy met?
http://opensolaris.org/os/community/arc/policies/SMF-policy
Specifically the authorizations, what Rights Profile the authorizations
will be contained in, method context, ...

How will this be enabled?  Is it enabled from platform.xml?

Gary..


Increase the maximum value of NGROUPS_MAX to 1024 [PSARC/2009/542 FastTrack timeout 10/14/2009]

2009-10-08 Thread Gary Winiger
> >> This project proposes changing the maximum value for NGROUPS_MAX
> >> from 32 to 1024 by changing the definition of NGROUPS_UMAX from 32
> >> to 1024.
> >
> >> NGROUPS_MAX as defined by different Unix versions are as follows
> >> (http://www.j3e.de/ngroups.html):
> >> 
> >>Linux Kernel >= 2.6.3   65536
> >
> > Just a note: a (possibly future) change above INT16_MAX
> > will require fixing ON audit code that assumes the
> > maximum number of groups is a "short" -- this would need
> > to be changed to "ushort".
> 
> I found that bit of code; more is needed, specifically adding so much
> data to a cred without using it.

Probably off topic, so let's take it off line if there's more
to discuss.  I was referring to au_to_groups() in the kernel
and au_to_newgroups() in userland.

Gary..


Increase the maximum value of NGROUPS_MAX to 1024 [PSARC/2009/542 FastTrack timeout 10/14/2009]

2009-10-08 Thread Gary Winiger
> This project proposes changing the maximum value for NGROUPS_MAX
> from 32 to 1024 by changing the definition of NGROUPS_UMAX from 32
> to 1024.

> NGROUPS_MAX as defined by different Unix versions are as follows
> (http://www.j3e.de/ngroups.html):
> 
>   Linux Kernel >= 2.6.3   65536

Just a note: a (possibly future) change above INT16_MAX
will require fixing ON audit code that assumes the
maximum number of groups is a "short" -- this would need
to be changed to "ushort".

+1
Gary..


Removal of NIS+ [PSARC/2009/530 FastTrack timeout 10/12/2009]

2009-10-07 Thread Gary Winiger
> I'm sponsoring this Fast Track for Raja Gopal Andra, the RPE naming team,
> and the NIS+ core team.  It requests removal of all the NIS+ related
> interfaces and documentation in a Minor Release.  While this is somewhat
> long, the case owner and project team believe it still qualifies for a
> Fast Track as the length details the how the EOL required dependences are
> satisfied.

This case was approved as specified at today's PSARC meeting.

Gary..


Removal of NIS+ [PSARC/2009/530 FastTrack timeout 10/12/2009]

2009-10-05 Thread Gary Winiger
I'm sponsoring this Fast Track for Raja Gopal Andra, the RPE naming team,
and the NIS+ core team.  It requests removal of all the NIS+ related
interfaces and documentation in a Minor Release.  While this is somewhat
long, the case owner and project team believe it still qualifies for a
Fast Track as the length details the how the EOL required dependences are
satisfied.

This project is unrelated to pam_ldap(5) and has no effect on it or
the Sun Java System Directory Server.

The current NIS+(1) man page and redacted opinions for PSARC/2000/370 (EOL of
NIS+) and PSARC/2004/638 (Removal of Sun Directory Server 5.1 from Solaris WOS)
are in the case directory.

The timer is set for 12 Oct., 2009.

Gary..
~~~
Background:
==
NIS+(1) seems to have been introduced prior to the recording of PSARC cases
in 1991.  The first references I've found are Vikul Khosla's nisaddcred flag
(PSARC/1992/187) and Chuck McManis' NIS+ diagnostics (PSARC/1992/188) cases.
They refer to NIS+, but not to any previous cases, though ZNS demos
(PSARC/1991/023) seems somehow related.  The NIS+ promise never achieved
sufficient traction to supplant NIS (nee YP).  X500 directory servers and
the Lightweight Directory Access Protocol (LDAP) have supplanted the promise
of NIS+.  EOL of NIS+ (PSARC/2000/370) started the process leading to this
case.

Dependences:
===
o PSARC/2000/370 (EOL of NIS+) opinion states:

2.  Decision & Precedence Information
. . .
Note: the approval of  this  case  does  not  authorize  the
actual  removal  of NIS+ support from Solaris.  That removal
will need to be the subject of another case.  That case will
depend on at least:

 PSARC/2000/311  NIS+/LDAP Migration
 
 PSARC/2000/363  Native LDAP phase II
 
 LSARC/2001/101  Bundling of LDAP Directory Server
 {actually PSARC/2001/101 -gww}

4.  Opinion

The main issue raised for this case was  that  of  providing
adequate  notice  and  support  to existing NIS+ users.  The
requirement to announce the upcoming EOL of NIS+ as soon  as
possible in order to head off new adoption of the technology
was seen as conflicting with the requirement  not  to  panic
existing users.

The committee decided that a three step schedule:

 1.   adequate notice
 
 2.   availability of all replacement technology
 
 3.   actual EOL
 
would  satisfy  both  requirements  and  imposed   technical
changes  needed  to  obtain  such  a  schedule.  See [2] for
opposing views.

{[2] Email discussion.  File:  mail}

o PSARC/2004/638 (Removal of Sun Directory Server 5.1 from Solaris WOS) was
  denied.  The denial was overturned on appeal and iDS was removed from
  the Solaris WOS.  That removal impacts the removal of NIS+ as the
  opinion states:

4.10.  Potential Impact on NIS+ Removal

PSARC/2000/370 "EOL of NIS+" states:
 "Note: the approval of this case {PSARC/2000/370}  does
 not  authorize  the actual removal of NIS+ support from
 Solaris.  That removal will need to be the  subject  of
 another case.  That case will depend on at least:
 
 PSARC/2000/311  NIS+/LDAP Migration
 
 PSARC/2000/363  Native LDAP phase II
 
 PSARC/2001/101  Bundling of LDAP Directory Server"
 
Without a bundled LDAP directory server,  the  preconditions
for  the  removal  of NIS+ from Solaris are not met and NIS+
may not be removed from Solaris based on the approved archi-
tectural decisions.

Details:
===
* PSARC/2000/311 NIS+/LDAP Migration and PSARC/2000/363 Native LDAP
  phase II have both been delivered since Solaris 9.

* 1) adequate notice
The announcement of the EOL of NIS+ has been completed since Solaris 9
The current (S10u8) NIS+ man pages contain the note:
NIS+ might not  be  supported  in  future  releases  of  the
Solaris  operating  system.  Tools to aid the migration from
NIS+ to LDAP are available in the current  Solaris  release.
Formoreinformation,visit
http://www.sun.com/directory/nisplus/transition.html.

* 2) availability of all replacement technology
 With the integration of PSARC/2008/745 nss_ldap shadowAccount support
 in the current development release and the back port to S10u8,
 all the functionality that was provided by NIS+ is now available
 using a LDAP directory server as a name service (i.e., nsswitch.conf
 configuration such as shown in the delivered sample nsswitch.ldap).

* With the permission to remove the bundled LDAP Directory Server by
  the approval upon appeal of 

CUPS as the default print service [PSARC/2009/514 FastTrack timeout 10/02/2009]

2009-09-29 Thread Gary Winiger
> >> 2) Are there any plans to enhance CUPS to distributed network printer 
> >> configuration via NIS?  Or is there a replacement for this service 
> >> already present?  (I guess this is what Bonjour is intended for?)
> > There are no plans for NIS.  CUPS supports LDAP, DNS-SD, SLP, and CUPS 
> > Browse protocols for print queue advertisement/discovery.  Since CUPS 
> > is the "de facto" standard print service on *nix these days, it's 
> > interoperable with other systems.  Our name service support support 
> > isn't.
> 
> So one thing I'd like to see here, in order to eventually remove the LP 
> service altogether, is a set of tools or documents to help 
> administrators migrate from using NIS to other protocols.

Is something more than PSARC/2001/282 NIS to LDAP Transition Project
(N2L) being requested?

Gary..


contract for 2008/725 TMP Support to use 2000/517 audit interfaces and 2003/397

2009-09-25 Thread Gary Winiger
I've executed and recorded 2000/517-18 for PSARC/2008/725 TPM Support
to use the project private interfaces described in the prototype contract
approved in 2003/397.  2003/397 and 2008/725 have a symlink to the executed
contract.

Gary..


Label Builder CLI [LSARC/2009/457 FastTrack timeout 08/31/2009]

2009-09-10 Thread Gary Winiger
> With Gary's issues clarified can someone +1 this project?

My last comment was really just a nit, so +1.

Gary..


Label Builder CLI [LSARC/2009/457 FastTrack timeout 08/31/2009]

2009-09-10 Thread Gary Winiger
> >>> ATTRIBUTES
> >>> See attributes(5) for description of the following attributes:
> >>> _
> >>> |  ATTRIBUTE TYPE |  ATTRIBUTE VALUE   |
> >>> |_|_ ___|
> >>> | Availability| SUNWtgnome-tsol-libs|
> >>> |_|_|
> >>> | Interface stability | Uncommitted |
> >>> |_|_|
> >>
> >> The output from the command should probably be "Not An Interface"
> 
> Calling scripts will rely on both the printed string for the selected 
> label and the exit status so this very much needs to be an interface.

Maybe I'm still confused.  I agree that exit status can be
"stable".  The string spit out by label_to_str(3) is not "stable".
It is controlled by the sites label_encodings(4).

Gary..


Label Builder CLI [LSARC/2009/457 FastTrack timeout 08/31/2009]

2009-08-25 Thread Gary Winiger
> I have placed the attached man page document in the case directory under
> the materials subdirectory.

For the record from a private thread with the project team:

My primary comment on the man page and case all together is that
it's unclear what the output of call to the CLI is.  Is it a single
label, a dimming list (from the contracted project private interfaces),
a construction of all labels between min and max, in which case what
does the default have to do with it.

Also the man page doesn't say what context (global zone,
sys_trans_label, ...) is needed?

>   txselectlabel - label selection dialog utility

It's unclear to me how this utility presents a dialogue
with the user.
 
> EXIT STATUS
>   The following exit values are returned:
> 
>   0 A label was successfully selected
>   
>   1 Missing or ivalid command argument(s)
> 
>   2 A label translation error occured

Is there something more here?  str_to_label gives a pointer
to what part of the string was in error.
Is something spit out to stderr?

>   5 Dialog was canceled without selecting a label

It's unclear what dialogue is taking place.  More
information would be useful.

> 
> FILES
>   The following files are used by this utility:
> 
>   /usr/bin/txselectlabel  The command-line executable
> 
> ATTRIBUTES
>   See attributes(5) for description of the following attributes:
>   _
>   |  ATTRIBUTE TYPE |   ATTRIBUTE VALUE   |
>   |_|_ ___|
>   | Availability| SUNWtgnome-tsol-libs|
>   |_|_|
>   | Interface stability | Uncommitted |
>   |_|_|

The output from the command should probably be "Not An Interface"

Gary..



daemon() in libc [PSARC/2009/444 FastTrack timeout 08/24/2009]

2009-08-19 Thread Gary Winiger
> Here's updated man page with new COMMENTS section giving high level 
> overview of the options for daemon environment setup.
> 
> If there is a need for more specific references (to actual functions 
> like priv_set(3C) and such) I can add them.

Probably not, but please add privileges(5) to the SEE ALSO.

Gary..



Anti-spoofing Link Protection [PSARC/2009/436]

2009-08-19 Thread Gary Winiger
> gw-1  What's the administrative interface?  dladm?
What's the policy for setting these properties?

Eric and I were going to resolve any issues with the policy
for these properties offline.  Since the meeting I've done
the research I hadn't gotten to.  dladm is contained in
the Network Management Rights Profile with appropriate
privilege to make they necessary system calls.

Gary..




PSARC 2008/181 Solaris Hotplug Framework

2009-08-18 Thread Gary Winiger
> I've updated the case directory in the commitment3.materials directory 
> with updated materials.

No such file or directory.

/net/sac.sfbay/export/sac/Archives/CaseLog/arc/PSARC/2008/181
marduk.eng-gww[200]: l
20080306_govinda.tatti@commitment2.materials/
20090617.2008.181.inception@   inception.materials/
20090617.2008.181.inception.mp3@   issues
20090722.2008.181.commitment@  issues.broken
20090722.2008.181.commitment.mp3@  mail
IAM.Solaris_Hotplug_Framework  sc/
SCCS/  uirb/
commitment.materials/



daemon() in libc [PSARC/2009/444 FastTrack timeout 08/24/2009]

2009-08-17 Thread Gary Winiger
> DESCRIPTION

>  If the nochdir option is other than zero the working directory will
>  not be changed to the root directory, otherwise it will be.

Is this / or ~root?

> RETURN VALUES
>  Upon successful completion, daemon() returns 0. Otherwise it returns -1.

What are the failure modes?  Is errno set?

Clarifications in the man page would be helpful.

Gary..



adt_alloc_event update [PSARC/2009/400 Self Review]

2009-07-20 Thread Gary Winiger
I'm self sponsoring this case.  I believe it qualifies for self-review and
am marking it "closed approved automatic."   I am happy to turn it into a
fast track and set the timer if anyone believes I've misjudged.

The case requests a Patch Release Binding and an unchanged Contracted Project
Private Interface Taxonomy.  The project team has no current plan to backport.
No current uses of adt_alloc_event() are affected by this change.

A full diffmarked man page is in the case directory.

Gary..
~~~
Background:
==
PSARC/2000/517 "Thread-safe audit API" introduced a number of user land
(Contracted) Project Private interfaces for generating Solaris Audit
records.  PSARC/2003/397 "Contracted audit interfaces for open source"
further discussed the Contracts for those interfaces.  The interfaces can
be used without checking whether Solaris Audit is enable or that the audit
service, auditd(1m) is active.

In looking over the code, I noticed that adt_alloc_event() should be able
to return an error for invalid parameters.  Doing so has the potential to
save applications from a segment fault.
adt_event_data_t *adt_alloc_event(const adt_session_data_t
*session_data, au_event_t event_id);
returns an event structure to be filled in by the application based on the
event (event_id) passed to it.  Even if audit is off, it always returns the
structure.  If for some reason the event_id passed in isn't valid,
adt_alloc_event will presently return a adt_event_data_t pointer
(adt_event_data_t is a union of the defined events).  This could lead the
application to try to fill in memory outside of the memory allocated.  While
this should never happen because the use is contracted, thus the application
and structure should always be in sync, it is easy to return an error if it
does occur.

Proposal:
=
Add EINVAL to the returns for adt_alloc_event.

adt_alloc_event(3adt)

DESCRIPTION
 This set of three functions are used to generate audit records
 within the current audit session context defined by the
 session_data parameter to adt_alloc_event().  See the union
 adt_event_data definition in adt_event.h for the name of the
 structure that corresponds to the event_id.  For example,
 event_id ADT_login structure name is adt_login_t.

 adt_alloc_event() returns a pointer to memory allocated for an
 event of type event_id.  This structure is to be filled in by the
 caller to provide the user-specific data contained in the audit
 record.  The allocated memory structure includes linkage to the
 audit session handle.  It is the responsibility of the caller to
 free the event memory by calling adt_free_event() when it is
 no longer needed.

RETURN VALUES
 adt_alloc_event():
!= NULL OK
== NULL error; errno is set to one of the following:

+   EINVAL -- invalid event_id value
ENOMEM  unable to allocate memory



Redux: PSARC/2009/348 Security Labels for ZFS

2009-06-18 Thread Gary Winiger
> > issues in summary.  An updated spec will follow the convergence of the case.
> 
>   This case was approved at today's PSARC meeting.  An updated
>   spec will be delivered to the case tomorrow when I get the
>   wording straight for making mlslabel undelegatable.

Below and in the case (spec.txt) please find the updated spec.
Tim and zfs team, if the wording around delegation is inaccurate,
please let me and the project team know and suggest some proper
wording so it is clear to all.  spec.old and zfs.1m.old are the
previous verions (also under SCCS).

Thanks,
Gary..
~~~

I'm sponsoring this Fast Track for Ric Aleshire and the Trusted Extensions
development team.

Trusted Extensions was introduced in PSARC/2002/762 Layered Trusted
Solaris with filesystem interfaces defined in the subcase
PSARC/2005/723 Solaris Trusted Extensions Filesystem Labeling

One of the goals of Trusted Extensions was to make no modifications to
the on disk filesystem structures.  This was different than the releases
of Trusted Solaris (1.0-2.5.1, 7, 8).  In those systems on disk filesystem
changes were made in order to support labels.  That made those filesystems
incompatible with the unlabeled forms.  With the advent of
PSARC/2002/240 ZFS (Zettabyte Filesystem) some amount of labeling can be
introduced in a fully compatible way.

This case requests a Committed Interface Taxonomy, and a Patch Release
Binding with a dependency on PSARC/2002/240.

A full diffmarked zfs(1m) man page is in the case directory.

The timer is set for 17 June, 2009.

Gary..
~~~
Background:
==
The Trusted Extensions feature of Solaris provides sensitivity
labels, and mediates data access accordingly.  These labels are
associated with zones; each zone on a system is configured to
have a unique label.  Labels are not stored with the filesystem
but are inferred based on the containing zone.  Mount-time
policy controls access to filesystems and the objects they
contain.

Problem:
===
Based on customer requests for Trusted Extensions and possible
future Common Criteria Evaluation criteria, there are
requirements to be able to store labels with corresponding
data.  In Trusted Extensions, a ZFS dataset currently has only
an implied label, based on where it is mounted (i.e., in which
zone).  To prevent administrators or users from accidentally
mounting datasets in ways that would mislabel information, that
information should be recorded as a persistent ZFS attribute.
Labeled ZFS filesystems will also improve the security of
removable devices (such as USB media) in Trusted environments.

Proposal:

ZFS filesystem mechanisms make it possible to support labels as
attributes of the data.  To protect these labels from user
manipulation, they will be system attributes as defined by ZFS,
and will be supported by kernel policy to maintain the label
and control access to the corresponding data.

ZFS kernel mount logic will access the label attribute and
perform a check for label dominance, similar to the policy
found in lofs and nfs mount code.  Labeling of previously
unlabeled ZFS file systems will generally be automatic and
not require administrative action.

Details:
===
A new system property called "mlslabel" is defined.  Its value
on disk is a string which represents the internally encoded label
of the dataset.  (E.g., "0x0002-08-08", which corresponds to the
"public" label.)  mlslabel is an inheritable property; when not
present, it defaults to the string "none" to indicate no label
is present.  The mlslabel property follows the same rules as the
other inheritable properties.

When Trusted Extensions is enabled, mount-time checks will
verify that the dataset label matches the label of the zone
that the dataset is mounted into.  If the labels do not match,
the mount syscall fails with an EACCES error.

The mlslabel property may be set from the command line using the
zfs command, for example:
zfs set mlslabel=public export/something

Setting the mlslabel property can only be done when Trusted
Extensions is enabled. The file_upgrade_sl privilege is required
when setting an initial label, or changing a non-default label
to a higher level label.  The file_downgrade_sl privilege is
required when removing a label (setting it to "none") or when
changing a non-default label to a lower level label.

Unlike other properties, the mlslabel property is a Mandatory
 

Redux: PSARC/2009/348 Security Labels for ZFS

2009-06-17 Thread Gary Winiger
> issues in summary.  An updated spec will follow the convergence of the case.

This case was approved at today's PSARC meeting.  An updated
spec will be delivered to the case tomorrow when I get the
wording straight for making mlslabel undelegatable.

Gary..



Redux: PSARC/2009/348 Security Labels for ZFS

2009-06-17 Thread Gary Winiger
> From gww at eng.sun.com Tue Jun  9 18:02:31 2009
> Date: Tue, 09 Jun 2009 18:02:13 -0700 (PDT)
> From: Gary Winiger 
> Subject: Redux: PSARC/2009/348 Security Labels for ZFS
> To: PSARC-ext at sun.com
> Cc: rampart-dev-team at sun.com, ric.aleshire at sun.com
> Content-transfer-encoding: 7BIT
> X-PMX-Version: 5.4.1.325704
> 
> AAR, Fat fingered the case number when cleaning up the To and Cc lists.
> Please reply to this mail.
> 
> Gary..
> ==
> I'm sponsoring this Fast Track for Ric Aleshire and the Trusted Extensions
> development team.
> 
> Trusted Extensions was introduced in PSARC/2002/762 Layered Trusted
> Solaris with filesystem interfaces defined in the subcase
> PSARC/2005/723 Solaris Trusted Extensions Filesystem Labeling
> 
> One of the goals of Trusted Extensions was to make no modifications to
> the on disk filesystem structures.  This was different than the releases
> of Trusted Solaris (1.0-2.5.1, 7, 8).  In those systems on disk filesystem
> changes were made in order to support labels.  That made those filesystems
> incompatible with the unlabeled forms.  With the advent of
> PSARC/2002/240 ZFS (Zettabyte Filesystem) and its property structure defined
> by PSARC/2007/315  Extensible Attribute Interfaces, some amount of labeling
> can be introduced in a fully compatible way.
> 
> This case requests a Committed Interface Taxonomy, and a Patch Release
> Binding with a dependency on PSARC/2002/240 and PSARC/2007/315.
> 
> A full diffmarked zfs(1m) man page is in the case directory.
> 
> The timer is set for 17 June, 2009.
> 
> Gary..
> ~~~
> Background:
> ==
> The Trusted Extensions feature of Solaris provides sensitivity
> labels, and mediates data access accordingly.  These labels are
> associated with zones; each zone on a system is configured to
> have a unique label.  Labels are not stored with the filesystem
> but are inferred based on the containing zone.  Mount-time
> policy controls access to filesystems and the objects they
> contain.
> 
> Problem:
> ===
> Based on customer requests for Trusted Extensions and possible
>   future Common Criteria Evaluation criteria, there are
> requirements to be able to store labels with corresponding
> data.  In Trusted Extensions, a ZFS dataset currently has only
> an implied label, based on where it is mounted (i.e., in which
> zone).  To prevent administrators or users from accidentally
>   mounting datasets in ways that would mislabel information, that
> information should be recorded as a persistent ZFS attribute.
> Labeled ZFS filesystems will also improve the security of
> removable devices (such as USB media) in Trusted environments.
> 
> Proposal:
> 
> ZFS filesystem mechanisms make it possible to support labels as
>   attributes of the data.  To protect these labels from user
>   manipulation, they will be system attributes as defined by ZFS,
>   and will be supported by kernel policy to maintain the label
>   and control access to the corresponding data.
> 
> ZFS kernel mount logic will access the label attribute and
> perform a check for label dominance, similar to the policy
> found in lofs and nfs mount code.  Labeling of previously
>   unlabeled ZFS file systems will generally be automatic and
>   not require administrative action.
> 
> Details:
> ===
> A new system property called "slabel" is defined.  Its value is a
> string which represents the internally encoded label of the
> dataset.  (E.g., "0x0002-08-08", which corresponds to the
> "public" label.)  slabel is an inheritable property; when not
> present, it defaults to the string "none" to indicate no label
>   is present.  The slabel property follows the same rules as the
>   other inheritable properties.
> 
> When Trusted Extensions is enabled, mount-time checks will
> verify that the dataset label matches the label of the zone
> that the dataset is mounted into.  If the labels do not match,
> the mount syscall fails with an EACCES error.
> 
> The slabel property may be set from the command line using the
> zfs command, for example:
> zfs set slabel=0x0002-08-08 export/something
> 
> Setting the slabel property can only be done when Trusted
> Extensions is enabled. The file_upgrade_sl privilege is required
>   

Redux: PSARC/2009/348 Security Labels for ZFS

2009-06-16 Thread Gary Winiger
>   OK then ;-)  I'll be posting a summary of the issues discussed
>   and responses shortly so we're all on the same page.

During this case discussion a few points were raised.  In order to work
towards convergence of the case the project team would like to respond to those
issues in summary.  An updated spec will follow the convergence of the case.

Gary..
==

* PSARC/2007/315 Extensible Attribute Interfaces was referenced as a
  dependency.  The ZFS project team pointed out this was not a relevant
  reference and that PSARC/2002/240 ZFS (Zettabyte Filesystem) was the
  only case dependency required.

References to PSARC/2007/315 have been removed.

* What is the inheritance characteristic of the slabel property?

The slabel property is inherited just the same as the other
data set properties.  Modifying the slabel's value requires
the specified privilege.

* How does zfs send deal with the slabel property?

send (and receive) preserve the slabel property.   Making the
received data set available (mount) is restricted as specified
in the case materials mount policy.

* How is the slabel property related to delegation (zfs allow)?

Delegation deals with owner rights (Discretionary Policy as in
Discretionary Access Control, DAC), slabel is a Mandatory Policy
attribute.  It deals with label based Mandatory Access Control,
MAC, thus unlike other zfs properties, additional policy applies
to the slabel property.  In addition to having DAC rights to
modify the slabel property, the specified policy (privileges,
or setting to the label of the zone in which it is mounted
Read/Write) is required.

* Why have all three none/admin_low/admin_high; what is the relationship
  between them?

The intent of this case is to prevent inadvertent access to labeled
data.  The default slabel value (including when not present), none,
implies the data has not been labeled, thus default access is
allowed.  admin_low and admin_high are "administrative" labels
associated with system, rather than user, data.  They are only
set explicitly by Trusted Extensions administrators to indicate 
how they wish system data to be protected.  As opposed to other
labels in a Trusted Extensions configuration, they are not
automatically set when mounted.  Trusted Extensions administrators
have to explicitly specify how they want system data protected.
When mounted in the global zone, admin_low data sets must not have
the existing zoned property set and must be mounted read only.
labeled-(non-global)-zone admin_low data sets must be mounted read
only.  admin_high labeled data sets, must not have the zoned property
set and may only be mounted in the global zone.  This allows the
Trusted Extensions administrator to ensure that such labeled data
sets will not be unintentionally mounted in ways that could cause
inadvertent data access or modification.

* Why must zfs set slabel= and zfs get slabel only deal with internally
  formatted labels?

There is no reason.  The case will be updated to allow human
readable as well as internally formatted labels.  Internally
formatted labels will be stored as the string value of the
slabel property.  The zfs command will do the translation
using the standard Trusted Extensions interfaces which take
into account the calling user's rights to view/set human
readable label strings.

* What is the interaction between the zfs crypto project and this case?
  
The on disk format of the slabel string is public information
(unclassified) and requires no protection.



Redux: PSARC/2009/348 Security Labels for ZFS

2009-06-16 Thread Gary Winiger

> > That's why the internal format (aka hex label) is what is stored.
> > By official government ruling (at least from us DoD) it is
> > unclassified and may be view by anyone. 
> 
> Does that then mean we can't allow for 'zfs get slabel' to return the 
> label_to_str() version ?  I could live with that providing we can 
> provide the 'zfs set slabel=public' rather than needing to use the 
> internal format to do zfs set.

Fortunately, no.  Explicitly the translation would be
label_to_str(str_to_label(zfs get slabel), M_LABEL)
As I tried to say (below) takes into account the restrictions
(that is the caller must dominate the label being translated
or the translation will fail).  This has been the case since
SunOS CMW 1.0.

>  > Indeed the compartment
> > names are generally classified at the level of their name and
> > must not be visible below that level.  label_to_str takes into
> > account these restrictions as well as produces the unclass version
> > of an m_label for storage where it doesn't need protection.
> 
> If the US DoD is happy with the internal format being treated as 
> unclassified then I'm fine with using a property for this providing the 
> issue of delegation is okay with the project team - ie it must follow 
> the normal delegation rules for properties - I would like to see 
> positive confirmation from the ZFS core team that they are comfortable 
> with this given the additional information provided.

OK then ;-)  I'll be posting a summary of the issues discussed
and responses shortly so we're all on the same page.

Gary..



Redux: PSARC/2009/348 Security Labels for ZFS

2009-06-16 Thread Gary Winiger

> > Well, they are static, no?  
> 
> Static to a given site.  The issue is that the labels themselves are 
> classified information for some customers - usually only the compartment 
> bits - and as such it would be better if we could encrypt them so that 
> the handling of disks that contain labels could be reduced.

That's why the internal format (aka hex label) is what is stored.
By official government ruling (at least from us DoD) it is
unclassified and may be view by anyone.  Indeed the compartment
names are generally classified at the level of their name and
must not be visible below that level.  label_to_str takes into
account these restrictions as well as produces the unclass version
of an m_label for storage where it doesn't need protection.

Gary..



Redux: PSARC/2009/348 Security Labels for ZFS

2009-06-16 Thread Gary Winiger
> > +  slabel=
> > +   This property is used with Trusted Extensions.  This is
> > +   the internal encoding of a sensitivity label (also called
> > +   a hex label).  (See label_to_str(3tsol), label_encodings(4),
> > +   hextoalabel(1M), atohexlabel(1M).) At mount time, this label
> > +   must match that of the zone where the dataset is being mounted,
> > +   or the mount fails.
> 
> 
> I'm happy with everything in this case except that the user interface to 
> setting the property requires the use of an internally encoded label, 
> I'm happy with allowing it.  This seems really unfortunate that we can't 
> just do:
> 
> zfs set slabel=public tank/foo

Gosh I overlooked that in ensuring what was on disk was an
internally formatted label string.  Indeed I agree, there
should be no reason to require the admin to enter a atohexlabel,
or for the system to display an internally formatted label.
The point is to not have the kernel have to deal with translating
human readable labels, likely before the label service is up.

I'll ask the project team about this all later today when I meet
with them.

Gary..



Subject: PSARC/2009/354 Always on / no reboot Solaris Audit

2009-06-12 Thread Gary Winiger
I'm sponsoring this case for Marek Pospisil and the Solaris Audit
project team.  It requests a Minor Release Binding and an unchanged
interface taxonomy.

I believe it qualifies for self-review and have marked it "closed approved
automatic."  I'm happy to turn it into a fast track and set a timer if
anyone believes I've misjudged.

Full diffmarked man pages are in the case directory.

Gary..
~~~
Background:
==
Historically, Solaris Auditing required the administrator to run the
now obsolete bsmconv(1m) command, configure auditing and REBOOT.
To disable auditing the administrator had to run the now obsolete
bsmunconv(1m) command and REBOOT.  Customer feedback from most enterprise
shops has consistently been that rebooting has been an impedement to
their use of Solaris Auditing.  See also, RFE 6192139 Solaris auditing should
always be enabled

bsmconv has contained two functions.  One was to modify system(4) to
load the Solaris Audit kernel module (set c2audit:audit_load = 1), thus
requiring the reboot, and enable the audit service.  The other was to
configure device allocation, allocate(1).  In preparation for this case
and one that rearchitects device allocation to be always available,
PSARC/2008/787 Obsolete of some Solaris Audit commands, obsoleted
bsmconv/bsmunconv.  A future case when device allocation no longer requires
running bsmconv/bsmunconv will request their removal.  With the integration
of this case, bsmconv/bsmunconv will still enable/disable the audit service and
configure/disable device allocation.

If desired, it remains possible to modify system(4) to cause the audit
module not to be loaded (exclude c2audit).

Proposal:

No longer require the modification of system(4) and the implied reboot.
Solaris Auditing will always be available to be configured and then
enabled either by bsmconv(1m) if device allocation is also desired or
by audit(1m) -s.  Solaris Auditing can similarly be disabled by running
bsmunconv(1m) or by audit(1m) -t.

While audit -s/-t is the preferred, documented, and historic interface for
enabling(or refreshing)/disabling the audit daemon (from pre-smf days through
this case), svcadm enable/refresh/disable svc:/system/auditd will work
as well.

The audit(1m), auditd(1m) and bsmconv/bsmunconv(1m) man pages are updated:

audit(1m):
==

OPTIONS
 -n Notify the audit  daemon  to  close  the  current
audit  file  and  open  a  new  audit file in the
current audit directory.

 -s Notify the audit daemon to read the audit control
file.  The  audit  daemon  stores the information
internally. If the audit daemon  is  not  running,
-   but   audit   has   been   enabled  by  means  of
-   bsmconv(1M), the audit daemon is started.
+   enable (start) the audit daemon.

 -t Direct the audit  daemon  to  close  the  current
-   audit  trail file, disable auditing, and die. Use
+   audit  trail file and disable (stop) the audit daemon. Use
-s to restart auditing.

 -v pathVerify the syntax  for  the  audit  control  file
stored  in  path.  The  audit command displays an
approval message or outputs specific  error  mes-
sages for each error found.

NOTES
-The functionality described in this man  page  is  available
-only  if  the Solaris Auditing feature has been enabled. See
-bsmconv(1M) for more information.

 For the -s option, audit validates the audit_control  syntax
 and displays an error message if a syntax error is found. If
 a syntax error message is displayed, the audit  daemon  does
 not  re-read  audit_control.  Because  audit_control is pro-
-cessed at boot time, the -v option is provided to allow syn-
+cessed at the time the audit deamon is enabled, the -v
+option is provided to allow syn-
 tax  checking  of an edited copy of audit_control. Using -v,
 audit exits with 0 if the syntax is correct;  otherwise,  it
 returns a positive integer.

auditd(1m):
==

DESCRIPTION

 audit(1M) is used to control auditd. It can cause auditd to:

+oto enable auditd if not enabled;

 oclose the current audit file and open a new one;

 oclose   thecurrentauditfile,re-read
  /etc/security/audit_control  and  open  a new audit
  file;

 oclose the audit trail and terminate auditing.

NOTES
-The functionality described in this man  page  is  available
-only  if  the Solaris Auditing feature has been enabled. See
-bsmconv(1M) for more information.

-auditd is loaded in the global zone at boot time if auditing
-is enabled. See bsmconv(1M).

bsmconv/bsmunconv(1m):
==
ATTRIBUTES
 _

Redux: PSARC/2009/348 Security Labels for ZFS

2009-06-10 Thread Gary Winiger
Tim,

Thanks for adding zfs-team.

> PSARC 2007/315 defines extensible system attributes, which are a file-level 
> mechanism.  What you are describing is a new dataset-level property.  So I 
> don't see a need to tie this new case with 2007/315.

I didn't recall system attributes being part of the original
ZFS case.  Do you have a case pointer for dataset-level system
properties?  Or are you saying that there are no dataset level
system properties?  I'm pretty sure the project team believes
there are.

> By default a child dataset inherits property values from its parent. There 
> are 
> exceptions to this, and if this is one of those, that should be noted.  Also,
> will you allow a label to be inherited from a parent dataset via 'zfs 
> inherit'?
> 
> Does this property need to remain with the dataset if the dataset is streamed 
> somewhere via 'zfs send'?  That will affect the implementation.
> 
> Will you allow label setting to be delegated (i.e, 'zfs allow')?  All other 
> properties support this.

I'll let the project reply to this part.
I'd appreciate a proper case reference for dataset system properties.

Thanks,
Gary..



Redux: PSARC/2009/348 Security Labels for ZFS

2009-06-09 Thread Gary Winiger
AAR, Fat fingered the case number when cleaning up the To and Cc lists.
Please reply to this mail.

Gary..
==
I'm sponsoring this Fast Track for Ric Aleshire and the Trusted Extensions
development team.

Trusted Extensions was introduced in PSARC/2002/762 Layered Trusted
Solaris with filesystem interfaces defined in the subcase
PSARC/2005/723 Solaris Trusted Extensions Filesystem Labeling

One of the goals of Trusted Extensions was to make no modifications to
the on disk filesystem structures.  This was different than the releases
of Trusted Solaris (1.0-2.5.1, 7, 8).  In those systems on disk filesystem
changes were made in order to support labels.  That made those filesystems
incompatible with the unlabeled forms.  With the advent of
PSARC/2002/240 ZFS (Zettabyte Filesystem) and its property structure defined
by PSARC/2007/315  Extensible Attribute Interfaces, some amount of labeling
can be introduced in a fully compatible way.

This case requests a Committed Interface Taxonomy, and a Patch Release
Binding with a dependency on PSARC/2002/240 and PSARC/2007/315.

A full diffmarked zfs(1m) man page is in the case directory.

The timer is set for 17 June, 2009.

Gary..
~~~
Background:
==
The Trusted Extensions feature of Solaris provides sensitivity
labels, and mediates data access accordingly.  These labels are
associated with zones; each zone on a system is configured to
have a unique label.  Labels are not stored with the filesystem
but are inferred based on the containing zone.  Mount-time
policy controls access to filesystems and the objects they
contain.

Problem:
===
Based on customer requests for Trusted Extensions and possible
future Common Criteria Evaluation criteria, there are
requirements to be able to store labels with corresponding
data.  In Trusted Extensions, a ZFS dataset currently has only
an implied label, based on where it is mounted (i.e., in which
zone).  To prevent administrators or users from accidentally
mounting datasets in ways that would mislabel information, that
information should be recorded as a persistent ZFS attribute.
Labeled ZFS filesystems will also improve the security of
removable devices (such as USB media) in Trusted environments.

Proposal:

ZFS filesystem mechanisms make it possible to support labels as
attributes of the data.  To protect these labels from user
manipulation, they will be system attributes as defined by ZFS,
and will be supported by kernel policy to maintain the label
and control access to the corresponding data.

ZFS kernel mount logic will access the label attribute and
perform a check for label dominance, similar to the policy
found in lofs and nfs mount code.  Labeling of previously
unlabeled ZFS file systems will generally be automatic and
not require administrative action.

Details:
===
A new system property called "slabel" is defined.  Its value is a
string which represents the internally encoded label of the
dataset.  (E.g., "0x0002-08-08", which corresponds to the
"public" label.)  slabel is an inheritable property; when not
present, it defaults to the string "none" to indicate no label
is present.  The slabel property follows the same rules as the
other inheritable properties.

When Trusted Extensions is enabled, mount-time checks will
verify that the dataset label matches the label of the zone
that the dataset is mounted into.  If the labels do not match,
the mount syscall fails with an EACCES error.

The slabel property may be set from the command line using the
zfs command, for example:
zfs set slabel=0x0002-08-08 export/something

Setting the slabel property can only be done when Trusted
Extensions is enabled. The file_upgrade_sl privilege is required
when setting an initial label, or changing a non-default label
to a higher level label.  The file_downgrade_sl privilege is
required when removing a label (setting it to "none") or when
changing a non-default label to a lower level label.

In addition to manually setting dataset labels, the system will
appropriately initialize the label attribute automatically.  At
mount time, if the dataset has no slabel property or only the
default one ("none"), the slabel property will be set during
the mount.

Changing the label on a dataset (i.e. setting the slabel
property, when a non-default slabel value already exists), is
only allowed when the dataset is not mounted.  Setting an
initial slabel is permitted regardless of whether the dataset
  

PSARC/2009/349 Security Labels for ZFS

2009-06-09 Thread Gary Winiger
I'm sponsoring this Fast Track for Ric Aleshire and the Trusted Extensions
development team.

Trusted Extensions was introduced in PSARC/2002/762 Layered Trusted
Solaris with filesystem interfaces defined in the subcase
PSARC/2005/723 Solaris Trusted Extensions Filesystem Labeling

One of the goals of Trusted Extensions was to make no modifications to
the on disk filesystem structures.  This was different than the releases
of Trusted Solaris (1.0-2.5.1, 7, 8).  In those systems on disk filesystem
changes were made in order to support labels.  That made those filesystems
incompatible with the unlabeled forms.  With the advent of
PSARC/2002/240 ZFS (Zettabyte Filesystem) and its property structure defined
by PSARC/2007/315  Extensible Attribute Interfaces, some amount of labeling
can be introduced in a fully compatible way.

This case requests a Committed Interface Taxonomy, and a Patch Release
Binding with a dependency on PSARC/2002/240 and PSARC/2007/315.

A full diffmarked zfs(1m) man page is in the case directory.

The timer is set for 17 June, 2009.

Gary..
~~~
Background:
==
The Trusted Extensions feature of Solaris provides sensitivity
labels, and mediates data access accordingly.  These labels are
associated with zones; each zone on a system is configured to
have a unique label.  Labels are not stored with the filesystem
but are inferred based on the containing zone.  Mount-time
policy controls access to filesystems and the objects they
contain.

Problem:
===
Based on customer requests for Trusted Extensions and possible
future Common Criteria Evaluation criteria, there are
requirements to be able to store labels with corresponding
data.  In Trusted Extensions, a ZFS dataset currently has only
an implied label, based on where it is mounted (i.e., in which
zone).  To prevent administrators or users from accidentally
mounting datasets in ways that would mislabel information, that
information should be recorded as a persistent ZFS attribute.
Labeled ZFS filesystems will also improve the security of
removable devices (such as USB media) in Trusted environments.

Proposal:

ZFS filesystem mechanisms make it possible to support labels as
attributes of the data.  To protect these labels from user
manipulation, they will be system attributes as defined by ZFS,
and will be supported by kernel policy to maintain the label
and control access to the corresponding data.

ZFS kernel mount logic will access the label attribute and
perform a check for label dominance, similar to the policy
found in lofs and nfs mount code.  Labeling of previously
unlabeled ZFS file systems will generally be automatic and
not require administrative action.

Details:
===
A new system property called "slabel" is defined.  Its value is a
string which represents the internally encoded label of the
dataset.  (E.g., "0x0002-08-08", which corresponds to the
"public" label.)  slabel is an inheritable property; when not
present, it defaults to the string "none" to indicate no label
is present.  The slabel property follows the same rules as the
other inheritable properties.

When Trusted Extensions is enabled, mount-time checks will
verify that the dataset label matches the label of the zone
that the dataset is mounted into.  If the labels do not match,
the mount syscall fails with an EACCES error.

The slabel property may be set from the command line using the
zfs command, for example:
zfs set slabel=0x0002-08-08 export/something

Setting the slabel property can only be done when Trusted
Extensions is enabled. The file_upgrade_sl privilege is required
when setting an initial label, or changing a non-default label
to a higher level label.  The file_downgrade_sl privilege is
required when removing a label (setting it to "none") or when
changing a non-default label to a lower level label.

In addition to manually setting dataset labels, the system will
appropriately initialize the label attribute automatically.  At
mount time, if the dataset has no slabel property or only the
default one ("none"), the slabel property will be set during
the mount.

Changing the label on a dataset (i.e. setting the slabel
property, when a non-default slabel value already exists), is
only allowed when the dataset is not mounted.  Setting an
initial slabel is permitted regardless of whether the dataset
is mounted or not.

In a labeled zone the only value which can be set for the
slabel property of

Update: PSARC/2009/208 - sending audit log to a remote system.

2009-06-09 Thread Gary Winiger
During the implementation and code review phase of PSARC/2009/208,
a few changes to the protocol seemed to be advisable to make before
audit_remote(5) was integrated.  The version number remains unchanged.
Only GSS-API functionality is supported at this time.

Additionally, IANA granted the "solaris-audit" service port 16162/tcp.
/etc/services will be updated with this integration.  IANA will be
sent the updated protocol specification.

I've diff marked and updated audit_remote(5) man page and put it in
the case directory.  If anyone believes it's necessary to reopen the
case, I'll do so and set a new timer.

Gary..
~~

Summary of protocol changes:

1) The protocol version handshake has been changed and moved from
   within the GSS context to precede GSS context establishment.
   This change is to allow other forms of OTW protection such as
   TLS, or even none as might be the case for IPsec protected peers.

2) As part of the GSS security context negotiation, input channel
   bindings is used to authenticate the version hand shake.

3) An "audit record" sequence number has been added to the sent
   audit records.  That sequence number needs to be returned as
   part of the message retrieval acknowledgement.  This greatly
   improves the efficiency of audit_remote's receiving thread
   in verification of the peer's receipt of audit records.

Summary of non-protocol changes:

1) The default timeout has been reduced from 60 seconds to 5
   (and the retry algorithm is a semi-exponential backoff)
   The default number of retries remains 3.

2) The use of TCP_CORK has been eliminated.  It didn't appear to
   provide any benefit.  Based on the current Solaris implementation,
   it seemed to require additional sender code complexity and system
   calls.  If, in the future, this proves to be an unwise decision,
   TCP_CORK can be re-implemented in audit_remote(5) without affecting
   the protocol.

3) An explicit outstanding audit record count (rather than the implicit
   one from the kernel's queue control high water mark) can be specified.
   The qsize keyword specifies this value.  Note that auditd also interprets
   this keyword for each plugin and allocates plugin specific resources
   based on it.  auditd's default is also the kernel's queue control high
   water mark.



PSARC/2009/332 New projects with boundless resources

2009-06-04 Thread Gary Winiger
> > I have another suggestion. Seeing that /etc/project already uses 
> > user. and group., why not svc., where  is 
> > derived from the service FMRI? That seems sufficient to achieve our real 

> Doubleplus good.

;-)

Gary..



PSARC/2009/332 New projects with boundless resources

2009-06-04 Thread Gary Winiger
> > We already have a "system" project why not:
> > "system.inetd"
> > "system.foo"
> 
> I think Scott's concern about nesting is valid, but that's otherwise a
> nice idea.

Just as we have user.root, and group.staff, system.inetd seems
the right level of nestedness.

Gary..



nss_ldap should support AD-style groups [PSARC/2009/328 FastTrack timeout 06/10/2009]

2009-06-04 Thread Gary Winiger
> So +1 from me.  Hopefully Gary is also reviewing this and making sure 
> that neither Nico nor I are missing anything.

+1

Gary..



nss_ldap should support AD-style groups [PSARC/2009/328 FastTrack timeout 06/10/2009]

2009-06-03 Thread Gary Winiger
This case was never published to psarc-ext.  I'm doing so on behalf
of Nico (the I below) and extending the timer for a week from publication.

Gary..
==
I'm submitting this fasttrack on behalf of Erwin Aitenbichler, an
OpenSolaris contributor.  The release binding is micro/patch (with no
intention to backport).  This case introduces new behavior in
nss_ldap(5) that rises to the level of an interface; this behavior will
be Committed.

BACKGROUND

   Microsoft's Active Directory (AD) can be used as Solaris name service
   repository through nss_ldap(5) by using Windows Identity Management
   for Unix (IDMU) or Service For Unix (SFU) and configuring schema
   mapping on the Solaris native LDAP clients.  This is true on Solaris
   10, Solaris Nevada, and OpenSolaris.

PROBLEM

   AD supports richer group (as in Unix group) semantics than Unix.  For
   example, it supports nested groups.  But nss_ldap(5) does not support
   these semantics.

   Specifically, nss_ldap(5) uses the RFC2307bis+ memberUid attribute of
   group objects to construct a list of all users in a group.  Whereas
   AD uses a different attribute, 'member', containing not UIDs but the
   DNs of members' directory objects (which may be users and groups
   alike).  Also, each group object has a 'memberof' attribute listing the
   groups that the group is a member of.

PROPOSAL

   nss_ldap(5)'s getbynam/getbygid entry points will use the 'member'
   attribute if the memberUid attribute is not present or has an empty
   value for the given group, but the member attribute is present and
   has a non-empty value.  And nss_ldap(5) will expand the list of
   members recursively by searching the directory for each listed member
   and looking up any member group's members.

   nss_ldap(5)'s getbymember entry point will find the user's DN and
   then will query all groups a user is member of using this DN.  For
   each group, the memberof attribute will be chased recursively to
   obtain the full list of groups that the user is a member of directly
   or indirectly.
   
   In both cases loops in group membership will be detected to prevent
   infinite looping.

   No additional configuration is needed to enable this feature.




PSARC/2009/333 str_to_label() update

2009-06-03 Thread Gary Winiger
> I'm sponsoring this case for myself.  It updates the PSARC/2005/259
> "Layered Trusted Solaris Label Interfaces" str_to_label(3tsol) function.
> 
> The commitment level remains Committed.  A Patch release binding is requested.
> A full diff marked man page is in the case directory.

This case was approved at today's PSARC meeting.

Gary..



PSARC/2009/333 str_to_label() update

2009-06-02 Thread Gary Winiger
I'm sponsoring this case for myself.  It updates the PSARC/2005/259
"Layered Trusted Solaris Label Interfaces" str_to_label(3tsol) function.

The commitment level remains Committed.  A Patch release binding is requested.
A full diff marked man page is in the case directory.

The timer is set for 10 June, 2009.

Gary..
~~~
Background:
==
str_to_label() is the Committed interface to translate strings to various
type of labels in Solaris Trusted Extensions.  The implementation is a
client side in libtsol(3LIB), which for label translation services call
the labeld(1M) service.  labeld in turn implements a set of algorithms
which parse strings based on rules define in label_encodings(4).
For MAC_LABEL type labels, a set of supplemental rules called the
ACCREDITATION RANGE: are defined.  str_to_label() does not provide an
interface that takes these rules into account.  There is a Project Private
interface to check against the accreditation range.  A recent request
for a Committed interface lead to RFE 6845609 "str_to_label(3) should be
able to verify if the label is within the accreditation range"

Proposal:

Provide for optional checking if the string being translated is acceptable
to the accreditation range rules.  A new error code, M_OUTSIDE_AR, will be
returned if the resulting str_to_label() translation is not in the
label_encodings(4) defined accreditation range and a new flag, L_CHECK_AR,
is passed in.

str_to_label(3TSOL):

 int str_to_label(const char *string, m_label_t **label,
  const m_label_type_t label_type, uint_t flags, int *error);

DESCRIPTION
 The str_to_label() function is a simple  function  to  parse
 human readable strings into labels of the requested type.

[ . . . ]

 If flags  is  L_DEFAULT,  the  previously  parsed  label  is
 replaced  and  the  parsing algorithm makes a best effort to
 imply a valid label from the elements of string.

+If flags contains L_CHECK_AR logically or-ed with another value,
+the resulting label will be checked to ensure that it is within
+the "Accreditation Range" of the DIA encodings schema.  This flag
+is only interpreted for MAC_LABEL label types.

[ . . . ]

ERRORS
 The str_to_label() function will fail if:

 EINVAL Invalid parameter.  M_BAD_STRING  indicates  that
string could not be parsed. M_BAD_LABEL indicates
|   that the label passed in was in error.  M_OUTSIDE_AR
+   indicates that the resulting label is not within the
+   "Accreditation Range" specified in the DIA encodings
+   schema.



system_noshell [PSARC/2009/327 FastTrack timeout 06/05/2009]

2009-06-01 Thread Gary Winiger
> Which again re-enforces that system_noshell() *is* intended to be a 
> replacement for system(3C).
> 
> I have not problem with providing a variant of system(3C) that is more 
> secure.  However I'm not convinced that a new symbol - and thus changes 
> to existing code to use it.  Is the best way to do it.  I wonder if this 
> can be done more like the non exec stack, ie something that gets set at 
> build time.

I too have no real problem with a more secure convenience function
version of system(3).  I'm not convinced that this is it.  Or without
changing to existing source code that system_noshell(3) will really
provide benefit sought.
Is part of this project to go through Solaris and fix callers
of system(3)?  I didn't see that in the proposal.

I'm concerned about statements like:


 "SN_RESETIDS If this flag is set, the file is executed by resetting
 the effective user ID and the effective group ID of the
 child process executing the file to the real user ID and
 the real group ID of the parent.

 The system_noshell() function resets the user and group IDs to those
 of the real user, when used in setuid binaries. Use system_noshell_x()
 and system_noshell_xv() to override this behavior. There will be no
 change in privileges when the system_noshell() function is used in
 non setuid binaries."


What does setuid have to do with privilege?  Is this just imprecision
and the intent is setuid 0 -- thus implying all zone "forced"
privileges?  Why wouldn't I want the ability to reset the privileges
to basic (or some priv set passed in)?
I'd think a convenince function should have similar ability to

if ((pid = fork()) != 0) {
/* parent */
while (pid != waitpid(pid, &status)) {
continue;
}
return (WEXITSTATUS(status);
} else if (pid  == -1) {
/* couldn't fork */
return (-1);
}

/* child */

if (resetuids) {
(void) setuid(getuid());
(void) setgid(getgid());
}
if (resetprivs) {
(void) setppriv(PRIV_SET, PRIV_LIMIT, basic);
}
if (execv(path, argv) == -1) {
_exit(127)
}
/* NOPATH */


The project team should note that setuid 0 is not the only way
a program gains privilege.  pfexec(1) -P and pfexec from a granted
Rigths Profile, svc.startd method_context are examples of other
ways.  Is the intent to help these programs also?

Perhaps I've missed something as to why system_noshell() is being
proposed or proposed as it is.

Maybe some concrete usage examples (see Glenn's comment)).

Gary..



Configurable Boot Archive Updates [2009/312 05/26/2009]

2009-05-26 Thread Gary Winiger

> >>> Haven't we always documented uadmin(2) as the wrong way to do that?
> >>   I suspect you looked at the page, but for the record, the language is:
> >>
> >>"This function is tightly coupled to the system
> >>administrative procedures and is not intended for
> >>general use."
> > 
> > Souldn't this be updated since uadmin now supports suspend/resume?

No.  As I've said before uadmin(1m) should be used.  uadmin(1m)
will appropriately shutdown services as needed across reboot
and suspend/resume.

>   I'd consider that to still hold. sys-suspend(1) is the general 
> entry-point.

If this is the PSARC/2009/112  sys-suspend(1), that's fine also.
Though it does have some unresolved bugs.  It is an interface
that also will appropriately shutdown services.
There are still issues going forward that the powermanagement
team needs to resolve before there is a fully functional
result.  Fortunately this are below the uadmin(1m)/sys-suspend(1)
layer.

Gary..



Amendments to pconsole fast-track [PSARC/2009/275 FastTrack timeout 05/27/2009]

2009-05-26 Thread Gary Winiger
> >Ok, for TIOCSTI, there are effectively three choices here.
> >
> >   1. maintain the current behaviour, which appears to require
> >  PRIV_ALL
> >   2. modify the behaviour to allow the device owner to use TIOCSTI,
> >  when the sessions match.
> >   3. modify the behaviour to allow the device owner to use TIOCSTI
> >  regardless of session.
> >
> >Casper appears to believe that 1 is the only sane answer.  Nico appears 
> >to believe that 2 is a reasonable answer.  I suspect that 3 is off the 
> >table.
> 
> The current implementation is:
>   if the ioctl flag is FREAD (read-only), then require all
or EPERM
> else
>   if (the session is the same as the current session)
>   then ok
>   else
>   require all

or EACCES

> So I'd say that the current behaviour is choice #2.
>
> But I think that's not what you actually want.

If the return is EPERM, then pconsole has a bug that should just
be fixed.  If it is EACCES, then the question is why is it going
after a tty not in its session?  If pconsole's reason for existance
is to violate the TIOCSTI, then either 3 or a Rights Profile is the
way forward.

BTW, has the question of policy on other systems that implement
TIOCSTI been answered?

Gary..




nfswatch [PSARC/2009/295 FastTrack timeout 05/14/2009]

2009-05-12 Thread Gary Winiger
> Thanks Garrett, Peter, Seb and Gary, for your review and
> the comments for the case.  We'll look into the concerns
> that brought up and see what we can do.

I thought Garrett derailed.  Yet it still seems to have
a waiting fast-track status.  Garrett, if it is derailed,
please update the status and work with the submitter and
fast track owner to get a case owner and clarify the way
forward.  From this mail, it doesn't seem like the submitter
is up to speed on the next steps.  If it's not derailed, please
clarify that.

Gary..



nfswatch [PSARC/2009/295 FastTrack timeout 05/14/2009]

2009-05-08 Thread Gary Winiger
> I'll also point out that the case seems (IMO), to overlap with other 
> tools -- nfsstat, netstat, and snoop for example in a way that I think 
> the statement in the materials that this doesn't "compete" with other 
> Solaris tools or technologies might not be entirely true.
> 
> So, given these problems, I'm formally derailing this case.

And I hate to have to continue to be the rewind and replay
last message:

 On SunOS 4.x and
 SunOS 5.x (Solaris 2.x):  You  must  be  the  super-user  to
 invoke  _n_f_s_w_a_t_c_h or it must be installed setuid to ``root.''


Does the service manifests method context grant rights above that
of the noaccess user and basic privilege set?
[ ] Yes - ARC review required
[*] No

Are there any setuid/setgid privileged binaries in the project?
[ ] Yes - ARC review required
[*] No - continue with next section (section 3.4.3)

So which is it?  No privileges, or suid 0, implying all privileges.

How does this match the administrative model for OpenSolaris of
Rights Profiles?

Gary..



Amendments to pconsole fast-track [PSARC/2009/275 FastTrack timeout 05/08/2009]

2009-05-07 Thread Gary Winiger
> From Norm.Jacobs at sun.com Wed May  6 22:07:44 2009
> Date: Thu, 07 May 2009 00:07:39 -0500
> From: Norm Jacobs 
> Subject: Re: Amendments to pconsole fast-track [PSARC/2009/275 FastTrack
>  timeout 05/08/2009]
> To: Gary Winiger 
> Cc: gww at sac.sfbay.sun.com, leland.chen at sun.com, nicolas.williams at 
> sun.com,
> psarc-ext at sun.com, timh at spidey.central.sun.com
> Content-transfer-encoding: 7BIT
> X-PMX-Version: 5.4.1.325704
> User-Agent: Thunderbird 2.0.0.21 (X11/20090323)
> 
> Gary Winiger wrote:
> >>IMO, this case should be withdrawn and the bug should be fixed.
> >>If I'm wrong about the bug, then the case should be reintroduced
> >>with rational as to why there isn't a bug and what the policy really
> >>should be for TIOCSTI.
> >>
> >>I'll give the project team a while to answer this before considering
> >>further steps, such as withdrawn, waiting need spec or even derail
> >>for a meeting.
> >> 
> >
> > Filed:
> > P3, 6838249 The TIOCSTI policy appears to require too many privileges
> >   
> If we consider TIOCSTI failure with EPERM on devices you own a bug, then 
> this case can probably be withdrawn.

Hummm,  EPERM not EACCES.  Assuming I'm reading things correctly,
from the code pre-privileges, you'd get EPERM if you weren't root
and you didn't have the file open for read.  That's changed to
if you don't have all privileges and you don't have the file open
for read.  So perhaps there's a pconsole change needed.
On the other hand, again assuming I'm reading things correctly,
from the code pre-privileges, you'd get EACCES if you were not
root and the stream/tty was not in the same controlling session as
the thread issuing the TIOCSTI.  That's changed to, if you don't
have all privileges and the issueing thread isn't in the same
controlling session as the stream/tty.

Is the intended use of pconsole to feed input to streams/ttys not in
same controlling session as the thread issuing the TIOCSTI?

Gary..



Amendments to pconsole fast-track [PSARC/2009/275 FastTrack timeout 05/08/2009]

2009-05-06 Thread Gary Winiger
> 
>   IMO, this case should be withdrawn and the bug should be fixed.
>   If I'm wrong about the bug, then the case should be reintroduced
>   with rational as to why there isn't a bug and what the policy really
>   should be for TIOCSTI.
> 
>   I'll give the project team a while to answer this before considering
>   further steps, such as withdrawn, waiting need spec or even derail
>   for a meeting.

Filed:
P3, 6838249 The TIOCSTI policy appears to require too many privileges

Gary..



Amendments to pconsole fast-track [PSARC/2009/275 FastTrack timeout 05/08/2009]

2009-05-06 Thread Gary Winiger
> Norm,

>   4) Conclusion on privs/uids.
>  Nit: the exec_attr entry s/suser/solaris/
>  Is it really the euid that matters, or is it that euid=0 gives
>  privs=all?  I don't know how to answer the tiocsti question.
>  I'm not sure that's this case (though it would be nice if
>  the policy was revisited and this case dependent on that revisit),
>  but I'm not suggesting that be the a case requirement.
> 
>   Perhaps an offline email if I've not been clear.

Talking to Nico off line about something else, he said he'd looked
some at tiocsti and felt it was a bug that you couldn't control
the tty/pty that you own.  I don't find TIOCSTI adequately
documented by Sun.  But google did it.  

From my understanding of what it does, feeds input to a tty,
I would say privs=all is quite extreme.  The secpolicy_sti()
comment says: "Simulate terminal input; another escalation of
privileges avenue"
I can see that if you're writing to a tty that you don't own.
But if you own it, IMO this shouldn't be the policy and it is
a bug.  IMO, the correct architectural thing to do here is
to fix the bug.  I'd guess the policy to be, if you have write
access to the tty, you should be able to issue a TIOCSTI.
And to stop privilege escalation, the if owned by uid 0 policy
also comes into play (file_dac_write is insufficient, privs=all
is required).

IMO, this case should be withdrawn and the bug should be fixed.
If I'm wrong about the bug, then the case should be reintroduced
with rational as to why there isn't a bug and what the policy really
should be for TIOCSTI.

I'll give the project team a while to answer this before considering
further steps, such as withdrawn, waiting need spec or even derail
for a meeting.

Trying to stomp out bugs (that lead to unnecssary privileges),
Gary..



snort [PSARC/2009/256 FastTrack timeout 05/04/2009]

2009-05-06 Thread Gary Winiger
Seb,

> On Wed, 2009-05-06 at 13:23 -0700, Gary Winiger wrote:
> > Explicitly copied Seb since he was case owner for libpcap.

> Yes, and this is exactly why I suggested that /dev/bpf only require
> net_observability for reading packets as part of the review for
> 2009/232.  If that happens, modifying libpcap to use /dev/bpf instead of
> DLPI would result in all libpcap consumers only needing
> net_observability.  That isn't this case, though, it's the BPF case.
> 
> As it stands today, because libpcap uses DLPI, consumers of libpcap need
> net_rawaccess (it's what's required to interact with DLPI devices).

If you're happy with that perhaps you want to give it a +1.
My other comments were architecturally closer to code review.

Gary..



Amendments to pconsole fast-track [PSARC/2009/275 FastTrack timeout 05/08/2009]

2009-05-06 Thread Gary Winiger
Norm,

Sorry I didn't number my questions.  I agree a Rights Profile
is far more in keeping with minimizing the attack surface of
programs than making them suid.  Any how:
1) To whom is the "Parallel Console Access" Rights Profile granted?
2) How is the  "Parallel Console Access" Rights Profile granted to
   users?
   What I'm trying to get at here is:  Is Parallel Console Access
   automatically granted and if so to whom?

3) A help file needs to be part of creating this Rights Profile.
   See:
   http://opensolaris.org/os/community/arc/bestpractices/rbac-profiles/

4) Conclusion on privs/uids.
   Nit: the exec_attr entry s/suser/solaris/
   Is it really the euid that matters, or is it that euid=0 gives
   privs=all?  I don't know how to answer the tiocsti question.
   I'm not sure that's this case (though it would be nice if
   the policy was revisited and this case dependent on that revisit),
   but I'm not suggesting that be the a case requirement.

Perhaps an offline email if I've not been clear.

Thankx,
Gary..
> Gary Winiger wrote:
> >> /etc/security/prof_attr:
> >> Parallel Console Access:::Connect to remote consoles with pconsole:
> >> 
> >
> > To whom/how is this Rights Profile granted?
> >   
> > Also note that a help file needs to come with the addition of
> > a Rights Profile.  See:
> > http://opensolaris.org/os/community/arc/bestpractices/rbac-profiles/
> >
> >   
> >> /etc/security/exec_attr:
> >> Parallel Console Access:suser:cmd:::/usr/sbin/pconsole-bin:euid=0
> >> 
> >
> > I've not seen a conclusion on privileges/uids.
> >   
> It appears that unless the policy around TIOCSTI changes to allow the 
> device owner to use it, then pconsole-bin needs to run with euid=0 to be 
> useful.  It seemed like creating a rights profile for this and allowing 
> assignment of that rights profile to a select set of users made more 
> sense than making pconsole-bin suid root.  With a rights profile, our 
> customers can control access to it by assigning this profile to users 
> that have a need for pconsole.  With it suid root, anyone can use it and 
> potentially use it to effectively hijack someone else's session.  With 
> no rights profile and no suid root, you have to become root to use it.
> 
> As for who is most likely to use it and therefore need access to the 
> profile, I expect, based on the original case, it will be sysadmins 
> managing clusters.
> 
> -Norm
> 



snort [PSARC/2009/256 FastTrack timeout 05/04/2009]

2009-05-06 Thread Gary Winiger
Explicitly copied Seb since he was case owner for libpcap.

> 1. For privileges(5), PRIV_NET_RAWACCESS is least required since snort
> depends on
> libpcap which sets NIC to RAW mode in order to monitor the flow of the box.
> And the "Network Management" profile is necessary. From definition of
> "net_observability"
> in priv_names in /etc/security, it says
> #
> net_observability
> Allows a process to access /dev/lo0 and the devices in /dev/ipnet/
> while not requiring them to need PRIV_NET_RAWACCESS.
> #
> 
> But libpcap needs to set NIC to raw, so I think net_rawaccess is
> required, not net_observability.
> One note however: snort only read data packets from libpcap, and it
> doesn't try to encapsulate
> an IP/TCP/UDP/* packet to send because libpcap doesn't support it.

Not to belabor things here:  Should libpcap be fixed so that
it only needs net_observibility when reading packets?

> 2. About the method context, I think user "root" and group "root" is
> necessary. As following, please:

Why is that?  Why isn't noaccess:noaccess,
privileges=net_raw_access (or net_observibility -- base on Seb's
reply) sufficient?

P.S.  I don't see a reason for your stop method to have a method
context.  It appears to only be doing a :kill.

> >> Network Management:solaris:cmd:::/usr/bin/snort:privs=net_rawaccess
> >> 
> >
> > Why isn't net_observibility be sufficient?
> >   
> Please see above section about the reason and tell me if I misunderstand it.
> Thank you in advance.

OK and see my reply.

> > >
> > >
> > > > >value='solaris.smf.manage.snort' />
> > >
> >   
> 
> > Don't you also want a value authorization?  See the SMF policy:
> > http://opensolaris.org/os/community/arc/policies/SMF-policy/
> 
> 
> Sorry I was not quite familiar with the SMF, and in my understanding
> about the SMF-policy after reading, it should be like following:

Thus the policy.  Project teams are responsible for following
applicable policies -;)

> ##
> 
>  value='solaris.smf.manage.snort' />
>  value='solaris.smf.manage.snort' />
> 
> ##
> 
> In this way, auth_attr should be inserted one item:
> ##
> solaris.smf.manage.snort:::Manage Snort Service
> States::help=ManageSnort.html
> ##
> 
> In exec_attr, 1 item should be added.
> The related exec_attr, auth_attr, snort.xml are in attachment.
> ##
> Network Management:solaris:cmd:::/usr/bin/snort:privs=net_rawaccess
> ##

Seem fine modulo the libpcap question.

Gary..



Amendments to pconsole fast-track [PSARC/2009/275 FastTrack timeout 05/08/2009]

2009-05-05 Thread Gary Winiger
> /etc/security/prof_attr:
> Parallel Console Access:::Connect to remote consoles with pconsole:

To whom/how is this Rights Profile granted?
Also note that a help file needs to come with the addition of
a Rights Profile.  See:
http://opensolaris.org/os/community/arc/bestpractices/rbac-profiles/

> /etc/security/exec_attr:
> Parallel Console Access:suser:cmd:::/usr/sbin/pconsole-bin:euid=0

I've not seen a conclusion on privileges/uids.

Gary..



snort [PSARC/2009/256 FastTrack timeout 05/04/2009]

2009-05-05 Thread Gary Winiger
> 
> 
>  value='solaris.smf.manage.snort' />
> 

Don't you also want a value authorization?  See the SMF policy:
http://opensolaris.org/os/community/arc/policies/SMF-policy/

Gary..



snort [PSARC/2009/256 FastTrack timeout 05/04/2009]

2009-05-05 Thread Gary Winiger
> Hi, Gary,
> >>> Snort does far more than just read files.  It links to libpcap and can
> >>> snoop on network interfaces in real time.  To do *that*, it will
> >>> require elevated privileges.
> >>>   
> >>>   
> >> Right.
> >> 
> >
> > What are those elevated privileges.
> >   
> For "privileges", I think you mean the auths of RBAC.

No, I mean privileges(5).  If it is a service then it also
requires authorizations that follow the policy:
http://opensolaris.org/os/community/arc/policies/SMF-policy/

And a further question if run as a service is what is the
method context?

> > What will be delivered into what Rights Profile?
> >   
> It is very similiar to "wireshark" which has been delivered, since
> both of the utilities take advantage of libpcap to read data and handle
> them after set NIC to raw mode. For snort, it doesn't read data directly
> from kernel memory, raw I/O from NIC is the way it works.
> 
> And I believe "Network Management" profile is enough.
> 
> The project will deliver SUNWsnortr and SUNWsnortu. On SUNWsnortr,
> it will deliver profiles in /etc/security/exec_attr (added snort):
> 
> Network Management:solaris:cmd:::/usr/bin/snort:privs=net_rawaccess

Why isn't net_observibility be sufficient?

Gary..



Amendments to pconsole fast-track [PSARC/2009/275 FastTrack timeout 05/08/2009]

2009-05-01 Thread Gary Winiger
> Amendment 1:
> 
> The pconsole-bin binary requires elevated privilege to be useful.  We
> request to move the binary from the originally stated /usr/bin to
> /usr/sbin, in line with where other binaries requiring privilege
> usually exist.
> 
> Amendment 2:
> 
> A new execution profile and attribute will be defined.  The specific
> RBAC additions are:
> 
> /etc/security/prof_attr:
> Parallel Console Access:::Connect to remote consoles with pconsole:
> 
> /etc/security/exec_attr:
> Parallel Console Access:suser:cmd:::/usr/sbin/pconsole-bin:euid=0
  ^  ^^
This is fine for S7-S9, but not for S10 forward.
exec_attr(4):
 policyThe security policy that is  associated  with  the
   profile entry. The valid policies are suser (stan-
   dard Solaris superuser) and solaris.  The  solaris
   policy  recognizes privileges (see privileges(5));
   the suser policy does not.

   The solaris and suser policies can coexist in  the
   same  exec_attr database, so that Solaris releases
   prior to the current release  can  use  the  suser
   policy  and  the current Solaris release can use a
   solaris policy. solaris is a superset of suser; it
   allows  you  to  specify privileges in addition to
   UIDs. Policies that are specific  to  the  current
   release  of  Solaris  or  that  contain privileges
   should use solaris. Policies that use UIDs only or
   that  are  not  specific  to  the  current Solaris
   release should use suser.

What are the elevated privileges and why are they required?
Just those privileges should be specified in the privs= attribute.
Why is there a need to specify a uid?

Gary..




PSARC 2009/215 PCITool Public Interrupts

2009-05-01 Thread Gary Winiger

> From gww at eng.sun.com Fri May  1 11:31:26 2009
> Date: Fri, 1 May 2009 11:31:24 -0700 (PDT)
> From: Gary Winiger 
> To: gww at sac.sfbay.sun.com, Erwin.Tsaur at sun.com
> Subject: Re: PSARC 2009/215 PCITool Public Interrupts
> Cc: Alan.Slivensky at sun.com, PSARC-ext at sun.com, pci-core at sun.com
> 
> > >   I've missed seeing the specification that pcitool will be
> > >   added to Maintenane and Repair and with what attributes.
> > >
> > >   
> > >> See
> > >> http://opensolaris.org/os/community/arc/bestpractices/rbac-profiles/
> > >> for how to add to the RBAC databases.
> > >> 
> > >
> > >   I'm happy to coach how to deliver into the RBAC databases should
> > >   the best practice not be sufficient for the project team.
> > >   
> > I've read the link above, and I believe I just need to... (please 
> > correct if wrong)  add the line:
> > 
> > Maintenance and Repair:solaris:cmd:::/usr/sbin/pcitool:privs=all
> > 
> > to usr/src/lib/libsecdb/exec_attr.txt
> 
>   This is correct and says implicitly that there is no special
>   uid requirement.
>   If you need assistance in the delivery mechanism, let me know.

My comment here presumed this is not part of ON.  If it is
part of ON packaging is already there.

We can talk off line if we need to.  Send me private email
and we'll arrange a time.
Gary..



PSARC 2009/215 PCITool Public Interrupts

2009-05-01 Thread Gary Winiger
> > I've missed seeing the specification that pcitool will be
> > added to Maintenane and Repair and with what attributes.
> >
> >   
> >> See
> >> http://opensolaris.org/os/community/arc/bestpractices/rbac-profiles/
> >> for how to add to the RBAC databases.
> >> 
> >
> > I'm happy to coach how to deliver into the RBAC databases should
> > the best practice not be sufficient for the project team.
> >   
> I've read the link above, and I believe I just need to... (please 
> correct if wrong)  add the line:
> 
> Maintenance and Repair:solaris:cmd:::/usr/sbin/pcitool:privs=all
> 
> to usr/src/lib/libsecdb/exec_attr.txt

This is correct and says implicitly that there is no special
uid requirement.
If you need assistance in the delivery mechanism, let me know.

> That's right, something left over from the old PSARC case, which I 
> removed now.  Updated manpage included

My issues are all addressed.  I'll give it a +1.

Gary..



PSARC 2009/215 PCITool Public Interrupts

2009-05-01 Thread Gary Winiger
> After discussing with Gary Winiger I am amending the PSARC case to 
> include more details about security.

I'm probably being overly picky here.  In my offline discussions
there seemed to be confusion about the (architectural) details.
Including that I'm not the only one on the committee.

>  From project team:
> It is currently not in the "Maintenance and Repair" Rights Profile and 
> we don't plan to ship it with it configured in it. Do you recommend 
> otherwise?
> 
>  From Gary Winiger:
> Manintenance and Repair seems like an appropriate Rights Profile.
> The specification can state that the will be adding /usr/sbin/pcitool
> to the existing Maintenance and Repair Rights Profile with attributes
> of --- and you state the attributes.

I've missed seeing the specification that pcitool will be
added to Maintenane and Repair and with what attributes.

> See
> http://opensolaris.org/os/community/arc/bestpractices/rbac-profiles/
> for how to add to the RBAC databases.

I'm happy to coach how to deliver into the RBAC databases should
the best practice not be sufficient for the project team.

> Maintenance Commands  pcitool(1M)
> 
> NAME
>  pcitool - interrupt routing tool
> 
> SYNOPSIS
>  /usr/sbin/pcitool PCI_nexus_node -i ino=ino [ -r [ -c ] | -w
>  cpu=CPU [ -g ] ] [ -v ] [ -q ]
> 
>  /usr/sbin/pcitool [ -h ]

>  Required privileges
> 
>  The user must have all privileges in order to access  inter-
>  rupt  information.   A  regular  user  can  access interrupt
>  information when su(1M) to root or granted the  "Maintenance
>  and  Repair"  rights  profile  in  the  user_attr  file. See
>  user_attr(4) and rbac(5).

> SEE ALSO
>  pci(4), su(1M), user_attr(4), rbac(5)
> 
> NOTES

>  Root access is required to  execute  all  commands  in  this
>  tool.

Probably a nit.  The preceeding gives me pause over what the
specification for Rights Profiles inclusion really is.
Should this note just be eliminated, or is there some hard
requirement for euid==ruid==0 which cannot be met otherwise.

Gary..



PSARC 2007/064 Unified POSIX and Windows Credentials for Solaris

2009-04-29 Thread Gary Winiger
> From sacadmin Mon Nov  5 12:12:37 2007
> Date: Mon, 5 Nov 2007 12:07:58 -0800 (PST)
> From: Gary Winiger 
> To: gww at eng.sun.com, mws at zion.sfbay.sun.com
> Subject: Re: PSARC 2007/064 Unified POSIX and Windows Credentials for Solaris
> Cc: psarc at sac.sfbay.sun.com, arc-discuss at opensolaris.org, john.plocher 
> at sun.com
> 
> > I'll handle the opinion updates.
> 
>   Done.  I've fixed the opinion.

I finally got this re-re-redacted.  This time I took a big hammer
to the mail log.  If members object to this, feel free to redo it ;-)

Gary..



snort [PSARC/2009/256 FastTrack timeout 05/04/2009]

2009-04-29 Thread Gary Winiger
> > Snort does far more than just read files.  It links to libpcap and can
> > snoop on network interfaces in real time.  To do *that*, it will
> > require elevated privileges.
> >   
> Right.

What are those elevated privileges.

> > Do those come from RBAC, or is the user expected to use "sudo"?
> >   
> "sudo" could work.

What will be delivered into what Rights Profile?

Gary..



PSARC 2009/265 fmdump -m

2009-04-28 Thread Gary Winiger
> I am sponsoring the following case for Rob Johnston to add a -m
> option to fmdump to permit administrators to retrieve the human-readable
> message for a fault entry from an FMA log.

>4.4. Interfaces:
>   The command-line options and human-readable output for fmdump(1m) are
> evolving.

Nit.  Evolving is old speak.  In new speak it would be Committed.
Do you really what to say the human-readable output is a Committed
programming interface.  Perhaps command line option is Committed
and human-readable output is Not-An-Interface (also part of new speak).

Gary..



snort [PSARC/2009/256 FastTrack timeout 05/04/2009]

2009-04-28 Thread Gary Winiger

> sort monitors logfiles; if it can read those, there's no need for additional
> privileges.

OK, thanks.  I didn't get that from looking at the man page or
website;-)

Gary..



snort [PSARC/2009/256 FastTrack timeout 05/04/2009]

2009-04-27 Thread Gary Winiger
> 3.4.2 Authorization
>   (see http://opensolaris.org/os/community/arc/bestpractices/rbac-intro/ 
> and
>  http://opensolaris.org/os/community/arc/bestpractices/rbac-profiles/ 
> and
>  http://opensolaris.org/os/community/arc/bestpractices/rbac-profiles/
>for details)
>   Are there any setuid/setgid privileged binaries in the project?
>   [ ] Yes - ARC review required
>   [*] No - continue with next section (section 3.4.3)
>   
>   If yes then are the setuid/setgid privileges handled by the use of 
> roles?
>   [ ] Yes
>   [ ] No - ARC review required

If it's not suid (as ping is), I presume that snort needs something
like net_observibility or net_raw_access to run properly.  How does
it get that or any other privileges it may need?
What Rights Profile (and exec_attr(4) properties are required)?

Gary..



PSARC 2009/215 PCITool Public Interrupts

2009-04-23 Thread Gary Winiger
> >>My recollection from 2005/232 was there was a discussion
> >>about non-standard install places.  How was that resolved?
> >>
> >> I wasn't part of that discussion back then.  Not sure what that would be 
> >> about.
> >> 
> >
> > As the project is largely relying on that case with was about
> > an unbundled integration, it seems to me appropriate for the
> > project team to review the basis of this case and ensure that
> > the issues that were raised there are resolved now.
> > Saying something is not shipped with the WOS, but as an unbundled
> > with a limited set of users leads to different packaging and
> > installation that something shipping with the WOS.  Since a
> > patch binding has been requested, the WOS in this case is
> > S10.
> >   
> Yes good point.  There is another discussion going on about this whole 
> packaging issue.  It is definitely being scrutinized as the requesters 
> for this tool all have their own requirements and such.

If this is still being discussed, isn't the case premature?
Shouldn't this case be in waiting need spec until all relevant
peripheral discussions have completed?

> >>> Risks and Assumptions:
> >>> PCITool allows privileged users to remap interrupt-CPU bindings
> >>>   
> >>What's a "privileged user"?  What Rights Profile will pcitool
> >>be in?  Again my recollection from 2005/232 is that "all"
> >>privileges is required.  Is that still the case?  Is there
> >>also some specific userID that's necessary
> >>
> >> Same rights nothing has changed, except some documentation.
> >> 
> >
> > Again there was a discussion of privileges that didn't
> > seem to converge.  From the man page, I could read that
> > the only privilege needed is sys_res_config.  2005/233
> > seemed to imply privs=all.  This case materials doesn't
> > define how, now that pcitool will be provided as part of
> > the WOS, the sys_res_config privilege is granted to
> > pcitool.  Specifically, what Rights Profile and is sys_res_config
> > the only privilege granted?  Are there any uid requirements?
> >   
> The privileges really refer to the ioctls which this package has nothing 
> to do with.  We are only dealing with the userland binary.

Ok, the privileges refer to the ioctls.  I presume the userland
binary calls the ioctls.  Is the only privilege the userland
binary requires sys_res_config?  How does the userland binary
gain this or any other privileges?

Gary..



PSARC 2009/215 PCITool Public Interrupts

2009-04-22 Thread Gary Winiger
> From: Gary Winiger 
> > Project Description:
> > PCITool was previously conceived in PSARC 2005/232, but was
> > intended as an internal only tool.  This case would make the
> > command line interface, pcitool, available to external customers.
> 
>   My recollection from 2005/232 was there was a discussion
>   about non-standard install places.  How was that resolved?
> 
> I wasn't part of that discussion back then.  Not sure what that would be 
> about.

As the project is largely relying on that case with was about
an unbundled integration, it seems to me appropriate for the
project team to review the basis of this case and ensure that
the issues that were raised there are resolved now.
Saying something is not shipped with the WOS, but as an unbundled
with a limited set of users leads to different packaging and
installation that something shipping with the WOS.  Since a
patch binding has been requested, the WOS in this case is
S10.

> > Risks and Assumptions:
> > PCITool allows privileged users to remap interrupt-CPU bindings
> 
>   What's a "privileged user"?  What Rights Profile will pcitool
>   be in?  Again my recollection from 2005/232 is that "all"
>   privileges is required.  Is that still the case?  Is there
>   also some specific userID that's necessary
> 
> Same rights nothing has changed, except some documentation.

Again there was a discussion of privileges that didn't
seem to converge.  From the man page, I could read that
the only privilege needed is sys_res_config.  2005/233
seemed to imply privs=all.  This case materials doesn't
define how, now that pcitool will be provided as part of
the WOS, the sys_res_config privilege is granted to
pcitool.  Specifically, what Rights Profile and is sys_res_config
the only privilege granted?  Are there any uid requirements?

Nit: the case mail says volatile commitment, while the man page
says project private.

Gary..



  1   2   3   4   5   6   >