All of lore.kernel.org
 help / color / mirror / Atom feed
From: ebiederm@xmission.com (Eric W. Biederman)
To: James Morris <jmorris@namei.org>
Cc: Kees Cook <keescook@chromium.org>,
	Ard Biesheuvel <ard.biesheuvel@linaro.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	kexec@lists.infradead.org, linux-security-module@vger.kernel.org,
	linux-kernel@vger.kernel.org, David Howells <dhowells@redhat.com>,
	"Luis R . Rodriguez" <mcgrof@kernel.org>,
	Andres Rodriguez <andresx7@gmail.com>,
	Casey Schaufler <casey@schaufler-ca.com>,
	linux-integrity@vger.kernel.org,
	Mimi Zohar <zohar@linux.vnet.ibm.com>
Subject: Re: [PATCH v3 1/7] security: rename security_kernel_read_file() hook
Date: Tue, 29 May 2018 16:10:30 -0500	[thread overview]
Message-ID: <87y3g2kw1l.fsf@xmission.com> (raw)
In-Reply-To: <alpine.LRH.2.21.1805300629220.2647@namei.org> (James Morris's message of "Wed, 30 May 2018 06:32:16 +1000 (AEST)")

James Morris <jmorris@namei.org> writes:

> On Fri, 25 May 2018, Eric W. Biederman wrote:
>
>> James Morris <jmorris@namei.org> writes:
>> 
>> > On Thu, 24 May 2018, Eric W. Biederman wrote:
>> >
>> >> Below is where I suggest you start on sorting out these security hooks.
>> >> - Adding a security_kernel_arg to catch when you want to allow/deny the
>> >>   use of an argument to a syscall.  What security_kernel_file_read and
>> >>   security_kernel_file_post_read have been abused for.
>> >
>> > NAK. This abstraction is too semantically weak.
>> >
>> > LSM hooks need to map to stronger semantics so we can reason about what 
>> > the hook and the policy is supposed to be mediating.
>> 
>> I will take that as an extremely weak nack as all I did was expose the
>> existing code and what the code is currently doing.  I don't see how you
>> can NAK what is already being merged and used.
>
> It's a strong NAK.

We are either not understading each other or you have just strong NAK'd
part of the existing LSM api.  Not my proposal.

> LSM is a logical API, it provides an abstraction layer for security 
> policies to mediate kernel security behaviors.

The way it deals with firmware blobs and module loading is not logical.
It is some random pass a NULL pointer into some other security hook.

> Adding an argument to a syscall is not a security behavior.
>
> Loading a firmware file is.

It is a firmware blob not a file.  Perhaps the blob is stored as a file
on-disk, perhaps it is not.

The similar case with kexec never stores all of the data in a file.

Why module_init (which does not take a file) is calling a file based lsm
hook is also bizarre.


Perhaps that means all 3 of these cases should have their own void
security hooks.  Perhaps it means something else.  I just know the name
on the security hook, how it is getting called, and how it is getting
used simply do not agree.

Eric

_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

WARNING: multiple messages have this Message-ID (diff)
From: ebiederm@xmission.com (Eric W. Biederman)
To: James Morris <jmorris@namei.org>
Cc: Mimi Zohar <zohar@linux.vnet.ibm.com>,
	linux-integrity@vger.kernel.org,
	linux-security-module@vger.kernel.org,
	linux-kernel@vger.kernel.org, David Howells <dhowells@redhat.com>,
	"Luis R . Rodriguez" <mcgrof@kernel.org>,
	kexec@lists.infradead.org, Andres Rodriguez <andresx7@gmail.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Ard Biesheuvel <ard.biesheuvel@linaro.org>,
	Kees Cook <keescook@chromium.org>,
	Casey Schaufler <casey@schaufler-ca.com>
Subject: Re: [PATCH v3 1/7] security: rename security_kernel_read_file() hook
Date: Tue, 29 May 2018 16:10:30 -0500	[thread overview]
Message-ID: <87y3g2kw1l.fsf@xmission.com> (raw)
In-Reply-To: <alpine.LRH.2.21.1805300629220.2647@namei.org> (James Morris's message of "Wed, 30 May 2018 06:32:16 +1000 (AEST)")

James Morris <jmorris@namei.org> writes:

> On Fri, 25 May 2018, Eric W. Biederman wrote:
>
>> James Morris <jmorris@namei.org> writes:
>> 
>> > On Thu, 24 May 2018, Eric W. Biederman wrote:
>> >
>> >> Below is where I suggest you start on sorting out these security hooks.
>> >> - Adding a security_kernel_arg to catch when you want to allow/deny the
>> >>   use of an argument to a syscall.  What security_kernel_file_read and
>> >>   security_kernel_file_post_read have been abused for.
>> >
>> > NAK. This abstraction is too semantically weak.
>> >
>> > LSM hooks need to map to stronger semantics so we can reason about what 
>> > the hook and the policy is supposed to be mediating.
>> 
>> I will take that as an extremely weak nack as all I did was expose the
>> existing code and what the code is currently doing.  I don't see how you
>> can NAK what is already being merged and used.
>
> It's a strong NAK.

We are either not understading each other or you have just strong NAK'd
part of the existing LSM api.  Not my proposal.

> LSM is a logical API, it provides an abstraction layer for security 
> policies to mediate kernel security behaviors.

The way it deals with firmware blobs and module loading is not logical.
It is some random pass a NULL pointer into some other security hook.

> Adding an argument to a syscall is not a security behavior.
>
> Loading a firmware file is.

It is a firmware blob not a file.  Perhaps the blob is stored as a file
on-disk, perhaps it is not.

The similar case with kexec never stores all of the data in a file.

Why module_init (which does not take a file) is calling a file based lsm
hook is also bizarre.


Perhaps that means all 3 of these cases should have their own void
security hooks.  Perhaps it means something else.  I just know the name
on the security hook, how it is getting called, and how it is getting
used simply do not agree.

Eric

WARNING: multiple messages have this Message-ID (diff)
From: ebiederm@xmission.com (Eric W. Biederman)
To: linux-security-module@vger.kernel.org
Subject: [PATCH v3 1/7] security: rename security_kernel_read_file() hook
Date: Tue, 29 May 2018 16:10:30 -0500	[thread overview]
Message-ID: <87y3g2kw1l.fsf@xmission.com> (raw)
In-Reply-To: <alpine.LRH.2.21.1805300629220.2647@namei.org> (James Morris's message of "Wed, 30 May 2018 06:32:16 +1000 (AEST)")

James Morris <jmorris@namei.org> writes:

> On Fri, 25 May 2018, Eric W. Biederman wrote:
>
>> James Morris <jmorris@namei.org> writes:
>> 
>> > On Thu, 24 May 2018, Eric W. Biederman wrote:
>> >
>> >> Below is where I suggest you start on sorting out these security hooks.
>> >> - Adding a security_kernel_arg to catch when you want to allow/deny the
>> >>   use of an argument to a syscall.  What security_kernel_file_read and
>> >>   security_kernel_file_post_read have been abused for.
>> >
>> > NAK. This abstraction is too semantically weak.
>> >
>> > LSM hooks need to map to stronger semantics so we can reason about what 
>> > the hook and the policy is supposed to be mediating.
>> 
>> I will take that as an extremely weak nack as all I did was expose the
>> existing code and what the code is currently doing.  I don't see how you
>> can NAK what is already being merged and used.
>
> It's a strong NAK.

We are either not understading each other or you have just strong NAK'd
part of the existing LSM api.  Not my proposal.

> LSM is a logical API, it provides an abstraction layer for security 
> policies to mediate kernel security behaviors.

The way it deals with firmware blobs and module loading is not logical.
It is some random pass a NULL pointer into some other security hook.

> Adding an argument to a syscall is not a security behavior.
>
> Loading a firmware file is.

It is a firmware blob not a file.  Perhaps the blob is stored as a file
on-disk, perhaps it is not.

The similar case with kexec never stores all of the data in a file.

Why module_init (which does not take a file) is calling a file based lsm
hook is also bizarre.


Perhaps that means all 3 of these cases should have their own void
security hooks.  Perhaps it means something else.  I just know the name
on the security hook, how it is getting called, and how it is getting
used simply do not agree.

Eric
--
To unsubscribe from this list: send the line "unsubscribe linux-security-module" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2018-05-29 21:10 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-24 11:09 [PATCH v3 0/7] kexec/firmware: support system wide policy requiring signatures Mimi Zohar
2018-05-24 11:09 ` Mimi Zohar
2018-05-24 11:09 ` Mimi Zohar
2018-05-24 11:09 ` [PATCH v3 1/7] security: rename security_kernel_read_file() hook Mimi Zohar
2018-05-24 11:09   ` Mimi Zohar
2018-05-24 11:09   ` Mimi Zohar
2018-05-24 20:49   ` Eric W. Biederman
2018-05-24 20:49     ` Eric W. Biederman
2018-05-24 20:49     ` Eric W. Biederman
2018-05-24 23:29     ` Mimi Zohar
2018-05-24 23:29       ` Mimi Zohar
2018-05-24 23:29       ` Mimi Zohar
2018-05-24 23:29       ` Mimi Zohar
2018-05-25 12:22     ` Mimi Zohar
2018-05-25 12:22       ` Mimi Zohar
2018-05-25 12:22       ` Mimi Zohar
2018-05-25 12:22       ` Mimi Zohar
2018-05-25 15:41     ` James Morris
2018-05-25 15:41       ` James Morris
2018-05-25 15:41       ` James Morris
2018-05-25 19:51       ` Eric W. Biederman
2018-05-25 19:51         ` Eric W. Biederman
2018-05-25 19:51         ` Eric W. Biederman
2018-05-29 20:32         ` James Morris
2018-05-29 20:32           ` James Morris
2018-05-29 20:32           ` James Morris
2018-05-29 21:10           ` Eric W. Biederman [this message]
2018-05-29 21:10             ` Eric W. Biederman
2018-05-29 21:10             ` Eric W. Biederman
2018-05-24 11:09 ` [PATCH v3 2/7] kexec: add call to LSM hook in original kexec_load syscall Mimi Zohar
2018-05-24 11:09   ` Mimi Zohar
2018-05-24 11:09   ` Mimi Zohar
2018-05-24 20:50   ` Eric W. Biederman
2018-05-24 20:50     ` Eric W. Biederman
2018-05-24 20:50     ` Eric W. Biederman
2018-05-24 11:09 ` [PATCH v3 3/7] ima: based on policy require signed kexec kernel images Mimi Zohar
2018-05-24 11:09   ` Mimi Zohar
2018-05-24 11:09   ` Mimi Zohar
2018-05-24 11:09 ` [PATCH v3 4/7] firmware: add call to LSM hook before firmware sysfs fallback Mimi Zohar
2018-05-24 11:09   ` Mimi Zohar
2018-05-24 11:09   ` Mimi Zohar
2018-05-24 11:09 ` [PATCH v3 5/7] ima: based on policy require signed firmware (sysfs fallback) Mimi Zohar
2018-05-24 11:09   ` Mimi Zohar
2018-05-24 11:09   ` Mimi Zohar
2018-05-24 11:09 ` [PATCH v3 6/7] ima: add build time policy Mimi Zohar
2018-05-24 11:09   ` Mimi Zohar
2018-05-24 11:09   ` Mimi Zohar
2018-05-24 11:09 ` [RFC PATCH v3 7/7] ima: based on policy prevent loading firmware (pre-allocated buffer) Mimi Zohar
2018-05-24 11:09   ` Mimi Zohar
2018-05-24 11:09   ` Mimi Zohar

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=87y3g2kw1l.fsf@xmission.com \
    --to=ebiederm@xmission.com \
    --cc=andresx7@gmail.com \
    --cc=ard.biesheuvel@linaro.org \
    --cc=casey@schaufler-ca.com \
    --cc=dhowells@redhat.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jmorris@namei.org \
    --cc=keescook@chromium.org \
    --cc=kexec@lists.infradead.org \
    --cc=linux-integrity@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-security-module@vger.kernel.org \
    --cc=mcgrof@kernel.org \
    --cc=zohar@linux.vnet.ibm.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.