From: "Luis R. Rodriguez" <mcgrof@suse.com>
To: Kees Cook <keescook@chromium.org>
Cc: linux-kernel@vger.kernel.org, Ming Lei <ming.lei@canonical.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
James Morris <james.l.morris@oracle.com>,
David Howells <dhowells@redhat.com>,
linux-doc@vger.kernel.org, linux-security-module@vger.kernel.org,
linux-firmware@kernel.org,
linux-wireless <linux-wireless@vger.kernel.org>
Subject: Re: [PATCH 3/7] security: introduce kernel_fw_from_file hook
Date: Tue, 15 Jul 2014 00:24:19 +0200 [thread overview]
Message-ID: <20140714222419.GC10393@wotan.suse.de> (raw)
In-Reply-To: <1405373897-31671-4-git-send-email-keescook@chromium.org>
On Mon, Jul 14, 2014 at 02:38:13PM -0700, Kees Cook wrote:
> +int security_kernel_fw_from_file(struct file *file, char *buf, size_t size)
> +{
> + return security_ops->kernel_fw_from_file(file, buf, size);
> +}
> +EXPORT_SYMBOL_GPL(security_kernel_fw_from_file);
I have a use case in mind already (CRDA) whereby a non-driver but a core part of
the kernel would like to use the request_firmware_direct() API and leave
it optional to that part of the kernel if or not a digital signature check
is required since this is already an optional feature. Since LSM would be
used for the digital signatures it it'd be good if we allowed drivers and
the kernel to specify whether or not a the LSM signature hook does indeed
need to be used.
Additionally there may be different signature requirements on the file, one
might be willing to *require* a digital signature check even if say dm-verity
was used, one use case here is wanting the to require as part of the
specification a one to one mapping of file --> signature. That may be a
bit paranoid... but its certainly a possibility. This could be addressed by
allowing a user to express whether one security mechanism is sufficient
for an expected one, or if one is definitely required. One example here
could be the ability for a driver / kernel to express that dm-verity would
not suffice for a request_firmware_direct() call. I'm not saying that I
*know* this use case exists, am just saying I can expect it and do consider
it subjective to assume we'd agree on possible security intersections.
I see this also adds a hook for fw itself, meanwhile we already had one for
modules. The request_firmware() API is already used on other areas of the
kernel for non-firmware files, it can be used to load optional CPU microcode
upgrade, EEPROM optional override files, and in the wireless case I'd like to
see if we could replace CRDA by using the same APIs / mechanisms as well to
avoid having to deal with complexities on parsers with CFG80211_INTERNAL_REGDB.
Besides nomenclature fuzz as usage of request_firmware() API grows it occurs to
me that perhaps these hooks could be generalized at the kobject granularity
level. That should make it easier to scale and consider these LSM hooks for any
type of other object in the kernel in the future. kobjects may be overkill
though, unless we could enable the option to have have these hooks only
optional for certain type of kobjects.
Luis
next prev parent reply other threads:[~2014-07-14 22:24 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-14 21:38 [PATCH 0/7] firmware validation Kees Cook
2014-07-14 21:38 ` [PATCH 1/7] doc: fix minor typos in firmware_class README Kees Cook
2014-07-20 2:20 ` Ming Lei
2014-07-14 21:38 ` [PATCH 2/7] test: add firmware_class loader test Kees Cook
2014-07-18 1:47 ` Greg Kroah-Hartman
2014-07-18 15:27 ` Kees Cook
2014-09-18 1:51 ` Sasha Levin
2014-09-18 16:56 ` Kees Cook
2014-07-14 21:38 ` [PATCH 3/7] security: introduce kernel_fw_from_file hook Kees Cook
2014-07-14 22:24 ` Luis R. Rodriguez [this message]
2014-07-14 22:31 ` Kees Cook
2014-07-22 19:39 ` Luis R. Rodriguez
2014-07-22 20:55 ` Kees Cook
2014-07-22 22:11 ` Luis R. Rodriguez
2014-07-22 22:20 ` Kees Cook
2014-07-22 22:25 ` Luis R. Rodriguez
2014-07-23 18:52 ` One Thousand Gnomes
2014-07-18 1:48 ` Greg Kroah-Hartman
2014-07-18 17:11 ` Mimi Zohar
2014-07-14 21:38 ` [PATCH 4/7] firmware_class: perform new LSM checks Kees Cook
2014-07-18 3:41 ` James Morris
2014-07-18 17:05 ` Kees Cook
2014-07-19 7:22 ` James Morris
2014-07-19 15:15 ` Kees Cook
2014-07-20 23:43 ` James Morris
2014-07-21 2:50 ` Mimi Zohar
2014-07-21 17:43 ` Greg Kroah-Hartman
2014-07-14 21:38 ` [PATCH 5/7] firmware_class: extract start loading logic Kees Cook
2014-07-20 3:06 ` Ming Lei
2014-07-14 21:38 ` [PATCH 6/7] firmware_class: add "fd" input file Kees Cook
2014-07-18 17:11 ` Mimi Zohar
2014-07-18 19:04 ` Kees Cook
2014-07-20 3:04 ` Ming Lei
2014-07-20 17:43 ` Kees Cook
2014-07-21 1:42 ` Ming Lei
2014-07-21 15:08 ` Kees Cook
2014-07-21 15:26 ` Greg Kroah-Hartman
2014-07-21 15:43 ` Kees Cook
2014-07-21 16:36 ` Greg Kroah-Hartman
2014-07-21 17:27 ` Kees Cook
2014-07-21 17:43 ` Greg Kroah-Hartman
2014-07-14 21:38 ` [PATCH 7/7] test: add "fd" firmware loading test to selftests Kees Cook
2014-07-18 1:49 ` [PATCH 0/7] firmware validation Greg Kroah-Hartman
2014-07-23 18:53 ` One Thousand Gnomes
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=20140714222419.GC10393@wotan.suse.de \
--to=mcgrof@suse.com \
--cc=dhowells@redhat.com \
--cc=gregkh@linuxfoundation.org \
--cc=james.l.morris@oracle.com \
--cc=keescook@chromium.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-firmware@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-security-module@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=ming.lei@canonical.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®