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