[PATCH v2 00/12] IMA/EVM fixes

Roberto Sassu roberto.sassu at huawei.com
Fri Sep 4 09:23:27 UTC 2020


This patch set includes various fixes for IMA and EVM.

Patches 1-3 are trivial fixes. The remaining improve support and usability
of EVM portable signatures. In particular patch 4 allows EVM to be used
without an HMAC key. Patch 5 avoids appraisal verification of public keys
(they are already verified by the key subsystem).

Patches 6-7 allow metadata verification to be turned off when the HMAC key
is not already loaded and to use this mode in a safe way (by ensuring that
IMA revalidates metadata when there is a change).

Patches 8-9 make portable signatures more usable if metadata verification
cannot be turned off (because the HMAC key is loaded) by accepting any
metadata modification until signature verification succeeds (useful when
xattrs/attrs are copied in a sequence from a source) and by allowing
operations that don't change metadata.

Patch 10 makes it possible to use portable signatures when the IMA policy
requires file signatures and patch 11 shows portable signatures when the
ima-sig measurement list template is selected.

Lastly, patch 12 avoids undesired removal of security.ima when a file is
not selected by the IMA policy.

Roberto Sassu (12):
  ima: Don't ignore errors from crypto_shash_update()
  ima: Remove semicolon at the end of ima_get_binary_runtime_size()
  evm: Check size of security.evm before using it
  evm: Execute evm_inode_init_security() only when the HMAC key is
    loaded
  evm: Load EVM key in ima_load_x509() to avoid appraisal
  evm: Refuse EVM_ALLOW_METADATA_WRITES only if the HMAC key is loaded
  evm: Introduce EVM_RESET_STATUS atomic flag
  evm: Allow xattr/attr operations for portable signatures if check
    fails
  evm: Allow setxattr() and setattr() if metadata digest won't change
  ima: Allow imasig requirement to be satisfied by EVM portable
    signatures
  ima: Introduce template field evmsig and write to field sig as
    fallback
  ima: Don't remove security.ima if file must not be appraised

 Documentation/ABI/testing/evm             |   6 +-
 Documentation/security/IMA-templates.rst  |   4 +-
 include/linux/integrity.h                 |   1 +
 security/integrity/evm/evm_main.c         | 151 ++++++++++++++++++++--
 security/integrity/evm/evm_secfs.c        |   2 +-
 security/integrity/iint.c                 |   2 +
 security/integrity/ima/ima_appraise.c     |  26 ++--
 security/integrity/ima/ima_crypto.c       |   2 +
 security/integrity/ima/ima_init.c         |   4 +
 security/integrity/ima/ima_main.c         |   8 +-
 security/integrity/ima/ima_queue.c        |   2 +-
 security/integrity/ima/ima_template.c     |   2 +
 security/integrity/ima/ima_template_lib.c |  39 +++++-
 security/integrity/ima/ima_template_lib.h |   2 +
 security/integrity/integrity.h            |   1 +
 15 files changed, 225 insertions(+), 27 deletions(-)

-- 
2.27.GIT



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