lkml.org 
[lkml]   [2014]   [Dec]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Date
SubjectRe: [PATCH] ASLRv3: randomize_va_space=3 preventing offset2lib attack
On Mon, Dec 22, 2014 at 12:03 PM, Jiri Kosina <jkosina@suse.cz> wrote:
> On Mon, 22 Dec 2014, Andy Lutomirski wrote:
>
>> It could be worth having a mode that goes all out: randomize every
>> single allocation independently in, say, a 45 or 46-byte range. That
>> would be about as strong ASLR as we could possibly have, it would
>> result in guard intervals around mmap data allocations (which has real
>> value), and it would still leave plenty of space for big address space
>> hogs like the Chromium sandbox.
>>
>> The main downside would be lots of memory used for page tables.
>
> Plus get_random_int() during every mmap() call.

If that's actually a problem, then I think we should fix
get_random_int. Chacha20 can generate 64 bits in a few cycles.

> Plus the resulting VA
> space fragmentation.

I think the main cost of fragmentation would be the page tables and
vmas. 2^45 bytes is a lot of bytes.

We could tone it down a bit if we dedicated a range to mmapped data
and tried to pack it reasonably densely. We could even do a fair
amount of merging for data-heavy applications if we gave MAP_PRIVATE |
MAP_ANONYMOUS, PROT_READ | PROT_WRITE mappings a decent chance of
ending up next to each other.

Anyway, this would be a knob. The database people would presumably turn it off.

--Andy


\
 
 \ /
  Last update: 2014-12-22 21:21    [W:0.052 / U:0.288 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site