From: Tushar Sugandhi <tusharsu@linux.microsoft.com>
To: Mimi Zohar <zohar@linux.ibm.com>,
stephen.smalley.work@gmail.com, casey@schaufler-ca.com,
agk@redhat.com, snitzer@redhat.com, gmazyland@gmail.com,
paul@paul-moore.com
Cc: sashal@kernel.org, dm-devel@redhat.com, selinux@vger.kernel.org,
jmorris@namei.org, linux-kernel@vger.kernel.org,
nramas@linux.microsoft.com,
linux-security-module@vger.kernel.org,
tyhicks@linux.microsoft.com, linux-integrity@vger.kernel.org
Subject: Re: [dm-devel] [PATCH v5 2/7] IMA: update process_buffer_measurement to measure buffer hash
Date: Thu, 12 Nov 2020 13:48:53 -0800 [thread overview]
Message-ID: <702e7d17-27f0-30e7-b5ce-affecb0c8de7@linux.microsoft.com> (raw)
In-Reply-To: <811fbc4a6f4bd02c77518bd4196d354071145f3e.camel@linux.ibm.com>
On 2020-11-06 4:11 a.m., Mimi Zohar wrote:
> Hi Tushar,
>
> Below inline are a few additional comments.
>
>> diff --git a/security/integrity/ima/ima_main.c b/security/integrity/ima/ima_main.c
>> index ae5da9f3339d..4485d87c0aa5 100644
>> --- a/security/integrity/ima/ima_main.c
>> +++ b/security/integrity/ima/ima_main.c
>> @@ -787,12 +787,15 @@ int ima_post_load_data(char *buf, loff_t size,
>> * @func: IMA hook
>> * @pcr: pcr to extend the measurement
>> * @func_data: private data specific to @func, can be NULL.
>> + * @measure_buf_hash: if set to true - will measure hash of the buf,
>> + * instead of buf
>> *
>> * Based on policy, the buffer is measured into the ima log.
>
> Both the brief and longer function descriptions need to be updated, as
> well as the last argument description. The last argument should be
> limited to "measure buffer hash". How it is used could be included in
> the longer function description. The longer function description would
> include adding the buffer data or the buffer data hash to the IMA
> measurement list and extending the PCR.
>
> For example,
> process_buffer_measurement - measure the buffer data or the buffer data
> hash
>
Thanks Mimi. Will update the brief and longer descriptions accordingly.
>
>> */
>> void process_buffer_measurement(struct inode *inode, const void *buf, int size,
>> const char *eventname, enum ima_hooks func,
>> - int pcr, const char *func_data)
>> + int pcr, const char *func_data,
>> + bool measure_buf_hash)
>> {
>> int ret = 0;
>> const char *audit_cause = "ENOMEM";
>> @@ -807,6 +810,8 @@ void process_buffer_measurement(struct inode *inode, const void *buf, int size,
>> struct ima_digest_data hdr;
>> char digest[IMA_MAX_DIGEST_SIZE];
>> } hash = {};
>> + char digest_hash[IMA_MAX_DIGEST_SIZE];
>> + int hash_len = hash_digest_size[ima_hash_algo];
>> int violation = 0;
>> int action = 0;
>> u32 secid;
>> @@ -855,6 +860,21 @@ void process_buffer_measurement(struct inode *inode, const void *buf, int size,
>> goto out;
>> }
>>
>> + if (measure_buf_hash) {
>> + memcpy(digest_hash, hash.hdr.digest, hash_len);
>
> Instead of digest_hash and hash_len, consider naming the variables
> buf_hash and buf_hashlen.
>
Thanks. Will do.
>> +
>> + ret = ima_calc_buffer_hash(digest_hash,
>> + hash_len,
>> + iint.ima_hash);
>
> There's no need for each variable to be on a separate line.
>
Thanks, will fix.
~Tushar
> thanks,
>
> Mimi
>
>> + if (ret < 0) {
>> + audit_cause = "measure_buf_hash_error";
>> + goto out;
>> + }
>> +
>> + event_data.buf = digest_hash;
>> + event_data.buf_len = hash_len;
>> + }
>> +
>> ret = ima_alloc_init_template(&event_data, &entry, template);
>> if (ret < 0) {
>> audit_cause = "alloc_entry";
--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
WARNING: multiple messages have this Message-ID (diff)
From: Tushar Sugandhi <tusharsu@linux.microsoft.com>
To: Mimi Zohar <zohar@linux.ibm.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 2/7] IMA: update process_buffer_measurement to measure buffer hash
Date: Thu, 12 Nov 2020 13:48:53 -0800 [thread overview]
Message-ID: <702e7d17-27f0-30e7-b5ce-affecb0c8de7@linux.microsoft.com> (raw)
In-Reply-To: <811fbc4a6f4bd02c77518bd4196d354071145f3e.camel@linux.ibm.com>
On 2020-11-06 4:11 a.m., Mimi Zohar wrote:
> Hi Tushar,
>
> Below inline are a few additional comments.
>
>> diff --git a/security/integrity/ima/ima_main.c b/security/integrity/ima/ima_main.c
>> index ae5da9f3339d..4485d87c0aa5 100644
>> --- a/security/integrity/ima/ima_main.c
>> +++ b/security/integrity/ima/ima_main.c
>> @@ -787,12 +787,15 @@ int ima_post_load_data(char *buf, loff_t size,
>> * @func: IMA hook
>> * @pcr: pcr to extend the measurement
>> * @func_data: private data specific to @func, can be NULL.
>> + * @measure_buf_hash: if set to true - will measure hash of the buf,
>> + * instead of buf
>> *
>> * Based on policy, the buffer is measured into the ima log.
>
> Both the brief and longer function descriptions need to be updated, as
> well as the last argument description. The last argument should be
> limited to "measure buffer hash". How it is used could be included in
> the longer function description. The longer function description would
> include adding the buffer data or the buffer data hash to the IMA
> measurement list and extending the PCR.
>
> For example,
> process_buffer_measurement - measure the buffer data or the buffer data
> hash
>
Thanks Mimi. Will update the brief and longer descriptions accordingly.
>
>> */
>> void process_buffer_measurement(struct inode *inode, const void *buf, int size,
>> const char *eventname, enum ima_hooks func,
>> - int pcr, const char *func_data)
>> + int pcr, const char *func_data,
>> + bool measure_buf_hash)
>> {
>> int ret = 0;
>> const char *audit_cause = "ENOMEM";
>> @@ -807,6 +810,8 @@ void process_buffer_measurement(struct inode *inode, const void *buf, int size,
>> struct ima_digest_data hdr;
>> char digest[IMA_MAX_DIGEST_SIZE];
>> } hash = {};
>> + char digest_hash[IMA_MAX_DIGEST_SIZE];
>> + int hash_len = hash_digest_size[ima_hash_algo];
>> int violation = 0;
>> int action = 0;
>> u32 secid;
>> @@ -855,6 +860,21 @@ void process_buffer_measurement(struct inode *inode, const void *buf, int size,
>> goto out;
>> }
>>
>> + if (measure_buf_hash) {
>> + memcpy(digest_hash, hash.hdr.digest, hash_len);
>
> Instead of digest_hash and hash_len, consider naming the variables
> buf_hash and buf_hashlen.
>
Thanks. Will do.
>> +
>> + ret = ima_calc_buffer_hash(digest_hash,
>> + hash_len,
>> + iint.ima_hash);
>
> There's no need for each variable to be on a separate line.
>
Thanks, will fix.
~Tushar
> thanks,
>
> Mimi
>
>> + if (ret < 0) {
>> + audit_cause = "measure_buf_hash_error";
>> + goto out;
>> + }
>> +
>> + event_data.buf = digest_hash;
>> + event_data.buf_len = hash_len;
>> + }
>> +
>> ret = ima_alloc_init_template(&event_data, &entry, template);
>> if (ret < 0) {
>> audit_cause = "alloc_entry";
next prev parent reply other threads:[~2020-11-13 8:03 UTC|newest]
Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-01 22:26 [dm-devel] [PATCH v5 0/7] IMA: Infrastructure for measurement of critical kernel data Tushar Sugandhi
2020-11-01 22:26 ` Tushar Sugandhi
2020-11-01 22:26 ` [dm-devel] [PATCH v5 1/7] IMA: generalize keyring specific measurement constructs Tushar Sugandhi
2020-11-01 22:26 ` Tushar Sugandhi
2020-11-01 22:26 ` [dm-devel] [PATCH v5 2/7] IMA: update process_buffer_measurement to measure buffer hash Tushar Sugandhi
2020-11-01 22:26 ` Tushar Sugandhi
2020-11-05 14:30 ` [dm-devel] " Mimi Zohar
2020-11-05 14:30 ` Mimi Zohar
2020-11-12 21:47 ` [dm-devel] " Tushar Sugandhi
2020-11-12 21:47 ` Tushar Sugandhi
2020-11-12 22:19 ` [dm-devel] " Mimi Zohar
2020-11-12 22:19 ` Mimi Zohar
2020-11-12 23:16 ` [dm-devel] " Tushar Sugandhi
2020-11-12 23:16 ` Tushar Sugandhi
2020-11-06 12:11 ` [dm-devel] " Mimi Zohar
2020-11-06 12:11 ` Mimi Zohar
2020-11-12 21:48 ` Tushar Sugandhi [this message]
2020-11-12 21:48 ` Tushar Sugandhi
2020-11-01 22:26 ` [dm-devel] [PATCH v5 3/7] IMA: add hook to measure critical data Tushar Sugandhi
2020-11-01 22:26 ` Tushar Sugandhi
2020-11-06 13:24 ` [dm-devel] " Mimi Zohar
2020-11-06 13:24 ` Mimi Zohar
2020-11-12 21:57 ` [dm-devel] " Tushar Sugandhi
2020-11-12 21:57 ` Tushar Sugandhi
2020-11-12 23:56 ` [dm-devel] " Mimi Zohar
2020-11-12 23:56 ` Mimi Zohar
2020-11-13 17:23 ` [dm-devel] " Tushar Sugandhi
2020-11-13 17:23 ` Tushar Sugandhi
2020-11-01 22:26 ` [dm-devel] [PATCH v5 4/7] IMA: add policy " Tushar Sugandhi
2020-11-01 22:26 ` Tushar Sugandhi
2020-11-06 13:43 ` [dm-devel] " Mimi Zohar
2020-11-06 13:43 ` Mimi Zohar
2020-11-12 22:02 ` [dm-devel] " Tushar Sugandhi
2020-11-12 22:02 ` Tushar Sugandhi
2020-11-01 22:26 ` [dm-devel] [PATCH v5 5/7] IMA: validate supported kernel data sources before measurement Tushar Sugandhi
2020-11-01 22:26 ` Tushar Sugandhi
2020-11-06 14:01 ` [dm-devel] " Mimi Zohar
2020-11-06 14:01 ` Mimi Zohar
2020-11-12 22:09 ` [dm-devel] " Tushar Sugandhi
2020-11-12 22:09 ` Tushar Sugandhi
2020-11-13 0:06 ` [dm-devel] " Mimi Zohar
2020-11-13 0:06 ` Mimi Zohar
2020-11-01 22:26 ` [dm-devel] [PATCH v5 6/7] IMA: add critical_data to the built-in policy rules Tushar Sugandhi
2020-11-01 22:26 ` Tushar Sugandhi
2020-11-06 15:24 ` [dm-devel] " Mimi Zohar
2020-11-06 15:24 ` Mimi Zohar
2020-11-06 15:37 ` [dm-devel] " Lakshmi Ramasubramanian
2020-11-06 15:37 ` Lakshmi Ramasubramanian
2020-11-06 23:51 ` [dm-devel] " Lakshmi Ramasubramanian
2020-11-06 23:51 ` Lakshmi Ramasubramanian
2020-11-08 15:46 ` [dm-devel] " Mimi Zohar
2020-11-08 15:46 ` Mimi Zohar
2020-11-09 17:24 ` Lakshmi Ramasubramanian
2020-11-01 22:26 ` [dm-devel] [PATCH v5 7/7] selinux: measure state and hash of the policy using IMA Tushar Sugandhi
2020-11-01 22:26 ` Tushar Sugandhi
2020-11-06 15:47 ` [dm-devel] " Mimi Zohar
2020-11-06 15:47 ` Mimi Zohar
2020-11-05 0:31 ` [dm-devel] [PATCH v5 0/7] IMA: Infrastructure for measurement of critical kernel data Mimi Zohar
2020-11-05 0:31 ` Mimi Zohar
2020-11-12 22:18 ` [dm-devel] " Tushar Sugandhi
2020-11-12 22:18 ` 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=702e7d17-27f0-30e7-b5ce-affecb0c8de7@linux.microsoft.com \
--to=tusharsu@linux.microsoft.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=tyhicks@linux.microsoft.com \
--cc=zohar@linux.ibm.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.