[PATCH 0/2] support to read and tune appraise mode in runtime

Tianjia Zhang tianjia.zhang at linux.alibaba.com
Wed Apr 15 02:49:30 UTC 2020

On 2020/4/14 21:41, Mimi Zohar wrote:
> On Tue, 2020-04-14 at 11:36 +0800, Tianjia Zhang wrote:
>> On 2020/4/14 5:55, Mimi Zohar wrote:
>>> On Thu, 2020-04-09 at 11:39 +0800, Tianjia Zhang wrote:
>>>> Support the read and write operations of ima_appraise by adding a
>>>> securifyfs file 'appraise_mode'.
>>>> In order to tune appraise mode in runtime, writing a PKCS#7 signature
>>>> corresponding the signed content is required. The content should be off,
>>>> enforce, log or fix. Given a simple way to archive this:
>>>> $ echo -n off > mode
>>>> $ openssl smime -sign -nocerts -noattr -binary \
>>>>       -in mode -inkey <system_trusted_key> \
>>>>       -signer <cert> -outform der -out mode.p7s
>>>> $ sudo cat mode.p7s \
>>>>       > /sys/kernel/security/ima/appraise_mode
>>>> Note that the signing key must be a trust key located in
>>>> system trusted keyring. So even the root privilege cannot
>>>> simply disable the enforcement.
>>> There are major problems with disabling IMA appraisal.  This patch set
>>> proposes disabling IMA appraisal without even providing the motivation
>>> for such support.
>>> A lot of effort went into preventing custom IMA policies from
>>> disabling appraising the kexec or kernel module signatures.  In
>>> addition, the "lockdown" patch set was upstreamed permitting IMA
>>> signature verification.  This patch set would break both of these
>>> features.
>>> IMA relies on its own keyring for verifying file signatures, not the
>>> builtin or secondary trusted kernel keyrings.
>>> Two methods already exist - xattr and appended signatures - for
>>> verifying file signatures.  This patch set assumes creating and
>>> signing a file, which is then written to a securityfs file.  Like for
>>> loading a custom IMA policy, instead of cat'ing the file, write the
>>> pathname to the securityfs file.
>>> If you must define a new IMA method for verifying file signatures,
>>> then it needs to be generic and added to ima_appraise_measurement().
>>>    (Refer to the new IMA appended signature support.)
>>> Mimi
>>>> Tianjia Zhang (2):
>>>>     ima: support to read appraise mode
>>>>     ima: support to tune appraise mode in runtime
>>>>    security/integrity/ima/ima_fs.c | 134 +++++++++++++++++++++++++++++++-
>>>>    1 file changed, 133 insertions(+), 1 deletion(-)
>> Thanks for your suggestion, the way to close the appraise mode here is
>> indeed a bit rude, I will reconsider again according to your suggestions.
>> In addition, [PATCH 1/2] ima: support to read appraise mode, by the way,
>> see if this patch is acceptable.
> My comments were not meant as suggestions, but as an explanation as to
> how IMA works.  More details follow.
> IMA is based on policy.  That decision was made a long time ago.  It
> allowed distros to configure IMA, allowing customers to experiment
> with it.  You have one opportunity to totally change the boot time
> policy rules, by loading a custom policy.  After that, rules may only
> be added.
> There is no valid reason for "turning off" the policy once it has been
> enabled.  It breaks existing expectations.
> Mimi

Thank you very much for your explanation. I'm sorry I may not have 
stated clearly. I didn't have to change the working mode of IMA. I was 
convinced by you to give up the idea of "turn off" the appraise. 
However, it should be possible to support appraise mode reading. Right?

More information about the Linux-security-module-archive mailing list