DICOMO 2012

Androidアプリケーション動作時に安全性を高める動的制御に関する検討
A Study on Android Security Improvement
at Application Runtime
情報セキュリティ大学院大学
林 里香，後藤 厚宏
2012/7/61

昨今話題のAndroid♣ アプリが豊富
6/29時点Google Playに公開されているアプリ数: 472762
出展：http://www.appbrain.com/stats/ （2012.6.30アクセス）

便利で楽しい！でも，中には怪しいアプリも・・・♣ 動画を見たくてインストールしたら，電話帳の情報を抜き取られた！
ex.『～ the Movie』 (2012.4)♣ 知らない間に位置情報が送信されてる？！
⇒アプリに組み込まれた広告機能の動作
2

本日のテーマ

気付いて！
これ怪しいアプリかも3

安全性を確保するために♣ その１“権限”が怪しいアプリは，ダウンロードしないようにしましょう．
♣ その２“動作”が怪しいアプリは，アンインストールしましょう．
 現状，ユーザができるのは「その１」．
 「その２」“動作の怪しさ”に気付く材料がない．
4

よく言われるのが♣ インストール時にアプリが要求する“権限”をよく確認して・・・→もちろん，これも大切！
＜現在地表示アプリ＞

怪しいネットワーク
通信
電話／通話

ハード
ウェアの制御

アカウント

現在地

個人情報
5

でも，インストール時だけでは・・・♣ 先ほどのアプリは，インストール時の“権限”が明らかに怪しかった．では，これらはどうか？
＜現在地表示アプリ＞
B_WhereAmI

Y_WhereAmI

ネットワーク
通信
現在地
6

デモ 1
＜現在地表示アプリ＞♣ どちらも起動すると「現在地を表示する」アプリです．

7サンプルアプリの説明♣ どちらも起動すると「現在地を表示する」アプリ＜青アプリ＞
・普通のアプリ① 起動すると位置情報取得開始② ホーム画面に戻ると位置情報取得停止＜黄アプリ＞
・怪しいアプリ① 起動すると位置情報取得開始② 動作中に再度位置情報取得開始③ ホーム画面に戻っても位置情報を受信し続ける（①側は停止．
②側が継続）
8

サンプルアプリの説明＜現在地表示アプリ＞
アプリ起動
青アプリ

ホーム画面に戻る

位置情報受信
位置情報
取得開始

位置情報
取得停止

アプリ起動

ホーム画面に戻る

位置情報
取得開始

位置情報
取得停止
位置情報受信黄アプリ

位置情報受信
位置情報
取得開始

位置情報
受信継続

9

（再掲）安全性を確保するために♣ その１“権限”が怪しいアプリは，ダウンロードしないようにしましょう．
♣ その２“動作”が怪しいアプリは，アンインストールしましょう．
 現状，ユーザができるのは「その１」．
 「その２」“動作の怪しさ”に気付く材料がない．
10

提案“動作の怪しさ”の判断材料を提供するための２つの機能の追加を提案．
＜機能１＞

動作時の通知♣ 注意すべき動作が生じたときに，リアルタイムでユーザに知らせる+α … 動作の許可／拒否を可能に＜機能２＞ 動作履歴の提示♣ 注意すべき動作について，動作履歴を提示する
11

提案“動作の怪しさ”の判断材料を提供するための２つの機能＜機能１＞

動作時の通知♣ 注意すべき動作が生じたときに，リアルタイムでユーザに知らせる+α … 動作の許可／拒否を可能に＜機能２＞ 動作履歴の提示♣ 注意すべき動作について，動作履歴を提示する
12動作時の通知～例えばこのような感じで～① アプリが位置情報の取得を開始するときに，ステータスバーに警告を出す

ステータ
スバー

警告

13

動作時の通知～例えばこのような感じで～② 無視（何もしない）⇒位置情報の取得拒否
通知領域をタップ⇒位置情報の取得許可

ドラッグ
許可なら
タップ
通知領域

14

デモ２：動作時の通知～例えばこのような感じで～♣ 注意すべき動作が生じたときに，リアルタイムでユーザに知らせる+α … 動作の許可／拒否を可能に

拒否なら
無視

許可なら
タップ
通知領域

15

もし，動作時の通知機能があれば♣ インストール時の“権限”が明らかに怪しいと判断できない場合でも，動作時に怪しさに気付くことができる．
→アンインストールへ

16

提案

“動作の怪しさ”の判断材料を提供するための２つの機能＜機能１＞

動作時の通知♣ 注意すべき動作が生じたときに，リアルタイムでユーザに知らせる+α … 動作の許可／拒否を可能に＜機能２＞ 動作履歴の提示♣ 注意すべき動作について，動作履歴を提示する
17

動作履歴の提示～例えばこのような感じで～① 注意すべき動作が起こった時に，提案システム側で動作日時を記録する⇔現状，怪しいかもしれないアプリ自身は，使えるログを出力しない② ①をわかりやすくユーザに提示する

18動作履歴の提示～例えばこのような感じで～＜現在地表示アプリ＞
アプリ起動

ホーム画面に戻る

位置情報
取得開始

位置情報
取得停止
位置情報受信黄アプリ
位置情報受信

位置情報
取得開始

位置情報
受信継続

19

動作履歴の提示～例えばこのような感じで～
位置情報
受信継続

位置情報受信黄アプリ

位置情報受信黄アプリの動作履歴 動作

日時

位置情報取得開始 2012/06/29 09:30
位置情報取得開始 2012/06/29 09:30
位置情報取得停止 2012/06/29 09:33
位置情報取得開始 2012/06/29 20:13
位置情報取得開始 2012/06/29 20:13

位置情報取得停止 2012/06/29 20:15

ん？開始
2回に停
止1回？ 20

動作履歴の提示～例えばこのような感じで～
位置情報
受信継続

位置情報受信黄アプリ
位置情報受信黄アプリの動作履歴 動作

日時

継続時間

位置情報取得2012/06/29 09:30

00:03:24

位置情報取得2012/06/29 09:30

continue

位置情報取得2012/06/29 20:13

00:05:10

位置情報取得2012/06/29 20:13

continueん？
continue？ 21

もし，アプリの動作履歴がわかれば♣ インストール時の“権限”が明らかに怪しいと判断できない場合でも，動作の怪しさに気付くことができる．
→アンインストールへ22安全性を確保するために♣ その１“権限”が怪しいアプリは，ダウンロードしないようにしましょう．
♣ その２“動作”が怪しいアプリは，アンインストールしましょう．
 現状，ユーザができるのは「その１」．
 提案システムでは，「その２」の判断材料をユーザに提供する．
23

安全性を確保するために（提案）提案システムでは“動作の怪しさ”の判断材料を提供するための２つの機能の追加を提案．

＜機能１＞

動作時の通知♣ 注意すべき動作が生じたときに，リアルタイムでユーザに知らせる+α … 動作の許可／拒否を可能に＜機能２＞ 動作履歴の提示♣ 注意すべき動作について，動作履歴を提示する
24

安全性を確保するために（提案）もし，２つの機能が追加されれば，♣ インストール時の“権限”が明らかに怪しいと判断できない場合でも，♣ 動作時に怪しさに気付くことができる．（機能１：動作時の通知）♣ 動作の怪しさに気付くことができる．（機能２：動作履歴の提示）♣ アンインストールへ
25

提案システムの概要
ユーザへの動作の通知
アプリ動作の記録
ユーザへの動作履歴の提示
端末内の情報
や機能

一般
アプリ

フック
⑤

制御
アプリ

①

制御
API

② 制御情報DB③
管理機能

ApplicationFramework④

注意すべき動作を実行するために呼び出されるメソッド

Androidシステム
端末

26

今後の予定♣ Application Framework層に手を加えて，端末内の管理機能（動作履歴の記録，動作時の警告の表示，動作時の許可／拒否）を実装する．
♣ 一般に公開されているアプリケーションの動作履歴を収集する．
♣ ユーザ負担を軽減するための制御ポリシーの内容を検討する．
♣ 管理機能を充実させる（制御ポリシーの反映）．

27

ありがとうございました．

28

29

提案システムの概要
端末

端末内の特定の情報や機能を利用するた
めに呼び出されるメソッド

端末内の情報や機能

一般アプリ

methodamethodb

管理機能
・一般アプリの動作情報のユーザへの提示
・動作の許可／拒否の判断
・呼び出し元のアプリケー
ションの情報と，method呼び出し日時Applicationの記録
Framework

Androidシステム
30

提案システムの概要
外部サポート機能
・ユーザにわかりやすくアプリケーションの動作を提示・管理機能に制御ポリシーの追加・変更を反映⇒安全性の強化とユーザの負担軽減

端末・制御ポリシーの追加
・変更
・動作履歴の解析結果

端末

・インストールされているア
プリケーションの情報
・アプリケーション動作履歴

端末
管理機能
端末内の情報や機能

一般
アプリ

制御
アプリ

②
③

①

フック

制御
API

制御情報
DB

Application
Framework⑤④

Androidシステム

31

生活基盤へのICT技術の導入
近い将来
スマートタウン

生活基盤へのICT技術の導入
Android端末でのやり取りは人 to 人 だけでなく人 to モノ，モノ to モノ へ
スマートホーム

端末端末・鍵を閉める・家電やEV車の充電を操作する
・ペットの様子を見る
・お風呂を沸かす

Android端末の安全性を確保することがより重要になる

32