.net 通过自动创建和限制用户帐户在Windows 2008上构建简单的安全沙盒?

.net 通过自动创建和限制用户帐户在Windows 2008上构建简单的安全沙盒?,.net,security,sandbox,directoryservices,user-accounts,.net,Security,Sandbox,Directoryservices,User Accounts,我想为应用程序托管服务构建一个相当简单的安全沙盒-主要目标如下: 在沙箱中运行的应用程序无法在可执行文件所在目录之外的系统上安装任何内容。 对系统的访问通常被拒绝,如注册表访问等。。 对文件系统的访问,即使是指定目录之外的只读访问,也会被明确拒绝。它将是一个在沙箱中运行的.NET应用程序,因此我不确定这是否会意外地拒绝运行时或核心依赖关系? 我目前的计划是通过以下方式使用System.DirectoryServices命名空间在.NET中构建沙箱: 为每个启动的实例创建新的半永久用户帐户 从gu

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

在沙箱中运行的应用程序无法在可执行文件所在目录之外的系统上安装任何内容。 对系统的访问通常被拒绝,如注册表访问等。。 对文件系统的访问,即使是指定目录之外的只读访问,也会被明确拒绝。它将是一个在沙箱中运行的.NET应用程序,因此我不确定这是否会意外地拒绝运行时或核心依赖关系? 我目前的计划是通过以下方式使用System.DirectoryServices命名空间在.NET中构建沙箱:

为每个启动的实例创建新的半永久用户帐户 从guest类用户派生它,以拒绝对系统的广泛访问 然后专门授予对应用程序应该运行的有限数量的目录的读写访问权。
有人能看出这个计划有什么特别的缺陷吗?用户帐户安全性是否足以安全满足上述要求?我们现在正在使用一个商业软件来处理这个问题,它的沙箱功能更加全面;但是对于我们的业务来说,它的自动化程度还不够-因此我们希望将其构建到我们的核心自动化软件中。

这不是一个真正的沙箱-如果用户可以在服务器上使用来宾权限运行恶意软件或更改服务器上的任何内容-他可能最终能够接管服务器。我不是说普通的应用程序,而是设计用来打破沙箱的应用程序

如果您想要一个好的沙盒,我认为您应该使用vmware或类似的软件,而不需要访问主机,或者使用像这样的第三方软件,它经过了足够长的时间的构建和测试,我希望有足够的安全专家验证它的安全性

您正在创建的沙箱的主要用途是什么

使用类似vmware的解决方案—应用程序的进程在来宾计算机的上下文中运行,而不在主机上运行,因此以这种方式访问主机要困难得多


使用像win 2k8 server core这样精巧的操作系统设置,您可以在一台win2k8机器上拥有多个客户操作系统,并托管这些操作系统…

一句话-一切都是不可靠的vmware这一区别只是您在这方面所需的工作量。好吧,虽然恶意软件可以在它可以访问的区域内运行,但它不能将自己设置为在服务器重启后重启。无法写入注册表或启动目录例如,我可能需要有一定专业知识的人告诉我这是否可以直接利用,或者安全漏洞是否需要在操作系统级别上进行额外利用。Sandboxie实际上是我们现在正在使用的——但它至少不是自动化的;这意味着我们无法将其放入部署脚本中,因此需要繁琐的手动操作。攻击过程-获取来宾访问->然后提升到特权用户->而不是入侵系统。您不能假设guest无法更改注册表-windows server历史上有许多此类攻击的例子-在您的情况下-您授予guest访问权限,现在攻击者所需要的只是提升代码/exe/script等等。。。我想这可能存在于某个地方。**免责声明**-大多数攻击者会发现很难破解最新的操作系统win2k8,该操作系统每周都会进行完整的修补,具有简单的第三方ID和良好的防病毒功能,并且每天都会更新。如果你的攻击者档案是想成为黑客的,那么你就可以去了。如果你保护一家银行。。。我不会这么做的,对。通过额外的漏洞提升代码是一个更大的问题-但是,是的,我们会定期对系统进行修补。