linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v6 0/8] kexec/firmware: support system wide policy requiring signatures
@ 2018-07-13 18:05 Mimi Zohar
  2018-07-13 18:05 ` [PATCH v6 1/8] security: define new LSM hook named security_kernel_load_data Mimi Zohar
                   ` (8 more replies)
  0 siblings, 9 replies; 19+ messages in thread
From: Mimi Zohar @ 2018-07-13 18:05 UTC (permalink / raw)
  To: linux-integrity
  Cc: Mimi Zohar, linux-security-module, linux-kernel,
	Luis R . Rodriguez, Eric Biederman, kexec, Andres Rodriguez,
	Greg Kroah-Hartman

IMA-appraisal is mostly being used in the embedded or single purpose
closed system environments.  In these environments, both the Kconfig
options and the userspace tools can be modified appropriately to limit
syscalls.  For stock kernels, userspace applications need to continue to
work with older kernels as well as with newer kernels.

In this environment, the customer needs the ability to define a system
wide IMA policy, such as requiring all kexec'ed images, firmware, kernel
modules to be signed, without being dependent on either the Kconfig
options or the userspace tools.[1]

This patch set allows the customer to define a policy which requires
the kexec'ed kernel images, firmware, and/or kernel modules to be
signed.

In addition, this patch set includes the ability to configure a build
time IMA policy, which is automatically loaded at run time without
needing to specify it on the boot command line and persists after
loading a custom kernel policy.

[1] kexec-tools suupports the new syscall based on a flag (-s).

Changelog v6:
- Instead of warning about loading firmware from pre-allocated, shared
  memory, just add a comment. Refer to the patch description for reason.
- LoadPin: add missing cast from enum kernel_load_file_id to
  kernel_read_file_id.

Changelog v5:
- Shared kernel_load_data_id and kernel_read_file_id enumerations.

The previous version of this patch set defined a new LSM hook named
security_kernel_load_data and an associated enumeration named
kernel_load_data_id, independent of kernel_read_file_id.  In this
version, the kernel_load_data_id and kernel_read_file_id values are
shared, simplifying Loadpin's and other LSMs calling one LSM hook from
the other.

- Warn about loading firmware from pre-shared memory.

Previous versions of this patch set prevented loading firmware, based on
policy, from pre-allocated (DMA) memory, introduced in commit
a098ecd2fa7d ("firmware: support loading into a pre-allocated buffer").
Based on discussions, calling dma_alloc_coherent() is unnecessary and
confusing.  This version of the patch set allows loading the firmware,
but emits a warning.

Changelog v4:
- Define a new LSM hook named security_kernel_load_data().
- Define kernel_load_data_id enumeration.
- Replace the existing LSM hook in init_module syscall.

Changelog v3:
Based on James' feedback:
- Renamed security_kernel_read_file() to security_kernel_read_data().
- Defined new kernel_load_data_id enumeration.
- Cleaned up ima_read_data(), replacing if's with switch.

Mimi Zohar (8):
  security: define new LSM hook named security_kernel_load_data
  kexec: add call to LSM hook in original kexec_load syscall
  ima: based on policy require signed kexec kernel images
  firmware: add call to LSM hook before firmware sysfs fallback
  ima: based on policy require signed firmware (sysfs fallback)
  ima: add build time policy
  module: replace the existing LSM hook in init_module
  ima: based on policy warn about loading firmware (pre-allocated
    buffer)

 drivers/base/firmware_loader/fallback.c |  7 ++++
 include/linux/ima.h                     |  7 ++++
 include/linux/lsm_hooks.h               |  6 +++
 include/linux/security.h                | 27 +++++++++++++
 kernel/kexec.c                          |  8 ++++
 kernel/module.c                         |  2 +-
 security/integrity/ima/Kconfig          | 58 ++++++++++++++++++++++++++++
 security/integrity/ima/ima.h            |  1 +
 security/integrity/ima/ima_main.c       | 68 ++++++++++++++++++++++++++-------
 security/integrity/ima/ima_policy.c     | 48 +++++++++++++++++++++--
 security/loadpin/loadpin.c              |  6 +++
 security/security.c                     | 10 +++++
 security/selinux/hooks.c                | 15 ++++++++
 13 files changed, 245 insertions(+), 18 deletions(-)

-- 
2.7.5


^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2018-07-16 19:59 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-07-13 18:05 [PATCH v6 0/8] kexec/firmware: support system wide policy requiring signatures Mimi Zohar
2018-07-13 18:05 ` [PATCH v6 1/8] security: define new LSM hook named security_kernel_load_data Mimi Zohar
2018-07-15  2:13   ` Kees Cook
2018-07-13 18:05 ` [PATCH v6 2/8] kexec: add call to LSM hook in original kexec_load syscall Mimi Zohar
2018-07-15  2:14   ` Kees Cook
2018-07-13 18:05 ` [PATCH v6 3/8] ima: based on policy require signed kexec kernel images Mimi Zohar
2018-07-15  2:21   ` Kees Cook
2018-07-13 18:05 ` [PATCH v6 4/8] firmware: add call to LSM hook before firmware sysfs fallback Mimi Zohar
2018-07-15  2:24   ` Kees Cook
2018-07-13 18:06 ` [PATCH v6 5/8] ima: based on policy require signed firmware (sysfs fallback) Mimi Zohar
2018-07-15  2:27   ` Kees Cook
2018-07-13 18:06 ` [PATCH v6 6/8] ima: add build time policy Mimi Zohar
2018-07-15  2:28   ` Kees Cook
2018-07-13 18:06 ` [PATCH v6 7/8] module: replace the existing LSM hook in init_module Mimi Zohar
2018-07-15  2:30   ` Kees Cook
2018-07-16 13:52     ` Mimi Zohar
2018-07-13 18:06 ` [PATCH v6 8/8] ima: based on policy warn about loading firmware (pre-allocated buffer) Mimi Zohar
2018-07-15  2:34   ` Kees Cook
2018-07-16 19:59 ` [PATCH v6 0/8] kexec/firmware: support system wide policy requiring signatures James Morris

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).