游戏mod可以创建缓冲区溢出漏洞吗?

时间:2014-01-09 22:01:49

标签: security buffer-overflow secure-coding

我通常不在论坛发帖,因为通常我可以使用Google找到我需要的任何答案。但是,我正在运行的每个搜索都会给我非常具体的结果,例如特定游戏或系统已经存在的缓冲区溢出漏洞,这不是我需要的。

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

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

2 个答案:

答案 0 :(得分:2)

取决于mod系统为游戏工作的方式,以及游戏本身是否为沙盒。重要的是,没有软件是完全安全的。您必须决定自己满意的安全性和可靠性。

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

  1. 游戏可以允许mod访问一组不恰当的许可行为,例如访问文件系统。这可能包括开发人员没有正确地沙盒化mod。
  2. mod可以利用游戏API中的漏洞来访问游戏开发者不想要的操作。这可能是由于API中的错误造成的。
  3. mod可以利用语言引擎中的漏洞(例如,Java有很长的安全漏洞历史)。
  4. mod本身可能容易受到攻击,可能会发动上述攻击之一。
  5. 如果mod系统是基于脚本或基于VM的,例如Lua,JavaScript或Java,我会觉得相对安全的安装mods(只要游戏有一个很好实现的API /沙箱),因为漏洞2-4相对不太可能。

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

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

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

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

答案 1 :(得分:1)

缓冲区溢出漏洞与允许未经检查的内存访问的编程语言相关联。 Minecraft是用Java编写的,这种语言不容易受到缓冲区溢出的影响,所以纯Java模型很可能不会出现类似这种漏洞的东西。

自然地,Java中的程序仍然容易受到其他类型的安全问题的攻击,无论是针对游戏本身(例如,针对Minecraft服务器的游戏帐户登录攻击)还是针对服务器(我不知道任何已知的对于Minecraft来说这是一个例子,但它总是可行的)。运行服务器的常用缓解措施适用,例如,如果可能,请锁定对良好IP的网络访问,以有限用户身份运行服务器等等。