XXEとは?
えっくすえっくすいー
XXEとは、XMLの外部エンティティ参照を悪用してサーバー内のファイル読み取りや意図しない通信を引き起こすWebセキュリティの脆弱性です。
XXE(XML External Entity Injection)は、XMLを処理するアプリケーションが外部エンティティの参照を無制限に許可しているときに発生するセキュリティ脆弱性です。攻撃者が細工したXMLを送り込み、サーバー上のファイルの読み取り・内部ネットワークへのアクセス・サービス拒否(DoS)などを引き起こすことができます。
XMLにはDTD(文書型定義)でエンティティ(変数のようなもの)を定義する機能があります。外部エンティティでは SYSTEM キーワードにファイルパスやURLを指定でき、パーサがその内容をXML本文に展開します。XXEでは攻撃者がこの仕組みを悪用し、例えば file:///etc/passwd のようなURIを指定することでサーバーのシステムファイルを読み出したり、内部サービスへのHTTPリクエストを送らせたりします(SSRF的な利用)。
脆弱性が成立するケースは、XMLをサーバー側でパースしているすべての場面——ファイルアップロード・REST/SOAP APIのリクエスト処理・ドキュメント変換処理など——に及びます。影響はOWASP Top 10にも長年ランクインしており、深刻な情報漏えいにつながるケースがあります。
対策としては、使用するXMLパーサで外部エンティティ処理を無効化すること(設定オプションで制御可能なライブラリが多い)、DTDそのものを無効化すること、入力のホワイトリスト検証などが推奨されます。
使い方・例文
この用語をシェア
最終更新: