Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 28 Aug 2000 09:27:51 -0400 (EDT)
From:      Robert Watson <rwatson@FreeBSD.ORG>
To:        Bruce Evans <bde@zeta.org.au>
Cc:        freebsd-security@FreeBSD.ORG, phk@FreeBSD.ORG, green@FreeBSD.ORG
Subject:   Re: Review request: replacing p_trespass(), modifications to vaccess()
Message-ID:  <Pine.NEB.3.96L.1000828091915.83427A-100000@fledge.watson.org>
In-Reply-To: <Pine.BSF.4.21.0008282356180.11320-100000@besplex.bde.org>

next in thread | previous in thread | raw e-mail | index | archive | help

On Tue, 29 Aug 2000, Bruce Evans wrote:

> > With that reasoning in mind, do you think ASU can be {temporarily,
> > permanently} deprecated/broken?
> 
> I think it should be permanently dropped from normal kernels, but your
> work seems to require even more flags like it, at least for debugging.
> I'm not sure how well complexity for extra security can be localised.

My main concern at this point was whether or not ASU could be dropped from
the base system.  You're right of course: eventually, I hope to handle
auditing of privilege, just seperately from the current use of the
accounting system to do that.  We've gone through a couple of partial
implementations of auditing on FreeBSD, and I've had the opportunity to
consider similar systems on other platforms, and have yet to see an
implementation that satisfies all my concerns (in terms of correctness,
cleaness of integration et al).  I'm tempted to put off dealing with that
until we've had a chance to look further at the impact of authorization
improvements in the system, although presumably avoid explicitly breaking
the possibility of adding it easily :-).

I'll update my patches to include the removal of ASU from suser(), which
would then allow suser() to accept const proc * and const cred *, which
will remove qualifier warnings elsewhere in the tree.

I'd like for us to move in the direction of only requiring const struct
cred * for access control decisions, but right now that's not possible due
to the use of P_SUGID in struct proc's flags.  One question to ask then is
whether or not P_SUGID could be moved into a set of credential flags,
reflecting that state of the credentials.  Doing so would impact the use
of crcopy() and friends, and also require that it be explicitely unset
following an exec() of a non-setugid binary (presumably -- I haven't read
through the details of P_SUGID semantics).  With the advent of
capabilities that are independent of uid0, it strikes me that the
requirements are actually for multiple flags: one that indicates a change
in privilege or credential over the lifetime of the process, requiring
protection of the process from certain types of operations (ptrace, et
al).  The second would be a cached indication of having privilege
available: be it via uid0 providing that privilege, or via holding
capabilities, et al.  If fast enough, this need not be cached, of course.

  Robert N M Watson 

robert@fledge.watson.org              http://www.watson.org/~robert/
PGP key fingerprint: AF B5 5F FF A6 4A 79 37  ED 5F 55 E9 58 04 6A B1
TIS Labs at Network Associates, Safeport Network Services




To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-security" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.NEB.3.96L.1000828091915.83427A-100000>