From: Mimi Zohar <zohar@linux.ibm.com>
To: Tushar Sugandhi <tusharsu@linux.microsoft.com>,
stephen.smalley.work@gmail.com, casey@schaufler-ca.com,
agk@redhat.com, snitzer@redhat.com, gmazyland@gmail.com,
paul@paul-moore.com
Cc: tyhicks@linux.microsoft.com, sashal@kernel.org,
jmorris@namei.org, nramas@linux.microsoft.com,
linux-integrity@vger.kernel.org, selinux@vger.kernel.org,
linux-security-module@vger.kernel.org,
linux-kernel@vger.kernel.org, dm-devel@redhat.com
Subject: Re: [PATCH v5 0/7] IMA: Infrastructure for measurement of critical kernel data
Date: Wed, 04 Nov 2020 19:31:19 -0500 [thread overview]
Message-ID: <c840953db2937296c8d77d5d3b4e1274bf990e46.camel@linux.ibm.com> (raw)
In-Reply-To: <20201101222626.6111-1-tusharsu@linux.microsoft.com>
Hi Tushar,
Measuring "critical kernel data" is not a new infrastructure, simply a
new IMA hook. Please update the above Subject line to "support for
measuring critical kernel data".
On Sun, 2020-11-01 at 14:26 -0800, Tushar Sugandhi wrote:
> There are several kernel subsystems that contain critical data which if
> accidentally or maliciously altered, can compromise the integrity of the
> system. Examples of such subsystems would include LSMs like SELinux, or
> AppArmor; or device-mapper targets like dm-crypt, dm-verity etc.
> "critical data" in this context is kernel subsystem specific information
> that is stored in kernel memory. 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 is a bit better, but needs to be much clearer. Please define
"critical data", not by example, but by describing "what" critical
kernel data is. "There are several kernel subsystems ...." is an
example of "how" it would be used, not a definition. Without a clear
definition it will become a dumping ground for measuring anything
anyone wants to measure. As a result, it may be abused.
>
> This patch set defines a new IMA hook namely CRITICAL_DATA, and a
> function ima_measure_critical_data() - to measure the critical data.
The name of the IMA hook is ima_measure_critical_data. This is similar
to the LSM hooks, which are prefixed with "security_". (For a full
list of LSM hooks, refer to lsm_hook_defs.h.)
> 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.
>
> The functionality is generic enough to measure the data of any kernel
> subsystem at run-time. To ensure that only data from supported sources
> are measured, the kernel subsystem needs to be added to a compile-time
> list of supported sources (an "allowed list of components"). IMA
> validates the source passed to ima_measure_critical_data() against this
> allowed list at run-time.
Yes, this new feature is generic, but one of the main goals of IMA is
to measure and attest to the integrity of the system, not to measure
and attest to random things.
>
> System administrators may want to pick and choose which kernel
> subsystem information they would want to enable for measurements,
> quoting, and remote attestation. To enable that, a new IMA policy is
> introduced.
^may want to limit the critical data being measured, quoted and
attested.
^ a new IMA policy condition is defined.
>
> This patch set also addresses the need for the kernel subsystems to
> measure their data before a custom IMA policy is loaded - by providing
> a builtin IMA policy.
^for measuring kernel critical data early, before a custom IMA policy
...
>
> And lastly, the use of the overall functionality is demonstrated by
> measuring the kernel in-memory data for one such subsystem - SeLinux.
The purpose isn't to demonstrate the "overall functionality", but to
provide an initial caller of the new IMA hook.
thanks,
Mimi
next prev parent reply other threads:[~2020-11-05 0:31 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-01 22:26 [PATCH v5 0/7] IMA: Infrastructure for measurement of critical kernel data Tushar Sugandhi
2020-11-01 22:26 ` [PATCH v5 1/7] IMA: generalize keyring specific measurement constructs Tushar Sugandhi
2020-11-01 22:26 ` [PATCH v5 2/7] IMA: update process_buffer_measurement to measure buffer hash Tushar Sugandhi
2020-11-05 14:30 ` Mimi Zohar
2020-11-12 21:47 ` Tushar Sugandhi
2020-11-12 22:19 ` Mimi Zohar
2020-11-12 23:16 ` Tushar Sugandhi
2020-11-06 12:11 ` Mimi Zohar
2020-11-12 21:48 ` Tushar Sugandhi
2020-11-01 22:26 ` [PATCH v5 3/7] IMA: add hook to measure critical data Tushar Sugandhi
2020-11-06 13:24 ` Mimi Zohar
2020-11-12 21:57 ` Tushar Sugandhi
2020-11-12 23:56 ` Mimi Zohar
2020-11-13 17:23 ` Tushar Sugandhi
2020-11-01 22:26 ` [PATCH v5 4/7] IMA: add policy " Tushar Sugandhi
2020-11-06 13:43 ` Mimi Zohar
2020-11-12 22:02 ` Tushar Sugandhi
2020-11-01 22:26 ` [PATCH v5 5/7] IMA: validate supported kernel data sources before measurement Tushar Sugandhi
2020-11-06 14:01 ` Mimi Zohar
2020-11-12 22:09 ` Tushar Sugandhi
2020-11-13 0:06 ` Mimi Zohar
2020-11-01 22:26 ` [PATCH v5 6/7] IMA: add critical_data to the built-in policy rules Tushar Sugandhi
2020-11-06 15:24 ` Mimi Zohar
2020-11-06 15:37 ` Lakshmi Ramasubramanian
2020-11-06 23:51 ` Lakshmi Ramasubramanian
2020-11-08 15:46 ` Mimi Zohar
2020-11-09 17:24 ` Lakshmi Ramasubramanian
2020-11-01 22:26 ` [PATCH v5 7/7] selinux: measure state and hash of the policy using IMA Tushar Sugandhi
2020-11-06 15:47 ` Mimi Zohar
2020-11-05 0:31 ` Mimi Zohar [this message]
2020-11-12 22:18 ` [PATCH v5 0/7] IMA: Infrastructure for measurement of critical kernel data Tushar Sugandhi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=c840953db2937296c8d77d5d3b4e1274bf990e46.camel@linux.ibm.com \
--to=zohar@linux.ibm.com \
--cc=agk@redhat.com \
--cc=casey@schaufler-ca.com \
--cc=dm-devel@redhat.com \
--cc=gmazyland@gmail.com \
--cc=jmorris@namei.org \
--cc=linux-integrity@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-security-module@vger.kernel.org \
--cc=nramas@linux.microsoft.com \
--cc=paul@paul-moore.com \
--cc=sashal@kernel.org \
--cc=selinux@vger.kernel.org \
--cc=snitzer@redhat.com \
--cc=stephen.smalley.work@gmail.com \
--cc=tusharsu@linux.microsoft.com \
--cc=tyhicks@linux.microsoft.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).