From: Mimi Zohar <zohar@linux.ibm.com>
To: Petr Vorel <pvorel@suse.cz>
Cc: linux-integrity@vger.kernel.org, ltp@lists.linux.it
Subject: Re: [LTP] [PATCH v2 6/8] IMA: Add example policy for ima_violations.sh
Date: Tue, 07 Jan 2025 13:29:35 -0500 [thread overview]
Message-ID: <baefcfa48e2e66e88b79b9db915d6c664d71c428.camel@linux.ibm.com> (raw)
In-Reply-To: <20250103190259.GA223253@pevik>
On Fri, 2025-01-03 at 20:02 +0100, Petr Vorel wrote:
> > On Tue, 2024-12-31 at 13:23 +0100, Petr Vorel wrote:
> > > Hi Mimi,
>
> > > > Hi Petr,
>
> > > > On Fri, 2024-12-13 at 23:20 +0100, Petr Vorel wrote:
> > > > > Suggested-by: Mimi Zohar <zohar@linux.ibm.com>
> > > > > Signed-off-by: Petr Vorel <pvorel@suse.cz>
> > > > > ---
> > > > > .../integrity/ima/datafiles/ima_violations/violations.policy | 1 +
> > > > > 1 file changed, 1 insertion(+)
> > > > > create mode 100644
> > > > > testcases/kernel/security/integrity/ima/datafiles/ima_violations/violations
> > > > > .policy
>
> > > > > diff --git
> > > > > a/testcases/kernel/security/integrity/ima/datafiles/ima_violations/violatio
> > > > > ns.policy
> > > > > b/testcases/kernel/security/integrity/ima/datafiles/ima_violations/violatio
> > > > > ns.policy
> > > > > new file mode 100644
> > > > > index 0000000000..5734c7617f
> > > > > --- /dev/null
> > > > > +++
> > > > > b/testcases/kernel/security/integrity/ima/datafiles/ima_violations/violatio
> > > > > ns.policy
> > > > > @@ -0,0 +1 @@
> > > > > +func=FILE_CHECK
>
> > > > "[PATCH v2 1/8] IMA: Add TCB policy as an example for ima_measurements.sh"
> > > > contains two rules to measure files opened by root on file open.
>
> > > > measure func=FILE_CHECK mask=^MAY_READ euid=0
> > > > measure func=FILE_CHECK mask=^MAY_READ uid=0
>
> > > > If the 'tcb' or equivalent policy is loaded, there is no need to load another
> > > > policy rule.
>
> > > I guess I'll move check for builtin policy loaded via kernel command line
> > > parameter also to ima_setup.sh to avoid loading example policy when there is a
> > > required builtin policy loaded.
>
>
> > Between the builtin and arch specific policies, most of the rules are already
> > defined. The exception is measuring the boot command line. Perhaps we should
> > update the arch specific policy to include it with the other kexec rules.
>
> > The arch specific policy may include the rule that requires the IMA policy to be
> > signed.
>
> > > I also wonder what is a common approach - don't
> > > try to load custom example policy when there is builtin policy loaded?
>
> > How about first checking if the rule exists when there is a builtin or
> > equivalent custom policy loaded, before loading the example test policy?
>
>
> > > My goal was to allow more broad IMA testing based on different setup:
>
> > Very good.
>
> > > * running tests with ima_policy=tcb builtin policy (current approach). Many
> > > tests will be skipped due missing required policy content.
>
> > Ok. Remember even with "ima_policy=tcb" specified on the boot command line, the
> > results will differ depending on whether the arch specific policy is loaded.
>
> > > * running tests without any builtin policy + load a custom policy + reboot via
> > > LTP_IMA_LOAD_POLICY=1 (this patchset), but this should be probably be done only
> > > if required (or even none) builtin policy is loaded.
>
> > Good. The first patch introduces the equivalent custom policy to
> > "ima_policy=tcb". By "load a custom policy" are you referring to this policy or
> > a specific policy test rule?
>
> I refer to this policy. Maybe better would be "policy content required by the test"
> or "test example policy".
>
> My point is to allow testing without forcing ima_policy=tcb setup (some tooling
> might not allow easily to add kernel cmdline parameters). Also, mixing test
> example policy with ima_policy=tcb may result a different measurements, right?
Only if the file matches multiple, different measurement rules. The ordering of the
policy rules impacts the measurement and might even prevent the measurement.
>
> If the above assumption is correct I would like to have testing *with*
> ima_policy=tcb without loading any test example policy
I assume the purpose is to simplify testing.
However,
- Not all of the policy rules needed by the tests are included in the builtin "tcb"
measurement policy. Without loading test specific example policy rules, the testing
would be incomplete.
- There's no guarantee that the builtin "tcb" measurement policy has not been
replaced with a custom policy.
> and *without*
> ima_policy=tcb but loading test example policy via LTP_IMA_LOAD_POLICY=1.
Ok, but this assumes the ability of loading an unsigned policy.
>
> > > * Ideally not require CONFIG_IMA_READ_POLICY=y as some distros does not have it
> > > (but then it is hard to detect whether failures are real bugs or just false
> > > positives due not having a proper policy). Maybe convert TBROK/TFAIL to TCONF
> > > if
>
> I'm sorry, I was wrong here, I meant to ask: convert TFAIL to either TBROK or
> TCONF,
> e.g. my patch [1].
>
> > > policy content is required but cannot be read due CONFIG_IMA_READ_POLICY (and
> > > custom policy with proper content was not loaded).
>
> > Probably the latter option of converting from TBROK/TFAIL to TCONF is
> > preferable. Why fail a test without knowing it will fail.
>
> Because on distros without CONFIG_IMA_READ_POLICY=y we never get notified about
> the failure (maybe kernel is broken when it fails but nobody notices TCONF).
> But although there is a slight difference between TFAIL and TBROK [2], I agree
> that TCONF is probably the best (nobody wants to deal with false positives),
> which is handled in my patch [1].
>
> But instead of this I'll try for all tests which require to have certain policy
> content (currently all but ima_conditionals.sh): if LTP_IMA_LOAD_POLICY=1 set
> try to load example policy even policy content cannot be checked (TCONF when
> policy fails to be loaded or if LTP_IMA_LOAD_POLICY not set).
Sounds good.
Mimi
--
Mailing list info: https://lists.linux.it/listinfo/ltp
next prev parent reply other threads:[~2025-01-07 18:29 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-13 22:20 [LTP] [PATCH v2 0/8] LTP tests: load predefined policy, enhancements Petr Vorel
2024-12-13 22:20 ` [LTP] [PATCH v2 1/8] IMA: Add TCB policy as an example for ima_measurements.sh Petr Vorel
2024-12-31 16:01 ` Mimi Zohar
2025-01-03 11:57 ` Petr Vorel
2024-12-13 22:20 ` [LTP] [PATCH v2 2/8] ima_setup.sh: Allow to load predefined policy Petr Vorel
2024-12-30 20:43 ` Mimi Zohar
2024-12-31 10:00 ` Petr Vorel
2024-12-31 14:54 ` Mimi Zohar
2025-01-03 12:09 ` Petr Vorel
2025-01-03 12:18 ` Petr Vorel
2025-01-03 15:31 ` Mimi Zohar
2024-12-13 22:20 ` [LTP] [PATCH v2 3/8] tst_test.sh: IMA: Allow to disable LSM warnings and use it for IMA Petr Vorel
2024-12-13 22:20 ` [LTP] [PATCH v2 4/8] ima_setup: Print warning when policy not readable Petr Vorel
2024-12-13 22:20 ` [LTP] [PATCH v2 5/8] ima_kexec.sh: Move checking policy if readable to ima_setup.sh Petr Vorel
2024-12-13 22:20 ` [LTP] [PATCH v2 6/8] IMA: Add example policy for ima_violations.sh Petr Vorel
2024-12-31 3:43 ` Mimi Zohar
2024-12-31 10:40 ` Petr Vorel
2024-12-31 12:23 ` Petr Vorel
2024-12-31 15:34 ` Mimi Zohar
2025-01-03 19:02 ` Petr Vorel
2025-01-07 18:29 ` Mimi Zohar [this message]
2024-12-13 22:20 ` [LTP] [PATCH v2 7/8] ima_violations.sh: Check for a required policy Petr Vorel
2024-12-31 3:42 ` Mimi Zohar
2024-12-13 22:20 ` [LTP] [PATCH v2 8/8] [RFC] ima_kexec.sh: Relax result on unreadable policy to TCONF Petr Vorel
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=baefcfa48e2e66e88b79b9db915d6c664d71c428.camel@linux.ibm.com \
--to=zohar@linux.ibm.com \
--cc=linux-integrity@vger.kernel.org \
--cc=ltp@lists.linux.it \
--cc=pvorel@suse.cz \
/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