Re: [kernel-hardening] [PATCH v4 0/8] introduce post-init read-only memory

From: Kees Cook
Date: Fri Jan 22 2016 - 14:57:11 EST

On Fri, Jan 22, 2016 at 11:16 AM, Laura Abbott <laura@xxxxxxxxxxxx> wrote:
> On 1/22/16 9:19 AM, David Brown wrote:
>> On Tue, Jan 19, 2016 at 10:08:34AM -0800, Kees Cook wrote:
>>> This introduces __ro_after_init as a way to mark such memory, and uses
>>> it on the x86 vDSO to kill an extant kernel exploitation method. Also
>>> adds a new kernel parameter to help debug future use and adds an lkdtm
>>> test to check the results.
>> I've tested these patches on 32-bit ARM using the provoke-crashes
>> test. However, they do require CONFIG_ARM_KERNMEM_PERMS to be enabled
>> as well, which does incur additional memory usage.

Thanks for testing!

>> Do we want to consider making CONFIG_ARM_KERNMEM_PERMS default y for
>> security reasons, and just document that memory-constrained systems
>> may want to turn it off?
>> I'll test the arm64 next.
>> David
> Kees had previously pushed a patch to do so but it exposed a couple of
> underlying issues, mostly with low power paths
> (c.f.,
> Those will need to be all fixed up before this could be made default.

Yeah, I've got a patch waiting to reorganize CONFIG_ARM_KERNMEM_PERMS
to look more like arm64 (and x86) and get the feature correctly under
CONFIG_DEBUG_RODATA. I made it default=y on v7+. rmk asked me to wait
until -rc1 before resubmitting it.

and a small improvement too:


Kees Cook
Chrome OS & Brillo Security