Androidセキュリティ勉強会 〜WebViewの脆弱性編〜 参加メモ
スライド
Ust
2012/10/06(#securedroid)Androidセキュリティ勉強会 - Togetter
今日覚えてほしいキーワード
- WebViewキャッシュ
- addJavascriptInterface
- fileスキーマ
WebViewキャッシュ
- ブラウザでブラウズするときにフォームのデータなどを保存するデータベース
- Androidでの問題点
fileスキーマ
- WebViewにURLを指定するときにfile://が利用できる
- 端末ローカルのファイルが見れる
- ファイルのパーミッション的に読めるものは基本いける
- キャッシュの問題点
Android標準ブラウザの問題
- ファイルのダウンロードの自動開始問題
- ダウンロードされるファイルの場所が大体決まっている
- /sdcard/Download/の下
- ファイル名はそのまま
- ダウンロードの終わるタイミングを推測して、ダウンロード済みのファイルに自動遷移させることが可能
- ダウンロード済みのファイルでもJavaScriptが有効
- その際ユーザへの確認はなし
- 読み取ったファイルはPOSTなり、GETなりでサーバーにアップロード可能
- Androidのこういった使用の積み重ねでワンクリックでWebViewキャッシュをアップロードするまでのコンボ攻撃が完成してしまう
- 対策
- fileスキームは本当に必要?いらないなら使えないように
- fileスキームを使う場合は必ずパスをチェックしよう
- JavaScriptも必要ないなら有効にしないこと
- WebViewキャッシュは…
- こまめに削除するとか...
addJavascriptInterfaceの話
- リフレクションが使えてしまう問題
- リフレクションが使えるということは、クラスのstaticなメンバーは誰からでも参照できる
- Context取得可能
- Intent発行
- アプリ一覧取得
- java.lang.Runtimeが使える。
- execメソッド:任意のプログラムをWebViewを実装したアプリのユーザー権限で実行できる
- loadメソッド:任意のJNIライブラリをWebviewを実装したアプリのユーザー権限で実行できる。アプリそのものに寄生・改造することも可能
- 対策
- addJavascriptInterfaceは使わないでください