EVM: Allow runtime modification of the set of verified xattrs
authorMatthew Garrett <mjg59@google.com>
Tue, 15 May 2018 17:38:26 +0000 (10:38 -0700)
committerMimi Zohar <zohar@linux.vnet.ibm.com>
Fri, 18 May 2018 19:34:45 +0000 (15:34 -0400)
commitfa516b66a1bfce1d72f1620c54bdfebc493000d1
tree26b2887ece19ada7ec0f756a9cc7720cee4d1291
parent21af76631476030709f85f48e20bb9429a912b6f
EVM: Allow runtime modification of the set of verified xattrs

Sites may wish to provide additional metadata alongside files in order
to make more fine-grained security decisions[1]. The security of this is
enhanced if this metadata is protected, something that EVM makes
possible. However, the kernel cannot know about the set of extended
attributes that local admins may wish to protect, and hardcoding this
policy in the kernel makes it difficult to change over time and less
convenient for distributions to enable.

This patch adds a new /sys/kernel/security/integrity/evm/evm_xattrs node,
which can be read to obtain the current set of EVM-protected extended
attributes or written to in order to add new entries. Extending this list
will not change the validity of any existing signatures provided that the
file in question does not have any of the additional extended attributes -
missing xattrs are skipped when calculating the EVM hash.

[1] For instance, a package manager could install information about the
package uploader in an additional extended attribute. Local LSM policy
could then be associated with that extended attribute in order to
restrict the privileges available to packages from less trusted
uploaders.

Signed-off-by: Matthew Garrett <mjg59@google.com>
Reviewed-by: James Morris <james.morris@microsoft.com>
Signed-off-by: Mimi Zohar <zohar@linux.vnet.ibm.com>
Documentation/ABI/testing/evm
include/uapi/linux/audit.h
security/integrity/evm/Kconfig
security/integrity/evm/evm_crypto.c
security/integrity/evm/evm_main.c
security/integrity/evm/evm_secfs.c