Nishiki-Hub

国内外のPC/PCパーツ/スマホ/Appleなどの最新情報を取り上げています

過去最悪な脆弱性「Log4Shell」のMinecraftでの対応状況と対処方法(サーバー・クライアント) 〜 「Minecraft JE 1.18.1」がリリース・バージョンによって対応が異なるので注意

f:id:doskokimeil127-dosd:20211213185434p:plain

錦です。

先日「Apache Log4j」の脆弱性についてお伝えしましたが、Minecraftで対応が始まりましたのでその話です。

Log4Shell

CVE-2021-44228というCVE番号が振られたJavaのライブラリ「Apache Log4j」に存在する重大な脆弱性。数日経過する間に「Log4Shell」という通称がつけられるようになっていました。

この脆弱性は、Log4jの出力ログここに悪意のある文字列を記録することだけで任意のリモートコードが実行できるようになるというものです。特に必要な設定もなく、任意のコードがリモートで実行できるので各種の脆弱性の評価は軒並み最悪になる見込みです。

すでに対応が始まっており、ライブラリ自身もバージョンアップしており、v2.15で修正されているそう(ただしライブラリに対応させる必要あり)。

ちなみに、Minecraftではチャットに特定の文字列が送信されるとコードが簡単に実行されます(サーバー側をシャットダウンさせたり、クライアント側にスパムや危険なコードを送ることができるそう)。

イクラの対応

イクラでの対応をバージョンごとに説明します。一部バージョンではForgeとバニラで対応が違いますのでご注意ください。

JE v1.18

v1.18については、v1.18.1がリリースされているのでそれを適用することによって修正されます。

JE v1.17

v1.17については、できる限りv1.18.1にアップデートすることが推奨されています。

もし、1.17を使い続ける必要がある場合、以下のコードをJVM引数に追加します。メモリ割り当て変えるところです。

-Dlog4j2.formatMsgNoLookups=true

f:id:doskokimeil127-dosd:20211112225102p:plain

ここからJVM引数の編集画面へアクセスできます。この・・・を押したあとに一番下のフォームがJVM引数になっています(書かれてるのでわかると思います)。追加する箇所については指定がありませんが、一番最後に記載するのがいいでしょうね・・・。

JE v1.12/1.13/1.14/1.15/1.16

サーバーが実行されている作業ディレクトリにこちらのページで配布されているXMLファイルをダウンロードし、次のコードをJVM引数に追加します。これも最後に追記したほうがいいでしょう。

-Dlog4j.configurationFile= log4j2_112-116.xml

JE v1.7/1.8/1.9/1.10/1.11

サーバーが実行されている作業ディレクトリにこちらのページで配布されているXMLファイルをダウンロードし、次のコードをJVM引数に追加します。これも最後に追記したほうがいいでしょう。

-Dlog4j.configurationFile= log4j2_17-111.xml

JE v1.6以前

影響は受けません。

【Mod】Minecraft Forge(クライアント)

Minecraft Forgeは、多くのModの前提Modとなっており、一つでもModを使ってプレイしている場合は確認しておくと良いでしょう。

Forgeもバージョンによって対応に違いがあります。

1.12から1.18

イクラVer Forge Ver
1.18 38.0.17
1.17.1 37.1.1
1.16.5 36.2.20
1.15.2 31.2.56
1.14.4 28.2.25
1.13.2 25.0.222
1.12.2 14.23.5.2857

1.11/1.11.2

ランチャーが開いている場合は終了します。

  1. .minecraft フォルダーを探します。Windowsの場合%AppData%/.minecraftに、Linuxの場合~/.minecraft/となります。
  2. versionsフォルダを開きます。
  3. Forgeがインストールされているフォルダを開きます。最新のForgeがインストールされている場合1.11.2-forge1.11.2-13.20.1.2588となります。
  4. フォルダ内のJSONファイルを開き以下の部分を探します。
"logging": {

},

これごと消します。このあとゲームを再起動することで変更が適用されます。

【Mod】Minecraft Forge(サーバー)

ついでModを使ってサーバーを構築している人に向けての内容です。こちらは非常に簡単。

こちらからXMLファイルをダウンロードし、サーバーのjarファイルの隣に置きます。終わり。本当にこれだけで、上記のJVM引数の変更も必要ありません

別の方法

これ以外の方法として、Forgeをアップデートするという方法もあります。こちらも簡単で、Forgeのサイトから最新のForge(クライアントの表参照)をインストールですることで、対応できます。

Logging configurationの修正

オプションとは書いてるんですけど、なんか、上の方法と同じなやつがあるんですよね・・・。これは多分バージョンによって異なるんじゃないかなぁとは思うんですけど(一応GitHubの文章を読んで見ることをおすすめします)。

v1.7

こちらからXMLファイルをダウンロードし、サーバーのjarファイルの隣に置きます。

-Dlog4j.configurationFile=log4j2_server.xmlをサーバー起動スクリプトに追加しサーバーを再起動します。

v1.8〜1.11.2

v1.8〜1.11.xについては、こちらのXMLファイルをインストールして、サーバーフォルダーの.jarファイルの隣に配置します。以上です。

v 1.12〜1.12.2

v1.12〜v1.12.2では、こちらのXMLファイルをインストールして、サーバーフォルダに配置します。

そして、run.bat/run.shファイルまたは、サーバーを起動するのに使用するコマンドに-Dlog4j.configurationFile=log4j2_server.xmlを追加します。このコードは、-jarよりも前に配置する必要があるそうなのでjava -Dlog4j.configurationFile=log4j2_server.xml -jar forge-version.jarのように記述する必要があるそうです。

その後、サーバーを再起動します。

v1.13〜1.16

v1.13〜v1.16では、こちらのXMLファイルをインストールして、サーバーフォルダに配置します。

そして、run.bat/run.shファイルまたは、サーバーを起動するのに使用するコマンドに-Dlog4j.configurationFile=log4j2_server.xmlを追加します。このコードは、-jarよりも前に配置する必要があるそうなのでjava -Dlog4j.configurationFile=log4j2_server.xml -jar forge-version.jarのように記述する必要があるそうです。

その後、サーバーを再起動します。

v1.16.4

v1.16.4では、こちらのXMLファイルをインストールして、サーバーフォルダに配置します。

そして、run.bat/run.shファイルまたは、サーバーを起動するのに使用するコマンドに-Dlog4j.configurationFile=log4j2_server.xmlを追加します。このコードは、-jarよりも前に配置する必要があるそうなのでjava -Dlog4j.configurationFile=log4j2_server.xml -jar forge-version.jarのように記述する必要があるそうです。

その後、サーバーを再起動します。

v1.17以降

v1.17以降では、こちらのXMLファイルをインストールして、サーバーフォルダに配置します。

その後、user_jvm_args.txtファイルに-Dlog4j.configurationFile=log4j2_server.xmlを追加するだけです。

そして、サーバーを再起動します。

Spigot

Spigotについてですが、先週の木曜日(現地時間)にセキュリティリリースが定例外でリリースされています。公式ページのガイダンスを御覧ください。

iOS/Android/Switch/Xbox/Win10(BE)

質問があったのでお答えしますが、BEとJEはベースが異なり、今回の脆弱性JavaというJEのみがベースにしているシステムにバグがあるので、C++で構築されているBEと呼ばれる無印Minecraftには一切影響がありません。逆に、JEが動く環境はWindows/Mac問わず影響を受けます。

関連リンク