Soumettre la recherche
Mettre en ligne
次世代プラットフォームのセキュリティモデル考察(前編)
•
19 j'aime
•
9,478 vues
Y
Yosuke HASEGAWA
Suivre
セキュリティキャンプ2016 講義資料
Lire moins
Lire la suite
Internet
Signaler
Partager
Signaler
Partager
1 sur 40
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
他人事ではないWebセキュリティ
他人事ではないWebセキュリティ
Yosuke HASEGAWA
[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見
Yosuke HASEGAWA
インフラセキュリティブートキャンプ #seccamp
インフラセキュリティブートキャンプ #seccamp
Masahiro NAKAYAMA
安全なPHPアプリケーションの作り方2014
安全なPHPアプリケーションの作り方2014
Hiroshi Tokumaru
HTML5のセキュリティ もうちょい詳しく- HTML5セキュリティその3 : JavaScript API
HTML5のセキュリティ もうちょい詳しく- HTML5セキュリティその3 : JavaScript API
Yosuke HASEGAWA
徳丸本に載っていないWebアプリケーションセキュリティ
徳丸本に載っていないWebアプリケーションセキュリティ
Hiroshi Tokumaru
画像解析最前線!WatsonとTensorFlowを比較してみた
画像解析最前線!WatsonとTensorFlowを比較してみた
softlayerjp
文字コードに起因する脆弱性とその対策(増補版)
文字コードに起因する脆弱性とその対策(増補版)
Hiroshi Tokumaru
Recommandé
他人事ではないWebセキュリティ
他人事ではないWebセキュリティ
Yosuke HASEGAWA
[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見
Yosuke HASEGAWA
インフラセキュリティブートキャンプ #seccamp
インフラセキュリティブートキャンプ #seccamp
Masahiro NAKAYAMA
安全なPHPアプリケーションの作り方2014
安全なPHPアプリケーションの作り方2014
Hiroshi Tokumaru
HTML5のセキュリティ もうちょい詳しく- HTML5セキュリティその3 : JavaScript API
HTML5のセキュリティ もうちょい詳しく- HTML5セキュリティその3 : JavaScript API
Yosuke HASEGAWA
徳丸本に載っていないWebアプリケーションセキュリティ
徳丸本に載っていないWebアプリケーションセキュリティ
Hiroshi Tokumaru
画像解析最前線!WatsonとTensorFlowを比較してみた
画像解析最前線!WatsonとTensorFlowを比較してみた
softlayerjp
文字コードに起因する脆弱性とその対策(増補版)
文字コードに起因する脆弱性とその対策(増補版)
Hiroshi Tokumaru
ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~
ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~
Hiroshi Tokumaru
SoftLayer Bluemix Community Festa 2016 はじめてのSoftLayer
SoftLayer Bluemix Community Festa 2016 はじめてのSoftLayer
Yuichi Tamagawa
いまさら聞けないパスワードの取り扱い方
いまさら聞けないパスワードの取り扱い方
Hiroshi Tokumaru
Railsエンジニアのためのウェブセキュリティ入門
Railsエンジニアのためのウェブセキュリティ入門
Hiroshi Tokumaru
とある診断員と色々厄介な脆弱性達
とある診断員と色々厄介な脆弱性達
zaki4649
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2012
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2012
Hiroshi Tokumaru
とある診断員とSQLインジェクション
とある診断員とSQLインジェクション
zaki4649
PHPカンファレンス2014セキュリティ対談資料
PHPカンファレンス2014セキュリティ対談資料
Yasuo Ohgaki
JavaScript.Next
JavaScript.Next
dynamis
Cndt2021 casareal
Cndt2021 casareal
CASAREAL, Inc.
安全なプラグインに必要なこと: 脆弱性届出状況に見る傾向と対策 (WordCampTokyo 2017)
安全なプラグインに必要なこと: 脆弱性届出状況に見る傾向と対策 (WordCampTokyo 2017)
JPCERT Coordination Center
Webアプリでパスワード保護はどこまでやればいいか
Webアプリでパスワード保護はどこまでやればいいか
Hiroshi Tokumaru
安全なPHPアプリケーションの作り方2013
安全なPHPアプリケーションの作り方2013
Hiroshi Tokumaru
クラウドセキュリティ
クラウドセキュリティ
softlayerjp
クラウドセキュリティ基礎
クラウドセキュリティ基礎
Masahiro NAKAYAMA
CMS四天王への攻撃デモを通じて、WordPressの効果的な防御法を学ぼう
CMS四天王への攻撃デモを通じて、WordPressの効果的な防御法を学ぼう
Hiroshi Tokumaru
なぜ自社で脆弱性診断を行うべきなのか
なぜ自社で脆弱性診断を行うべきなのか
Sen Ueno
機械学習を使ったハッキング手法
機械学習を使ったハッキング手法
Isao Takaesu
今日こそわかる、安全なWebアプリの作り方2010
今日こそわかる、安全なWebアプリの作り方2010
Hiroshi Tokumaru
セキュアコーディング方法論再構築の試み
セキュアコーディング方法論再構築の試み
Hiroshi Tokumaru
[CB16] Electron - Build cross platform desktop XSS, it’s easier than you thin...
[CB16] Electron - Build cross platform desktop XSS, it’s easier than you thin...
CODE BLUE
Signature & Model Hybrid Platform
Signature & Model Hybrid Platform
YOJI WATANABE
Contenu connexe
Tendances
ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~
ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~
Hiroshi Tokumaru
SoftLayer Bluemix Community Festa 2016 はじめてのSoftLayer
SoftLayer Bluemix Community Festa 2016 はじめてのSoftLayer
Yuichi Tamagawa
いまさら聞けないパスワードの取り扱い方
いまさら聞けないパスワードの取り扱い方
Hiroshi Tokumaru
Railsエンジニアのためのウェブセキュリティ入門
Railsエンジニアのためのウェブセキュリティ入門
Hiroshi Tokumaru
とある診断員と色々厄介な脆弱性達
とある診断員と色々厄介な脆弱性達
zaki4649
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2012
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2012
Hiroshi Tokumaru
とある診断員とSQLインジェクション
とある診断員とSQLインジェクション
zaki4649
PHPカンファレンス2014セキュリティ対談資料
PHPカンファレンス2014セキュリティ対談資料
Yasuo Ohgaki
JavaScript.Next
JavaScript.Next
dynamis
Cndt2021 casareal
Cndt2021 casareal
CASAREAL, Inc.
安全なプラグインに必要なこと: 脆弱性届出状況に見る傾向と対策 (WordCampTokyo 2017)
安全なプラグインに必要なこと: 脆弱性届出状況に見る傾向と対策 (WordCampTokyo 2017)
JPCERT Coordination Center
Webアプリでパスワード保護はどこまでやればいいか
Webアプリでパスワード保護はどこまでやればいいか
Hiroshi Tokumaru
安全なPHPアプリケーションの作り方2013
安全なPHPアプリケーションの作り方2013
Hiroshi Tokumaru
クラウドセキュリティ
クラウドセキュリティ
softlayerjp
クラウドセキュリティ基礎
クラウドセキュリティ基礎
Masahiro NAKAYAMA
CMS四天王への攻撃デモを通じて、WordPressの効果的な防御法を学ぼう
CMS四天王への攻撃デモを通じて、WordPressの効果的な防御法を学ぼう
Hiroshi Tokumaru
なぜ自社で脆弱性診断を行うべきなのか
なぜ自社で脆弱性診断を行うべきなのか
Sen Ueno
機械学習を使ったハッキング手法
機械学習を使ったハッキング手法
Isao Takaesu
今日こそわかる、安全なWebアプリの作り方2010
今日こそわかる、安全なWebアプリの作り方2010
Hiroshi Tokumaru
セキュアコーディング方法論再構築の試み
セキュアコーディング方法論再構築の試み
Hiroshi Tokumaru
Tendances
(20)
ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~
ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~
SoftLayer Bluemix Community Festa 2016 はじめてのSoftLayer
SoftLayer Bluemix Community Festa 2016 はじめてのSoftLayer
いまさら聞けないパスワードの取り扱い方
いまさら聞けないパスワードの取り扱い方
Railsエンジニアのためのウェブセキュリティ入門
Railsエンジニアのためのウェブセキュリティ入門
とある診断員と色々厄介な脆弱性達
とある診断員と色々厄介な脆弱性達
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2012
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2012
とある診断員とSQLインジェクション
とある診断員とSQLインジェクション
PHPカンファレンス2014セキュリティ対談資料
PHPカンファレンス2014セキュリティ対談資料
JavaScript.Next
JavaScript.Next
Cndt2021 casareal
Cndt2021 casareal
安全なプラグインに必要なこと: 脆弱性届出状況に見る傾向と対策 (WordCampTokyo 2017)
安全なプラグインに必要なこと: 脆弱性届出状況に見る傾向と対策 (WordCampTokyo 2017)
Webアプリでパスワード保護はどこまでやればいいか
Webアプリでパスワード保護はどこまでやればいいか
安全なPHPアプリケーションの作り方2013
安全なPHPアプリケーションの作り方2013
クラウドセキュリティ
クラウドセキュリティ
クラウドセキュリティ基礎
クラウドセキュリティ基礎
CMS四天王への攻撃デモを通じて、WordPressの効果的な防御法を学ぼう
CMS四天王への攻撃デモを通じて、WordPressの効果的な防御法を学ぼう
なぜ自社で脆弱性診断を行うべきなのか
なぜ自社で脆弱性診断を行うべきなのか
機械学習を使ったハッキング手法
機械学習を使ったハッキング手法
今日こそわかる、安全なWebアプリの作り方2010
今日こそわかる、安全なWebアプリの作り方2010
セキュアコーディング方法論再構築の試み
セキュアコーディング方法論再構築の試み
Similaire à 次世代プラットフォームのセキュリティモデル考察(前編)
[CB16] Electron - Build cross platform desktop XSS, it’s easier than you thin...
[CB16] Electron - Build cross platform desktop XSS, it’s easier than you thin...
CODE BLUE
Signature & Model Hybrid Platform
Signature & Model Hybrid Platform
YOJI WATANABE
20160717 csc sec_bd
20160717 csc sec_bd
寛人 種市
Visual Studio と Microsoft Azure で変わる開発スタイル
Visual Studio と Microsoft Azure で変わる開発スタイル
Akira Inoue
jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発
Akira Inoue
侵入防御の誤検知を減らすためのDeepSecurity運用
侵入防御の誤検知を減らすためのDeepSecurity運用
morisshi
Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメ
Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメ
Yoshito Tabuchi
090916 X D E V今だから理解する[
090916 X D E V今だから理解する[
Masami Suzuki
CloudConductorの特長と最新動向(OSSユーザーのための勉強会#7)
CloudConductorの特長と最新動向(OSSユーザーのための勉強会#7)
cloudconductor
Demo120724
Demo120724
Kazuo Shimokawa
MicrosoftのOSSへの取り組み
MicrosoftのOSSへの取り組み
Shinichiro Arai
Java/Androidセキュアコーディング
Java/Androidセキュアコーディング
Masaki Kubo
インサイドShell:.NETハッキング技術を応用したPowerShell可視性の向上 by 丹田 賢
インサイドShell:.NETハッキング技術を応用したPowerShell可視性の向上 by 丹田 賢
CODE BLUE
2017年のセキュリティ 傾向と対策講座
2017年のセキュリティ 傾向と対策講座
NHN テコラス株式会社
Introduction to extensions and other useful features for developing apps usin...
Introduction to extensions and other useful features for developing apps usin...
Shotaro Suzuki
20181219 Introduction of Incident Response in AWS for Beginers
20181219 Introduction of Incident Response in AWS for Beginers
Typhon 666
.NET の過去、現在、そして未来
.NET の過去、現在、そして未来
Akira Inoue
Hands on ARM template
Hands on ARM template
Akira Koike
Cloud Computing(クラウド・コンピューティング)
Cloud Computing(クラウド・コンピューティング)
ripper0217
Application Architecture for Enterprise Win Store Apps with DDD Pattern
Application Architecture for Enterprise Win Store Apps with DDD Pattern
Atsushi Kambara
Similaire à 次世代プラットフォームのセキュリティモデル考察(前編)
(20)
[CB16] Electron - Build cross platform desktop XSS, it’s easier than you thin...
[CB16] Electron - Build cross platform desktop XSS, it’s easier than you thin...
Signature & Model Hybrid Platform
Signature & Model Hybrid Platform
20160717 csc sec_bd
20160717 csc sec_bd
Visual Studio と Microsoft Azure で変わる開発スタイル
Visual Studio と Microsoft Azure で変わる開発スタイル
jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発
侵入防御の誤検知を減らすためのDeepSecurity運用
侵入防御の誤検知を減らすためのDeepSecurity運用
Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメ
Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメ
090916 X D E V今だから理解する[
090916 X D E V今だから理解する[
CloudConductorの特長と最新動向(OSSユーザーのための勉強会#7)
CloudConductorの特長と最新動向(OSSユーザーのための勉強会#7)
Demo120724
Demo120724
MicrosoftのOSSへの取り組み
MicrosoftのOSSへの取り組み
Java/Androidセキュアコーディング
Java/Androidセキュアコーディング
インサイドShell:.NETハッキング技術を応用したPowerShell可視性の向上 by 丹田 賢
インサイドShell:.NETハッキング技術を応用したPowerShell可視性の向上 by 丹田 賢
2017年のセキュリティ 傾向と対策講座
2017年のセキュリティ 傾向と対策講座
Introduction to extensions and other useful features for developing apps usin...
Introduction to extensions and other useful features for developing apps usin...
20181219 Introduction of Incident Response in AWS for Beginers
20181219 Introduction of Incident Response in AWS for Beginers
.NET の過去、現在、そして未来
.NET の過去、現在、そして未来
Hands on ARM template
Hands on ARM template
Cloud Computing(クラウド・コンピューティング)
Cloud Computing(クラウド・コンピューティング)
Application Architecture for Enterprise Win Store Apps with DDD Pattern
Application Architecture for Enterprise Win Store Apps with DDD Pattern
次世代プラットフォームのセキュリティモデル考察(前編)
1.
SECURITY CAMP 2016 次世代プラットフォームの セキュリティモデル考察 (株)セキュアスカイ・テクノロジー
長谷川陽介 (株)リクルートテクノロジーズ 西村 宗晃 (前編)
2.
SECURITY CAMP 2016 講義紹介 HTML5やJavaScriptを利用したアプリケーション開発 技術、HTTPによる機器間の通信技術はWebという枠を 超え様々な分野で応用されつつあります。この講義では、 ElectronやCordova、Chromeアプリを題材に、これら 新世代のプラットフォームに備わっているセキュリティ上 の保護機構や、プラットフォームの使用により発生が予見 される問題点などについて考察し、アプリケーション開発 者がどういった点に気を付けなければいけないかの指標 を示せるような技術を身につけることを目的とします。
3.
はせがわようすけ @hasegawayosuke (株)セキュアスカイ・テクノロジー 常勤技術顧問 セキュリティキャンプ講師
(2008年~) OWASP Kansaiチャプターリーダー OWASP Japanボードメンバー CODE BLUEカンファレンス レビューボード http//utf-8.jp/ jjencodeとかaaencodeとか Black Hat Japan 2008, 韓国 POC 2008、POC 2010、OWASP AppSec APAC 2014他講演多数
4.
SECURITY CAMP 2016 WebアプリケーションのJSへのシフト ブラウザの高機能化 HTML5による表現力の向上 JavaScriptの実行速度の向上 JavaScriptプログラミング効率の向上 言語仕様の充実化 プログラミング環境の改善 実行コードのブラウザ上へのシフト ネイティブアプリからWebアプリへ 従来サーバ側で行っていた処理がクライアントの JavaScript上へ
5.
SECURITY CAMP 2016 Webを超えてのHTML+JavaScript Webアプリ以外でもHTML+JavaScriptで開発 HTML,CSS,JavaScriptという標準化された規格 マルチプラットフォームへの移植性 Webアプリで培われた資産や開発環境 開発者の「新しいもの好き」の満足感 新旧さまざまなアーキテクチャ Microsoft
HTML Application Firefox OS Apache Cordova / Adobe PhoneGap Electron / NW.js Chrome Apps
6.
SECURITY CAMP 2016 Webを超えてのHTML+JavaScript Microsoft
HTML Application おそらくもっとも古い(1999年)HTMLによるアプリケーション作成の仕組 み Firefox OS ブラウザをOSとしてしまうことで、HTML+JSをアプリケーションとして動作 させる Apache Cordova / Adobe PhoneGap 主にスマートフォン向けアプリをHTML+JSで作成可能にするフレーム ワーク Electron / NW.js node.js+Chromiumでマルチプラットフォームなデスクトップアプリを開 発可能にするフレームワーク Chrome Apps Chromeを意識させずに利用することで動作するデスクトップアプリ環境
7.
SECURITY CAMP 2016 Webを超えてのHTML+JavaScript 本講義では以下の3種類を対象として取り扱いま す Electron Chrome
Apps Apache Cordova
8.
SECURITY CAMP 2016 Electronアプリ
9.
SECURITY CAMP 2016 Electronアプリ node.jsとChromiumを内包 メインプロセス アプリケーション全体を統括。node.jsそのもの。 レンダラプロセス ブラウザ+node.js メインプロセス
レンダラプロセス Electronアプリ IPC
10.
SECURITY CAMP 2016 Electronアプリ メインプロセス内でレンダラプロセスを生成 { "name"
: "Application name", "version" : "0.1", "main" : "main.js" } let win = new BrowserWindow( {width:840,height:700} ); win.loadURL( `file://${__dirname}/index.html` ); <html> <head>...</head> <body>...</body> </html> main.js - メインプロセス index.html - レンダラプロセス package.json
11.
SECURITY CAMP 2016 Electronアプリ レンダラではブラウザ内でnode.jsが動く nodeを無効にすることもできる(デフォルトで有効) <script> function
foo(){ let fs = require( "fs" ); fs.readFile( "./test.txt", { encoding: "utf-8" }, (err, data)=>{ document.getElementById("main").textContent = data; } ); } </script> <div id="main"> </div>
12.
SECURITY CAMP 2016 Electronアプリ
- WebView 他のサイトをレンダラ内に埋め込む iframeと異なりwebview内から外側は完全に 見えない (window.topとか) webviewごとにnode機能の有無を指定可能 <webview src="http://example.jp/"></webview> <webview src="http://example.jp/" nodeintegration></webview> https://github.com/electron/electron/blob/master/docs/api/web-view-tag.md
13.
SECURITY CAMP 2016 Electronアプリのセキュリティ Electronの倒し方
(2016-03-07) http://utf-8.jp/public/2016/0307/electron.pdf Electronのセキュリティその後 (2016-06-29) http://utf-8.jp/public/2016/0629/electron.pdf Electronのセキュリティは難しい? — Mobage Developers Blog (2016-04-28) http://developers.mobage.jp/blog/electron-security
14.
SECURITY CAMP 2016 演習 Electronアプリの調査
15.
SECURITY CAMP 2016 演習
: Electronアプリの調査 Electronアプリを調査し、脆弱性や潜在的な脅 威を調べる Webアプリとして動作しているSNSをパッケージ化し たもの Electronアプリ、SNSアプリ(WebView内)それぞれ を調べる 具体的な脆弱性でなくてもOK 「こういう条件のときに危険かも知れない」というレベ ルでOK
16.
SECURITY CAMP 2016 演習
: Electronアプリの調査 Electronをインストール Electronアプリをダウンロード http://utf-8.jp/camp2016/electron.zip ZIPを展開後、以下のようにするとElectronアプ リが起動する 参考:配布されているElectronアプリの場合 通常はasar形式で 配布される C:¥foo¥bar¥electron>electron . C:¥foo>npm install -g asar C:¥foo>asar e app.asar app C:¥foo>cd app C:¥foo¥app>notepad main.js C:¥foo¥app>electron . C:¥foo¥bar¥>npm -g install electron-prebuilt
17.
SECURITY CAMP 2016 演習
- 答え合わせ Electronアプリの調査
18.
SECURITY CAMP 2016 演習
: Electronアプリの調査 レンダラ(WebView外)でnode機能が有効に なっている Electronアプリ部分にXSSが存在すると、攻撃者は 何でもできる WebViewでnode機能が有効になっている SNS内にXSSが存在していると何でもできる 広告が悪意を持つと何でもできる リンククリックで外部コマンドが起動 node-integrationが無効なときにどこまででき る?
19.
SECURITY CAMP 2016 演習
: Electronアプリの調査 レンダラ(WebView外)でnode機能が有効に なっている Electronアプリ部分にXSSが存在すると、攻撃者は 何でもできる WebViewでnode機能が有効になっている SNS内にXSSが存在していると何でもできる 広告が悪意を持つと何でもできる リンククリックで外部コマンドが起動 node-integrationが無効なときにどこまででき る?
20.
SECURITY CAMP 2016 レンダラでnode機能が有効 メインプロセスでBrowserWindow生成時、明 示的に無効にしなければレンダラ内でnode機 能が有効になる //
main.js win = new BrowserWindow( {width:840,height:700} ); win.loadURL( `file://${__dirname}/index.html` ); // main.js win = new BrowserWindow( {width:840,height:700, webPreferences:{nodeIntegration:false} } ); win.loadURL( `file://${__dirname}/index.html` );
21.
SECURITY CAMP 2016 レンダラでnode機能が有効 レンダラ内にXSSがあれば攻撃者は任意コード 実行が可能になる <html> <script> elm.innerHTML
= fs.readFileSync( file, {encoding:"utf8"} ); </script> .... <webview src="http://example.jp/"> </webview> <html> Content of http://example.jp </html> DOM-based XSS
22.
SECURITY CAMP 2016 レンダラでnode機能が有効 レンダラ内にXSSがあれば攻撃者は任意コード 実行が可能になる 演習用アプリにも実際にXSSがある デモ:
XSSを使って攻撃者が任意コード実行 // index.js wv.addEventListener( "page-title-updated", function( e ){ document.getElementById("info").innerHTML = e.title + " / electron v." + process.versions.electron + " node v." + process.versions.node; document.title = e.title; }, false );
23.
SECURITY CAMP 2016 レンダリングでnode機能が有効 出来る限り{nodeIntegration:false}を指定し てレンダラでのnodeを無効にする レンダラ内でnode機能が使いたい場合は IPC経由でメインプロセスに処理を任せる preload機能を使う
http://utf-8.jp/public/2016/0629/electron.pdf ただし現状(v1.2.5)ではうまく動かない // main.js win = new BrowserWindow( {width:840,height:700, webPreferences : { nodeIntegration : false, preload : './preload.js' } } ); win.loadURL( `file://${__dirname}/index.html` );
24.
SECURITY CAMP 2016 演習
: Electronアプリの調査 レンダラ(WebView外)でnode機能が有効に なっている Electronアプリ部分にXSSが存在すると、攻撃者は 何でもできる WebViewでnode機能が有効になっている SNS内にXSSが存在していると何でもできる 広告が悪意を持つと何でもできる リンククリックで外部コマンドが起動 node-integrationが無効なときにどこまででき る?
25.
SECURITY CAMP 2016 WebViewでnode機能が有効 WebView内でnode機能が有効になっている 明示的に指定しない場合は無効 ※レンダラのnode機能が無効の場合は、レンダラ内 のWebViewのnodeは有効にはできない //
index.html <webview src="..." id="wv" nodeintegration></webview> // index.html <webview src="..." id="wv"></webview>
26.
SECURITY CAMP 2016 WebViewでnode機能が有効 WebView内のWebアプリにXSSがあれば攻撃 者は任意コード実行が可能になる <html> .... <webview
src="http://example.jp/" nodeintegration> </webview> </html> <html> <script> elm.innerHTML = xhr.responseText; </script> </html> DOM-based XSS
27.
SECURITY CAMP 2016 WebViewでnode機能が有効 WebView内のWebアプリにXSSがあれば攻撃 者は任意コード実行が可能になる 演習用のSNSにも実際にXSSがある デモ:XSSを使って攻撃者が任意コード実行
28.
SECURITY CAMP 2016 WebViewでnode機能が有効 WebView内からnode機能が呼び出せる Webアプリ部分にXSSがなくても、広告提供者に悪 意がある
or 広告が汚染されればPC上で任意コー ドの実行が可能
29.
SECURITY CAMP 2016 WebViewでnode機能が有効 XSSがなくても広告が汚染されれば任意コード 実行が可能になる <html> <webview
src="http://example.jp/" nodeintegration> </webview> </html> <html> <iframe src="広告サイト"> </iframe> </html> <html> <script> require("child_process").exec( "calc.exe", null ); </script> </html> 悪意のある広告
30.
SECURITY CAMP 2016 WebViewでnode機能が有効 出来る限りwebviewタグでnode機能を有効に しない webview内でnode機能が使いたい場合は preload機能を使う BrowserWindowのpreloadは動作しないが、 WebViewのpreloadは動作する <webview
src="..." preload="./preload.js"></webview>
31.
SECURITY CAMP 2016 演習
: Electronアプリの調査 レンダラ(WebView外)でnode機能が有効に なっている Electronアプリ部分にXSSが存在すると、攻撃者は 何でもできる WebViewでnode機能が有効になっている SNS内にXSSが存在していると何でもできる 広告が悪意を持つと何でもできる リンククリックで外部コマンドが起動 node-integrationが無効なときにどこまででき る?
32.
SECURITY CAMP 2016 リンククリックで外部コマンドが起動 URLクリック時にOSのブラウザを起動させたい URLとしてfile://C:/windows/notepad.exeな どが与えられるとそれが起動する //
index.js const {shell} = require('electron'); wv.addEventListener( "new-window", function( e ){ shell.openExternal( e.url ); }, false );
33.
SECURITY CAMP 2016 リンククリックで外部コマンドが起動 shell.openExternalにはhttp、httpsのみを与 えるようにする //
index.js const {shell} = require('electron'); wv.addEventListener( "new-window", function( e ){ if( /^https?:¥/¥//.test( e.url ) ){ shell.openExternal( e.url ); } }, false );
34.
SECURITY CAMP 2016 演習
: Electronアプリの調査 レンダラ(WebView外)でnode機能が有効に なっている Electronアプリ部分にXSSが存在すると、攻撃者は 何でもできる WebViewでnode機能が有効になっている SNS内にXSSが存在していると何でもできる 広告が悪意を持つと何でもできる リンククリックで外部コマンドが起動 node-integrationが無効なときにどこまででき る?
35.
SECURITY CAMP 2016 node機能が無効なとき レンダラでnodeが無効なときはどこまで安全? XSSがあればアプリ内の機能は自由に呼び出せる 画面に偽情報の表示は可能
偽ログイン画面など WebViewでnodeが無効なときはどこまで安全? XSSがあればWebアプリとしては通常のXSSと同じ だけの脅威 XSSがなくても広告が悪意を持てば偽情報の表示 は可能 偽ログイン画面など
36.
SECURITY CAMP 2016 Chrome
Apps
37.
SECURITY CAMP 2016 Chrome
Apps Chromeを意識させることなくHTML+JSをアプ リのように実行 https://developer.chrome.com/apps/about_apps 使いたい機能を事前にmanifest.jsonで定義 Content Security Policyがデフォルト有効 インラインのスクリプトやevalなどは使えない https://developer.chrome.com/apps/contentSecurityPolicy XSSが発生しても被害が限定的 { ..., "permission" : [ "clipboardRead", "fileSystem" ], ...}
38.
SECURITY CAMP 2016 Apache
Cordova
39.
SECURITY CAMP 2016 Apache
Cordova …は西村さんにバトンタッチ
40.
SECURITY CAMP 2016 質問? hasegawa@utf-8.jp hasegawa@securesky-tech.com @hasegawayosuke http://utf-8.jp/
Télécharger maintenant