From: John Richard Moser <nigelenki@comcast.net>
To: Valdis.Kletnieks@vt.edu
Cc: Al Viro <viro@parcelfarce.linux.theplanet.co.uk>,
"Randy.Dunlap" <rddunlap@osdl.org>,
linux-kernel@vger.kernel.org
Subject: Re: /proc parent &proc_root == NULL?
Date: Thu, 27 Jan 2005 01:51:05 -0500 [thread overview]
Message-ID: <41F88F59.6040904@comcast.net> (raw)
In-Reply-To: <200501270640.j0R6eD7N000647@turing-police.cc.vt.edu>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Valdis.Kletnieks@vt.edu wrote:
> On Wed, 26 Jan 2005 22:35:18 EST, John Richard Moser said:
>
>
>>This particular problem pertains to proc_misc.c and trying to create a
>>hook for some grsecurity protections that alter the modes on certain
>>/proc entries. The chunk of the patch I'm trying to immitate is:
>
>
>>+#ifdef CONFIG_GRKERNSEC_PROC_ADD
>>+ create_seq_entry("cpuinfo", gr_mode, &proc_cpuinfo_operations);
>>+#else
>> create_seq_entry("cpuinfo", 0, &proc_cpuinfo_operations);
>>+#endif
>
>
> An alternate way to approach this - leave the permissions alone here.
>
> And then use the security_ops->inode_permission() hook to do something like:
>
> if ((inode == cpuinfo) && (current->fsuid))
> return -EPERM;
>
> Writing the proper tests for whether it's the inode you want and whether to
> give the request the kiss-of-death are left as an excersize for the programmer.. ;)
>
> You may want to use a properly timed initcall() to create a callback that
> happens after proc_misc_init() happens, but before userspace gets going, and
> walk through the /proc tree at that time and cache info on the files you care
> about, so you don't have to re-walk /proc every time permission() gets called....
mmm. I'd thought about that actually-- for modules to get a whack at
this they'd have to be compiled in. Loaded as modules would break the
security.
Perhaps both. I could give modules a "Hook" that gave them a crack at
/proc on load, as well as put a hook in *read**read**read**read*
proc_permission()? (I wrote one there already! :)
Also, before it expires
http://rafb.net/paste/results/tZ5Jp878.html
Nice for a simple learning excercise huh? Modules aren't aware of
stacking, and there's no mandatory dummy code (a la security/dummy.c);
but each hook calls a function that does a loop (based on a C99 variadic
macro) through things, so the lack of a dummy module is kind of offset.
- --
All content of all messages exchanged herein are left in the
Public Domain, unless otherwise explicitly stated.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
iD8DBQFB+I9ZhDd4aOud5P8RAvDyAJ9m7KLA9+KzLg2colO3uhRXaxzOXACfQekQ
eHDZYuZ33Qtbz9q0fgaUhmw=
=k7kW
-----END PGP SIGNATURE-----
next prev parent reply other threads:[~2005-01-27 6:50 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-01-26 23:04 /proc parent &proc_root == NULL? John Richard Moser
2005-01-27 1:25 ` Randy.Dunlap
2005-01-27 2:33 ` John Richard Moser
2005-01-27 3:15 ` Al Viro
2005-01-27 3:35 ` John Richard Moser
2005-01-27 6:40 ` Valdis.Kletnieks
2005-01-27 6:51 ` John Richard Moser [this message]
2005-01-27 7:10 ` Valdis.Kletnieks
2005-01-27 7:43 ` John Richard Moser
2005-01-27 6:53 ` Valdis.Kletnieks
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=41F88F59.6040904@comcast.net \
--to=nigelenki@comcast.net \
--cc=Valdis.Kletnieks@vt.edu \
--cc=linux-kernel@vger.kernel.org \
--cc=rddunlap@osdl.org \
--cc=viro@parcelfarce.linux.theplanet.co.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox