Articles of 沙箱

谁可以在Linux共享共享内存?

我正在加强学生代码执行的沙箱。 我觉得我很满意,学生们不能共享文件系统或信号上的数据,因为我发现明确的规则指出这些数据,他们作为不同的非特权用户执行。 然而,我正在很难查看文档来确定什么时候创build共享内存(或更一般的IPC – 队列或信号量),谁可以看到。 如果你创build共享内存,任何人都可以在同一台机器上打开它,或者有什么办法来控制它? 控制是在创build内存的程序中,还是由系统pipe理员限制?

对运行在服务器上的用户编写的node.js脚本进行沙盒处理

我正在开发一个平台,用户可以创build自己的“小部件”,小部件基本上是js片段(将来也会有html和css)。 问题是,即使用户不在网站上,他们也必须运行,所以基本上我的服务将不得不安排这些用户脚本运行。 我试图找出哪个是“沙箱”脚本的最佳方式,我首先想到的是在Docker内部自己的进程上运行的一个想法,所以让我们说用户pipe理以某种方式进入它会是一个虚拟机,希望他会被锁在里面。 我不是一个docker专家,所以我甚至不知道这是否有意义,反正会产生另一个问题,这是纺织数百docker运行1简单的JavaScript代码段。 有没有“安全”的方法呢? 也许在一个空的范围上运行脚本,并以某种方式删除对“require”方法的访问? 另一个要求是在脚本超时的情况下杀死脚本。 编辑: – find这个相关的stackexchange链接

我怎样才能沙箱文件系统的活动,尤其是写?

Gentoo在portage中有一个function ,可以防止和logging在构build和打包目录之外的写入。 Checkinstall能够监视写入,并在完成后打包所有生成的文件。 自动工具具有DESTDIRmacros,使您可以将大部分文件系统活动引导到其他位置。 我怎样才能在Gentoo沙盒方法的安全性上做到这一点? 我可以使用SELinux,rlimit或其他资源限制API吗? C,Python可以使用哪些API? Update0 使用的机制将不需要root权限或任何涉及/持续的系统修改。 这排除了创build用户和使用chroot() 。 请链接到您提到的API的文档,由于某些原因,他们特别难以find。 UPDATE1 这是为了防止事故 。 我不担心恶意代码,只是写的很差。

Linux:是否有可能沙箱共享库代码

我有一个需要通过加载共享库来扩展的进程。 有没有一种方法可以在沙箱环境(不是外部进程)中运行共享库代码,这样,如果发生段错误,它不会使进程崩溃,并且限制了可以分配多less内存,可以使用的CPU周期等等

如何链接本地目录中的共享库,OSX与Linux

我有一些共享/dynamic库安装在沙箱目录中。 我正在构build一些链接库的应用程序。 我遇到了这方面的OSX和Linux之间的区别,我不知道(最好的)解决scheme是什么。 在OSX上,库本身的位置被logging到库中,所以如果你的应用程序链接到它,那么可执行文件知道在运行时在哪里查找库。 这与我的沙箱的预期一样,因为可执行文件看起来像是在系统范围的安装path。 在Linux上我无法得到这个工作。 显然图书馆的位置不在图书馆本身。 据我了解,你必须将包含库的文件夹添加到/etc/ld.so.conf,并通过运行ldconfig重新生成ldcaching。 这似乎并没有为我做伎俩,因为我的图书馆位于用户主目录。 它看起来像ldconfig不喜欢,这实际上是有道理的。 我该如何解决这个问题? 我不想将这些库移出我的沙箱。

像ideone.com和codepad.org脚本

有没有像ideone.com和codepad.org使用的自动编译脚本? (最好是开源的,在安全的环境下执行代码)。

公平,安全,高效,多语言的沙盒

我正在开发一个在线判断器types的系统,可能有100个左右的不可信任的可执行文件将全部同时运行,并评估相同的input数据。 我希望每个可执行文件被限制在一个预定义资源池的CPU,内存,磁盘空间等的相同份额。 例如,如果将资源池设置为机器CPU的3/4,则将运行3 GB的内存,300 GB的磁盘和2个可执行文件,每个CPU将获得3/8的CPU,1.5 GB的内存,150 GB的磁盘。 如果另一个人join,资源将被重新调整为三个相等的片段。 这是为了防止恶意或错误的可执行文件窃取其他人的资源,并为每个人提供相同的资源。 理想情况下,我还希望可执行文件不受单一语言的约束(例如让用户开发自己喜欢的任何东西 – C,C ++,Java,Python等)。 使用整个虚拟机或类似OpenVZ似乎是矫枉过正。 是否有轻量级的替代scheme,对每个可执行文件使用单独的进程,同时限制资源,禁用networking访问,进程产卵等function。 我正在寻找一个轻量级的解决scheme的部分原因是,有相当多的input数据 – 不必将其复制到每个可执行文件,而是让他们从共享内存中读取。

Linux中的沙盒技术:snappy vs flatpak比较?

所以现在xdg-app已经被重命名为FlatPak了 ,除了由Canonical和FlatPak实现的Snappy被Red Hat实现以外 ,谁能提一下每个解决scheme提供/缺less的东西的比较列表?

在非特权名称空间沙箱中安装proc

我正在尝试使用Linux命名空间创build一个沙盒环境。 我已经在https://github.com/swetland/mkboxfind了一个简洁的例子,大概是我想要的,但我想要一个可信的/ proc出现在沙箱里面。 我怎样才能做到这一点? 我尝试绑定安装proc FS“proc”,但失败与EINVAL。 当我试图正常安装“proc”时,它会产生EPERM。 想法?

作为普通的非root用户的沙箱权限下降权限?

是否可以使用一组C库或系统调用来删除POSIX上的所有用户权限,或至less在Linux上? 请注意,我不问如何删除root权限,这是所有其他StackOverflowsearch结果似乎是要求和回答。 我想要切换到用户nobody ,但如果可能的话更强。 也就是说,我想让我的C应用程序执行以下操作: 以普通用户身份运行, 而不是 root ,并且没有setuid文件权限位 保留访问特定文件和打开传出networking连接的能力 自愿并永久失去读写指定(或全部)目录中文件的能力,特别是$HOME 如果可能的话,放弃或沙箱所有其他不必要的能力,如打开一个听acceptsockets 我迄今为止考虑到的不符合法案的事情: 用setuid / setgid切换到用户nobody 普通用户被禁止切换到其他用户(比如nobody ),应用程序不需要root就可以切换到nobody 。 Linux / POSIX.1efunction function只能添加root类权限,不能带走普通用户权限 传统seccomp 我的应用程序需要的不仅仅是exit , sigreturn , read和write 看起来很有趣但是我找不到文档的东西看起来没有维护,或者看起来是不可移植的: 的Seccomp-BPF AppArmor的 grsecurity RBAC /基于angular色的访问控制 那么是否有一个logging良好的,最好是便携式的方式来放弃不重要的用户权限和沙箱进程,而不必先成为root ?