如何禁止系统调用,GNU / Linux
我目前正在研究类似ACM的公共编程竞赛系统的后端.在这样的系统中,任何用户都可以提交代码源,该代码源将被编译并自动运行(这意味着,没有执行人眼预先调节)以试图解决一些计算问题.
后端是GNU / Linux专用机器,其中将为每个参赛者创建用户,所有这些用户都是用户组的一部分.任何特定用户发送的源将存储在用户的主目录中,然后编译并执行以针对各种测试用例进行验证. 我想要的是禁止使用Linux系统调用源.这是因为问题需要独立于平台的解决方案,而对不安全的源启用系统调用则是潜在的安全漏洞.这些源可以成功地放在FS中,甚至可以编译,但从不运行.我还希望在发送包含系统调用的源时收到通知. 到目前为止,我看到以下可能放置此类检查器的地方: >前端/预编译分析 – 已在系统中检查过但尚未编译的源.针对系统调用名称的简单文本检查器.依赖于平台,独立于编译器,依赖于语言的解决方案. 所以问题是:GNU / Linux是否为管理员提供了禁止用户组,用户或特定进程使用系统调用的机会?它可能是安全策略或轻量级GNU实用程序. 我试图谷歌,但谷歌今天不喜欢我. 解决方法
mode 1 seccomp允许进程将自己限制为四个系统调用:read,write,sigreturn和_exit.这可以用于严格的沙盒代码,就像
seccomp-nurse一样.
mode 2 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |