BugTraq
Need help. Proof of concept 100% security. Aug 18 2003 03:24PM
Balwinder Singh (balwinder gmx net) (5 replies)
Re: Need help. Proof of concept 100% security. Aug 16 2003 09:12AM
Stefano Zanero (stefano zanero ieee org)
Re: Need help. Proof of concept 100% security. Aug 15 2003 10:01PM
Alaric B Snell (alaric alaric-snell com) (1 replies)
Re: Need help. Proof of concept 100% security. Aug 18 2003 04:18PM
Anil Madhavapeddy (anil recoil org) (1 replies)
Re: Need help. Proof of concept 100% security. Aug 20 2003 05:31PM
ari (edelkind-bugtraq episec com)
anil (at) recoil (dot) org [email concealed] said this stuff:

> On Fri, Aug 15, 2003 at 11:01:54PM +0100, Alaric B Snell wrote:
> > But still - it sounds promising; it reminds me of an idea I was
> > considering (but Theo de Raadt hated!) of allowing processes to drop
> > certain syscalls (or certain modes of operation of syscalls - many are
> > multi-function), shedding priveleges in the same manner as setuid-ing
> > down to nobody or chrooting. So Apache could, after binding to its
> > ports, drop the ability to bind to ports. After opening its log files,
> > it could drop the ability to open files for writing. Each child process
> > would abandon fork rights, and exec rights as soon as it sees it's not a
> > CGI.
>
> It just adds another layer of complexity to an already over-complex
> kernel/userland interface. If you're going to change the source like this,
> I prefer privilege separation instead, which works without kernel changes.

Privilege separation is (1) not always an option, and (2) not a complete
solution. For example, one may still open network sockets in a
chroot(2) environment, while running as a non-root user. One may still
"fork bomb". Dropping system calls is no more difficult than effecting
resource limits from the programmer's standpoint. If the programmer
would rather not use resource limits, he need not be bothered. If the
programmer would rather not drop system calls, he also need not be
bothered.

The ideas that alaric snell and evan teran have are similar to something
i'm currently implementing for freebsd; whether or not it will be
accepted into the core distribution is another story. If it goes over
well with the community at large, i'll port it to linux and other
open-source BSD operating systems as well. In truth, i have found it
neither difficult nor complex to implement. Tedious, perhaps, but
neither difficult nor complex.

Banning kernel calls, however, is the wrong way to go about this. To
effectively turn off filesystem accesses for a process, the programmer
would need to disable many system calls. When the kernel is updated,
the number of system calls may change. The programmer would then need
to change his code, and old versions of the software would become not
just old, but obsolete, even if no new bugs were fixed or features
added. Programs would also become nonportable between operating
systems, and the programmer would even need to accommodate for
third-party patches, which may add additional system calls. The proper
way to handle the concept is by action class; if i want to disable all
filesystem reads, i should be able to call a function that will
effectively disable all filesystem reads. If i want to disable the
creation of files on the filesystem, i shouldn't need to specifically
disable open, bind, mkfifo, link, symlink, mkdir, and possibly others,
depending on what other kernel calls may be available.

I created a page about the idea, which can be found at:

http://www.episec.com/people/edelkind/patches/kernel/flowpriv/

The page is a bit out of date now (i created it about a week ago), and
it doesn't discuss some of the technical design decisions i have made,
nor does it offer the proof-of-concept code i have written for it. But
it will be modified to reflect all of this as soon as i find the time.

There is a mailing list referenced on the page as well; anyone
interested in the project is welcome to join.

Mind you, i do not believe that this idea should be considered a
replacement for system call profiling tools (such as systrace), just as
i don't believe that the existence of tools such as systrace obsoletes
this idea. I believe that the two should work together: one that
allows an administrator to create policies, and another that allows the
programmer to design additional security into programs, without
introducing more than a negligible performance impact.

I find it unfortunate that you say theo de raadt was not fond of the
idea. Perhaps if he would like to subscribe to the mailing list and
voice his concerns, they may all be addressed.

ari (edelkind)

[ reply ]
Re: Need help. Proof of concept 100% security. Aug 15 2003 07:56PM
Crispin Cowan (crispin immunix com)
Re: Need help. Proof of concept 100% security. Aug 15 2003 07:14PM
Clifton Royston (cliftonr lava net) (1 replies)
Re: Need help. Proof of concept 100% security. Aug 20 2003 08:04PM
Balwinder Singh (balwinder gmx net) (1 replies)
Re: Need help. Proof of concept 100% security. Aug 19 2003 01:16AM
Kyle Roger Hofmann (krhofman umich edu)
Re: Need help. Proof of concept 100% security. Aug 15 2003 05:48PM
Nicholas Weaver (nweaver CS berkeley edu)


 

Privacy Statement
Copyright 2010, SecurityFocus