Slide 1

Slide 1 text

Androidのセキュリティ良くなってきた話 @nein37(エヌ・イー・アイ・エヌ・サン・ナナ)

Slide 2

Slide 2 text

自己紹介 @nein37(エヌ・イー・アイ・エヌ・サン・ナナ) ● クックパッド Androidアプリエンジニア ● カニが好き

Slide 3

Slide 3 text

Androidアプリ セキュリティモデルの歴史 ● 6.0 ○ Runtime Permission ○ UIオーバーレイにユーザーの許可が必要 ● 7.0 ○ 一部の画面でUIオーバーレイを禁止 ● 8.0 ○ UIオーバーレイの仕様を大幅変更

Slide 4

Slide 4 text

戦いの歴史 ● 5.x ○     : インストール時に権限許可が必要だよ ○     : どうせ誰も権限見てないしやりたい放題 ● 6.0 ○     : 権限は個別にユーザー許可が必要! ○     : 権限許可画面の上に別の文言を表示して許可させるぞ! ● 7.0 ○     : 権限取得ダイアログではオーバーレイ禁止! ○     : ウッ

Slide 5

Slide 5 text

戦いの歴史 ユーザー補助サービスを使うしかねえ

Slide 6

Slide 6 text

ユーザー補助サービスとは ● 表示中の画面の情報を取得できる ○ 最前面のアプリ/Activity取得 ○ 画面の更新タイミング検知 ○ 画面内に描画されているView情報(idつき) ● 表示中の画面に対してアクションできる ○ クリック ○ チェック変更 ○ 文字入力 ● ユーザーの許可が必要(初回のみ)

Slide 7

Slide 7 text

つまりどういうこと? 本来ユーザー操作が必要な処理を アプリが勝手に行うことができます

Slide 8

Slide 8 text

デモ

Slide 9

Slide 9 text

● 大人気アプリのサポートツール ○ と謳っているだけの悪いアプリ ● 他のアプリにオーバーレイで結果を 表示する ○ と謳っているがユーザー補助サービスを許可 してもらいやすくするだけの説明

Slide 10

Slide 10 text

https://youtu.be/UHE31IQUHHc

Slide 11

Slide 11 text

いま何が起きたの?

Slide 12

Slide 12 text

https://youtu.be/b9qb5PqJotc

Slide 13

Slide 13 text

やったこと 1. ユーザー補助権限を許可してもらう ---ここまでユーザー操作--- 2. UIオーバーレイの許可画面に遷移し、許可させる 3. UIオーバーレイで画面の表示内容を隠す 4. アプリの権限設定画面に遷移し、すべて許可させる 5. アプリに戻ってくる 6. UIオーバーレイを非表示にする

Slide 14

Slide 14 text

ちょっとだけソースコード 地道にViewを探してアクションを繰り返していく

Slide 15

Slide 15 text

まとめ ● Android のセキュリティは良くなってきたけどまだ十分では ない ● ユーザー補助サービスは非常に危険なので軽い気持ちで 許可しないようにしましょう