JavaライブラリLog4jの悪名高い脆弱性に対する緊急パッチは絶対確実ではありません。 Apache Software Foundationは、この脆弱性を完全に修正するための新しいバージョンをリリースしています。
非常に人気のあるJavaのライブラリの脆弱性が、世界のIT環境を揺るがしています。 ライブラリはほとんどの企業環境に存在すると推定されています。
Log4jは主にロギングに使用されます。 アプリケーションのイベントはメモで登録できます。 ログイン試行後のログイン詳細のプリントアウトについて考えてみてください。 または、JavaのWebアプリケーションの場合、ユーザーが接続しようとしているブラウザーの名前。
後者の例は一般的です。 どちらの場合も、外部ユーザーがLog4jが出力するログに影響を与えます。 その影響を悪用する可能性があります。 4年13月2013日から5年2021月XNUMX日までのLogXNUMXjバージョンのログは、ローカルデバイス上のリモートサーバーからコードを実行するようにJavaアプリケーションに指示できます。
2013年以来、Log4jはAPI(JNDI、またはJava Naming and Directory Interface)を処理しています。 JNDIの追加により、Javaアプリケーションはローカルデバイス上のリモートサーバーからコードを実行できます。 プログラマーは、アプリケーションのリモートサーバーに関する詳細をXNUMX行追加することで指示します。
問題は、プログラマーだけがアプリケーションにルールを追加できるわけではないということです。 Log4jがログイン試行のユーザー名をログに記録するとします。 誰かがユーザー名フィールドに前述の行を入力すると、Log4jがその行を実行し、Javaアプリケーションがコマンドを解釈して、指定されたサーバーでコードを実行します。 Log4jがHTTPSリクエストをログに記録する場合も同様です。 ブラウザ名をその行に変更すると、Log4jがその行を実行し、必要に応じてコードを実行するように間接的に指示します。
緊急パッチも安全でない可能性があります
9月4日、この脆弱性が大規模に明らかになりました。 Log2.15jの開発者であるApacheSoftware Foundationは、この脆弱性を修正するための緊急パッチ(2.15)をリリースしました。 それ以来、ソフトウェアベンダーがバージョンXNUMXを処理し、組織にパッチを提供することが最優先事項になっています。
ただし、セキュリティ組織のLunaSecは、パッチが完全に防水ではないと述べています。 設定を調整し、ログに記録されたJNDIコマンドを実行することは引き続き可能です。
注意:2.15の変更されていないバリアントが実際に安全になるように、関連する設定を手動で調整する必要があります。 それでも、Luna Secは、サプライヤーと組織がLog4j2.16に更新することを推奨しています。 2.16は、LunaSecに対応してApache SoftwareFoundationによって公開されました。 新しいバージョンでは、脆弱な設定が完全に削除され、悪用の条件を作成できなくなります。