模组玩家指南(关于CurseForge及Bukkit上的恶意文件问题)
模组玩家指南
搬运自Fractureiser Investigation项目:https://github.com/fractureiser-investigation/fractureiser/blob/main/docs/users.md
如果你只通过官方启动器或 Prism 等可信启动器玩原版游戏,并且从未接触过MOD:你是100%安全的,目前请远离MOD。
如果你是一名使用mod版本的《我的世界》玩家,你需要验证你是否感染了Fractureiser恶意软件,以确保你的电脑和个人数据没有风险。您可以按照以下说明进行操作。
它还在继续吗??
对,你可以在之后查看。
如果您对Fractureiser有任何疑问,请完整阅读本页,包括常见问题解答 最后,我们得到的大多数问题都在这里得到了答案。
到底发生了什么?
恶意软件的创建者最初将几个看起来无辜的恶意mod和插件上传到了mod托管网站CurseForge和插件中心 dev.craftbukkit.org(而不是Bukkit软件本身)。一位知名的整合包开发人员下载了其中一个mod进行试用,这些mod在他们不知情的情况下感染了他们计算机中的文件——其中包括一个工作项目的副本,然后将其作为一个看似轻松的文件上传到CurseForge,其中包括病毒。
随后,CurseForge和 dev.craftbukkit.org 上的用户在其他一些案例中重复了这一过程,感染了几个流行插件和mod的副本。早在4月中旬就有恶意插件和MODJAR的报告
除此之外,恶意软件作者还试图对CurseForge上的高流量内容创作者帐户进行暴力访问。我们目前不确定漏洞是由于暴力企图还是由于帐户所有者感染了特洛伊木马。
这个恶意软件由多个“阶段”组成,每个阶段负责下载和运行下一个。总的来说,有三个已知的阶段(阶段1、2和3),受感染的mod文件作为“阶段0”来启动整个过程。
阶段3是恶意软件的“主要部分”,我们有证据表明它试图做以下所有的事情:
传播到文件系统中的所有 jar文件,可能会感染非从CurseForge或BukkitDev或其他Java程序下载的mod
窃取许多web浏览器的cookie和登录信息
将剪贴板中的加密货币地址替换为可能由攻击者拥有的替代地址
窃取Discord的证书
窃取Microsoft和Minecraft的证书
(更多信息请参阅技术细节: https://github.com/fractureiser-investigation/fractureiser/blob/main/docs/tech.md)
因为它的行为,我们非常确信这是一次针对mod Minecraft生态系统的针对性攻击。很糟糕。
在进一步通知之前,请谨慎下载Minecraft mod,无论来源如何。 虽然此恶意软件的控制服务器目前处于离线状态,过去2-3周内从Curseforge或Bukkit插件库下载的任何内容都应被视为潜在恶意。一些恶意软件扫描器已经开始在它们的数据库中添加签名,但在所有的扫描器都启用之前,请谨慎行事。
在这一点上,我们不能确信任何托管服务都不受影响。无论您使用什么网站,请谨慎使用。甚至Maven仓库也可能被感染,这种恶意软件可以追溯到几个月前。
目前,新的感染是不可能的,因为攻击者的服务器已经关闭,现有的感染可能仍然活跃。
等等,“阶段”是什么东西?

我被感染了吗?
恶意软件有多个阶段,所以问你是否被感染实际上是两个问题
我的mod文件中有阶段0吗?
现在有各种各样的扫描器存在,获取一个mod文件,并检测它是否被恶意软件的阶段0感染。
Overwolf的扫描器: https://github.com/overwolf/jar-infection-scanner/releases
这是检查整个游戏的推荐选项——只需将它指向CurseForge安装文件夹或其他保存实例的地方
这是一个独立程序,不需要安装Overwolf应用程序
douira的基于网站的在线扫描仪: https://douira.github.io/fractureiser-web-detector/
cortex的nekodetector: https://github.com/MCRcortex/nekodetector/releases
单击“Assets”以显示runnable文件——需要安装Java
在隔离的情况下,如果文件被删除并且从未运行,那么阶段0感染并不危险。
我的系统上有阶段2文件吗?
第2阶段文件在你的系统上意味着恶意软件的第0阶段和第1阶段成功运行。 如果存在,则很可能完全感染,应该继续阅读文档中的说明。
许多病毒扫描器开始检测第二阶段的文件。如果你收到这样的文件并且使用检查器时检查器发出发现并删除的警告,请进入“我被感染了,现在怎么办?”一节。
否则,你可以根据自己的平台手动执行以下操作:
Windows 指导
使用Windows键打开开始菜单,并输入%localappdata%——它应该如下所示:

在本地的appdata文件夹中,你必须确保你的资源管理器被设置为同时查看“隐藏项”和“受保护的操作系统文件”。
这可以从查看 >选项 找到
如果你不确定如何做到这一点,可以在这里: https://youtu.be/KLTlTlnXeKs找到视频解释。
Windows 11用户可以在ribbon顶部的“查看”按钮以及最右侧的“…”按钮下找到相同的选项
找到一个名为Microsoft Edge的文件夹。“Microsoft”和“Edge”之间的空间很重要——因为“MicrosoftEdge”是Edge使用的合法文件夹。病毒就这么命名来伪装自己。
合法的文件夹也可以被称为Microsoft\Edge (Microsoft文件夹中的Edge文件夹)。
合法的文件夹并不必须存在——如果你没有任何与Edge相关的文件夹,你是安全的。
两个合法文件夹可以同时存在,这也是可以的。
如果存在Microsoft Edge,则说明您被感染了。如果是这种情况,永久删除文件夹和其中的所有内容。
如果无法删除该文件夹,则必须停止当前通过任务管理器运行的任何Java程序。
MacOS 信息
恶意软件似乎不会影响MacOS,所以你应该不会有问题。为了以防万一,请时不时地回到这里。
Linux 指导
首先,确保你使用的列出文件的方法能够查看隐藏的文件。 大多数GUI文件管理器都有快捷键Ctrl+H来切换隐藏文件。如果在终端上执行此操作,请在相应的目录中使用ls -A,或者使用ls -lha获取更详细的列表。
如果存在以下任何文件,则说明您已被感染。如果是这样,则删除它们:
~/.config/systemd/user/systemd-utility.service
/etc/systemd/system/systemd-utility.service
~/.config/.data/lib.jar
这样做之后,如果适用,请检查您的journalctl以查看任何您可能无法识别的更改。您可以使用命令journalctl -exb(用于系统日志)和journalctl -exb——user(用于用户日志)来执行此操作。运行以下命令刷新systemd服务:
脚本
如果你不知道如何运行PowerShell或Bash脚本,这些不适合你。自动化的PowerShell或Bash脚本也可以在PrismLauncher上找到https://prismlauncher.org/news/cf-compromised-alert/#automated-script 为您检查阶段2,如果您有技术诀窍运行它们。Overwolf (Curseforge的母公司)也发布了一个c#阶段2检测工具:https://github.com/overwolf/detection-tool
我被感染了,怎么办?
重要:我们目前还不知道这一切能做到什么程度,也不知道其目的是什么,因此在找到消除任何症状的完全方法之前,应该非常谨慎。这里所述的一切仅仅是我们所知的——如果发现任何关键信息,请密切关注团队的更新沟通。
如果你在你的系统上找到了来自Fracreiser的阶段2文件,很可能阶段3代码已经运行并感染了你的电脑。 你现在最好的选择是假设系统上的所有东西都被完全破坏了。你应该:
备份任何你不想丢失在驱动器或外部磁盘上的东西(无论如何,你应该定期这样做!)
使用一个单独的设备,更改你在旧设备上登录的所有服务的密码(Discord, email等)。最好使用像BitWarden: https://bitwarden.com这样的密码管理器。
如果您还没有为每个支持双因素身份验证的服务(Authenticator app或SMS)使用双因素身份验证,请立即开始这样做
如果您有能力,请联系您所在地区的专业服务,对您的机器进行适当的诊断,以检查任何可疑的情况,或者作为安全的默认做法,只需清除并重新安装系统。
如果你没有被感染,请阅读下面的部分,因为其中的步骤也适用于你。
我没被感染现在怎么办
如果你在过去的几个月里玩过mod,目前你能做的绝对最安全的事情是根本不启动Minecraft。是的,甚至原版。
话虽如此,如果一开始什么都没发现,那么很可能什么都没发生。 如果你还想玩这个游戏:
根据我们目前掌握的知识,这并没有风险,但我们不能保证这是准确的——你是自愿将自己置于风险之中。
在每次会话后,检查上一步中的第二阶段感染文件,以确保从那以后没有发生任何事情
在任何情况下,不要下载或更新你可能使用的任何mod、整合包或插件,甚至不要运行你下载但从未运行过的任何插件——坚持使用你已经使用过的实例,并且只使用那些实例。
常见问题
CurseForge被黑了吗?
CurseForge本身没有受到影响,只有个人用户。这不是CurseForge的问题,他们只是碰巧发生在这个地方。CurseForge也发表了一篇文章,从他们的角度描述了情况,并正在部署对策。https://support.curseforge.com/en/support/solutions/articles/9000228509-june-2023-infected-mods-detection-tool/
Modrinth还好吗?
Modrinth对过去10个月的上传进行了全面扫描,没有发现受感染的项目。我们仍然建议在下载任何与mod相关的东西时保持极度谨慎。没有mod被感染的事实完全是运气。
Modrinth更安全吗?
这不是网站层面的问题,Modrinth和CurseForge一样安全。
CurseForge是怎么让这事溜走的?
对于自动化系统来说,阶段0 感染运行的代码并不一定是可疑的,很可能是其他mod会使用的代码。事实上,早期用于确定 阶段0 感染的启发式方法在诸如夸克之类的流行mod上有大量的错误标志。
实际上,这种类型的平台预防是不可行的,因为你可以以无限种不同的方式布局代码来隐藏你的意图。
哪些反病毒程序可以捕获这种病毒?
就在我们说话的时候,新的正在添加中,现在最好做上面的手动验证,而不是依赖于自动验证。
多人游戏安全吗?
是的,如果你不在其他地方下载mod,你就不会被多人服务器感染。
基岩版安全吗?
是的,这只影响Java。
Lunar或Badlion等其他游戏客户端安全吗?
参见下面的观点。
Optifine安全吗?/钠安全吗?/Iris安全吗?/机械动力安全吗?/Essential安全吗?/(任何mod)安全吗?
我们目前还不能完全确认任何一个mod的安全性。
病毒的 第3阶段 的功能之一是感染计算机上能找到的尽可能多的.jar。它可以感染所有的.jar,包括Minecraft本身(原版/修改), Minecraft模组, Spigot插件和无关的Java应用程序。因此,如果你的电脑有病毒的 阶段3 部分,你下载的mod是否“安全”无关紧要——它会被感染。首先检测并移除Fractureiser的后期阶段。
目前,所有已知的被感染的mod已经从CurseForge中移除。CurseForge发布了已知感染mod的列表,并已将它们从网站上删除。Modrinth已经扫描了近10个月的mod,没有发现任何被感染的mod。https://support.curseforge.com/en/support/solutions/articles9000228509-june-2023-infected-mods-detection-tool/
这不能保证没有鬼鬼祟祟的人通过。要检查给定的jar是否包含Fractureiser的 阶段0,请检查“我被感染了吗?”部分,现在下载任何与mod相关的东西都要非常小心。
感染的范围有多广?
CurseForge报告说,在整个感染期间,被感染的文件被下载了大约6000次。引用CF的Discord公告:
这占CurseForge《我的世界》每日下载量的0.015%。
有人想破坏1.20的发布事件吗?
这似乎是一个巧合——在1.20版本发布之前,恶意软件活动已经活跃了相当长的一段时间。
技术常见问题解答
Fractureiser能脱离虚拟机吗?
不能。
stage3 确实包含尝试手动逃离“Windows沙盒”: https://learn.microsoft.com/en-us/windows/security/application-security/application-isolation/windows-sandbox/windows-sandbox-overview的代码。它不会自动发生。如果病毒是在Windows沙盒中运行的,它会试图扰乱剪贴板,诱使你粘贴一个指向恶意软件的快捷方式。
请注意,这种“剪贴板逃逸”并不是什么新鲜事,只要在主机和客户操作系统之间不共享剪贴板,就很容易击败它。使用比“Windows沙盒”更重量级的虚拟机,禁用VirtualBox的“客户插件”或Hyper-V的“集成服务”等功能。
(真实的:虚拟机越狱漏洞价值数百万美元,不会用在《我的世界》这种孩子游戏上,我们有理由相信这个恶意软件的作者首先不是一个很好的程序员。)
这是通过网络传播的吗?
据我们所知,Fractureiser并不包含网络传播功能,但也不是完全不可能。 与我们合作的一个安全研究人员收到了一个警报,但它最终是关于完全无关的恶意软件,碰巧使用了类似的文件名。这只是一个假警报。
CurseForge和Modrinth在做什么?
CurseForge已经开发了一个开源的阶段2/3检测工具: https://github.com/overwolf/detection-tool和阶段0检测工具: https://github.com/overwolf/jar-infection-scanner,已经扫描了所有上传的mods/插件的阶段0感染,并删除了所有已知感染病例。
Modrinth还扫描了10个月前上传的mods/插件,没有发现任何阶段0感染。
这两个平台都在考虑在mod提交通道中引入某种自动化的“病毒扫描”过程。这很难,因为这样的Java恶意软件通常是定制的。
我应该在防火墙/路由表中阻止哪些IP地址和url ?
我们观察到,与Fractureiser相关的代码通过各种端口连接到这些url和地址。
阶段0感染的mods的硬编码地址,以及第一个观察到的命令和控制 服务器:85.217.144.130
第二个可观察的命令与控制服务器:107.189.3.101
阶段1试图使用的备用URL,以及stage2命令和控制主机名:files-8ie.pages.dev
还有证据表明它试图通过端口25575连接主机名v2202209151437200088——未知原因;可能是旧版本的恶意软件。
以下是一些与skyrage相关的防火墙地址(同样,skyrage不太可能通过这个向量下载到任何人的电脑上,但这些地址不会带来任何好处):
95.214.27.172
connect.skyrage.de
t23e7v6uz8idz87ehugwq.skyrage.de
qw3e1ee12e9hzheu9h1912hew1sh12uw9.skyrage.de
老实说,可能只是封锁了所有的skyrage.de
不用说,你不应该参观这些地方。
我们可以让它反对CurseForge/Modrinth规则,让你的mod下载其他文件吗?
上传恶意软件已经违反了CurseForge的规定。还有许多mod下载文件的合法用例,这也会扼杀文件。
是否有可能在modloader本身包含某种“反病毒”或“沙盒”?
“反病毒”:可能没有,原因和普通的反病毒软件没有检测到一样。反病毒软件只能检测已知的恶意软件,而不能检测未知的恶意软件。
沙盒:在加载一个类之前要检查“这个类是否包含安全的代码”,这是一种刺激恶意软件开发人员和modloader开发人员进行猫捉老鼠游戏的好方法。
要禁止Java代码使用特定的类(比如URLClassLoader)是非常困难的,因为你也可以通过Class. forName来引用它。(它有大量合法的用例),如果你禁止或拒绝列出该类,你通常可以在classpath中找到其他类愿意调用Class. forName。对于你来说,试图摆脱这些小玩意就像一场无休止的打地鼠游戏。
对Java进行沙盒化几乎是不可能的——请参阅“逃离Java沙盒的二十年”: https://www.exploit-db.com/papers/45517之类的文章。https://www.exploit-db.com/papers/45517
Java mod只是任意代码的打包:把它们当作一个.exe,它们可以做任何事情。
为什么mod没有加密签名以防止恶意软件对它们进行篡改?
部分问题在于仅仅签名并不能防止恶意软件——经过加密签名的病毒仍然是病毒——而且如果自我签名被允许,它也不能防止篡改——病毒有可能简单地从jar包(“delete META-INF”)上取下数字签名,然后用自己的密钥重新签名。(这也不是假设:Fractureiser确实包含代码,可以从它感染的jar中删除数字签名。)
具有在线签名验证的签名mod确实看起来是一个有希望的前进方向,尽管它不是没有权衡。将有一个会议: https://github.com/fractureiser-investigation/fractureiser/blob/main/docs/2023-06-08-meeting.md,来自mod生态系统的许多不同代表将讨论如何前进。
有没有可能禁止mod下载可执行代码?
这是不可能的。在下载文件之前,你无法知道它是否包含可执行代码,而在下载文件之后,你无法控制对它的处理。
如果我的mod下载了一个Java类文件呢?
如果是一个Java类文件,但它的拼写是反的,所以一开始看起来不像一个类文件?
加密的Java类文件呢?
在你的计算机上编译的Java源代码怎么样?
Python脚本呢?
如果在一个包含英语散文的文件中,单词数为偶数的句子对应0,单词数为奇数的句子对应1,该怎么办?——即使它是一个散文文档,如果我愿意,我也可以将它重新组装成一个.exe文件。
这和流传的Spigot插件恶意软件有关吗?
有可能!这与现有的恶意软件“skyrage”有一些联系——恶意软件的作者上传了一个与skyrage相关的.jar到他们的备份命令和控制服务器,试图扩展攻击,但没有成功,不久CloudFlare就将其关闭了。
我们还没有收到任何人通过这个媒介被Skyrage感染的任何报告。作者更新了他们的CloudFlare URL,在阶段0感染的mods中硬编码的IP地址被删除后的很长一段时间内指向Skyrage。攻击者试图提供这个jar基本上是一件有趣的事情。
Skyrage是一个现有的,经过充分研究的恶意软件,你可以在这里: https://ljskatt.no/analysis/updater_class/找到更多关于它的信息。