Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 16 Dec 1999 13:56:26 -0500 (EST)
From:      Robert Watson <robert@cyrus.watson.org>
To:        Spidey <beaupran@iro.umontreal.ca>
Cc:        Warner Losh <imp@village.org>, Chris England <cengland@obscurity.org>, freebsd-security@FreeBSD.ORG
Subject:   Re: From BugTraq - FreeBSD 3.3 xsoldier root exploit (fwd) 
Message-ID:  <Pine.BSF.3.96.991216135055.26813G-100000@fledge.watson.org>
In-Reply-To: <14425.12637.308602.637788@anarcat.dyndns.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 16 Dec 1999, Spidey wrote:

> Yes. Since I've been looking at setuid's on FBSD, my primary concern's
> been with the ports. I wished there could be some way to have a
> variable in the Makefiles that say "NOSETUID=3DYES". :))
>=20
> We should make a a definite list of all the setuid's in the whole port
> tree. Maybe the port maintainers can give a hand?
>=20
> Darn.. d=E9j=E0 vu...=20

Yup, it's d=E9j=E0 vu all over again.  If you want a heavy-handed security
approach, here's how you do it.  Define two new Makefile ports variables:

HAS_MISC_SET_ID=3D {yes,no}
HAS_ROOT_SETUID=3D {yes,no}

Starting today, warn all ports maintainers that their ports must (ideally
correctly) define these variables for all of their ports.  In two weeks,
any port that doesn't define both variables is marked as broken.  After
one week, we introduce a check in the package building procedure that
checks for any setuid or setgid binaries in the installed version.  If the
variable value reported is wrong, the port is marked as broken.

We then have an effective and mandated list of ports making use of set?id
binaries.  Each one of these ports undergoes a security view by the
auditing team--not to fix bugs, just to identify whether the source code
is prone to bugs (extensive use of string functions in unsafe ways, etc)
-- a twenty minute thing.  If it's found to be unsafe, the port is marked
as unsafe, meaning that packages are not autobuilt for it, and that a user
attempting to install the port is *loudly* warned that the code is unsafe,
and they must confirm the install by using make unsafe-install.

That's heavy-handed security for you: mandate identification of problems
and correctness.

This doesn't address daemons (imapd, etc) that also run privileged, but is
a good first step.

  Robert N M Watson=20

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.BSF.3.96.991216135055.26813G-100000>