模組玩家指南(關(guān)于CurseForge及Bukkit上的惡意文件問題)
模組玩家指南
搬運自Fractureiser Investigation項目:https://github.com/fractureiser-investigation/fractureiser/blob/main/docs/users.md
如果你只通過官方啟動器或 Prism 等可信啟動器玩原版游戲,并且從未接觸過MOD:你是100%安全的,目前請遠離MOD。
如果你是一名使用mod版本的《我的世界》玩家,你需要驗證你是否感染了Fractureiser惡意軟件,以確保你的電腦和個人數(shù)據(jù)沒有風(fēng)險。您可以按照以下說明進行操作。
它還在繼續(xù)嗎??
對,你可以在之后查看。
如果您對Fractureiser有任何疑問,請完整閱讀本頁,包括常見問題解答 最后,我們得到的大多數(shù)問題都在這里得到了答案。
到底發(fā)生了什么?
惡意軟件的創(chuàng)建者最初將幾個看起來無辜的惡意mod和插件上傳到了mod托管網(wǎng)站CurseForge和插件中心 dev.craftbukkit.org(而不是Bukkit軟件本身)。一位知名的整合包開發(fā)人員下載了其中一個mod進行試用,這些mod在他們不知情的情況下感染了他們計算機中的文件——其中包括一個工作項目的副本,然后將其作為一個看似輕松的文件上傳到CurseForge,其中包括病毒。
隨后,CurseForge和 dev.craftbukkit.org 上的用戶在其他一些案例中重復(fù)了這一過程,感染了幾個流行插件和mod的副本。早在4月中旬就有惡意插件和MODJAR的報告
除此之外,惡意軟件作者還試圖對CurseForge上的高流量內(nèi)容創(chuàng)作者帳戶進行暴力訪問。我們目前不確定漏洞是由于暴力企圖還是由于帳戶所有者感染了特洛伊木馬。
這個惡意軟件由多個“階段”組成,每個階段負責(zé)下載和運行下一個??偟膩碚f,有三個已知的階段(階段1、2和3),受感染的mod文件作為“階段0”來啟動整個過程。
階段3是惡意軟件的“主要部分”,我們有證據(jù)表明它試圖做以下所有的事情:
傳播到文件系統(tǒng)中的所有 jar文件,可能會感染非從CurseForge或BukkitDev或其他Java程序下載的mod
竊取許多web瀏覽器的cookie和登錄信息
將剪貼板中的加密貨幣地址替換為可能由攻擊者擁有的替代地址
竊取Discord的證書
竊取Microsoft和Minecraft的證書
(更多信息請參閱技術(shù)細節(jié): https://github.com/fractureiser-investigation/fractureiser/blob/main/docs/tech.md)
因為它的行為,我們非常確信這是一次針對mod Minecraft生態(tài)系統(tǒng)的針對性攻擊。很糟糕。
在進一步通知之前,請謹慎下載Minecraft mod,無論來源如何。 雖然此惡意軟件的控制服務(wù)器目前處于離線狀態(tài),過去2-3周內(nèi)從Curseforge或Bukkit插件庫下載的任何內(nèi)容都應(yīng)被視為潛在惡意。一些惡意軟件掃描器已經(jīng)開始在它們的數(shù)據(jù)庫中添加簽名,但在所有的掃描器都啟用之前,請謹慎行事。
在這一點上,我們不能確信任何托管服務(wù)都不受影響。無論您使用什么網(wǎng)站,請謹慎使用。甚至Maven倉庫也可能被感染,這種惡意軟件可以追溯到幾個月前。
目前,新的感染是不可能的,因為攻擊者的服務(wù)器已經(jīng)關(guān)閉,現(xiàn)有的感染可能仍然活躍。
等等,“階段”是什么東西?

我被感染了嗎?
惡意軟件有多個階段,所以問你是否被感染實際上是兩個問題
我的mod文件中有階段0嗎?
現(xiàn)在有各種各樣的掃描器存在,獲取一個mod文件,并檢測它是否被惡意軟件的階段0感染。
Overwolf的掃描器: https://github.com/overwolf/jar-infection-scanner/releases
這是檢查整個游戲的推薦選項——只需將它指向CurseForge安裝文件夾或其他保存實例的地方
這是一個獨立程序,不需要安裝Overwolf應(yīng)用程序
douira的基于網(wǎng)站的在線掃描儀: https://douira.github.io/fractureiser-web-detector/
cortex的nekodetector: https://github.com/MCRcortex/nekodetector/releases
單擊“Assets”以顯示runnable文件——需要安裝Java
在隔離的情況下,如果文件被刪除并且從未運行,那么階段0感染并不危險。
我的系統(tǒng)上有階段2文件嗎?
第2階段文件在你的系統(tǒng)上意味著惡意軟件的第0階段和第1階段成功運行。 如果存在,則很可能完全感染,應(yīng)該繼續(xù)閱讀文檔中的說明。
許多病毒掃描器開始檢測第二階段的文件。如果你收到這樣的文件并且使用檢查器時檢查器發(fā)出發(fā)現(xiàn)并刪除的警告,請進入“我被感染了,現(xiàn)在怎么辦?”一節(jié)。
否則,你可以根據(jù)自己的平臺手動執(zhí)行以下操作:
Windows 指導(dǎo)
使用Windows鍵打開開始菜單,并輸入%localappdata%——它應(yīng)該如下所示:

在本地的appdata文件夾中,你必須確保你的資源管理器被設(shè)置為同時查看“隱藏項”和“受保護的操作系統(tǒng)文件”。
這可以從查看 >選項 找到
如果你不確定如何做到這一點,可以在這里: https://youtu.be/KLTlTlnXeKs找到視頻解釋。
Windows 11用戶可以在ribbon頂部的“查看”按鈕以及最右側(cè)的“…”按鈕下找到相同的選項
找到一個名為Microsoft Edge的文件夾?!癕icrosoft”和“Edge”之間的空間很重要——因為“MicrosoftEdge”是Edge使用的合法文件夾。病毒就這么命名來偽裝自己。
合法的文件夾也可以被稱為Microsoft\Edge (Microsoft文件夾中的Edge文件夾)。
合法的文件夾并不必須存在——如果你沒有任何與Edge相關(guān)的文件夾,你是安全的。
兩個合法文件夾可以同時存在,這也是可以的。
如果存在Microsoft Edge,則說明您被感染了。如果是這種情況,永久刪除文件夾和其中的所有內(nèi)容。
如果無法刪除該文件夾,則必須停止當(dāng)前通過任務(wù)管理器運行的任何Java程序。
MacOS 信息
惡意軟件似乎不會影響MacOS,所以你應(yīng)該不會有問題。為了以防萬一,請時不時地回到這里。
Linux 指導(dǎo)
首先,確保你使用的列出文件的方法能夠查看隱藏的文件。 大多數(shù)GUI文件管理器都有快捷鍵Ctrl+H來切換隱藏文件。如果在終端上執(zhí)行此操作,請在相應(yīng)的目錄中使用ls -A,或者使用ls -lha獲取更詳細的列表。
如果存在以下任何文件,則說明您已被感染。如果是這樣,則刪除它們:
~/.config/systemd/user/systemd-utility.service
/etc/systemd/system/systemd-utility.service
~/.config/.data/lib.jar
這樣做之后,如果適用,請檢查您的journalctl以查看任何您可能無法識別的更改。您可以使用命令journalctl -exb(用于系統(tǒng)日志)和journalctl -exb——user(用于用戶日志)來執(zhí)行此操作。運行以下命令刷新systemd服務(wù):
腳本
如果你不知道如何運行PowerShell或Bash腳本,這些不適合你。自動化的PowerShell或Bash腳本也可以在PrismLauncher上找到https://prismlauncher.org/news/cf-compromised-alert/#automated-script 為您檢查階段2,如果您有技術(shù)訣竅運行它們。Overwolf (Curseforge的母公司)也發(fā)布了一個c#階段2檢測工具:https://github.com/overwolf/detection-tool
我被感染了,怎么辦?
重要:我們目前還不知道這一切能做到什么程度,也不知道其目的是什么,因此在找到消除任何癥狀的完全方法之前,應(yīng)該非常謹慎。這里所述的一切僅僅是我們所知的——如果發(fā)現(xiàn)任何關(guān)鍵信息,請密切關(guān)注團隊的更新溝通。
如果你在你的系統(tǒng)上找到了來自Fracreiser的階段2文件,很可能階段3代碼已經(jīng)運行并感染了你的電腦。 你現(xiàn)在最好的選擇是假設(shè)系統(tǒng)上的所有東西都被完全破壞了。你應(yīng)該:
備份任何你不想丟失在驅(qū)動器或外部磁盤上的東西(無論如何,你應(yīng)該定期這樣做!)
使用一個單獨的設(shè)備,更改你在舊設(shè)備上登錄的所有服務(wù)的密碼(Discord, email等)。最好使用像BitWarden: https://bitwarden.com這樣的密碼管理器。
如果您還沒有為每個支持雙因素身份驗證的服務(wù)(Authenticator app或SMS)使用雙因素身份驗證,請立即開始這樣做
如果您有能力,請聯(lián)系您所在地區(qū)的專業(yè)服務(wù),對您的機器進行適當(dāng)?shù)脑\斷,以檢查任何可疑的情況,或者作為安全的默認做法,只需清除并重新安裝系統(tǒng)。
如果你沒有被感染,請閱讀下面的部分,因為其中的步驟也適用于你。
我沒被感染現(xiàn)在怎么辦
如果你在過去的幾個月里玩過mod,目前你能做的絕對最安全的事情是根本不啟動Minecraft。是的,甚至原版。
話雖如此,如果一開始什么都沒發(fā)現(xiàn),那么很可能什么都沒發(fā)生。 如果你還想玩這個游戲:
根據(jù)我們目前掌握的知識,這并沒有風(fēng)險,但我們不能保證這是準確的——你是自愿將自己置于風(fēng)險之中。
在每次會話后,檢查上一步中的第二階段感染文件,以確保從那以后沒有發(fā)生任何事情
在任何情況下,不要下載或更新你可能使用的任何mod、整合包或插件,甚至不要運行你下載但從未運行過的任何插件——堅持使用你已經(jīng)使用過的實例,并且只使用那些實例。
常見問題
CurseForge被黑了嗎?
CurseForge本身沒有受到影響,只有個人用戶。這不是CurseForge的問題,他們只是碰巧發(fā)生在這個地方。CurseForge也發(fā)表了一篇文章,從他們的角度描述了情況,并正在部署對策。https://support.curseforge.com/en/support/solutions/articles/9000228509-june-2023-infected-mods-detection-tool/
Modrinth還好嗎?
Modrinth對過去10個月的上傳進行了全面掃描,沒有發(fā)現(xiàn)受感染的項目。我們?nèi)匀唤ㄗh在下載任何與mod相關(guān)的東西時保持極度謹慎。沒有mod被感染的事實完全是運氣。
Modrinth更安全嗎?
這不是網(wǎng)站層面的問題,Modrinth和CurseForge一樣安全。
CurseForge是怎么讓這事溜走的?
對于自動化系統(tǒng)來說,階段0 感染運行的代碼并不一定是可疑的,很可能是其他mod會使用的代碼。事實上,早期用于確定 階段0 感染的啟發(fā)式方法在諸如夸克之類的流行mod上有大量的錯誤標志。
實際上,這種類型的平臺預(yù)防是不可行的,因為你可以以無限種不同的方式布局代碼來隱藏你的意圖。
哪些反病毒程序可以捕獲這種病毒?
就在我們說話的時候,新的正在添加中,現(xiàn)在最好做上面的手動驗證,而不是依賴于自動驗證。
多人游戲安全嗎?
是的,如果你不在其他地方下載mod,你就不會被多人服務(wù)器感染。
基巖版安全嗎?
是的,這只影響Java。
Lunar或Badlion等其他游戲客戶端安全嗎?
參見下面的觀點。
Optifine安全嗎?/鈉安全嗎?/Iris安全嗎?/機械動力安全嗎?/Essential安全嗎?/(任何mod)安全嗎?
我們目前還不能完全確認任何一個mod的安全性。
病毒的 第3階段 的功能之一是感染計算機上能找到的盡可能多的.jar。它可以感染所有的.jar,包括Minecraft本身(原版/修改), Minecraft模組, Spigot插件和無關(guān)的Java應(yīng)用程序。因此,如果你的電腦有病毒的 階段3 部分,你下載的mod是否“安全”無關(guān)緊要——它會被感染。首先檢測并移除Fractureiser的后期階段。
目前,所有已知的被感染的mod已經(jīng)從CurseForge中移除。CurseForge發(fā)布了已知感染mod的列表,并已將它們從網(wǎng)站上刪除。Modrinth已經(jīng)掃描了近10個月的mod,沒有發(fā)現(xiàn)任何被感染的mod。https://support.curseforge.com/en/support/solutions/articles9000228509-june-2023-infected-mods-detection-tool/
這不能保證沒有鬼鬼祟祟的人通過。要檢查給定的jar是否包含F(xiàn)ractureiser的 階段0,請檢查“我被感染了嗎?”部分,現(xiàn)在下載任何與mod相關(guān)的東西都要非常小心。
感染的范圍有多廣?
CurseForge報告說,在整個感染期間,被感染的文件被下載了大約6000次。引用CF的Discord公告:
這占CurseForge《我的世界》每日下載量的0.015%。
有人想破壞1.20的發(fā)布事件嗎?
這似乎是一個巧合——在1.20版本發(fā)布之前,惡意軟件活動已經(jīng)活躍了相當(dāng)長的一段時間。
技術(shù)常見問題解答
Fractureiser能脫離虛擬機嗎?
不能。
stage3 確實包含嘗試手動逃離“Windows沙盒”: https://learn.microsoft.com/en-us/windows/security/application-security/application-isolation/windows-sandbox/windows-sandbox-overview的代碼。它不會自動發(fā)生。如果病毒是在Windows沙盒中運行的,它會試圖擾亂剪貼板,誘使你粘貼一個指向惡意軟件的快捷方式。
請注意,這種“剪貼板逃逸”并不是什么新鮮事,只要在主機和客戶操作系統(tǒng)之間不共享剪貼板,就很容易擊敗它。使用比“Windows沙盒”更重量級的虛擬機,禁用VirtualBox的“客戶插件”或Hyper-V的“集成服務(wù)”等功能。
(真實的:虛擬機越獄漏洞價值數(shù)百萬美元,不會用在《我的世界》這種孩子游戲上,我們有理由相信這個惡意軟件的作者首先不是一個很好的程序員。)
這是通過網(wǎng)絡(luò)傳播的嗎?
據(jù)我們所知,F(xiàn)ractureiser并不包含網(wǎng)絡(luò)傳播功能,但也不是完全不可能。 與我們合作的一個安全研究人員收到了一個警報,但它最終是關(guān)于完全無關(guān)的惡意軟件,碰巧使用了類似的文件名。這只是一個假警報。
CurseForge和Modrinth在做什么?
CurseForge已經(jīng)開發(fā)了一個開源的階段2/3檢測工具: https://github.com/overwolf/detection-tool和階段0檢測工具: https://github.com/overwolf/jar-infection-scanner,已經(jīng)掃描了所有上傳的mods/插件的階段0感染,并刪除了所有已知感染病例。
Modrinth還掃描了10個月前上傳的mods/插件,沒有發(fā)現(xiàn)任何階段0感染。
這兩個平臺都在考慮在mod提交通道中引入某種自動化的“病毒掃描”過程。這很難,因為這樣的Java惡意軟件通常是定制的。
我應(yīng)該在防火墻/路由表中阻止哪些IP地址和url ?
我們觀察到,與Fractureiser相關(guān)的代碼通過各種端口連接到這些url和地址。
階段0感染的mods的硬編碼地址,以及第一個觀察到的命令和控制 服務(wù)器:85.217.144.130
第二個可觀察的命令與控制服務(wù)器:107.189.3.101
階段1試圖使用的備用URL,以及stage2命令和控制主機名:files-8ie.pages.dev
還有證據(jù)表明它試圖通過端口25575連接主機名v2202209151437200088——未知原因;可能是舊版本的惡意軟件。
以下是一些與skyrage相關(guān)的防火墻地址(同樣,skyrage不太可能通過這個向量下載到任何人的電腦上,但這些地址不會帶來任何好處):
95.214.27.172
connect.skyrage.de
t23e7v6uz8idz87ehugwq.skyrage.de
qw3e1ee12e9hzheu9h1912hew1sh12uw9.skyrage.de
老實說,可能只是封鎖了所有的skyrage.de
不用說,你不應(yīng)該參觀這些地方。
我們可以讓它反對CurseForge/Modrinth規(guī)則,讓你的mod下載其他文件嗎?
上傳惡意軟件已經(jīng)違反了CurseForge的規(guī)定。還有許多mod下載文件的合法用例,這也會扼殺文件。
是否有可能在modloader本身包含某種“反病毒”或“沙盒”?
“反病毒”:可能沒有,原因和普通的反病毒軟件沒有檢測到一樣。反病毒軟件只能檢測已知的惡意軟件,而不能檢測未知的惡意軟件。
沙盒:在加載一個類之前要檢查“這個類是否包含安全的代碼”,這是一種刺激惡意軟件開發(fā)人員和modloader開發(fā)人員進行貓捉老鼠游戲的好方法。
要禁止Java代碼使用特定的類(比如URLClassLoader)是非常困難的,因為你也可以通過Class. forName來引用它。(它有大量合法的用例),如果你禁止或拒絕列出該類,你通常可以在classpath中找到其他類愿意調(diào)用Class. forName。對于你來說,試圖擺脫這些小玩意就像一場無休止的打地鼠游戲。
對Java進行沙盒化幾乎是不可能的——請參閱“逃離Java沙盒的二十年”: https://www.exploit-db.com/papers/45517之類的文章。https://www.exploit-db.com/papers/45517
Java mod只是任意代碼的打包:把它們當(dāng)作一個.exe,它們可以做任何事情。
為什么mod沒有加密簽名以防止惡意軟件對它們進行篡改?
部分問題在于僅僅簽名并不能防止惡意軟件——經(jīng)過加密簽名的病毒仍然是病毒——而且如果自我簽名被允許,它也不能防止篡改——病毒有可能簡單地從jar包(“delete META-INF”)上取下數(shù)字簽名,然后用自己的密鑰重新簽名。(這也不是假設(shè):Fractureiser確實包含代碼,可以從它感染的jar中刪除數(shù)字簽名。)
具有在線簽名驗證的簽名mod確實看起來是一個有希望的前進方向,盡管它不是沒有權(quán)衡。將有一個會議: https://github.com/fractureiser-investigation/fractureiser/blob/main/docs/2023-06-08-meeting.md,來自mod生態(tài)系統(tǒng)的許多不同代表將討論如何前進。
有沒有可能禁止mod下載可執(zhí)行代碼?
這是不可能的。在下載文件之前,你無法知道它是否包含可執(zhí)行代碼,而在下載文件之后,你無法控制對它的處理。
如果我的mod下載了一個Java類文件呢?
如果是一個Java類文件,但它的拼寫是反的,所以一開始看起來不像一個類文件?
加密的Java類文件呢?
在你的計算機上編譯的Java源代碼怎么樣?
Python腳本呢?
如果在一個包含英語散文的文件中,單詞數(shù)為偶數(shù)的句子對應(yīng)0,單詞數(shù)為奇數(shù)的句子對應(yīng)1,該怎么辦?——即使它是一個散文文檔,如果我愿意,我也可以將它重新組裝成一個.exe文件。
這和流傳的Spigot插件惡意軟件有關(guān)嗎?
有可能!這與現(xiàn)有的惡意軟件“skyrage”有一些聯(lián)系——惡意軟件的作者上傳了一個與skyrage相關(guān)的.jar到他們的備份命令和控制服務(wù)器,試圖擴展攻擊,但沒有成功,不久CloudFlare就將其關(guān)閉了。
我們還沒有收到任何人通過這個媒介被Skyrage感染的任何報告。作者更新了他們的CloudFlare URL,在階段0感染的mods中硬編碼的IP地址被刪除后的很長一段時間內(nèi)指向Skyrage。攻擊者試圖提供這個jar基本上是一件有趣的事情。
Skyrage是一個現(xiàn)有的,經(jīng)過充分研究的惡意軟件,你可以在這里: https://ljskatt.no/analysis/updater_class/找到更多關(guān)于它的信息。