Re: Post Compile-Time RandStruct

From: Kees Cook
Date: Mon Jan 08 2024 - 12:52:43 EST


On Fri, Dec 29, 2023 at 11:57:57AM +0100, Jasper Niebuhr wrote:
> Unfortunately, debug information turned out to be inaccurate and
> incomplete at times. Combined with the kernel's quadrillion edge
> cases, this prevented me from taking the prototype any further until
> the deadline. We can see this concept fully shine with, for example, a
> compiler plugin to log any accesses, instead of a tool that deals with
> debug info. The second part of the prototype (or a mature, later
> version of it) can be integrated into distro installers or run
> whenever the kernel is updated. Even integration into the kernel's
> boot process would be an option.

Have you tried the Clang implementation of randstruct? It has correct
DWARF info, AFAIK.

> Since I am now in the writing phase of my thesis (deadline mid
> January), I thought I'd share our thoughts to hopefully get some
> feedback. Do you think this approach solves some of the issues that
> RandStruct currently comes with? Can you see such a system actually
> being deployed once it's fully functional?

Most distros don't use randstruct because it doesn't really do much
given their identical kernel images, so I'd love to see this kind of
work happen at run-time, and I think distro images would embrace it.

I look forward to seeing the research!

-Kees

--
Kees Cook