On Thu, Nov 9, 2017 at 11:13 AM, Roberto Sassu <roberto.sassu@xxxxxxxxxx> wrote:
On 11/9/2017 3:47 PM, Matthew Garrett wrote:
There's no need to have a policy that measures those files, because
they're part of the already-measured initramfs. Just set the IMA
policy after you've loaded the digest list.
The default IMA policy measures files accessed from the initial ram
disk. It is easier to verify individual files, rather than the whole
image.
That's a matter of implementation. You're not forced to use the default policy.
This seems very over-complicated, and it's unclear why the kernel
needs to open the file itself. You *know* that all of userland is
You can have a look at ima_fs.c. If appraisal is in enforcing mode,
direct upload of a policy is not permitted. The kernel reads the policy,
calculates the digest, and verifies the signature.
Is there an expectation that you'll load additional digest lists at runtime?
trustworthy at this point even in the absence of signatures. It seem >
reasonable to provide a interface that allows userland to pass a
digest list to the kernel, in the same way that userland can pass an
IMA policy to the kernel. You can then restrict access to that
interface via an LSM.
Then digest lists cannot be used alone, without an LSM. Also, verifiers
have to check the LSM policy to ensure that only the parser was able to
upload the digest lists.
Only if you want to add additional digest lists at runtime, but yes,
you really want to be verifying the LSM policy in any case.