Libseccomp: В: перехватить системные вызовы от одного и того же процесса

Созданный на 20 мая 2021  ·  3Комментарии  ·  Источник: seccomp/libseccomp

Я работаю над песочницей в Linux, и я хочу перехватить системные вызовы и вернуть имитированное значение или изменить регистры / указатели и выполнить системный вызов с измененным значением.

Я хотел бы добиться этого с помощью того же процесса, мой код уже введен в целевой процесс во время запуска.

Можно ли с seccomp сделать?
Если у вас есть полезный пример или какие-либо другие рекомендации, возможно, есть лучший способ добиться того же

question

Самый полезный комментарий

Вы всегда можете проверить приведенный ниже тест, он довольно простой, но должен дать вам общее представление о том, как его использовать:

Я собираюсь закрыть этот вопрос, так как думаю, что вопрос решен, но если вы не согласны, не стесняйтесь открывать его повторно / оставлять комментарии.

Все 3 Комментарий

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

Лучшим вариантом было бы использовать более традиционный статический фильтр системных вызовов, как это делается с помощью большого количества инструментов песочницы, или создать процесс супервизора для отслеживания и перехвата системных вызовов с использованием возможностей уведомления, добавленных в seccomp / libseccomp.

Я новичок в seccomp, накануне даже не знал о его существовании, если я правильно понял, недавнее добавление уведомлений дает нам возможность обрабатывать системные вызовы из пользовательского режима.
У вас есть код, который я могу использовать в качестве справочника для этой задачи (уведомление seccomp для перехвата системных вызовов)?

Вы всегда можете проверить приведенный ниже тест, он довольно простой, но должен дать вам общее представление о том, как его использовать:

Я собираюсь закрыть этот вопрос, так как думаю, что вопрос решен, но если вы не согласны, не стесняйтесь открывать его повторно / оставлять комментарии.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги