ものづくりのブログ

うちのネコを題材にしたものづくりができたらいいなと思っていろいろ奮闘してます。

Javaのライブラリ log4j2 脆弱性

Javaで使われるログ出力ライブラリ log4j2 で任意のリモートコードを実行される脆弱性が見つかったようです。
12月10日に判明したらしく、この脆弱性を利用すると攻撃者が悪意のあるリクエストを送出できるようで、任意のコードがリモートから実行されてしまう可能性があるとのこと...((((;゚Д゚))))

log4j2とは

Log4j は Javaのログ出力に使われるライブラリのことを指します。
Java SE 標準のロギングAPIに比べて、高機能、高性能となっており、外部ライブラリの管理とのトレードオフで選択することがあります。

脆弱性について

影響を受けるバージョン

2.0 <= Apache log4j2 <= 2.14.1

具体的な問題点

Log4j には一部の文字列を変数として置き換える「JNDI Lookup」という機能があります。 今回はこのLookup機能が悪用されているようです。
攻撃者がJNDI Lookupを悪用して攻撃対象のサーバーに悪意のコードを送信することで、プログラムの強制実行だけでなく、サーバーに保存されているデータの改ざんや出力なども出来てしまうとのことです。
具体的には「ログに記録した文字列に特定の命令が書いてあったら外部からプログラムを読み込みます」という実装があり、ログデータの中に読み取り可能な文字列があれば実行してしまうという問題点があったようです。

ニュース

Minecraftのサーバが大変そうとのニュースが...
プレイヤーが入力したコメントもログとして保存されるので...
今回の脆弱性に乗じてオンラインゲームのホストサーバーを標的にするのであれば、特定の文字列をチャット画面に入力するだけで攻撃が成立してしまうわけです。

もし影響を受けるバージョンを使用していたら、最新バージョンにした方が良さそうですね。