相关疑难解决方法(0)

在Linux的沙箱中运行一个不受信任的C程序,防止它打开文件,分叉等?

我想知道是否存在在Linux下的沙箱下运行不受信任的C程序的方法.什么会阻止程序打开文件,网络连接,分叉,执行等?

它将是一个小程序,一个家庭作业,它被上传到服务器并在其上执行单元测试.所以该计划将是短暂的.

linux sandbox

107
推荐指数
5
解决办法
5万
查看次数

Linux中的沙盒

我想创建一个Web应用程序,允许用户上传一些C代码,并查看其执行结果(代码将在服务器上编译).用户不受信任,这显然具有一些巨大的安全隐患.

所以我需要为应用程序创建一些沙盒.在最基本的层面上,我想限制对某些指定目录的文件系统访问.我无法直接使用chroot jails,因为Web应用程序不是以特权用户身份运行.我想一个suid可执行文件设置jail将是一个选项.

上传的程序相当小,因此它们应该快速执行(最多几秒钟).因此,我可以在预设超时后终止进程,但是如何确保它不会产生新进程?或者,如果我不能,那么杀死整个pgid是一种可靠的方法吗?

除了"根本不做"之外,最好的方法是什么?:)我错过了哪些其他明显的安全问题?

FWIW,Web应用程序将用Python编写.

c python linux security sandbox

16
推荐指数
1
解决办法
6370
查看次数

让用户上传Python脚本以便执行

我知道让任何匿名用户上传任何类型的文件都是危险的,特别是如果它的代码.但是,我有一个想法让用户上传自定义AI脚本到我的网站.我将提供模板,以便用户可以在我用Python编写的在线网络游戏中与其他AI竞争.我要么需要一个解决方案来确保用户不会破坏任何其他文件或通过他们上传的脚本或客户端执行游戏的解决方案注入恶意代码.有什么建议?(我正在寻找一种适用于我的Python脚本的解决方案)

python cgi

12
推荐指数
3
解决办法
880
查看次数

在Linux上运行可执行文件最安全的方法是什么?

我正在尝试运行从未知来源的C代码编译的程序.我想确保程序不会损害我的系统.例如,system("rm -rf /")除非彻底检查代码,否则程序可能在源代码中有类似的内容,这是不可检测的.

我想到了以下两种方式

  1. 在像VMWare这样的VM中运行它
  2. 在linux上构建一个windows exe并运行wine

两者都不是非常优雅的解决方案,我不能自动化它们.而且,如果是1,它可能会损害VM.

任何帮助,将不胜感激.

我想在我们称之为"沙盒"的程序中运行该程序.

language-agnostic linux gcc sandbox

10
推荐指数
3
解决办法
3167
查看次数

如何为Linux进程禁用套接字创建,用于沙盒?

我正在考虑沙盒化Linux进程的几个选项.使用clone()具有CLONE_NEWNET(等)的选择之一.CLONE_NEWNET确保沙盒进程无法建立或接受真正的网络连接.但我想完全禁用该进程的套接字,甚至bind()是任何端口0.0.0.0,并绑定到Unix doman套接字(甚至匿名).我想这样做是为了防止进程通过绑定到数千个端口来使用过多的内核资源.我怎么做?

一般来说,我对许多沙盒方法感兴趣(即Linux内核提供的方法和强制执行的方法ptrace()),但在这个问题中,我只对沙盒方法的套接字创建方面感兴趣(所以如果你建议使用沙盒)方法,请解释如何防止使用它创建套接字),我对需要内核修补或涉及加载内核模块的方法不感兴趣,内核模块不是Ubuntu Lucid默认二进制内核包的一部分,或者会影响系统上的每个进程.

sockets linux sandbox

9
推荐指数
1
解决办法
5276
查看次数

标签 统计

linux ×4

sandbox ×4

python ×2

c ×1

cgi ×1

gcc ×1

language-agnostic ×1

security ×1

sockets ×1