はじめに
みなさん、お久しぶりです。クリスタと申します。最近話題になっているマルウェア、「fractureiser」についてわかっている範囲でまとめようと思います。
fractureiserとは
fractureiserは、MinecraftのMOD/プラグインをターゲットにしたマルウェアで、2023/06/01に海外のプレイヤーによって発見されました。 そのファイルが、Curse ForgeからダウンロードしたMODから検出されたため、Curse Forgeが直ちに声明を発表しました。 現在は、海外の有志によってこのファイルをソースコードに直す作業がされており、そのソースコードからどのような挙動をするのかが一部解明されています。また、アップロードの日付を確認したところ古くて2023年4月から既に存在していたものとみられています。 このマルウェアは複数のステージで構成されており、各ステージごとに実行される処理が異なるという特徴があります。
このマルウェアによる影響
WindowsあるいはLinuxで使用しているほぼすべてのMOD・プラグインに影響が出る恐れがあります。また、Minecraftのクライアント本体、サーバーにも影響が出る恐れが追加で発表されました。直近3週間~1ヵ月の間にCurse Forgeから何らかのMODをダウンロードした場合はマルウェアに感染している可能性が大きいため、後述する検出ツールの使用をおすすめします。
現時点でMac上での影響は確認されていません。また、Stage3によって感染してマルウェアが実行されてしまった場合はMinecraftとは関連のないすべてのjarファイルに感染を起こす可能性があります。
・MOD/プラグイン開発者向け
このマルウェアにより、Mavenリポジトリへの影響も考えられます。
現時点でウイルスがアップロードされているサーバーが停止しているため新たな感染はほぼ不可能ですが既存のjarファイルによる活動が続いている可能性があります。
マルウェアの活動内容
このマルウェアはStage0からStage3に分かれ、最初はStage0から、最後にマルウェア本体のStage3で構成されています。
ここから先の内容は一つずつ展開して読むことができます。
Stage0
Stage0
Stage0は、Stage3によって感染したjarファイルにあります。Stage3によって感染したjarファイルの中に次のようなコードが記載されています。 また、このコードは難読化されているため一部処理が数字の羅列になっています。
|
|
Stage0の具体的な処理は次の通りです。
http://[85.217.144.130:8080]/dl
に接続して、dl.jar
というファイルをダウンロード- 1でダウンロードしたファイルを上記コードの
Utility
に渡して実行
現在、URL先のページは閉鎖されていますが、URLの差し替えがあったケースもあるようです。
Stage1
Stage1
Stage0でダウンロードされたdl.jar
の処理部分です。
Stage0にあるUtility.run
がシステムプロパティかどうか確認し、存在する場合は処理を停止し、存在しない場合は空の文字列を設定して続行。
これにより、マルウェアの二重起動がされないようにしている模様です。
また、https://files-8ie.pages.dev/ip
にアクセスし、攻撃者が操作するサーバーのIPアドレスを取得します。その後、Stage2のファイルをダウンロードします。(WindowsはlibWebGL64.jar
、Linuxlib.jar
)
ダウンロードしたファイルをシステム起動時に実行できるようWindowsは、HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
にレジストリのキーを作成し、Linuxはsystemd
でsystemd-utility.service
というサービスを作成して起動します。
これらを要約すると、
- マルウェアが二重起動しないよう確認する
https://files-8ie.pages.dev/ip
から最新のダウンロードURLを取得し、そこからファイルをダウンロード。ダウンロードしたファイルをシステム起動時に実行されるようにする。
となります。
Stage2
Stage2
Stage2は、Allatori obfuscatorというJavaのソースコードを難読化するツールで難読化されていますが、大体の処理は判明しているようです。
- ポート9655を開け、JVM(Java仮想マシン)が閉じたら該当のポートを閉じる
.ref
が存在する場合、ファイルから識別子を読み取るhttps://[files-8ie.pages.dev]:8083/ip
に接続し、Stage3のclient.jar
をダウンロードするdev.neko.nekoclient.Client#start(InetAddress, refFileBytes)
を呼び出す
現在判明しているSHA:
SHA1 | Detail |
---|---|
52d08736543a240b0cbbbf2da03691ae525bb119 |
- |
6ec85c8112c25abe4a71998eb32480d266408863 |
D3SL以前のアップロード |
Stage3
Stage3
Stage3は、ほかのStageに比べて難読処理かつ複雑な処理になっています。ただし、難読処理がされる前のソースが見つかり、それによってどのような挙動をするのかがほぼわかっています。現段階で確認されている挙動は、
- クリップボードの内容を読み取る
- Microsoft アカウント、Discordなどの認証情報を盗む
- クリップボード内の暗号通貨アドレスを、攻撃者が所有していると思われる代替アドレスに置き換え
- すべてのjarファイルに対し、Stage0の処理を挿入しようとする
となっています。これによりマルウェア拡大のリスクが大きくなっています。
検知方法
現時点で、Stage0、Stage1をセキュリティソフトが検知できるように定義ファイルが作成されました。最新版に更新することで見つけることができますが、確実に見つける場合はCurse Forgeの親会社のOverWolfがリリースした検知ツールを使用することでStage3までを検知できます。ただし、確実に検知できるかは不明です。
リンク先から使っているOSごとのファイルをダウンロードしてください。Windowsの場合は、detection-tool-x-x-x-win.exe
を選択します。
また、スクリプトファイルをダウンロードあるいはコピーして実行することもできます。
Windows版(PowerShell)
次のスクリプトをコピーして`detect.ps1`として保存するか、ダウンロードすることができます。
|
|
Linux版(shell)
次のスクリプトをコピーして`detect.ps1`として保存するか、ダウンロードすることができます。
|
|
Stage3に感染してしまった場合、ほぼすべてのjarファイルが悪意あるコードに書き換えられる恐れがあります。ただし、現在攻撃者のサーバーがほぼすべてダウンしているため、新たに感染する可能性は低いものの新しくサーバーができる可能性も考えられます。
対策
Minecraft JE 1.20がリリースされMODを使って楽しみたいという方も少なくないでしょう。ただ、まだStage3の他の機能などわからない部分が多いため、MODサーバー、MODを使ってシングルプレイをやめることをおススメします。特に最近ダウンロードしたMOD・プラグインには注意です。
最後に
このブログは2023/06/08現在の情報です。最新情報を知りたい場合はこのページの最後から移動することができますので参照してください。