Re: [PATCH v3 0/6] kernel ASLR

Kees Cook
2013-04-26T18:53:30Z

On Thu, Apr 25, 2013 at 3:01 PM, H. Peter Anvin <hpa@zytor.com> wrote:
> On 04/25/2013 02:54 PM, Kees Cook wrote:
>> This continues to build on the tip/kaslr patches for KASLR. This series
>> converts the logic to C, and moves both relocation and address selection
>> into the decompress_kernel path. Several areas were refactored to allow
>> for some code reuse (e.g. CPU flags, kernel command line).
>>
>> This does not yet attempt to rework the page tables to handle an arbitrary
>> physical memory location on x86_64. I would love some suggestions on
>> how to do this. :)
>>
>
> We *should* already support arbitrary physical memory locations at least
> in the kernel proper (the decompressor might need some work.)
>
> We may want to do in the decompressor what we already do in the kernel,
> and set up a #PF handler which creates page tables on demand. That way
> you can simply treat the entire memory space as a single linear space.

I'll need to compare the logic used for that against what's in
head_64.S for setting up the initial tables. And mapping the kernel
chunk as not 1-to-1, etc.

In the meantime, I'll send a v4 series with the other identified
changes since everything else (up to the 64-bit phy/virt detachment)
seems to be working.

-Kees

--
Kees Cook
Chrome OS Security