mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Indan Zupancic" <indan@nul.nu>
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: "Will Drewry" <wad@chromium.org>,
	linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org,
	linux-doc@vger.kernel.org, kernel-hardening@lists.openwall.com,
	netdev@vger.kernel.org, x86@kernel.org, arnd@arndb.de,
	davem@davemloft.net, mingo@redhat.com, oleg@redhat.com,
	peterz@infradead.org, rdunlap@xenotime.net,
	mcgrathr@chromium.org, tglx@linutronix.de, luto@mit.edu,
	eparis@redhat.com, serge.hallyn@canonical.com, djm@mindrot.org,
	scarybeasts@gmail.com, pmoore@redhat.com,
	akpm@linux-foundation.org, corbet@lwn.net,
	eric.dumazet@gmail.com, markus@chromium.org,
	coreyb@linux.vnet.ibm.com, keescook@chromium.org
Subject: Re: [PATCH v12 06/13] seccomp: add system call filtering using BPF
Date: Fri, 2 Mar 2012 07:43:50 +0100	[thread overview]
Message-ID: <bc1b4ec8fbad5a5931a928f108a6095f.squirrel@webmail.greenhost.nl> (raw)
In-Reply-To: <4F50603B.7040505@zytor.com>

On Fri, March 2, 2012 06:52, H. Peter Anvin wrote:
> On 03/01/2012 09:45 PM, Indan Zupancic wrote:
>>
>>> + * @nr: the system call number
>>> + * @arch: indicates system call convention as an AUDIT_ARCH_* value
>>> + *        as defined in <linux/audit.h>.
>>> + * @instruction_pointer: at the time of the system call.
>>
>> If the vDSO is used this will always be the same, so what good is this?
>> I haven't gotten an answer to this yet.
>>
>
> And if it isn't, or you're on an architecture which doesn't use the vdso
> as the launching point, it's not.

True, but then what?

> You seem to be unable to look outside
> your own particular use cases, but it is very likely that the same
> oddball cases which do mixed-mode programming are ones for which this
> kind of filtering facility would be extremely useful

The filtering code has no way of reading the instruction, so it can't
know if it's a good or bad one. And the mode is passed via 'arch' already,
which is the proper way of checking this.

To properly protect the ptrace user against unexpected modes it's better
to provide a way to the filter to know the task mode instead of trying
to figure it out from IP.

I'm not saying having the IP is never useful, I actually use it in my
ptrace code (and have to add IP checks to handle those odd mixed mode
cases). I just don't see how it can be used by a BPF filter.

> -- Pin is a great example.

Is that http://www.pintool.org/?

Can you explain how knowing the IP is useful for Pin?

All I am asking for is just one use case for providing the IP. Is that
asking for too much?

Because the only one I can think of creates a false sense of security:

"Oh, the IP comes from a trusted code area, so it must be fine."

And the problem with that is that the IP doesn't say anything about the
call path, only where the last instruction was. Address randomization
helps a little bit, but it's not a guarantee.

Greetings,

Indan



  reply	other threads:[~2012-03-02  6:43 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-29 23:53 [PATCH v12 01/13] sk_run_filter: add support for custom load_pointer Will Drewry
2012-02-29 23:53 ` [PATCH v12 02/13] net/compat.c,linux/filter.h: share compat_sock_fprog Will Drewry
2012-02-29 23:53 ` [PATCH v12 03/13] seccomp: kill the seccomp_t typedef Will Drewry
2012-02-29 23:53 ` [PATCH v12 04/13] asm/syscall.h: add syscall_get_arch Will Drewry
2012-02-29 23:53 ` [PATCH v12 05/13] arch/x86: add syscall_get_arch to syscall.h Will Drewry
2012-02-29 23:53 ` [PATCH v12 06/13] seccomp: add system call filtering using BPF Will Drewry
2012-03-02  5:45   ` Indan Zupancic
2012-03-02  5:52     ` H. Peter Anvin
2012-03-02  6:43       ` Indan Zupancic [this message]
2012-03-02  6:55         ` H. Peter Anvin
2012-03-02  8:12           ` Indan Zupancic
2012-03-02 18:44     ` [kernel-hardening] " Will Drewry
2012-02-29 23:53 ` [PATCH v12 07/13] seccomp: add SECCOMP_RET_ERRNO Will Drewry
2012-03-02 18:24   ` Serge E. Hallyn
2012-03-05 21:03     ` Will Drewry
2012-03-05 21:13       ` Serge Hallyn
2012-02-29 23:53 ` [PATCH v12 08/13] signal, x86: add SIGSYS info and make it synchronous Will Drewry
2012-02-29 23:53 ` [PATCH v12 09/13] seccomp: Add SECCOMP_RET_TRAP Will Drewry
2012-02-29 23:53 ` [PATCH v12 10/13] ptrace,seccomp: Add PTRACE_SECCOMP support Will Drewry
2012-02-29 23:53 ` [PATCH v12 11/13] x86: Enable HAVE_ARCH_SECCOMP_FILTER Will Drewry
2012-02-29 23:53 ` [PATCH v12 12/13] Documentation: prctl/seccomp_filter Will Drewry
2012-02-29 23:53 ` [PATCH v12 13/13] seccomp: remove duplicated failure logging Will Drewry
2012-03-01 23:37 ` [PATCH v12 01/13] sk_run_filter: add support for custom load_pointer Kees Cook
2012-03-02  0:05   ` H. Peter Anvin
2012-03-02  0:22   ` Andrew Lutomirski
2012-03-02  0:47   ` Stephen Rothwell
2012-03-02  0:57     ` Kees Cook
2012-03-02  1:19       ` Andrew Morton
2012-03-02  2:39         ` Will Drewry
2012-03-02  4:04         ` Indan Zupancic
2012-03-02  5:03           ` Stephen Rothwell
2012-03-02  5:26           ` Kees Cook
2012-03-02  1:48       ` Andrew Lutomirski
2012-03-02  3:10       ` Stephen Rothwell
2012-03-02  3:41         ` Will Drewry
2012-03-02  3:57           ` Stephen Rothwell
2012-03-02  0:47   ` Eric Dumazet
2012-03-02 10:40 ` Indan Zupancic
2012-03-02 18:47   ` Will Drewry

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=bc1b4ec8fbad5a5931a928f108a6095f.squirrel@webmail.greenhost.nl \
    --to=indan@nul.nu \
    --cc=akpm@linux-foundation.org \
    --cc=arnd@arndb.de \
    --cc=corbet@lwn.net \
    --cc=coreyb@linux.vnet.ibm.com \
    --cc=davem@davemloft.net \
    --cc=djm@mindrot.org \
    --cc=eparis@redhat.com \
    --cc=eric.dumazet@gmail.com \
    --cc=hpa@zytor.com \
    --cc=keescook@chromium.org \
    --cc=kernel-hardening@lists.openwall.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@mit.edu \
    --cc=markus@chromium.org \
    --cc=mcgrathr@chromium.org \
    --cc=mingo@redhat.com \
    --cc=netdev@vger.kernel.org \
    --cc=oleg@redhat.com \
    --cc=peterz@infradead.org \
    --cc=pmoore@redhat.com \
    --cc=rdunlap@xenotime.net \
    --cc=scarybeasts@gmail.com \
    --cc=serge.hallyn@canonical.com \
    --cc=tglx@linutronix.de \
    --cc=wad@chromium.org \
    --cc=x86@kernel.org \
    /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®