説明

制御プログラム、クライアント装置、制御システムの制御方法及びクライアント装置の制御方法

【課題】端末の危険度に応じて、セキュリティを維持してアプリを実行できる情報処理システムを提供する。
【解決手段】複数のコードからなるアプリケーションプログラムを受信し、該受信したアプリケーションプログラム内の複数のコードの実行許可情報を記憶する記憶部を有する中継装置に接続可能なクライアント装置300を制御する制御プログラムは、前記クライアント装置300に、前記中継装置から前記アプリケーションプログラム及び前記実行許可情報を受信し、複数のアプリケーションプログラムの評価情報を記憶する記憶部に記憶されている、受信した前記アプリケーションプログラムの評価情報に基づいて、受信した前記実行許可情報を更新し、前記更新された実行許可情報を参照して判断したコードの実行可否に基づき、前記アプリケーションプログラムを実行する処理を実行させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御プログラム、クライアント装置、制御システムの制御方法及びクライアント装置の制御方法に関する。
【背景技術】
【0002】
パーソナルコンピュータ並の性能を持ったモバイル端末であるスマートフォンの普及が進んでいる。また、3G/LTE/ホットスポットの充実等により、スマートフォンは常時ネットワークに接続できる環境が整っている。スマートフォンで実行可能なアプリケーションには、ネイティブアプリ、Webアプリ、Hybrid Mobile Applicationの3種類が存在する。
【0003】
ネイティブアプリは、実行する端末に特化したアプリである。端末のローカルリソースやデバイスを自由に扱えるため何でもできるが、端末に特化させるためインストールが必要になり、開発者にとっては端末毎にカスタマイズしたアプリを作成しなければならない。Webアプリは、ブラウザ上で実行されるため、端末にインストールする必要がなく、端末やOS(Operating System)に依存せずに実行出来る。しかし、Webアプリは、端末ではなく原則Webサーバ上で動作するものであり、ローカルリソースに対する操作は、JavaScript(登録商標)のFileAPIを使用したファイル操作など、ネイティブアプリに比べ出来ることが限られてしまう。Hybrid Mobile Applicationは、PhoneGapやWAC(Wholesale Applications Community)といった開発環境で作成することが出来るもので、WebアプリのようにOS依存なく実行することが可能で、かつネイティブアプリのようにローカルリソースやデバイスに自由にアクセスすることができる。
【0004】
上記したアプリのうち、Hybrid Mobile Applicationなどにおいては、端末に特化せず、かつ、端末がアクセス可能なデバイスへのアクセスも可能となっている。このため汎用的なアプリケーションで、端末に関するデバイスへのアクセスが可能となるというメリットがあるが、このようなアプリの実行時にセキュリティ問題は引き起こされる場合がある。主な要因の一つがマルウェアで、スマートフォンにおいて広がりを見せつつあり、マルウェアを含むアプリが増える傾向にある。スマートフォンにおいて、利用者がマルウェアを含むアプリをインストール、実行してしまう事例が増えている。アプリをプッシュするためには、相応のセキュリティ対策を施さなければユーザは安心してアプリを利用することができず、端末のセキュリティ状態を確認せずに端末にアプリを送り込むのは危険である。
【0005】
先行技術文献としては、下記のものがある。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2000−163269号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
本技術の開示での課題は、端末の危険度に応じて、セキュリティを維持してアプリを実行できる情報処理システムを提供することである。
【課題を解決するための手段】
【0008】
複数のコードからなるアプリケーションプログラムを受信し、該受信したアプリケーションプログラム内の複数のコードの実行許可情報を記憶する記憶部を有する中継装置に接続可能なクライアント装置を制御する制御プログラムは、前記クライアント装置に、前記中継装置から前記アプリケーションプログラム及び前記実行許可情報を受信し、複数のアプリケーションプログラムの評価情報を記憶する記憶部に記憶されている、受信した前記アプリケーションプログラムの評価情報に基づいて、受信した前記実行許可情報を更新し、前記更新された実行許可情報を参照して判断したコードの実行可否に基づき、前記アプリケーションプログラムを実行する処理を実行させる。
【発明の効果】
【0009】
本開示の技術の一側面によれば、リソース毎に危険な処理を避けた、きめ細かくセキュアなアプリを実行することができる。ゆえに、クライアント装置の危険度に応じ、セキュリティを維持してアプリを配信・実行することが可能となる。
【図面の簡単な説明】
【0010】
【図1】情報処理システムを示す図である。
【図2】アプリケーションサーバの構成を示すブロック図である。
【図3】パッケージャの構成を示すブロック図である。
【図4】クライアント装置の構成を示すブロック図である。
【図5】情報処理システムの詳細を示す図である。
【図6】解析ルールを示す図である。
【図7】コード抽出処理を示す図である。
【図8】ACLを示す図である。
【図9】パッケージャの処理を示すフローチャートである。
【図10】クライアント装置の実行環境を示す図である。
【図11】危険度判定処理を示す図である。
【図12】危険度判定テーブルを示す図である。
【図13】更新後のACLを示す図である。
【図14】危険度判定部の処理を示すフローチャートである。
【図15】クライアント装置の処理を示すフローチャートである。
【発明を実施するための形態】
【0011】
以下、本実施形態における情報処理システムについて説明する。
【0012】
図1は、本実施形態における情報処理システムを示す図である。情報処理システムは、複数のアプリケーションサーバ100、ネットワーク400、中継装置であるパッケージャ200及び複数のクライアント装置300を有する。複数のアプリケーションサーバ100、パッケージャ200及び複数のクライアント装置300は、ネットワーク400によって互いに接続される。
【0013】
アプリケーションサーバ100は、Webアプリを公開する。パッケージャ200は、Webアプリを解析して、ACL(Application Control List)を生成し、生成したACLとWebアプリとを対応付けて公開する。ACLについては後述する。クライアント装置300は、アプリを実行する。なお、アプリケーションサーバ100、パッケージャ200とクライアント装置300とからなる構成を当該情報処理システムの最小構成としても良い。
【0014】
図2を用いて、本実施形態におけるアプリケーションサーバ100について説明する。アプリケーションサーバ100は、CPU(Central Processing Unit)101、主記憶装置102、システムコントローラ103、バス104、ネットワークコントローラ107、電源109、ディスクコントローラ112及びハードディスク113を有する。アプリケーションサーバ100は、CPU101によって制御されている。
【0015】
CPU101及び主記憶装置102には、システムコントローラ103が接続されている。システムコントローラ103は、CPU101と主記憶装置102との間のデータ転送や、CPU101とバス104との間のデータ転送を制御する。さらに、システムコントローラ103には、バス104を介して、ネットワークコントローラ107及びディスクコントローラ112が接続されている。
【0016】
主記憶装置102には、CPU101に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、主記憶装置102には、CPU101による処理に必要な各種データが格納される。主記憶装置102には、例えば、RAM(Random Access Memory)が用いられる。
【0017】
ディスクコントローラ112には、ハードディスク113が接続されている。ディスクコントローラ112は、ハードディスク113を制御する。ハードディスク113は、CPU101が主記憶装置102上で実行するアプリケーションプログラム1100、CPU101に当該アプリケーションプログラム1100の呼び出しなどの制御を行わせる制御プログラム1000、公開するWebアプリ120及び各種データを格納する。
【0018】
ネットワークコントローラ107は、図1に示したネットワーク400を介してパッケージャ200と接続されており、パッケージャ200との間で、Webアプリ120及び各種データの送受信を行う。
【0019】
電源109は、不図示の電源線を介してアプリケーションサーバ100内の各ハードウェアに対して電力を供給する。
【0020】
このようなハードウェアによって、アプリケーションサーバ100の処理機能を実現することができる。
【0021】
図3を用いて、本実施形態におけるパッケージャ200について説明する。パッケージャ200は、CPU201、主記憶装置202、システムコントローラ203、バス204、ネットワークコントローラ207、電源209、ディスクコントローラ212及びハードディスク213を有する。パッケージャ200は、CPU201によって制御されている。
【0022】
CPU201及び主記憶装置202には、システムコントローラ203が接続されている。システムコントローラ203は、CPU201と主記憶装置202との間のデータ転送や、CPU201とバス204との間のデータ転送を制御する。さらに、システムコントローラ203には、バス204を介して、ネットワークコントローラ207及びディスクコントローラ212が接続されている。
【0023】
主記憶装置202には、CPU201に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、主記憶装置202には、CPU201による処理に必要な各種データが格納される。主記憶装置202には、例えば、RAMが用いられる。
【0024】
ディスクコントローラ212には、ハードディスク213が接続されている。ディスクコントローラ212は、ハードディスク213を制御する。ハードディスク213は、CPU201が主記憶装置202上で実行するアプリケーションプログラム2100、CPU201に当該アプリケーションプログラム2100の呼び出しなどの制御を行わせる制御プログラム2000、解析ルール210、ACL230(図示せず)及び各種データ(図示せず)を格納する。
【0025】
ネットワークコントローラ207は、図1に示したネットワーク400を介してアプリケーションサーバ100及びクライアント装置300と接続されており、アプリケーションサーバ100及びクライアント装置300との間で、データの送受信を行う。
【0026】
電源209は、不図示の電源線を介してパッケージャ200内の各ハードウェアに対して電力を供給する。
【0027】
このようなハードウェアによって、パッケージャ200の処理機能を実現することができる。
【0028】
図4を用いて、本実施形態におけるクライアント装置300について説明する。クライアント装置300は、CPU301、主記憶装置302、システムコントローラ303、バス304、ネットワークコントローラ307、電源309、カメラ310、メモリコントローラ312及びフラッシュメモリ313を有する。クライアント装置300は、CPU301によって制御されている。
【0029】
CPU301及び主記憶装置302には、システムコントローラ303が接続されている。システムコントローラ303は、CPU301と主記憶装置302との間のデータ転送や、CPU301とバス304との間のデータ転送を制御する。さらに、システムコントローラ303には、バス304を介して、ネットワークコントローラ307及びメモリコントローラ312が接続されている。
【0030】
主記憶装置302には、CPU301に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、主記憶装置302には、CPU301による処理に必要な各種データが格納される。主記憶装置302には、例えば、RAMが用いられる。
【0031】
メモリコントローラ312には、フラッシュメモリ313が接続されている。メモリコントローラ312は、フラッシュメモリ313を制御する。フラッシュメモリ313は、CPU301が主記憶装置302上で実行するアプリケーションプログラム3100、CPU301に当該アプリケーションプログラム3100の呼び出しなどの制御を行わせる制御プログラム3000及び各種データを格納する。また、フラッシュメモリ313は、パッケージャ200から受信したWebアプリ120、ACL230やアプリ実行環境を構築するためのエンジンを格納する。
【0032】
ネットワークコントローラ307は、図1に示したネットワーク400を介してパッケージャ200と接続されており、パッケージャ200との間で、データの送受信を行う。
【0033】
カメラ310は画像を撮像し、撮像した画像をフラッシュメモリ313に格納する。
【0034】
電源309は、不図示の電源線を介してクライアント装置300内の各ハードウェアに対して電力を供給する。
【0035】
このようなハードウェアによって、クライアント装置300の処理機能を実現することができる。
【0036】
図5は、本実施形態における情報処理システムを示す図である。図5に示した各ブロックは、パッケージャ200のCPU201がアプリケーション2100を実行すること及びクライアント装置300のCPU301がアプリケーション3100を実行することによって実現される。
【0037】
パッケージャ200は、アプリ解析部220、解析ルール210、ACL230及びACL書き換え部240を有する。アプリ解析部220は、アプリケーションサーバ100から受信したWebアプリ120を解析ルール210に基づいて解析し、ACL230を生成する。解析ルール210は、Webアプリ120からACL230に抽出すべきデバイスアクセスやサイトアクセスを記載したルールである。ACL230は、アクセスを許可されたデバイスやサイトの一覧を記載したリストである。ACL書き換え部240は、ダウンロード部320からの通知に基づいてACL230を書き換える。なお、ダウンロード部320の詳細については後述する。
【0038】
クライアント装置300は、フラッシュメモリ313、ダウンロード部320、アプリ判定部330、ドライバ部340、危険度判定部350、ACL書き換え部360、ワーニング表示部370及び実行部390を有する。
【0039】
ダウンロード部320は、パッケージャ200からWebアプリ120及びACL230を受信する。アプリ判定部330は、ダウンロード部320が受信したACL230を参照して、ダウンロード部320が受信したWebアプリ120がデバイスやサイトにアクセスを実施する際に、アクセス制限を実施する。ドライバ部340は、クライアント装置300のインタフェースを制御する。なお、パッケージャ200は、ACL230の改竄を検知するために、ACL230に暗号鍵等を適用しても良い。
【0040】
図6に解析ルール210の一例を示す。解析ルール210は、オブジェクト2101、メソッド2102、抽出パラメータ2103及びACL記述ルール2104を有する。オブジェクト2101は、アクセス制限をかけたいデバイスや外部サイトを示す。メソッド2102は、操作を示す。抽出パラメータ2103は、関数名から抽出する情報を示す。ACL記述ルール2104は、ACL230に追加する情報を示す。
【0041】
図7を用いてアプリ解析部220がコードを抽出する処理を説明する。アプリ解析部220は、HTML(HyperText Markup Language)、javascriptで書かれたアプリのソースから特定のコードを抽出する。アプリ解析部220は、デバイスアクセスとして、WACのcameraオブジェクト、captureImageを抽出する。本実施形態では、アプリ解析部220は、アプリのソースからmainCamera.captureImage(onCaptureImageSuccess, onCaptureImageError, camopts)を抽出する。また、アプリ解析部220は、外部サイトへのアクセスとして、javascript XMLHttpRequestの第二引数を抽出する。本実施形態では、アプリ解析部220は、アプリのソースからhttp://hogehoge.comを抽出する。
【0042】
図8にACL230の一例を示す。アプリ解析部220は、解析ルール210に基づいて、図8に示した<access origin="http://www.aaabbb.com/*"/>、<access origin="http://www.aaabbb.co.jp/*"/>の部分に許可されたURLを記載する。また、アプリ解析部220は、解析ルール210に基づいて、図8に示した<feature name="http://wacapps.net/api/camera"/>の部分に許可されたデバイス名を記載する。
【0043】
図9にパッケージャ200の処理を示す。
【0044】
S001において、アプリ解析部220は、アプリケーションサーバ100からWebアプリ120を受信する。アプリ解析部220は処理をS002へ移行する。
【0045】
S002において、アプリ解析部220は、解析ルール210を参照する。アプリ解析部220は処理をS003へ移行する。
【0046】
S003において、アプリ解析部220は、解析ルール210に基づいてWebアプリ120から特定コードを抽出する。具体的には、アプリ解析部220は、図7を用いて説明したソースから特定コードを抽出する。アプリ解析部220は処理をS004へ移行する。
【0047】
S004において、アプリ解析部220は、抽出した特定コードに基づき、ACL230にアクセスを許可するURL名及びデバイス名を記載する。具体的には、アプリ解析部220は、図8を用いて説明したACL230に許可されたURL名及びデバイス名を記載する。アプリ解析部220は処理をS005へ移行する。
【0048】
S005において、アプリ解析部220は、Webアプリ120、アクセスを許可するURL名及びデバイス名を記載したACL230をクライアント装置300に送信する。アプリ解析部220は処理を終了する。
【0049】
図10にクライアント装置300が有するWAC準拠のアプリ実行環境とアプリとの関係を示す。アプリ実行環境は、クライアント装置300のフラッシュメモリ313に格納されたエンジンをCPU301が主記憶装置302で実行することで構築される。CPU301が当該エンジンを主記憶装置302で実行することによって、CPU301はJava Scriptエンジン508を処理し、Java Scriptで書かれたプログラムを実行する。CPU301が当該エンジンを主記憶装置302で実行することによって、CPU301はレンダリングエンジン506を処理し、ブラウザなどに組み込まれるHTMLを表示する。本実施形態では、CPU301はレンダリングエンジン506を例えば、ネットワークアクセスなどが起こった時のイベントを取得するモジュールとして使用する。CPU301が当該エンジンを主記憶装置302で実行することによって、CPU301はデバイスAPI(Application Program Interface)504を処理し、Webアプリ120をWAC2.0準拠のデバイスにアクセスさせる。なお、デバイスAPI504の上位層でWebアプリ120が実行される。CPU301が当該エンジンを主記憶装置302で実行することによって、CPU301はACLチェッカ502を処理し、ランタイムでACL230をチェックする。
【0050】
危険度判定部350は、プログラム上での端末の危険度判定を問い合わせることで、現時点での危険度判定結果を取得し、ダウンロード部320及びACL書き換え部360に通知する。例えば、危険度判定部350は、ウイルス対策ベンダが公開する情報からアプリ名と何のリソースに影響があるのかを解析する。また、例えば、危険度判定部350は、サービス提供者が蓄積したウイルス対策関連の情報からアプリ名と何のリソースに影響があるのかを解析する。なお、ウイルス対策ベンダが公開する情報は、例えば、ダウンロード部320がネットワーク400を介して当該情報を公開している外部サーバから取得して、フラッシュメモリ313に格納しておけば良い。また、サービス提供者が蓄積したウイルス対策関連の情報を予めフラッシュメモリ313に格納しておく構成にしても良い。
【0051】
図11に、危険度判定部350の危険度判定処理を示す。危険度判定部350は、アプリ名一覧テーブル600からクライアント装置300に格納されているアプリ名を取得する。本実施形態では、クライアント装置300には、アプリ名「APP A」、アプリ名「APP B」及びアプリ名「APP C」の3つのアプリケーションが格納されている。
【0052】
危険度判定部350は、それぞれのアプリケーションをセキュリティベンダの公開情報やユーザ評価等からアプリの評判を検索する。危険度判定部350は、検索結果からリソース毎への影響状況を抽出する。危険度判定部350は、危険度判定予備テーブル700を生成する。危険度判定予備テーブル700は、リソース702、「APP A」704、「APP B」706及び「APP C」708及び危険度判定結果710を有する。リソース702は、クライアント装置300が有するリソースを示す。危険度判定部350は「APP A」704乃至「APP C」708に、危険度判定部350が検索したアプリの評判に基づいて、アプリがリソースに危険な影響を及ぼす場合は「1」、アプリがリソースに危険な影響を及ぼさない場合は「0」を書き込む。危険度判定部350は危険度判定結果710に、「APP A」704乃至「APP C」708のいずれかに「1」が書き込まれていた場合は、クライアント装置300にて当該リソースを使用することは危険であると判定して「1」を書き込む。また、危険度判定部350は危険度判定結果710に、「APP A」704乃至「APP C」708の全てに「0」が書き込まれていた場合は、クライアント装置300にて当該リソースを使用することは安全であると判定して「0」を書き込む。
【0053】
なお、危険度判定部350は、クライアント装置300が搭載しているアプリ一覧と、その評判から、危険なリソースを判断しても良い。例えば、危険度判定部350は、あるアプリが危険な場合に、どのような攻撃がなされるのかについては、セキュリティベンダやインターネットでの情報が得られた場合に、危険なリソースについてはアクセスしないようにACL230を修正する。また、危険度判定部350は、コンテキストに応じてACL230を書き換えても良い。例えば、危険度判定部350は、クライアント装置300保持者が会社に居る時には、カメラデバイスにアクセスできないように動的に書き換えたり、社外に居る時にはfirewallを超えた会社内部の情報にアクセスできないように動的にACL230を書き換えたりしても良い。
【0054】
図12に、危険度判定テーブル800を示す。危険度判定部350は、プログラム上で危険度判定の呼び出しを行うことで、危険度判定テーブル800を取得する。危険度判定テーブル800は、リソース802と危険度判定結果804とを有する。危険度判定部350は、危険度判定テーブル800からアプリ「APP A」、「APP B」及び「APP C」が格納されているクライアント装置300では、カメラを使用することは危険であると判定する。危険度判定テーブル800からは、カメラから映像を勝手に撮影する悪意のあるアプリがクライアント装置300にインストール済みの可能性があり、現時点ではカメラ利用は危険度が高いことが分かる。危険度判定部350は、ACL書き換え部360に、ACL230の書き換えを要求する。また、危険度判定部350は、ダウンロード部320を通じてパッケージャ200のACL書き換え部240に、ACL230の書き換えを要求する。
【0055】
図13に更新後のACL230の一例を示す。ACL書き換え部360は危険度判定部350の要求に基づいて、図8に示したACL230から<feature name="http://wacapps.net/api/camera"/>を削除する。これによって、クライアント装置300にて、アプリがカメラを使用することはできなくなり、セキュリティを高めることができる。同様に、パッケージャ200のACL書き換え部240に、ACL230の書き換えを要求する。パッケージャ200のACL書き換え部240は危険度判定部350の要求に基づいて、ACL230を更新する。ACL書き換え部360はACL230を更新するとともにワーニング表示部370にクライアント端末300が危険な状態である旨を表示させる。
【0056】
ワーニング表示部370は、ACL書き換え部360からの命令に基づいてクライアント端末300が危険な状態である旨を表示する。実行部390は、アプリケーションを実行する。
【0057】
図14に危険度判定部350の処理を示す。
【0058】
S101において、危険度判定部350は、アプリ名一覧テーブル600からクライアント装置300に格納されているアプリ名を取得する。危険度判定部350は、処理をS102へ移行する。
【0059】
S102において、危険度判定部350は、S101において取得したアプリ名に対応するアプリケーションの評判をセキュリティベンダの公開情報等から検索する。危険度判定部350は、処理をS103へ移行する。
【0060】
S103において、危険度判定部350は、S102における検索結果に基づいてリソース毎への影響状況を抽出する。危険度判定部350は、処理をS104へ移行する。
【0061】
S104において、危険度判定部350は、S103における抽出結果に基づいて危険度判定テーブル800を生成する。危険度判定部350は、処理を終了する。
【0062】
図15にクライアント装置300の処理を示す。
【0063】
S201において、ダウンロード部320は、パッケージャ200からWebアプリ120及びACL230を受信する。ダウンロード部320は、受信したWebアプリ120及びACL230をフラッシュメモリ313に格納する。ダウンロード部320は、処理をS202へ移行する。
【0064】
S202において、危険度判定部350は、危険度判定呼び出しを行う。危険度判定部350は、処理をS203へ移行する。
【0065】
S203において、危険度判定部350は、危険度判定テーブル800を参照して、メモリが危険か否かを判定する。メモリが危険な場合、危険度判定部350は、処理をS204へ移行する。メモリが危険でない場合、危険度判定部350は、処理をS205へ移行する。
【0066】
S204において、危険度判定部350は、ダウンロードしたWebアプリ120及びACL230を削除する。危険度判定部350は、処理を終了する。
【0067】
S205において、危険度判定部350は、危険度判定テーブル800を参照して、既にACL230で許可されているが、判定結果が危険なリソースが存在するか否かを判定する。判定結果が危険なリソースが存在する場合、危険度判定部350は、処理をS206へ移行する。判定結果が危険なリソースが存在しない場合、危険度判定部350は、処理をS207へ移行する。
【0068】
S206において、危険度判定部350は、ACL230から判定結果が危険なリソースを削除することで、ACL230を更新する。危険度判定部350は、処理をS207へ移行する。
【0069】
S207において、アプリ判定部330は、ダウンロード部320からWebアプリ120を受信して起動する。アプリ判定部330は、処理をS208へ移行する。
【0070】
S208において、アプリ判定部330は、起動したアプリから新たなコードを読み込む。アプリ判定部330は、処理をS209へ移行する。
【0071】
S209において、アプリ判定部330は、ステップS208において読み込んだコードがアプリの終了を示すコードか否かを判定する。読み込んだコードがアプリの終了を示すコードである場合、アプリ判定部330は、処理を終了する。一方、読み込んだコードがアプリの終了を示すコードでない場合、アプリ判定部330は、処理をS209へ移行する。
【0072】
S210において、アプリ判定部330は、実行しようとしているコードが、デバイスへのアクセスまたは外部へのアクセスか否かを判定する。当該判定を満たす場合、アプリ判定部330は、処理をS211へ移行する。一方、当該判定を満たさない場合、アプリ判定部330は、処理をS213へ移行する。
【0073】
S211において、アプリ判定部330は、更新されたACL230を参照して、アクセスしようとしているデバイスまたはURLが許可されているか否かを判定する。アクセスしようとしているデバイスまたはURLが許可されている場合、アプリ判定部330は、処理をS213へ移行する。一方、アクセスしようとしているデバイスまたはURLが許可されていない場合、アプリ判定部330は、処理をS212へ移行する。
【0074】
S213において、アプリ判定部330は、コードを実行する。アプリ判定部330は、処理をS208へ戻す。
【0075】
S212において、アプリ判定部330は、アクセス制限を行うため許可されていないコードを不実行とする。アプリ判定部330は、処理をS208へ戻し、上記処理を繰り返す。
【0076】
なお、クライアント装置300の危険度はその時々で変わるため、メモリの危険度が下がったらアプリをクライアント装置300にプッシュするような構成にしても良い。
【0077】
また、例えば、クライアント装置300においてSDカードの入れ替えがあった場合は、クライアント装置300が危険な状態にあると判定するような構成にしても良い。
【0078】
また、例えば、クライアント装置300がクライアント装置300の危険度に応じてアプリをパッケージャ200からダウンロードするか否かを決定するような構成にしても良い。
【0079】
また、例えば、危険度判定部350がACL230を更新した場合、当該更新したACL230をダウンロード部320を介してパッケージャに格納するような構成にしても良い。また、例えば、サービス提供者が蓄積したウイルス対策関連の情報をパッケージャ200に格納しておく構成にしても良い。パッケージャ200にて、当該情報を一元管理することで、更新作業が容易になる。
【0080】
本実施形態によれば、通常通り、Webアプリはソースコードを上から順に実行される。実行中に、アプリ判定部330がACL230に記載されるデバイスアクセスやネットワークアクセスが起こる度にACL230で許可されているか否かをランタイムでチェックする。アプリ判定部330が許可されたコードは実行させ、許可されないコードは実行を止めることで、Webアプリは通常通り動作させながら、不正なデバイスアクセスやネットワークアクセスを防ぐことが可能となる。これによれば、Webサーバにて公開されているWebアプリを正規手段で入手し、これを逆アセンブリ、マルウェアを混入してアセンブリ、再パッケージングして公開する、という手順でマルウェアを仕込んだアプリがWebサーバにて公開されていても、アクセス制限がかかっているため、例えば、端末から個人情報を抜き取り、悪意あるユーザのサーバへ勝手に個人情報を送信されてしまうことを防止することができる。さらに、マルウェアを仕込まれたWebアプリであっても、正規アプリ部分だけを実行させながら、マルウェア部分を実行させないことができる。
【0081】
また、本実施形態によれば、クライアント端末が危険な状態であれば、余計なダウンロードを発生しないようにして、電力消費量を抑えたり、ネットワーク転送量を削減したりすることができる。
【0082】
また、パソコンのようにウイルスチェック機能を強化するとウイルスチェッカが重くなるため、スマートフォン向けには、軽く動かせるアプローチが必要であった。そこで、現状のようなアプリ名をチェックするレベルでのウイルスチェックを利用し、アプリ名から潜在的に問題となるリソースを特定して、アクセス制御を行うことで軽量な処理を実現することができる。
【0083】
以上、本発明の例示的な実施の形態の情報処理システムについて説明したが、本発明は、具体的に開示された実施の形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【0084】
100 アプリケーションサーバ
101、201、301 CPU
102、202、302 主記憶装置
103、203、303 システムコントローラ
104、204、304 バス
107、207、307 ネットワークコントローラ
109、209、309 電源
112、212 ディスクコントローラ
113、213 ハードディスク
120 Webアプリ
200 パッケージャ
210 解析ルール
220 アプリ解析部
230 ACL
240、360 ACL書き換え部
300 クライアント装置
312 メモリコントローラ
313 フラッシュメモリ
320 ダウンロード部
330 アプリ判定部
340 ドライバ部
350 危険度判定部
370 ワーニング表示部
390 実行部
400 ネットワーク
502 ACLチェッカ
504 デバイスAPI
506 レンダリングエンジン
508 JavaScript
600 アプリ名一覧テーブル
700 危険度判定予備テーブル
702、802 リソース
704 App A
706 App B
708 App C
710、804 危険度判定結果
800 危険度判定テーブル
1000、2000、3000 制御プログラム
1100、2100、3100 アプリケーションプログラム

【特許請求の範囲】
【請求項1】
複数のコードからなるアプリケーションプログラムを受信し、該受信したアプリケーションプログラム内の複数のコードの実行許可情報を記憶する記憶部を有する中継装置に接続可能なクライアント装置に、
前記中継装置から前記アプリケーションプログラム及び前記実行許可情報を受信し、
複数のアプリケーションプログラムの評価情報を記憶する記憶部に記憶されている、受信した前記アプリケーションプログラムの評価情報に基づいて、受信した前記実行許可情報を更新し、
前記更新された実行許可情報を参照して判断したコードの実行可否に基づき、前記アプリケーションプログラムを実行する、
処理を実行させることを特徴とする制御プログラム。
【請求項2】
前記クライアント装置は、前記更新された実行許可情報を参照し、前記受信したアプリケーションプログラムに含まれる複数のコードのうち前記クライアント装置が有する所定の機能へのアクセスを行うコードの実行可否を判断することを特徴とする請求項1記載の制御プログラム。
【請求項3】
前記クライアント装置は、前記更新された実行許可情報を参照し、前記受信したアプリケーションに含まれる複数のコードのうち前記クライアント装置が外部装置へのアクセスを行うコードの実行可否を判断することを特徴とする請求項1記載の制御プログラム。
【請求項4】
複数のコードからなるアプリケーションプログラムを受信し、該受信したアプリケーションプログラム内の複数のコードの実行許可情報を記憶する記憶部を有する中継装置に接続可能なクライアント装置であって、
前記中継装置から前記アプリケーションプログラム及び前記実行許可情報を受信する受信部と、
複数のアプリケーションプログラムの評価情報を記憶する記憶部に記憶されている、受信した前記アプリケーションプログラムの評価情報に基づいて、受信した前記実行許可情報を更新する更新部と、
前記更新された実行許可情報を参照して判断したコードの実行可否に基づき、前記アプリケーションプログラムを実行する実行部と、
を有することを特徴とするクライアント装置。
【請求項5】
複数のコードからなるアプリケーションプログラムを受信する中継装置と、該中継装置が受信したアプリケーションプログラムを該中継装置より受信し実行するクライアント装置とを有する制御システムの制御方法であって、
前記中継装置は、
複数のコードからなるアプリケーションプログラムを蓄積するアプリケーションサーバから前記アプリケーションプログラムを受信し、
該受信したアプリケーションプログラム内の複数のコードの実行許可情報を記憶し、
記憶している前記アプリケーションプログラムと、前記実行許可情報とを前記クライアント装置へ送信し、
前記クライアント装置は、
前記中継装置から前記アプリケーションプログラム及び前記実行許可情報を受信し、
複数のアプリケーションプログラムの評価情報を記憶する記憶部に記憶されている、受信した前記アプリケーションプログラムの評価情報に基づいて、受信した前記実行許可情報を更新し、
前記更新された実行許可情報を参照して判断したコードの実行可否に基づき、前記アプリケーションプログラムを実行する、
ことを特徴とする制御システムの制御方法。
【請求項6】
複数のコードからなるアプリケーションプログラムを受信し、該受信したアプリケーションプログラム内の複数のコードの実行許可情報を記憶する記憶部を有する中継装置に接続可能なクライアント装置を制御する制御方法において、
前記クライアント装置が、
前記中継装置から前記アプリケーションプログラム及び前記実行許可情報を受信し、
複数のアプリケーションプログラムの評価情報を記憶する記憶部に記憶されている、受信した前記アプリケーションプログラムの評価情報に基づいて、受信した前記実行許可情報を更新し、
前記更新された実行許可情報を参照して判断したコードの実行可否に基づき、前記アプリケーションプログラムを実行する、
ことを特徴とするクライアント装置の制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2013−92907(P2013−92907A)
【公開日】平成25年5月16日(2013.5.16)
【国際特許分類】
【出願番号】特願2011−234425(P2011−234425)
【出願日】平成23年10月25日(2011.10.25)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】