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を詳細に統合し、関連する使用方法を説明します

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

推薦する

広告提携はますます多様化しています。ウェブマスターは提携を選択する際に注意する必要があります。

最近は広告同盟が多すぎます。数日前、ある広告同盟の広告で、100元使うごとに100元もらえると書いて...

よく使われるWeiboマーケティング戦略とテクニックは何ですか?

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスWeibo の使用頻度は...

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

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

王通: コンテンツ要素が SEO に与える影響の分析

私が初めてインターネット マーケティングに触れたとき、友人のアーチーが「インターネット マーケティン...

3B戦争が再び勃発:360DianjingプラットフォームVS百度風潮システム

360 Dianjingマーケティングプラットフォームは最近突然人気が出てきました。ほとんどの商人は...

タクシーアプリが値上げ、物議を醸し、削除される可能性、多くのインターネット大手が参入

市場全体のダウンロード数は100万を超えており、事業者は政策強化を前に規模拡大を急いでいる。最近、一...

推奨:backupsy-7 knife/KVM/512mメモリ/500Gハードディスク

大容量ハードディスクを備えた VPS が必要な人はたくさんいるのに、大容量ハードディスクを備えた V...

Yardvps 生涯 50% オフ プロモーション

yardvps ではこれまでこのようなお得な割引コードを発行したことがないようです。今回は 5% 割...

百度の調整は将来の検索エンジン開発の傾向を明らかにする

百度は6月22日から大規模な調整を行っており、6月末まで続いた。最も大きな変化は28日に起きた。当初...

クラウドコンピューティング史上初の開封ライブ放送:アリババクラウド神龍の技術アーキテクチャが初めて完全に公開

5月16日、アリババクラウドが自社開発した最先端のエラスティックコンピューティング技術アーキテクチャ...

中国初のドメイン名詐欺事件の被告が金華市で懲役10年の判決を受ける

(写真提供:A5 Webmaster Network)今年28歳になる江氏は、もともと明るい将来を期...

海外でのゲームプロモーションにおいてKOLとの最適な連携を実現するにはどうすればよいでしょうか?

マーケティングプロモーションは、海外でのゲームのプロモーション企画、公開、運営に欠かせない要素です。...

YYは株式公開したが、申込は不活発だった。当初の投資家は3000万ドルを申し込んだ。

記者の辛元偉が上海からレポートしますYY Inc.(銘柄コード「YY」)は、6カ月余りを経て米国での...

1ヶ月以内にキーワードをホームページに載せる体験談

実際、私は長い間SEOと連絡を取りました(登録時間2009-3-5)。オンラインで1か月もかかりませ...

素晴らしい 20 年の歴史を持つブランドのコンピューター ルーム、サーバーが 30% オフ、ぜひ手に入れて獲得しましょう!

グループ内の「Meteor Guoyan」という人物から、1996 年にインターネット サービスを開...