在服务器上编译并运行不受信任的代码

在服务器上编译并运行不受信任的代码

在教授计算机科学时,学生将他们的代码提交到我们的服务器,然后我们编译并运行单元测试。类似于 Codeforces、Codewars 和 HackerRank。

我们应该如何为此配置服务器?每次提交代码时启动一个新的最小 VM?是否有适合此目的的 VM 系统和 Linux 发行版?

或者是否有其他更有效的机制来实现此目的?是否可以配置用户帐户来安全地处理此问题?我们很乐意定期回收服务器。

我们不受任何数据中心或服务的约束。如果可行的话,我们很乐意使用 AWS Lambda 之类的东西。

答案1

AWS Lambda 最近推出了一项代码签名功能,以确认代码未经修改且来自受信任的发布者:https://aws.amazon.com/blogs/aws/new-code-signing-a-trust-and-integrity-control-for-aws-lambda/

您可以在 Lambda 之上添加一层来获取学生签名的代码,使用它创建一个 Lambda 函数,然后调用该函数来运行测试。

编辑:Lambda 将在沙盒容器中运行代码,并且 Lambda 函数的配置本身可以由管理员强制执行。

相关内容