北村由衣のブログ

log4j2の脆弱性によるMinecraftへの影響【続報】

脆弱性への対応が進んだ

昨日の記事でお伝えした、log4j2の脆弱性について、 この1日でかなり進展がありました。昨日の記事は、脆弱性に絡んだキーワード検索でGoogle検索2ページ目までに出たりで、 それなりのアクセス等があったようです。

本脆弱性は、CVE-2021-44228として管理されています。
本脆弱性は、log4j2の最新バージョン2.15で修正済みです。
過去のバージョンを使用している環境では、引き続き脆弱な状態です。
システムの開発者からのパッチ提供や、ユーザ側での自衛措置が必要と思われます

log4j自体の最新版は、MavenCentralなどの リポジトリに既に公開されています。

古いバージョンのlog4jを使用している環境でも、ログの出力内容を定義するxml等で対策が可能です
こちらのQiitaの投稿が参考になりました

<Appenders>
   <Console target="SYSTEM_OUT" name="SysOut">
      <LegacyXMLLayout/>
   </Console>
   <RollingRandomAccessFile name="File" filePattern="logs/%d{yyyy-MM-dd}-%i.log.gz" fileName="logs/latest.log">
      <PatternLayout pattern="[%d{HH:mm:ss}] [%t/%level]: %msg{nolookups}%n"/>
      <Policies>
         <TimeBasedTriggeringPolicy/>
         <OnStartupTriggeringPolicy/>
      </Policies>
   </RollingRandomAccessFile>
</Appenders>

Minecraft界隈の動向

mojang公式や、各種サーバ・前提Mod・クライアントの提供元が、かなり迅速に対応をしました。
本脆弱性はかなり致命的な事象を引き起こしかねないということで、公式もイレギュラー対応として、 全バージョンを対象にパッチを適用しています。

mojangの中の人の発信
(訳文)我々は影響を受ける全てのクライアントにパッチを提供しました。 もしゲームを起動しているならば、ゲームを閉じ、ランチャーも閉じて再起動してください。(既にやっていたとしても、ね。)

Minecraft公式としても情報を提供しています。Security Vulnerability in Minecraft: Java Edition
こちらでは、公式クライアント・Mod導入クライアント・サードパーティランチャー・公式サーバ、についてそれぞれ説明がされています

Official Game Client
If you play Minecraft: Java Edition, but aren’t hosting your own server, you will need to take the following steps Close all running instances of the game and the Minecraft Launcher. Start the Launcher again – the patched version will download automatically.
(訳文)公式クライアント。Minecraft Java版をプレイしているが、サーバを立てている訳ではない場合、次の手順を実行してください。
全てのゲームとランチャーを閉じること。ランチャーを再起動すること。これで、自動的にパッチが適用されたバージョンが導入されます
Modified Clients and Third-party Launchers
Modified clients and third-party launchers might not be automatically updated. In these cases, we recommend following the advice of your third-party provider. If the third-party provider has not patched the vulnerability, or has not stated it is safe to play, you should assume the vulnerability is not fixed and you are at risk by playing.
(訳文)Mod導入クライアントおよびサードパーティーランチャーは、自動的には更新されません。 これらについては、開発者からの案内に従ってください。 もし、開発者が本脆弱性に対応していなかったり、確証がない場合、 あなたは脆弱性が修正されていなくて、プレイすることがリスクを負うことと認識した方がいいでしょう。

サーバについては、バージョンごとに対応方法が分かれています。
Minecraft1.18については、最新版の1.18.1に更新することが、推奨されています。
Minecraft1.17については、JVM起動引数に-Dlog4j2.formatMsgNoLookups=trueを追加する方法が、推奨されています。
それ以前の場合は、log4jのログ出力パターン定義ファイルをダウンロードし、それを使用するように引数を指定する方法が案内されています。

2021/12/20追記:
英語版の引数指定を参照してください。
日本語版の引数指定は誤りがあります

Minecraftの公式プレイ環境については、SNAP-SHOTを含め、すべてが脆弱性に対処するパッチが提供されたことになります。 特にサーバ側は適切な対応をする必要がありますが、ひとまずリスクは回避できるようになったのは、良い事です。(しかも当日中に。)

ランチャーについては、つい今月初め辺りに、Microsoftアカウント優遇な新しいランチャーが登場していますが、 旧バージョンでも、きちんと適用されますので、あわてる必要は無いようです。

Minecraft BE版は、そもそも本脆弱性の影響が無いですね。私はJava版しかプレイした事ないですけども。

本脆弱性の状態について、私見

TwitterやGitHubのプルリクエストから情報が広まってゼロデイ攻撃となってしまったlog4jの脆弱性について、 任意コードが実行可能となる危険性や、影響範囲の広さ、お手軽な攻撃のし易さ、回避策の適用がされないと永遠と残る危険性、諸々鑑みて、 相応に重大な事案であると、思っています

私が日頃遊ばせていただいているFREESERVERでも、応急処置後のことで被害はありませんでしたが、 初めてやってきたプレイヤーが加害文章を唱えていったりしました。 また、自分が開発したシステムの依存関係を見れば、しれっとlog4j-2.14.1が居たりして、対象になってるなぁ、と。 情報収集は引き続きしていかないといけないといけないようです。

本件、情報を発信したりしても、受け手側の知識レベルの問題を感じる場面がありました。
英語文献を忌諱したり、過剰に恐怖心を覚えていたり。 「適切な知識で、自分で判断できる、正しく恐れる」辺りの大切さを感じました。

昨日今日と、急速に対処する動きが見られたため、立て続けに筆をとりましたが、 落ち着けば、普段通りの遅筆に戻るんじゃないかなぁ、と思っています。


このエントリーをはてなブックマークに追加


コメントはこちらからお寄せください