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

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

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

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);
Другие вопросы по тегам