启动过程中的 Kauth 事件。 - 预防能力

Kauth event upon start process. - prevention capabilities

我想在内核中获取每个启动的新进程(fork+execve 或 posix_spawn)的事件,并能够阻止此操作。

第一个选项是使用名为 mpo_vnode_check_exec 的 Mac 框架,方法是使用 return 0 函数挂接此方法,当访问被授予或检查延迟到下一个挂钩时.. 非零 returned 值表示访问被立即拒绝。

不幸的是,苹果不支持这个框架,我希望使用一个稳定的替代方案,比如带有 KAUTH_FILEOP_EXEC 标志的 kauth fileop 作用域。 然而,这个框架只是用于检测,缺乏预防能力..

当我在进程创建时获得相关的 kauth 回调时,也许有一种方法可以阻止进程从 运行ning 开始,或者从 运行ning 停止进程直到我决定它是否应该 [=25] =] 或不(并在另一个线程中强制执行判决)。

感谢

However, this framework is for detection only and lacks prevention capabilities..

正确,如果您只关注文件范围。

Register with the Vnode scope 和您的回调 returns 是否允许访问。

kauth_listen_scope(KAUTH_SCOPE_VNODE, &myCallback, NULL);

最后,请注意这个范围非常嘈杂,因为报告了对每种资源的每种类型的访问。