- 概要
- 攻撃者にとっても便利
- 攻撃の幅もひろがる
- HTML5 で脆弱性になってしまうケース
- 検証や周知が追い付いていない
- 調査報告書の紹介
- HTML5 を利用した Web アプリケーションのセキュリティ問題に関する調査報告書
- jpcert の公開資料から探してダウンロード
- 報告書の引用方法など
- 内容の紹介
- XMLHttpRequest
- 従来はオリジンのみと通信が可能
- HTML5 で CORS 対応
- (Req)Origin -> (Res)Access-Control-Allow-Origin
- 問題となるケース
- 左にメニュー 右にhashをURLとして扱い、xhr内容を表示する場合
- #//evil.com/ のような入力で悪意あるサイトを表示させてしまう
- 対策
- 接続先をホワイトリストにする
- ドメインを区別するのは他の脆弱性があると危険
- オープンリダイレクタなどがあると迂回される
- クッキーを使うことでアクセス制御
- HTML5 新要素
- video
- onerror に js 埋め込み
- button formaction
- formaction に js 埋め込み
- autofocus と onfocus の組み合わせ
- type=email, pattern なら安心?
- サーバ側でのチェックをサボってはいけない
- iframe sandbox 安心?
- iframe sandbox をはずした攻撃ページが作られる
- video
- セキュリティ関連機能
- Content-security-Policy
- 読み込み可能なリソースのオリジンを制限することができる
- ディレクティブなどで制限するタイプを指定することができる
- report-uri で違反レポート(json)の送信先がわかる
- キャッシュで読み込まれた場合も効果は持続するのか?
- 確認してない
- Content-security-Policy
- XMLHttpRequest
- キャッシュポイズニング
- 継続的に監視・攻撃を行う
- 最近はブラウザ上でキャッシュポイズニングも話題に
- 話題
- モバイル端末の普及
- オフラインになることが多い
- 一瞬のすきができやすい
- 貸し借りの際のアカウント切り替えが容易でない
- モバイル端末の普及
- ブラウザAPIの進化
- アプリケーションキャッシュって危険なの?
- Application Cache に関するセキュリティ報告書がいくつかある
- キャッシュポイズニング
- 信頼出来ないネットワークで不正なコードをキャッシュさせられる
- そもそもやばいが、持続するのが脅威となる
- 瞬間的な攻撃ではなく継続的な監視ができる
- 信頼出来ないネットワークで不正なコードをキャッシュさせられる
- 使わない方がいいの?
- そんなことない
- appcache自体をキャッシュ対象にいれれば継続可能
- コンテンツ提供側からみて危険が増えたわけではない
- ブラウザ
- Firefox は確認ダイアログがでる
- 公衆無線LANの増加
- 実際MITMってできるの?
- キャリアの提供する AP になりすます、細工するなど
- 設置店舗が悪意を持っているか
- 同じパスワードの別APを建てる
- モバイルサイトはすべてhttpsにするべき?
- SOP 破り: Same Origin Policy
- OWASP やるよチケット買ってね
- RFC6454: The Web Origin Concept
- スキーム+ホスト+ポート
- Origin が異なるリソースは制約を課しましょう
- img crossorigin 属性
- anonymous
- use-credentials
- XMLHttpRequest
- 意図せずクロスオリジン→XSS
- クロスオリジンできない時代は問題なかったコードが問題になる
- 意図せずクロスオリジン→データ漏洩
- telnet で接続される可能性
- Originヘッダは認証には使えない
- 認証をする場合はCookieを使う
- Ajaxデータを使ったXHR
- IEだとjsonを返すだけのものに.htmlとかつけると優先されてスクリプト実装される
- X-Content-Type-Option を付ける
- Ajaxデータ内の機密情報漏洩
- language="vbscript" とすることで JSON を実行させ、秘密情報がエラーにながれる
- onerror でハンドリングして攻撃者に情報を送る
- X-Content-Type-Option を付ける
- 意図せずクロスオリジン→XSS
- セキュリティ関連のHTTPヘッダ
- X-XSS-Protection
- XSS 保護機能の制御
- X-Content-Type-Options
- Content-Type を厳格に扱う
- X-Frame-Options
- クリックジャッキング防止
- iframe, frame などの埋め込みを禁止
- Content-Security-Policy
- 指定されたソースからしか画像やJSを読み込めなくする
- 使いこなすのはとても大変
- X-Download-Options
- IE8以降でダウンロード時に「開く」ボタンを非表示
- ユーザがうっかり開いてXSSになってしまうのを防ぐことができる
- 画像とかで利便性が下がるかもしれない
- Strict-Transport-Security
- HTTPS を強制するためのヘッダ
- このヘッダを返すページ自体が https じゃないといけない
- preload HSTS では日本では cyboze だけ!
- X-XSS-Protection
そもそもCookieとOriginで認証失敗したら200にならない?