Re: [PATCH v6 0/8] IMA: support for measuring kernel integrity critical data

From: Tushar Sugandhi
Date: Sun Nov 22 2020 - 15:54:23 EST


Thanks Pavel for looking at this series.

On 2020-11-20 4:46 a.m., Pavel Machek wrote:
On Thu 2020-11-19 15:26:03, Tushar Sugandhi wrote:
Kernel integrity critical data can be defined as the in-memory kernel
data which if accidentally or maliciously altered, can compromise the
integrity of the system.

Is that an useful definition?
I will rework on the definition in the next iteration.
Meanwhile, if you have any feedback on what can we add to the
definition, that would help is.


There are several kernel subsystems that contain integrity critical
data - e.g. LSMs like SELinux, or AppArmor; or device-mapper targets
like dm-crypt, dm-verity etc. Examples of critical data could be kernel
in-memory r/o structures, hash of the memory structures, or data that
represents a linux kernel subsystem state.

This patch set defines a new IMA hook namely ima_measure_critical_data()
to measure the critical data. Kernel subsystems can use this
functionality, to take advantage of IMA's measuring and quoting
abilities - thus ultimately enabling remote attestation for the
subsystem specific information stored in the kernel memory.

How is it supposed to be useful?

I'm pretty sure there are critical data that are not measured by
proposed module... and that are written under normal circumstances.

The goal of this series is to introduce the IMA hook
measure_critical_data() and the necessary policies to use it; and
illustrate that use with one example (SELinux). It is not scalable to identify and update all the critical data sources to use the proposed
module at once.

A piecemeal approach to add more critical data measurement in subsequent
patches would be easy to implement and review.

Please let me know if you have more thoughts on this. (what critical
data you think would be useful to measure etc.)

~Tushar

Best regards,

Pavel