Re: [PATCH] mm/mincore: allow for making sys_mincore() privileged

From: Jiri Kosina
Date: Tue Jan 08 2019 - 21:31:50 EST


On Wed, 9 Jan 2019, Dave Chinner wrote:

> > But mincore is certainly the easiest interface, and the one that
> > doesn't require much effort or setup.
>
> Off the top of my head, here's a few vectors for reading the page
> cache residency state without perturbing the page cache residency
> pattern:
> - mincore
> - preadv2(RWF_NOWAIT)
> - fadvise(POSIX_FADV_RANDOM); timed read(2) syscalls
> - madvise(MADV_RANDOM); timed read of first byte in each page

While I obviously agree that all those are creating pagecache sidechannel
in principle, I think we really should mostly focus on the first two (with
mincore() already having been covered).

Rationale has been provided by Daniel Gruss in this thread -- if the
attacker is left with cache timing as the only available vector, he's
going to be much more successful with mounting hardware cache timing
attack anyway.

Thanks,

--
Jiri Kosina
SUSE Labs