BLOG

Log4jの脆弱性を緩和し、将来の悪用を阻止する方法

Catherine Newcomb
Catherine Newcomb

Navi Gill

Navi Gill
Published January 10, 2022


Log4jの脆弱性とは?

この数週間は、IT業界の多くの人々にとって厳しいものでした。12月9日、Javaアプリケーションで広く一般的に使用されているApache Software FoundationのLog4jと呼ばれるロギング ライブラリに重大なゼロデイ脆弱性が発見されたと発表されました。このソフトウェアは何十万ものWebサイトやアプリケーションで、開発者がWebサイトをデバッグしたり、アプリケーションやWebページの動向を追跡したりするためのロギングに使用されています。Log4jフレームワークは、何十万ものオープンソース ソフトウェア プロジェクトで使用されていると推定されています。開発者は、これらのオープンソース ツールからソフトウェアを構築する際に、基礎となっているコードに脆弱性が存在する可能性があるかどうかを調べずに構築することがよくあります。

Log4jの脆弱性と、それによって攻撃者が実行できるエクスプロイトの種類について簡単に説明します。

F5 Labsには次のように記載されています。「Log4jには、Webサイトを通じてLog4jに送信されたデータに特殊な文字列が含まれている場合、Log4jが外部のWebサイトから追加のソフトウェアを自動的に取得して実行してしまうという、これまでに発見されていなかったセキュリティ上の脆弱性があります。攻撃者はこれを悪用することにより、Log4jを実行しているサーバーに任意のソフトウェアを実行させることができ、その中にはサーバーを完全に乗っ取ることができるソフトウェアも含まれます。これは、リモートコード実行(RCE)攻撃と呼ばれています。」

Log4jはビジネスを混乱させる可能性が高い

Log4jは広範に使用されていることから、当初のCVE-2021-44228(通称:Log4Shell)は重大な脆弱性と判断されました。この脆弱性の深刻さに加えて、パッチ自体にも脆弱性が含まれており、それにパッチを当てる必要があることから、IT担当者はしばらくの間、この脆弱性の影響に悩まされることになるでしょう。これに加えて、IT担当者はLog4jのネストされている参照をチェックする必要があります。つまり、ソフトウェアで使用されているライブラリがLog4jライブラリを参照しているかどうかをチェックする必要があります。これはLog4Shellが連鎖的な影響をもたらす可能性があることを意味しています。Log4jの脆弱性とLog4Shellが組織に与える影響の全容を把握することは困難かもしれません。お客様の組織がリスクにさらされている可能性がある場合は、無料の脅威評価を受けてください

まだ対処していない場合は、Log4jを軽減するために最初に行うべきことは、パッチを適用することです。Log4jを実行しているサーバーにパッチを適用してください。Log4jを実行するライブラリを使用しているソフトウェアにパッチを適用してください。とにかくパッチを適用することを続けてください。

これらの脆弱性を発見し、パッチを適用するという根本的かつ包括的なプロセスを継続する中で、Log4Shellエクスプロイトを使用した攻撃から自社を守り、攻撃者がすでに環境に侵入している場合は被害がさらに拡大するのを防ぐことが重要です。また、1月4日に米国連邦取引委員会は、Log4jの重要性を強調した上で、ApacheのLog4Jの脆弱性の修正を怠った組織には法的措置を取る可能性があるという通告を出しました。

たとえパッチを完全に適用したとしても、Log4jがこの種の脆弱性として最初のものでも最後のものでもないことを覚えておくことが重要です。そのため、現在と将来の脆弱性から積極的に自社を保護するとともに、攻撃者がシステムの脆弱性を悪用した場合にネットワークを保護するための計画を立てることが不可欠です。幸いなことに、緩和策は比較的容易に実装できます。

Log4jのような脆弱性を軽減するには、次のことを実施する必要があります。

  1. WAFを導入することで、Log4Shellを使用した攻撃やその他の同種の脆弱性から組織をプロアクティブに保護する
  2. 組織が攻撃された場合、ネットワーク内で深刻な被害が発生する前にエクスプロイトを阻止できるような安全策を講じる
  3. 脆弱性の影響の全容を把握するための監査を実施する
  4. 脆弱性を使用または参照しているすべてのコードにパッチを適用し、パッチが適用されていない箇所がないことを監査で確認する

既知の攻撃ベクトルをブロックするシグネチャを使用したLog4jの脆弱性の緩和

この問題を放置しておくと、サイバー攻撃者は数千ものWebサイトやオンライン アプリケーションをあっという間に乗っ取り、機密データを窃取できてしまいます。最も効果的な対策は、最新バージョンのLog4jを使用してアプリケーションのコードにパッチを適用し、Web Application Firewall(WAF)で悪意のあるリクエストをブロックすることです。

また、脆弱なサーバーやソフトウェア スタック上のLog4jの脆弱性に対して必要なパッチをインストールすると同時に、Log4Shellの攻撃から組織を保護する必要があるかもしれません。そこでもWAFが役立ちます。

F5のWAFソリューションは、F5の一貫した堅牢なWAFエンジンに構築されており、お客様のセキュリティ ニーズに最適な導入モデルと消費モデルが用意されています。そのため、お客様のインフラストラクチャにおけるApache Log4jのリモートコード実行(RCE)脆弱性の影響を軽減できます。F5では、堅牢なWAFエンジンでアプリケーションを保護するために、次の4つのオプションを提供しています。

  1. F5 Advanced WAF
  2. NGINX App Protect WAF
  3. Silverline WAF
  4. Volterra WAF

F5は、Log4jの脆弱性に対する既知の攻撃ベクトルをブロックする一連のシグネチャを公開しました。F5 Advanced WAFNGINX App Protect WAFは、Java Naming and Directory Interface(JNDI)インジェクションに特化したシグネチャと一般的なJNDIインジェクションのシグネチャを使用して、エクスプロイトの試行をブロックすることができます。これらのシグネチャは、Server-Side Codeインジェクション シグネチャ セットの一部であり、脅威の継続的な調査に基づいて更新され、Log4Shell攻撃を効果的に検出するための新しいルールを設定した既知のWAFバイパスを提供します。これにより、F5 WAFは「仮想パッチ適用」を可能にしています。BIG-IPおよびNGINXアプリケーション セキュリティ製品の緩和サポートについては、こちらをご覧ください

F5 Advanced WAFは、単にOWASPトップ10を防御するだけでなく、高度な保護機能を備えているため、従来のアプリケーションを自社で管理してきめ細かく制御したいと考えているセキュリティ重視の企業に最適です。すでにF5 BIG-IPをご利用のお客様は、業界で最も強力なWAFであるF5 WAFエンジンがネットワーク上に導入されています。BIG-IPにAdvanced WAFをライセンスすると、特にF5 BESTライセンシーであれば、新たな脅威や継続的な脅威に対する緩和措置を自動化し、セキュリティの有効性を向上させて保護を強化し、機械学習や行動分析を活用してノータッチでアプリケーションを保護できます。

アジャイルDevOpsチームのために構築され、モダンなインフラストラクチャやKubernetes環境を保護するために設計されたセルフマネージドなWAFソリューションについては、NGINX App Protect WAFがお客様のニーズに最適です。NGINX App Protect WAFの詳細については、Mitigating the log4j Vulnerability with NGINXブログをご覧ください。

Advanced WAFやNGINX App Protect WAFと同様の保護機能は利用したいが、エクスプロイトをすぐに緩和するためにハンズオフのアプローチが必要または望ましい場合は、F5のクラウドベースのSilverline WAFのようなマネージド サービスが最適となるでしょう。Silverline WAFは、F5で最高峰のフルマネージドWAFサービスで、ハイブリッドまたはマルチクラウド環境でアプリケーションを保護する包括的なソリューションを提供し、F5のSOCのセキュリティ専門チームがサポートします。F5 Silverline SOCチームは、必要な緩和策を実施し、脅威を継続的に監視し、必要な緩和策を適用し、Log4jなどの脆弱性から保護します。

また、Volterra WAFプラットフォームでは、Log4jの脆弱性に関連する暴露をさらに軽減するために、シグネチャが更新されました。現在、これらのシグネチャはデフォルトのWAFポリシーに含まれており、Volterra WAFをご利用のお客様がLog4Shell攻撃を軽減するために追加のアクションを行う必要はありません。Volterra WAFは、SaaSベースの導入でクラウドネイティブなWAFを探しているユーザーにとって最適な選択肢となります。

F5 Advanced WAF、NGINX App Protect WAF、F5 Silverline WAF、Volterra WAFといったF5のWAF製品およびサービスは、アプリケーションに最適な対策を施し、アプリケーション層の脅威から保護するために、必要な場所で連携させて利用し導入することができます。

さらに、単発的な攻撃から高度な攻撃キャンペーンを検知することは困難です。F5 Advanced WAFやNGINX App Protect WAFで利用できるF5 Threat Campaignsは、現在の攻撃キャンペーンを正確に検知してプロアクティブにブロックすることで、高度な攻撃からアプリケーションやITインフラストラクチャを防御します。F5 WAFは、それ自体が重要なセキュリティ管理ポイントとして機能しますが、脅威インテリジェンスは、単発の攻撃インシデントをより広範で高度なキャンペーンに関連付けることができため、WAFのベースライン セキュリティ ポリシーを回避する可能性のある標的型攻撃から防御できます。Threat Campaignsは、Advanced WAFとNGINX App Protect WAFの導入に簡単に追加でき、脅威を検出してブロックするセキュリティを自動化することができます。

Log4Shell攻撃により侵害された場合の防衛策の確立

Log4jを使用しているライブラリの数を考えると、この脆弱性が組織に与える影響の全容をすぐに把握することは難しいかもしれません。この間は、残念ながらエクスプロイトに対して脆弱になる可能性があります。

たとえば、攻撃者は不正なエンドポイントへのリクエストを作成し、マルウェアを選択して導入する可能性があります。または、攻撃者がサーバーへのリクエストを作成することで、侵害されたサーバーは通常のオペレーションとは逆のハッカーからのコマンドを実行し、組織は危険にさらされる可能性もあります。

攻撃者がすでにこの脆弱性を悪用していたとしても、選択肢がないわけではありません。幸いなことに、攻撃者がLog4Shellを悪用してリモート コードを実行した後で、送信サーバーのトラフィックを検査することで、ネットワーク内でのエクスプロイトの拡大を阻止することができます。

たとえば、ネットワークのエッジに、暗号化されたトラフィック パケットを復号化して検査できるソリューションがあるとします。その場合、Log4jの脆弱性を悪用して拡大したマルウェアや悪意のあるトラフィックをキャッチし、被害がさらに拡大する前にブロックすることができます。このトラフィックの例としては、さらなる攻撃を仕掛けるためにコマンドアンドコントロール サーバーにアクセスしたり、データを流出させたりすることが挙げられます。サーバーは一般的にインターネットに接続されているため、サーバーのトラフィックはTLSを介して環境を通過します。したがって、暗号化されたサーバー トラフィックを検査することは、すでに侵害され脆弱になっている環境内に脆弱性が拡散するのを封じ込めて阻止する上で欠かせません。

F5 SSL Orchestratorのような製品を使用することで、暗号化されたトラフィックを可視化し、復号化したアウトバウンドの分析を実行することで、暗号化された脅威を阻止できます。SSL Orchestrator は、ネットワークを通過するトラフィック(サーバー トラフィックを含む)を復号化してサードパーティの検査サービス(NGFW、WAF、SWG、IPS、DLPなど)に送信し、トラフィックを許可、ブロック、またはバイパスすることで、暗号化されたマルウェアがネットワークに侵入したときに拡散しないようにして、C2(コマンド アンド コントロール)サーバーへの悪意のあるトラフィックや流出したデータが環境外に流出しないようにします。SSL Orchestratorは、SSL/TLSインフラストラクチャを強化し、SSL/TLS暗号化トラフィックを可視するセキュリティ ソリューションを提供し、既存のセキュリティ投資を最適化して最大限に活用し、カスケード攻撃からネットワークを保護することを目的として設計されています。

まとめ

Log4jは、深刻かつ広範囲に及ぶ脆弱性として最初のものでも最後のものでもありません。現在、Log4jのエクスプロイトから組織を保護することは重要ですが(記事作成時点ではまだ継続中)、避けられない次の重大な脆弱性から資産を保護するために、アプリケーションとネットワークのセキュリティを強化することも同じくらい重要です。

次の重大な脆弱性が発見された場合に備えて準備するということは、次の4つのステップを実行することを意味します。理想としては、脆弱性が公表される前にWAFを導入し、Log4Shellなどの既知の攻撃ベクトルからアプリケーションを保護することです。さらに、これも理想ですが、脆弱性が発表される前に、ネットワークを保護するソリューションを導入しておくことで、パッチを適用している間に攻撃を受け、攻撃者がネットワークに侵入できたとしても、ハッカーがエクスプロイトを使用してサーバーを制御したり、データを流出させたりすることを防ぐことができます。脆弱性が発表されたときに次に取るべき行動は、自社への影響を把握することです(F5の無料の脅威評価が役立ちます)。次はひたすらパッチを適用することです。この4つの戦略を実行することで、次の脆弱性が発見された場合に備えることができます。

F5は、攻撃者がお客様の環境で脆弱性を悪用するのを防ぎ、悪用された場合でも、被害や侵害の拡大を防止する包括的な緩和計画の作成を支援します。

Log4jの脆弱性やそれに類似した脆弱性の緩和策についてご質問がある場合は、F5のセールス チームにお問い合わせいただくか、sales@f5.comまでお問い合わせください。Log4jに対するF5の対応についての最新情報は、ブログをご覧ください。

現在、攻撃を受けていて緊急の支援が必要な場合は、セキュリティ オペレーション センター(SOC)の電話番号(866)329-4253または+1(206)272-7969までお電話ください。国際電話については、https://www.f5.com/attackをご覧ください。すでにBIG-IPをご利用のお客様は、セキュリティ インシデント対応チームまでお問い合わせください。