SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Downloaden Sie, um offline zu lesen
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 部分が存在する場合にこれを無視する等の
機能が組み込まれていることが期待できます。

Weitere ähnliche Inhalte

Ähnlich wie Owasp top10 2017 a4 xxe

ノンコーディングでここまでできる!LINE BOT を作ってみよう!
ノンコーディングでここまでできる!LINE BOT を作ってみよう!ノンコーディングでここまでできる!LINE BOT を作ってみよう!
ノンコーディングでここまでできる!LINE BOT を作ってみよう!典子 松本
 
WorcCamp Kansai 2015 LT大会
WorcCamp Kansai 2015 LT大会WorcCamp Kansai 2015 LT大会
WorcCamp Kansai 2015 LT大会Koji Asaga
 
ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03Daiki Maekawa
 
イマドキのソフトウェア開発プロジェクトの流れ
イマドキのソフトウェア開発プロジェクトの流れイマドキのソフトウェア開発プロジェクトの流れ
イマドキのソフトウェア開発プロジェクトの流れTakashi Takebayashi
 
Imsjs yamada 12_apr2017_open
Imsjs yamada 12_apr2017_openImsjs yamada 12_apr2017_open
Imsjs yamada 12_apr2017_openIMS協会 日本
 
OWASP TOP10 A01:2021 – アクセス制御の不備
OWASP TOP10 A01:2021 – アクセス制御の不備OWASP TOP10 A01:2021 – アクセス制御の不備
OWASP TOP10 A01:2021 – アクセス制御の不備OWASP Nagoya
 
20211227 JAWS-UG初心者支部 LT大会 numaguchi
20211227 JAWS-UG初心者支部 LT大会 numaguchi20211227 JAWS-UG初心者支部 LT大会 numaguchi
20211227 JAWS-UG初心者支部 LT大会 numaguchiShigeru Numaguchi
 
eVar7 = s.t(art) ; Kick-Off
eVar7 = s.t(art) ; Kick-OffeVar7 = s.t(art) ; Kick-Off
eVar7 = s.t(art) ; Kick-OffMakoto Shimizu
 
デブサミ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の選択Shingo Kitayama
 
サイボウズがre:Inventに参加した話し。
サイボウズがre:Inventに参加した話し。サイボウズがre:Inventに参加した話し。
サイボウズがre:Inventに参加した話し。Koji Asaga
 
Aws発表資料(dac) 20160721
Aws発表資料(dac) 20160721Aws発表資料(dac) 20160721
Aws発表資料(dac) 20160721Norikazu Yura
 
[社内セッション]DevOps時代の僕の生き方、働き方
[社内セッション]DevOps時代の僕の生き方、働き方[社内セッション]DevOps時代の僕の生き方、働き方
[社内セッション]DevOps時代の僕の生き方、働き方Shigeki Morizane
 
塹壕にいるすべての同朋へ
塹壕にいるすべての同朋へ塹壕にいるすべての同朋へ
塹壕にいるすべての同朋へtoshihiro ichitani
 
WordPress の現況
WordPress の現況WordPress の現況
WordPress の現況Naoko Takano
 
ノンコーディングでやってみよう!音声テキスト変換 - LINE × Logic Apps × Speech to text -
ノンコーディングでやってみよう!音声テキスト変換 - LINE × Logic Apps × Speech to text -ノンコーディングでやってみよう!音声テキスト変換 - LINE × Logic Apps × Speech to text -
ノンコーディングでやってみよう!音声テキスト変換 - LINE × Logic Apps × Speech to text -典子 松本
 

Ähnlich wie 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 -
 

Mehr von OWASP Nagoya

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

Mehr von 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
 

Kürzlich hochgeladen

Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 

Kürzlich hochgeladen (9)

Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 

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 部分が存在する場合にこれを無視する等の 機能が組み込まれていることが期待できます。