游戏mods会造成缓冲区溢出漏洞吗



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

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

我担心的是,我会基于缺乏经验的编程在我的网络上制造安全风险。让他能够在我的服务器上安装和创建mod是否会因为实际编写mod的人可能缺乏经验而潜在地打开漏洞(在开放的Minecraft端口之外)?或者mod就是不能这样工作,我找不到问题的答案,因为它是弱智的,没有人真正编程mod?

取决于mod系统在游戏中的工作方式,以及游戏本身是否是沙盒。重要的是,没有任何软件是完全安全的。你必须决定你喜欢什么级别的安全性和可靠性。

mod有几种方式可以暴露漏洞:

  1. 游戏可能允许mod访问一组不适当的权限操作,例如访问文件系统。这可能包括开发人员没有正确地对mod进行沙盒处理
  2. mod可以利用游戏API中的漏洞来访问游戏开发者不打算执行的操作。这可能是由于API中的一个错误造成的
  3. mod可能会利用语言引擎中的漏洞(例如,Java有很长的安全漏洞历史)
  4. mod本身可能容易受到攻击,并且可以发动上述攻击之一

如果mod系统是基于脚本或虚拟机的,如Lua、JavaScript或Java,我会觉得安装mod相对安全(只要游戏有一个实现良好的API/沙箱),因为使用2-4的可能性相对较小。

(我对原生代码mods/plugins的理解是有限的,但我敢肯定,如果你想运行原生mod,你必须信任它。即使你这样做了,它仍然可能被利用。)

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

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

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

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

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

最新更新