Re: [PATCH v4] seccomp: add ptrace options for suspend/resume
flat view
From: Andy Lutomirski <hidden>
Date: 2015-06-10 17:42:32
Also in:
lkml
On Wed, Jun 10, 2015 at 10:29 AM, Serge Hallyn [off-list ref] wrote:
Quoting Andy Lutomirski (luto-kltTT9wpgjJwATOyAt5JVQ@public.gmane.org):quoted
On Wed, Jun 10, 2015 at 9:31 AM, Oleg Nesterov [off-list ref] wrote:quoted
On 06/09, Andy Lutomirski wrote:quoted
On Tue, Jun 9, 2015 at 5:49 PM, Tycho Andersenquoted
@@ -556,6 +556,15 @@ static int ptrace_setoptions(struct task_struct *child, unsigned long data) if (data & ~(unsigned long)PTRACE_O_MASK) return -EINVAL; + if (unlikely(data & PTRACE_O_SUSPEND_SECCOMP)) {Well, we should do this if (data & O_SUSPEND) && !(flags & O_SUSPEND) or at least if (data ^ flags) & O_SUSPENDquoted
quoted
+ if (!config_enabled(CONFIG_CHECKPOINT_RESTORE) || + !config_enabled(CONFIG_SECCOMP)) + return -EINVAL; + + if (!capable(CAP_SYS_ADMIN)) + return -EPERM;I tend to think that we should also require that current not be using seccomp. Otherwise, in principle, there's a seccomp bypass for privileged-but-seccomped programs.Andy, I simply can't understand why do we need any security check at all. OK, yes, in theory we can have a seccomped CAP_SYS_ADMIN process, seccomp doesn't filter ptrace, you hack that process and force it to attach to another CAP_SYS_ADMIN/seccomped process, etc, etc... Looks too paranoid to me.I've sometimes considered having privileged processes I write fork and seccomp their child. Of course, if you're allowing ptrace through your seccomp filter, you open a giant can of worms, but I think we should take the more paranoid approach to start and relax it later asI really do intend to look at your old proposed tree for improving that... have only done a once-over so far, though.
Don't read it yet. It's unnecessarily complicated due to the mess that is x86's entry code, and I want to clean up the entry code first. --Andy