
코더들이 보안을 정복하다: 공유 및 학습 시리즈 - XXE Injection
XML External Entity Injection攻撃(XXE injectionと略されることもある)は、発生から数年経っても話題になっている古典的な脆弱性に比べると、比較的新しい攻撃です。しかし、現在、ハッキングコミュニティの間では非常に人気があり、成功例を重ねることでさらに人気が高まっています。
実際、OWASPは、XXEインジェクションを、サイトが注意し、積極的に防御する必要があるトップ10の脆弱性の1つとして挙げています。しかし、心配する必要はありません。XXEインジェクションは、サイバー攻撃で使用されている他のエクスプロイトよりも強力なものではありません。ただ、少しだけ新しく、少しだけ理解されていないだけです。防ぐことができますし、実際に完全に止めることもできます。
このエピソードでは、以下のことを学びます。
- 攻撃者がXXEインジェクションを使用する方法
- XXE注入が危険な理由
- この脆弱性を防ぐことができる技術
攻撃者はどのようにXXEインジェクションを引き起こすのか?
XXEインジェクションの脆弱性は、悪意のあるユーザーがXMLコードを送信する機能を与えられた場合に発生する可能性があります。悪意のあるユーザは、この機能を使って、外部のエンティティへの参照を作成します。この外部参照とコードは、デフォルト設定のXMLパーサーや、脆弱な設定のXMLパーサーをすり抜けるように設計されています。
この攻撃者は、XML規格がエンティティの概念をある種の記憶装置として定義しているが、その記憶装置は外部にも内部にもあるという事実を利用しています。適切に使用すれば、XMLプロセッサがリモートリソースにアクセスできるようになります。多くの場合、攻撃者はこの機能を利用して、Webサイトの内部構造を探ったり、リモートリソースにアクセスしようとする大規模なシステムプロセスを起動してサービス拒否攻撃を行ったり、さらにはローカルホストから自分がコントロールするリモートホストにデータをダンプしたりするなど、XMLデータベースに含まれるパスワードや個人情報などの重要なデータを流出させるのに適した手法となっています。
攻撃に使われる実際のコードは、実体のある機能を利用するだけの非常に単純なものであることが多い。例えば、ハッカーがマスターパスワードファイルにアクセスすることができるようなものです。
<!ENTITY hackwithxxe SYSTEM file:///etc/password>
なぜXXEインジェクションは危険なのか?
XXEインジェクション攻撃が非常に危険であり、また蔓延している理由はいくつかあります。1つは、現在あまり理解されていない脆弱性であること。そして、この脆弱性を悪用することで攻撃者が得られる利益は相当なものです。1つは、持続的な攻撃者が内部ネットワークのすべてのパスをゆっくりとマッピングしたり、ポートをスキャンしたりできることです。これにはかなりの時間がかかるかもしれませんが、ハッカーは信頼されたXMLパーサーによってクリアされたXMLコードをサーバーに送信しているだけなので、ターゲットネットワーク上のアクティブな防御によってハッカーの活動が発見される可能性はほとんどありません。
いったんマップが作成されると、攻撃者は同じXXEインジェクション技術を使用して、必要なファイルを取得し、直接情報を盗んだり、有効なユーザー認証情報を侵害して二次攻撃に利用したりすることができます。最後に、ただ騒ぎ立てて悪意を持ちたい攻撃者は、サービス拒否攻撃を誘発し、システムを停滞させるように設計された遠隔地のリソースにアクセスするようにアプリケーションに命令するといったことができます。
XXEインジェクション脆弱性の解消
XXEインジェクション攻撃が急増しているため、多くのXMLパーサーは外部エンティティ(DTDと呼ばれることもある)をデフォルトで完全に無効にし始めています。このような場合、重要なのは、その機能を有効にしないことです。
しかし、DTDを許可しているパーサーでも、その機能を無効にすることができます。一般的には、完全にブロックするためには以下のような記述が必要になりますが、必要なコードを正確に把握するためには、ローカルフレームワークのドキュメントを確認してください。
factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true)。
セキュリティの原則に従って、すべてのユーザーの入力をサニタイズし、アプリケーション全体のフィルタを使用して検証する必要があります。GET や POST のパラメータ、HTTP ヘッダー、Cookie も忘れずに入れてください。また、パーサーに処理させたい特定の DTD やコマンドのホワイトリストを作成し、それ以外のものを禁止することもできます。
ホワイトリストやフィルタリングは有効ですが、XXEインジェクション攻撃が増加しているため、機能が必要でない場合はDTDサポートを完全に無効にすることをお勧めします。
XXE Injectionsの詳細情報
さらに、OWASPがXXEインジェクション攻撃についてどのように述べているかを読んでみてください。また、サイバーセキュリティチームを究極のサイバー戦士に育成するSecure Code Warrior プラットフォームの無料デモで、新たに得た防御知識を試すこともできます。この脆弱性やその他の脅威への対策については、Secure Code Warrior ブログをご覧ください。


간단히 XXE 인젝션이라고도 하는 XML 외부 엔티티 인젝션 (External Entity Injection) 공격은 비교적 새로운 공격이지만, 현재 해킹 커뮤니티에서 매우 인기가 있으며 성공을 거두면서 그 수가 더욱 증가하고 있습니다.

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

XML External Entity Injection攻撃(XXE injectionと略されることもある)は、発生から数年経っても話題になっている古典的な脆弱性に比べると、比較的新しい攻撃です。しかし、現在、ハッキングコミュニティの間では非常に人気があり、成功例を重ねることでさらに人気が高まっています。
実際、OWASPは、XXEインジェクションを、サイトが注意し、積極的に防御する必要があるトップ10の脆弱性の1つとして挙げています。しかし、心配する必要はありません。XXEインジェクションは、サイバー攻撃で使用されている他のエクスプロイトよりも強力なものではありません。ただ、少しだけ新しく、少しだけ理解されていないだけです。防ぐことができますし、実際に完全に止めることもできます。
このエピソードでは、以下のことを学びます。
- 攻撃者がXXEインジェクションを使用する方法
- XXE注入が危険な理由
- この脆弱性を防ぐことができる技術
攻撃者はどのようにXXEインジェクションを引き起こすのか?
XXEインジェクションの脆弱性は、悪意のあるユーザーがXMLコードを送信する機能を与えられた場合に発生する可能性があります。悪意のあるユーザは、この機能を使って、外部のエンティティへの参照を作成します。この外部参照とコードは、デフォルト設定のXMLパーサーや、脆弱な設定のXMLパーサーをすり抜けるように設計されています。
この攻撃者は、XML規格がエンティティの概念をある種の記憶装置として定義しているが、その記憶装置は外部にも内部にもあるという事実を利用しています。適切に使用すれば、XMLプロセッサがリモートリソースにアクセスできるようになります。多くの場合、攻撃者はこの機能を利用して、Webサイトの内部構造を探ったり、リモートリソースにアクセスしようとする大規模なシステムプロセスを起動してサービス拒否攻撃を行ったり、さらにはローカルホストから自分がコントロールするリモートホストにデータをダンプしたりするなど、XMLデータベースに含まれるパスワードや個人情報などの重要なデータを流出させるのに適した手法となっています。
攻撃に使われる実際のコードは、実体のある機能を利用するだけの非常に単純なものであることが多い。例えば、ハッカーがマスターパスワードファイルにアクセスすることができるようなものです。
<!ENTITY hackwithxxe SYSTEM file:///etc/password>
なぜXXEインジェクションは危険なのか?
XXEインジェクション攻撃が非常に危険であり、また蔓延している理由はいくつかあります。1つは、現在あまり理解されていない脆弱性であること。そして、この脆弱性を悪用することで攻撃者が得られる利益は相当なものです。1つは、持続的な攻撃者が内部ネットワークのすべてのパスをゆっくりとマッピングしたり、ポートをスキャンしたりできることです。これにはかなりの時間がかかるかもしれませんが、ハッカーは信頼されたXMLパーサーによってクリアされたXMLコードをサーバーに送信しているだけなので、ターゲットネットワーク上のアクティブな防御によってハッカーの活動が発見される可能性はほとんどありません。
いったんマップが作成されると、攻撃者は同じXXEインジェクション技術を使用して、必要なファイルを取得し、直接情報を盗んだり、有効なユーザー認証情報を侵害して二次攻撃に利用したりすることができます。最後に、ただ騒ぎ立てて悪意を持ちたい攻撃者は、サービス拒否攻撃を誘発し、システムを停滞させるように設計された遠隔地のリソースにアクセスするようにアプリケーションに命令するといったことができます。
XXEインジェクション脆弱性の解消
XXEインジェクション攻撃が急増しているため、多くのXMLパーサーは外部エンティティ(DTDと呼ばれることもある)をデフォルトで完全に無効にし始めています。このような場合、重要なのは、その機能を有効にしないことです。
しかし、DTDを許可しているパーサーでも、その機能を無効にすることができます。一般的には、完全にブロックするためには以下のような記述が必要になりますが、必要なコードを正確に把握するためには、ローカルフレームワークのドキュメントを確認してください。
factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true)。
セキュリティの原則に従って、すべてのユーザーの入力をサニタイズし、アプリケーション全体のフィルタを使用して検証する必要があります。GET や POST のパラメータ、HTTP ヘッダー、Cookie も忘れずに入れてください。また、パーサーに処理させたい特定の DTD やコマンドのホワイトリストを作成し、それ以外のものを禁止することもできます。
ホワイトリストやフィルタリングは有効ですが、XXEインジェクション攻撃が増加しているため、機能が必要でない場合はDTDサポートを完全に無効にすることをお勧めします。
XXE Injectionsの詳細情報
さらに、OWASPがXXEインジェクション攻撃についてどのように述べているかを読んでみてください。また、サイバーセキュリティチームを究極のサイバー戦士に育成するSecure Code Warrior プラットフォームの無料デモで、新たに得た防御知識を試すこともできます。この脆弱性やその他の脅威への対策については、Secure Code Warrior ブログをご覧ください。

XML External Entity Injection攻撃(XXE injectionと略されることもある)は、発生から数年経っても話題になっている古典的な脆弱性に比べると、比較的新しい攻撃です。しかし、現在、ハッキングコミュニティの間では非常に人気があり、成功例を重ねることでさらに人気が高まっています。
実際、OWASPは、XXEインジェクションを、サイトが注意し、積極的に防御する必要があるトップ10の脆弱性の1つとして挙げています。しかし、心配する必要はありません。XXEインジェクションは、サイバー攻撃で使用されている他のエクスプロイトよりも強力なものではありません。ただ、少しだけ新しく、少しだけ理解されていないだけです。防ぐことができますし、実際に完全に止めることもできます。
このエピソードでは、以下のことを学びます。
- 攻撃者がXXEインジェクションを使用する方法
- XXE注入が危険な理由
- この脆弱性を防ぐことができる技術
攻撃者はどのようにXXEインジェクションを引き起こすのか?
XXEインジェクションの脆弱性は、悪意のあるユーザーがXMLコードを送信する機能を与えられた場合に発生する可能性があります。悪意のあるユーザは、この機能を使って、外部のエンティティへの参照を作成します。この外部参照とコードは、デフォルト設定のXMLパーサーや、脆弱な設定のXMLパーサーをすり抜けるように設計されています。
この攻撃者は、XML規格がエンティティの概念をある種の記憶装置として定義しているが、その記憶装置は外部にも内部にもあるという事実を利用しています。適切に使用すれば、XMLプロセッサがリモートリソースにアクセスできるようになります。多くの場合、攻撃者はこの機能を利用して、Webサイトの内部構造を探ったり、リモートリソースにアクセスしようとする大規模なシステムプロセスを起動してサービス拒否攻撃を行ったり、さらにはローカルホストから自分がコントロールするリモートホストにデータをダンプしたりするなど、XMLデータベースに含まれるパスワードや個人情報などの重要なデータを流出させるのに適した手法となっています。
攻撃に使われる実際のコードは、実体のある機能を利用するだけの非常に単純なものであることが多い。例えば、ハッカーがマスターパスワードファイルにアクセスすることができるようなものです。
<!ENTITY hackwithxxe SYSTEM file:///etc/password>
なぜXXEインジェクションは危険なのか?
XXEインジェクション攻撃が非常に危険であり、また蔓延している理由はいくつかあります。1つは、現在あまり理解されていない脆弱性であること。そして、この脆弱性を悪用することで攻撃者が得られる利益は相当なものです。1つは、持続的な攻撃者が内部ネットワークのすべてのパスをゆっくりとマッピングしたり、ポートをスキャンしたりできることです。これにはかなりの時間がかかるかもしれませんが、ハッカーは信頼されたXMLパーサーによってクリアされたXMLコードをサーバーに送信しているだけなので、ターゲットネットワーク上のアクティブな防御によってハッカーの活動が発見される可能性はほとんどありません。
いったんマップが作成されると、攻撃者は同じXXEインジェクション技術を使用して、必要なファイルを取得し、直接情報を盗んだり、有効なユーザー認証情報を侵害して二次攻撃に利用したりすることができます。最後に、ただ騒ぎ立てて悪意を持ちたい攻撃者は、サービス拒否攻撃を誘発し、システムを停滞させるように設計された遠隔地のリソースにアクセスするようにアプリケーションに命令するといったことができます。
XXEインジェクション脆弱性の解消
XXEインジェクション攻撃が急増しているため、多くのXMLパーサーは外部エンティティ(DTDと呼ばれることもある)をデフォルトで完全に無効にし始めています。このような場合、重要なのは、その機能を有効にしないことです。
しかし、DTDを許可しているパーサーでも、その機能を無効にすることができます。一般的には、完全にブロックするためには以下のような記述が必要になりますが、必要なコードを正確に把握するためには、ローカルフレームワークのドキュメントを確認してください。
factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true)。
セキュリティの原則に従って、すべてのユーザーの入力をサニタイズし、アプリケーション全体のフィルタを使用して検証する必要があります。GET や POST のパラメータ、HTTP ヘッダー、Cookie も忘れずに入れてください。また、パーサーに処理させたい特定の DTD やコマンドのホワイトリストを作成し、それ以外のものを禁止することもできます。
ホワイトリストやフィルタリングは有効ですが、XXEインジェクション攻撃が増加しているため、機能が必要でない場合はDTDサポートを完全に無効にすることをお勧めします。
XXE Injectionsの詳細情報
さらに、OWASPがXXEインジェクション攻撃についてどのように述べているかを読んでみてください。また、サイバーセキュリティチームを究極のサイバー戦士に育成するSecure Code Warrior プラットフォームの無料デモで、新たに得た防御知識を試すこともできます。この脆弱性やその他の脅威への対策については、Secure Code Warrior ブログをご覧ください。
XML External Entity Injection攻撃(XXE injectionと略されることもある)は、発生から数年経っても話題になっている古典的な脆弱性に比べると、比較的新しい攻撃です。しかし、現在、ハッキングコミュニティの間では非常に人気があり、成功例を重ねることでさらに人気が高まっています。
実際、OWASPは、XXEインジェクションを、サイトが注意し、積極的に防御する必要があるトップ10の脆弱性の1つとして挙げています。しかし、心配する必要はありません。XXEインジェクションは、サイバー攻撃で使用されている他のエクスプロイトよりも強力なものではありません。ただ、少しだけ新しく、少しだけ理解されていないだけです。防ぐことができますし、実際に完全に止めることもできます。
このエピソードでは、以下のことを学びます。
- 攻撃者がXXEインジェクションを使用する方法
- XXE注入が危険な理由
- この脆弱性を防ぐことができる技術
攻撃者はどのようにXXEインジェクションを引き起こすのか?
XXEインジェクションの脆弱性は、悪意のあるユーザーがXMLコードを送信する機能を与えられた場合に発生する可能性があります。悪意のあるユーザは、この機能を使って、外部のエンティティへの参照を作成します。この外部参照とコードは、デフォルト設定のXMLパーサーや、脆弱な設定のXMLパーサーをすり抜けるように設計されています。
この攻撃者は、XML規格がエンティティの概念をある種の記憶装置として定義しているが、その記憶装置は外部にも内部にもあるという事実を利用しています。適切に使用すれば、XMLプロセッサがリモートリソースにアクセスできるようになります。多くの場合、攻撃者はこの機能を利用して、Webサイトの内部構造を探ったり、リモートリソースにアクセスしようとする大規模なシステムプロセスを起動してサービス拒否攻撃を行ったり、さらにはローカルホストから自分がコントロールするリモートホストにデータをダンプしたりするなど、XMLデータベースに含まれるパスワードや個人情報などの重要なデータを流出させるのに適した手法となっています。
攻撃に使われる実際のコードは、実体のある機能を利用するだけの非常に単純なものであることが多い。例えば、ハッカーがマスターパスワードファイルにアクセスすることができるようなものです。
<!ENTITY hackwithxxe SYSTEM file:///etc/password>
なぜXXEインジェクションは危険なのか?
XXEインジェクション攻撃が非常に危険であり、また蔓延している理由はいくつかあります。1つは、現在あまり理解されていない脆弱性であること。そして、この脆弱性を悪用することで攻撃者が得られる利益は相当なものです。1つは、持続的な攻撃者が内部ネットワークのすべてのパスをゆっくりとマッピングしたり、ポートをスキャンしたりできることです。これにはかなりの時間がかかるかもしれませんが、ハッカーは信頼されたXMLパーサーによってクリアされたXMLコードをサーバーに送信しているだけなので、ターゲットネットワーク上のアクティブな防御によってハッカーの活動が発見される可能性はほとんどありません。
いったんマップが作成されると、攻撃者は同じXXEインジェクション技術を使用して、必要なファイルを取得し、直接情報を盗んだり、有効なユーザー認証情報を侵害して二次攻撃に利用したりすることができます。最後に、ただ騒ぎ立てて悪意を持ちたい攻撃者は、サービス拒否攻撃を誘発し、システムを停滞させるように設計された遠隔地のリソースにアクセスするようにアプリケーションに命令するといったことができます。
XXEインジェクション脆弱性の解消
XXEインジェクション攻撃が急増しているため、多くのXMLパーサーは外部エンティティ(DTDと呼ばれることもある)をデフォルトで完全に無効にし始めています。このような場合、重要なのは、その機能を有効にしないことです。
しかし、DTDを許可しているパーサーでも、その機能を無効にすることができます。一般的には、完全にブロックするためには以下のような記述が必要になりますが、必要なコードを正確に把握するためには、ローカルフレームワークのドキュメントを確認してください。
factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true)。
セキュリティの原則に従って、すべてのユーザーの入力をサニタイズし、アプリケーション全体のフィルタを使用して検証する必要があります。GET や POST のパラメータ、HTTP ヘッダー、Cookie も忘れずに入れてください。また、パーサーに処理させたい特定の DTD やコマンドのホワイトリストを作成し、それ以外のものを禁止することもできます。
ホワイトリストやフィルタリングは有効ですが、XXEインジェクション攻撃が増加しているため、機能が必要でない場合はDTDサポートを完全に無効にすることをお勧めします。
XXE Injectionsの詳細情報
さらに、OWASPがXXEインジェクション攻撃についてどのように述べているかを読んでみてください。また、サイバーセキュリティチームを究極のサイバー戦士に育成するSecure Code Warrior プラットフォームの無料デモで、新たに得た防御知識を試すこともできます。この脆弱性やその他の脅威への対策については、Secure Code Warrior ブログをご覧ください。
始めるのに役立つリソース
Trust Agent:AI - Secure and scale AI-Drive development
AI is writing code. Who’s governing it? With up to 50% of AI-generated code containing security weaknesses, managing AI risk is critical. Discover how SCW's Trust Agent: AI provides the real-time visibility, proactive governance, and targeted upskilling needed to scale AI-driven development securely.
OpenText アプリケーションセキュリティのパワー + Secure Code Warrior
OpenText Application Security and Secure Code Warrior combine vulnerability detection with AI Software Governance and developer capability. Together, they help organizations reduce risk, strengthen secure coding practices, and confidently adopt AI-driven development.
Secure Code Warrior corporate overview
Secure Code Warrior is an AI Software Governance platform designed to enable organizations to safely adopt AI-driven development by bridging the gap between development velocity and enterprise security. The platform addresses the "Visibility Gap," where security teams often lack insights into shadow AI coding tools and the origins of production code.



.png)