Каут событие на старте процесса. - профилактические возможности - PullRequest
0 голосов
/ 13 сентября 2018

Я бы хотел получать событие в ядре при каждом новом запуске (fork + execve или posix_spawn) и иметь возможность предотвращать эти операции.

Первым вариантом будет использование платформы Mac с именем mpo_vnode_check_exec путем подключения к этому методу с функцией, которая возвращает 0, когда доступ разрешен, или проверкой, отложенной до следующего перехвата. Ненулевое возвращаемое значение означает, что в доступе отказано сразу.

К сожалению, этот фреймворк не поддерживается Apple, и я хочу использовать стабильную альтернативу, такую ​​как kauth fileop scope с флагом KAUTH_FILEOP_EXEC. Тем не менее, эта структура предназначена только для обнаружения и не имеет возможности предотвращения.

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

спасибо

1 Ответ

0 голосов
/ 13 сентября 2018

Однако эта структура предназначена только для обнаружения и не имеет возможностей для предотвращения.

Исправьте, если вы фокусируетесь только на области Файла.

Зарегистрируйте с областью Vnode , и ваш обратный вызов вернет, разрешен ли доступ.

kauth_listen_scope(KAUTH_SCOPE_VNODE, &myCallback, NULL);

Наконец, обратите внимание, что эта областьочень шумно, так как сообщается о каждом типе доступа к каждому ресурсу.

...