CVE-2021-44228 に関して先日「Log4jのゼロデイ脆弱性とNew Relic Javaエージェント」にてお知らせしました。追加の脆弱性が公開されたこともうけてNew Relicセキュリティチームが投稿した「Security guidance for New Relic customers related to Apache Log4j vulnerabilities」の抄訳記事です。
New Relicは、2021年12月9日に公開されたオープンソースのApache Log4jフレームワークの重大な脆弱性と、2021年12月14日に追加公開された低リスクの脆弱性に対応するため、Javaエージェントとコンテナ型プライベートミニオン(CPM)の更新をリリースしました。この重大な脆弱性(CVE-2021-44228)を悪用することで、悪意のある行為者がシステムを遠隔操作したり、データを流出させたりすることが可能です。大切なNew Relicのお客様として、この脆弱性についての詳細な情報、この脆弱性からシステムを保護するためにNew Relicが行っていること、この問題から組織を守るためにお客様が取ることのできる手段を提供したいと思います。
New Relic は、新しい情報が入手され次第、セキュリティ速報とお客様向けガイダンスを更新していきます。
最新の情報は各ガイダンスのリンク先を参照してください。
アクションの呼びかけ: Apache Log4j の脆弱性 CVE-2021-44228 は、深刻度が非常に高く、可能な限りすぐに修正する必要があります。
推奨される対処法は?
この脆弱性を修正するために、Apache Log4j をできるだけ早くバージョン 2.16.0 以降にアップグレードすることが重要です。
- New Relic は、最近 log4j フレームワークで確認された重大な脆弱性である CVE-2021-44228 と CVE-2021-45046 を是正するために 2 つの製品アップデートをリリースしています。
- Java エージェントをアップグレードしてください。Apache Log4j フレームワークの脆弱性に対応した新バージョンが利用可能です。回避策を含むこのアップデートに関する追加情報は、New Relic の Security Bulletin NR21-03 に概説されています。
- コンテナ型プライベートミニオン (CPM) をアップグレードしてください。このアップデートに関する詳細な情報は、New Relic のSecurity Bulletin NR21-04 に概説されています。
- New Relic は、New Relic APM が監視するサービスのうち、log4j に依存し、脆弱性の可能性があるサービスを特定するためのオープンソーススクリプト nr-find-log4j を公開しました。使用方法については、https://github.com/newrelic-experimental/nr-find-log4j を参照してください。
- New Relic の APM Environment 機能(日本語紹介記事)は、脆弱なバージョンの log4j が含まれているために、エージェントやアプリケーションが危険にさらされているかどうかを特定するのに役立ちます。 JVMランタイムにロードされた jar を表示すると、log4j-core 2.x が存在するかどうか、また、どのバージョンの newrelic エージェントが使用されているかを特定し、セキュリティ対応プロセスを開始して、その影響を判断することが可能です。
- New Relic Log Management を使用すると、最近の log4j セキュリティ脆弱性のエクスプロイトを試みた既存のログレコードを検索するのに役立ちます。ログ記録には、この脆弱性を悪用しようとした既知の試みが表示されている場合があり、サービス内の悪意ある行為者を追跡するのに役立つ場合があります。
- まず、New Relic One の [Logs] を選択します。
- 次に、検索バーの [Find logs where] に
"jndi:ldap"
と入力します。 - 最後に、[Query logs]を選択します。
jndi:ldap
を含むログがすべて表示されます。
脆弱性が発表されてから、New Relicはデータを守るためにどのようなことをしてきたのでしょうか?
New Relicのセキュリティ対応プロセスは2021年12月9日にlog4jの脆弱性が公表された直後から開始されました。確立された脆弱性管理プロセスにより進められ、当社のエンジニアリングチームは迅速にアップデートをリリースしました。当社のチームは、New Relic のエンジニア、当社のパートナー、ベンダー、およびサブプロセッサーと真摯に協力し、当社の内部インフラ全体で包括的な修復が行われるように努めています。
Apache Log4j JNDI 脆弱性 CVE-2021-44228 とは何ですか?
NIST National Vulnerability Databaseによると、「Apache Log4j2 <=2.14.1において設定、ログメッセージ、パラメーターで使用されるJNDI機能は、攻撃者が管理するLDAPや他のJNDI関連エンドポイントから保護されません。ログメッセージやログメッセージパラメーターを制御できる攻撃者は、メッセージの検索置換(lookup)が有効な場合、LDAP サーバーから読み込まれた任意のコードを実行させることができます。log4j 2.15.0 からはこの動作はデフォルトで無効化されています。」
また、この脆弱性は、リモートでのコード実行が緩和された場合であっても、データの流出に利用される可能性があります。このため、CVE-2021-44228については、現在のJavaのバージョンに関係なく、すべてのlog4jのインスタンスを2.15.0にアップデートするか、適切な技術的緩和策を実装することをお勧めします。
脆弱性が発表されてから、New Relicはデータを守るためにどのようなことをしてきたのでしょうか?
New Relicのセキュリティ対応プロセスは2021年12月9日にlog4jの脆弱性が公表された直後から開始されました。確立された脆弱性管理プロセスにより進められ、当社のエンジニアリングチームは迅速にアップデートをリリースしました。当社のチームは、New Relic のエンジニア、当社のパートナー、ベンダー、およびサブプロセッサーと真摯に協力し、当社の内部インフラ全体で包括的な修復が行われるように努めています。
Apache Log4j JNDI 脆弱性 CVE-2021-44228 とは何ですか?
NIST National Vulnerability Databaseによると、「Apache Log4j2 <=2.14.1において設定、ログメッセージ、パラメーターで使用されるJNDI機能は、攻撃者が管理するLDAPや他のJNDI関連エンドポイントから保護されません。ログメッセージやログメッセージパラメーターを制御できる攻撃者は、メッセージの検索置換(lookup)が有効な場合、LDAP サーバーから読み込まれた任意のコードを実行させることができます。log4j 2.15.0 からはこの動作はデフォルトで無効化されています。」
また、この脆弱性は、リモートでのコード実行が緩和された場合であっても、データの流出に利用される可能性があります。このため、CVE-2021-44228については、現在のJavaのバージョンに関係なく、すべてのlog4jのインスタンスを2.15.0にアップデートするか、適切な技術的緩和策を実装することをお勧めします。
Apache Log4j CVE-2021-45046とは何ですか?
NIST National Vulnerability Database によると、「Apache Log4j 2.15.0 の CVE-2021-44228 に対処するための修正は、特定のデフォルトではない構成において不完全であることが指摘されています。これにより、ロギング構成が、Context Lookup (例: $${ctx:loginId}) または Thread Context Map パターン (%X, %mdc, %MDC) のいずれかでデフォルト以外のパターンレイアウトを使用する場合、Thread Context Map (MDC) 入力データを制御できる攻撃者が、JNDI Lookupパターンを使用して不正な入力データを作成し、サービス拒否 (DOS) 攻撃を引き起こすことが可能でした」 と述べています。
さらに、「Log4j 2.15.0 は、デフォルトで JNDI LDAP ルックアップを localhost に制限しています。システムプロパティ `log4j2.noFormatMsgLookup` を `true` に設定する設定などを含む以前の緩和策は、この特定の脆弱性を緩和するものではないことに注意してください。Log4j 2.16.0 では、メッセージルックアップパターンのサポートを削除し、JNDI 機能をデフォルトで無効にすることで、この問題を修正しています。この問題は、以前のリリース (<2.16.0) では、クラスパスから JndiLookup クラスを削除することで軽減できます (例: zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
)。」と追加しています。
New Relic に信頼を寄せていただきありがとうございます。
お客様のデータを安全に保つことは New Relic の最優先事項です。当社では、アプリケーションやシステムに新しい脆弱性がないか継続的にスキャンし、監視する脆弱性管理コンポーネントを含む、確立されたセキュリティプログラムを導入しています。脆弱性管理プログラムは、当社の SOC2 認証の一環として毎年見直されており、最新の SOC2 レポートや、プログラムの詳細については、NDA の下で喜んで共有させていただきます。
ご質問やお困りのことがございましたら、担当のアカウントチームにご連絡いただくか、support.newrelic.comからサポートチームへお問い合わせください。
The views expressed on this blog are those of the author and do not necessarily reflect the views of New Relic. Any solutions offered by the author are environment-specific and not part of the commercial solutions or support offered by New Relic. Please join us exclusively at the Explorers Hub (discuss.newrelic.com) for questions and support related to this blog post. This blog may contain links to content on third-party sites. By providing such links, New Relic does not adopt, guarantee, approve or endorse the information, views or products available on such sites.