想了解沙盒

时间:2010-01-03 12:03:34

标签: security sandbox

我想了解更多有关沙盒的信息。不仅仅是关于它。我想了解一下,我将能够编写简单沙箱。

令人惊讶的是,任何地方都没有任何信息。甚至维基百科的文章都不好。

任何人都可以向我推荐好材料。我知道它非常先进的概念。那么,学习和学习的先决条件是什么?掌握它。

7 个答案:

答案 0 :(得分:7)

了解API挂钩,例如 sandboxie 挂钩Windows内核过滤所有对文件系统的api调用并将结果重定向到沙箱,您可以挂钩API并过滤它,只传递有效参数,返回错误无效通话

对于API挂钩,你会在网上找到很多资料,试试codeproject.com

答案 1 :(得分:4)

答案 2 :(得分:3)

您也可以查看jails in FreeBSD。这些是相当于沙盒的FreeBSD。

source code for jail可用(尽管您还必须了解其余的FreeBSD代码。)

答案 3 :(得分:3)

一个简单的沙箱只是一个环境,你让'某些东西'执行,但限制它可以做什么。

通常,这个“某事”是一种已经存在的语言,如Java,JavaScript,C#或本机代码。 Java为applet等提供了“沙盒”api,而且.NET具有各种“信任”级别,JavaScript具有解释器(浏览器)的界限。

所以除非你还有一个想要沙箱的语言,否则“写”你自己的沙箱有点奇怪。

你有这样的语言吗?你想了解什么,特别是?

答案 4 :(得分:2)

非常取决于您想要沙盒的内容。如果它是一个具有多种接口/语言的完整系统,您真的不想重新发明轮子,而是在VirtualBoxQEmusome other alternative中运行虚拟机

在任何情况下,沙箱 IS ,至少在某种程度上是您应该“正在运行”的系统的虚拟化......

如果您需要沙盒应用程序使用单一(解释)语言,修改解释器声音就像一种明智的方法。

答案 5 :(得分:1)

答案可能是语言特定的。不幸的是,大多数语言都没有内置的沙盒功能。但功能语言往往足够强大,可以在不扩展语言的情况下从头开始构建。

在Tcl中,基本机制是创建从属解释器:

interp create -safe sandbox
interp eval sandbox $set_up_code
set result [interp eval sandbox $unsafe_code]

答案 6 :(得分:1)

前几天我写了一篇overview of the ways of sandboxing within Linux,它链接到了很多关于不同技术的参考资料。类似的方法适用于其他操作系统。我希望它有所帮助 - 我找不到太多全面记录的文件。