Commit Graph

35 Commits

Author SHA1 Message Date
msaitoh
8ce1f4fff2 fix typos 2007-04-29 20:23:34 +00:00
christos
ddbf1b0dd9 Sync with OpenBSD systrace 1.6d.
XXX: Some of the compat-linux systrace is disabled.
From elad.
2006-12-10 01:22:02 +00:00
mrg
084c052803 quell GCC 4.1 uninitialised variable warnings.
XXX: we should audit the tree for which old ones are no longer needed
after getting the older compilers out of the tree..
2006-05-10 21:53:14 +00:00
peter
dfd65180e1 Don't try to dereference pw when it's NULL.
Fixes Coverity CID 900.
2006-03-18 00:32:34 +00:00
elad
b53ff10682 From rohee@openbsd:
Use strlcpy() instead of snprintf() where possible.
2005-06-25 18:47:42 +00:00
christos
250ff65369 Const poisoning. 2005-06-24 23:21:09 +00:00
he
0a5aea28f2 Initialize ipid in two functions to NULL, to appease -Wuninitialized.
Marked with XXXGCC for dreamcast (found while compiling for it).

Reviewed (in slightly different form) by lukem.
2005-06-07 09:00:18 +00:00
kleink
e71a15405c Avoid using structure initializers with struct timeval. 2004-01-21 22:50:56 +00:00
provos
80b9ef16f9 off-by-one; found by Nikolay Sturm from OpenBSD 2004-01-17 18:54:32 +00:00
jmmv
b635f565e7 Homogenize usage messages: make the 'usage' word all lowercase, as this seems
to be the most common practice in our tree.
2004-01-05 23:23:32 +00:00
wiz
6fc98bf82d Add -C to usage. 2003-11-28 23:32:25 +00:00
provos
61d0495091 support for cradle mode by marius at monkey.org; cradle mode allows the
systrace UI to be attached and re-attached, it also multiplexes across
systrace process so that one UI can function as central notification
2003-11-28 21:53:32 +00:00
cb
5f734a1850 fix a race condition between path resolution in userland
and the subsequent namei(): inform the kernel portion of
valid filenames and then disallow symlink lookups for
those filenames by means of a hook in namei().
with suggestions from provos@

also, add (currently unused) seqnr field to struct
systrace_replace, from provos@
2003-08-25 09:12:42 +00:00
provos
2e1af85ab0 normalize CWD for cases where CWD has a symlink in it. should solve
problems where CWD policies would not match.
2003-08-02 14:31:10 +00:00
provos
2268d69749 support for a new kernel message that informs userland that an in-kernel
policy has been freed.  this allows us to enforce the kernel policy size
limit for users while users are still able to execute an arbitary number
of applications;  the protocol change is backwards compatible.
2003-06-03 04:33:44 +00:00
provos
c57cb7fe98 escape " and \ to \" and \\; with the help of marius@monkey.org; 2003-06-03 01:20:06 +00:00
wiz
8361a7103e Sync usage with man page. 2003-05-21 06:26:07 +00:00
provos
7685de2195 use LOGIN_NAME_MAX instead of MAXLOGNAME; closes pr/21048 2003-04-09 17:50:08 +00:00
provos
a2468a8d04 new "ask" action. creates a new rule that prompts the user for an
action but allows only yes or no answer.  inspired from talking
with dugsong@monkey
2003-03-25 23:17:29 +00:00
provos
488a952788 better -c parsing; from camiel@sentia 2003-03-25 23:04:48 +00:00
provos
4ff1bfdbd5 allow logging for untranslated syscalls; from anil@recoil.org 2002-12-15 19:05:31 +00:00
thorpej
5759456a18 Avoid confict with reserved identifier "log". 2002-12-06 01:43:18 +00:00
provos
4df7def23e missing break; from grange@rt.mipt.ru 2002-10-28 16:50:05 +00:00
provos
61e8c76047 support for privilege elevation.
with privilege elevation no suid or sgid binaries are necessary any
longer.  Applications can be executed completely unprivileged. Systrace
raises the privileges for a single system call depending on the
configured policy.

Idea from discussions with Perry Metzger, Dug Song and Marcus Watts.
Approved by christos and thorpej.
2002-10-11 21:54:55 +00:00
provos
306becc9b9 add A to usage; noted by nickus@mpi-cbg.de 2002-10-08 14:50:57 +00:00
provos
89afc325c0 predicates are part of the grammar now; in non-root case, predicates are
evaluated only once; in root case, predicates and variable expansion are
dynamic.
2002-10-08 14:49:23 +00:00
itojun
ed21532463 "output" is a pointer of size "outlen", so use outlen instead of
sizeof(output)

From: "Vincent Labrecque" <vincent@psyfreaks.ca>
2002-10-08 02:47:59 +00:00
itojun
d584f0a0fc support for templates. they allow fast generation of new policies. an
appropriate template can be inserted during initial policy generation.
from provos
2002-09-23 04:35:41 +00:00
itojun
0b2d2fe3d7 daemon should not change the directory. from provos 2002-09-17 04:54:36 +00:00
itojun
c1261b4aff periodically save policies that have been modified. from provos
>here is a diff that will cause systrace to periodically save policies
>that have been modified.  Useful if you run systrace on an xterm and
>kill it accidently.  Or other applications like opera that are long
>running and can cause weird crashes.
2002-09-16 04:31:46 +00:00
itojun
b6aefbe19f sync with latest systrace in openbsd tree. improved systrace with chroot. 2002-08-28 03:52:44 +00:00
itojun
4f0c9c76b6 sync up with latest openbsd systrace.
- avoid race conditions by having seqno in ioctl
- better uid/gid tracking
- "replace" policy to replace args
- less diffs, as many of local changes were fed back to openbsd already

due to the 1st item, it was impossible for us to provide backward-compatibility
(new kernel + old bin/systrace won't work).  upgrade both.
2002-07-30 16:29:28 +00:00
atatat
11bb544ec0 Mostly just a rewrite of intercept_run() so the arrangement of "child"
process and "parent" process is more conducive to policy generation.
Previously, tracing of a given program worked something like this:

	fork()
	if (child)
		execprogram()
	else
		dotracing()

That means that if you "systrace -a named", named would fork and
background itself, but you would never get your prompt back because
systrace didn't exit.  Now it works like this:

	fork()
	if (interactive)
		if (child)
			execprogram()
		else
			dotracing()
	else
		if (parent)
			execprogram()
		else
			fork()
			if (parent)
				exit(0)
			setsid()
			dotracing()

This makes it *much* easier to do automated policy generation for
tasks run from rc.d.  Or, for that matter, makes it much easier to use
systrace with tasks run from rc.d.
2002-07-03 22:54:38 +00:00
thorpej
2265b1ff78 Fix warnings on Alpha: Cast to intptr_t to extract ints stored in void *'s,
and pull in proper prototypes.
2002-06-18 21:22:45 +00:00
christos
5039a9e5ee Add userland portion of systrace. 2002-06-17 16:29:07 +00:00