Apache Log4j 2 リモートコード実行脆弱性の詳細
Apache Log4j 2 は人気の Java ロギングツールですが、バージョン 2.0 から 2.14.1 に重大なリモートコード実行の脆弱性(CVE-2021-44228)が存在し、攻撃者が任意のコードをリモートで実行して、影響を受けるサーバーを完全に制御できる可能性があります。
Log4j 2におけるJNDIルックアップ機能が根本原因となり、攻撃者は不正なJNDIルックアップ要求を作成することでリモートコード実行を引き起こす可能性がある。
攻撃者は悪意のあるHTTPリクエストヘッダーやその他のアプリケーション入力を構築し、悪意のあるJavaコードを含む特定のJNDIルックアップ要求を挿入することで、Log4j 2が要求を解析しようとした際にリモートコードを実行させる悪意のあるコードを実行させることができます。
Log4j 2が数多くのエンタープライズシステムやクラウドサービスを含む多数のJava Webアプリケーションで広く使用されているため、この脆弱性による影響は極めて重大です。攻撃者はこの脆弱性を利用して影響を受けたサーバーを完全に制御し、さらに機密データへのアクセスや窃取、マルウェアの拡散、内部ネットワークへの攻撃を実行できます。
この脆弱性に対処するため、Apache Log4jプロジェクトは2.15.0バージョンをリリースし、できるだけ早くそのバージョンにアップグレードすることを推奨しています。さらに、ユーザーはリスクを軽減するための次の対策を講じることもできます。
- 使⽤しているアプリケーションのLog4jバージョンを確認し、 最新版にアップデートし、脆弱性からの影響を回避してください。
- JNDIのリモートアクセスを許可する権限を制限するようにアクセス制御リスト(ACL)を設定します。これはlog4j2.xml設定ファイルのJndiLookup要素を変更することで実行できます。
- JndiLookup特徴を無効にするには、log4j2 . xml設定ファイルでJndiLookup要素を削除するか、無効にすることができます。
- ファイアウォールをセットアップして、影響を受けたサーバへのアクセスを制限する。
いずれにせよ、Apache Log4j 2 リモートコード実行の脆弱性は重大なセキュリティ上の脅威であり、ユーザーは直ちに修正されたバージョンにアップグレードし、リスク軽減のための追加措置を講じるべきです。また、セキュリティチームと開発者は関連するセキュリティ発表を綿密に監視し、攻撃からシステムを保護するための措置をタイムリーに講じるべきです。