Re: [PATCH v3] sysctl: control functionality of /proc/pid/mem

Kees Cook
2012-01-31T19:26:32Z

On Wed, Jan 25, 2012 at 3:30 PM, Andrew Morton
<akpm@linux-foundation.org> wrote:
> On Mon, 23 Jan 2012 13:21:15 -0800
> Kees Cook <keescook@chromium.org> wrote:
>> Add the "proc_pid_mem" sysctl to control whether or not /proc/pid/mem is
>> allowed to work: 0: disabled, 1: read only, 2: read/write (default).
>
> I agree with Colin on this (he stole my line!).
>
> Overall, the patch looks really hacky and random.  I felt the same way
> as Vasily: it's easy to see how a significant number of similar (and
> hacky and random) patches could be added, resulting in a regrettable
> mess.
>
> Is there some better designed, more organized way of approaching all of
> this?  Random ideas:
>
> - A parallel /procfs-perms filesystem.  You write a number into
>  /procfs-perms/stat to affect access to /proc/stat (although why the
>  heck not just run `chmod /proc/stat'?) It's unclear how to handle
>  /proc/pid/.  Perhaps literally have a /procfs-perms/pid/ directory.

This seems like too much overhead to me.

> - Make tasks inherit their /proc/pid/* permissions across fork, do a
>  chmod /proc/1/whatever in initscripts.

This is actually pretty interesting. I think as long as it only
allowed the _reduction_ of access. I don't want a process to open up
access, just restrict it further. It does make me wonder what the
side-effects would be, though. Dropping user r/w perms to things for
non-DAC_OVERRIDE processes would be ... weird.

-Kees

--
Kees Cook
ChromeOS Security