![]() |
1
47
我用过
Systrace
以交互方式和自动模式对不受信任的程序进行沙盒处理。它有一个
也可以在类Unix系统上使用
如果你告诉我们你到底想做什么,我们就能帮你更多。 编辑: Systrace对你的案子有用,但我认为 Linux Security Model 像AppArmor或SELinux是一个更标准的选择,因此更受欢迎,取决于您的分布。 编辑2:
当
资源使用问题在所有替代方案中都很常见。
Filesystem quotas
将阻止程序填充磁盘。适当的
|
![]() |
2
18
我写了一篇 overview of sandboxing techniques in Linux 最近。我认为最简单的方法是使用Linux容器(lxc),如果你不介意分叉等等,这在这个环境中并不重要。你可以给进程一个只读的根文件系统,一个独立的环回网络连接,你仍然可以很容易地杀死它并设置内存限制等。 Seccomp将有点困难,因为代码甚至不能分配内存。 Selinux是另一种选择,但我认为它可能比容器更有用。 |
![]() |
3
6
您可以使用Qemu快速测试作业。在我5岁的笔记本电脑上,下面的过程不到5秒。 让我们假设学生必须开发一个程序,该程序接受无符号整数,每一个都在他们自己的行上,直到一个带“-1”的行到达。然后,程序应平均所有整数,并输出“平均值:%f”。下面是如何测试完全隔离的程序:
通过测试的程序如下:
https://stackoverflow.com/a/14424295/309483
. 只是使用
|
![]() |
4
5
尝试 User-mode Linux . 对于CPU密集型作业,它的性能开销约为1%,但对于I/O密集型作业,它可能慢6倍。 |
![]() |
5
3
在虚拟机中运行它可以为您提供所需的所有安全性和限制。 QEMU 这非常适合,所有的工作(下载应用程序、更新磁盘映像、启动QEMU、在其中运行应用程序,以及保存输出以备以后检索)都可以编写脚本,以便自动运行测试。 |
![]() |
6
3
当基于Pracle(Strues)签出进行三击时: " 赛德堡 “沙盒和” 品脱比赛 “编程库(它是C99,但据我所知,它绑定了python和ruby)。 收集到与主题相关的链接: http://www.diigo.com/user/wierzowiecki/sydbox (很抱歉没有直接链接,但是还没有足够的信誉点) |
![]() |
7
3
seccomp和seccomp bpf以最少的努力完成此任务: https://www.kernel.org/doc/Documentation/prctl/seccomp_filter.txt |
![]() |
8
2
Firejail是最全面的工具之一—它支持seccomp、文件系统容器、功能等: |
![]() |
9
1
|
![]() |
10
1
这似乎也很有希望。使用syscall截获的Linux文件系统沙盒。 |
|
11
-2
好吧,多亏他们给了我很多帮助。但我不会建议他们中的任何一个来解决最初的问题。所有提到的工具都需要做大量的工作来测试学生作为老师、导师、教授的代码。在这种情况下,最好的方法是在我看来virtualbox。好的,它模仿一个完整的X68系统,与沙箱的意义没有任何关系,但是如果我想象我的编程老师,那对他来说是最好的。所以“apt get install virtualbox”在基于debian的系统上,所有其他的 http://virtualbox.org/ ,创建一个vm,添加一个iso,单击install,等待一段时间,然后走运。它将更容易使用,如设置用户模式linux或做一些重strace的事情。。。 如果你担心你的学生攻击你,我想你有一个权威问题,解决这个问题的办法就是威胁他们,如果你能证明他们给你的工作中有一点恶意,你就可以把他们告上法庭。。。 另外,如果有一个类,并且有1%的类是他能做的最好的,不要让他们厌烦这些简单的任务,给他们一些大的任务,他们必须编码更多。整合学习对每个人都是最好的,所以不要依赖于旧的僵持结构。。。 当然,千万不要用同一台电脑做一些重要的事情(比如写证明和考试),比如浏览网页和测试软件。 重要的事情用离线计算机,其他的事情用在线计算机。 然而,对于其他不是偏执狂的老师(不想冒犯任何人,我只是认为你应该在开始成为程序员老师之前学习安全和我们社会的基本知识…) ... 我在哪里。。。对于其他人: 快乐黑客!! |
![]() |
CaTx · 使用带有一个大于号和两个大于号的回波的区别 2 年前 |
![]() |
Ari157 · x86_64 Linux程序集中的逻辑与实现 2 年前 |
![]() |
Ty Q. · 分段故障GLFW3/GLAD 2 年前 |
![]() |
ShortArrow · 如何使用git管理链接源文件? 2 年前 |
![]() |
Bastien L. · 多Linux Grafana集成 2 年前 |