Log4j 脆弱性詳細レビュー シリーズ 1: 攻撃の背景

Log4j 脆弱性詳細レビュー シリーズ 1: 攻撃の背景

オープンソースのログツールApache Log4j は、かつて重大なリモートコード実行の脆弱性にさらされていました。この脆弱性により、攻撃者は悪意のあるリクエストを作成し、リモートで悪意のあるコードの実行をトリガーできるようになります。ニュースが報じられると、この脆弱性は大きな注目を集めました。半年が経ち、関連の暑さも徐々に和らいできました。今こそ、プロセス全体を徹底的に見直し、そこから教訓を得て、将来同様の問題に遭遇しないようにすべき時です。

クライアント側の保護とコンプライアンスに参加して、すべてのユーザーデータの漏洩を防ぎましょう。

PCI DSS v4.0 標準に準拠しており、Web サイト上の悪意のあるコードや脆弱性を防ぐのに役立ちます。

Akama iのネットワーク セキュリティ サービス ソリューションについて詳しくご覧ください

この 4 部構成の記事シリーズでは、 Akamaiは自社の技術チームの理解、世界中の顧客と協力してこの脆弱性やその他のセキュリティ リスクに対処する中でAkamaiが蓄積してきた経験、インターネット トラフィック全体に対するAkamai の洞察を組み合わせて、 Log4j脆弱性の原因、範囲、悪用方法、進化の道筋、そして最も重要な、私たち全員がそこから学ぶべき教訓を紹介します。

始めましょう。この記事では主に、 Log4j の脆弱性に関する背景情報を紹介します。

1.タイムライン

2021年11月24日 Apache Foundation、広く使用されているJavaベースのログライブラリツールLog4jに、プライバシー情報の漏洩やリモートコード実行( RCE )につながる可能性のある重大な脆弱性があるという通知を受け取りました。この脆弱性は2013年から存在していました

翌日、 Apache Foundation はCVE-2021-44228を保持し、解決策の作業を開始しました。その後12日間にわたり、問題を解決するためにソースコードに複数の変更を加え、 2021年12月9日脆弱性を公表した

公開後、この脆弱性を狙った攻撃が急増し、それ以来、攻撃の規模と範囲は驚くべき速度で拡大し続けています

2. Log4jとは何ですか?

脆弱性を真に理解するには、まずLog4jとは何かを知る必要があります。 Log4jは、 Javaコミュニティの開発者によって広く使用されているライブラリであり、エラー情報や診断情報などをログに記録するためのシンプルでありながら強力なフレームワークを提供します。

Log4j は多くの優れた機能を提供しますが、その 1 つは、コンソール、ファイル、リモートTCPサーバー、 Syslog NT イベント ログ、電子メールなど、複数の宛先にログを記録する機能です。さらに、ログ メッセージ、ログ イベント、カスタム レイアウトなどの階層型フィルタリングもサポートしています

つまり、 Log4j は完全かつ豊富な機能セットを提供しているため、開発者の間で広く普及しており、 Webアプリケーションから組み込みデバイスまでさまざまな場所でLog4j が見られるようになっています

3. 検索とネスト

Log4j は多くの強力な関数をサポートしていますが、最もよく知られている関数の 1 つはLookupです。この機能により、開発者は変数や式をテキストに埋め込んでLog4j がそれを出力する前に自動的に評価できるようになります。たとえば、開発者は次のテキストをログに記録するコードを記述できます

 “${date:MM-dd-yyyy} All Systems Good”

Log4j は、パターン${date:MM-dd-yyyy} をログ検索として認識し、その式を今日日付に置き換えます。たとえば、今日が2021 年12 月20 日の場合 Log4j は上記のログの内容を次のように変更してから、対象の場所に出力します

 “12-20-2021 All Systems Good”

これは開発者にとって非常に便利です。この機能がなければ、開発者は日付を検索し、それを文字列としてフォーマットし、ログ行に追加して出力するコードを手動で記述する必要があります。このようなコードは書くのが面倒でも時間もかからないものの、結局はソフトウェアのコアビジネスロジックとは何の関係もなく、次から次へとプロジェクトに残っていくことになります

Log4jライブラリの既成関数を使用することで、開発者はプロジェクト内のより重要な開発作業に集中でき、ロギングに関連するさまざまなタスクをLog4jに処理させることができます

Log4j は、これらのタイプの検索式の多くをサポートしています。この記事の内容に密接に関連するenvlower の2 つを見てみましょう env は、ホスト システム上の環境変数をログ行に含めることができます。たとえば、開発者は次のテキストをログに記録できます

 “The current user is ${env:USER}”

ソフトウェアが管理者ユーザーとして実行されていると仮定すると、上記のログには次のように出力されます

 “The current user is Administrator”

envdatetext に新しいデータを挿入しますが lower は既存のコンテンツを操作するために使用できます。 Log4j は、式に現れる英語の文字を直接小文字に変換します。例えば​​:

 “The lower case text is ${lower:ABCDEFG}”

出力は次のようになります:

 “The lower case text is abcdefg”

この例自体は意味をなさないようですが、自分で文字を小文字に変換してみてはいかがでしょうか?忘れないでください、 Log4jでは検索式をネストすることも可能で、これは非常に便利です

最初の 2 つの式を次の形式にネストできます

 “The lower case current user is ${lower:${env:USER}}”

これにより、 Log4j は最初に${env:USER}式をAdministrator評価し、次にそれをlowerに渡して小文字のadministratorを生成し、最終的に次のような出力を生成します

 “The lower case current user is administrator”

4. JNDI

date env lower は興味深く便利ですが、脆弱性はJNDIルックアップによってのみ発生します JNDI ( Java Naming and Directory Interface)は、 Java開発および実行環境に組み込まれたメカニズムあり、共通インターフェースを通じてさまざまなディレクトリ サービス内の情報を簡単に照会できます

実際には、サポートできるディレクトリ サービスにはいくつかの種類があります。たとえば、 JNDI はDNSサーバーにクエリを実行してホストのIPアドレスを検出することをサポートしADおよびLDAP内のディレクトリ エントリをクエリできます。現在実行中のソフトウェアに固有の構成オプションなどの環境エントリについて実行中のJava環境自体を照会することもサポートしています

Log4jJNDIルックアップ式を使用すると、開発者はログ テキストに埋め込まれた式を通じてこの非常に強力なサブシステムに直接アクセスできます。たとえば、開発者が次の文字列をログに記録しようとすると

 “The current mail host is ${jndi:java:comp/env/mailhost}”

Log4j は$ {jndi:java:comp/env/mailhost}式をJNDIルックアップとして認識し疑似URL java:comp/env/mailhost をJNDIサブシステム渡します JNDI はこの特定のURLタイプをクエリとして認識し現在実行中のコンポーネントでmailhostと呼ばれる構成オプションを探します

このオプションが http://mymailserver.example.com に設定されていると仮定すると、 JNDI はこの情報をLog4jに返し Log4j は検索式を http://mymailserver.example.com に置き換えて、次の出力を生成します

 “The current mail host is mymailserver.example.com”

5.脆弱性を理解する

つまり、 Apache Log4jのこの脆弱性は、このライブラリ、特にそのルックアップ、ネスト、およびJNDI機能の人気により、攻撃者にとって大きなチャンスとなります。これらの機能は開発者にとって非常に便利ですが、リクエストを通じてデータ漏洩やリモートコード実行の機会も生み出します。この背景情報があれば、脆弱性と、攻撃者がそれをどのように悪用するかをより深く理解できるようになります

<<:  SpringBootはElasticSearchを詳細に統合し、関連する使用方法を説明します

>>:  クラウドネイティブテクノロジーを導入してデジタル変革を加速する方法

推薦する

Docker(パート3):Dockerfileコマンドの詳しい説明

前回の記事「Docker (II): Dockerfile の使い方入門」では、Dockerfile...

KVMLA専用サーバープロモーション:日本cn2サーバー(20M)は935元から、シンガポールcn2サーバー(100M)は765元から

キャビネットの移転後、kvmla は日本 (東京データセンター) とシンガポールのサーバー向けに大き...

justhostはどうですか?ラトビア VPS シンプルレビュー

justhostはどうですか? justhost Latviaはいかがでしょうか? justhost...

仮想マシンの暗号化: ハイパーコンバージドの世界における暗号化戦略

ハイパーコンバージド インフラストラクチャと仮想化が標準となっている世界では、暗号化の必要性がますま...

ウェブサイトの降格や禁止は、実際には検索エンジンによる警告ゲームです。

ウェブサイトがKアウトされる事件が相次いでいます。6月から現在まで、ウェブサイトがKアウトされること...

ハイブリッドクラウド空間をめぐる競争: クラウドコンピューティングはより多くの企業を引き付けるために進化する

長年にわたり、エンタープライズ クラウド コンピューティングは、可能なことと実用的なことの間で慎重に...

SEOスキルの学習: 最も効率的で高品質な外部リンクを作成する方法

まず、外部リンクを構築する目的を理解する必要があります。各外部リンク ストアは投票ポイントに相当する...

2022年のクラウドコンピューティング開発のトレンド

感染症の流行から国際的なサプライチェーンの問題まで、近年、世界のビジネス環境は大きく変化しており、私...

TektonとArgo CDを組み合わせてGitOpsを実装する

以前は、アプリケーションの CI/CD プロセスを完了するために Tekton を使用していましたが...

明らかにした! 1兆ドル規模の市場を支える越境電子商取引コラボレーションツール

2018年11月12日の夕方、杭州市拱墅区にある知宇社のオフィスは明るく照らされていた。プロダクトデ...

Sogou の WeChat 検索は単なる花瓶ですか?

WeChat は確かに簡単には手に入りません。6 億人のユーザーと数百万の公開アカウントを持つ We...

Hostgator: Spring、US cpanel 無制限ホスティング、30% 割引、中小規模の個人および商用ウェブサイト構築に最適

Hostgator の今春のプロモーション第 1 弾が始まりました。cPanel を使用した共有ホス...

App Store 中国、検索アルゴリズムを最適化:名前による検索を復活

8月24日、約1週間の不安が去った後、国内のiOSアプリケーション開発者はようやく落ち着きを取り戻し...

公安部はねずみ講の疑いのある5つのウェブサイトを調査し、処分した。被害額は5億元を超える。

北京ニュース(記者:廖愛玲)国家工商行政管理局と公安部は昨日、「ジェイド・グローバル・ネットワーク」...