seccomp-bpf - как я могу использовать bpf для фильтрации аргументов системного вызова?

У меня есть функция f(), которая возвращает 0 или 1 - 0 для false, 1 для true. Я хотел бы установить правило с seccomp-bpf, чтобы системный вызов "fopen" был разрешен только в том случае, если f (первый параметр --fopen--) == 1.

Как бы я это сделал?

1 ответ

Насколько я понимаю seccomp-bpf, это невозможно для произвольного f(). Если f можно перевести как последовательность BPF, просто примените ее к первому параметру.

другая альтернатива - использовать ptrace или комбинацию seccomp-buf и ptrace, чтобы детально ограничить возможности вызова fopen.

Примером такого комбинированного использования является sydbox http://dev.exherbo.org/~alip/sydbox/sydbox.html

Другие вопросы по тегам