カメラを秘密裏裏に濫濫⽤用する
Androidアプリの検出
Detection  of  Android  apps  that  secretly  abuse  the  camera†早稲⽥田⼤大学  基幹理理⼯工学部  情報理理⼯工学科

渡邉  卓弥†  Takuya  Watanabe
森  達哉†  Tatsuya  Mori
酒井  哲也†  Tetsuya  Sakai
2014/03/28  ICSS  情報通信システムセキュリティ研究会

1

研究の背景Background

1. 研究の背景
2. 研究の⽬目的
3. アプローチ
4. 先⾏行行研究
5. 実動作の解析
6. 説明⽂文の解析
7. 適⽤用結果
8. まとめ2

研究の背景 　Background
スマートフォンやパソコンのカメラからユーザーの⽣生活が覗かれてしまう！

Attacker

気づかない内にアプリケーションが映像を外部に送ってもユーザーが気づくのは困難

CAMERA

実際の被害事例例
・2010年年  ドイツ   - 被害者  : 学⽣生150⼈人・2013年年  アメリカ   - 被害者  : ミス・ティーン
今後，世界的に拡⼤大するのでは？

Takuya Watanabe | Networked Systems Laboratory3

研究の背景 　Background◆関連研究

PlaceRaider
・NDSS  Symposium  2013
・Robert  Templeman,    Zahid   　Rahman,  David  Crandall,   　Apu  Kapadia

・スマートフォンカメラから取得した静 　⽌止画の断⽚片を再構築し，三次元空間を 　再現することができるマルウェアの 　Proof  of  Concept．
・個⼈人情報，企業機密の漏漏洩や，軍事的 　な利利⽤用まで，スマートフォンカメラ悪 　⽤用がもたらす危険性を⽰示している．

Takuya Watanabe | Networked Systems Laboratory4

研究の背景 　Background◆Androidはなぜ危険か・パーミッション確認が⽢甘い 　  インストール時に⼀一度度だけ確認
・既存アプリのリパッケージングが容易易 　  ⼈人気アプリに悪⽤用ツールを同梱できる・撮影⾳音なしで撮影が可能 　  秘密裏裏の撮影に向いている 　 　Proof of Conceptとして 　 　 　実際にアプリを試作
Takuya Watanabe | Networked Systems Laboratory5

研究の背景 　Background
実際に試作したAndroidアプリ

サーバー上何も動いていないように⾒見見えるが…

撮影した画像を順次アップロード

Takuya Watanabe | Networked Systems Laboratory6研究の⽬目的
Purpose

1. 研究の背景
2. 研究の⽬目的
3. アプローチ
4. 先⾏行行研究
5. 実動作の解析
6. 説明⽂文の解析
7. 適⽤用結果
8. まとめ7

研究の⽬目的 　Purpose•

すべてのアプリ世界にある膨⼤大な数のアプリの中から，カメラを悪⽤用するアプリを検出したい•

カメラ使⽤用アプリ

すべてのコードや動作を⼈人の⼿手や⼈人の⽬目で追うのは⾮非現実的• ⾃自動的なスクリーニングが⽬目的
カメラ悪⽤用アプリ（ごく⼀一部）
Takuya Watanabe | Networked Systems Laboratory8

アプローチApproach

1. 研究の背景
2. 研究の⽬目的
3. アプローチ
4. 先⾏行行研究
5. 実動作の解析
6. 説明⽂文の解析
7. 適⽤用結果
8. まとめ9アプローチ 　Approach◆仮説・疑わしいアプリを抽出するため，以下の仮説にもとづいてアプローチ

アプリには，カメラを利利⽤用するコードが含まれている 　にもかかわらずアプリの説明⽂文にて，カメラを利利⽤用する旨が書かれていない
秘密撮影の可能性が⾼高い
Takuya Watanabe | Networked Systems Laboratory10

アプローチ 　Approach◆  ２つの⼿手法を組み合わせて，Androidアプリを解析する逆アセンブルコード

Takuya Watanabe | Networked Systems Laboratory

ディスクリプション

11

アプローチ 　Approach
CODE

実動作の解析

アプリの逆アセンブルコードから，利利⽤用されている関数を調査

Description
言及あり
言及なし
使用DESC

説明⽂文の解析ディスクリプションがカメラ利利⽤用に⾔言及しているか判別

以上の解析を組み合わせ，カメラについて「⾔言及してないのに使⽤用している」というアプリを抽出する（秘密撮影のおそれあり）
Takuya Watanabe | Networked Systems Laboratory

C あO り

疑D 使E 用なし12

説明⽂文に関する先⾏行行研究
Prior  Research  13

先⾏行行研究 　Prior  Research◆WHYPER

本研究との違い

Rahul  Pandita,  Xusheng  Xiao,  Wei  Yang,William  Enck,  and  Tao  Xie22nd  USENIX  Security  Symposium

・連絡先の読み取りや，マイクの録⾳音， 　スケジュールの読み取りなどを対象

・Why  Permissionsの略略

・「⾔言及していないのに利利⽤用している」 　アプリについては評価をしていない

・⾃自然⾔言語処理理によって，ディスクリプ
 　ションからパーミッションの利利⽤用を⽰示 　唆するセンテンスを抽出．

・パーミッションだけに注⽬目しており， 　コードの中⾝身までは踏み込んでいない

Takuya Watanabe | Networked Systems Laboratory

14

先⾏行行研究 　Prior  Research◆  パーミッションを特定するセンテンスの例例

You can now turn recordings into ringtones.

Permission: RECORD AUDIO
これは，マイクを使⽤用した⾳音声取得のパーミッションである
Takuya Watanabe | Networked Systems Laboratory15実動作の解析
Code  Analysis

1. 研究の背景
2. 研究の⽬目的
3. アプローチ
4. 先⾏行行研究
5. 実動作の解析
6. 説明⽂文の解析
7. 適⽤用結果
8. まとめ16実動作の解析 　Code  Analysis  解析の流流れ逆アセンブルコード  (Smali)•

パーミッションでカメラの利利⽤用を許可しているものを対象

カメラリソースの確保•

Androidアプリの実⾏行行コードをbaksmaliというツールで逆アセンブル

open(I)Landroid/hardware/Camera

Takuya Watanabe | Networked Systems Laboratory•

関数の有無を検索索し，カメラに関するコードが含まれているか判別

17実動作の解析 　Code  Analysis◆検索索対象の関数について 　（PoCアプリ作成によって得られた知⾒見見）・  Androidでカメラデバイスを利利⽤用する 　際は，まずリソースの確保をおこなう
・カメラ撮影には，プレビュー画⾯面を設 　置する必要がある（このプレビュー画⾯面を隠蔽するテクニックがある）

・利利⽤用者に気づかれないための無⾳音撮影 　には，さらにプレビュー映像の取得を 　おこなう必要がある

Takuya Watanabe | Networked Systems Laboratory

open()

setPreviewDisplay()

onPreviewFrame()18実動作の解析 　Code  Analysis◆呼び出される関数によるアプリの分類
・  パーミッションで宣⾔言してるだけで， 　実際にはカメラ使⽤用なし

C1.パーミッションで 　 　 　 　カメラ許可C1C2.カメラリソース 　
確保

C2C3.プレビュー 　 　
表⽰示  C3・  撮影⾳音ありの撮影 　 　setPreviewDisplay
・  ⼿手鏡アプリなど

C4

・  QRコードリーダー 　 　onPreviewFrame・  ビデオ通話

C4.プレビュー取得
C4ʼ’.ヒューリスティック分類

Takuya Watanabe | Networked Systems Laboratory

・  懐中電灯アプリなど 　 　 　 　 　 　open

・  秘密撮影

C4ʼ’・C4のなかでも特に⽤用途不不明なもの（クラス名などで判別）

19実動作の解析 　Code  Analysis◆C4’の抽出に⽤用いたヒューリスティックの例例
・C4には，秘密撮影アプリの他に，極め 　て多数の“QRコードリーダー機能”をも 　つアプリが含まれている・QRコードリーダーには，”zxing”とい 　うライブラリが広く普及している・カメラ機能のうち，パス名に”zxing”を 　含むものは，「カメラの⽤用途が明確」 　と判断し，除外した

Takuya Watanabe | Networked Systems Laboratory

C1
C2・  パーミッションで宣⾔言してるだけで， 　実際にはカメラ使⽤用なし
・  懐中電灯アプリなど

C3・  撮影⾳音ありの撮影
・  ⼿手鏡アプリなど

C4・  QRコードリーダー
・  ビデオ通話・  秘密撮影

C4ʼ’・C4のなかでも特に⽤用途不不明なもの（クラス名などで判別）

20

説明⽂文の解析
Description  Analysis

1. 研究の背景
2. 研究の⽬目的
3. アプローチ
4. 先⾏行行研究
5. 実動作の解析
6. 説明⽂文の解析
7. 適⽤用結果
8. まとめ21

説明⽂文の解析 　Description  Analysis
解析の流流れディスクリプション（説明⽂文）•

中国のマーケットから検体を集めたため，中国語の説明⽂文を対象•

中国⼈人学⽣生４名の協⼒力力のもと，900個のディスクリプションをラベル付け+1.  カメラを使っていると⾔言及されている-‐‑‒  1.  カメラを使っていると⾔言及されていない•

これを教師データとし，ディスクリプションがカメラに⾔言及しているかを⾃自動判別するモデルを作成

Takuya Watanabe | Networked Systems Laboratory22

説明⽂文の解析 　Description  Analysis
ラベル付けのため作ったWEB画⾯面

カメラへの⾔言及ありと判断した⼈人数
検体数

0⼈人

1⼈人

2⼈人

3⼈人

4⼈人

657

293035149

全員の回答が⼀一致したのは  約  90  %Fleiss  のカッパ係数を計算すると，

κ  =  0.83
⾮非常に信頼度度の⾼高い回答結果といえる．
※カッパ係数とは，アンケート等における選択回答の⼀一致率率率を⽰示す指標．Fleiss⽅方式では複数⼈人の回答を評価でき，0.81以上は「ほぼ完全な⼀一致」とされる．

Takuya Watanabe | Networked Systems Laboratory

23ディスクリプションの前処理理
元の⽂文章

マーケットから収集した状態

単語分割KyTeaによる
単語分割

ベクトル化

処理理済データ

tf-idfを成分としたベクトル化

STOPWORD除去
DF Threshold

KyTea…  単語分割ツール

STOPWORD…助詞のように意味を持たない語

tf-‐‑‒idf…単語出現頻度度による重み付け

DF  Threshold…出現過多な単語の除去

Takuya Watanabe | Networked Systems Laboratory24

説明⽂文の解析 　Description  Analysis
カメラへの⾔言及ありと判断した⼈人数
検体数

0⼈人

1⼈人

2⼈人

3⼈人

4⼈人

657

29

30

35149

線形SVMで学習•

SVM（Support  vector  machine）は，教師あり学習を⽤用いた識識別⼿手法•SVMの実装はLIBLINEARを使⽤用 　 　 　チューニングの結果，97%以上にまで精度度が向上 　 　 　

ディスクリプションの処理理済データ
Takuya Watanabe | Networked Systems Laboratory

これを，1万以上の検体の⼆二値分類に⽤用いる．

25

適⽤用結果Results

1. 研究の背景
2. 研究の⽬目的
3. アプローチ
4. 先⾏行行研究
5. 実動作の解析
6. 説明⽂文の解析
7. 適⽤用結果
8. まとめ26

適⽤用結果 　Results•

全検体していく

パーミッション解析なし

カメラパーミッションあり

ディスクリプション解析あり

カメラ⾔言及なし

アセンブリコード解析

C1 C2 C3

左図のフローでアプリをフィルタリング•

最終的に残ったC4ʼ’は，カメラ使⽤用コードを含むのにその理理由がわからないという，極めて疑わしいアプリである

C4

ヒューリスティック解析

C4ʼ’Takuya Watanabe | Networked Systems Laboratory27

適⽤用結果 　Results◆適⽤用検体について
・中国のサードパーティアプリマーケッ 　トを対象・無作為に集めたアプリのうち，不不完全 　なものやディスクリプションが存在し 　ないものを除外

11523
cleanse10885
これを全検体とする

Takuya Watanabe | Networked Systems Laboratory

28

適⽤用結果 　Results
全検体

最も疑わしいC4ʻ‘の43検体について実際にア10,885

プリを動かして調査したところ，カメラパーミッションあり 　・28検体は正当な理理由でカメラを使⽤用

2,922 　・13検体は会員登録が必要で調査不不能

カメラへの⾔言及なし 　・2検体は完全に⽤用途不不明

2,408
c1

c2

c3

c4

1,264

61115968

また，Virus  Totalにかけたところ，c4'

18/43  検体がマルウェアとして検出された．

c1:パーミッション
宣⾔言してるだけのカメラ不不使⽤用アプリ

43

Takuya Watanabe | Networked Systems Laboratory

29適⽤用結果 　Results
抽出の結果，最後に残ったアプリの例例．
画⾯面をタッチするごとに，画⾯面上に銃痕のようなものを刻み込む．
どこでカメラを利利⽤用するのか不不明にも関わらず，カメラを利利⽤用するコードが含まれている．
精査が必要なアプリを抽出することに成功

最終的に残ったアプリの例例

なお，⼿手動で詳細にコードを解析したところ，カメラで秘密裏裏に撮影したり，その画像を外部へと転送するような動作は⾒見見受けられなかった．

Takuya Watanabe | Networked Systems Laboratory

30

まとめ
Summary

1. 研究の背景
2. 研究の⽬目的
3. アプローチ
4. 先⾏行行研究
5. 実動作の解析
6. 説明⽂文の解析
7. 適⽤用結果
8. まとめ31

まとめ 　Summary
CODE

DESC

実動作の解析

カメラを悪⽤用するアプリが含む関数を，コードから特定説明⽂文の解析

ディスクリプションがカメラについて⾔言及しているかを，97%の精度度で⾃自動判別

今後の課題
uコード解析を充実させ，より精密な悪⽤用の検出を⾏行行うuカメラ以外の機能についても，同様の⼿手法を適⽤用する

以上の解析を組み合わせ，1万以上のアプリから特に悪⽤用の可能性をもつ
43のアプリを抽出することができた．
Takuya Watanabe | Networked Systems Laboratory

32

おわり

33

補⾜足資料料34

なぜAndroidなのか◆市場的な理理由◆技術的な理理由

・世界シェア１位のモバイルOS 　「カメラ悪⽤用」と「モバイル」の親和性

・撮影⾳音なしで撮影が可能 　  秘密裏裏の撮影に向いている・ハードウェア側の対策が未熟 　  アクセスランプもついていない端末が多い

・パーミッション確認が⽢甘い 　  インストール時に⼀一度度だけ確認

・サードパーティマーケットが豊富

・既存アプリのリパッケージングが容易易 　  ⼈人気アプリに悪⽤用ツールを同梱できる 　  審査のゆるいアプリ配布体系 　 　悪⽤用アプリ検出⽅方法の確⽴立立が急務

Takuya Watanabe | Networked Systems Laboratory

35

Kappa係数
n:  評価者数
N:  評価対象のdescription数
nij:  i番⽬目の  descriptionを  j∈{Yes,No}  と判定した評価者数

・複数の評価者による判定の客観的な⼀一 　致度度を測るための尺度度・偶然による⼀一致を勘案している分， 　単純な⼀一致率率率よりも強固
・すべて⼀一致した場合はκ=1，すべて 　偶然の場合はκ≦0

上式で定義されるのが，Fleiss  のカッパ係数である．
Takuya Watanabe | Networked Systems Laboratory

・回答者が⼆二者の場合は，cohenの 　Kappa係数が⽤用いられる

36

カメラに関するAndroid  SDKの関数名
Camera.open() 　 　 　リソースを確保する関数
Camera.setPreviewDisplay() 　 　 　画⾯面上にプレビューを表⽰示する関数
onPreviewFrame() 　 　 　プレビューの映像をデータとして取得する関数

Takuya Watanabe | Networked Systems Laboratory37

C4ʼ’選別に⽤用いたヒューリスティック・調査の結果，”zxing”という名前を含む 　クラスが極めて多いことがわかった
・zxingはQRコードの読み取りでよく使 　われるライブラリ・⽤用途不不明なカメラの利利⽤用をフィルタリ 　ングするため，zxingを含むアプリは除 　外した．

Takuya Watanabe | Networked Systems Laboratory

・外部からインポートした機能は，⾃自前 　で実装された機能よりも悪⽤用の可能性 　が低いと断定
・アプリ本体のパッケージ名と，使⽤用し 　ているクラスのパッケージが異異なる場 　合，除外した．

38

最終的なマルウェアの内訳
・Virus  Totalでは， 　18/43がマルウェアとして検出された
AdwareGeneric
TrojanSMS・・・11・・・2・・・3・・・2

Takuya Watanabe | Networked Systems Laboratory39

最後に残ったもう⼀一つのアプリ
・説明⽂文によると，仏教に関するアプリ・カメラのコードが含まれるが，何に 　使っているのか不不明
・⼀一部の機能は，会員登録が必要なため 　確認しきれず

Takuya Watanabe | Networked Systems Laboratory40

SVMによる⽂文書分類の詳細・実装はLIBLINEARという，線形SVM 　に特化したオープンソースソフト 　（台湾⼤大学）
・L1-‐‑‒  拘束付きの  L2-‐‑‒  損失関数を採⽤用・SVMによる分類だけでは⾒見見逃すディス 　クリプションがいくつかあったため， 　⼿手動で以下の語彙をホワイトリスト化 　し，カメラ利利⽤用ありの判定に⽤用いた．

・⽂文書分類のように，次元数が多く疎で 　ある場合には，線形SVMでも⼗十分に精 　度度が⾼高く，⾮非常に⾼高速であるためパラ 　メータの調整がしやすい

Takuya Watanabe | Networked Systems Laboratory41ディスクリプション分類精度度の詳細
・全体の正答率率率は97%
・10回のクロスバリデーションによって 　評価

Takuya Watanabe | Networked Systems Laboratory42