我应该把一个可能不安全的程序放到网上吗?

信息安全 应用安全
2021-08-14 06:37:06

OK:前锋。我不是安全专家。我是一所高中从事一个项目的四个孩子之一。我没有任何涉及安全问题的现实生活中的经验。

我有一个用于自动程序分级的项目。学生上传代码,我们对其进行编译和测试。显然,存在人们上传恶意代码的威胁。所以我们最近所做的是让代码runas在一个几乎没有权限的用户的命令后面执行。它似乎有效,但话又说回来,我们知道什么?

现在我的导师希望我们继续前进,将我们的项目放到网上,在互联网上可用。我担心我们的项目可能不安全,我们学生没有资格评估程序的安全性。

一个基于简单runas的“安全”系统是否就足够了,还是我们应该推迟将其上线?

编辑:澄清一下,它的工作方式是人们将程序上传到我们的服务器,然后在本地执行并显示结果。因此,如果上传的代码是恶意的并且有效,那么我们的服务器就会被接管。

2个回答

“runas”只会保护您免受部分威胁。

有几种方法可以处理这个问题。您需要锁定防火墙以阻止您不希望的传出连接。需要打开日志记录和审核(并进行审查!!)以捕获篡改。

如果服务器是虚拟机,您可以让它每小时恢复一次保存的快照,这意味着任何恶意代码都无法持久存在。

您能否保留上传代码的副本和上传代码的 IP 地址以供取证审查?

在任何情况下,您都需要将服务器视为已经受到威胁并对其进行处理。将其隔离在其所在的网络上,并定期或在项目结束时将其从轨道上核弹。确保服务器上没有其他运行无法处理的东西被接管(即让您的服务成为服务器上唯一运行的东西)。

在虚拟机中运行编译后的软件,显示输出,然后在每次执行后将虚拟机还原到上一个快照。

就像是:

  1. 在服务器上编译可执行文件
  2. 通过网络将其复制到虚拟机上
  3. 在 VM 上激活一个命令,该命令将在 5 秒内运行编译后的可执行文件
  4. 在服务器上执行一个命令,将虚拟机与网络隔离
  5. 等待VM执行程序
  6. 从 VM 获取输出(屏幕截图?远程控制/查看器?)