potatotips 42 で話した際の資料です
動画1: https://youtu.be/UHE31IQUHHc
動画2: https://youtu.be/b9qb5PqJotc
Androidのセキュリティ良くなってきた話@nein37(エヌ・イー・アイ・エヌ・サン・ナナ)
View Slide
自己紹介@nein37(エヌ・イー・アイ・エヌ・サン・ナナ)● クックパッド Androidアプリエンジニア● カニが好き
Androidアプリ セキュリティモデルの歴史● 6.0○ Runtime Permission○ UIオーバーレイにユーザーの許可が必要● 7.0○ 一部の画面でUIオーバーレイを禁止● 8.0○ UIオーバーレイの仕様を大幅変更
戦いの歴史● 5.x○ : インストール時に権限許可が必要だよ○ : どうせ誰も権限見てないしやりたい放題● 6.0○ : 権限は個別にユーザー許可が必要!○ : 権限許可画面の上に別の文言を表示して許可させるぞ!● 7.0○ : 権限取得ダイアログではオーバーレイ禁止!○ : ウッ
戦いの歴史ユーザー補助サービスを使うしかねえ
ユーザー補助サービスとは● 表示中の画面の情報を取得できる○ 最前面のアプリ/Activity取得○ 画面の更新タイミング検知○ 画面内に描画されているView情報(idつき)● 表示中の画面に対してアクションできる○ クリック○ チェック変更○ 文字入力● ユーザーの許可が必要(初回のみ)
つまりどういうこと?本来ユーザー操作が必要な処理をアプリが勝手に行うことができます
デモ
● 大人気アプリのサポートツール○ と謳っているだけの悪いアプリ● 他のアプリにオーバーレイで結果を表示する○ と謳っているがユーザー補助サービスを許可してもらいやすくするだけの説明
https://youtu.be/UHE31IQUHHc
いま何が起きたの?
https://youtu.be/b9qb5PqJotc
やったこと1. ユーザー補助権限を許可してもらう---ここまでユーザー操作---2. UIオーバーレイの許可画面に遷移し、許可させる3. UIオーバーレイで画面の表示内容を隠す4. アプリの権限設定画面に遷移し、すべて許可させる5. アプリに戻ってくる6. UIオーバーレイを非表示にする
ちょっとだけソースコード地道にViewを探してアクションを繰り返していく
まとめ● Android のセキュリティは良くなってきたけどまだ十分ではない● ユーザー補助サービスは非常に危険なので軽い気持ちで許可しないようにしましょう