自己紹介 はせがわようすけ ネットエージェント株式会社 株式会社セキュアスカイ テクノロジー技術顧問 OWASP Kansai Chapter Leader OWASP Japan Chapter Advisory Board member

Similar documents
自己紹介 長谷川陽介 ( はせがわようすけ ( 株 ) セキュアスカイ テクノロジー常勤技術顧問 セキュリティキャンプ講師 (2008 年 ~) OWASP Kansai チャプターリーダー OWASP Japan ボードメンバー CODE BLUE カンファレ

自己紹介 はせがわようすけ ネットエージェント株式会社 株式会社セキュアスカイ テクノロジー技術顧問 Microsoft MVP for Consumer Security Oct

自己紹介 はせがわようすけ ネットエージェント株式会社 株式会社セキュアスカイ テクノロジー技術顧問 セキュリティ キャンプ Webセキュリティクラス OWASP Kansai Chapter Leader OWASP Japan board member

自己紹介 XSS のほうから来ました author of jjencode, aaencode

WEBシステムのセキュリティ技術

自己紹介 はせがわようすけ ネットエージェント株式会社 株式会社セキュアスカイ テクノロジー技術顧問 OWASP Kansai Chapter Leader OWASP Japan Chapter Advisory Board member

HTML5を利用したWebアプリケーションのセキュリティ問題に関する調査報告書 Rev.2

WebSocketを見てみよう

HTTP Web Web RFC2616 HTTP/1.1 Web Apache Tomcat (Servlet ) XML Xindice Tomcat 6-2

自己紹介 はせがわようすけ OWASP Kansai チャプターリーダー OWASP Japan アドバイザリボードメンバー 株式会社セキュアスカイ テクノロジー常勤技術顧問 CODE BLUE Security Conference Review board member セキュリティキャンプ講師

Web のクライアントサーバモデル

第2回_416.ppt

5-5_arai_JPNICSecSemi_XssCsrf_CM_ PDF


— intra-martで運用する場合のセキュリティの考え方    

Microsoft Word - Webシステム/Webアプリケーション セキュリティ要件書 docx

平成30年度 パソコン・ネットワークの設定について

PowerPoint プレゼンテーション

Yosuke Secure Sky Technology Inc. Technical Advisor OWASP Kansai Chapter Leader OWASP Japan Chapter board member CODE BLUE Re

Webシステム/Webアプリケーション セキュリティ要件書1.0

第 8 回の内容 クライアントサイド処理 JavaScript の基礎

HTTP2 HTTP2 http2fuzz ATS Firefox NodeJS

Copyright 2006 Mitsui Bussan Secure Directions, Inc. All Rights Reserved. 3 Copyright 2006 Mitsui Bussan Secure Directions, Inc. All Rights Reserved.

PowerPoint プレゼンテーション

Webアプリケーションを守るための対策

2.2 Reflected XSS 攻撃攻撃者の用意した悪意のあるリンクとターゲットサーバが同じホストである場合の Reflected XSS 攻撃を, 本稿では Reflected XSS 攻撃と呼ぶ. 例えば, サーバ A の target.php に Reflected XSS 脆弱性があった

ご利用のブラウザのバージョンによっては 若干項目名が異なる場合があります 予めご了承ください Windows をお使いの場合 [ 表示 ] [ エンコード ] [ 日本語 ( 自動選択 )] を選択 [ 表示 ] [ エンコード ] [Unicode(UTF-8)] を選択 Firefox をご利用

ict8.key

WSMGR for Web External V7.2 L50 ご紹介

コンテンツメディアプログラミング実習2

WebOS aplat WebOS WebOS 3 XML Yahoo!Pipes Popfry UNIX grep awk XML GUI WebOS GUI GUI 4 CUI

(8) [ 全般 ] タブをクリックします (9) [ インターネット一時ファイル ] の [ 設定 ] ボタンをクリックします (10) [ 保存しているページの新しいバージョンの確認 ] から [ ページを表示するごとに確認する ] をクリックします (11) [OK] ボタンをクリックしていき

目次 1.UT-mate について UT-mate について.2 UT-mate で利用可能な機能.2 2.Web ブラウザの設定 UT-mate を利用するための Web ブラウザの設定.3 3. システムの起動とログイン ログアウト UT-mate へのログイン.12 タイムアウトについて.13

第7回 Javascript入門

<4D F736F F F696E74202D E A B D682CC91E3955C93498D558C822E707074>

ロイロノートスクールクラウド版表 クラウド サービス利 弊社が 意しているクラウドサービスへ接続し利 するシンプルなプランです サービスだけで利 することができます プラン 保存可能な容量 / ユーザー 額の場合 / ユーザー 年額の場合 / ユーザー 共 タブレット向け 1 0.8GB 40 円

Web Gateway資料(EWS比較付)

Microsoft Word - Gmail-mailsoft設定2016_ docx

ポップアップブロックの設定

目次 1. PDF 変換サービスの設定について )Internet Explorer をご利用の場合 )Microsoft Edge をご利用の場合 )Google Chrome をご利用の場合 )Mozilla Firefox をご利

SmartBrowser_document_build30_update.pptx

SinfonexIDaaS機能概要書

McAfee Application Control ご紹介

メール設定 Outlook Express 6 の場合 (Windows 98 ~ XP) Outlook Express 6 の場合 (Windows 98 ~ XP) Windows XP に付属する Outlook Express 6 に αweb のメールアカウントを追加する方法についてご案

2015 年 4 月 15 日に発表された HTTP.sys の脆弱性 ( ) へ の対応について 製品名 : バージョン : 対象プラットフォーム : カテゴリ : iautolaymagic すべてすべて Web アプリ この度 マイクロソフト社製品において緊急度の高い脆弱性 (CV

CA Federation ご紹介資料

DIGNO® ケータイ ユーザーガイド

ウェブデザイン技能検定 1 級実技 平成 28 年度 第 4 回 ウェブデザイン技能検定 1 級 実技試験概要 試験にあたっての注意事項 試験者は本試験の留意事項 注意事項に留意して作業を行うこと ペーパー実技試験は 課題 1 から 5 までの 5 課題を 60 分間で行うこと 作業実技試験は 課題

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

AQUOSケータイ3 オンラインマニュアル

【更新中】証明書マニュアルv2.1_BMO

PowerPoint Presentation

07_経営論集2010 小松先生.indd

HTML5の動向と展望(ネットラーニングセミナー)

untitled

目次 1 はじめに 本資料について 用語の説明 サービス概要 シマンテッククラウド型 WAF について ウェブアプリケーションファイアウォール機能 ブロック モニタリング機能

PALNETSC0184_操作編(1-基本)

SAMBA Stunnel(Mac) 編 1. インストール 1 セキュア SAMBA の URL にアクセスし ログインを行います xxxxx 部分は会社様によって異なります xxxxx 2 Mac OS 版ダウンロー

2006

HTML5 Security & Headers- X-Crawling-Response-Header-

Transcription:

HTML5 のセキュリティ もうちょい詳しく HTML5 セキュリティその 3 : JavaScript API Jun 6 2014 Yosuke HASEGAWA

自己紹介 はせがわようすけ ネットエージェント株式会社 株式会社セキュアスカイ テクノロジー技術顧問 http://utf-8.jp/ OWASP Kansai Chapter Leader OWASP Japan Chapter Advisory Board member

HTML5 時代の Web アプリ 次々とリリースされるブラウザ 多数の新しい要素と属性 canvas, video, audio, input 多数の新しい API Web Sockets, Web Storage, XHR Lv.2 最適化された JavaScript エンジン 高速化された描画エンジン どのブラウザにどの機能が実装されているのか把握できない

次々リリースされるブラウザ 2001 2001 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 6 7 8 9 10 1.0 1.5 2.0 3.0 3.5 3.6 15 1 2 3 4 5 23 1 2 3 4 5 6 5 6 7 8 9 10 11 12

HTML5 の新機能 マルチメディアのサポート <video> <audio> <canvas>... 文書構造を表す要素 <section> <header> <footer>... フォームの拡張 <input type="email">... JavaScript API Web Workers, WebSocket, File... その他

HTML5 時代の Web アプリ HTML5 時代のブラウザ 高速化 高機能化 実行コードのブラウザ上へのシフト ネイティブアプリから Web アプリへ サーバ側で実行されていた処理がブラウザの JavaScript 上へ 攻撃もクライアントサイドへシフト JavaScript 上の問題点の増加 XSS や CSRF などの比重が増加

Web の技術楽しいですよね!

クロスサイトスクリプティング 書式文字列攻撃 SQL インジェクション パストラバーサル CSRF LDAP インジェクション 強制ブラウズリモートファイルインクルード バッファオーバーフロー セッションハイジャック Web の技術楽しいですよね! OS コマンドインジェクション セッション固定攻撃 HTTPレスポンス分割メモリリーク オープンリダイレクタ DoS XPath インジェクション HTTP ヘッダインジェクション

HTML5 を使った攻撃 攻撃側こそ新しい Web の技術をもっとも活用できる クロスブラウザ対応不要! 誰に遠慮することもなく使いたい技術を選んで使える! 多少不安定な技術でもかまわない!

HTML5 で増加する脅威 攻撃もクライアントサイドへシフト JavaScript を通じた攻撃の比重が増加 XSS のリスクも増加 多くの点から見て XSS 脆弱性の危険性はバッファオーバーフローに匹敵します セキュリティに関するブリーフィング : Web に対する SDL の適用 http://msdn.microsoft.com/ja-jp/magazine/cc794277.aspx

HTML5 で増加する脅威 XSS HTML5 の新要素による XSS JS コード量の増加 DOM Based XSS Ajax データによる XSS CSRF XMLHttpRequest で攻撃者有利 オープンリダイレクタ JavaScript によるリダイレクトの増加 その他 Ajax データからの情報漏えい API の使い方の問題 WebSocket Web Storage Web Workers

今日のはなし JavaScript API 使用上の注意点 WebSocket Web Storage Web Workers

WebSocket

WebSocket JavaScript における双方向通信機能 var ws = new WebSocket( "ws://example.jp/" ); ws.onopen = function( evt ){ console.log( "connected" ); }; ws.onmessage = function( evt ){ console.log( "received:" + evt.data ); }; ws.send( "hello" );

WebSocket 重要な情報は TLS(wss://) を使うこと http に対する https と同様 // no TLS var ws = new WebSocket( "ws://example.jp/" ); // over TLS var ws = new WebSocket( "wss://example.jp/" );

WebSocket Cookie は http/https と共有される http://example.jp/ で発行された Cookie は https://example.jp/ ws://example.jp:8080/websocket wss://example.jp:8081/websocket などで共有される (secure 属性がない場合 )

WebSocket Cookie は http/https と共有される GET /index.html HTTP/1.1 Host: example.jp Connection: Keep-Alive GET /websocket HTTP/1.1 Upgrade: websocket HTTP/1.1 200 OK Connection: Upgrade Date: Tue, 1 Jan 2013 09:00:00 Host: GMT example.jp Content-Length: 2524 Origin: http://example.jp Content-Type: text/html; charset=utf-8 Sec-WebSocket-Key: mu6obz5gkwugzqbj2otwfq== Set-Cookie: session=12afe9bd34e5a202; path=/... Sec-WebSocket-Version: 13 Sec-WebSocket-Protocol: chat, superchat Cookie: session=12afe9bd34e5a202 OWASP Kansai Local Chapter Meeting #2 HTTP/1.1 101 Switching Protocols Upgrade: WebSocket Connection: Upgrade Sec-WebSocket-Accept: IsCRPjZ0Vshy2opkKOsG2UF74eA= Sec-WebSocket-Protocol: chat...

WebSocket secure 属性付きの Cookie は https と wss で共有される https://example.jp/index.html wss://example.jp:8081/websocket

Web Storage

Web Storage JavaScript でデータを保存する機構 Cookieより大容量 Cookieと違って自動送信されない JavaScript 上で明示的な読み書きが必要 sessionstorage.setitem( "foo", "abcdefg" ); var value = sesseionstorage.getitem( "foo" ); localstorage - 永続的に保持 sessionstorage - セッション間だけ保持

Web Storage localstorage 明示的に削除しない限りデータを保持 原則 オリジン単位でデータを保持 IE8 では http と https で共有される Safari ではプライベートブラウズ時に読み書きできない sessionstorage.setitem( "foo", "data" ); // 例外発生 alert( sesseionstorage.getitem( "foo" ) );

Web Storage sessionstorage ブラウザが開かれている間データを保持 新しいタブでは異なるセッション 同一オリジンの iframe frame ではセッションを共有 (IE8,9 を除く ) IE8 では http と https で共有される

Web Storage Cookie と違い 常に JavaScript から読み書き可能 Cookie httponly によって JS からアクセス不可 XSS が発生したときに盗み見を防ぐことができない パスワードや生年月日などの重要情報を Web Storage に保存しないこと

Web Storage Web アプリケーションの セッション と異なるデータ保持期間 Web アプリケーション : セッション = ログインからログアウトまで sessionstorage ( 原則 ) タブを閉じるまで localstorage 無期限 ログインしたユーザに紐づくデータの保存期間に注意

Web Storage ユーザ A 他のユーザとデータが混在する可能性 ログイン データを保存 タイムアウトによる強制ログアウト ユーザ B Web Storage ログイン データ読み込み 誤ったデータの使用データ漏えい

Web Storage 対策 ユーザ ID と合わせて保存する sessionstorage.setitem( userid + "-foo", "data" ); 未ログインでのページロード時やログイン処理時 ログアウト処理時に storage 内のデータを削除する ( ログアウト処理は確実に走るとは限らない )

Web Workers

Web Workers JavaScript によるバックグラウンド処理機構 多量の計算などの重い処理を UI をブロックせず実行 var worker = new Worker( "background-task.js" ); worker.onmessage = function( event ){ alert( "completed:" + event.data ); }; // background-task.js for( var i = 0, sum = 0; i < 1000; i++ ){ sum += i; } postmessage( sum );

Web Workers 外部からのコードが実行されないよう注意 // 脆弱なコード // http://example.jp/#data:text/javascript,onmessage=... var src = location.hash.substring(1); var worker = new Worker( src ); 攻撃者が用意したスクリプトが Worker として実行される ただし DOM 操作できないので脅威は低い

Web Workers importscripts も同様 // 脆弱なコード importscripts に任意の URI がわたる var src = location.hash.substring(1); var worker = new Worker( 'worker.js' ); worker.postmessage( src ); // worker.js onmessage = function( evt ){ if( evt.data ) importscripts( evt.data ); }

まとめ Conclusion

まとめ WebSocket 重要情報は TLS で保護された wss: スキームで Cookie の共有に注意 Web Storage 重要情報は保存しない 複数ユーザの意図しないデータ共有に注意 Web Workers 外部由来のコードを worker src として使用しない

参考文献

HTML5 調査報告 from JPCERT/CC

参考文献 http://utf-8.jp/ HTML5 セキュリティその 1: 基礎編 XSS 編 http://utf-8.jp/public/20130613/owasp.pptx HTML5 セキュリティその 2: オープンリダイレクト CSRF http://utf-8.jp/public/20131114/owasp.pptx

質問タイム Question?

Question? 質問 hasegawa@utf-8.jp hasegawa@netagent.co.jp @hasegawayosuke http://utf-8.jp/