安心安全なモバイルアプリを公開するために～DevOps and Mobile 2013/8/1～

C5#devsumiC

谷口岳@tao_gaku
17:15分～18:00 (45分)
タオソフトウェア株式会社
代表取締役

日本の会社（Android専業）
 独立系ソフトハウス
 Android発表と共に研究開発を開始
 現在Android専業（受託開発）
 Androidマーケットにアプリを多数公開
 ブログにて開発者向け情報を発信◦ http://www.taosoftware.co.jp/blog/
 雑誌他執筆、講演
 Twitter @tao_gaku© 2013 Taosoftware Co., Ltd. All rights reserved.

2

２０１２年１月１日発刊
 開発者向け アンドロイドのセキュリティに関して開発者が注意すべき点が多くあるが、あまり認知されていなかったので本の執筆を行う。


資料◦
◦

Think IT◦◦

1章、2章、3章を掲載
http://thinkit.co.jp/book/2012/03/05/3
463

Amazon◦

http://www.taosoftware.co.jp/android/android_security/
パワポ資料及びビデオ

http://www.amazon.co.jp/dp/48443313
45/

電子版(DRMフリー)◦

http://www.impressjapan.jp/books/313
42013 Taosoftware Co., Ltd. All right reserved.

3

 2012年06月11日◦ 第１版の作成に深く関わる◦ ドキュメント http://www.jssec.org/dl/android_securecoding.pdf◦ サンプルコード
 http://www.jssec.org/dl/android_securecoding.zip JSSEC◦ 日本のキャリアやハードメーカ等が集まって作成されたセキュリティに関する団体

2013 Taosoftware Co., Ltd. All right reserved.

4




2012年8月 総務省から「スマートフォン プライバシー イニシアティブ」が公開された
これをアンドロイドアプリ用に再編集して独自のプライバシーガイドラインを作成・公開

アンドロイドアプリ開発者がわかりやすいように再編集

2013 Taosoftware Co., Ltd. All right reserved.

5

ＡＰＫファイルをアップロードするだけで脆弱性レポートが作成されます。

講演をする中で、｢気を付ける事が沢山あるのは分かった。
でも全てのプログラマが理解するのは難しい
何かいい方法はないか？｣という声があったので作ってみました。

1. プログラマでなくても使える
2. ソースコード不要
3. ウエブサービス型
4. 脆弱性以外も検出

http://www.taosoftware.co.jp/services/riskfinder/© 2013 Taosoftware Co., Ltd. All rights reserved.

6

© 2013 Taosoftware Co., Ltd. All rights reserved.

7 スマートフォンの利用者情報を盗むようなアプリがある一方、正当な理由により利用者情報を取得するアプリもあります。しかしながらユーザにとっては区別がつかず非常に不安を与えているのが現状です。
このような状況の中、アプリケーションの開発者は、どのようにしたら、「安心安全なアプリケーション」をユーザに届けられるでしょうか。
本公演では、アンドロイドの話が主体となりますが、他のモバイルプラットフォームでも参考になるようにお話をしたいと思っております。

© 2013 Taosoftware Co., Ltd. All rights reserved.

8

1.

安心できるアプリケーションを公開する方法

2.

安全なアプリケーションを作る方法© 2013 Taosoftware Co., Ltd. All rights reserved.

9

© 2013 Taosoftware Co., Ltd. All rights reserved.

10参考資料：スマートフォンプライバシーイニシアティブドキュメント
http://www.soumu.go.jp/menu_news/s-news/01kiban08_02000087.html© 2012 Taosoftware Co., Ltd. All rights reserved.

11

2013/7/26:不正アプリ（応用ソフト）を使い、三千七百万人分のメールアドレスなど個人情報を集めていたＩＴ会社の社長（５０）が、出会い系有料サイトの勧誘メールを大量に送った容疑で県警に逮捕、送検された

東京新聞 http://www.tokyo-np.co.jp/article/chiba/20130726/CK2013072602000146.html
2013 Taosoftware Co., Ltd. All right reserved.

12 電話帳をサーバに送る人◦ 名簿屋さん◦ ソーシャル電話アプリ

危険か区別しずらい。

 広告屋さん◦ 個人に特化した広告を出すことができる◦ 渋谷にいるなら、渋谷近辺の広告を出す◦ 女性には女性向けの広告を出す◦ 年齢別の広告を出す◦ 子供がいる家庭には子供向け広告を出す

現在問題になってます。
現在進行中…

 PCアプリの時はウイルスチェックアプリに任せておけばよかったが、怪しそうなグレーのアプリが多いため、判断が難しい© 2013 Taosoftware Co., Ltd. All rights reserved.

13

© 2013 Taosoftware Co., Ltd. All rights reserved.

14

 ユーザの情報を取得しているが、正しい目的のために取得しているのかわからない ウイルスチェックツールも間違える間違えられないようにするには、どうしたらいいのか？！
2013 Taosoftware Co., Ltd. All right reserved.

15



2012年8月に、総務省から「スマートフォン プライバシーイニシアティブ」（SPI)が発表され、スマートフォンにおける、利用者情報の適切な取り扱い指針が示された。


http://www.soumu.go.jp/menu_news/s-news/01kiban08_02000087.html

スマートフォンの利用者情報等に関する連絡協議会（ＳＰＳＣ）が設立された。

© 2013 Taosoftware Co., Ltd. All rights reserved.

16

「個人情報の取扱いなど、スマートフォンの安心・安全な利用環境の確保のために事業者や業界団体自身による自主ガイドライン作成などを推進する活動を実施し、その取り組み状況をフォローアップする」
1.

情報収集モジュールを組み込んだアプリケーションが、プライバシー問題があると指摘されていると認識した。

2.

現在問題があるが、禁止してしまうと、「市場が大きくなると予想される利用者情報に関するサービス」ができなくなってしまうので指針を示した。

3.

業界関係者できちんとしなさい。

4.

きちんとしないと(~_~メ)© 2012 Taosoftware Co., Ltd. All rights reserved.

スマートフォン プライバシー イニシアチィブ

17 2013年7月3日に、利用者視点を踏まえたICTサービスに係る諸問題に関する研究会提言「スマートフォン安心安全強化戦略」（案）に対する意見募集が開始された。
 ８月２日まで
 その後、募集した意見を踏まえて正式公開

国が出した資料ということは、説得力があるので社内でうまく使える2013 Taosoftware Co., Ltd. All right reserved.

18

 アプリケーションごとにプライバシーポリシーを策定すると共に、一定の情報の取得については、個別の情報の取得について、同意取得を求める。
 １．プライバシーポリシードキュメントの作成
 ２．重要な情報を取得する時にダイアログでユーザに告知
アンドロイドスマートフォンプライバシーガイドライン作りました。無料公開(ApacheLicense2)
http://www.taosoftware.co.jp/android/android_privacy_policy/© 2013 Taosoftware Co., Ltd. All rights reserved.

19

 2012年11月13日◦ 「スマートフォンのアプリケーション・プライバシーポリシーに関するガイドライン」策定公開◦ http://www.mcf.to/temp/sppv/mcf_spappp_guidline.pdf

 MFC◦ 約217社コンテンツプロパイダー中心のモバイルコンテンツ業界団体© 2013 Taosoftware Co., Ltd. All rights reserved.

20

 印刷書籍版 2520円
 電子書籍版 1680円
 インプレスR&D

ISBN：978-4-8443-9536-2
http://www.amazon.co.jp/gp/pro
duct/484439536X/

 寺田 眞治◦ 一般社団法人モバイル・コンテンツ・フォーラム常務理事© 2013 Taosoftware Co., Ltd. All rights reserved.

21

© 2013 Taosoftware Co., Ltd. All rights reserved.

22

アプリケーションがどのような情報にアクセスするかを表しているが以下の項目の記載がない
•利用目的
•外部送信
•第三者提供の有無
個別同意取得は、ポップアップ
ダイアログを出す© 2012 Taosoftware Co., Ltd. All rights reserved.

23 以下の２点から同意取得ダイ

アログを出すかを決める 「利用者情報の性質と種類」◦ 個人情報になりうるもの◦ 個人識別性が高い物◦ 利用者による変更が困難な物（IMEI,Android ID…)
 「利用者情報の利用目的」◦ アプリケーションの主目的以外の情報に関しては同意取得をする。

2013 Taosoftware Co., Ltd. All right reserved.

24 法に反していなければ問題ないは間違い 海外展開にも注意 プライバシー侵害について考える お勧め：「個人情報」という言葉を使うと、法律があーだこーだという話にすぐになるので、「個人情報」という言葉を使わないのが吉 総務省ドキュメントでは「利用者情報」という言葉を使っている。

© 2012 Taosoftware Co., Ltd. All rights reserved.

25

© 2013 Taosoftware Co., Ltd. All rights reserved.

26 利用者情報を取得するしないにかかわらず、全てのアプリケーションで作成するのをおすすめ 総務省ドキュメントで必須とされていないパターンでも作成する理由◦ 利用者情報取得していない、外部通信していない事は、アプリケーションのアピールポイントとなる。
◦ 利用者情報を取得、外部通信機能はあるが、利用者情報を外部に送信していない場合
 安心できるアプリなのにユーザにはわからず、もったいない© 2012 Taosoftware Co., Ltd. All rights reserved.

27 利用規約と一緒にしない 会社のプライバシーポリシーと同じにしない アプリケーション毎にプライバシーポリシーを作成する。

2013 Taosoftware Co., Ltd. All right reserved.

28

項目

説明

１．情報を収集するアプリ提供者等の指名又は名称アプリケーション提供者の名称、連絡先等を記載する。

２．取得される情報の項目取得される利用者情報の項目・内容を列挙する

３．取得方法利用者の入力によるものか、アプリケーションがスマートフォンの内部の情報を自動取得する物なのか等を示す。

４．利用目的の特定・明示

利用者情報を、アプリケーション自体の利用者に対するサービス提供のために用いるか、それ以外の目的のために用いるかを記載する。

５．通知・公表又は「同意取得」の方法、利用者関与の方法

1. 同意取得の対象、タイミング
2. 利用者関与の方法

６．外部送信・第三者提供・情報モ
ジュールの有無

1. 第三者提供する場合の取り扱い
2. 情報収集モジュールを組み込む場合の取り扱い

７．問い合わせ窓口問い合わせ窓口の連絡先等を記載する

８．プライバシーポリシーの変更を行う
場合の手順

プライバシーポリシーの変更を行った場合の通知方法を記載する。

© 2012 Taosoftware Co., Ltd. All rights reserved.

29

© 2013 Taosoftware Co., Ltd. All rights reserved.

30

Google Play Developer Consoleの入力画面

ＵＲＬを入力© 2012 Taosoftware Co., Ltd. All rights reserved.

31

Google Play Web上のプライバシーポリシーリンク（ブラウザで見た場合)© 2012 Taosoftware Co., Ltd. All rights reserved.

32

GooglePlayアプリケーション上のプライバシーポリシー
プライバシーポリシーリンク画面

プライバシーポリシー表示画面© 2012 Taosoftware Co., Ltd. All rights reserved.

33

 プライバシーポリシーを簡潔にまとめた文を、GooglePlayのアプリ説明に追加する。

例：
プライバシーポリシー概要
本アプリケーションは、電話帳に含まれる全てを取得し弊社サーバーに送信します。
これらのデータは本アプリケーション以外の目的には使用しません。
アプリケーションには広告が含まれますが、広告会社には電話帳データは送信されません。
プライバシーポリシーの詳細につきましては、http://www.taosoftware.co.jp/android/packetcapture/#privacy_policyを参照ください。
上記ＵＲＬへは、デベロッパー情報のプライバシーポリシーリンクから移動可能です。

© 2012 Taosoftware Co., Ltd. All rights reserved.

34

弊社サイトで告知します。

アプリユーザは、「弊社サイト」を見る事がないので気が付かないから
例：
プライバシーポリシーの変更を行う場合の手順：「個別同意取得」が必要な、重要なプライバシーポリシーの変更はアプリケーション内でポップアップ表示させ再度「個別同意取得」致します。
「個別同意取得」が必要ないプライバシーポリシーの変更に関しては、弊社サイトで告知を致します。

© 2012 Taosoftware Co., Ltd. All rights reserved.

35

© 2013 Taosoftware Co., Ltd. All rights reserved.

36

広告?

2013 Taosoftware Co., Ltd. All right reserved.

37

ＡＰＫファイルをアップロードするだけでレポートが作成されます。
１
１ 解析結果はダウンロードできます2

2

アイコンでエラー数、警告数を表示します

3

•

•

アプリケーションファイルのみでレポートを出力します。（ソースコードは必要ありません）

3

リスクレベル付きの解析結果を一覧表示します。

リスクレベルERROR静的解析のみ行います。動的解析（アプWORNING
リケーションを実行しての解析）は行いまCONFIRM
せん
INFO
http://www.taosoftware.co.jp/services/riskfinder/
2013 Taosoftware Co., Ltd. All right reserved.

広告！
説明以上レベル
警告レベル
確認レベル
情報レベル

38



IPAに届け出られるAndroidアプリの脆弱性関連情報も増加傾向にある。届け出られた脆弱性は、アクセス制限の不備に関するものが7割以上であった。さらに分析した結果、これらはAndroidの仕組みを理解し、適切にアクセス制限の設定をしていれば防ぐことのできる脆弱性であることがわかった。
(2012/6)『Androidアプリの脆弱性』に関するレポート
http://www.ipa.go.jp/about/technicalwatch/20120613.html© 2013 Taosoftware Co., Ltd. All rights reserved.

39

 １．コンポーネントの脆弱性
 ２．ファイルの脆弱性
 ３．広告モジュール

見つかりやすい脆弱性
かつ知って入れば簡単回避できるもの

2013 Taosoftware Co., Ltd. All right reserved.

40

© 2013 Taosoftware Co., Ltd. All rights reserved.

41

 コンポーネントが複数集まってアプリケーションとなる ４つのコンポーネント◦ Activity （画面表示やユーザ入力を受け持つ）◦ Service （見えない場所動いて何かをする。例：データ収集）◦ Receiver （見えない場所で、外部からメッセージを受け取る。）◦ Content Provider (外部からデータ(DB等)をアクセス可能にする）
 コンポーネントは外部アプリから呼び出し可能なので適切なアクセス制限をかけないと脆弱性を生む。
 基本デフォルトで外部からアクセス不可となっている。
© 2013 Taosoftware Co., Ltd. All rights reserved.

42



事件の概要



原因



詳しくは

◦ 他のアプリケーションからデータベースに変更を加え、Dropboxの公開用フォルダである「Public」フォルダにDropboxのアカウント情報が含まれている設定ファイルをアップロードさせたりすることが可能。
◦ ContentProviderは外部にデータを公開する仕組みなので、みんなに「公開する」がデフォルト値◦ android:exported=“false”を指定する必要があった。
◦ ContentProviderのアクセス範囲 – Dropboxにおける脆弱性の修
正 http://codezine.jp/article/detail/6286© 2013 Taosoftware Co., Ltd. All rights reserved.

43

 コンポーネントのアクセス制限方法
 android:exported＝false◦ falseを設定した場合、他のアプリケーションから使用不可能になる◦ 自分自身かsharedUserId指定によって、同じユーザIDを持っているアプリケーションのみアクセス可能となる

 IntentFilterに注意◦ IntentFilterは外部公開する仕組み◦ IntentFilterが設定されている場合で、指定しない場合はtrue◦ IntentFilterが設定されていない場合で、指定しない場合はfalse© 2013 Taosoftware Co., Ltd. All rights reserved.

44

© 2013 Taosoftware Co., Ltd. All rights reserved.

45他のアプリからファイルが読める→重要なデータを読み取られる
他のアプリからファイルが書き込める→ハングアップ、アプリデータの改変注意する事 ファイルの作成方法◦ MODE_WORLD_READABLE◦ MODE_WORLD_WRITEABLE ファイルの作成場所◦ アプリケーションデータディレクトリ
◦ 外部記憶装置（ＳＤカード）© 2013 Taosoftware Co., Ltd. All rights reserved.

46

•IMEIをユーザ識別に使っていた•テスト時にユーザ切り替えしやすいようにＳＤカードに書いていた•http://www.nec.co.jp/security-info/secinfo/nv12-008.html© 2013 Taosoftware Co., Ltd. All rights reserved.

47

外部記憶装置のファイルは全てのアプリケーションがアクセス可能 どのアプリケーションがファイル出力を行ってもオーナとグループは同じ値となる アプリケーション毎にファイルやディレクトリのアクセス制御を行うことはできない
 外部記憶装置のファイルやディレクトリは全てのアプリケーションがアクセス可能であることを意味する© 2013 Taosoftware Co., Ltd. All rights reserved.

48

© 2013 Taosoftware Co., Ltd. All rights reserved.

49マルウェアと認定される広告モジュールが入っていたら、そのアプリはマルウェアです。
 広告モジュールが電話帳を参照して勝手にサーバに送っていないか？
 電話帳を送るのは流石に少ないが、以下の物は良く送られている。
◦ 電話番号◦ IMEI◦ ANDROID_ID◦ アプリ一覧
 海外モジュールに特に注意© 2013 Taosoftware Co., Ltd. All rights reserved.

50

© 2013 Taosoftware Co., Ltd. All rights reserved.

51

 安心できるプリケーションを公開する方法◦ スマートフォンプライバシーイニシアティブ◦ 同意取得ダイアログ◦ プライバシーポリシの作成
 安全なアプリケーションを作る方法◦ コンポーネントの脆弱性◦ ファイルの脆弱性◦ 広告モジュールに注意© 2013 Taosoftware Co., Ltd. All rights reserved.

52

ありがとうございました。
安心安全なモバイルアプリを公開するために

谷口岳@tao_gaku
17:15分～18:00 (45分)
タオソフトウェア株式会社
代表取締役© 2013 Taosoftware Co., Ltd. All rights reserved.

53