0

我通常不在论坛上发帖,因为通常我可以使用谷歌找到我需要的任何答案。然而,我运行的每一次搜索都给了我非常具体的结果,例如对于特定游戏或系统已经存在的缓冲区溢出漏洞,这不是我需要的。

我有一个家庭网络,包括 Windows Server 2008 R2,我儿子想启动一个 Minecraft 服务器,当然我想让他完全访问,以便他可以学习。但是,我知道每个游戏都是“可修改的”,而且他在很多游戏中都使用了自定义地图等。

我担心的是,我将基于缺乏经验的编程在我的网络上制造安全风险。由于实际编写模块的人可能缺乏经验,让他能够在我的服务器上安装和创建模块可能会打开漏洞(在开放的 Minecraft 端口之外)?或者模组只是不能那样工作,我找不到我的问题的答案,因为它是迟钝的,没有人真正编写模组哈哈?

4

2 回答 2

2

取决于模组系统为游戏工作的方式,以及游戏本身是否被沙盒化。重要的是,没有软件是绝对安全的。您必须决定您满意的安全性和可靠性级别。

模组可以通过多种方式暴露漏洞:

  1. 游戏可能允许 mod 访问一组不适当的许可操作,例如访问文件系统。这可能包括开发人员没有正确地沙盒化 mod。
  2. 该模组可以利用游戏 API 中的漏洞来访问游戏开发者不打算执行的操作。这将是由于 API 中的错误。
  3. 该模组可以利用语言引擎中的漏洞(例如,Java 的安全漏洞由来已久)。
  4. mod 本身可能容易受到攻击,并且可以发起上述攻击之一。

如果模组系统是基于脚本或虚拟机的,例如 Lua、JavaScript 或 Java,我会觉得安装模组相对安全(只要游戏有良好实现的 API/沙箱),因为漏洞利用 2-4 相对不太可能。

(我对原生代码模组/插件的理解有限,但我很确定如果你想运行原生模组,你必须信任它。即使你这样做了,它仍然可能是可利用的。)

我对 minecraft mods 的理解是它们是用 java 编写的。我对 Mojang 人的感觉是他们知道自己在做什么,所以如果他们的 mod API 没有特别好的设计和实现,我会感到惊讶。话虽如此,安装模组必然会带来安全风险。

如果这种风险是不可接受的,您可以通过向系统引入深度来降低它。为什么不在虚拟机中运行你的 minecraft 服务器,对网络的访问受限(例如,只有所需的端口)?这样,漏洞的影响就大大降低了。

我建议在 VirtualBox 上创建一个 Ubuntu VM(因为它们都像啤酒一样免费),但你可以将它安装在你喜欢的任何操作系统上。

于 2014-01-09T22:50:41.063 回答
1

缓冲区溢出漏洞与允许未经检查的内存访问的编程语言相关联。Minecraft 是用 Java 编写的,Java 是一种不易受缓冲区溢出影响的语言,因此纯 Java 模组不太可能出现任何类似此类漏洞的情况。

自然地,Java 中的程序仍然容易受到其他类型的安全问题的影响,无论是针对游戏本身(例如,存在针对 Minecraft 服务器的游戏帐户登录漏洞)或针对服务器(我不知道任何已知的这种情况)对于 Minecraft,但总是有可能的)。运行服务器的通常缓解措施适用,例如,如果可能的话,锁定对良好 IP 的网络访问,以受限用户身份运行服务器等等。

于 2014-01-09T22:48:14.433 回答