Developer's Summit 2016 【18-E-2】Android6.0 対応! モバイルアプリセキュリティの最新トレンド 聴講メモ
講演資料
http://www.slideshare.net/devsumi/18e2android60
概要
Androidアプリの脆弱性の現状を示した後、最近改版されたJSSECのセキュアコーディングガイドに基づき、6.0で特に留意すべきセキュリティ対策について説明する。
スピーカー
ソニー(SDNA)の奥山さん。
詳細
所属している会社
- ソニーデジタルネットワークアプリケーションズ株式会社(SDNA)。
最新Androidの事情
- 突然だが、Androidアプリは安全だと思うか? と会場に質問。
- 大半の人間が挙手しない。参加者は安全だと思っていない。
- 認識のとおりである。
- 2015年、Google Play上のAndroidアプリについて、脆弱性の実態調査を行った。
- カテゴリダウンロード上位500、かつ1000ダウンロード以上。11,686件。
- 結果、93%に脆弱性リスク。
- ちなみに2013年の調査結果は96%。微減。
アクセス制御リスク
脆弱性の中で、アクセス制御リスクは88%から59%に減少。
- 対策方法が簡単で効果があったとみられる。
アクセス制御リスクの実例。
- 勝手にツイートされるTwitterクライアント(非公式)
- 悪いアプリからの要求を受けて、ノーチェックで勝手にツイートしてしまう。
- これはアクセス制御の問題。
- 画像アップロード用Activityが外部から呼べる状態だった。
- 勝手にツイートされるTwitterクライアント(非公式)
HTTPS通信
HTTPS通信の利用は72%から88%に増加。
暗号
- 強度が弱い暗号技術(MD5,DES)が利用されている割合が62%と高い。
Mode World
- ファイル保存時の生成モード。
- MODE_WORLD_READABLE/MODE_WORLD_WRITABLEを使っているアプリが22%ある1。
ダウンロード数と脆弱性の関係
- ダウンロード数5000万ぐらいが脆弱性発見数のピーク。
- そこからダウンロード数が増えると脆弱性が減少傾向になる。
- ダウンロード数が多くなるとお金が取れるようになるので、対策をしっかりしてきているのかもしれない。
- ちなみに2013年にはなかった傾向。
セキュアな開発をするには
- JSSEC(Japan Smartphone Security Association)のセキュアコーディングガイドを参照。
- JSSECはスマートフォンのセキュリティを推進する組織。
- 総務省も紹介するような基準。
- セキュリティを意識している会社は結構使っている。
- 三大キャリアとか、キャリアに関連する会社とか。
- デファクトスタンダードと言って良い。
- 2012年に初版を発行。
- 以降、半年~1年程度で改定している。
- 第6版が2/3に公開された。
セキュアコーディングガイド第6版で追加された内容
- 3つの内容について解説する。
1. 6.0のパーミッションモデル変更に対応
- 6.0では、インストール時にパーミッションを与えるのではなく、実行時に許可するようになった。
2. 指紋認証アプリ
- Nexus5x/Nexus6Pでは、指紋認証機能がサポートされた。
3. Lまでの新規事項に対応
- Notification Visivirity
- ロック画面中の通知表示のこと。
- 表示可否を3段階で制御している。
- Secret(ロック画面には何も表示しない)
- Private(アイコンなどの基本的な情報を表示。デフォルト)
- Public(すべての内容を表示)
- Privateだけ、ロック画面に表示する情報と、非表示の情報の両方を有している。
- 実装を誤ると、ロック中にプライベート情報を表示してしまう可能性がある。
- デフォルトなので特に注意が必要。
- 実装時には、Visivilityと通知内容の確認をすべし。
- ロック中の表示情報とロック解除後の情報の内容を正しく切り分けること。
-
他のアプリからも読み書きができるファイルを作成するためのモード。既に非推奨とされている。↩