welcome to the black hole of bug bounty program rebooted
DESCRIPTION
Shibuya.XSS テクニカルトーク#5の発表資料です。TRANSCRIPT
Welcome to the Black Hole of
Bug Bounty Program
Shibuya.XSS #5 August 7th, 2014
R E B O O T E D
西村 宗晃 a.k.a. nishimunea
html5j Webプラットフォーム部 部員 HTML5 Experts.jp コントリビューター セキュリティキャンプ全国大会 2014 講師 FxOS コードリーディング 部員
5月の話の続きです
https://atnd.org/events/51627 https://codeiq.jp/magazine/2014/07/12138/
Mozilla Security Bug Bounty Program
(Mozilla セキュリティバグ報奨金制度)
https://www.mozilla.org/security/bug-bounty.html
• 重大なセキュリティバグを発見した人にMozillaが報奨金を支払う制度
• バグ1件につき3000ドル(約30万円)
国内の報奨金獲得者 (2010年以降)
2012-2014年 Masato Kinugawaさん
2010年 はせがわようすけさん
でもどこを狙えば
おれも報奨金ほしい
1千万行を超えるFirefoxのコードからバグを探すのは 砂漠の中からダイアモンドを見つけ出すようなもの
過去にバグの見つかったところを狙う • 修正が不十分で、まだバグが残っているかも • 担当者のセキュリティの知識が浅く、類似のバグがあるかも
バグの見つかったところと言えば
Web Workers
MFSA 2014-09 Masato Kinugawaさん
MFSA 2010-42 はせがわようすけさん
はせがわさんもKinugawaさんも Web WorkersのSOP制限回避で報奨金を獲得
戦略① Web Workersを狙う
そして本当に見つかる
しかし既知のバグだとの返信
This is a dupe of 9497XX.
既知のバグを見つけた場合 Mozillaは同件と思われるBugzillaに対して
アクセス権を付与してくれる
き… Kinugawaさん…(;´Д⊂)
• Firefoxのバグ探しは競争率が高く、 既に探し出されている場合もある
• ニッチケースまで安全に実装されており そもそもバグを見つけることが難しい
諦めかけていたその時、こんな情報を発見
(割と古典的な脆弱性)
ファイル名に「../」や「..%2f」を含めると 親ディレクトリを辿って任意のファイルにアクセスできる
Firefox OSは未開の地? フロンティア
戦略② Firefox OS固有の機能を狙う
Browser API (いわゆるWebView)
アプリの画面
ブラウザウィンドウ
<iframe mozbrowser>
実際にあったバグ①
Content-Security-Policy ヘッダが 完全に無視される
返信:CSPの実装が古いだけ。 X-Content-Security-Policy なら使えるよ
実際にあったバグ②
X-Frame-Optionsヘッダも無視される (CSSで透過指定可能なのでクリックジャッキングに利用できる)
返信:フレームじゃなくてブラウザAPIだから。 そういう仕様だよ
• 未開の地ならではの苦労
• 実装されてない機能も普通にある
• バグと仕様の境界も手探り (脆弱性はあるけど、悪用するアプリはレビューツールで 検知できるから問題無しということも)
脆弱性がキマらない
最終戦略 弱そうな機能を網羅的に狙う
https://www.mozilla.org/security/announce/
• 過去の脆弱性から弱そうな機能を抽出
• 機能の組み合わせに対して、起きたら困ることを想像し、それを検証
CSP WebSocket appcache
CSP WebSocket appcache
appcacheしたHTMLからWebSocketを送信すると CSPの違反レポートが機能しない
• 機能が増えれば攻撃方法も増える
• 組み合わせを試すには時間がかかる
夏といえばセキュリティキャンプ
今年はWeb組の講師を担当することに
Webクラスの時間割
2日目
3日目
4日目
上野 国分 はせがわ Kinu gawa
※主担当者の名前(敬称略)です。主担当以外の講師も講義をサポートします
鬼か…!!
2日目
3日目
4日目
上野 国分 はせがわ Kinu gawa
※主担当者の名前(敬称略)です。主担当以外の講師も講義をサポートします
西村(4時間)
西村(4時間)
西村(3時間)
西村(3時間)
14時間分の資料作りが終わらない
14時間分の資料作りが終わらない
キャンプが終わるまで停戦を決意
しかし先月こんな脆弱性が MFSA 2014-66
Redirect iframe sandbox
それ、今度やろうと思ってたやつだ (;´Д⊂)
キーーッ!!、悔しい!!
Lesson Learned
Bug Bounty Programは中毒性が高い
• 一日中バグのことを考えるようになる
• 新しい機能を知ると無性に攻撃したくなる
しかし得られるものも多い
• 攻撃者の視点で物事を考える力が付く
• 安全な実装方法を意識する習慣が身に付く
Let’s Bug Hunt!
宣伝:本を書きました
タイトル Firefox OSウェブアプリ開発読本
ページ数 128ページ
価格 1,000円(イベント頒布価格)
表紙 siosio
目次
第1章 WebIDEを使いこなす 第2章 Building Blocksを使ってアプリ画面を組み立てる 第3章 ハードウェアアクセスAPIリファレンス 第4章 カメラアプリを作ってみよう 第5章 Firefox OSでNFCを使ってみる 第6章 WebAudio APIを使ってサンプラーを作ろう 第7章 Firefox OSアプリのセキュリティ
URL http://techbooster.github.io/announce/c86/
C86 3日目西か46b TechBoosterにて発売