Re: [PATCH v2 0/4] Checkpoint/Restore: Show in proc IDs of objects that can be shared between tasks

Cyrill Gorcunov
2011-11-18T21:03:29Z

On Fri, Nov 18, 2011 at 12:37:28PM -0800, Andrew Morton wrote:
...
> >
> > Actually the address is not exposed in open-form but rather xor'ed with
> > a random number, still from security pov it's not clear if it's really useful
> > for attacker to obtain inverted low bits of the former random number (which
> > might happen on aligned addresses).
> >
>
> Of course. But
>
> a) I'm not sure that this scheme actually protects the kernel
> addresses - there may be way in which cunning userspace can work out
> the random mask.
>

Well, in case of hw-rng it should not be that easy, still of course
there is no 100% guarantee that there is absolutely no way to predict
this mask (espec since it's generated once at lives here forever). But
whatever makes attacker life harder -- is a good thing. After all we might
simply take some hash on kernel address here (such as sha256) since it's
not a time-critical operation and as far as I know collision is not found
for it yet (??).

> b) If we can export these addresses only to CAP_SYS_ADMIN tasks then
> we don't need to obfuscate them anyway.
>
> Which takes me back to again asking: why not make c/r root-only?
> And provide non-root access via a carefully-written setuid
> front-end?
>

I think non-root approach is a win in a long term (even if it requires
some new CAP_ for that). The less root priviledge needed -- then better.
Having it root-only is easier of course and solves the problem of masking
kernel addresses from untrusted user-space agents, but still. Pavel, what
do you think about root-only?

Cyrill