Re: [PATCH V33 24/30] bpf: Restrict bpf when kernel lockdown is in confidentiality mode
From: Matthew Garrett <hidden>
Date: 2019-06-27 23:16:53
Also in:
linux-api, linux-security-module, lkml
From: Matthew Garrett <hidden>
Date: 2019-06-27 23:16:53
Also in:
linux-api, linux-security-module, lkml
On Thu, Jun 27, 2019 at 1:16 PM Stephen Smalley [off-list ref] wrote:
That would only allow the LSM to further lock down the system above the lockdown level set at boot, not grant exemptions for specific functionality/interfaces required by the user or by a specific process/program. You'd have to boot with lockdown=none (or your lockdown=custom suggestion) in order for the LSM to allow anything covered by the integrity or confidentiality levels. And then the kernel would be unprotected prior to full initialization of the LSM, including policy load. It seems like one would want to be able to boot with lockdown=integrity to protect the kernel initially, then switch over to allowing the LSM to selectively override it.
One option would be to allow modules to be "unstacked" at runtime, but there's still something of a problem here - how do you ensure that your userland can be trusted to load a new policy before it does so? If you're able to assert that your early userland is trustworthy (perhaps because it's in an initramfs that's part of your signed boot payload), there's maybe an argument that most of the lockdown integrity guarantees are unnecessary before handoff - just using the lockdown LSM to protect against attacks via kernel parameters would be sufficient.