0

我想为应用程序托管服务构建一个相当简单的安全沙箱 - 因此主要目标是:

  1. 在沙盒“中”运行的应用程序无法在系统上安装可执行文件运行所在目录之外的任何内容。
  2. 通常拒绝访问系统(注册表访问等)。
  3. 明确拒绝访问指定目录之外的文件系统(甚至是只读的)。它将是一个在沙箱内运行的 .NET 应用程序,所以我不确定这是否会顺便否认运行时和核心依赖项?

我目前的计划是使用 System.DirectoryServices 命名空间在 .NET 中构建沙箱,方法是:

  • 为每个启动的实例创建一个新的半永久用户帐户
  • 从访客类用户派生它以拒绝对系统的广泛访问
  • 然后专门授予对有限数量的应用程序应该运行的目录的读写访问权限。

有人能看出这个计划有什么特别的缺陷吗?用户帐户的安全性是否足以安全地满足上述要求?我们现在正在使用一个商业软件来处理这个问题(它的沙盒更全面);但它对我们的业务来说不够自动化 - 因此希望将其构建到我们的核心自动化软件中。

4

1 回答 1

0

这不是一个真正的沙箱——如果用户可以在服务器上以访客权限运行恶意软件或更改服务器上的任何内容——他最终可能会接管服务器。我不是在谈论常规应用程序,而是旨在打破您的“沙盒”的应用程序。

如果您想要一个好的沙盒,我认为您应该使用 vmware(或类似的)(无法访问主机)或使用像这样的第 3 方Sandboxie,它已经构建和测试了足够的时间,我希望足够的安全性专家验证它的安全性。

您创建的沙箱的主要目的是什么?

使用类似 vmware 的解决方案 - 应用程序的进程在客户机的上下文中运行,而不是主机,因此以这种方式访问​​主机要困难得多。

使用流畅的操作系统设置(如 win 2k8 服务器核心),您可以在托管它们的单个 win2k8 机器上拥有许多来宾操作系统......

于 2009-12-08T15:52:02.720 回答