From: Oleg Nesterov <oleg@redhat.com>
To: Will Drewry <wad@chromium.org>
Cc: 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, hpa@zytor.com, mingo@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, indan@nul.nu, 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,
Denys Vlasenko <dvlasenk@redhat.com>
Subject: [kernel-hardening] Re: [PATCH v11 10/12] ptrace,seccomp: Add PTRACE_SECCOMP support
Date: Wed, 29 Feb 2012 18:09:33 +0100 [thread overview]
Message-ID: <20120229170933.GA6149@redhat.com> (raw)
In-Reply-To: <CABqD9hZLi416irXMMPmysYohrOn1gQjhjDyKTggU80Kd7ywvcA@mail.gmail.com>
On 02/29, Will Drewry wrote:
> On Wed, Feb 29, 2012 at 10:14 AM, Oleg Nesterov <oleg@redhat.com> wrote:
> > On 02/28, Will Drewry wrote:
> >>
> >> On Tue, Feb 28, 2012 at 11:04 AM, Will Drewry <wad@chromium.org> wrote:
> >> > On Tue, Feb 28, 2012 at 10:43 AM, Oleg Nesterov <oleg@redhat.com> wrote:
> >> >>
> >> >> Great. In this case this patch becomes really trivial. Just 2 defines
> >> >> in ptrace.h and the unconditional ptrace_event() under SECCOMP_RET_TRACE.
> >>
> >> hrm the only snag is that I can't then rely on TIF_SYSCALL_TRACE to
> >> ensure seccomp is in the slow-path. Right now, on x86, seccomp is
> >> slow-path, but it doesn't have to be to have the syscall and args.
> >> However, for ptrace to behavior properly, I believed it did need to be
> >> in the slow path. If SECCOMP_RET_TRACE doesn't rely on
> >> PTRACE_SYSCALL, then it introduces a need for seccomp to always be in
> >> the slow path or to flag (somehow) when it needs slow path.
> >
> > My understanding of this magic is very limited, and I'm afraid
> > I misunderstood... So please correct me.
> >
> > But what is the problem? system_call checks _TIF_WORK_SYSCALL_ENTRY
> > which includes _TIF_SECCOMP | _TIF_SYSCALL_TRACE, and jumps to
> > tracesys which does SAVE_REST.
> >
> > Anyway. secure_computing() is called by syscall_trace_enter() which
> > also calls tracehook_report_syscall_entry(). If SECCOMP_RET_TRACE
> > can't do ptrace_event() then why tracehook_report_syscall_entry() is
> > fine?
>
> Early on in this patch series, I was urged away from regviews (for
> many reasons), one of them was so that seccomp could, at some point,
> be fast-path'd like audit is for x86. (It may be on arm already, I'd
> need to check.) So I was hoping that I could avoid adding a slow-path
> dependency to the seccomp code.
Thanks, now I see what you meant.
> By adding a requirement for the
> slow-path in the form of ptrace_event(), the difficulty for making
> seccomp fast-path friendly is increased.
Yes. I do not know if this is really bad. I mean, I do not know how
much do we want the fast-path'd seccomp.
> (It could be possible to add
> a return code, e.g., return NEEDS_SLOW_PATH, which tells the fast path
> code to restart the handling at syscall_trace_enter, so maybe I am
> making a big deal out of nothing.)
Probably. Or SECCOMP_RET_TRACE can set TIF_NOTIFY_RESUME.
(Btw there is another alternative although imho PTRACE_EVENT_SECCOMP
looks better. SECCOMP_RET_TRACE can simply set TIF_SYSCALL_TRACE and
return, syscall_trace_enter() will report the syscall. If we make it
fast-path'ed, then TIF_NOTIFY_RESUME should trigger the slow path)
> I was hoping to avoid having TIF_SECCOMP imply the slow-path, but if
> that is the only sane way to integrate, then I can leave making it
> fast-path friendly as a future exercise.
>
> If I'm over-optimizing,
may be ;) but it is very possible I underestimate the problem.
I'd like to know what Roland thinks.
Oleg.
WARNING: multiple messages have this Message-ID (diff)
From: Oleg Nesterov <oleg@redhat.com>
To: Will Drewry <wad@chromium.org>
Cc: 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, hpa@zytor.com, mingo@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, indan@nul.nu, 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,
Denys Vlasenko <dvlasenk@redhat.com>
Subject: Re: [PATCH v11 10/12] ptrace,seccomp: Add PTRACE_SECCOMP support
Date: Wed, 29 Feb 2012 18:09:33 +0100 [thread overview]
Message-ID: <20120229170933.GA6149@redhat.com> (raw)
In-Reply-To: <CABqD9hZLi416irXMMPmysYohrOn1gQjhjDyKTggU80Kd7ywvcA@mail.gmail.com>
On 02/29, Will Drewry wrote:
> On Wed, Feb 29, 2012 at 10:14 AM, Oleg Nesterov <oleg@redhat.com> wrote:
> > On 02/28, Will Drewry wrote:
> >>
> >> On Tue, Feb 28, 2012 at 11:04 AM, Will Drewry <wad@chromium.org> wrote:
> >> > On Tue, Feb 28, 2012 at 10:43 AM, Oleg Nesterov <oleg@redhat.com> wrote:
> >> >>
> >> >> Great. In this case this patch becomes really trivial. Just 2 defines
> >> >> in ptrace.h and the unconditional ptrace_event() under SECCOMP_RET_TRACE.
> >>
> >> hrm the only snag is that I can't then rely on TIF_SYSCALL_TRACE to
> >> ensure seccomp is in the slow-path. Right now, on x86, seccomp is
> >> slow-path, but it doesn't have to be to have the syscall and args.
> >> However, for ptrace to behavior properly, I believed it did need to be
> >> in the slow path. If SECCOMP_RET_TRACE doesn't rely on
> >> PTRACE_SYSCALL, then it introduces a need for seccomp to always be in
> >> the slow path or to flag (somehow) when it needs slow path.
> >
> > My understanding of this magic is very limited, and I'm afraid
> > I misunderstood... So please correct me.
> >
> > But what is the problem? system_call checks _TIF_WORK_SYSCALL_ENTRY
> > which includes _TIF_SECCOMP | _TIF_SYSCALL_TRACE, and jumps to
> > tracesys which does SAVE_REST.
> >
> > Anyway. secure_computing() is called by syscall_trace_enter() which
> > also calls tracehook_report_syscall_entry(). If SECCOMP_RET_TRACE
> > can't do ptrace_event() then why tracehook_report_syscall_entry() is
> > fine?
>
> Early on in this patch series, I was urged away from regviews (for
> many reasons), one of them was so that seccomp could, at some point,
> be fast-path'd like audit is for x86. (It may be on arm already, I'd
> need to check.) So I was hoping that I could avoid adding a slow-path
> dependency to the seccomp code.
Thanks, now I see what you meant.
> By adding a requirement for the
> slow-path in the form of ptrace_event(), the difficulty for making
> seccomp fast-path friendly is increased.
Yes. I do not know if this is really bad. I mean, I do not know how
much do we want the fast-path'd seccomp.
> (It could be possible to add
> a return code, e.g., return NEEDS_SLOW_PATH, which tells the fast path
> code to restart the handling at syscall_trace_enter, so maybe I am
> making a big deal out of nothing.)
Probably. Or SECCOMP_RET_TRACE can set TIF_NOTIFY_RESUME.
(Btw there is another alternative although imho PTRACE_EVENT_SECCOMP
looks better. SECCOMP_RET_TRACE can simply set TIF_SYSCALL_TRACE and
return, syscall_trace_enter() will report the syscall. If we make it
fast-path'ed, then TIF_NOTIFY_RESUME should trigger the slow path)
> I was hoping to avoid having TIF_SECCOMP imply the slow-path, but if
> that is the only sane way to integrate, then I can leave making it
> fast-path friendly as a future exercise.
>
> If I'm over-optimizing,
may be ;) but it is very possible I underestimate the problem.
I'd like to know what Roland thinks.
Oleg.
next prev parent reply other threads:[~2012-02-29 17:09 UTC|newest]
Thread overview: 108+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-25 3:21 [kernel-hardening] [PATCH v11 01/12] sk_run_filter: add support for custom load_pointer Will Drewry
2012-02-25 3:21 ` Will Drewry
2012-02-25 3:21 ` [kernel-hardening] [PATCH v11 02/12] net/compat.c,linux/filter.h: share compat_sock_fprog Will Drewry
2012-02-25 3:21 ` Will Drewry
2012-02-25 3:21 ` [kernel-hardening] [PATCH v11 03/12] seccomp: kill the seccomp_t typedef Will Drewry
2012-02-25 3:21 ` Will Drewry
2012-02-25 3:21 ` [kernel-hardening] [PATCH v11 04/12] asm/syscall.h: add syscall_get_arch Will Drewry
2012-02-25 3:21 ` Will Drewry
2012-02-25 3:21 ` [kernel-hardening] [PATCH v11 05/12] arch/x86: add syscall_get_arch to syscall.h Will Drewry
2012-02-25 3:21 ` Will Drewry
2012-02-25 3:21 ` [kernel-hardening] [PATCH v11 06/12] seccomp: add system call filtering using BPF Will Drewry
2012-02-25 3:21 ` Will Drewry
2012-02-26 20:28 ` [kernel-hardening] " Kees Cook
2012-02-26 20:28 ` Kees Cook
2012-02-27 16:23 ` [kernel-hardening] " Will Drewry
2012-02-27 16:23 ` Will Drewry
2012-02-27 16:49 ` [kernel-hardening] " Eric Paris
2012-02-27 16:49 ` Eric Paris
2012-02-27 18:55 ` [kernel-hardening] " Kees Cook
2012-02-27 18:55 ` Kees Cook
2012-02-27 19:25 ` [kernel-hardening] " Eric Paris
2012-02-27 19:25 ` Eric Paris
2012-02-27 20:00 ` [kernel-hardening] " Kees Cook
2012-02-27 20:00 ` Kees Cook
2012-02-27 20:34 ` [kernel-hardening] " Eric Paris
2012-02-27 20:34 ` Eric Paris
2012-02-27 20:49 ` [kernel-hardening] " Kees Cook
2012-02-27 20:49 ` Kees Cook
2012-02-27 17:09 ` [kernel-hardening] " Oleg Nesterov
2012-02-27 17:09 ` Oleg Nesterov
2012-02-27 19:54 ` [kernel-hardening] " Will Drewry
2012-02-27 19:54 ` Will Drewry
2012-02-27 20:15 ` [kernel-hardening] " Kees Cook
2012-02-27 20:15 ` Kees Cook
2012-02-28 15:13 ` [kernel-hardening] " Oleg Nesterov
2012-02-28 15:13 ` Oleg Nesterov
2012-02-28 17:18 ` [kernel-hardening] " Will Drewry
2012-02-28 17:18 ` Will Drewry
2012-02-28 6:51 ` [kernel-hardening] " Indan Zupancic
2012-02-28 6:51 ` Indan Zupancic
2012-02-28 6:51 ` Indan Zupancic
2012-02-28 6:51 ` Indan Zupancic
2012-02-28 7:52 ` [kernel-hardening] " Kees Cook
2012-02-28 7:52 ` Kees Cook
2012-02-28 17:17 ` [kernel-hardening] " Will Drewry
2012-02-28 17:17 ` Will Drewry
2012-02-28 17:47 ` [kernel-hardening] " Markus Gutschke
2012-02-28 17:47 ` Markus Gutschke
2012-02-25 3:21 ` [kernel-hardening] [PATCH v11 07/12] seccomp: add SECCOMP_RET_ERRNO Will Drewry
2012-02-25 3:21 ` Will Drewry
2012-02-25 20:20 ` [kernel-hardening] " Kees Cook
2012-02-25 20:20 ` Kees Cook
2012-02-27 16:22 ` [kernel-hardening] " Will Drewry
2012-02-27 16:22 ` Will Drewry
2012-02-27 17:11 ` [kernel-hardening] " Oleg Nesterov
2012-02-27 17:11 ` Oleg Nesterov
2012-02-27 18:09 ` [kernel-hardening] " Kees Cook
2012-02-27 18:09 ` Kees Cook
2012-02-27 18:14 ` [kernel-hardening] " Oleg Nesterov
2012-02-27 18:14 ` Oleg Nesterov
2012-02-27 18:35 ` [kernel-hardening] " Andrew Lutomirski
2012-02-27 18:35 ` Andrew Lutomirski
2012-02-27 19:14 ` [kernel-hardening] " Kees Cook
2012-02-27 19:14 ` Kees Cook
2012-02-27 19:54 ` [kernel-hardening] " Will Drewry
2012-02-27 19:54 ` Will Drewry
2012-02-25 3:21 ` [kernel-hardening] [PATCH v11 08/12] signal, x86: add SIGSYS info and make it synchronous Will Drewry
2012-02-25 3:21 ` Will Drewry
2012-02-27 17:22 ` [kernel-hardening] " Oleg Nesterov
2012-02-27 17:22 ` Oleg Nesterov
2012-02-27 17:34 ` [kernel-hardening] " Roland McGrath
2012-02-27 17:34 ` Roland McGrath
2012-02-27 18:08 ` [kernel-hardening] " Oleg Nesterov
2012-02-27 18:08 ` Oleg Nesterov
2012-02-27 20:24 ` [kernel-hardening] " Will Drewry
2012-02-27 20:24 ` Will Drewry
2012-02-28 16:02 ` [kernel-hardening] " Oleg Nesterov
2012-02-28 16:02 ` Oleg Nesterov
2012-02-28 17:06 ` [kernel-hardening] " Will Drewry
2012-02-28 17:06 ` Will Drewry
2012-02-25 3:21 ` [kernel-hardening] [PATCH v11 09/12] seccomp: Add SECCOMP_RET_TRAP Will Drewry
2012-02-25 3:21 ` Will Drewry
2012-02-25 3:21 ` [kernel-hardening] [PATCH v11 10/12] ptrace,seccomp: Add PTRACE_SECCOMP support Will Drewry
2012-02-25 3:21 ` Will Drewry
2012-02-27 17:54 ` [kernel-hardening] " Oleg Nesterov
2012-02-27 17:54 ` Oleg Nesterov
2012-02-27 19:47 ` [kernel-hardening] " Will Drewry
2012-02-27 19:47 ` Will Drewry
2012-02-28 16:43 ` [kernel-hardening] " Oleg Nesterov
2012-02-28 16:43 ` Oleg Nesterov
2012-02-28 17:04 ` [kernel-hardening] " Will Drewry
2012-02-28 17:04 ` Will Drewry
2012-02-28 18:34 ` [kernel-hardening] " Will Drewry
2012-02-28 18:34 ` Will Drewry
2012-02-29 16:14 ` [kernel-hardening] " Oleg Nesterov
2012-02-29 16:14 ` Oleg Nesterov
2012-02-29 16:33 ` [kernel-hardening] " Will Drewry
2012-02-29 16:33 ` Will Drewry
2012-02-29 17:09 ` Oleg Nesterov [this message]
2012-02-29 17:09 ` Oleg Nesterov
2012-02-29 17:41 ` [kernel-hardening] " Roland McGrath
2012-02-29 17:41 ` Roland McGrath
2012-02-29 17:51 ` [kernel-hardening] " Will Drewry
2012-02-29 17:51 ` Will Drewry
2012-02-25 3:21 ` [kernel-hardening] [PATCH v11 11/12] x86: Enable HAVE_ARCH_SECCOMP_FILTER Will Drewry
2012-02-25 3:21 ` Will Drewry
2012-02-25 3:21 ` [kernel-hardening] [PATCH v11 12/12] Documentation: prctl/seccomp_filter Will Drewry
2012-02-25 3:21 ` 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=20120229170933.GA6149@redhat.com \
--to=oleg@redhat.com \
--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=dvlasenk@redhat.com \
--cc=eparis@redhat.com \
--cc=eric.dumazet@gmail.com \
--cc=hpa@zytor.com \
--cc=indan@nul.nu \
--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=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 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.