ELF Executable Signing/Verification Comes For Linux
Vivek Goyal of Red Hat has published the initial Linux patches for implementing ELF executable signing and verification. This support is similar to Linux kernel module signature verification and is necessitated with the arrival of SecureBoot.
Vivek explains the motivation for this ELF executable signing/verification, "With arrival of secureboot, sys_kexec() is deemed dangerous. One can effectively bypass the secureboot feature and run its own kernel. So Matthew Garret proposed disabling sys_kexec() in secureboot mode. Later in a separate thread it was discussed how to handle the issue of sys_kexec() with secureboot. My takeaway from discussion was that we need to sign /sbin/kexec. Signed executable can get extra capability and we can allow/disallow access to sys_kexec() based on that capability (Thanks to Eric Biederman for the idea). So that's my motivation to make user space signing work so that I can get kdump working with secureboot enabled. There might be other people who might find it useful in general."
These current three patches for implementing the Linux kernel support plus the new "signelf" utility are current described as very crude patches while Vivek Goyal is hoping to solicit feedback on this work. This work currently only supports statically-linked executables with no support for dynamic linking at present and does have some other limitations like not supporting dlopen().
The initial patches for Linux ELF executable signing and verification are currently on the Linux kernel mailing list.
Vivek explains the motivation for this ELF executable signing/verification, "With arrival of secureboot, sys_kexec() is deemed dangerous. One can effectively bypass the secureboot feature and run its own kernel. So Matthew Garret proposed disabling sys_kexec() in secureboot mode. Later in a separate thread it was discussed how to handle the issue of sys_kexec() with secureboot. My takeaway from discussion was that we need to sign /sbin/kexec. Signed executable can get extra capability and we can allow/disallow access to sys_kexec() based on that capability (Thanks to Eric Biederman for the idea). So that's my motivation to make user space signing work so that I can get kdump working with secureboot enabled. There might be other people who might find it useful in general."
These current three patches for implementing the Linux kernel support plus the new "signelf" utility are current described as very crude patches while Vivek Goyal is hoping to solicit feedback on this work. This work currently only supports statically-linked executables with no support for dynamic linking at present and does have some other limitations like not supporting dlopen().
The initial patches for Linux ELF executable signing and verification are currently on the Linux kernel mailing list.
22 Comments