seccomp как обрабатывать события ptrace

Я использую фильтры seccomp для ограничения системных вызовов, выполняемых процессом. Вплоть до использования белого списка системных вызовов для разрешения и запрета системного вызова понятно. Я остановился на концепции ptrace событий, сгенерированных seccomp правилами. Например, я могу запретить open, но я хочу сгенерировать событие ptrace при системном вызове open, чтобы я мог определить, может ли процесс открыть этот файл или нет. Мой конкретный вопрос: как перехватить событие ptrace, сгенерированное seccomp? Любая помощь или ссылка будет большим благословением.

Я гуглил в своих скромных возможностях, но не нашел никакой помощи и рабочего примера.


person incompetent    schedule 03.02.2016    source источник


Ответы (1)


Вам нужна отдельная программа, которая отслеживает неполноценных. Этот трассировщик должен вызывать

    ptrace(PTRACE_SETOPTIONS, tracee_pid, 0, PTRACE_O_TRACESECCOMP);

запросить уведомления и позвонить

    waitpid(tracee_pid, &status, __WALL);

быть уведомленным. Когда waitpid вернется, проанализируйте status и получите уведомление через

    unsigned long data;
    ptrace(PTRACE_GETEVENTMSG, tracee_pid, 0, &data);
person user58697    schedule 03.02.2016