c - 阻止进程执行某些系统调用

标签 c linux security system-calls

我正在编写一个生成子进程的程序。出于安全原因,我想限制这些进程可以做什么。我知道程序外部的安全措施,例如 chrootulimit,但我想做的不止于此。我想限制子进程完成的系统调用(例如防止调用 open()fork() 等)。有什么办法吗?最理想的情况是,被阻塞的系统调用应该返回一个错误,但如果这不可能,那么终止进程也是好的。

我想这可以用 ptrace() 来完成,但是从手册页来看我真的不明白如何将它用于这个目的。

最佳答案

听起来像SECCOMP_FILTER ,在内核版本 3.5 中添加,就是您所追求的。 libseccomp library为此功能提供易于使用的 API。

顺便说一句,chroot()setrlimit() 都是可以在您的程序中调用的系统调用 - 您可能想要使用其中之一或两者这些除了 seccomp 过滤。

关于c - 阻止进程执行某些系统调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13343058/

相关文章:

c - 如何知道我应该将 _POSIX_C_SOURCE 定义为哪个值?

c - vfork 调用后的奇怪输出

c++ - 是否有库函数来确定 IP 地址(IPv4 和 IPv6)在 C/C++ 中是私有(private)的还是本地的?

c - 处理 TCP PSH

c - 为什么 malloc 根本不分配内存?

linux - 限制 fork /子过程的数量

vba - 有没有办法在word文件打开时通过电子邮件通知

html - GET 或 POST 是否比另一个更安全?

c# - 比较并识别特定位置的位置和值并打印

javascript - Firebase 和用户个人资料 "Security"