[hangar18-general] Q: A question of security vulnerability

Jim Choate ravage at einstein.ssz.com
Fri May 9 18:38:21 PDT 2003


Hi Wayne,

Hope you and the family are doing well. Kick them kids for me ;)

Got any Plan 9 boxes running yet?

Exactly, what I was interested in though was are there any situations or
programs that one can run  using #2 that one can't do using #1. It isn't
an issue of security or user rights per se but rather a 'shell
compatibility' issue. Is there an aspect of *nix that allows programs to
be loaded directly, while they won't run via a shell?

Is that clear as mud or what?

I believe the first is slightly safer because you could wrap shell (eg put
it in another dir and use a script in /bin/sh's place). The reason I
believe it is more secure (but only very!!! slightly) is that before we
can execute the users target code they -must- execute 'sh' which provides
an opportunity for doing something about stopping them.

It's an interesting mind game if nothing else.

We should do a 1st Saturday sometime this summer ;)

On Fri, 9 May 2003, Wayne Walker wrote:

> sudo is actually almost never secure.  As you imply, with line 1 bob can
> do _anything_ just like line 2.
>
> Here are some more less obvious examples where bob can do _anything_
>
> 1. bob pine
> 2. bob vi
> 3. bob chown
> 4. bob chmod
>
> With any of the 4 above, bob can do anything.
>
> With 1 or 2, bob can run any command from within the program (! is
> allowed in vi, and if you set $EDITOR to vi before running pine...)
>
> In 3 and 4, bob can make setuid programs or change perms on /etc and put
> his own passwd/shadow files in place.
>
> Bottom line, if you give someone sudo access you should tgrust them to
> be root, OR you should only allow them to run very specific
> _scripts/binaries_ that you wrote for them specifically (e.g.
> chown_files_to_others_in_his_primary_group, restart_lpd,
> restart_httpd...)  And here you still have to be careful about these
> programs....
>
> On Thu, May 08, 2003 at 09:34:15PM -0500, Jim Choate wrote:
> >
> > Given a basic Linux (or *nix) system with a user bob. Assume that bob has
> > sudo capability. There are two approaches (I'm not going to use exact
> > syntax):
> >
> > 1.	bob	sh
> >
> > 2.	bob	All
> >
> > So, in the first case bob can:  sudo sh -c "foo"
> >
> > and in the second bob can: sudo foo
> >
> > Why would the first approach represent a more secure mechanism?
> >
> > It is true that sh could be a wrapper or have sticky bits, etc. We'll
> > assume these are not an issue. The point being why is running a program
> > directly as root in this manner less secure than running the program
> > through a shell as root?
> >
> > Example? Explanation?
> >
> > Thanks.

 --
    ____________________________________________________________________

      We are all interested in the future for that is where you and I
      are going to spend the rest of our lives.

                              Criswell, "Plan 9 from Outer Space"

      ravage at ssz.com                            jchoate at open-forge.org
      www.ssz.com                               www.open-forge.org
    --------------------------------------------------------------------





More information about the cypherpunks-legacy mailing list