|
Message-ID: <20156f2a-6171-6a90-d4bc-f384f9c9247a@embeddedor.com> Date: Mon, 7 Aug 2017 18:35:32 -0500 From: "Gustavo A. R. Silva" <gustavo@...eddedor.com> To: Kees Cook <keescook@...omium.org> Cc: Thomas Garnier <thgarnie@...gle.com>, Kernel Hardening <kernel-hardening@...ts.openwall.com> Subject: Re: I want to help out On 08/07/2017 04:42 PM, Kees Cook wrote: > Welcome to the list! > Thank you, Kees. :) > On Mon, Aug 7, 2017 at 1:52 PM, Gustavo A. R. Silva > <gustavo@...eddedor.com> wrote: >> On 08/07/2017 10:31 AM, Thomas Garnier wrote: >>> You can take a look at this page [1] to get an idea on things to do. >>> You can also look at the difference patches coming and going on the >>> mailing list to see if anything interest you. >>> >>> Anything in particular you wanted to prototype? >>> >> >> I'm interested in mitigation efforts towards control flow infection, as >> function pointer poisoning for both .init_array (I know there is some >> ongoing work here) and .fini_array. > > I'd be curious to hear more about this work. > Yeah, this has to do with the use __ro_after_init for the case of .ctors (.init_array) ELF section. The case of .dtors or .fini_array ELF section is similar. A heap overflow could overwrite a .fini_array function pointer. But I guess this could be detected by guard pages. >> From the TODO list I think the following tasks are interesting: >> >> * Split thread_info off of kernel stack. >> * Move kernel stack to vmap area. >> * Implement kernel relocation and KASLR for ARM > > All three of these are needed on 32-bit arm. The last is a tricky one, > since kernel relocation is needed before KASLR can happen on ARM. > After reading this https://lwn.net/Articles/692208/ those first two tasks seem to be very challenging and even more interesting. So, I guess the idea would be to follow this same approach: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e37e43a497d5a8b7c0cc1736d56986f432c394c9 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=13d4ea097d18b419ad2a2b696063d44bf59acec0 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c65eacbe290b8141554c71b2c94489e73ade8c8d right? Is this already working for arm64? What would be a good strategy to start tackling those tasks? >> If there is already some work in progress and there are some small tasks >> pending to be completed, I'd like to help. > > More testing on arm64 VMAP_STACK would be great, if you have hardware available. > Oh, I guess this answer one of my questions above... I'm sorry. I have a Beagle Bone Black, which is 32-bit. >> Recently, I've been using Coccinelle to constify structures, and fixing a >> variety of Coverity issues (API usage errors, NULL pointer dereferences, >> control flow and code maintainability issues, etc..). I'm also using >> Coccinelle to identify lock/unlock issues. > > This is good work to be getting done too! > Yeah, I've been doing this over the last three months and, the plan is to continue fixing similar issues for a whole year. :) Thanks -- Gustavo A. R. Silva
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.