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

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

推薦する

フォーラムに人々を引き付ける5つの魔法のツール

SEO の初期の発展においては、フォーラム BBS が SEOER がビジネスを始めるための最も一般...

テンセント、フィッシングサイトとしてQQの大規模データ漏洩に反応

大規模なQQデータ漏洩により、パスワードや友達サークルなどの個人情報を閲覧できる可能性があると報告さ...

電子商取引ウェブサイトのコンバージョン率に影響を与える主な要因に関する詳細な議論

普段はこうした問題にあまり注意を払っていませんが、今日、トラフィックと取引数の間になぜこんなに大きな...

中国のパブリッククラウドの生き残り企業の特徴分析

残念ながら、この記事はあなた向けに書かれたものではありません。 10年後のあなたは、この記事の対象読...

スマートシティにおけるクラウドコンピューティングとIoT技術の応用

世界の都市は大規模な開発の顕著な傾向を示しています。この発展傾向により、都市建設に対する要求はより高...

フレンドリーリンクはウェブサイトにどの程度の影響を与えますか?

Naihe の友人は、フレンドリーリンクのせいで多くのキーワードを失いました。そのため、Naihe ...

プロモーションに多額の費用をかけたのに、まだ効果がない?読めば分かるよ

月給5,000~50,000のこれらのプロジェクトはあなたの将来です企業は、売り上げを増やし、より多...

個人ウェブマスターのウェブサイトの位置づけ方

このインターネット時代では、オンライン ゴールド ラッシュの熱狂に加わりたい人がますます増えています...

[速報] Google、コアアルゴリズムとSERP PCアップグレードのプレビューを開始

元旦の直後から、Google は仕事のリズムに入り、コア アルゴリズムのアップグレードと SERP ...

Alibaba Cloud がサーバーレスを新たなレベルにアップグレード

[51CTO.com からのオリジナル記事] 過去 10 年間で、クラウド コンピューティングは、イ...

外部ハイパーリンクとプレーンテキストは Web サイトにどのような影響を与えますか?

ウェブサイトの最適化といえば、編集者は重要な外部リンクの構築について言及しなければなりません。外部リ...

Alibaba Cloud、最新のECS主力販売インスタンスの40%値下げとフルスタッククラウド製品の無料トライアルを発表

4月11日、アリババクラウドインテリジェンスCTOの周景仁氏は北京クラウドサミットでECSエンタープ...

Baidu はどのようにして独創性を保護するのでしょうか? Baidu Originalについて

オリジナリティは常に大きな問題であり、より広い意味で言えば、インターネットの生態環境はますます悪化し...

hosthatch: 年間 15 ドル、512 MB メモリ/1 コア/250 g ハード ドライブ/1 T トラフィック、メモリ 2 倍 + 9 T トラフィックの場合は +7 ドル

ホストハッチは米国独立記念日のプロモーションを行っています。この作戦は1か月遅れと言えるでしょうか?...

デジタルワークスペース:長期計画と即時の救済

2020年は新年の初めから特別な年になる運命にあった。新型コロナウイルス感染症の流行は依然として続い...