From: Mimi Zohar <zohar@linux.ibm.com>
To: Matthew Garrett <matthewgarrett@google.com>, jmorris@namei.org
Cc: linux-security@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-api@vger.kernel.org, Matthew Garrett <mjg59@google.com>,
David Howells <dhowells@redhat.com>
Subject: Re: [PATCH V33 03/30] security: Add a static lockdown policy LSM
Date: Fri, 21 Jun 2019 18:31:15 -0400 [thread overview]
Message-ID: <1561156275.4057.154.camel@linux.ibm.com> (raw)
In-Reply-To: <20190621011941.186255-4-matthewgarrett@google.com>
On Thu, 2019-06-20 at 18:19 -0700, Matthew Garrett wrote:
> --- a/Documentation/admin-guide/kernel-parameters.txt
> +++ b/Documentation/admin-guide/kernel-parameters.txt
> @@ -2239,6 +2239,15 @@
> lockd.nlm_udpport=M [NFS] Assign UDP port.
> Format: <integer>
>
> + lockdown= [SECURITY]
> + { integrity | confidentiality }
> + Enable the kernel lockdown feature. If set to
> + integrity, kernel features that allow userland to
> + modify the running kernel are disabled. If set to
> + confidentiality, kernel features that allow userland
> + to extract confidential information from the kernel
> + are also disabled.
> +
Does "also" imply "integrity" is a prereq for "confidentiality"?
> diff --git a/security/lockdown/Kconfig b/security/lockdown/Kconfig
> new file mode 100644
> index 000000000000..431cd2b9a14e
> --- /dev/null
> +++ b/security/lockdown/Kconfig
> @@ -0,0 +1,46 @@
> +config SECURITY_LOCKDOWN_LSM
> + bool "Basic module for enforcing kernel lockdown"
> + depends on SECURITY
> + help
> + Build support for an LSM that enforces a coarse kernel lockdown
> + behaviour.
> +
> +config SECURITY_LOCKDOWN_LSM_EARLY
> + bool "Enable lockdown LSM early in init"
> + depends on SECURITY_LOCKDOWN_LSM
> + help
> + Enable the lockdown LSM early in boot. This is necessary in order
> + to ensure that lockdown enforcement can be carried out on kernel
> + boot parameters that are otherwise parsed before the security
> + subsystem is fully initialised.
> +
> +choice
> + prompt "Kernel default lockdown mode"
> + default LOCK_DOWN_KERNEL_FORCE_NONE
> + depends on SECURITY_LOCKDOWN_LSM
> + help
> + The kernel can be configured to default to differing levels of
> + lockdown.
> +
> +config LOCK_DOWN_KERNEL_FORCE_NONE
> + bool "None"
> + help
> + No lockdown functionality is enabled by default. Lockdown may be
> + enabled via the kernel commandline or /sys/kernel/security/lockdown.
> +
> +config LOCK_DOWN_KERNEL_FORCE_INTEGRITY
> + bool "Integrity"
> + help
> + The kernel runs in integrity mode by default. Features that allow
> + the kernel to be modified at runtime are disabled.
> +
> +config LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY
> + bool "Confidentiality"
> + help
> + The kernel runs in confidentiality mode by default. Features that
> + allow the kernel to be modified at runtime or that permit userland
> + code to read confidential material held inside the kernel are
> + disabled.
> +
Is there a missing dependency on LOCK_DOWN_KERNEL_FORCE_INTEGRITY
here?
> +endchoice
> +
> diff --git a/security/lockdown/lockdown.c b/security/lockdown/lockdown.c
> new file mode 100644
> index 000000000000..1ecb2eecb245
> --- /dev/null
> +++ b/security/lockdown/lockdown.c
> +
> +static int __init lockdown_lsm_init(void)
> +{
> +#if defined(CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY)
> + lock_kernel_down("Kernel configuration", LOCKDOWN_INTEGRITY_MAX);
> +#elif defined(CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY)
> + lock_kernel_down("Kernel configuration", LOCKDOWN_CONFIDENTIALITY_MAX);
> +#endif
> + security_add_hooks(lockdown_hooks, ARRAY_SIZE(lockdown_hooks),
> + "lockdown");
> + return 0;
> +}
If there is a dependency on
"defined(CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY" for
"CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY", then the ordering
should be reversed. If there isn't a dependency of one on the other,
then replace the "elif" with "endif".
Mimi
next prev parent reply other threads:[~2019-06-21 22:31 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-21 1:19 [PATCH V33 00/30] Lockdown as an LSM Matthew Garrett
2019-06-21 1:19 ` [PATCH V33 01/30] security: Support early LSMs Matthew Garrett
2019-06-21 3:21 ` Kees Cook
2019-06-21 19:26 ` Matthew Garrett
2019-06-21 5:23 ` Andy Lutomirski
2019-06-21 19:27 ` Matthew Garrett
2019-06-21 1:19 ` [PATCH V33 02/30] security: Add a "locked down" LSM hook Matthew Garrett
2019-06-21 3:23 ` Kees Cook
2019-06-21 19:29 ` Matthew Garrett
2019-06-21 1:19 ` [PATCH V33 03/30] security: Add a static lockdown policy LSM Matthew Garrett
2019-06-21 3:44 ` Kees Cook
2019-06-21 19:37 ` Matthew Garrett
2019-06-21 21:04 ` Matthew Garrett
2019-06-21 22:31 ` Mimi Zohar [this message]
2019-06-21 1:19 ` [PATCH V33 04/30] Enforce module signatures if the kernel is locked down Matthew Garrett
2019-06-21 3:46 ` Kees Cook
2019-06-21 1:19 ` [PATCH V33 05/30] Restrict /dev/{mem,kmem,port} when " Matthew Garrett
2019-06-21 1:19 ` [PATCH V33 06/30] kexec_load: Disable at runtime if " Matthew Garrett
2019-06-21 1:19 ` Matthew Garrett
2019-06-21 1:19 ` [PATCH V33 07/30] Copy secure_boot flag in boot params across kexec reboot Matthew Garrett
2019-06-21 1:19 ` Matthew Garrett
2019-06-21 1:19 ` [PATCH V33 08/30] kexec_file: split KEXEC_VERIFY_SIG into KEXEC_SIG and KEXEC_SIG_FORCE Matthew Garrett
2019-06-21 1:19 ` Matthew Garrett
2019-06-21 1:19 ` Matthew Garrett
2019-06-21 1:19 ` [PATCH V33 09/30] kexec_file: Restrict at runtime if the kernel is locked down Matthew Garrett
2019-06-21 1:19 ` Matthew Garrett
2019-06-21 1:19 ` Matthew Garrett
2019-06-21 1:19 ` [PATCH V33 10/30] hibernate: Disable when " Matthew Garrett
2019-06-21 1:19 ` [PATCH V33 11/30] uswsusp: " Matthew Garrett
2019-06-21 1:19 ` [PATCH V33 12/30] PCI: Lock down BAR access " Matthew Garrett
2019-06-21 1:19 ` [PATCH V33 13/30] x86: Lock down IO port " Matthew Garrett
2019-06-21 1:19 ` [PATCH V33 14/30] x86/msr: Restrict MSR " Matthew Garrett
2019-06-21 1:19 ` [PATCH V33 15/30] ACPI: Limit access to custom_method " Matthew Garrett
2019-06-21 1:19 ` [PATCH V33 16/30] acpi: Ignore acpi_rsdp kernel param when the kernel has been " Matthew Garrett
2019-06-21 1:19 ` [PATCH V33 17/30] acpi: Disable ACPI table override if the kernel is " Matthew Garrett
2019-06-21 1:19 ` Matthew Garrett
2019-06-21 1:19 ` [PATCH V33 18/30] Prohibit PCMCIA CIS storage when " Matthew Garrett
2019-06-21 1:19 ` [PATCH V33 19/30] Lock down TIOCSSERIAL Matthew Garrett
2019-06-21 1:19 ` [PATCH V33 20/30] Lock down module params that specify hardware parameters (eg. ioport) Matthew Garrett
2019-06-21 1:19 ` [PATCH V33 21/30] x86/mmiotrace: Lock down the testmmiotrace module Matthew Garrett
2019-06-26 12:46 ` Steven Rostedt
2019-06-21 1:19 ` [PATCH V33 22/30] Lock down /proc/kcore Matthew Garrett
2019-06-21 1:19 ` [PATCH V33 23/30] Lock down tracing and perf kprobes when in confidentiality mode Matthew Garrett
2019-06-21 1:19 ` [PATCH V33 24/30] bpf: Restrict bpf when kernel lockdown is " Matthew Garrett
2019-06-21 5:22 ` Andy Lutomirski
2019-06-21 20:05 ` Matthew Garrett
2019-06-26 20:22 ` James Morris
2019-06-27 0:57 ` Andy Lutomirski
2019-06-27 14:35 ` Stephen Smalley
2019-06-27 18:06 ` James Morris
2019-06-27 20:16 ` Stephen Smalley
2019-06-27 23:16 ` Matthew Garrett
2019-06-27 23:23 ` Andy Lutomirski
2019-06-27 23:27 ` Andy Lutomirski
2019-06-28 18:47 ` Matthew Garrett
2019-06-29 23:47 ` Andy Lutomirski
2019-06-21 1:19 ` [PATCH V33 25/30] Lock down perf when " Matthew Garrett
2019-06-21 1:19 ` [PATCH V33 26/30] kexec: Allow kexec_file() with appropriate IMA policy when locked down Matthew Garrett
2019-06-21 1:19 ` [PATCH V33 27/30] lockdown: Print current->comm in restriction messages Matthew Garrett
2019-06-21 4:09 ` Kees Cook
2019-06-21 1:19 ` [PATCH V33 28/30] debugfs: Restrict debugfs when the kernel is locked down Matthew Garrett
2019-06-21 1:19 ` [PATCH V33 29/30] tracefs: Restrict tracefs " Matthew Garrett
2019-06-26 13:07 ` Steven Rostedt
2019-06-26 19:39 ` Matthew Garrett
2019-06-21 1:19 ` [PATCH V33 30/30] efi: Restrict efivar_ssdt_load " Matthew Garrett
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=1561156275.4057.154.camel@linux.ibm.com \
--to=zohar@linux.ibm.com \
--cc=dhowells@redhat.com \
--cc=jmorris@namei.org \
--cc=linux-api@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-security@vger.kernel.org \
--cc=matthewgarrett@google.com \
--cc=mjg59@google.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.