(57)【特許請求の範囲】
【請求項１】
複数のコードからなるアプリケーションプログラムを受信し、該受信したアプリケーションプログラム内の複数のコードの実行許可情報を記憶する中継装置に接続可能なクライアント装置に、
前記中継装置から前記アプリケーションプログラム及び前記実行許可情報を受信し、
複数のアプリケーションプログラムに関する外部から入手した評判を解析して評価情報を記憶部に記憶し、
前記記憶部に記憶されている、受信した前記アプリケーションプログラムの評価情報に基づいて、受信した前記実行許可情報を更新し、
前記更新された実行許可情報を参照して判断したコードの実行可否に基づき、前記アプリケーションプログラムを実行する、
処理を実行させることを特徴とする制御プログラム。
【請求項２】
前記クライアント装置は、前記更新された実行許可情報を参照し、前記受信したアプリケーションプログラムに含まれる複数のコードのうち前記クライアント装置が有する所定の機能へのアクセスを行うコードの実行可否を判断することを特徴とする請求項１記載の制御プログラム。
【請求項３】
前記クライアント装置は、前記更新された実行許可情報を参照し、前記受信したアプリケーションに含まれる複数のコードのうち前記クライアント装置が外部装置へのアクセスを行うコードの実行可否を判断することを特徴とする請求項１記載の制御プログラム。
【請求項４】
複数のコードからなるアプリケーションプログラムを受信し、該受信したアプリケーションプログラム内の複数のコードの実行許可情報を記憶する中継装置に接続可能なクライアント装置であって、
前記中継装置から前記アプリケーションプログラム及び前記実行許可情報を受信する受信部と、
複数のアプリケーションプログラムに関する外部から入手した評判を解析して評価情報を記憶部に記憶する判定部と、
前記記憶部に記憶されている、受信した前記アプリケーションプログラムの評価情報に基づいて、受信した前記実行許可情報を更新する更新部と、
前記更新された実行許可情報を参照して判断したコードの実行可否に基づき、前記アプリケーションプログラムを実行する実行部と、
を有することを特徴とするクライアント装置。
【請求項５】
複数のコードからなるアプリケーションプログラムを受信する中継装置と、該中継装置が受信したアプリケーションプログラムを該中継装置より受信し実行するクライアント装置とを有する制御システムの制御方法であって、
前記中継装置は、
複数のコードからなるアプリケーションプログラムを蓄積するアプリケーションサーバから前記アプリケーションプログラムを受信し、
該受信したアプリケーションプログラム内の複数のコードの実行許可情報を記憶し、
記憶している前記アプリケーションプログラムと、前記実行許可情報とを前記クライアント装置へ送信し、
前記クライアント装置は、
前記中継装置から前記アプリケーションプログラム及び前記実行許可情報を受信し、
複数のアプリケーションプログラムに関する外部から入手した評判を解析して評価情報を記憶部に記憶し、
前記記憶部に記憶されている、受信した前記アプリケーションプログラムの評価情報に基づいて、受信した前記実行許可情報を更新し、
前記更新された実行許可情報を参照して判断したコードの実行可否に基づき、前記アプリケーションプログラムを実行する、
ことを特徴とする制御システムの制御方法。
【請求項６】
複数のコードからなるアプリケーションプログラムを受信し、該受信したアプリケーションプログラム内の複数のコードの実行許可情報を記憶する中継装置に接続可能なクライアント装置を制御する制御方法において、
前記クライアント装置が、
前記中継装置から前記アプリケーションプログラム及び前記実行許可情報を受信し、
複数のアプリケーションプログラムに関する外部から入手した評判を解析して評価情報を記憶部に記憶し、
前記記憶部に記憶されている、受信した前記アプリケーションプログラムの評価情報に基づいて、受信した前記実行許可情報を更新し、
前記更新された実行許可情報を参照して判断したコードの実行可否に基づき、前記アプリケーションプログラムを実行する、
ことを特徴とするクライアント装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御プログラム、クライアント装置、制御システムの制御方法及びクライアント装置の制御方法に関する。
【背景技術】
【０００２】
パーソナルコンピュータ並の性能を持ったモバイル端末であるスマートフォンの普及が進んでいる。また、３Ｇ／ＬＴＥ／ホットスポットの充実等により、スマートフォンは常時ネットワークに接続できる環境が整っている。スマートフォンで実行可能なアプリケーションには、ネイティブアプリ、Ｗｅｂアプリ、Ｈｙｂｒｉｄ  Ｍｏｂｉｌｅ  Ａｐｐｌｉｃａｔｉｏｎの３種類が存在する。
【０００３】
ネイティブアプリは、実行する端末に特化したアプリである。端末のローカルリソースやデバイスを自由に扱えるため何でもできるが、端末に特化させるためインストールが必要になり、開発者にとっては端末毎にカスタマイズしたアプリを作成しなければならない。Ｗｅｂアプリは、ブラウザ上で実行されるため、端末にインストールする必要がなく、端末やＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）に依存せずに実行出来る。しかし、Ｗｅｂアプリは、端末ではなく原則Ｗｅｂサーバ上で動作するものであり、ローカルリソースに対する操作は、ＪａｖａＳｃｒｉｐｔ（登録商標）のＦｉｌｅＡＰＩを使用したファイル操作など、ネイティブアプリに比べ出来ることが限られてしまう。Ｈｙｂｒｉｄ  Ｍｏｂｉｌｅ  Ａｐｐｌｉｃａｔｉｏｎは、ＰｈｏｎｅＧａｐやＷＡＣ（Ｗｈｏｌｅｓａｌｅ  Ａｐｐｌｉｃａｔｉｏｎｓ  Ｃｏｍｍｕｎｉｔｙ）といった開発環境で作成することが出来るもので、ＷｅｂアプリのようにＯＳ依存なく実行することが可能で、かつネイティブアプリのようにローカルリソースやデバイスに自由にアクセスすることができる。
【０００４】
上記したアプリのうち、Ｈｙｂｒｉｄ  Ｍｏｂｉｌｅ  Ａｐｐｌｉｃａｔｉｏｎなどにおいては、端末に特化せず、かつ、端末がアクセス可能なデバイスへのアクセスも可能となっている。このため汎用的なアプリケーションで、端末に関するデバイスへのアクセスが可能となるというメリットがあるが、このようなアプリの実行時にセキュリティ問題は引き起こされる場合がある。主な要因の一つがマルウェアで、スマートフォンにおいて広がりを見せつつあり、マルウェアを含むアプリが増える傾向にある。スマートフォンにおいて、利用者がマルウェアを含むアプリをインストール、実行してしまう事例が増えている。アプリをプッシュするためには、相応のセキュリティ対策を施さなければユーザは安心してアプリを利用することができず、端末のセキュリティ状態を確認せずに端末にアプリを送り込むのは危険である。
【０００５】
先行技術文献としては、下記のものがある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０００−１６３２６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本技術の開示での課題は、端末の危険度に応じて、セキュリティを維持してアプリを実行できる情報処理システムを提供することである。
【課題を解決するための手段】
【０００８】
複数のコードからなるアプリケーションプログラムを受信し、該受信したアプリケーションプログラム内の複数のコードの実行許可情報を記憶する記憶部を有する中継装置に接続可能なクライアント装置を制御する制御プログラムは、前記クライアント装置に、前記中継装置から前記アプリケーションプログラム及び前記実行許可情報を受信し、複数のアプリケーションプログラムの評価情報を記憶する記憶部に記憶されている、受信した前記アプリケーションプログラムの評価情報に基づいて、受信した前記実行許可情報を更新し、前記更新された実行許可情報を参照して判断したコードの実行可否に基づき、前記アプリケーションプログラムを実行する処理を実行させる。
【発明の効果】
【０００９】
本開示の技術の一側面によれば、リソース毎に危険な処理を避けた、きめ細かくセキュアなアプリを実行することができる。ゆえに、クライアント装置の危険度に応じ、セキュリティを維持してアプリを配信・実行することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】情報処理システムを示す図である。
【図２】アプリケーションサーバの構成を示すブロック図である。
【図３】パッケージャの構成を示すブロック図である。
【図４】クライアント装置の構成を示すブロック図である。
【図５】情報処理システムの詳細を示す図である。
【図６】解析ルールを示す図である。
【図７】コード抽出処理を示す図である。
【図８】ＡＣＬを示す図である。
【図９】パッケージャの処理を示すフローチャートである。
【図１０】クライアント装置の実行環境を示す図である。
【図１１】危険度判定処理を示す図である。
【図１２】危険度判定テーブルを示す図である。
【図１３】更新後のＡＣＬを示す図である。
【図１４】危険度判定部の処理を示すフローチャートである。
【図１５】クライアント装置の処理を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本実施形態における情報処理システムについて説明する。
【００１２】
図１は、本実施形態における情報処理システムを示す図である。情報処理システムは、複数のアプリケーションサーバ１００、ネットワーク４００、中継装置であるパッケージャ２００及び複数のクライアント装置３００を有する。複数のアプリケーションサーバ１００、パッケージャ２００及び複数のクライアント装置３００は、ネットワーク４００によって互いに接続される。
【００１３】
アプリケーションサーバ１００は、Ｗｅｂアプリを公開する。パッケージャ２００は、Ｗｅｂアプリを解析して、ＡＣＬ（Ａｐｐｌｉｃａｔｉｏｎ  Ｃｏｎｔｒｏｌ  Ｌｉｓｔ）を生成し、生成したＡＣＬとＷｅｂアプリとを対応付けて公開する。ＡＣＬについては後述する。クライアント装置３００は、アプリを実行する。なお、アプリケーションサーバ１００、パッケージャ２００とクライアント装置３００とからなる構成を当該情報処理システムの最小構成としても良い。
【００１４】
図２を用いて、本実施形態におけるアプリケーションサーバ１００について説明する。アプリケーションサーバ１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１、主記憶装置１０２、システムコントローラ１０３、バス１０４、ネットワークコントローラ１０７、電源１０９、ディスクコントローラ１１２及びハードディスク１１３を有する。アプリケーションサーバ１００は、ＣＰＵ１０１によって制御されている。
【００１５】
ＣＰＵ１０１及び主記憶装置１０２には、システムコントローラ１０３が接続されている。システムコントローラ１０３は、ＣＰＵ１０１と主記憶装置１０２との間のデータ転送や、ＣＰＵ１０１とバス１０４との間のデータ転送を制御する。さらに、システムコントローラ１０３には、バス１０４を介して、ネットワークコントローラ１０７及びディスクコントローラ１１２が接続されている。
【００１６】
主記憶装置１０２には、ＣＰＵ１０１に実行させるＯＳのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、主記憶装置１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。主記憶装置１０２には、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）が用いられる。
【００１７】
ディスクコントローラ１１２には、ハードディスク１１３が接続されている。ディスクコントローラ１１２は、ハードディスク１１３を制御する。ハードディスク１１３は、ＣＰＵ１０１が主記憶装置１０２上で実行するアプリケーションプログラム１１００、ＣＰＵ１０１に当該アプリケーションプログラム１１００の呼び出しなどの制御を行わせる制御プログラム１０００、公開するＷｅｂアプリ１２０及び各種データを格納する。
【００１８】
ネットワークコントローラ１０７は、図１に示したネットワーク４００を介してパッケージャ２００と接続されており、パッケージャ２００との間で、Ｗｅｂアプリ１２０及び各種データの送受信を行う。
【００１９】
電源１０９は、不図示の電源線を介してアプリケーションサーバ１００内の各ハードウェアに対して電力を供給する。
【００２０】
このようなハードウェアによって、アプリケーションサーバ１００の処理機能を実現することができる。
【００２１】
図３を用いて、本実施形態におけるパッケージャ２００について説明する。パッケージャ２００は、ＣＰＵ２０１、主記憶装置２０２、システムコントローラ２０３、バス２０４、ネットワークコントローラ２０７、電源２０９、ディスクコントローラ２１２及びハードディスク２１３を有する。パッケージャ２００は、ＣＰＵ２０１によって制御されている。
【００２２】
ＣＰＵ２０１及び主記憶装置２０２には、システムコントローラ２０３が接続されている。システムコントローラ２０３は、ＣＰＵ２０１と主記憶装置２０２との間のデータ転送や、ＣＰＵ２０１とバス２０４との間のデータ転送を制御する。さらに、システムコントローラ２０３には、バス２０４を介して、ネットワークコントローラ２０７及びディスクコントローラ２１２が接続されている。
【００２３】
主記憶装置２０２には、ＣＰＵ２０１に実行させるＯＳのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、主記憶装置２０２には、ＣＰＵ２０１による処理に必要な各種データが格納される。主記憶装置２０２には、例えば、ＲＡＭが用いられる。
【００２４】
ディスクコントローラ２１２には、ハードディスク２１３が接続されている。ディスクコントローラ２１２は、ハードディスク２１３を制御する。ハードディスク２１３は、ＣＰＵ２０１が主記憶装置２０２上で実行するアプリケーションプログラム２１００、ＣＰＵ２０１に当該アプリケーションプログラム２１００の呼び出しなどの制御を行わせる制御プログラム２０００、解析ルール２１０、ＡＣＬ２３０（図示せず）及び各種データ（図示せず）を格納する。
【００２５】
ネットワークコントローラ２０７は、図１に示したネットワーク４００を介してアプリケーションサーバ１００及びクライアント装置３００と接続されており、アプリケーションサーバ１００及びクライアント装置３００との間で、データの送受信を行う。
【００２６】
電源２０９は、不図示の電源線を介してパッケージャ２００内の各ハードウェアに対して電力を供給する。
【００２７】
このようなハードウェアによって、パッケージャ２００の処理機能を実現することができる。
【００２８】
図４を用いて、本実施形態におけるクライアント装置３００について説明する。クライアント装置３００は、ＣＰＵ３０１、主記憶装置３０２、システムコントローラ３０３、バス３０４、ネットワークコントローラ３０７、電源３０９、カメラ３１０、メモリコントローラ３１２及びフラッシュメモリ３１３を有する。クライアント装置３００は、ＣＰＵ３０１によって制御されている。
【００２９】
ＣＰＵ３０１及び主記憶装置３０２には、システムコントローラ３０３が接続されている。システムコントローラ３０３は、ＣＰＵ３０１と主記憶装置３０２との間のデータ転送や、ＣＰＵ３０１とバス３０４との間のデータ転送を制御する。さらに、システムコントローラ３０３には、バス３０４を介して、ネットワークコントローラ３０７及びメモリコントローラ３１２が接続されている。
【００３０】
主記憶装置３０２には、ＣＰＵ３０１に実行させるＯＳのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、主記憶装置３０２には、ＣＰＵ３０１による処理に必要な各種データが格納される。主記憶装置３０２には、例えば、ＲＡＭが用いられる。
【００３１】
メモリコントローラ３１２には、フラッシュメモリ３１３が接続されている。メモリコントローラ３１２は、フラッシュメモリ３１３を制御する。フラッシュメモリ３１３は、ＣＰＵ３０１が主記憶装置３０２上で実行するアプリケーションプログラム３１００、ＣＰＵ３０１に当該アプリケーションプログラム３１００の呼び出しなどの制御を行わせる制御プログラム３０００及び各種データを格納する。また、フラッシュメモリ３１３は、パッケージャ２００から受信したＷｅｂアプリ１２０、ＡＣＬ２３０やアプリ実行環境を構築するためのエンジンを格納する。
【００３２】
ネットワークコントローラ３０７は、図１に示したネットワーク４００を介してパッケージャ２００と接続されており、パッケージャ２００との間で、データの送受信を行う。
【００３３】
カメラ３１０は画像を撮像し、撮像した画像をフラッシュメモリ３１３に格納する。
【００３４】
電源３０９は、不図示の電源線を介してクライアント装置３００内の各ハードウェアに対して電力を供給する。
【００３５】
このようなハードウェアによって、クライアント装置３００の処理機能を実現することができる。
【００３６】
図５は、本実施形態における情報処理システムを示す図である。図５に示した各ブロックは、パッケージャ２００のＣＰＵ２０１がアプリケーション２１００を実行すること及びクライアント装置３００のＣＰＵ３０１がアプリケーション３１００を実行することによって実現される。
【００３７】
パッケージャ２００は、アプリ解析部２２０、解析ルール２１０、ＡＣＬ２３０及びＡＣＬ書き換え部２４０を有する。アプリ解析部２２０は、アプリケーションサーバ１００から受信したＷｅｂアプリ１２０を解析ルール２１０に基づいて解析し、ＡＣＬ２３０を生成する。解析ルール２１０は、Ｗｅｂアプリ１２０からＡＣＬ２３０に抽出すべきデバイスアクセスやサイトアクセスを記載したルールである。ＡＣＬ２３０は、アクセスを許可されたデバイスやサイトの一覧を記載したリストである。ＡＣＬ書き換え部２４０は、ダウンロード部３２０からの通知に基づいてＡＣＬ２３０を書き換える。なお、ダウンロード部３２０の詳細については後述する。
【００３８】
クライアント装置３００は、フラッシュメモリ３１３、ダウンロード部３２０、アプリ判定部３３０、ドライバ部３４０、危険度判定部３５０、ＡＣＬ書き換え部３６０、ワーニング表示部３７０及び実行部３９０を有する。
【００３９】
ダウンロード部３２０は、パッケージャ２００からＷｅｂアプリ１２０及びＡＣＬ２３０を受信する。アプリ判定部３３０は、ダウンロード部３２０が受信したＡＣＬ２３０を参照して、ダウンロード部３２０が受信したＷｅｂアプリ１２０がデバイスやサイトにアクセスを実施する際に、アクセス制限を実施する。ドライバ部３４０は、クライアント装置３００のインタフェースを制御する。なお、パッケージャ２００は、ＡＣＬ２３０の改竄を検知するために、ＡＣＬ２３０に暗号鍵等を適用しても良い。
【００４０】
図６に解析ルール２１０の一例を示す。解析ルール２１０は、オブジェクト２１０１、メソッド２１０２、抽出パラメータ２１０３及びＡＣＬ記述ルール２１０４を有する。オブジェクト２１０１は、アクセス制限をかけたいデバイスや外部サイトを示す。メソッド２１０２は、操作を示す。抽出パラメータ２１０３は、関数名から抽出する情報を示す。ＡＣＬ記述ルール２１０４は、ＡＣＬ２３０に追加する情報を示す。
【００４１】
図７を用いてアプリ解析部２２０がコードを抽出する処理を説明する。アプリ解析部２２０は、ＨＴＭＬ（ＨｙｐｅｒＴｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）、ｊａｖａｓｃｒｉｐｔで書かれたアプリのソースから特定のコードを抽出する。アプリ解析部２２０は、デバイスアクセスとして、ＷＡＣのｃａｍｅｒａオブジェクト、ｃａｐｔｕｒｅＩｍａｇｅを抽出する。本実施形態では、アプリ解析部２２０は、アプリのソースからｍａｉｎＣａｍｅｒａ.ｃａｐｔｕｒｅＩｍａｇｅ(ｏｎＣａｐｔｕｒｅＩｍａｇｅＳｕｃｃｅｓｓ, ｏｎＣａｐｔｕｒｅＩｍａｇｅＥｒｒｏｒ, ｃａｍｏｐｔｓ)を抽出する。また、アプリ解析部２２０は、外部サイトへのアクセスとして、ｊａｖａｓｃｒｉｐｔ  ＸＭＬＨｔｔｐＲｅｑｕｅｓｔの第二引数を抽出する。本実施形態では、アプリ解析部２２０は、アプリのソースからｈｔｔｐ:／／ｈｏｇｅｈｏｇｅ．ｃｏｍを抽出する。
【００４２】
図８にＡＣＬ２３０の一例を示す。アプリ解析部２２０は、解析ルール２１０に基づいて、図８に示した<ａｃｃｅｓｓ ｏｒｉｇｉｎ＝"ｈｔｔｐ:／／ｗｗｗ．ａａａｂｂｂ．ｃｏｍ／＊"／>、<ａｃｃｅｓｓ ｏｒｉｇｉｎ＝"ｈｔｔｐ:／／ｗｗｗ．ａａａｂｂｂ．ｃｏ．ｊｐ／＊"／>の部分に許可されたＵＲＬを記載する。また、アプリ解析部２２０は、解析ルール２１０に基づいて、図８に示した<ｆｅａｔｕｒｅ  ｎａｍｅ＝"ｈｔｔｐ:／／ｗａｃａｐｐｓ．ｎｅｔ／ａｐｉ／ｃａｍｅｒａ"／>の部分に許可されたデバイス名を記載する。
【００４３】
図９にパッケージャ２００の処理を示す。
【００４４】
Ｓ００１において、アプリ解析部２２０は、アプリケーションサーバ１００からＷｅｂアプリ１２０を受信する。アプリ解析部２２０は処理をＳ００２へ移行する。
【００４５】
Ｓ００２において、アプリ解析部２２０は、解析ルール２１０を参照する。アプリ解析部２２０は処理をＳ００３へ移行する。
【００４６】
Ｓ００３において、アプリ解析部２２０は、解析ルール２１０に基づいてＷｅｂアプリ１２０から特定コードを抽出する。具体的には、アプリ解析部２２０は、図７を用いて説明したソースから特定コードを抽出する。アプリ解析部２２０は処理をＳ００４へ移行する。
【００４７】
Ｓ００４において、アプリ解析部２２０は、抽出した特定コードに基づき、ＡＣＬ２３０にアクセスを許可するＵＲＬ名及びデバイス名を記載する。具体的には、アプリ解析部２２０は、図８を用いて説明したＡＣＬ２３０に許可されたＵＲＬ名及びデバイス名を記載する。アプリ解析部２２０は処理をＳ００５へ移行する。
【００４８】
Ｓ００５において、アプリ解析部２２０は、Ｗｅｂアプリ１２０、アクセスを許可するＵＲＬ名及びデバイス名を記載したＡＣＬ２３０をクライアント装置３００に送信する。アプリ解析部２２０は処理を終了する。
【００４９】
図１０にクライアント装置３００が有するＷＡＣ準拠のアプリ実行環境とアプリとの関係を示す。アプリ実行環境は、クライアント装置３００のフラッシュメモリ３１３に格納されたエンジンをＣＰＵ３０１が主記憶装置３０２で実行することで構築される。ＣＰＵ３０１が当該エンジンを主記憶装置３０２で実行することによって、ＣＰＵ３０１はＪａｖａ  Ｓｃｒｉｐｔエンジン５０８を処理し、Ｊａｖａ  Ｓｃｒｉｐｔで書かれたプログラムを実行する。ＣＰＵ３０１が当該エンジンを主記憶装置３０２で実行することによって、ＣＰＵ３０１はレンダリングエンジン５０６を処理し、ブラウザなどに組み込まれるＨＴＭＬを表示する。本実施形態では、ＣＰＵ３０１はレンダリングエンジン５０６を例えば、ネットワークアクセスなどが起こった時のイベントを取得するモジュールとして使用する。ＣＰＵ３０１が当該エンジンを主記憶装置３０２で実行することによって、ＣＰＵ３０１はデバイスＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）５０４を処理し、Ｗｅｂアプリ１２０をＷＡＣ２．０準拠のデバイスにアクセスさせる。なお、デバイスＡＰＩ５０４の上位層でＷｅｂアプリ１２０が実行される。ＣＰＵ３０１が当該エンジンを主記憶装置３０２で実行することによって、ＣＰＵ３０１はＡＣＬチェッカ５０２を処理し、ランタイムでＡＣＬ２３０をチェックする。
【００５０】
危険度判定部３５０は、プログラム上での端末の危険度判定を問い合わせることで、現時点での危険度判定結果を取得し、ダウンロード部３２０及びＡＣＬ書き換え部３６０に通知する。例えば、危険度判定部３５０は、ウイルス対策ベンダが公開する情報からアプリ名と何のリソースに影響があるのかを解析する。また、例えば、危険度判定部３５０は、サービス提供者が蓄積したウイルス対策関連の情報からアプリ名と何のリソースに影響があるのかを解析する。なお、ウイルス対策ベンダが公開する情報は、例えば、ダウンロード部３２０がネットワーク４００を介して当該情報を公開している外部サーバから取得して、フラッシュメモリ３１３に格納しておけば良い。また、サービス提供者が蓄積したウイルス対策関連の情報を予めフラッシュメモリ３１３に格納しておく構成にしても良い。
【００５１】
図１１に、危険度判定部３５０の危険度判定処理を示す。危険度判定部３５０は、アプリ名一覧テーブル６００からクライアント装置３００に格納されているアプリ名を取得する。本実施形態では、クライアント装置３００には、アプリ名「ＡＰＰ Ａ」、アプリ名「ＡＰＰ Ｂ」及びアプリ名「ＡＰＰ Ｃ」の３つのアプリケーションが格納されている。
【００５２】
危険度判定部３５０は、それぞれのアプリケーションをセキュリティベンダの公開情報やユーザ評価等からアプリの評判を検索する。危険度判定部３５０は、検索結果からリソース毎への影響状況を抽出する。危険度判定部３５０は、危険度判定予備テーブル７００を生成する。危険度判定予備テーブル７００は、リソース７０２、「ＡＰＰ Ａ」７０４、「ＡＰＰ Ｂ」７０６及び「ＡＰＰ Ｃ」７０８及び危険度判定結果７１０を有する。リソース７０２は、クライアント装置３００が有するリソースを示す。危険度判定部３５０は「ＡＰＰ Ａ」７０４乃至「ＡＰＰ Ｃ」７０８に、危険度判定部３５０が検索したアプリの評判に基づいて、アプリがリソースに危険な影響を及ぼす場合は「１」、アプリがリソースに危険な影響を及ぼさない場合は「０」を書き込む。危険度判定部３５０は危険度判定結果７１０に、「ＡＰＰ Ａ」７０４乃至「ＡＰＰ Ｃ」７０８のいずれかに「１」が書き込まれていた場合は、クライアント装置３００にて当該リソースを使用することは危険であると判定して「１」を書き込む。また、危険度判定部３５０は危険度判定結果７１０に、「ＡＰＰ Ａ」７０４乃至「ＡＰＰ Ｃ」７０８の全てに「０」が書き込まれていた場合は、クライアント装置３００にて当該リソースを使用することは安全であると判定して「０」を書き込む。
【００５３】
なお、危険度判定部３５０は、クライアント装置３００が搭載しているアプリ一覧と、その評判から、危険なリソースを判断しても良い。例えば、危険度判定部３５０は、あるアプリが危険な場合に、どのような攻撃がなされるのかについては、セキュリティベンダやインターネットでの情報が得られた場合に、危険なリソースについてはアクセスしないようにＡＣＬ２３０を修正する。また、危険度判定部３５０は、コンテキストに応じてＡＣＬ２３０を書き換えても良い。例えば、危険度判定部３５０は、クライアント装置３００保持者が会社に居る時には、カメラデバイスにアクセスできないように動的に書き換えたり、社外に居る時にはｆｉｒｅｗａｌｌを超えた会社内部の情報にアクセスできないように動的にＡＣＬ２３０を書き換えたりしても良い。
【００５４】
図１２に、危険度判定テーブル８００を示す。危険度判定部３５０は、プログラム上で危険度判定の呼び出しを行うことで、危険度判定テーブル８００を取得する。危険度判定テーブル８００は、リソース８０２と危険度判定結果８０４とを有する。危険度判定部３５０は、危険度判定テーブル８００からアプリ「ＡＰＰ Ａ」、「ＡＰＰ Ｂ」及び「ＡＰＰ Ｃ」が格納されているクライアント装置３００では、カメラを使用することは危険であると判定する。危険度判定テーブル８００からは、カメラから映像を勝手に撮影する悪意のあるアプリがクライアント装置３００にインストール済みの可能性があり、現時点ではカメラ利用は危険度が高いことが分かる。危険度判定部３５０は、ＡＣＬ書き換え部３６０に、ＡＣＬ２３０の書き換えを要求する。また、危険度判定部３５０は、ダウンロード部３２０を通じてパッケージャ２００のＡＣＬ書き換え部２４０に、ＡＣＬ２３０の書き換えを要求する。
【００５５】
図１３に更新後のＡＣＬ２３０の一例を示す。ＡＣＬ書き換え部３６０は危険度判定部３５０の要求に基づいて、図８に示したＡＣＬ２３０から<ｆｅａｔｕｒｅ ｎａｍｅ＝"ｈｔｔｐ:／／ｗａｃａｐｐｓ．ｎｅｔ／ａｐｉ／ｃａｍｅｒａ"／>を削除する。これによって、クライアント装置３００にて、アプリがカメラを使用することはできなくなり、セキュリティを高めることができる。同様に、パッケージャ２００のＡＣＬ書き換え部２４０に、ＡＣＬ２３０の書き換えを要求する。パッケージャ２００のＡＣＬ書き換え部２４０は危険度判定部３５０の要求に基づいて、ＡＣＬ２３０を更新する。ＡＣＬ書き換え部３６０はＡＣＬ２３０を更新するとともにワーニング表示部３７０にクライアント端末３００が危険な状態である旨を表示させる。
【００５６】
ワーニング表示部３７０は、ＡＣＬ書き換え部３６０からの命令に基づいてクライアント端末３００が危険な状態である旨を表示する。実行部３９０は、アプリケーションを実行する。
【００５７】
図１４に危険度判定部３５０の処理を示す。
【００５８】
Ｓ１０１において、危険度判定部３５０は、アプリ名一覧テーブル６００からクライアント装置３００に格納されているアプリ名を取得する。危険度判定部３５０は、処理をＳ１０２へ移行する。
【００５９】
Ｓ１０２において、危険度判定部３５０は、Ｓ１０１において取得したアプリ名に対応するアプリケーションの評判をセキュリティベンダの公開情報等から検索する。危険度判定部３５０は、処理をＳ１０３へ移行する。
【００６０】
Ｓ１０３において、危険度判定部３５０は、Ｓ１０２における検索結果に基づいてリソース毎への影響状況を抽出する。危険度判定部３５０は、処理をＳ１０４へ移行する。
【００６１】
Ｓ１０４において、危険度判定部３５０は、Ｓ１０３における抽出結果に基づいて危険度判定テーブル８００を生成する。危険度判定部３５０は、処理を終了する。
【００６２】
図１５にクライアント装置３００の処理を示す。
【００６３】
Ｓ２０１において、ダウンロード部３２０は、パッケージャ２００からＷｅｂアプリ１２０及びＡＣＬ２３０を受信する。ダウンロード部３２０は、受信したＷｅｂアプリ１２０及びＡＣＬ２３０をフラッシュメモリ３１３に格納する。ダウンロード部３２０は、処理をＳ２０２へ移行する。
【００６４】
Ｓ２０２において、危険度判定部３５０は、危険度判定呼び出しを行う。危険度判定部３５０は、処理をＳ２０３へ移行する。
【００６５】
Ｓ２０３において、危険度判定部３５０は、危険度判定テーブル８００を参照して、メモリが危険か否かを判定する。メモリが危険な場合、危険度判定部３５０は、処理をＳ２０４へ移行する。メモリが危険でない場合、危険度判定部３５０は、処理をＳ２０５へ移行する。
【００６６】
Ｓ２０４において、危険度判定部３５０は、ダウンロードしたＷｅｂアプリ１２０及びＡＣＬ２３０を削除する。危険度判定部３５０は、処理を終了する。
【００６７】
Ｓ２０５において、危険度判定部３５０は、危険度判定テーブル８００を参照して、既にＡＣＬ２３０で許可されているが、判定結果が危険なリソースが存在するか否かを判定する。判定結果が危険なリソースが存在する場合、危険度判定部３５０は、処理をＳ２０６へ移行する。判定結果が危険なリソースが存在しない場合、危険度判定部３５０は、処理をＳ２０７へ移行する。
【００６８】
Ｓ２０６において、危険度判定部３５０は、ＡＣＬ２３０から判定結果が危険なリソースを削除することで、ＡＣＬ２３０を更新する。危険度判定部３５０は、処理をＳ２０７へ移行する。
【００６９】
Ｓ２０７において、アプリ判定部３３０は、ダウンロード部３２０からＷｅｂアプリ１２０を受信して起動する。アプリ判定部３３０は、処理をＳ２０８へ移行する。
【００７０】
Ｓ２０８において、アプリ判定部３３０は、起動したアプリから新たなコードを読み込む。アプリ判定部３３０は、処理をＳ２０９へ移行する。
【００７１】
Ｓ２０９において、アプリ判定部３３０は、ステップＳ２０８において読み込んだコードがアプリの終了を示すコードか否かを判定する。読み込んだコードがアプリの終了を示すコードである場合、アプリ判定部３３０は、処理を終了する。一方、読み込んだコードがアプリの終了を示すコードでない場合、アプリ判定部３３０は、処理をＳ２０９へ移行する。
【００７２】
Ｓ２１０において、アプリ判定部３３０は、実行しようとしているコードが、デバイスへのアクセスまたは外部へのアクセスか否かを判定する。当該判定を満たす場合、アプリ判定部３３０は、処理をＳ２１１へ移行する。一方、当該判定を満たさない場合、アプリ判定部３３０は、処理をＳ２１３へ移行する。
【００７３】
Ｓ２１１において、アプリ判定部３３０は、更新されたＡＣＬ２３０を参照して、アクセスしようとしているデバイスまたはＵＲＬが許可されているか否かを判定する。アクセスしようとしているデバイスまたはＵＲＬが許可されている場合、アプリ判定部３３０は、処理をＳ２１３へ移行する。一方、アクセスしようとしているデバイスまたはＵＲＬが許可されていない場合、アプリ判定部３３０は、処理をＳ２１２へ移行する。
【００７４】
Ｓ２１３において、アプリ判定部３３０は、コードを実行する。アプリ判定部３３０は、処理をＳ２０８へ戻す。
【００７５】
Ｓ２１２において、アプリ判定部３３０は、アクセス制限を行うため許可されていないコードを不実行とする。アプリ判定部３３０は、処理をＳ２０８へ戻し、上記処理を繰り返す。
【００７６】
なお、クライアント装置３００の危険度はその時々で変わるため、メモリの危険度が下がったらアプリをクライアント装置３００にプッシュするような構成にしても良い。
【００７７】
また、例えば、クライアント装置３００においてＳＤカードの入れ替えがあった場合は、クライアント装置３００が危険な状態にあると判定するような構成にしても良い。
【００７８】
また、例えば、クライアント装置３００がクライアント装置３００の危険度に応じてアプリをパッケージャ２００からダウンロードするか否かを決定するような構成にしても良い。
【００７９】
また、例えば、危険度判定部３５０がＡＣＬ２３０を更新した場合、当該更新したＡＣＬ２３０をダウンロード部３２０を介してパッケージャに格納するような構成にしても良い。また、例えば、サービス提供者が蓄積したウイルス対策関連の情報をパッケージャ２００に格納しておく構成にしても良い。パッケージャ２００にて、当該情報を一元管理することで、更新作業が容易になる。
【００８０】
本実施形態によれば、通常通り、Ｗｅｂアプリはソースコードを上から順に実行される。実行中に、アプリ判定部３３０がＡＣＬ２３０に記載されるデバイスアクセスやネットワークアクセスが起こる度にＡＣＬ２３０で許可されているか否かをランタイムでチェックする。アプリ判定部３３０が許可されたコードは実行させ、許可されないコードは実行を止めることで、Ｗｅｂアプリは通常通り動作させながら、不正なデバイスアクセスやネットワークアクセスを防ぐことが可能となる。これによれば、Ｗｅｂサーバにて公開されているＷｅｂアプリを正規手段で入手し、これを逆アセンブリ、マルウェアを混入してアセンブリ、再パッケージングして公開する、という手順でマルウェアを仕込んだアプリがＷｅｂサーバにて公開されていても、アクセス制限がかかっているため、例えば、端末から個人情報を抜き取り、悪意あるユーザのサーバへ勝手に個人情報を送信されてしまうことを防止することができる。さらに、マルウェアを仕込まれたＷｅｂアプリであっても、正規アプリ部分だけを実行させながら、マルウェア部分を実行させないことができる。
【００８１】
また、本実施形態によれば、クライアント端末が危険な状態であれば、余計なダウンロードを発生しないようにして、電力消費量を抑えたり、ネットワーク転送量を削減したりすることができる。
【００８２】
また、パソコンのようにウイルスチェック機能を強化するとウイルスチェッカが重くなるため、スマートフォン向けには、軽く動かせるアプローチが必要であった。そこで、現状のようなアプリ名をチェックするレベルでのウイルスチェックを利用し、アプリ名から潜在的に問題となるリソースを特定して、アクセス制御を行うことで軽量な処理を実現することができる。
【００８３】
以上、本発明の例示的な実施の形態の情報処理システムについて説明したが、本発明は、具体的に開示された実施の形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【００８４】
１００  アプリケーションサーバ
１０１、２０１、３０１  ＣＰＵ
１０２、２０２、３０２  主記憶装置
１０３、２０３、３０３  システムコントローラ
１０４、２０４、３０４  バス
１０７、２０７、３０７  ネットワークコントローラ
１０９、２０９、３０９  電源
１１２、２１２  ディスクコントローラ
１１３、２１３  ハードディスク
１２０  Ｗｅｂアプリ
２００  パッケージャ
２１０  解析ルール
２２０  アプリ解析部
２３０  ＡＣＬ
２４０、３６０  ＡＣＬ書き換え部
３００  クライアント装置
３１２  メモリコントローラ
３１３  フラッシュメモリ
３２０  ダウンロード部
３３０  アプリ判定部
３４０  ドライバ部
３５０  危険度判定部
３７０  ワーニング表示部
３９０  実行部
４００  ネットワーク
５０２  ＡＣＬチェッカ
５０４  デバイスＡＰＩ
５０６  レンダリングエンジン
５０８  ＪａｖａＳｃｒｉｐｔ
６００  アプリ名一覧テーブル
７００  危険度判定予備テーブル
７０２、８０２  リソース
７０４  Ａｐｐ Ａ
７０６  Ａｐｐ Ｂ
７０８  Ａｐｐ Ｃ
７１０、８０４  危険度判定結果
８００  危険度判定テーブル
１０００、２０００、３０００  制御プログラム
１１００、２１００、３１００  アプリケーションプログラム
【図１】
0005765185.tif 000002
【図２】
0005765185.tif 000003
【図３】
0005765185.tif 000004
【図４】
0005765185.tif 000005
【図５】
0005765185.tif 000006
【図６】
0005765185.tif 000007
【図７】
0005765185.tif 000008
【図８】
0005765185.tif 000009
【図９】
0005765185.tif 000010
【図１０】
0005765185.tif 000011
【図１１】
0005765185.tif 000012
【図１２】
0005765185.tif 000013
【図１３】
0005765185.tif 000014
【図１４】
0005765185.tif 000015
【図１５】
0005765185.tif 000016