背景:人工智能竞赛。用户上传一个具有实现提供接口的类的dll,然后竞争管理器实例化该类并在接口上调用各种方法。
显然,这意味着我有意允许用户运行他们喜欢的任何代码,只要他们将代码包装在一个看起来像我的界面的入口点上。
目前这是公司内部的事情,所以我们百分之百地信任所有的员工(请不要讨论这个问题),但是如果能让它更公开的话,那就太好了。
有可能让这样的系统安全吗?怎样才能使dll成为沙箱呢?它目前正在Azure运行。我想这个盒子是由一些自动化的Azure东西备份的吧?(我没有设置Azure盒子)
我能阻止他们和盒子上的其他东西互动吗?我能阻止他们进入Azure盒子以外的任何东西吗?( C)我能否阻止他们访问Azure备份(也就是说,如果我说我不在乎他们是否破坏了盒子,‘因为我可以从备份中恢复,那么这样做安全吗?)
发布于 2017-11-12 13:26:15
由于您已经在虚拟环境中运行,最简单的方法是为每个用户提供一个单独的、小的、可使用的环境。如果您的操作团队很优秀,他们将使用标准模板和/或脚本在任何情况下创建和删除虚拟环境,因此这应该很简单。
如果您使用的是Linux服务器,最简单的方法是通过Docker进行虚拟化。
https://security.stackexchange.com/questions/173219
复制相似问题