Re: [PATCH v3] ima: detect changes to the backing overlay file

From: Raul Rangel
Date: Thu Oct 26 2023 - 11:32:06 EST


On Wed, Oct 25, 2023 at 12:01 PM Mimi Zohar <zohar@xxxxxxxxxxxxx> wrote:
>
> On Wed, 2023-10-25 at 16:27 +0000, Eric Snowberg wrote:
> >
> > > On Oct 25, 2023, at 8:39 AM, Mimi Zohar <zohar@xxxxxxxxxxxxx> wrote:
> > >
> > > Commit 18b44bc5a672 ("ovl: Always reevaluate the file signature for
> > > IMA") forced signature re-evaulation on every file access.
> > >
> > > Instead of always re-evaluating the file's integrity, detect a change
> > > to the backing file, by comparing the cached file metadata with the
> > > backing file's metadata. Verifying just the i_version has not changed
> > > is insufficient. In addition save and compare the i_ino and s_dev
> > > as well.
> > >
> > > Signed-off-by: Mimi Zohar <zohar@xxxxxxxxxxxxx>
> >
> > I ran the file integrity tests that originally uncovered the need for
> > "Commit 18b44bc5a672 ("ovl: Always reevaluate the file signature for
> > IMA”). When the backing file is changed, file integrity remains. For that
> > part, feel free to add:
> >
> > Tested-by: Eric Snowberg <eric.snowberg@xxxxxxxxxx>
>
> Thanks!
>
> Mimi
>

I just verified this fixes the speed regression:

```
rrangel920 / # time clang --version >/dev/null

real 0m0.369s
user 0m0.000s
sys 0m0.368s
rrangel920 / #
rrangel920 / # time clang --version >/dev/null

real 0m0.017s
user 0m0.004s
sys 0m0.013s
rrangel920 / # time clang --version >/dev/null

real 0m0.012s
user 0m0.000s
sys 0m0.012s
rrangel920 / # time clang --version >/dev/null

real 0m0.012s
user 0m0.000s
sys 0m0.012s
```

Tested-by: Raul E Rangel <rrangel@xxxxxxxxxxxx>

Thanks again for the quick fix!