Security

Security Alert に戻る

Elasticsearch および Liferay Enterprise Search のセキュリティアドバイザリです。2021年12月11日 (Log4j2, CVE-2021-44228, CVE-2021-45046,CVE-2021-45105)

更新しました。2021年12月13日(クリックすると詳細が表示されます。)
更新しました。2021年12月15日(クリックすると詳細が表示されます。)
更新しました。2021年12月16日(クリックすると詳細が表示されます。)
  • Elastic 社が最近発表した Security Alertに基づいて、脆弱性情報を更新しました。
更新しました。2021年12月19日(クリックすると詳細が表示されます。)
  • CVE-2021-45105に関する情報を追加しました。 ElasticsearchにはCVE-2021-45105に対する既知の脆弱性はありませんが、Elastic社は12月19日にlog4jの最新版(2.17.0)を含む7.16.2と6.8.22のリリースを控えています。 (via Elastic Security Alert)
更新しました。2021年12月20日(クリックすると詳細が表示されます。)
  • Elastiscsearch 7.16.2 と 6.8.22 がリリースされました。 これらのリリースには、Log4jの最新バージョン(2.17.0)が含まれています。
更新しました。2022年4月5日(クリックすると詳細が表示されます。)

以下の問題は、Liferay DXP、Liferay Enterprise Search環境、およびElastic Stackの機能に影響を与える可能性があります。

影響を受ける可能性のあるデプロイメント

  • Elasticsearch の 6.8.22 および 7.16.2 より前のバージョン

脆弱性情報

Elasticsearch 6および7は、Java Security Managerを使用しているため、この脆弱性によるリモートコード実行の影響を受けることはありません。 JDK8 以下で動作する Elasticsearch には、DNS を介した情報漏洩の可能性があり、以下の JVM オプションにより修正可能です。 このオプションは、Elasticsearchのバージョン5.6.11+、6.4+、7.0+で有効です。

2021年12月13日現在、以下に示すJVMオプションを設定し、Log4jから脆弱性のあるJndiLookupクラスを削除したElasticsearch 6.8.21および7.16.1を慎重の上にも慎重にリリースしています。 6.4.0以前の6.xを使用していてアップグレードが不可能な場合は、 184の説明に従ってください。

Elasticsearch 5 には、リモートでのコード実行および DNS を介した情報漏洩の両方が発生する可能性があります。 バージョン5.6.11~5.6.16では、JVMオプションを設定することにより、この問題を緩和することができます。 5.x以前のバージョンをお使いの方は、5.6.16にアップグレードすることをお勧めします。 5.6.11以前の5.xを使用していて、アップグレードが不可能な場合は、こちらの に従ってください。 なお、これらの改善策を提供していますが、Elasticsearch 5はサポート対象外ですので、常に最新版へのアップデートをお勧めします。

Elasticsearch 2以前のバージョンでは、今回発見された不具合に対して脆弱性のないLog4jのバージョンを使用しています。 Elasticsearch 2はサポート対象外ですので、常に最新のリリースにアップデートすることをお勧めします。

Elastic Cloudをご利用の場合、バージョン7.2以上はすでにJDK11以上で動作しているため、RCEや情報漏えいの影響を受けることはありません。 7.2より前のバージョンのElasticsearchをお使いの方は、できるだけ早くクラスタを再起動することをお勧めします。再起動すると、以下に示すJVMオプションが自動的に適用され、クラスタが完全に保護されます。 新しいクラスタはすべてJVMオプションが含まれた状態でデプロイされます。 詳しくはElastic Cloudの発表をご覧ください【更新日 - 2022年4月5日】 DXP 7.4 Update 17でSidecar Elasticsearchのバージョンが7.17.0に更新されました。 詳しくは、 https://issues.liferay.com/browse/LPS-145631 をご覧ください。

影響を受けるバージョン

Elasticsearch のバージョン 5.0.0+ には、Log4j の脆弱なバージョンが含まれています。 Elasticsearch 5 には、リモートでのコード実行および DNS を介した情報漏洩の両方が発生する可能性があります。 Elasticsearch 6 および 7 において、Security Manager がリモートコード実行攻撃を緩和することを確認しました。

ソリューションとミティゲーション。

最も簡単な対処法は、 JVM オプション -Dlog4j2.formatMsgNoLookups=true を設定し、クラスタの各ノードを再起動させることです。
Elasticsearch 5.6.11+, 6.4+, 7.0+ では、これにより RCE 攻撃および情報漏洩攻撃から完全に保護されます。

ユーザーは、2021年12月13日にリリースされたElasticsearch 7.16.1 または 6.8.21 にアップグレードすることができます。 これらのリリースでは、Log4j パッケージはアップグレードされませんが、 JVM オプション -Dlog4j2.formatMsgNoLookups=true を設定し、脆弱な JndiLookup クラスを Log4j パッケージから削除することで脆弱性を緩和しています。

注:これらのシナリオのいずれにおいても、一部の脆弱性スキャナは、Log4jのバージョンだけに基づいて、この脆弱性に関連するElasticsearchにフラグを立て続ける可能性があります。 しかし、上記のいずれの緩和策も、リモートコードの実行と情報漏えいの両方を十分に防ぐことができます。

[12月14日更新】 CVE-2021-45046に対応したLog4j 2.16.0がリリースされました。 これは、Log4j 2.16.0 へのアップデートを必要としない、上記の Elasticsearch に対する緩和策を変更するものではありません。 Elasticのガイダンスでは、上記のJVMオプションを適用して全ノードを再起動するか、Elasticsearchを7.16.1または6.8.21へアップグレードするかのいずれかを選択しています。

ElasticsearchをECKで管理している場合、Elasticsearchカスタムリソース podTemplate仕様でJVMオプションを設定します。

Elasticsearch を ECE で管理している場合、バージョン 6.x および <7.2 では、JVM オプションの緩和を含むパッチが適用された stackpacks を再インストールすることをお勧めします。 該当するstackpackを再インストールした後、デプロイメントを再開することをお勧めします。 5.xシリーズでは、JVMオプションをオーバーライドして脆弱性を緩和するプロパティを追加し、クラスタを再起動して変更を反映させることをお勧めします。詳細については、Elasticのサポートにお問い合わせください。

Elasticsearchの情報漏えいに関する詳細

Log4j の情報漏えい脆弱性は、攻撃者が DNS 経由で特定の環境データを流出させることができるものです。 流出できるデータは、Log4jの「ルックアップ」によって利用できるものに限られ、システム環境変数や他のソースからの環境データの限られたセットが含まれます。 完全なリストについては、 Log4j Lookups documentation を参照してください。

最近のJavaバージョンにRCEを拡張するPoCの注意点

私たちは、このエクスプロイトが適用されるJDKとシナリオを拡大しようとする、 このようなセキュリティコミュニティーの動向を積極的に監視しています。 Elasticsearch 6および7におけるJavaセキュリティマネージャの実装は、JDK9以上と組み合わせることで、すべての既知のPoCから引き続き保護されます。 これらの取り組みでは、com.sun.jndi.ldap.object.trustURLCodebase=false(最近のJDKのように)の場合でも実行可能なRCEを提供しようとしていますが、当社のセキュリティマネージャーはプロセスの早い段階で攻撃を遮断して、リモートとローカル(クラスのパス上)の両方の攻撃形態を防止しています。

[12月18日更新】 Elasticsearchには、CVE-2021-45105に対する既知の脆弱性はありません。 Log4jの最新版(2.17.0)を含む7.16.2、6.8.22を準備中です。


追加情報

CVE-2021-44228 (Log4jの脆弱性)についてのLiferayの一般的な声明を参照 ここ. Liferayの検索チームは現在、Liferay DXP 7.1-7.4 と Elasticsearch 7.16 の互換性を検証するため、検索エンジン互換性マトリクスに追加する前に、通常のテスト手順を実施しています。 テストが終了次第、この記事は更新されます。

Liferay の Elasticsearch 6 および Elasticsearch 7 コネクタには、この脆弱性の影響を受ける log4j2 バージョンが含まれていますが、このライブラリは脆弱性が露呈するような使われ方はしていません。 Liferay は、影響を受けるコネクタの log4j2 バージョンを更新するよう取り組んでいます。

Liferay Enterprise Search (LES) のお客様は、Elasticソフトウェアの意味合いについて、こちらで詳細をご覧いただけます。

[Update - April 5, 2022] DXP 7.4 Update 17 で、Sidecar Elasticsearch のバージョンが 7.17.0 に更新されました。 詳しくは、 https://issues.liferay.com/browse/LPS-145631 をご覧ください。

検索エンジン適合性マトリクス

対応するコネクタのバージョンや必要なパッチレベルなど、詳細なElasticsearchの互換性については、こちらの情報 を参照してください。

更新しました(2021年12月15日)。互換性マトリックスに Elasticsearch 7.16.x が追加されました。

ベンダーのリファレンス

https://discuss.elastic.co/t/apache-log4j2-remote-code-execution-rce-vulnerability-cve-2021-44228-esa-2021-31/291476


Elastic、Elasticsearch、X-Packは、米国で登録されたElasticsearch BVの商標です。 をはじめ、さまざまな国で

On this page