最先端の利用シーンからみるセキュリティリスク

46
Android Security GClue

Upload: akira-sasaki

Post on 28-Jan-2015

674 views

Category:

Technology


7 download

DESCRIPTION

情報セキュリティ大学院大学で開催された「スマートフォンや次世代端末のセキュリティ」での講演資料

TRANSCRIPT

Page 1: 最先端の利用シーンからみるセキュリティリスク

Android SecurityGClue

Page 2: 最先端の利用シーンからみるセキュリティリスク

Apple TV

Page 3: 最先端の利用シーンからみるセキュリティリスク

AirPlayミラーリング

iCloud

MacBook iPhone4S Apple TV

Page 4: 最先端の利用シーンからみるセキュリティリスク

Android最新動向

Page 5: 最先端の利用シーンからみるセキュリティリスク

Android

• 55万台/1日

• 新規登録端末 1億9000万件

• デバイス数 400

Page 6: 最先端の利用シーンからみるセキュリティリスク

Android Market

• App

• 30万件

• Download

• 3000万DL/日

Page 7: 最先端の利用シーンからみるセキュリティリスク

AppStore

iTunes AppStore Android Market

3300万DL/日 3300万DL/日

7600万DL/日

Page 8: 最先端の利用シーンからみるセキュリティリスク

AppStore 2014

1850億ダウンロード/年

5億ダウンロード/日

Page 9: 最先端の利用シーンからみるセキュリティリスク

CPU/GPUの進化

ムーアの法則の2倍以上

Page 10: 最先端の利用シーンからみるセキュリティリスク

Android OS 4.0

顔認証 Hangout

パノラマ写真 カメラエフェクト

Page 11: 最先端の利用シーンからみるセキュリティリスク

Android OS4

Android Beam WiFi Direct P2P

BluetoothHealth

Page 12: 最先端の利用シーンからみるセキュリティリスク

Galaxy Nexus

Page 13: 最先端の利用シーンからみるセキュリティリスク

Android OS

1.0 1.1 1.5 1.6 2.0 2.1 2.2 2.3

3.0 3.1 3.2

4.0

For Tablet

For SmartPhone

2.0 3.1

For TV

Page 14: 最先端の利用シーンからみるセキュリティリスク

独自のStore

Page 15: 最先端の利用シーンからみるセキュリティリスク

独自 Market

Ameba AppMarket CyberAgent@ゲームセンター GMO

Yahoo Market YahooSquare Enix Market Square Enix

au one Market au/kddiAndroApp Vectorバナドロイド Bandai Namco

Page 16: 最先端の利用シーンからみるセキュリティリスク

独自Market(海外)

GetJar175000本のアプリがダウンロード可能

Amazon AppStore Amazonの運営するAppStore

Page 17: 最先端の利用シーンからみるセキュリティリスク

GetJar

300万ダウンロード/日

Java MEBlackBerrySymbianWindows MobileAndroid

175000本のアプリ

Page 18: 最先端の利用シーンからみるセキュリティリスク

Amazon AppStore

Kindle Fire

Android OS 2.3ベース

Page 19: 最先端の利用シーンからみるセキュリティリスク

独自ストアのリスク

Android Market事後審査型

不正アプリはアカウント削除Kill Switch

iTunes Store事前審査型

Page 20: 最先端の利用シーンからみるセキュリティリスク

Androidアプリとは?

Page 21: 最先端の利用シーンからみるセキュリティリスク

Android

Page 22: 最先端の利用シーンからみるセキュリティリスク

Android Security Model

• Androidは特権分離OS

アプリケーションに異なったLinux

UserIDと、GroupIDが割り振られる

Page 23: 最先端の利用シーンからみるセキュリティリスク

UID/GID/data/data

# ls -ldrwxr-x--x app_1 app_1 2011-10-20 17:46 com.android.backupconfirmdrwxr-x--x app_2 app_2 2011-10-20 17:50 com.android.browserdrwxr-x--x app_3 app_3 2011-10-20 17:46 com.android.calculator2drwxr-x--x app_4 app_4 2011-10-20 17:50 com.android.calendardrwxr-x--x app_6 app_6 2011-10-20 17:46 com.android.cameradrwxr-x--x app_7 app_7 2011-10-20 17:46 com.android.certinstallerdrwxr-x--x app_0 app_0 2011-10-20 17:46 com.android.contactsdrwxr-x--x app_9 app_9 2011-10-20 17:46 com.android.customlocale2drwxr-x--x app_10 app_10 2011-10-20 17:46 com.android.defcontainerdrwxr-x--x app_11 app_11 2011-10-20 17:49 com.android.deskclockdrwxr-x--x app_12 app_12 2011-10-20 17:46 com.android.developmentdrwxr-x--x app_14 app_14 2011-10-20 17:50 com.android.emaildrwxr-x--x app_8 app_8 2011-10-20 17:46 com.android.emulator.connectivity.testdrwxr-x--x app_18 app_18 2011-10-20 17:46 com.android.emulator.gps.testdrwxr-x--x app_15 app_15 2011-10-20 17:46 com.android.exchangedrwxr-x--x app_16 app_16 2011-10-20 17:46 com.android.fallback

アプリケーションがインストールされた時点で、それぞれに異なったUID/GIDが割り振られる

Page 24: 最先端の利用シーンからみるセキュリティリスク

公開アプリには署名• 公開アプリ署名を付与

• デバックアプリ./android/debug.keystore を付与

開発者を特定するために使用される

Page 25: 最先端の利用シーンからみるセキュリティリスク

Androidのアプリ• パッケージ名がユニークである必要があるcom.gclue.app1com.yokohama.app1

App A App B

com.gclue.app1 com.yokohama.app1

Page 26: 最先端の利用シーンからみるセキュリティリスク

ADK

Page 27: 最先端の利用シーンからみるセキュリティリスク

Hardware連携

• ADK

• USB Host

Page 28: 最先端の利用シーンからみるセキュリティリスク

Intent連携

Page 29: 最先端の利用シーンからみるセキュリティリスク

Intent連携

App AApp B

起動

データの受け渡し

Page 30: 最先端の利用シーンからみるセキュリティリスク

Androidのメカニズム

Page 31: 最先端の利用シーンからみるセキュリティリスク

Androidのメカニズム

• Permissionユーザへのアクセスや、特定の処理の許可をおこなう

• URI Permission特定データへのアクセスを許可

Page 32: 最先端の利用シーンからみるセキュリティリスク

Permission

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

アプリDownload

480px x 800pxSamsungGalaxy S

[Captivate]

Permissionの許諾

AndroidManifest.xml

IMEIPhone No

Software VersionSim Serial

Subscriber Id

Page 33: 最先端の利用シーンからみるセキュリティリスク

PermissionPermission名 概要

android.permission.GET_ACCOUNTS 登録のGMailを取得

android.permission.READ_CALENDAR カレンダーの呼び込み

android.permission.READ_CONTACTS 連絡先の呼び込み

android.permission.READ_PHONE_STATE 電話情報(IMEI, SubscriberID, SimSerial)

android.permission.READ_PROFILE プロフィール情報の読み込み 

android.permission.RECEIVE_SMSandroid.permission.READ_SMSandroid.permission.WRITE_SMS

SMSの読み込み/書き込み/受信

android.permission.USE_CREDENTIALSAndroidデバイスで認証済みのGoogleサービスのOAuthトークンを取得

Page 34: 最先端の利用シーンからみるセキュリティリスク

Data

• Content Provider(SQLite)

• SharedPreference(KeyValueStore)

• File I/O

Page 35: 最先端の利用シーンからみるセキュリティリスク

Content Provider

• Android搭載のデータベース

• SQLite

android:readPermission android:writePermission android:permission

AndroidManifest.xml

Page 36: 最先端の利用シーンからみるセキュリティリスク

URI Permission

• 特定のデータにアクセスを許可

• <grant-uri-permission>タグ

• 他のアプリから指定されたデータへの読み込みや書き込みが可能になる

<grant-uri-permission android:pathPrefix="/all_downloads/"/>

AndroidManifest.xml

Page 37: 最先端の利用シーンからみるセキュリティリスク

SharedPreferenceFile I/O

Context.MODE_PRIVATEContext.MODE_WORLD_READABLEContext.MODE_WORLD_WRITEABL

AndroidManifest.xml

Page 38: 最先端の利用シーンからみるセキュリティリスク

Cloudからの操作

Page 39: 最先端の利用シーンからみるセキュリティリスク

Account Manager

Page 40: 最先端の利用シーンからみるセキュリティリスク

Account Manager

AccountManagerFuture<Bundle> accountManagerFuture = mgr.getAuthToken(acct, "android", null, this, null, null);

Android Marketへのアクセス等

<uses-permission android:name="android.permission.USE_CREDENTIALS"/>

AndroidManifest.xml

Page 41: 最先端の利用シーンからみるセキュリティリスク

Account Manager

Google App Engineへのアクセス等

AccountManagerFuture<Bundle> accountManagerFuture = mgr.getAuthToken(acct, "ah", null, this, null, null);

<uses-permission android:name="android.permission.USE_CREDENTIALS"/>

AndroidManifest.xml

Page 42: 最先端の利用シーンからみるセキュリティリスク

Cloud連携AcountManager

Service KeyGoogle Analytics Data

APIsanalytics

Google Apps APIs(Domain Information

& Management)

appsGoogle Sites Data API jotspot

Blogger Data API bloggerBook Search Data API print

Calendar Data API clGoogle Code Search

Data API codesearch

Contacts Data API cpContent API for

Shopping structuredcontent

Documents List Data API

writelyFinance Data API financeGmail Atom feed mailHealth Data API healthMaps Data APIs local

Picasa Web Albums Data API

lh2Sidewiki Data API annotateweb

Spreadsheets Data API wiseWebmaster Tools API sitemaps

YouTube Data API youtubeAndroid Market android

No Password

Page 43: 最先端の利用シーンからみるセキュリティリスク

GoogleのApp

Page 44: 最先端の利用シーンからみるセキュリティリスク

Google Data Protocol

パスワードレスでGoogleのクラウドにログイン

Page 45: 最先端の利用シーンからみるセキュリティリスク

Google Apps

Page 46: 最先端の利用シーンからみるセキュリティリスク

Google Apps Device Policy