なかなか語られることの少ないAndroidのセキュリティ対策について、グーグルが記者勉強会を開催した。漠然としたセキュリティへの不安を抱いているユーザーが多いAndroidだが、これらの取り組みを知ると安心できるかも?

JellyBean以降、多くの改良が加えられてきたOSのセキュリティ機能

Androidのセキュリティは「ユーザー」「アプリ開発者」「端末メーカー」と3方向に向けた取り組みがある。ユーザーに対してはGoogle Playを通した安全なアプリの提供、アプリ開発者には正規のSDK配布やAPI情報、ベストプラクティス情報などの提供、端末メーカーとはセキュリティアップデート配信における協業といったものだ。

もちろん、根幹となるのはOSのセキュリティレベルの向上。グーグル デベロッパーリレーションズ デベロッパーアドボケイトの松内 良介氏が書き出したAndroid4.0以降の主なセキュリティ機能の追加は以下の通りで、メジャーアップデートごとに大きな進展が見える。

  • アドレス空間ランダム化(Android 4.0~)
  • Trusted Execution Environment(Android 4.3~)
  • 認証情報の保護強化(Android 4.4~)
  • Full Disk Encryption(Android 5.0~)
  • SELinux強制モード(Android 5.0~)
  • Enterprise機能(会社のWorkプロファイル機能やVPN)(Android 5.0~)
  • Verified Boot(Android 6.0~)

Enterprise機能、Full Disk Encryptionなど、他プラットフォームで採用済みの後追い機能があることも確かだが、情報システム部門からすれば、安価で高機能なAndroidデバイスを安心して利用できるいい材料となるだろう。

グーグル デベロッパーリレーションズ デベロッパーアドボケイト 松内 良介氏

Googleがエンドユーザーを守るまでに3つの経路が存在する

Androidはもともと、サンドボックス環境でアプリを仮想的に独立した形で実行するため、アプリAがアプリBのデータを改変するといった動作が行えないようになっている。また、国内で数カ月以内に販売を開始した最新デバイス(Android 6.0 Marshmallow搭載モデル)では、アプリを利用する際にどのようなデータへアクセスするのか、ユーザーにわかりやすい形で許可を求めるようになった。

6.0未満のバージョンでは、アプリをインストールする際に一括で「権限許可」を行っていたため、ユーザーが”流れ作業”で読み飛ばすケースが多かった。これにより、「位置情報」や「電話帳情報」などの重要情報を詐取するマルウェアアプリを思いがけずインストールし、データを盗み取られるというケースが存在した。

これを防ぐための対策が、6.0以降の個別許可機能で、インストール時の権限確認も行われるものの、そのアプリで初めて該当機能を利用する際に「端末の位置情報へのアクセスを許可しますか?」といったダイアログが表示され、許可することで初めて、アプリはデータにアクセスできるようになる。「懐中電灯アプリが写真へのアクセスを求めてくる」というような怪しい挙動があった場合、被害を未然に防げる機能というわけだ。

サンドボックスやパーミッション管理は当初からの機能。ただ、パーミッションで個別承認できる形になったのはAndroid 6.0 Marshmallowからとなる

また、Googleは最初期から「オープンソース」が故の安全性を謳っている。「誰もがソースコードにアクセスできることで、脆弱性を発見しやすくなる」(松内氏)とのことだが、この取り組みをさらに加速させるために始めたプログラムもある。それが「Android Security Reward Program」だ。2015年6月にスタートしたもので、脆弱性を発見した人物に対して報奨金を支払う。2015年だけで200万ドル以上が支払われており、一部のセキュリティ研究者には26件の脆弱性報告で計7万5750ドルが支払われたそうだ。

不審なアプリを見極めるクラウドセキュリティ

「OS」に関するセキュリティはここまでで、これ以降の機能は「Google Play」や「Google Play開発者サービス」などのアプリで提供するセキュリティ機能となる。これらのアプリは、Googleがクラウドサーバーで用意した各セキュリティサービス群と同調して、Androidデバイスのセキュリティ侵害を食い止める。

「VerifyApps」と「SafetyNet」はデバイスを守る機能で、前者はユーザーがインストールしたアプリを継続的に監視するもの、後者はOSの構成変更を監視する機能となる。前者は、Google Playだけでなく、ストア以外からインストールしたアプリについても監視することでユーザーの端末を守る。