SlideShare a Scribd company logo
Submit Search
Upload
Login
Signup
HTML5 Web アプリケーションのセキュリティ
Report
彰 村地
Follow
IT スペシャリスト at 株式会社シーピーエス
Feb. 25, 2017
•
0 likes
•
1,576 views
1
of
91
HTML5 Web アプリケーションのセキュリティ
Feb. 25, 2017
•
0 likes
•
1,576 views
Download Now
Download to read offline
Report
Technology
2016/10/16 と 2017/2/11 の「HTML5感」(LPI Japan 主催)および 2017/2/25 の .NET ラボ でのセッション スライドをまとめたものです。
彰 村地
Follow
IT スペシャリスト at 株式会社シーピーエス
Recommended
System Resource Utilization Monitor を知ろう
彰 村地
1.7K views
•
10 slides
Barracuda Email Security Gateway(旧 Barracuda Spam Firewall PLUS) 製品のご紹介
BarracudaJapan
29K views
•
10 slides
【Interop Tokyo 2016】 世界最大級の脅威情報と自社ネットワークの脅威可視化
シスコシステムズ合同会社
364 views
•
20 slides
バラクーダネットワークス マイナンバー対策ソリューション
BarracudaJapan
2.3K views
•
6 slides
【Interop Tokyo 2016】 ビッグデータ解析手法による脅威分析サービス
シスコシステムズ合同会社
543 views
•
17 slides
Barracuda Web Security Gateway (旧 Barracuda Web Filter)製品のご紹介
BarracudaJapan
19.6K views
•
12 slides
More Related Content
What's hot
DevSecOpsのユースケースとDevSecOpsがもたらす未来(20191126)
Masanori KAMAYAMA
386 views
•
24 slides
クラウドセキュリティ基礎 #seccamp
Masahiro NAKAYAMA
25.4K views
•
74 slides
RubyでDSL
Yukimitsu Izawa
12.1K views
•
33 slides
Elastic Cloudを利用したセキュリティ監視の事例
Elasticsearch
947 views
•
17 slides
【Interop Tokyo 2016】 Seminar - EA-14 : シスコ スイッチが標的型攻撃を食い止める ~新しい内部対策ソリューション「C...
シスコシステムズ合同会社
1.8K views
•
32 slides
包括的な可視性を確立し、潜在するセキュリティの問題を見つけ出す
Elasticsearch
184 views
•
21 slides
What's hot
(20)
DevSecOpsのユースケースとDevSecOpsがもたらす未来(20191126)
Masanori KAMAYAMA
•
386 views
クラウドセキュリティ基礎 #seccamp
Masahiro NAKAYAMA
•
25.4K views
RubyでDSL
Yukimitsu Izawa
•
12.1K views
Elastic Cloudを利用したセキュリティ監視の事例
Elasticsearch
•
947 views
【Interop Tokyo 2016】 Seminar - EA-14 : シスコ スイッチが標的型攻撃を食い止める ~新しい内部対策ソリューション「C...
シスコシステムズ合同会社
•
1.8K views
包括的な可視性を確立し、潜在するセキュリティの問題を見つけ出す
Elasticsearch
•
184 views
IoTデバイスを脅威から守るセキュリティ機能-RXセキュリティMCUのご紹介
Trainocate Japan, Ltd.
•
956 views
個人情報を守るためのアプリケーション設計(概要)
junichi anno
•
660 views
20180224 azure securitycenter
Masakazu Kishima
•
161 views
スタートアップのCEOもおさえておきたい、ITインフラのセキュリティ対策 先生:
schoowebcampus
•
1.9K views
「教養としてのサイバーセキュリティ」講座
Riotaro OKADA
•
1.5K views
CCSK (Certificate of Cloud Security Knowledgebase)概要
Masahiro Morozumi
•
1.6K views
脅威分析の手法によりウェブサーバーにウイルス対策ソフトが必要かを検証する
Hiroshi Tokumaru
•
1.8K views
超高速開発を実現するチームに必要なセキュリティとは
Riotaro OKADA
•
266 views
DevSecOps: セキュリティ問題に迅速に対応するためのパイプライン設計
junichi anno
•
1K views
DXとセキュリティ / IPA Digital Symposium 2021
Riotaro OKADA
•
473 views
進化するWebトラッキングの話 #ssmjp
sonickun
•
29.5K views
セキュアなサーバーレスアーキテクチャ設計手法の概説 (v0)
Eiji Sasahara, Ph.D., MBA 笹原英司
•
188 views
Owasp evening : Privacy x Design with OWASP
Riotaro OKADA
•
542 views
クラウドの汎用的な基礎知識に自信はありますか?
Masanori KAMAYAMA
•
1.3K views
Similar to HTML5 Web アプリケーションのセキュリティ
2017年のセキュリティ 傾向と対策講座
NHN テコラス株式会社
2K views
•
45 slides
[Japan Tech summit 2017] SEC 011
Microsoft Tech Summit 2017
1.7K views
•
67 slides
2020_0625_Cloud and Salesforce Security_Security Consulting_pre_version
Shinichiro Kawano
511 views
•
33 slides
細工された製品が突然牙をむく「サプライチェーン攻撃」の脅威
Noriaki Hayashi
1.4K views
•
44 slides
安全なWebアプリ構築1回
Project Samurai
322 views
•
34 slides
【日商USA】webinar 2023.5.12 RSAカンファレンス2023 フィードバック
NISSHO USA
203 views
•
29 slides
Similar to HTML5 Web アプリケーションのセキュリティ
(20)
2017年のセキュリティ 傾向と対策講座
NHN テコラス株式会社
•
2K views
[Japan Tech summit 2017] SEC 011
Microsoft Tech Summit 2017
•
1.7K views
2020_0625_Cloud and Salesforce Security_Security Consulting_pre_version
Shinichiro Kawano
•
511 views
細工された製品が突然牙をむく「サプライチェーン攻撃」の脅威
Noriaki Hayashi
•
1.4K views
安全なWebアプリ構築1回
Project Samurai
•
322 views
【日商USA】webinar 2023.5.12 RSAカンファレンス2023 フィードバック
NISSHO USA
•
203 views
アプリケーションのシフトレフトを実践するには
Riotaro OKADA
•
868 views
【Interop tokyo 2014】 ビッグデータを活用し、被害を予見! シスコの新たなセキュリティ運用モデル
シスコシステムズ合同会社
•
893 views
S04_Microsoft XDR によるセキュアなハイブリッドクラウド環境の実現 [Microsoft Japan Digital Days]
日本マイクロソフト株式会社
•
480 views
AWSでの金融系システム構築・運用勘所
ナレッジコミュニケーション
•
1.2K views
4 Enemies of DevSecOps 2016
Riotaro OKADA
•
2.2K views
なぜ自社で脆弱性診断を行うべきなのか
Sen Ueno
•
15.6K views
安全なプラグインに必要なこと: 脆弱性届出状況に見る傾向と対策 (WordCampTokyo 2017)
JPCERT Coordination Center
•
3.6K views
AWSSummitTokyo2017 SRCセッション振り返り
Shogo Matsumoto
•
533 views
”もと”中の人が語り尽くすSoftLayerセキュリティー(2016/10/13更新版)
Shinobu Yasuda
•
10.3K views
2020 0910 f-secure_remote_work_and_cloud_security
Shinichiro Kawano
•
318 views
【スカイアーチ】Webサイトを脆弱性攻撃から守る
株式会社スカイアーチネットワークス
•
976 views
Browser andsecurity2015
彰 村地
•
7.7K views
Webアプリのセキュリティ 20170824
Masakazu Ikeda
•
1.7K views
Serverless Application Security on AWS
Amazon Web Services Japan
•
10.8K views
More from 彰 村地
Process Monitor の使い方
彰 村地
708 views
•
29 slides
Windows クライアントのトラブルシューティングあれこれ
彰 村地
316 views
•
42 slides
Windows 365 のテクノロジーとインフラストラクチャー
彰 村地
277 views
•
29 slides
Windows 11 がやってくる - IT管理者の準備と対策
彰 村地
498 views
•
43 slides
Internet Explorer サポート提供終了で変わること変わらないこと
彰 村地
55K views
•
28 slides
How tousemicrosoftsearch 20200725
彰 村地
269 views
•
41 slides
More from 彰 村地
(20)
Process Monitor の使い方
彰 村地
•
708 views
Windows クライアントのトラブルシューティングあれこれ
彰 村地
•
316 views
Windows 365 のテクノロジーとインフラストラクチャー
彰 村地
•
277 views
Windows 11 がやってくる - IT管理者の準備と対策
彰 村地
•
498 views
Internet Explorer サポート提供終了で変わること変わらないこと
彰 村地
•
55K views
How tousemicrosoftsearch 20200725
彰 村地
•
269 views
(管理者向け) Microsoft Edge の展開と管理の手法
彰 村地
•
330 views
見せてもらおうか、新しい Microsoft Edge の性能とやらを
彰 村地
•
450 views
(Web に関わる人に知っておいてほしい)Web ブラウザー 最新事情
彰 村地
•
572 views
Java で開発する Azure Web Apps アプリケーション
彰 村地
•
1.2K views
O365 ユーザーのための Azure Storage 入門
彰 村地
•
306 views
Web standard 2019_0216
彰 村地
•
256 views
アドレスバーにURL打ち込んでからページが表示されるまでに 何が起こっているか
彰 村地
•
1.5K views
Azure Network Watcher / Azure仮想ネットワークの監視と情報収集
彰 村地
•
1K views
HTML はネットワークをいかに変えてきたか
彰 村地
•
504 views
Message Analyzer でパケット キャプチャー
彰 村地
•
11.1K views
Message Analyzer 再入門【2】
彰 村地
•
1.9K views
Message Analyzer 再入門【1】
彰 村地
•
3.9K views
Rmote Packet Capture Protocol を使って見る
彰 村地
•
2.4K views
Excel でパケット分析 - グラフ化
彰 村地
•
4.4K views
Recently uploaded
20230912JSSST大会基調講演_丸山.pdf
Hiroshi Maruyama
163 views
•
58 slides
松下研究室紹介_関西大学高槻キャンパスオープンキャンパス
Matsushita Laboratory
22 views
•
23 slides
gtk4_gem_usage.pdf
ssuser0ef4681
11 views
•
6 slides
HarukiShinkawa_FIT2023
Matsushita Laboratory
18 views
•
24 slides
テスト自動化.pdf
ssuserf8ea02
13 views
•
26 slides
IGDA Japan SIG Audio #20-1 室内・野外でのマイク収録と整音.pdf
IGDA Japan SIG-Audio
91 views
•
31 slides
Recently uploaded
(8)
20230912JSSST大会基調講演_丸山.pdf
Hiroshi Maruyama
•
163 views
松下研究室紹介_関西大学高槻キャンパスオープンキャンパス
Matsushita Laboratory
•
22 views
gtk4_gem_usage.pdf
ssuser0ef4681
•
11 views
HarukiShinkawa_FIT2023
Matsushita Laboratory
•
18 views
テスト自動化.pdf
ssuserf8ea02
•
13 views
IGDA Japan SIG Audio #20-1 室内・野外でのマイク収録と整音.pdf
IGDA Japan SIG-Audio
•
91 views
ReonHata_JSAI2023
Matsushita Laboratory
•
13 views
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
NTT DATA Technology & Innovation
•
23 views
HTML5 Web アプリケーションのセキュリティ
1.
HTML5 Web アプリケーションの セキュリティ Murachi
Akira(CPS Corporation) This material provided by CC BY-NC-ND 4.0. See http://creativecommons.org/licenses/by-nc- nd/4.0/
2.
About me 村地
彰 aka hebikuzure 株式会社シーピーエス 代表取締役 Microsoft MVP (Most Valuable Professional) 2011年 4月 ~ 受賞分野 Visual Studio and Development Technologies (Front End Web Dev) 2 ©Murachi Akira | This material provided by CC BY-NC-ND 2017/2/25
3.
宣伝 2017/2/25©Murachi Akira |
This material provided by CC BY-NC-ND3 トレーニング、講習を承ります プログラミング系 (JavaScript、PHP、Java、VB、C#) IT スキル (Office、ネットワークなど) 系 情報セキュリティ系 情報処理技術者試験対策 (IT パスポート、初級、中級、情 報セキュリティマネジメント) 情報セキュリティ マネジメント、個人情報保護のコ ンサルティングと技術支援を承ります コミュニティ「ネットワーク パケットを読む会 (仮)」をやってます http://pa.hebikuzure.com/
4.
Agenda HTML5 Web
アプリケーションのセキュリティに ついて理解する 守るべきものは何か 何が脅威なのか 発生する脆弱性について理解する 発生する脆弱性を防ぐ方法を理解する 脅威からどのように守るのか どのように脅威を正しく評価するのか ©Murachi Akira | This material provided by CC BY-NC-ND4 2017/2/25
5.
目次 はじめに セキュリティのおさらい
守るべき「情報資産」・資産に対する「脅威」 脅威への対応 脆弱性を作りこまない インシデントへの対処 まとめ ©Murachi Akira | This material provided by CC BY-NC-ND5 2017/2/25
6.
はじめに 2017/2/25©Murachi Akira |
This material provided by CC BY-NC-ND6
7.
ありがちなシステム開発 2017/2/25©Murachi Akira |
This material provided by CC BY-NC-ND7 システム開発頼むよ~ 要件定義は? ざっくりこんな感じ~ が、がんばります…… 追加であれとこれとそれも~ が、がんばります…… できましたヽ(^o^)丿 欲しかったシステムじゃない(-_-;) ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
8.
ありがちなセキュリティ 2017/2/25©Murachi Akira |
This material provided by CC BY-NC-ND8 セキュリティ対策頼むよ~ セキュリティ ポリシーは? ざっくりこんな感じ~ が、がんばります…… 追加であれとこれとそれも~ が、がんばります…… できましたヽ(^o^)丿 欲しかったセキュリティじゃない(-_-;) ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
9.
2017/2/259 どうして こうなった? 開発者・運用者に セキュリティの当事者意識が 欠けていた ©Murachi Akira |
This material provided by CC BY-NC-ND
10.
開発者・運用者にとってのセキュリティ 2017/2/25©Murachi Akira |
This material provided by CC BY-NC-ND10 セキュリティの当事者として 守るべき情報資産 脆弱性の存在 あり得べき攻撃 セキュリティは「怖い」 けれど「正しく怖がる」ことが必要 過大評価も過小評価も禁物 を知る
11.
セキュリティのおさらい 2017/2/2511 ©Murachi Akira
| This material provided by CC BY-NC-ND
12.
セキュリティって何? 2017/2/25©Murachi Akira |
This material provided by CC BY-NC-ND12 一般的な意味としては 安全確保・安全保障 被害の防止 英語で有価証券を "securities" と言うのは、証券化=出 資の分散化により事業(貿易航海など)のリスクを分 散化してきた歴史があるため
13.
リスク、脅威、脆弱性 2017/2/25©Murachi Akira |
This material provided by CC BY-NC-ND13 リスク 脆弱性 脅威 リスク: 資産に対して損失や障害 が生じる事態・状況が発 現する可能性 脆弱性: 資産に内在する、リスク を実際に発生させる要因 脅威: 脆弱性を通じてリスクを 発生させる手段や状況 資 産
14.
情報セキュリティって何? 2017/2/25©Murachi Akira |
This material provided by CC BY-NC-ND14 情報資産を対象としたセキュリティ 情報の機密性、完全性、可用性を維持すること 機密性 (confidentiality):秘密を守る 完全性 (integrity):改竄、破壊、消失しない 可用性 (availability):必要な時に利用できる + α(拡張された定義) 真正性 (authenticity) 責任追跡性 (accountability) 否認防止 (non-repudiation) 信頼性 (reliability) ※ JIS Q 27002 (ISO/IEC 27002) による定義 C AI
15.
情報セキュリティにおける脅威 2017/2/25©Murachi Akira |
This material provided by CC BY-NC-ND15 意図的な攻撃 製品不具合(バグ)による障害発生 人為的失敗(ミス)による障害発生 災害(自然災害・人災)による 障害発生
16.
インシデント 2017/2/25©Murachi Akira |
This material provided by CC BY-NC-ND16 脅威によりリスクが具現化した事象 侵入/改竄の検知 情報漏洩/流出の検知 DoS の検知 ウイルス/マルウエア感染の検知 物理的/論理的障害の検知 脆弱性の発見/検知 (リスクが具現化する可能性が高いため)
17.
Web アプリケーションをとりまく脅威 Web アプリケーション/フロント
エンド Web アプリケーション/サーバー サイド アプリケーション フレームワーク サーバー コンポーネント ネットワーク/プロトコル ©Murachi Akira | This material provided by CC BY-NC-ND17 2017/2/25
18.
Web アプリケーションへの攻撃 サーバー上の情報の窃取・漏洩
サーバー上のシステム/データの改竄 利用者データのクライアントからの窃取 (ex. XSS) なりすまし(ex. CSRF) 他所への攻撃の踏み台(ex. オープン リ ダイレクタ) DoS(Denial of Service) ランサムウェア ©Murachi Akira | This material provided by CC BY-NC-ND18 2017/2/25
19.
どんな脅威があるのか(1) 2010 2013 A1 –
インジェクション A1 – インジェクション A2 – クロスサイトスクリプティング (XSS) A2 – 認証とセッション管理の不備 A3 – 認証とセッション管理の不備 A3 – クロスサイトスクリプティング (XSS) A4 – 安全でないオブジェクト直接参照 A4 – 安全でないオブジェクト直接参照 A5 – クロスサイトリクエストフォージェリ (CSRF) A5 – セキュリティ設定のミス A6 – セキュリティ設定のミス A6 – 機密データの露出 A7 – 安全でない暗号化データ保管 A7 – 機能レベルアクセス制御の欠落 A8 – URLアクセス制限の失敗 A8 – クロスサイトリクエストフォージェリ(CSRF) A9 – 不十分なトランスポート層保護 A9 – 既知の脆弱性を持つコンポーネントの使用 A10 – 未検証のリダイレクトとフォーワード A10 – 未検証のリダイレクトとフォーワード OWASP Top 10 https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project https://www.owasp.org/images/7/79/OWASP_Top_10_2013_JPN.pdf ©Murachi Akira | This material provided by CC BY-NC-ND19 2017/2/25
20.
どんな脅威があるのか(2) 2017/2/25©Murachi Akira |
This material provided by CC BY-NC-ND20 IPA 情報セキュリティ10大脅威 2017 昨年 順位 個人 順位 組織 昨年 順位 1位 インターネットバンキングや クレジットカード情報の不正利用 1位 標的型攻撃による情報流出 1位 2位 ランサムウェアによる被害 2位 ランサムウェアによる被害 7位 3位 スマートフォンやスマートフォンアプリを狙っ た攻撃 3位 ウェブサービスからの個人情報の窃取 3位 5位 ウェブサービスへの不正ログイン 4位 サービス妨害攻撃によるサービスの停止 4位 4位 ワンクリック請求などの不当請求 5位 内部不正による情報漏えいとそれに伴う 業務停止 2位 7位 ウェブサービスからの個人情報の窃取 6位 ウェブサイトの改ざん 5位 6位 匿名によるネット上の誹謗・中傷 7位 ウェブサービスへの不正ログイン 9位 8位 情報モラル不足に伴う犯罪の低年齢化 8位 IoT機器の脆弱性の顕在化 ランク 外 10位 インターネット上のサービスを悪用した攻撃 9位 攻撃のビジネス化 (アンダーグラウンドサービス) ランク 外 ランク 外 IoT機器の不適切管理 10位 インターネットバンキングや クレジットカード情報の不正利用 8位 https://www.ipa.go.jp/security/vuln/10threats2017.html
21.
守るべき「情報資産」 資産に対する「脅威」 2017/2/2521 ©Murachi Akira
| This material provided by CC BY-NC-ND
22.
HTML5 Web アプリの「情報資産」 2017/2/25©Murachi
Akira | This material provided by CC BY-NC-ND22 サービスの継続性 アプリケーション提供の継続性 アプリケーション レスポンスの品位維持 SLA アプリケーションそのもの サーバー サイドのソースコード サーバー サイドのデーターベース その他のアセット ユーザーから預かる情報 ユーザー個人情報 パスワード ハッシュ
23.
サービスの継続性 2017/2/25©Murachi Akira |
This material provided by CC BY-NC-ND23 アプリケーション提供の継続性 アプリケーションのサービスが停止・中断して はいけない アプリケーション レスポンスの品位維持 ユーザーが苦痛を感じないレスポンスの品位を 保たなければならない SLA (Service Level Agreement) ユーザーとの契約は守らなければいけない
24.
サービスの継続性への脅威 2017/2/25©Murachi Akira |
This material provided by CC BY-NC-ND24 サーバーの破壊(侵入/物理攻撃) アプリケーションの停止/パフォーマンス低下 サーバーの改竄/不正利用 (侵入/インジェクション/脆弱性経由) アプリケーションの乗っ取り(ページ改竄) 踏み台として利用される DoS (DDoS) アプリケーションの停止/パフォーマンス低下
25.
アプリケーションそのもの 2017/2/25©Murachi Akira |
This material provided by CC BY-NC-ND25 サーバー サイドのソースコード ビジネス ロジック=営業秘密 プレゼンテーションロジック=ノウハウの塊 改竄=アプリケーションの乗っ取り サーバー サイドのデーターベース 製品情報/販売情報/価格情報 =文字通りの営業秘密 その他のアセット 表示用のテキスト/画像など
26.
アプリケーションそのものへの脅威 2017/2/25©Murachi Akira |
This material provided by CC BY-NC-ND26 コードの漏洩(侵入/脆弱性経由) 営業秘密/ノウハウの流出 コード/アッセトの改竄(侵入/インジェク ション/脆弱性経由) アプリケーションの乗っ取り=スニッ フィング、攻撃者サイトへの誘導 データベースへの攻撃 (インジェクション/脆弱性経由) 営業秘密/ユーザー情報の流出・損失
27.
ユーザーから預かる情報 2017/2/25©Murachi Akira |
This material provided by CC BY-NC-ND27 ユーザー個人情報 ユーザー登録情報(氏名、住所、メールアド レス、カード番号……etc.) ユーザー入力 フロントエンドの脆弱性に注意する所 パスワード ハッシュ 「パスワードそのもの」の保管は論外 単純なハッシュはレインボー テーブルで解析 可能 Salt + ハッシュ ストレッチングは必須
28.
ユーザーから預かる情報への脅威 2017/2/25©Murachi Akira |
This material provided by CC BY-NC-ND28 個人情報データーベースへの攻撃 SQL インジェクション 侵入/脆弱性経由 パスワード ハッシュ データベースへの攻撃 SQL インジェクション 侵入/脆弱性経由 XSS によるユーザ情報の暴露/漏洩 CSRF によるユーザ情報の暴露/漏洩
29.
脅威への対応 2017/2/2529 ©Murachi Akira
| This material provided by CC BY-NC-ND
30.
脅威への対処 2017/2/25©Murachi Akira |
This material provided by CC BY-NC-ND30 脅威について知る ここまでの話 脆弱性を作りこまない インシデントに正しく対処する
31.
脆弱性を作りこまない 2017/2/2531 ©Murachi Akira
| This material provided by CC BY-NC-ND
32.
「脆弱性を作りこまない」 2017/2/25©Murachi Akira |
This material provided by CC BY-NC-ND32 HTML5 Webアプリでありがちな フロントエンドの脆弱性 クロスサイトスクリプティング (XSS) ⇒ DOM based XSS 既知の脆弱性を持つコンポーネントの 使用 未検証のリダイレクトとフォーワード
33.
XSS (DOM based
XSS) 33 2017/2/25©Murachi Akira | This material provided by CC BY-NC-ND
34.
クロスサイト スクリプティング 外部入力を元にした
コンテンツの動的生成により 実行可能なスクリプトが生成され Web アプリケーションのセキュリ ティ コンテキストで実行される セキュリティ コンテキスト = SOP (Same Origin Policy) = ユーザーの信頼 ©Murachi Akira | This material provided by CC BY-NC-ND34 2017/2/25
35.
一般的な XSS のパターン 攻撃ページの作成 ページ内のリンクをクリック サーバーに不正な ユーザー入力を送信 攻撃者のスクリプトを含む ページを送信 スクリプト実行 ©Murachi
Akira | This material provided by CC BY-NC-ND35 2017/2/25
36.
XSS の攻撃コード例 <script>alert(‘hacked’)</script> この部分がサーバーサイドでページに そのまま埋め込まれて返される ©Murachi Akira
| This material provided by CC BY-NC-ND36 2017/2/25
37.
DOM based XSS 攻撃ページの作成 ページ内のリンクをクリック スクリプト実行 不正な入力値の提供 DOM
生成 ©Murachi Akira | This material provided by CC BY-NC-ND37 2017/2/25
38.
DOM based XSS
のコード例 https://www.owasp.org/index.php/DOM_Based_XSS より引用 ©Murachi Akira | This material provided by CC BY-NC-ND38 2017/2/25
39.
DOM based XSS
の発現 …/page.html?default=<script>alert(document.cookie)</scri pt>" document.location.href.indexOf("default=")+8) 取得される文字列 "<script>alert(document.cookie)</script>" document.write("<script>alert(document.cookie)</script>“) ©Murachi Akira | This material provided by CC BY-NC-ND39 2017/2/25
40.
ブラウザーの XSS フィルター
リクエストとレスポンスを比較して XSS を検出するとコード実効を抑止す る機能 一般的な XSS : 〇 検知・抑止できる場合が少なくない DOM based XSS : × 検知・抑止できない場合が多い ©Murachi Akira | This material provided by CC BY-NC-ND40 2017/2/25
41.
DOM based XSS
の実例(1) に誘導 参考 https://www.ipa.go.jp/files/000024729.pdf ©Murachi Akira | This material provided by CC BY-NC-ND41 2017/2/25
42.
DOM based XSS
の実例(2) 参考 https://www.ipa.go.jp/files/000024729.pdf ©Murachi Akira | This material provided by CC BY-NC-ND42 2017/2/25
43.
DOM based XSS
の実例(3) http://utf-8.jp/public/20140908/owasp-hasegawa.pdf より 引用 ハッシュ (# の後ろ) はサーバーに送信されないので、サーバーでの検知が できないパターン ©Murachi Akira | This material provided by CC BY-NC-ND43 2017/2/25
44.
XSS - ソースとシンク
ソース (sources) DOM based XSS の攻撃コードが 注入される場所 シンク (sinks) DOM based XSS の攻撃コードが JavaScript コードとして発現する場所 ©Murachi Akira | This material provided by CC BY-NC-ND44 2017/2/25
45.
XSS -ソースからシンクへ 2017/2/25©Murachi Akira
| This material provided by CC BY-NC-ND45 ユーザー入力 ソースにセット ソースから取得 シンクに値を出力 XSS 発現
46.
XSS -ソース (sources)
location.hash location.search location.href document.cookie document.referrer window.name Web Storage IndexedDB 外部から操作可能な データの源泉 ©Murachi Akira | This material provided by CC BY-NC-ND46 2017/2/25
47.
XSS -シンク (sinks)
innerHTML location.href document.write eval setTimeout, setInterval Function jQuery(), $(), $.html() テキストの出力 コードの生成 実行 ©Murachi Akira | This material provided by CC BY-NC-ND47 2017/2/25
48.
XSS - Mutation-based
XSS (mXSS) DOM based XSS の変種 HTML element String HTML element innerHTML で取得 innerHTML で書き出し 元の HTML と書きだした HTML が同一にならない ©Murachi Akira | This material provided by CC BY-NC-ND48 2017/2/25
49.
XSS - mXSS
innerHTML / outerHTML を参照する と本来のDOM構造とは異なる文字列 が取得される場合がある 取得した文字列をそのまま innerHTML / outerHTML などで出力 すると、実行可能な JavaScript コード が生成される ©Murachi Akira | This material provided by CC BY-NC-ND49 2017/2/25
50.
XSS - Mutation-based
XSS の例 http://utf-8.jp/public/20140908/owasp-hasegawa.pdf より 引用 ©Murachi Akira | This material provided by CC BY-NC-ND50 2017/2/25
51.
DOM based XSS
の対策 51 2017/2/25©Murachi Akira | This material provided by CC BY-NC-ND
52.
XSS - DOM
based XSS の対策 HTML 生成時にエスケープ JavaScript Escape / HTML Escape / URL Escape DOM 操作メソッド / プロパティの利用 URL 生成のスキームの限定 CSP(Content Security Policy)の利用 Iframe sandbox の利用 ライブラリの更新 (ライブラリに脆弱性があることも) ©Murachi Akira | This material provided by CC BY-NC-ND52 2017/2/25
53.
XSS - DOM
操作メソッド/プロパティの利用 createElement( ) createTextElement( ) createTextNode( ) appendChild( ) insertBefor( ) setAttribute( ) ©Murachi Akira | This material provided by CC BY-NC-ND53 2017/2/25
54.
XSS -逆に利用を避けるべき innerHTML
outerHTML document.write( ) document.writeln( ) String リテラルを組み立ててそのまま HTML と して出力しないのが基本 ©Murachi Akira | This material provided by CC BY-NC-ND54 2017/2/25
55.
XSS - URL
生成のスキームを限定する リンク(URL)の動的生成も危険 javascript: スキームなど任意の スキームのURLを生成しない HTTP (HTTPS) のURLのみ生成する ©Murachi Akira | This material provided by CC BY-NC-ND55 2017/2/25
56.
XSS - CSP(Content
Security Policy) ポリシー ベースでスクリプトのロー ドと実行に強い制約を課す仕組み ©Murachi Akira | This material provided by CC BY-NC-ND56 2017/2/25
57.
XSS - CSP(Content
Security Policy)の利用 サーバー ヘッダー Content-Security-Policy でポリシーを構成 Firefox, Chrome, Safari, Edge で利用可 能 IE は IE10 以降で X-Content-Security-Policy で部分的サポート ©Murachi Akira | This material provided by CC BY-NC-ND57 2017/2/25
58.
XSS - Content
Security Policy の効果 コンテンツを読み込むドメイン / プロトコルを 制限できる コード インジェクションによる外部コンテンツの読み 込みを防ぐ インライン JavaScript を無効にする XSS / DOM base XSS の無効化 インライン イベント ハンドラーを無効にする 必要があれば外部スクリプトから addEventListener() でハンドラーを設定する eval() も無効にする ©Murachi Akira | This material provided by CC BY-NC-ND58 2017/2/25
59.
XSS - Content
Security Policy の設定例 Content-Security-Policy: default-src ‘self’ すべてのコンテンツをサイト自身のドメイン (サブドメインを除 く) から読み込む Content-Security-Policy: script-src ‘self’ スクリプトの読み込みをサイト自身のドメイン (サブドメインを 除く) に制限する Content-Security-Policy: default-src ‘self’ *.mydomain.com サイト自身のドメインおよび、信頼されたドメインとそのすべて のサブドメインからのコンテンツを許可(それ以外は制限) Content-Security-Policy: default-src https://banking. bank.com banking. bank.com サイトのすべてのコンテンツを SSL を使用し て読み込む ©Murachi Akira | This material provided by CC BY-NC-ND59 2017/2/25
60.
XSS - Content
Security Policy の利用は計画的に Content Security Policy は強力な分、副作 用も強い 既存のアプリケーションに適用するのは ハードルが高い まずは Content-Security-Policy-Report-Only から ©Murachi Akira | This material provided by CC BY-NC-ND60 2017/2/25
61.
Content-Security-Policy-Report-Only 2017/2/25©Murachi Akira |
This material provided by CC BY-NC-ND61 例 Content-Security-Policy-Report-Only: ⏎ default-src 'self'; ⏎ report-uri http://example.com/csp-report CSP違反レポートだけ report-uri で指定するサーバーに 送信される(ブラウザーでのレンダリング、JS 実行には 影響を与えない) 違反レポートは簡単な JSON なので、サーバーは受信し た JSON をデータベースに貯めるだけで OK レポートを見て、直せるところから直す (実際は1行)
62.
iframe sandbox の利用
動的に生成する要素を iframe に封じ込める iframe に sandbox 要素を指定してフレーム 内コンテンツに制限を掛ける コンテンツを 動的に生成 <iframe sandbox id="foo"> 制限された コンテンツ ©Murachi Akira | This material provided by CC BY-NC-ND62 2017/2/25
63.
XSS - iframe
sandbox の設定例 <iframe sandbox src="frame1.html"> すべての制限を有効にする <iframe sandbox="allow-forms" src="frame1.html"> フォームの動作を許可する <iframe sandbox="allow-same-origin" src="frame1.html"> フレーム内コンテンツを親と同じオリジンと見做す ©Murachi Akira | This material provided by CC BY-NC-ND63 2017/2/25
64.
XSS - iframe
sandbox の効果 許可の指定をしない限り強い制限 フォームの動作不可 スクリプト実行不可 ポップ アップの作成不可 親コンテンツとは別のオリジンになる (SOP の制限適用) 親レベルのコンテンツの読み込み・操作不可 ©Murachi Akira | This material provided by CC BY-NC-ND64 2017/2/25
65.
既知の脆弱性を持つ コンポーネントの使用 65 2017/2/25©Murachi Akira
| This material provided by CC BY-NC-ND
66.
既知の脆弱性を持つコンポーネントの使用 最終的に信頼できるのは自分だけ 自分で書いたコンポーネント(ライブラリ)だけ使う? 生産性でも信頼性でも現実的ではない 外部のコンポーネントには「脆弱性」があるかも ©Murachi Akira |
This material provided by CC BY-NC-ND66 2017/2/25
67.
脆弱なコンポーネント – 必要以上に外部ライブラリに依存しない HTML5
で強化された機能を積極的に 利用することで外部ライブラリ依存 は減らせる 単純な操作であればライブラリより ネイティブに書いた方が速い ©Murachi Akira | This material provided by CC BY-NC-ND67 2017/2/25
68.
脆弱なコンポーネント – 最新のライブラリを使用/更新する 作成時の「最新」
⇒✖ 稼働時は「常に最新」 ⇒〇 ©Murachi Akira | This material provided by CC BY-NC-ND68 2017/2/25
69.
脆弱性情報へのアンテナを張る 最新のセキュリティ情報を把握する 公開脆弱性データベース
JVN (Japan Vulnerability Notes) CVE (Common Vulnerabilities and Exposures) NVD (National Vulnerability Database) ライブラリのプロジェクトのメーリングリスト セキュリティ関連のメーリングリスト セキュリティ系勉強会 ©Murachi Akira | This material provided by CC BY-NC-ND69 2017/2/25
70.
セキュリティテストを実施する 気づいていない脆弱性もテストで 発見できる(かもしれない) ©Murachi Akira
| This material provided by CC BY-NC-ND70 2017/2/25
71.
未検証のリダイレクトと フォーワード 71 2017/2/25©Murachi Akira
| This material provided by CC BY-NC-ND
72.
未検証のリダイレクトとフォーワード オープン リダイレクターを作りこま ない
任意の場所へ遷移可能なフォーワー ダーを作りこまない ©Murachi Akira | This material provided by CC BY-NC-ND72 2017/2/25
73.
リダイレクトとフォーワードの対策 リダイレクトやフォーワードの使用を できるかぎり避ける 本当に必要ですか?
ユーザ パラメータで遷移先を決定しない 遷移先パラメータが必要な場合、提供され た値の検証をおこなう 遷移先を限定する 遷移先ドメインのリスト化 ©Murachi Akira | This material provided by CC BY-NC-ND73 2017/2/25
74.
インシデントへの対処 2017/2/2574 ©Murachi Akira
| This material provided by CC BY-NC-ND
75.
インシデントが起きる理由 2017/2/25©Murachi Akira |
This material provided by CC BY-NC-ND75 プログラム上の脆弱性 組織マネジメントの脆弱性 個人マネジメントの脆弱性
76.
インシデント - 脆弱性の発見・報告 2017/2/25©Murachi
Akira | This material provided by CC BY-NC-ND76 自社プログラム/サービスの脆弱性の発見・報 告 自社内で発見 ユーザーや研究者から直接 IPA などの公的機関経由 ネット上などで暴露 利用しているプラットフォームの脆弱性発見 フレームワークの脆弱性 データベースの脆弱性 OS / クラウドの脆弱性
77.
インシデント - インシデントの発生 2017/2/25©Murachi
Akira | This material provided by CC BY-NC-ND77 自社内で発生を発見 外部からの報告 ユーザーや研究者から直接 IPA などの公的機関経由 ネット上などで暴露
78.
インシデント - 優先課題を切り分ける 2017/2/25©Murachi
Akira | This material provided by CC BY-NC-ND78 優先するのは何? 脆弱性の改修? ユーザーへの告知? サービスを止める?/止めない? 判断基準は?
79.
問題の深刻度を計測する 2017/2/25©Murachi Akira |
This material provided by CC BY-NC-ND79 脆弱性の深刻度評価 共通脆弱性評価システムCVSS概説 http://www.ipa.go.jp/security/vuln/CVSS.html CVSS 計算ツール http://jvndb.jvn.jp/cvss/ScoreCalc2.swf?lang=ja 評価の着目点 攻撃の行いやすさ/成功しやすさ 機密性・完全性・可用性への影響の大きさ 発生する被害の大きさ
80.
深刻度の評価は難しい 2017/2/25©Murachi Akira |
This material provided by CC BY-NC-ND80 脆弱性の技術的詳細を理解しないと評価し にくい場合が少なくない しかし難解な場合も多い 公開されている CVSS が自組織に適合する とは限らない 自組織固有の状況を考慮しなければならない ユーザーに影響する場合、技術的な評価だ けで判断できない ユーザー心理に配慮しなければならない
81.
評価の精度を上げるには 2017/2/25©Murachi Akira |
This material provided by CC BY-NC-ND81 守るべき物=自分(自社)のアプリケー ション/システムの全体像を良く知る 脆弱性情報に親しむ インシデント対応に慣れる
82.
守るべきものの全体像を知る 2017/2/25©Murachi Akira |
This material provided by CC BY-NC-ND82 利用しているテクノロジーを確認 システムのインフラ (サーバーOS/ネットワーク/etc.) ミドルウエア (データベース/フレームワーク/etc. ) 外部コンポーネント/ライブラリ
83.
脆弱性情報へのアンテナを張る 最新のセキュリティ情報を把握する 公開脆弱性データベース
JVN (Japan Vulnerability Notes) CVE (Common Vulnerabilities and Exposures) NVD (National Vulnerability Database) ライブラリのプロジェクトのメーリングリスト セキュリティ関連のメーリングリスト セキュリティ系勉強会 ©Murachi Akira | This material provided by CC BY-NC-ND83 2017/2/25
84.
セキュリティ診断を実施する セキュリティ診断結果の評価は本番 インシデント評価に役立つ ©Murachi Akira
| This material provided by CC BY-NC-ND84 2017/2/25
85.
予行演習を実施する 2017/2/25©Murachi Akira |
This material provided by CC BY-NC-ND85 インシデント対応の予行演習を 定期的に実施する セキュリティの「防災訓練」
86.
まとめ 86 2017/2/25©Murachi Akira
| This material provided by CC BY-NC-ND
87.
本日の Agenda ©Murachi Akira
| This material provided by CC BY-NC-ND87 2017/2/25 HTML5 Web アプリケーションの セキュリティについて理解する 守るべきものは何か 何が脅威なのか 脅威からどのように守るのか どのように脅威を正しく評価 するのか
88.
Call to Action
IPA(情報処理推進機構)サイトのウオッチ 情報セキュリティ https://www.ipa.go.jp/security/index.html セキュア・プログラミング講座 http://www.ipa.go.jp/security/awareness/vendor/progra mming/ OWASP (Open Web Application Security Project ) を知る Welcome to OWASP https://www.owasp.org/ OWASP Japan https://www.owasp.org/index.php/Japan セキュア プログラミングの実践 セキュリティ勉強会への参加 ©Murachi Akira | This material provided by CC BY-NC-ND88 2017/2/25
89.
Web アプリ セキュリティの参考図書・資料 2017/2/25©Murachi
Akira | This material provided by CC BY-NC-ND89 体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践 https://www.amazon.co.jp/dp/4797361190 徳丸浩のWebセキュリティ教室 https://www.amazon.co.jp/gp/product/4822279987/ ブラウザハック https://www.amazon.co.jp/dp/479814343X UTF-8.jp http://utf-8.jp/ 安全なウェブサイトの作り方 https://www.ipa.go.jp/security/vuln/websecurity.html
90.
勉強会情報 OWASP Night
/ OWASP Day https://owasp.doorkeeper.jp/ 江戸前セキュリティ勉強会 https://sites.google.com/site/edomaesec/ Shibuya.XSS http://shibuyaxss.connpass.com/ 脆弱性診断研究会 https://security-testing.doorkeeper.jp/ ©Murachi Akira | This material provided by CC BY-NC-ND90 2017/2/25
91.
2017/2/2591 ©Murachi Akira
| This material provided by CC BY-NC-ND