我想创建通过一些队列任务接收的 Windows 服务,以同时运行许多控制台应用程序。我也想让我的服务器安全。仅仅因为任何人都可以将病毒上传到我的服务器并安排它运行。应用程序可以用 Java、C# 编写,它们也可以是原生应用程序,用纯 C 编写。
最简单的方法是使用虚拟机运行应用程序。但是 VM 需要大量资源来运行,事实上,对于每个 VM,我将运行单独的 Windows 副本,这会占用大量内存和处理器资源。
第二种方法是编写文件系统微过滤内核驱动程序来控制文件系统和Windows注册表。我可以制作隔离文件夹并限制对其他文件夹的所有访问。我也可以为每个正在运行的线程和进程设置配额。但我无法控制内存,它可以用来破解我的沙箱。
理想情况下,我需要一个可以在沙箱中运行应用程序的解决方案,还需要控制这个沙箱(清理它,将新应用程序部署到其中,运行刚刚部署的应用程序,从沙箱复制日志文件)。