SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
2019.11.15
OWASP Nagoya
Hitomi kato
OWASP Top 10 2017
A4:2017からXXEを学ぶ
OWASP Nagoya Chapter Meeting #14
自己紹介
加藤 人生(かとう ひとみ)
・FB https://www.facebook.com/htmkatou
・twitter https://twitter.com/wagtail_jp
ある会社の脆弱性診断サービスを提供する部門にて脆弱性診断の仕事をしています。
(主にプラットフォーム診断とツールを使ったWebアプリケーション診断をしています。)
また、OWASP Nagoya chapter のスタッフもしております。
※念のため:今回の発表の内容はあくまでも個人の見解であり、私が所属する企業の見解では
ありません。
アジェンダ
1.OWASP Top 10 2017とXML 外部エンティティ参照(XXE)
2.A4:2017 XML 外部エンティティ参照(XXE)とは?
3.XML 外部エンティティ参照(XXE)の対処について
1. OWASP Top 10 2017とXML 外部エンティティ参照
(XXE) ①
OWASP Top 10 2017について
● OWASP Top 10の現時点の最新版
● Webアプリケーションの代表的なセキュリティリスクを10個
に纏めたもの
● Webアプリケーションセキュリティの問題や改善提案を簡潔
にかつ確認方法を含めて提供
● OWASP Top 10はWebアプリケーションセキュリティのデファ
クト・スタンダードとなっています。
OWASP Top10 2017
(表紙)
OWASP Top10 2017
A4:2017のページ
1. OWASP Top 10 2017とXML 外部エンティティ参照
(XXE) ②
XML 外部エンテ
ィティ参照(XXE)
は、2017でいき
なりランクイン
1. OWASP Top 10 2017とXML 外部エンティティ参照
(XXE) ③
● 主にソースコード分析を行うセキュリティテストツール(SAST)にて
多く検知されたことがランクインの根拠となっているそうです。
● XML 外部エンティティ参照(XXE)が脆弱性として報告されたのは、
2017年以前ですが、ここ最近、注目を集めている脆弱性となります。
● JVN iPedia 脆弱性対策情報データベースにて検索すると、2009年2月
には既知の脆弱性として登場しています。
JVN iPedia 脆弱性対策情報データベース
https://jvndb.jvn.jp/
2. A4:2017 XML 外部エンティティ参照 (XXE) とは? ①
2. A4:2017 XML 外部エンティティ参照 (XXE) とは? ②
● 外部エンティティ参照は、XMLのDTD(Document Type Definition)定義
において、外部ファイルの内容を参照する形で実体宣言されたもの
を実体参照することを指します。
● DTDは、XML文章を一定の構文に従ってルール化したものです。
● その中で、文字列や外部ファイルを実体として事前に指定しておき、
XML内で参照することを実体参照と言います。
2. A4:2017 XML 外部エンティティ参照 (XXE) とは? ③
● 外部エンティティは、DTD内で次のように定義します。
● また、 XML内で次のように参照します。
● 上記のファイル名を本来とは異なるものにして実体宣言させる
ことで発生するのがこの攻撃の原理です。
<!ENTITY 実体名 SYSTEM "ファイル名">
&実体名;
2. A4:2017 XML 外部エンティティ参照 (XXE) とは? ④
外部エンティティ参照(XXE)で出来てしまうこと
● サーバからデータを収集する(システムファイルへのアクセス等)
● 別のホストへのアクセスによる情報収集
● 終わりのないファイルを処理させることによるサーバへのDoS攻撃
シナリオ#1: 攻撃者はサーバからデータを取り出そうと試みます:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [<!ELEMENT foo ANY ><!ENTITY xxe SYSTEM "file:///etc/passwd"
>]><foo>&xxe;</foo>
シナリオ#2: 攻撃者は、上記のENTITY行を次のように変更して、サーバーのプライベートネット
ワークを調べようとします:
<!ENTITY xxe SYSTEM "https://192.168.1.1/private"
シナリオ#3:攻撃者は終わりのないファイルを含めることでDoS攻撃を試みます:
<!ENTITY xxe SYSTEM "file:///dev/random" >]>
2. A4:2017 XML 外部エンティティ参照 (XXE) とは? ⑤
確認シナリオ:サーバのシステムファイル( win.ini )の内容を閲覧する。
①次の条件にあった対象を探します。
・リクエストにて「<?xml version=“1.0”?>」のように送信するもの。
・レスポンスにて、リクエストで投げた値をそのまま表示するもの。
②リクエストを発生させて、ローカルプロキシ※でリクエストを一時停止させます。
③リクエストの<?xml version=“1.0”?>の後に下記を入れ込みます。
<!DOCTYPE name [<!ENTITY 実体名 SYSTEM "/windows/win.ini">]>
※リクエストの一時停止や内容の書き換えは、OWASP ZAP等で実施可能です。
④リクエストの「レスポンスにてリクエストで投げた値を表示する」箇所の後に
「&実体名; 」を入れ込みます。
<要素名> 値 &実体名; </要素名>
⑤リクエストを送信します。
⑥レスポンスにwin.ini の内容が表示されます。
このシナリオはあくまでも1例となります。①の条件に合う対象は多いとは言えず、こ
のやり方がそのまま実施出来るということは少ないと思われます。
XMLファイルをアップロードして処理を行うサイト等、他にもXXEが確認出来そうな対
象は考えられますので、確認対象に合った手法を思考してみて下さい。
2. A4:2017 XML 外部エンティティ参照 (XXE) とは? ⑥
3. XML 外部エンティティ参照 (XXE) の対処について
①
そもそも外部エンティティ参照(XXE)の発生頻度はどれほどあるのか
● 製品に対する既知の脆弱性として取り上げられる機会は増えている。しか
し、一般的なWebサイトの診断で良く見かけるものでもない。
XMLベースのWebサービスやアプリケーション等に特化した
脆弱性のため。
XMLにて外部からのデータの受け取りを行わないシステムには発生す
る要素がないと考えられます。
3. XML 外部エンティティ参照 (XXE) の対処について
②
対策としては、外部からのデータの受け取りにXMLではなく、JSON等
を用いることが有効と考えられます。
ただし、外部からのデータの受け取りをJSONに変えるだけでなく、受
け取る側でXML 解析等を無効にする等の対応も必要です。(受け取り
側がXMLを解析出来る場合は、リクエスト内容とContent-Type をXMLに
書き換えることでXXEを発生させれる場合があるようです。)
Playing with Content-Type – XXE on JSON Endpoints
https://blog.netspi.com/playing-content-type-xxe-json-endpoints/
3. XML 外部エンティティ参照 (XXE) の対処について
③
また、外部エンティティ参照は、不具合ではなくXMLが持つ機能です
ので、悪用されないように適切な設定等、対策を行うという観点で考
えて頂いた方が良いと思われます。
OWASP Cheat Sheet ‘XXE Prevention’に従い、アプリケーション内のすべ
てのXMLパーサでXML外部エンティティとDTD処理を無効にして下さい。
OWASP Cheat Sheet 'XXE Prevention'
https://www.owasp.org/index.php/XML_External_Entity_(XXE)_Prevention_Cheat_Sheet/
※なお、上記のURLのページは下記へのリンクの紹介ページとなっております。
https://cheatsheetseries.owasp.org/cheatsheets/XML_External_Entity_Prevention_Cheat_Sheet.html
https://cheatsheetseries.owasp.org/cheatsheets/XML_External_Entity_Prevention_Cheat_Sheet.html
3. XML 外部エンティティ参照 (XXE) の対処について
④
さらに、アプリケーションまたは基盤となるオペレーティングシステ
ムで使用されているすべてのXMLプロセッサおよびライブラリにパッ
チをあてるかアップグレードを検討して下さい。
SOAPについては、SOAP 1.2かそれ以降のものへの更新を検討します。
パッチの適用または新しいバージョンにすることで、リクエスト内の
DTD を許可しないか、DTD 部分が存在する場合にこれを無視する等の
機能が組み込まれていることが期待できます。

Mais conteúdo relacionado

Semelhante a Owasp top10 2017 a4 xxe

ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03
Daiki Maekawa
 

Semelhante a Owasp top10 2017 a4 xxe (20)

ノンコーディングでここまでできる!LINE BOT を作ってみよう!
ノンコーディングでここまでできる!LINE BOT を作ってみよう!ノンコーディングでここまでできる!LINE BOT を作ってみよう!
ノンコーディングでここまでできる!LINE BOT を作ってみよう!
 
WorcCamp Kansai 2015 LT大会
WorcCamp Kansai 2015 LT大会WorcCamp Kansai 2015 LT大会
WorcCamp Kansai 2015 LT大会
 
使ってみようPTSV
使ってみようPTSV使ってみようPTSV
使ってみようPTSV
 
ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03
 
イマドキのソフトウェア開発プロジェクトの流れ
イマドキのソフトウェア開発プロジェクトの流れイマドキのソフトウェア開発プロジェクトの流れ
イマドキのソフトウェア開発プロジェクトの流れ
 
Imsjs yamada 12_apr2017_open
Imsjs yamada 12_apr2017_openImsjs yamada 12_apr2017_open
Imsjs yamada 12_apr2017_open
 
20141018 osc tokyo2014講演(配布用)
20141018 osc tokyo2014講演(配布用)20141018 osc tokyo2014講演(配布用)
20141018 osc tokyo2014講演(配布用)
 
OWASP TOP10 A01:2021 – アクセス制御の不備
OWASP TOP10 A01:2021 – アクセス制御の不備OWASP TOP10 A01:2021 – アクセス制御の不備
OWASP TOP10 A01:2021 – アクセス制御の不備
 
20211227 JAWS-UG初心者支部 LT大会 numaguchi
20211227 JAWS-UG初心者支部 LT大会 numaguchi20211227 JAWS-UG初心者支部 LT大会 numaguchi
20211227 JAWS-UG初心者支部 LT大会 numaguchi
 
eVar7 = s.t(art) ; Kick-Off
eVar7 = s.t(art) ; Kick-OffeVar7 = s.t(art) ; Kick-Off
eVar7 = s.t(art) ; Kick-Off
 
デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択
デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択
デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択
 
Owasp top10 HandsOn
Owasp top10 HandsOnOwasp top10 HandsOn
Owasp top10 HandsOn
 
サイボウズがre:Inventに参加した話し。
サイボウズがre:Inventに参加した話し。サイボウズがre:Inventに参加した話し。
サイボウズがre:Inventに参加した話し。
 
Ops meets NoOps
Ops meets NoOpsOps meets NoOps
Ops meets NoOps
 
Aws発表資料(dac) 20160721
Aws発表資料(dac) 20160721Aws発表資料(dac) 20160721
Aws発表資料(dac) 20160721
 
[社内セッション]DevOps時代の僕の生き方、働き方
[社内セッション]DevOps時代の僕の生き方、働き方[社内セッション]DevOps時代の僕の生き方、働き方
[社内セッション]DevOps時代の僕の生き方、働き方
 
塹壕にいるすべての同朋へ
塹壕にいるすべての同朋へ塹壕にいるすべての同朋へ
塹壕にいるすべての同朋へ
 
OpenCV on mobile
OpenCV on mobileOpenCV on mobile
OpenCV on mobile
 
WordPress の現況
WordPress の現況WordPress の現況
WordPress の現況
 
ノンコーディングでやってみよう!音声テキスト変換 - LINE × Logic Apps × Speech to text -
ノンコーディングでやってみよう!音声テキスト変換 - LINE × Logic Apps × Speech to text -ノンコーディングでやってみよう!音声テキスト変換 - LINE × Logic Apps × Speech to text -
ノンコーディングでやってみよう!音声テキスト変換 - LINE × Logic Apps × Speech to text -
 

Mais de OWASP Nagoya

Mais de OWASP Nagoya (17)

OWASP Top 10 - 2021 Overview
OWASP Top 10 - 2021 OverviewOWASP Top 10 - 2021 Overview
OWASP Top 10 - 2021 Overview
 
(A7)cross site scripting
(A7)cross site scripting(A7)cross site scripting
(A7)cross site scripting
 
#24 prepare for_hands-on
#24 prepare for_hands-on#24 prepare for_hands-on
#24 prepare for_hands-on
 
(A2)broken authentication
(A2)broken authentication(A2)broken authentication
(A2)broken authentication
 
Developer tools
Developer toolsDeveloper tools
Developer tools
 
#23 prepare for_hands-on
#23 prepare for_hands-on#23 prepare for_hands-on
#23 prepare for_hands-on
 
OWASP ISVS を使って IoT エコシステムのセキュリティについて考えてみよう
OWASP ISVS を使って IoT エコシステムのセキュリティについて考えてみようOWASP ISVS を使って IoT エコシステムのセキュリティについて考えてみよう
OWASP ISVS を使って IoT エコシステムのセキュリティについて考えてみよう
 
Rethinking car security based on autonomous driving and advanced driving support
Rethinking car security based on autonomous driving and advanced driving supportRethinking car security based on autonomous driving and advanced driving support
Rethinking car security based on autonomous driving and advanced driving support
 
OWASP Nagoya_WordPress_Handson_3
OWASP Nagoya_WordPress_Handson_3OWASP Nagoya_WordPress_Handson_3
OWASP Nagoya_WordPress_Handson_3
 
OWASP Nagoya_WordPress_Handson_2
OWASP Nagoya_WordPress_Handson_2OWASP Nagoya_WordPress_Handson_2
OWASP Nagoya_WordPress_Handson_2
 
OWASP Nagoya_WordPress_Handson_1
OWASP Nagoya_WordPress_Handson_1OWASP Nagoya_WordPress_Handson_1
OWASP Nagoya_WordPress_Handson_1
 
20190208 脆弱性と共生するには
20190208 脆弱性と共生するには20190208 脆弱性と共生するには
20190208 脆弱性と共生するには
 
20181117-一般的な脆弱性の概要・対策を知り、ZAPで見つけてみよう!
20181117-一般的な脆弱性の概要・対策を知り、ZAPで見つけてみよう!20181117-一般的な脆弱性の概要・対策を知り、ZAPで見つけてみよう!
20181117-一般的な脆弱性の概要・対策を知り、ZAPで見つけてみよう!
 
WPSCanによるWordPressの脆弱性スキャン
WPSCanによるWordPressの脆弱性スキャンWPSCanによるWordPressの脆弱性スキャン
WPSCanによるWordPressの脆弱性スキャン
 
OWASP WordPressセキュリティ実装ガイドライン (セキュアなWordPressの構築ハンズオン手順書)
OWASP WordPressセキュリティ実装ガイドライン (セキュアなWordPressの構築ハンズオン手順書)OWASP WordPressセキュリティ実装ガイドライン (セキュアなWordPressの構築ハンズオン手順書)
OWASP WordPressセキュリティ実装ガイドライン (セキュアなWordPressの構築ハンズオン手順書)
 
OWASP WordPressセキュリティ実装ガイドライン (セキュアなWordPressの構築)
OWASP WordPressセキュリティ実装ガイドライン (セキュアなWordPressの構築)OWASP WordPressセキュリティ実装ガイドライン (セキュアなWordPressの構築)
OWASP WordPressセキュリティ実装ガイドライン (セキュアなWordPressの構築)
 
20170909 第13回名古屋情報セキュリティ勉強会 LT
20170909 第13回名古屋情報セキュリティ勉強会 LT20170909 第13回名古屋情報セキュリティ勉強会 LT
20170909 第13回名古屋情報セキュリティ勉強会 LT
 

Último

Último (10)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 

Owasp top10 2017 a4 xxe

  • 1. 2019.11.15 OWASP Nagoya Hitomi kato OWASP Top 10 2017 A4:2017からXXEを学ぶ OWASP Nagoya Chapter Meeting #14
  • 2. 自己紹介 加藤 人生(かとう ひとみ) ・FB https://www.facebook.com/htmkatou ・twitter https://twitter.com/wagtail_jp ある会社の脆弱性診断サービスを提供する部門にて脆弱性診断の仕事をしています。 (主にプラットフォーム診断とツールを使ったWebアプリケーション診断をしています。) また、OWASP Nagoya chapter のスタッフもしております。 ※念のため:今回の発表の内容はあくまでも個人の見解であり、私が所属する企業の見解では ありません。
  • 3. アジェンダ 1.OWASP Top 10 2017とXML 外部エンティティ参照(XXE) 2.A4:2017 XML 外部エンティティ参照(XXE)とは? 3.XML 外部エンティティ参照(XXE)の対処について
  • 4. 1. OWASP Top 10 2017とXML 外部エンティティ参照 (XXE) ① OWASP Top 10 2017について ● OWASP Top 10の現時点の最新版 ● Webアプリケーションの代表的なセキュリティリスクを10個 に纏めたもの ● Webアプリケーションセキュリティの問題や改善提案を簡潔 にかつ確認方法を含めて提供 ● OWASP Top 10はWebアプリケーションセキュリティのデファ クト・スタンダードとなっています。
  • 7. 1. OWASP Top 10 2017とXML 外部エンティティ参照 (XXE) ② XML 外部エンテ ィティ参照(XXE) は、2017でいき なりランクイン
  • 8. 1. OWASP Top 10 2017とXML 外部エンティティ参照 (XXE) ③ ● 主にソースコード分析を行うセキュリティテストツール(SAST)にて 多く検知されたことがランクインの根拠となっているそうです。 ● XML 外部エンティティ参照(XXE)が脆弱性として報告されたのは、 2017年以前ですが、ここ最近、注目を集めている脆弱性となります。 ● JVN iPedia 脆弱性対策情報データベースにて検索すると、2009年2月 には既知の脆弱性として登場しています。 JVN iPedia 脆弱性対策情報データベース https://jvndb.jvn.jp/
  • 9. 2. A4:2017 XML 外部エンティティ参照 (XXE) とは? ①
  • 10. 2. A4:2017 XML 外部エンティティ参照 (XXE) とは? ② ● 外部エンティティ参照は、XMLのDTD(Document Type Definition)定義 において、外部ファイルの内容を参照する形で実体宣言されたもの を実体参照することを指します。 ● DTDは、XML文章を一定の構文に従ってルール化したものです。 ● その中で、文字列や外部ファイルを実体として事前に指定しておき、 XML内で参照することを実体参照と言います。
  • 11. 2. A4:2017 XML 外部エンティティ参照 (XXE) とは? ③ ● 外部エンティティは、DTD内で次のように定義します。 ● また、 XML内で次のように参照します。 ● 上記のファイル名を本来とは異なるものにして実体宣言させる ことで発生するのがこの攻撃の原理です。 <!ENTITY 実体名 SYSTEM "ファイル名"> &実体名;
  • 12. 2. A4:2017 XML 外部エンティティ参照 (XXE) とは? ④ 外部エンティティ参照(XXE)で出来てしまうこと ● サーバからデータを収集する(システムファイルへのアクセス等) ● 別のホストへのアクセスによる情報収集 ● 終わりのないファイルを処理させることによるサーバへのDoS攻撃 シナリオ#1: 攻撃者はサーバからデータを取り出そうと試みます: <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE foo [<!ELEMENT foo ANY ><!ENTITY xxe SYSTEM "file:///etc/passwd" >]><foo>&xxe;</foo> シナリオ#2: 攻撃者は、上記のENTITY行を次のように変更して、サーバーのプライベートネット ワークを調べようとします: <!ENTITY xxe SYSTEM "https://192.168.1.1/private" シナリオ#3:攻撃者は終わりのないファイルを含めることでDoS攻撃を試みます: <!ENTITY xxe SYSTEM "file:///dev/random" >]>
  • 13. 2. A4:2017 XML 外部エンティティ参照 (XXE) とは? ⑤ 確認シナリオ:サーバのシステムファイル( win.ini )の内容を閲覧する。 ①次の条件にあった対象を探します。 ・リクエストにて「<?xml version=“1.0”?>」のように送信するもの。 ・レスポンスにて、リクエストで投げた値をそのまま表示するもの。 ②リクエストを発生させて、ローカルプロキシ※でリクエストを一時停止させます。 ③リクエストの<?xml version=“1.0”?>の後に下記を入れ込みます。 <!DOCTYPE name [<!ENTITY 実体名 SYSTEM "/windows/win.ini">]> ※リクエストの一時停止や内容の書き換えは、OWASP ZAP等で実施可能です。
  • 14. ④リクエストの「レスポンスにてリクエストで投げた値を表示する」箇所の後に 「&実体名; 」を入れ込みます。 <要素名> 値 &実体名; </要素名> ⑤リクエストを送信します。 ⑥レスポンスにwin.ini の内容が表示されます。 このシナリオはあくまでも1例となります。①の条件に合う対象は多いとは言えず、こ のやり方がそのまま実施出来るということは少ないと思われます。 XMLファイルをアップロードして処理を行うサイト等、他にもXXEが確認出来そうな対 象は考えられますので、確認対象に合った手法を思考してみて下さい。 2. A4:2017 XML 外部エンティティ参照 (XXE) とは? ⑥
  • 15. 3. XML 外部エンティティ参照 (XXE) の対処について ① そもそも外部エンティティ参照(XXE)の発生頻度はどれほどあるのか ● 製品に対する既知の脆弱性として取り上げられる機会は増えている。しか し、一般的なWebサイトの診断で良く見かけるものでもない。 XMLベースのWebサービスやアプリケーション等に特化した 脆弱性のため。 XMLにて外部からのデータの受け取りを行わないシステムには発生す る要素がないと考えられます。
  • 16. 3. XML 外部エンティティ参照 (XXE) の対処について ② 対策としては、外部からのデータの受け取りにXMLではなく、JSON等 を用いることが有効と考えられます。 ただし、外部からのデータの受け取りをJSONに変えるだけでなく、受 け取る側でXML 解析等を無効にする等の対応も必要です。(受け取り 側がXMLを解析出来る場合は、リクエスト内容とContent-Type をXMLに 書き換えることでXXEを発生させれる場合があるようです。) Playing with Content-Type – XXE on JSON Endpoints https://blog.netspi.com/playing-content-type-xxe-json-endpoints/
  • 17. 3. XML 外部エンティティ参照 (XXE) の対処について ③ また、外部エンティティ参照は、不具合ではなくXMLが持つ機能です ので、悪用されないように適切な設定等、対策を行うという観点で考 えて頂いた方が良いと思われます。 OWASP Cheat Sheet ‘XXE Prevention’に従い、アプリケーション内のすべ てのXMLパーサでXML外部エンティティとDTD処理を無効にして下さい。 OWASP Cheat Sheet 'XXE Prevention' https://www.owasp.org/index.php/XML_External_Entity_(XXE)_Prevention_Cheat_Sheet/ ※なお、上記のURLのページは下記へのリンクの紹介ページとなっております。 https://cheatsheetseries.owasp.org/cheatsheets/XML_External_Entity_Prevention_Cheat_Sheet.html
  • 19. 3. XML 外部エンティティ参照 (XXE) の対処について ④ さらに、アプリケーションまたは基盤となるオペレーティングシステ ムで使用されているすべてのXMLプロセッサおよびライブラリにパッ チをあてるかアップグレードを検討して下さい。 SOAPについては、SOAP 1.2かそれ以降のものへの更新を検討します。 パッチの適用または新しいバージョンにすることで、リクエスト内の DTD を許可しないか、DTD 部分が存在する場合にこれを無視する等の 機能が組み込まれていることが期待できます。