16
Android N のすべての新しいセキュリティ強化

Android セキュリティ レイヤー

Android セキュリティ レイヤー

Google I/O で、Android セキュリティ責任者の Adrian Ludwig 氏が、Android M で導入されたセキュリティ機能と Android N で導入されるすべての新機能について詳細に説明しました。最新バージョンでは、M のセキュリティが強化されていますが、マルウェア感染の可能性を低くする新しいサンドボックス機能と制限も導入されています。

その主な方法の一つは、サーバー側(Playストア)とユーザー側の両方で独自のマルウェア対策サービスを提供することにあります。特定の種類のエクスプロイトが発見されると、これらのサービスはそれらをブロックし、大多数のユーザーに影響を与えないようにします。しかし、これは、Googleが特定のマルウェアを発見する前に、数万、あるいは数十万ものユーザーが感染しない可能性があることを意味するものではありません。そのため、デバイスレベルの他の保護も必要です。

ハードウェア バックアップ キーストア (必須)

ルートヴィヒ氏は、最近の Android の主要なセキュリティ機能はハードウェアでバックアップされた「キーストア」であり、これは ARM の TrustZone のさまざまな実装のおかげで大部分の Android デバイスで利用できるようになった、と述べた。

TrustZoneは、より厳格なDRM保護を実現するために、主にチップメーカーやOEMによって実装されてきましたが、Googleはここ数年でアプリケーション開発者向けにも提供を開始しました。Android L以降、開発者はTrustZoneモジュールにRSA、ECDSA、AES、HMAC鍵を保存できるようになりました。Android Nでは、ハードウェアベースのキーストアがすべてのデバイスで必須となります。

Androidの新バージョンでは、開発者はキーストア関連の新しいAPIを利用できるようになります。これらのAPIにより、キーが安全なハードウェアに保存されているかどうかを検証したり、ユーザーがアプリに認証した後、キーをどれだけの期間使用できるかを指定したりできるようになります。また、開発者は、ユーザーが認証しない限りデータが復号されないようアプリを設定することもできます。

指紋とスマートロック認証

Googleによると、指紋認証の導入以降、セキュアロック画面の利用率が約50%から90%以上に増加したとのことです。Nexusユーザーはセキュリティ意識が高い傾向があるため、指紋認証の導入によって他のデバイスでもセキュアロック画面の利用率がさらに高まったと考えられます。

Tom's Hardware の最高のニュースと詳細なレビューをあなたの受信箱に直接お届けします。

Googleはまた、Smart Lockの検出機能により、セキュリティロック画面のプロンプト表示が50%減少したと述べています。Smart Lockは、スマートフォンをスマートウォッチなどのBluetoothデバイスに接続し、Bluetoothの範囲内にある限りロック解除状態を維持できる機能です。

Google はこれらの詳細を明らかにした以外、Android N の指紋認証に関する新たな変更については何も言及しなかった。

セキュアネットワーク

Android Mでは、開発者がアプリが暗号化トラフィックを使用するかどうかを明示的に指定できる機能が導入されました。それまでは、広告ライブラリなど、アプリ内の特定のサードパーティ製コンポーネントが暗号化トラフィックを使用するかどうかは、開発者にとって容易に判断できませんでした。

Android Nでは、ユーザーがインストールした証明書はデフォルトで信頼されなくなりました。これは、昨年「国家安全保障」上の理由からモバイルおよびPCユーザーに証明書のインストールを推奨したカザフスタン政府にとって問題となる可能性があります。Androidは、すべてのデバイスで1つの証明機関ストアのみを使用します(そのため、OEMは複数の国で他の証明書を追加することはできません)。これにより、Androidデバイスはどこでも同じレベルの「信頼」を確保できるはずです。

ストレージ暗号化

過去1年半にわたり、モバイルデバイスのデフォルトのストレージ暗号化については、主にFBIがメディアで反対論を展開したことが背景となって、多くの議論が交わされてきました。Googleは当初、Android 5.0で暗号化を必須化すると約束していましたが、当時はARMv8のより汎用的な暗号アクセラレータにアクセスできるデバイスがあまり多くありませんでした。そのため、GoogleはAndroid 6.0以降、「対応」デバイス(フラッシュメモリの読み取り速度が50Mbps以上でARMv8チップを搭載)のみにストレージ暗号化を必須化しました。

Android Nでは、Googleは「ダイレクトブート」と呼ばれる新機能を導入しました。これは、起動時にパスワードを入力し、ユーザーがデバイスのロックを解除する(指紋やその他のロック画面認証方法を使用)前に他のアプリが通知やその他の情報を表示できるようにする手間を省くことを目的としています。

Android Nでは、デバイス暗号化と認証情報暗号化という2種類のストレージ暗号化が使用されます。デバイス暗号化はデバイスに紐付けられ、鍵はTrustZoneハードウェアに保存されます。このハードウェアは鍵の抽出から保護されます。アプリケーションデータは「認証情報暗号化」のみで暗号化されるため、ユーザーのみがデータにアクセスできます。

Googleは、開発者に対し、ダイレクトブート対応アプリをどの程度高度に(そしてどの程度危険に)するかについて裁量を与えているようだ。例えば、メールアプリのユーザーは、認証されるまでメールの閲覧のみ可能で、送信や削除はできないようにすることを推奨している。また、ユーザーの認証情報がユーザー認証メカニズムによって保護されているはずなのに、なぜダイレクトブートモードからユーザーがメールを削除できるのか、その理由も不明だ。

ダイレクト ブート機能は、主にユーザーの利便性を目的とした機能として誕生したようですが、他のサードパーティ アプリがユーザー認証前にブート プロセスに介入できるようにすることが、セキュリティの観点から長期的に見て良いアイデアであるかどうかはまだわかりません。

厳格に実施される検証済みブート

Android M では、起動が不明なコードによって変更されたことのみをユーザーに警告しますが、バージョン N では、起動プロセスが悪意を持って変更されている場合、デバイスは起動しません。

Google はまた、検証済みブート機能にビットレベルのエラー訂正を導入しました。これにより、たとえば、デバイスをルート化した後もルート化を維持するような変更を消去できます。

デバイスの健全性を確認する

Google が Play サービス フレームワークを通じて提供する SafetyNet API を使用すると、開発者はデバイスの健全性をチェックして、デバイスが改ざんされたかどうかや、前回のセキュリティ アップデートからどれくらいの時間が経過したかを確認できます。

これは、開発者や企業が長期間アップデートされていないデバイス上でアプリケーションの動作を無効にしたいエンタープライズアプリケーションにとって特に有用です。これはまさに、Googleが過去1、2年かけて構築してきたBeyondCorpセキュリティインフラストラクチャを通じて社内で行っていることです。

こうした機能があれば、OEMは企業顧客の購買意欲を高めるために、少なくとも一部のデバイスについて、現在よりもはるかに長期間のアップデート提供を促す可能性があります。Androidは、アップデートに関するより明確なストーリーがあれば、企業市場においてより大きな成功を収めることができるでしょう。企業顧客は、平均的な消費者よりもデバイスの更新頻度がはるかに低いため、何年もアップデートされるデバイスを求めています。そのため、1年間、あるいは半年に一度しかアップデートされないデバイスはあまり役に立ちません。

サンドボックス

Android Nは、これまで以上に多くのサンドボックス機能の恩恵を受けています。Googleは先日、Androidのメディアサーバーライブラリの強化について既に発表しました。これは、整数オーバーフローを排除するためのコードサニタイズと、複数のサンドボックスコンポーネントへの分割によって実現されました。

Google は Android N で、「seccomp」と呼ばれる Linux カーネルのセキュリティ機能も導入しました。この機能は 11 年前に Linux オペレーティング システムに導入されましたが、この機能を利用するコンテナーの増加に伴い、最近になってようやく採用が進み始めました。

Seccompは、Chrome、メディアサーバー、その他のAndroidプロセスといったファーストパーティアプリだけでなく、サードパーティ製アプリのサンドボックス化を強化します。AndroidのSELinux保護を設定するのはGoogleですが、開発者もseccompを使用して、自社アプリにおけるセキュリティ侵害からシステムをより適切に保護できるようになります。

その他のシステム制限と改善

Adrian Ludwig氏は、ASLRセキュリティ機能のランダム性が向上したと述べましたが、64ビットデバイスが64ビットアプリケーションを最大限に活用できるようになったかどうかは不明です。例えば、Google独自のStagefrightメディアサーバーライブラリは、以前は64ビットデバイスでも32ビットでした。

Googleはデバイス管理者APIにもいくつかの制限を導入しました。これにより、ランサムウェアなどの特定のマルウェアによるデバイスのロックアウトを防ぎ、ユーザーがデバイス所有者モードからデバイス管理者アプリをアンインストールできるようになります。また、一部のアプリがシステムダイアログや他のアプリの上に描画する機能も制限されました。

Android Nでは、Chromeから受け継いだ、よりシームレスなデバイスアップデートプロセスも導入されます。将来のデバイスは2つのシステムパーティションを搭載します。アップデートは、アクティブでないパーティションに対してバックグラウンドで自動的にインストールされ、再起動時に更新されたイメージが反映されます。

全体的に、Android N では、数多くのセキュリティ機能が追加されたようですが、最も重要なのは、すべての新しいサンドボックス機能と、アプリに許可される機能の制限の強化です。

ルシアン・アルマスはTom's Hardwareの寄稿ライターです。  @lucian_armasuでフォローできます 

ルシアン・アルマスは、Tom's Hardware USの寄稿ライターです。ソフトウェア関連のニュースやプライバシーとセキュリティに関する問題を取り上げています。