
Androidのセキュリティ - すべての選択肢の意味を理解する
投稿者:Chris Buerger, 2012/01/19
先週、一般向けにリリースされたSecurity Enhanced (SE) Androidプロジェクトと関連ソースコードは、セキュアなAndroidデバイスの開発に必要となる新たなオプションセットを追加する際の重要な基本ステップとして、多くの人が歓迎しています。アメリカ国家安全保障局(NSA)による最近のコードベース・リリースは、幅広いAndroidデバイスに統合セキュリティレイヤーを数年に渡り設計、実装してきたウインドリバーのようなAndroidエキスパートにとって馴染み深い領域です。その一方で、この開発を包括的なセキュリティソリューションとして紹介するマスコミは、Androidセキュリティが示す複雑な主題をあまりにも単純化し過ぎています。
端的に言えば、SE AndroidのコードベースをNexus Sにコンパイル、あるいはフラッシュしても完全に「セキュア」にはならないのです。
ウインドリバーがAndroidデバイスを実現してから5年近くになります。その経験と、モバイルLinux端末の先駆者としての10年以上の経験から見て、セキュリティに関する4つの重要なポイントが浮かび上がります。
一つは、Androidセキュリティは、真にセキュアなデバイスを開発するべく多くの異なるピースをはめ込むパズルのようであるということ。二つ目は、セキュリティとはユースケース主導の概念であるということ。例えば、軍用移動通信では、車載インフォテインメント・システム(IVI)上で起動するAndroidソフトウェアスタックなどとは異なるセキュリティ定義や要件が存在します。三つ目は、セキュリティの実装は、「ファイアー・アンド・フォーゲット」の実践ではないといこと。新種の攻撃に耐えられるだけでなく従来のセキュリティレベルを維持あるいは向上させながら、Androidの最新バージョン(また必要に応じてセキュリティ志向のパッチ)に現場でアップグレードできるシステムを構築するには、注意を払わねばなりません。最後に、ソフトウェア実装を「セキュア」だと宣言するだけでは不十分だということです。ある種の攻撃が対象デバイスに定義された主なユースケースに干渉しないよう、被試験装置(DUT)に負荷をかけて攻撃をエミュレートし、測定可能なプルーフポイントを提供するテストフレームワークと自動テストスクリプトが必要です。このテストフレームワークは、Androidの最新リリースで起動するデバイスを迅速に検証するだけの拡張性と、新たな攻撃スクリプトを組み込めるだけの柔軟性を備えていなければなりません。
では、これらの4つのポイントを詳しく見ていきましょう。
弊社の分析では、Androidセキュリティには異なる領域が10以上あることが確認されています。ユーザー認識・認証、複数のメモリロケーションにわたるユーザーデータの保護、着信・送信データのフィルタリング、リモート監査を実現するイベント記録、様々な暗号化技術の選択と実装、高信頼パス、権限管理、仮想化と空間的、時間的なドメイン分離、高信頼ブート、マルウェアの軽減、ファームウェアアップデート保護、アプリケーションインストール管理など・・・・。そのリストは延々と続きます。この状況を視覚的に描いていただきやすい例を挙げましょう。先日、家族とともに旧ソビエトの潜水艦を見に行きました。艦内には様々なシステム管理のために操作する何百もの制御ポイントバルブがありましたが、Androidの状況は、この潜水艦を思い起こさせます。制御ポイントを定義し、かつ見識ある管理を行うには、明らかに要求される専門知識が存在します。潜水艦に限らずAndroidでも、どの「バルブ」を、いつ、どの程度回すかを知るエキスパートが必要です。また、アプリケーションプロセッサ技術(ARM対IAなど)の選択も、例えばウインドリバーのHypervisorのような組込み仮想化技術の活用方法に影響を与える可能性があります。
第二のポイントに対する対処として、ウインドリバーは、カスタム開発の法人向けタブレットから、メディアフォン、スマートフォン、タブレット、IVIシステムをはじめ、公共安全と医療装置の分野で使用される機器まで、広範なデバイスに対してAndroidの設計と実装を行ってきました。興味深いことに、これらのAndroidプロジェクトすべてに一貫して言えるのは、Androidセキュリティのアプローチが、デバイスの種類によってほぼ完全に異なることです。言い換えれば、デバイスのユースケースが、セキュリティ技術の実装における異なる優先事項、Androidに対する異なるカスタマイズ、さらに異なるソフトウェアの検証概念を規定しました。1つの具体例として、IVI空間における一連のセキュリティ上の懸念について、McAfeeとウインドリバーによる共同ホワイトペーパーをご覧ください。デバイスのユースケースを把握することがカギであり、このステップをAndroidのセキュリティ専門知識と緊密に組み合わせる必要があります。
ファームウェア管理は、モバイルの世界では共通概念とも言えます。例えばOMA-DMの場合、何億ものモバイル端末で長年使用されてきました。スマートフォンの世界からははみ出すAndroidデバイスに起こる課題は、一般にオペレータをベースとしたデバイス、ユーザー、サービス、ポリシー管理のインフラのいずれもが存在しないことです。ウインドリバーではこのニーズを満たすべく、Androidセキュリティの最新ソフトウェアを利用してデバイスを最新の状態に保つ、ファームウェア管理オプションの選択を提供するSolution Accelerators for Androidを開発しました。さらに、ウインドリバーのパートナーの多くも、特定のユースケースを満たすために適用可能な、セキュリティ志向のポリシー管理ソリューションを開発しています。
最後に、対象デバイスへのAndroidセキュリティ実装に対して専門家によるテストが必要です。もちろん、マニュアルでできるテストもありますが、Wind River Framework for Automated Software Test (FAST) for Androidのような業界をリードする自動テストツールを利用すれば、多くの場合において試験効率面での大きな利点が得られます。これは、例えば攻撃スクリプトを実行中に、浸せき試験計画の一環として加速デイ・プロファイル試験環境を実行する時など、Android DUTに負荷をかける必要がある場合において、特に当てはまります。 つまり、Androidセキュリティは決して「フリーサイズ」ではないのです。SE Androidは、Androidスタックにセキュリティを追加する、堅実なマーケット志向のソフトウェアソリューション開発を構成する1つの要素に過ぎません。多種多様なデバイスのユースケースに関連した技術やオプションの幅広い選択には、多くの場合、専門家の助けが必要です。セキュアなAndroidデバイスの構築で分からないことや気になることがありましたら、ウインドリバーのグローバルチームにぜひお問い合わせください。
原文はこちら:http://blogs.windriver.com/mobile/2012/01/android-security-making-sense-of-all-the-choices.html
本社ブログサイト:http://blogs.windriver.com/


