連載
» 2011年08月30日 00時00分 公開

Androidセキュリティの今、これから(3):ビジネス用途で活用する際の注意点 (4/4)

[Android セキュリティ部,@IT]
前のページへ 1|2|3|4       

勝手なインストールを防ぐ「アプリ対策」

 会社から貸与されたAndroidを利用する社員に教育などを行っても、モラルの欠如により、勝手に会社の経費でアプリを購入する場合や、意図せずマルウェアが仕組まれたアプリをインストールしてしまう可能性があります。

 会社資産の端末の場合には、MDMで管理することも可能です。しかしながら、個人所有端末の場合はMDMを導入できないケースもあります。

 MDMを導入できない端末に、自社開発した業務アプリをインストールして利用させる場合は、業務アプリに、Androidでインストールされているアプリをチェックするなどの機能を実装する方法もあります。詳しくはコラム1をご参照ください。

OS・アプリのバージョンアップ

 主に、バージョンアップには、(1)OSのバージョンアップと、(2)アプリのバージョンアップ(主にメーカー主導)の2種類があります。

 ビジネス利用においては、セキュリティ対策としての脆弱性の修正と機能の拡張という2つの観点から、いずれのバージョンアップも実施すべきですが、バージョンアップすることで特定のアプリが動作しなくなる、または動作が不安定になる可能性があります。ビジネス用途でAndroidを利用する場合は、事前に情報システム管理者が十分検証を行った上で、バージョンアップさせることが望ましいといえます(注21)。

 ただし、OTA(Over the Air)でOSの自動アップデートが行われるAndroidもあります。このためPCとは異なり、事前に情報システム管理者が十分検証を行った上で、バージョンアップをさせることが現実的には難しい場合も考えられます(注22)。

 バージョンアップに関する社内の運用ルールを定め、できる限り安全かつ管理された方法でバージョンアップさせるなど、利用するAndroidに応じて対策を検討する必要があります。

 また可能な限り、前述の“アプリ対策”の一環として、業務に不必要な個別のアプリを勝手に、インストールさせないセキュリティ対策も考慮するとよいでしょう。この対策を考慮していない場合、情報システム管理者側で個別アプリのバージョンアップまで管理することが非常に困難になることが予想されます。

注21:Googleは2011年7月21日にMultiple APK Supportを発表しました。この機能により、本文で指摘したアプリのバージョンアップの問題が解決される可能性はあります。しかし、現時点では未確定要素が含まれるので、Googleの動向を注視してください。

注22:Androidの場合は、SDKのリリースがAndroid端末のOSバージョンアップよりもかなり早いため、事前にAndroidアプリの動作確認を行うなどの作業で、ある程度対応できます。


情報そのものを読めないようにする「暗号化」

 紛失・盗難などにより、たとえ情報が漏えいしたとしても、Androidに残された情報そのものが読めないようにする対策が暗号化です。

暗号化の導入に当たって

 情報システム管理者が明確にすべき事柄は、何をどのように暗号化するのか(microSDなどのストレージごとに暗号化するのか、個別のファイルごとに暗号化するのか)のほか、データ別に暗号化のための鍵の有効期間を定める(注23)ことです。Androidで保存されたデータは、どの期間安全であればいいのかを明確にすることで、対処方法が定まります。

ストレージの暗号化

 Android 3.x(Honeycomb)以降では、ストレージの暗号化がサポートされています。microSDや本体内蔵メモリなども暗号化することで外部から閲覧される危険性を低減することができます。

 しかしながら、もし本体のパスワード管理に不備があり、Androidが不正に利用できてしまう場合には暗号化の意味を持ちません。

ファイルの暗号化

 ファイルの暗号化は、端末レベルの暗号化よりも実装と利用が容易です。しかし、同一の暗号鍵をすべてのファイルに利用すると、ファイル暗号化のメリットが薄れます。可能であれば、ファイル種別ごとに異なる鍵で、かつ有効期間を定めて利用できる仕組みを検討してください。

 Android単独で暗号化および復号を行う場合には、データ暗号化に最適な共通鍵暗号方式を利用するのが一般的です。パスワードの管理は利用者および情報システム管理者が行い、利用者がパスワードを忘れた場合や紛失した場合などは、再度サーバから自動生成した鍵データで再暗号化を行う設計を推奨します(注24)。

 ビジネス用途で利用する場合は、端末個別で暗号化データを管理する方法以外に、オンラインストレージやオンラインサーバ経由で行うクラウド型を検討するとよいでしょう。

注23:有効期間とは、解読されない安全を最低限保証しなければならない期間です。情報漏えいデータは、有効期間を定めなければ、ブルートフォースアタックで解読できる可能性があるからです。

注24:Androidでコンテンツ作成しサーバへアップロードする形式である場合、コンテンツを共通鍵暗号化してアップロードします。その後、サーバ側でコンテンツを公開鍵暗号で暗号化を行い、再度Android側にダウンロードする方向を検討すると良いでしょう。本記事執筆時点では、公開鍵暗号は速度が遅いため、Androidで行うにはリソース的に困難です。


【コラム】 セキュリティ機能の実装方法

 Androidの特性から、Android向けの業務アプリなどを自社開発して利用するケースが増えつつあります。もしそれらがMDMと併用できない場合は、業務アプリにある程度のセキュリティ機能を実装することになるでしょう。そこで、各対策の実装方法をご紹介します。

ロック、ワイプ

 Android 2.2以降に搭載されたDevice Administration API(注25)を利用して実装できます。

 ローカルワイプの場合には、Android SDK添付サンプルアプリ画面中の「Password Attempts Wipe Data」で回数を設定します。規定回数を超えて失敗すると、即座に出荷状態に戻ります。

 リモートワイプは、Device Administration APIではリモートから待ち受ける機能までは持っていませんが、ポーリング、SMS通知やC2DM(注26)などを組み合わせて構築することもできます。

図7 Androidにおけるデバイス管理者機能の設定画面1図7 Androidにおけるデバイス管理者機能の設定画面2 図7 Androidにおけるデバイス管理者機能の設定画面

アプリのインストール確認

 Package Manager APIを利用すればインストールアプリを取得できるため、ブラックリスト方式(注27)あるいはホワイトリスト方式(注28)で、インストールされているアプリを定期的にチェックする仕組みを構築できます。

 業務用Androidアプリを内製している場合には、アプリ間連携で動作の有無を判定させることで強制力を持たせることも可能でしょう。

ファイルの暗号化

 Androidで暗号化を実装するには、「javax.crypto」を利用して実装できます。アルゴリズムとしては、AESの利用が一般的であると思われますが、AESアルゴリズムは復号処理の負荷が高いことが知られています。

 AESと同等、あるいはそれ以上セキュリティマージンが高いと評価されているアルゴリズムとして、日本で開発され、組み込み機器用途でも使用できるcamellia(注29)があります。camelliaアルゴリズムをAndroidから簡単に利用する目的で開発されたCamellia-androidライブラリ(注30)は、Apache2ライセンスにて無償公開されていますのでご参照ください。

注25:Device Administration APIのサンプルとしては、Android SDK付属SampleソースにあるApiDemosを利用しました。

注26:Cloud to Device Messaging。これは開発者がサーバからAndroid上のアプリケーションにデータを送信することができるようにするプッシュサービスです。ただし、Google Labs閉鎖に伴い、将来は不透明になっています。代用としてはGoogle App EngineのChannel APIを利用するなどの方法が考えられます。

注27:ブラックリスト方式とは、あらかじめ禁止される内容を登録しチェック対象が存在していないことを確認します。

注28:ホワイトリスト方式とは、あらかじめ許可される内容を登録しチェック対象のみ存在することを確認します。

注29http://info.isl.ntt.co.jp/crypt/camellia/dl/Camellia2010v7_0.pdf

注30http://code.google.com/p/camellia-android/



【コラム】 ストレージの暗号化

 前述の通り、Androidでは3.x以降ではストレージ暗号化が可能となりましたが、PCと同じくハードウェアトラブルを引き起こすリスクがあるため、システム領域部分までは行わないことが一般的です。ハードウェアレベルの暗号化機能を備えたPCも存在していますが、Androidにはそのような仕様は存在していません。なお2011年8月現在、Android 3.x(Honeycomb)以降で実装される暗号化は、タブレット(注31)のみを対象としています。

注31:2011年末にリリース予定の次期Androidでは、タブレット専用の3.xとスマートフォン向け2.xを統合することを発表しています。



端末廃棄時のデータ消去

 Androidの廃棄が発生するケースの代表例は、端末の老朽化でしょう。Androidを廃棄しなければならない場合、Android内で保存されている内部データの情報漏えいを防ぐ必要があります。

会社から貸与されたAndroidに保存されるデータ

 該当のAndroidが会社の資産である場合には、Android本体についても、microSDについても、データ消去専用アプリなどで消去します。

個人所有のAndroidに保存されるデータ

 個人のAndroidをビジネス利用させる場合、消去することは困難です。どこまでが会社データであり個人データであるかの線引きが非常に難しく、トラブルの原因となる可能性があるためです。

 理想的な解決策は、原則、個人所有のAndroidに会社の情報を保存させないとする「社員就業規則」を整備し、社員を教育することです。また、必要に応じて、守秘義務契約書を交わし、該当の個人所有端末を会社の資産にすることも検討するとよいでしょう。

端末故障のケース

 端末が故障し利用できない場合もデータ消去を行う必要があります。本体やmicroSDなどが水没などで動作しない場合、物理的に破壊するのではなく、キャリアへ問い合わせ、専門業者のサービス利用などを検討するとよいでしょう。

 ただし、本体側(microSDなどを含む)にデータが一切ない場合や、時間経過により意味を持たないデータとなることが保証できる場合は、その限りではありません。


 ここまで、ビジネス用途でAndroidを活用する際のセキュリティ上の注意点を概観しました。次回は、Androidの管理方法として注目を集めているMDMについてご紹介します。

【関連リンク】
Android セキュリティ部

http://groups.google.com/group/android-security-japan



前のページへ 1|2|3|4       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。