Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1280375

Re: [PATCH v2 1/4] init: create cmdline param to disable readonly

From Kees Cook <keescook@chromium.org>
Newsgroups linux.kernel
Subject Re: [PATCH v2 1/4] init: create cmdline param to disable readonly
Date 2015-11-30 23:40 +0100
Message-ID <qAFh0-18d-17@gated-at.bofh.it> (permalink)
References <qyRPj-4wz-1@gated-at.bofh.it> <qyRPj-4wz-3@gated-at.bofh.it> <qyZDd-1YS-27@gated-at.bofh.it> <qAEEi-FH-33@gated-at.bofh.it> <qAF7k-15b-7@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Mon, Nov 30, 2015 at 2:24 PM, Russell King - ARM Linux
<linux@arm.linux.org.uk> wrote:
> On Mon, Nov 30, 2015 at 01:52:10PM -0800, Kees Cook wrote:
>> On Wed, Nov 25, 2015 at 11:51 PM, Ingo Molnar <mingo@kernel.org> wrote:
>> > * Kees Cook <keescook@chromium.org> wrote:
>> >> +#ifdef CONFIG_DEBUG_RODATA
>> >
>> > Btw., could you please remove the Kconfig option altogether in an additional patch
>> > and make read-only sections an always-on feature? It has been default-y for years
>> > and all distros have it enabled.
>>
>> Yeah, this is something I've wanted to do for a while, but I would
>> point out that only a few architectures have actually implemented it,
>> and for arm and arm64 it was very recent:
>
> I don't think it can entirely be a kernel command line option.  On ARM,
> enabling DEBUG_RODATA has a substantial effect on the size of the kernel
> image - we have to pad various sections to 1MB boundaries so we can
> set the appropriate permissions.
>
> Forcing this layout on everyone won't work.
>
> What we can do is the half-way house: we can have the kernel command
> line option which enables and disables the protections, but the layout
> of the kernel image would still need to be controlled by DEBUG_RODATA.
> I'm left wondering what the advantage of that would be: it'd end up
> offering a suboptimal layout, additional memory usage but without the
> benefits of memory protections.

Right, I think it'll be there just as a debugging assist: something
broke with DEBUG_RODATA, let's boot with rodata=off and see what
happens.

> The alternative is keeping the kernel in unlinked object form, and
> laying out and linking the kernel at boot time, probably in PIC
> assembly code.  That's possible but I think is undesirable.
>
> So all in all, I'm in favour of keeping things as they are on ARM.

I've looked at the implementation in ARM again, and I think I see how
it can be improved slightly. I think I named things incorrectly when I
implemented, and I'll be sending a patch to fix that up. In the end,
though, I agree: the thing that is CONFIG_DEBUG_RODATA may change its
name, but on some architectures, there is a cost to using it, so it
needs to remain a CONFIG.

-Kees

-- 
Kees Cook
Chrome OS & Brillo Security
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH v2 0/4] introduce post-init read-only memory Kees Cook <keescook@chromium.org> - 2015-11-26 00:40 +0100
  [PATCH v2 1/4] init: create cmdline param to disable readonly Kees Cook <keescook@chromium.org> - 2015-11-26 00:40 +0100
    Re: [PATCH v2 1/4] init: create cmdline param to disable readonly "PaX Team" <pageexec@freemail.hu> - 2015-11-26 01:40 +0100
    Re: [kernel-hardening] [PATCH v2 1/4] init: create cmdline param to  disable readonly Greg KH <greg@kroah.com> - 2015-11-26 02:10 +0100
    Re: [PATCH v2 1/4] init: create cmdline param to disable readonly Ingo Molnar <mingo@kernel.org> - 2015-11-26 09:00 +0100
      Re: [PATCH v2 1/4] init: create cmdline param to disable readonly Kees Cook <keescook@chromium.org> - 2015-11-30 23:00 +0100
        Re: [PATCH v2 1/4] init: create cmdline param to disable readonly Russell King - ARM Linux <linux@arm.linux.org.uk> - 2015-11-30 23:30 +0100
          Re: [PATCH v2 1/4] init: create cmdline param to disable readonly Kees Cook <keescook@chromium.org> - 2015-11-30 23:40 +0100
          Re: [PATCH v2 1/4] init: create cmdline param to disable readonly Ingo Molnar <mingo@kernel.org> - 2015-12-01 08:30 +0100
        Re: [PATCH v2 1/4] init: create cmdline param to disable readonly Heiko Carstens <heiko.carstens@de.ibm.com> - 2015-12-01 08:20 +0100
  [PATCH v2 3/4] lkdtm: verify that __ro_after_init works correctly Kees Cook <keescook@chromium.org> - 2015-11-26 00:40 +0100
  [PATCH v2 2/4] introduce post-init read-only memory Kees Cook <keescook@chromium.org> - 2015-11-26 00:40 +0100
    Re: [PATCH v2 2/4] introduce post-init read-only memory "PaX Team" <pageexec@freemail.hu> - 2015-11-26 01:20 +0100
      Re: [PATCH v2 2/4] introduce post-init read-only memory "H. Peter Anvin" <hpa@zytor.com> - 2015-11-30 23:30 +0100
        Re: [PATCH v2 2/4] introduce post-init read-only memory Kees Cook <keescook@chromium.org> - 2015-12-09 20:40 +0100
  [PATCH v2 4/4] x86, vdso: mark vDSO read-only after init Kees Cook <keescook@chromium.org> - 2015-11-26 00:40 +0100

csiph-web