From: Mimi Zohar <zohar@linux.vnet.ibm.com>
To: Mikhail Kurinnoi <viewizard@viewizard.com>,
Matthew Garrett <mjg59@google.com>
Cc: linux-integrity <linux-integrity@vger.kernel.org>,
Dmitry Kasatkin <dmitry.kasatkin@huawei.com>
Subject: Re: [RFC] EVM: Add support for portable signature format
Date: Thu, 26 Oct 2017 15:22:53 -0400 [thread overview]
Message-ID: <1509045773.5886.93.camel@linux.vnet.ibm.com> (raw)
In-Reply-To: <20171026124616.2f2ef1d2@totoro>
On Thu, 2017-10-26 at 12:46 +0300, Mikhail Kurinnoi wrote:
> ? Thu, 26 Oct 2017 02:08:25 -0700
> Matthew Garrett <mjg59@google.com> ?????:
>
> > On Thu, Oct 26, 2017 at 2:03 AM, Mikhail Kurinnoi
> > <viewizard@viewizard.com> wrote:
> > > ? Thu, 26 Oct 2017 01:31:44 -0700
> > > Matthew Garrett <mjg59@google.com> ?????:
> > >
> > >> @@ -317,7 +319,7 @@ void ima_update_xattr(struct
> > >> integrity_iint_cache *iint, struct file *file) int rc = 0;
> > >>
> > >> /* do not collect and update hash for digital signatures */
> > >> - if (iint->flags & IMA_DIGSIG)
> > >> + if (iint->flags & IMA_DIGSIG || iint->flags &
> > >> EVM_IMMUTABLE_DIGSIG) return;
> > >>
> > >
> > > Isn't this mean, we already changed files data, and we just don't
> > > allow IMA xattr update? This file will not pass integrity
> > > verification next time.
> >
> > That's fine - policy may not care. It's easier to sign all files and
> > then leave enforcement up to the local policy than it is to determine
> > in advance which files will need protection.
You're both correct. Signing the file data will prevent security.ima
from changing, assuming the file is in policy and there is a
FILE_CHECK rule. We're requiring the signed file-metadata include
security.ima, but it currently doesn't require it to contain a file
signature. Only having a single file signature, was one of Matthew's
requirements.
IMA accessing the EVM flags crosses the boundary between EVM/IMA. Just
as the LSMs protect their own xattr label, EVM should protect
security.evm, preventing it from changing. There's no need for the
test here in IMA.
An additional patch could prevent IMA from allowing files with the
portable/immutable signatures from changing, just as it currently
prevents signed file data from changing. Refer to the
IMA_XATTR_DIGEST case statement in ima_appraise_measurement(). It
should be based on the result returned from evm_verifyxattr(), as
Mikhail suggested.
> > > I thought, the idea was prevent data changes, and in this way
> > > prevent IMA xattr update.
> >
> > No, the goal is to be able to detect when files have been modified and
> > (optionally) restrict access as a result. Otherwise the packaging
> > system has to be able to identify all files that may be legitimately
> > modified, which is something that may differ depending on the client.
> > It's much easier to permit the data modification and have the local
> > policy block reading or execution if it's actually a sensitive file.
>
> Hmm...
> http://www.spinics.net/lists/linux-integrity/msg00151.html
>
> probably, we should decide first, what exactly immutable EVM mean.
> It's hard to propose something or test patch if we still have
> misunderstanding in concept of immutable EVM.
Agreed. I think EVM should prevent any changes to the file metadata
that would cause the portable/immutable EVM signature to be invalid.
For example, the change in evm_inode_setattr() permits the file
metadata to change. The same is true for removing files or writing
security xattrs.
Mimi
next prev parent reply other threads:[~2017-10-26 19:23 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-26 8:31 [RFC] EVM: Add support for portable signature format Matthew Garrett
2017-10-26 9:03 ` Mikhail Kurinnoi
2017-10-26 9:08 ` Matthew Garrett
2017-10-26 9:46 ` Mikhail Kurinnoi
2017-10-26 19:22 ` Mimi Zohar [this message]
2017-10-30 10:53 ` Matthew Garrett
2017-10-30 11:36 ` Mimi Zohar
2017-10-30 11:51 ` Matthew Garrett
2017-10-30 12:14 ` Mimi Zohar
2017-10-27 10:27 ` Dmitry Kasatkin
2017-10-30 12:30 ` Mimi Zohar
2017-10-30 13:21 ` Matthew Garrett
2017-10-30 13:58 ` Mimi Zohar
2017-10-30 14:04 ` Matthew Garrett
2017-10-27 10:41 ` Dmitry Kasatkin
2017-10-30 12:38 ` Mimi Zohar
2017-10-30 13:17 ` Matthew Garrett
2017-10-30 15:31 ` Mimi Zohar
2017-10-30 15:36 ` Matthew Garrett
2017-11-01 17:54 ` Matthew Garrett
2017-11-01 18:25 ` Mimi Zohar
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=1509045773.5886.93.camel@linux.vnet.ibm.com \
--to=zohar@linux.vnet.ibm.com \
--cc=dmitry.kasatkin@huawei.com \
--cc=linux-integrity@vger.kernel.org \
--cc=mjg59@google.com \
--cc=viewizard@viewizard.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).