开始过程中的Kauth事件。 - 预防能力

问题描述 投票:1回答:1

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

第一个选项是使用名为mpo_vnode_check_exec的Mac框架通过挂钩到此方法,函数在授予访问权限时返回0或检查延迟到下一个钩子。非零返回值意味着立即拒绝访问。

不幸的是,这个框架没有得到apple的支持,我希望使用一个稳定的替代方案,例如kauth fileop scope和KAUTH_FILEOP_EXEC flag。但是,该框架仅用于检测,缺乏预防能力。

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

谢谢

macos authorization kernel-extension darwin xnu
1个回答
2
投票

但是,该框架仅用于检测,缺乏预防能力。

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

RegisterVnode scope和你的回调返回是否允许访问。

kauth_listen_scope(KAUTH_SCOPE_VNODE, &myCallback, NULL);

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

© www.soinside.com 2019 - 2024. All rights reserved.