Date: Fri, 22 Aug 2003 17:40:23 +1000 From: Peter Jeremy <PeterJeremy@optushome.com.au> To: Pawel Jakub Dawidek <nick@garage.freebsd.pl> Cc: ari <edelkind-freebsd-hackers@episec.com> Subject: Re: [future patch] dropping user privileges on demand Message-ID: <20030822074023.GA85534@cirb503493.alcatel.com.au> In-Reply-To: <20030821204403.GN47959@garage.freebsd.pl> References: <20030817181315.GL55671@episec.com> <20030821065854.GA11586@dan.emsphone.com> <20030821125028.GY55671@episec.com> <20030821162156.GL47959@garage.freebsd.pl> <20030821170915.GZ55671@episec.com> <20030821204403.GN47959@garage.freebsd.pl>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Aug 21, 2003 at 10:44:03PM +0200, Pawel Jakub Dawidek wrote: >On Thu, Aug 21, 2003 at 01:09:15PM -0400, ari wrote: >+> [...] The programmer >+> should be able to drop filesystem creation permissions, without worrying >+> about the need to drop open, mkfifo, bind, link, symlink, mkdir, and any >+> other system calls that happen to be available in this particular kernel >+> version. [...] > >In CerbNG you only need to write a macro like: > > #define DROP_FS_CREATION() \ > if (syscall == SYS_open || syscall == SYS_mkfifo || \ > syscall == SYS_bind || syscall == SYS_link || ...) { \ > return (EPERM); \ > } Unless 'syscall' can be evaluated at compile time, this approach adds overhead whereever it is used - and the overhead gets worse as the number of system calls in the set increases. A particular problem is that the overhead is worst for system calls that aren't caught (in the above, the overhead for open() is trivial but write() would need to go through each of the tests). A bit-vector provides constant overhead but it's still fairly expensive unless the relevant parts of the vector are already cached. >As I said. Stuff like systrace or cerb doesn't need to be standarized, >because it is transparent for applications. It doesn't need any work from >userland application programmer. That's why it is easy to addopt for >non-BSD-licensed applications or even for non-open-source applications. This isn't good enough. It _does_ need to be standardised so that the administrator doesn't have to learn N radically different approaches to secure a system. As far as the userland application programmer is concerned, there's very little difference between any flavour of Un*x. There are massive differences between them when it comes to administration. Peter
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030822074023.GA85534>