On Thu, Jun 04, 2015 at 09:44:36AM -0700, Kees Cook wrote: > On Wed, Jun 3, 2015 at 3:09 PM, Tycho Andersen > <tycho.andersen@xxxxxxxxxxxxx> wrote: > > This patch is the first step in enabling checkpoint/restore of processes > > with seccomp enabled. > > > > One of the things CRIU does while dumping tasks is inject code into them > > via ptrace to collect information that is only available to the process > > itself. However, if we are in a seccomp mode where these processes are > > prohibited from making these syscalls, then what CRIU does kills the task. > > > > This patch adds a new ptrace option, PTRACE_O_SUSPEND_SECCOMP, that enables > > a task from the init user namespace which has CAP_SYS_ADMIN and no seccomp > > filters to disable (and re-enable) seccomp filters for another task so that > > they can be successfully dumped (and restored). We restrict the set of > > processes that can disable seccomp through ptrace because although today > > ptrace can be used to bypass seccomp, there is some discussion of closing > > this loophole in the future and we would like this patch to not depend on > > that behavior and be future proofed for when it is removed. > > > > Note that seccomp can be suspended before any filters are actually > > installed; this behavior is useful on criu restore, so that we can suspend > > seccomp, restore the filters, unmap our restore code from the restored > > process' address space, and then resume the task by detaching and have the > > filters resumed as well. > > > > v2 changes: > > > > * require that the tracer have no seccomp filters installed > > * drop TIF_NOTSC manipulation from the patch > > * change from ptrace command to a ptrace option and use this ptrace option > > as the flag to check. This means that as soon as the tracer > > detaches/dies, seccomp is re-enabled and as a corrollary that one can not > > disable seccomp across PTRACE_ATTACHs. > > This feature gives me the creeps, but I think it's okay. :D > Could it be > further restricted so that the process doing the suspension is already > ptracing the target? As far as I understand it you do have to PTRACE_{ATTACH,SEIZE} to the target before setting options in general. Is that not what you mean here? The rest of the changes sound good, I'll make those and resend. > > Thanks for working on this! Thanks for the review. Tycho -- To unsubscribe from this list: send the line "unsubscribe linux-api" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html