47
脆弱性があるアンドロイドアプリの作り方 ABC2013 Spring 2013315() 13:0013:40(40) E会場 28号館104教室 タオソフトウェア株式会社 谷口岳 Twitter:@tao_gaku 1 © 2013 Taosoftware Co., Ltd. All rights reserved. 本資料は下記URLの最後の方からダウンロード可能です。 http://www.taosoftware.co.jp/android/android_security/

脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

脆弱性があるアンドロイドアプリの作り方

ABC2013 Spring

2013年3月15日(金) 13:00~13:40(40分)

E会場 28号館104教室

タオソフトウェア株式会社 谷口岳

Twitter:@tao_gaku

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

本資料は下記URLの最後の方からダウンロード可能です。

http://www.taosoftware.co.jp/android/android_security/

Page 2: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

タオソフトウェア株式会社

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

Page 5: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

アンドロイド スマートフォン プライバシーガイドライン by タオソフトウェア

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

Page 6: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

脆弱性があるアンドロイドアプリの作り方

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

Page 7: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

セキュリティを考える視点

視点(立場) セキュリティリスク 原因

個人ユーザ 個人情報漏洩 行動監視される 金銭的被害 端末紛失

マルウェアインストール フィッシングサイトアクセス 置き忘れ、盗難

企業ユーザ トレードシークレット漏洩 顧客情報漏洩 業務システムへの不正アクセス (加えて各社員個人のリスクも)

マルウェアインストール フィッシングサイトアクセス 業務アプリに脆弱性 置き忘れ、盗難

アプリ開発者 データ漏洩 機能乗っ取られ 不正コピー・海賊版 著作権侵害

脆弱性(バグ) 対処不足 不要な通信 広告モジュール

サービスプロバイダ 不正アクセス 個人情報収集の疑いを受ける

脆弱性(バグ) 意識欠如(説明不足) メリット優先

ハードメーカ ルート取得 OSに脆弱性 プリインアプリに脆弱性

脆弱性(バグ) 脆弱性(バグ) 意識欠如(市場優先)

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

Page 8: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

Androidコンポーネント図

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

アプリの セキュリティ

端末の セキュリティ

Page 9: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

Androidアプリ脆弱性の内訳

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

『Androidアプリの脆弱性』に関するレポート http://www.ipa.go.jp/about/technicalwatch/20120613.html

Page 10: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

ファイルのアクセス制御

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

Page 11: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

Androidのファイル

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

他のアプリからファイルが読める→重要なデータを読み取られる

他のアプリからファイルが書き込める→ハングアップ、アプリデータの改変

注意する事

Page 12: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

やっちゃった例

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

Page 13: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

ファイルの作成方法

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

モード 説明

MODE_PRIVATE 作成したアプリのみ読み書き可能

MODE_WORLD_READABLE 他のアプリから読み込み可能(OS4.2で廃止)

MODE_WORLD_WRITEABLE 他のアプリから書き込み可能(OS4.2で廃止)

ファイルの作成は、MODE_PRIVATEを使う(デフォルトの動作)

Page 14: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

NECアプリの脆弱性事例 (SDカードに重要なデータを保存)

14

•IMEIをユーザ識別に使っていた •テスト時にユーザ切り替えしやすいようにSDカードに書いていた •http://www.nec.co.jp/security-info/secinfo/nv12-008.html

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

Page 15: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

アプリケーションデータディレクトリ

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

他のアプリからのアクセスは通常できない

Page 16: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

外部記憶装置(SD)

•–

•–

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

外部記憶装置のファイルは全てのアプリケーションがアクセス可能

Page 17: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

コンポーネントのアクセス制御

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

Page 18: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

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

コンポーネント

18

Page 19: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

やっちゃった例

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

Page 20: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

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

AndroidManifest.xml セキュリティ設定

20

Page 21: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

コンテントプロパイダのEXPORTEDに注意

•–

OSバージョン Exportedにfalseを設定した時に外部からの

アクセスが可能かどうか

1.6(API Level 4) 可能

2.1(API Level 7) 可能

2.2(API Level 8) 可能

2.3.1(API Level 9) 不可

2.3.3(API Level 10) 不可

3.0(API Level 11) 不可

3.1(API Level 12) 不可

4.0(API Level 14) 不可

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

Page 22: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

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

22

GREEアプリの脆弱性(機能の乗っ取り)

ユーザが、不正な他の Android アプリ

ケーションを使用した場合、当該製品のデータ領域にある情報が漏えいする可能性があります。

出典:JVN 脆弱性対策情報データベースより

Page 23: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

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

アプリケーション機能の悪用

23

Page 24: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

ユーザデータ以外の守る物

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

Page 25: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

ユーザデータ以外に守る物

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

Page 26: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

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

1.アプリ内の著作権データを守る

タイトル:ブラックジャックによろしく 著作者名:佐藤秀峰 サイト名: Manga on Web URL: http://mangaonweb.com

Page 27: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

1-1 PCと接続してAPKファイル吸出し

•–

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

Page 28: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

デモ

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

Page 29: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

1-2 Android上でアプリによるリソースの吸出し

•–

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

Page 30: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

tPackageExplorer

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

アプリ一覧 AndroidManifest.xml アプリ内画像の表示

Page 31: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

デモ

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

Page 32: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

2.アプリケーションロジック

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

Page 33: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

デモ

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

Page 34: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

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

まとめ

Page 35: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

マルウェアに間違えられる?

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

Page 36: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

間違えられました!?

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

Page 38: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

使用している広告モジュールがマルウェア!?

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

マルウェアと認定される広告モジュールが入っていたら、そのアプリはマルウェアです。

Page 39: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

携帯電話は個人情報の宝庫

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

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

区別しずらい。

Page 40: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

インストール時の「Permission確認画面」

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

Permission画面

参考:不正アプリ供用事件の不起訴は何の立証が困難だったか http://takagi-hiromitsu.jp/diary/20130129.html

Page 42: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

何をやれば良いか

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

アンドロイドスマートフォンプライバシーガイドライン作りました。無料公開(ApacheLicense2)

http://www.taosoftware.co.jp/android/android_privacy_policy/

Page 43: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

まとめ

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

Page 44: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

まとめ

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

気を付ける所はまだまだありますが、細かい点までお話しすると2日ぐらいかかります。

Page 45: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

Tao RiskFinder (脆弱性発見ツール)

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

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

講演をする中で、 「気を付ける事が沢山あるのは分かった。

でも全てのプログラマが理解するのは難しい

何かいい方法はないか?」 という声があったので作ってみました。

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

Page 46: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

バザーやってます。

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

Page 47: 脆弱性があるアンドロイドアプリの作り方 › android › android_security › download › ...2013/03/15  · コンテントプロパイダのEXPORTEDに注意 •

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

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

ABC2013 Spring

2013年3月15日(金) 13:00~13:40(40分)

E会場 28号館104教室

タオソフトウェア株式会社 谷口岳

Twitter:@tao_gaku