見出し画像

数年に一度の規模「Log4jの脆弱性」とは

こちらのnoteは、セキュリティ専門家松野によるニュース解説ラジオ「今日の10分セキュリティラジオ」12月20日の放送内容を一部抜粋しご紹介します

・今回の解説ニュース
・「Log4jの脆弱性」とは、どのようなものなのか?
・緊急性の高い「Log4jの脆弱性」まずは確認を

ニュース解説

Javaで開発されているシステムでよく使われているAapache Log4jに極めて深刻な脆弱性が発見されました。

パッケージ製品を含めたJavaで開発されたシステムでLog4jが使われていれば至急、最新バージョンへアップデートするなどの対策をしてください。

今回、脆弱性が見つかったのはJavaベースのログ出力ライブラリである「Apache Log4j」です。この脆弱性は「Log4Shell」とも呼ばれており、CVE-2021-44228が付与されています。脆弱性の影響を受けるバージョンは、Apache Log4j 2.0-beta 9 から2.14.1とされていますが、脆弱性を修正した2.15.0でも別の脆弱性がすでに見つかっており、繰り返しになりますが至急、2.16.0以降の最新バージョンへアップデートするなどの対策をしてください。

「Log4jの脆弱性」とは、どのようなものなのか?

Log4jの脆弱性について説明します。Javaで開発された多くの製品が影響を受ける可能性があるので、特にJavaに関連するシステムを運用中の方は、内容についてよく理解してください。

まず、Apache Log4jとは、Javaベースのログ出力に使われるライブラリです。Log4jにはLookupと呼ばれる機能があり、ログとして記録された文字列から、一部の文字列を変数として置換する機能を悪用されると、任意のコードが実行される脆弱性が発見されました。攻撃の概要として、攻撃者はJavaで開発されたシステムにリモートからアクセスするなどして、細工された悪意のあるペイロードをログに書き込むことができた場合、悪意のあるJavaオブジェクトが読み込むことができ、最終的には任意のコードが実行できる可能性があります。

これだけだと良く分からないと思うので、皆さんにもわかるように、できるだけ簡単に説明します。

Aさんが攻撃者だったとします。AさんはLog4jの脆弱性を悪用するために、Webサーバへ片っ端からアクセスします。この時点でAさんは、攻撃対象がLog4jが使われているシステムかどうかを知る必要はありません。
AさんがWebサーバへアクセスする際に送るリクエストには、Aさんが用意した攻撃用サーバへアクセスする情報や、Log4jの脆弱性をつくためのデータが含まれます。Aさんが送ったリクエストの内容は攻撃対象のログに記録され、そのデータがLog4jに渡されます。

もし、攻撃対象のシステムで脆弱性のあるLog4jが動いていた場合、ログに記録されたAさんのリクエストが処理された結果、攻撃対象のシステムからAさんの攻撃用サーバへリクエストが送られてしまいます。このリクエストに悪意のあるレスポンスを返すだけで、任意のコードが実行できてしまいます。

その他のトピック

緊急性の高い「Log4jの脆弱性」まずは確認を
Log4jの脆弱性について影響を受けているか自分で確認するためには、まず、システムにLog4jのライブラリが存在するか確認することが必要です。(全文はこちら)

Voicyで毎週ニュース解説を配信中!