オープンソースのログツール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 がそれを出力する前に自動的に評価できるようになります。たとえば、開発者は次のテキストをログに記録するコードを記述できます。 Log4j は、パターン${date:MM-dd-yyyy} をログ検索として認識し、その式を今日の日付に置き換えます。たとえば、今日が2021 年12 月20 日の場合、 Log4j は上記のログの内容を次のように変更してから、対象の場所に出力します。 これは開発者にとって非常に便利です。この機能がなければ、開発者は日付を検索し、それを文字列としてフォーマットし、ログ行に追加して出力するコードを手動で記述する必要があります。このようなコードは書くのが面倒でも時間もかからないものの、結局はソフトウェアのコアビジネスロジックとは何の関係もなく、次から次へとプロジェクトに残っていくことになります。 Log4jライブラリの既成関数を使用することで、開発者はプロジェクト内のより重要な開発作業に集中でき、ロギングに関連するさまざまなタスクをLog4jに処理させることができます。 Log4j は、これらのタイプの検索式の多くをサポートしています。この記事の内容に密接に関連するenvとlower の2 つを見てみましょう。 env は、ホスト システム上の環境変数をログ行に含めることができます。たとえば、開発者は次のテキストをログに記録できます。 ソフトウェアが管理者ユーザーとして実行されていると仮定すると、上記のログには次のように出力されます。 envやdateはtext に新しいデータを挿入しますが、 lower は既存のコンテンツを操作するために使用できます。 Log4j は、式に現れる英語の文字を直接小文字に変換します。例えば: 出力は次のようになります: この例自体は意味をなさないようですが、自分で文字を小文字に変換してみてはいかがでしょうか?忘れないでください、 Log4jでは検索式をネストすることも可能で、これは非常に便利です。 最初の 2 つの式を次の形式にネストできます。 これにより、 Log4j は最初に${env:USER}式をAdministratorに評価し、次にそれをlowerに渡して小文字のadministratorを生成し、最終的に次のような出力を生成します。 4. JNDIdate 、 env 、 lower は興味深く便利ですが、脆弱性はJNDIルックアップによってのみ発生します。 JNDI ( Java Naming and Directory Interface)は、 Java開発および実行環境に組み込まれたメカニズムであり、共通インターフェースを通じてさまざまなディレクトリ サービス内の情報を簡単に照会できます。 実際には、サポートできるディレクトリ サービスにはいくつかの種類があります。たとえば、 JNDI はDNSサーバーにクエリを実行してホストのIPアドレスを検出することをサポートし、 ADおよびLDAP内のディレクトリ エントリをクエリできます。現在実行中のソフトウェアに固有の構成オプションなどの環境エントリについて、実行中のJava環境自体を照会することもサポートしています。 Log4jのJNDIルックアップ式を使用すると、開発者はログ テキストに埋め込まれた式を通じてこの非常に強力なサブシステムに直接アクセスできます。たとえば、開発者が次の文字列をログに記録しようとすると、 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 に置き換えて、次の出力を生成します。 5.脆弱性を理解するつまり、 Apache Log4jのこの脆弱性は、このライブラリ、特にそのルックアップ、ネスト、およびJNDI機能の人気により、攻撃者にとって大きなチャンスとなります。これらの機能は開発者にとって非常に便利ですが、リクエストを通じてデータ漏洩やリモートコード実行の機会も生み出します。この背景情報があれば、脆弱性と、攻撃者がそれをどのように悪用するかをより深く理解できるようになります。 |
<<: SpringBootはElasticSearchを詳細に統合し、関連する使用方法を説明します
>>: クラウドネイティブテクノロジーを導入してデジタル変革を加速する方法
最近は広告同盟が多すぎます。数日前、ある広告同盟の広告で、100元使うごとに100元もらえると書いて...
ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスWeibo の使用頻度は...
WeChat は確かに簡単には手に入りません。6 億人のユーザーと数百万の公開アカウントを持つ We...
私が初めてインターネット マーケティングに触れたとき、友人のアーチーが「インターネット マーケティン...
360 Dianjingマーケティングプラットフォームは最近突然人気が出てきました。ほとんどの商人は...
市場全体のダウンロード数は100万を超えており、事業者は政策強化を前に規模拡大を急いでいる。最近、一...
大容量ハードディスクを備えた VPS が必要な人はたくさんいるのに、大容量ハードディスクを備えた V...
yardvps ではこれまでこのようなお得な割引コードを発行したことがないようです。今回は 5% 割...
百度は6月22日から大規模な調整を行っており、6月末まで続いた。最も大きな変化は28日に起きた。当初...
5月16日、アリババクラウドが自社開発した最先端のエラスティックコンピューティング技術アーキテクチャ...
(写真提供:A5 Webmaster Network)今年28歳になる江氏は、もともと明るい将来を期...
マーケティングプロモーションは、海外でのゲームのプロモーション企画、公開、運営に欠かせない要素です。...
記者の辛元偉が上海からレポートしますYY Inc.(銘柄コード「YY」)は、6カ月余りを経て米国での...
実際、私は長い間SEOと連絡を取りました(登録時間2009-3-5)。オンラインで1か月もかかりませ...
グループ内の「Meteor Guoyan」という人物から、1996 年にインターネット サービスを開...