SlideShare una empresa de Scribd logo
1 de 19
Descargar para leer sin conexión
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 部分が存在する場合にこれを無視する等の
機能が組み込まれていることが期待できます。

Más contenido relacionado

Similar a 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 -典子 松本
 

Similar 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 -
 

Más de 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
 

Más 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

AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 

Último (9)

AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 

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