From: "Howland, Curtis" <[EMAIL PROTECTED]>
>At some point you have to "trust". Unless you're ready to read every
>line of code, every script, yourself every time you install anything,
>trust is explicit.

I agree.  Since essentially none of our users will have time to read
much source code, the only achivable goal is to decrease the amount of
code that has to be trusted.  They'll have to trust at least the
kernel, some tools involved in packaging things, and some basic
operating system utilities.

However, the present scheme requires me to also trust the packager of
each package in /usr/games, for instance.  That seems avoidable.

>Reputation counts. I'm sure that if a maintainer was discovered to
>have uploaded code with such things in it, that maintainer would
>loose coolness points galore.

But whose reputation?  For example: at some point I'm going to get to
the local Linux User's Group meeting and get my public key signed by a
Debian developer.  This person is going to look at my driver's license
and then later tell GPG that the public key fingerprint that I will
give him really belongs to the person named in the driver's license.
This person probably won't have any training on identifying forged
driver's licenses, and the gov't doesn't crypto-sign driver's
licenses, so passing him a laminated forgery generated on my color
printer would probably be fairly easy.  If you have a debian developer
acting under a false name, then there's really no reputation
associated with package.

Here's an example that really happened: When I first installed Debian,
I installed the Crossfire server (this is part of a multiplayer game).
Only later did I notice that the server was running as root.  The
server's code has a bunch of sprintf's into fixed-length buffers.  I
tried finding an exploit because I haven't found one before, but I
didn't.  In any case, we really don't need games packages to have the
right to run servers as root.

If we could make it so that only some packages need to install as
root, and the rest are prevented from arbitrarily modifying the
machine, then the intruder has to arrange to be in the root package
group to do much harm. This could at least require more social
interaction and more time than creating ordinary user-mode packages.

I think we could make a more secure scheme with just one extra user,
something like "debian-nobody", that user-mode packages would have
while they are installing.  We'd provide set-user-id-root utilities
that can only be run by debian-nobody.  They would enforce these
rules:

   Installation scripts for user-mode packages can only put files in
   certain directories, and they can't overwrite existing files.

   At removal time, a removal script can only remove a file if it was
   created by that package at installation time.

Packages that can't abide by these rules would be root-mode packages
and get more scrutiny than ones that can obey the rules.

On the other hand, this is all less important than checking the
checksums on incoming .deb's, which we aren't doing yet.  So maybe
this is all premature.  

I don't know the required size of the developer group before you can
expect to have a patient evil person in the group.  Apparently we
aren't there yet, and that's a good thing.

-- 
Tim Freeman       
[EMAIL PROTECTED]


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to