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

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

Info

Publication number
JP5765185B2
JP5765185B2 JP2011234425A JP2011234425A JP5765185B2 JP 5765185 B2 JP5765185 B2 JP 5765185B2 JP 2011234425 A JP2011234425 A JP 2011234425A JP 2011234425 A JP2011234425 A JP 2011234425A JP 5765185 B2 JP5765185 B2 JP 5765185B2
Authority
JP
Japan
Prior art keywords
application program
application
permission information
execution permission
client device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2011234425A
Other languages
English (en)
Other versions
JP2013092907A (ja
Inventor
和明 二村
和明 二村
伊藤 栄信
栄信 伊藤
洋介 中村
洋介 中村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2011234425A priority Critical patent/JP5765185B2/ja
Priority to US13/606,313 priority patent/US9251362B2/en
Publication of JP2013092907A publication Critical patent/JP2013092907A/ja
Application granted granted Critical
Publication of JP5765185B2 publication Critical patent/JP5765185B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は、制御プログラム、クライアント装置、制御システムの制御方法及びクライアント装置の制御方法に関する。
パーソナルコンピュータ並の性能を持ったモバイル端末であるスマートフォンの普及が進んでいる。また、3G/LTE/ホットスポットの充実等により、スマートフォンは常時ネットワークに接続できる環境が整っている。スマートフォンで実行可能なアプリケーションには、ネイティブアプリ、Webアプリ、Hybrid Mobile Applicationの3種類が存在する。
ネイティブアプリは、実行する端末に特化したアプリである。端末のローカルリソースやデバイスを自由に扱えるため何でもできるが、端末に特化させるためインストールが必要になり、開発者にとっては端末毎にカスタマイズしたアプリを作成しなければならない。Webアプリは、ブラウザ上で実行されるため、端末にインストールする必要がなく、端末やOS(Operating System)に依存せずに実行出来る。しかし、Webアプリは、端末ではなく原則Webサーバ上で動作するものであり、ローカルリソースに対する操作は、JavaScript(登録商標)のFileAPIを使用したファイル操作など、ネイティブアプリに比べ出来ることが限られてしまう。Hybrid Mobile Applicationは、PhoneGapやWAC(Wholesale Applications Community)といった開発環境で作成することが出来るもので、WebアプリのようにOS依存なく実行することが可能で、かつネイティブアプリのようにローカルリソースやデバイスに自由にアクセスすることができる。
上記したアプリのうち、Hybrid Mobile Applicationなどにおいては、端末に特化せず、かつ、端末がアクセス可能なデバイスへのアクセスも可能となっている。このため汎用的なアプリケーションで、端末に関するデバイスへのアクセスが可能となるというメリットがあるが、このようなアプリの実行時にセキュリティ問題は引き起こされる場合がある。主な要因の一つがマルウェアで、スマートフォンにおいて広がりを見せつつあり、マルウェアを含むアプリが増える傾向にある。スマートフォンにおいて、利用者がマルウェアを含むアプリをインストール、実行してしまう事例が増えている。アプリをプッシュするためには、相応のセキュリティ対策を施さなければユーザは安心してアプリを利用することができず、端末のセキュリティ状態を確認せずに端末にアプリを送り込むのは危険である。
先行技術文献としては、下記のものがある。
特開2000−163269号公報
本技術の開示での課題は、端末の危険度に応じて、セキュリティを維持してアプリを実行できる情報処理システムを提供することである。
複数のコードからなるアプリケーションプログラムを受信し、該受信したアプリケーションプログラム内の複数のコードの実行許可情報を記憶する記憶部を有する中継装置に接続可能なクライアント装置を制御する制御プログラムは、前記クライアント装置に、前記中継装置から前記アプリケーションプログラム及び前記実行許可情報を受信し、複数のアプリケーションプログラムの評価情報を記憶する記憶部に記憶されている、受信した前記アプリケーションプログラムの評価情報に基づいて、受信した前記実行許可情報を更新し、前記更新された実行許可情報を参照して判断したコードの実行可否に基づき、前記アプリケーションプログラムを実行する処理を実行させる。
本開示の技術の一側面によれば、リソース毎に危険な処理を避けた、きめ細かくセキュアなアプリを実行することができる。ゆえに、クライアント装置の危険度に応じ、セキュリティを維持してアプリを配信・実行することが可能となる。
情報処理システムを示す図である。 アプリケーションサーバの構成を示すブロック図である。 パッケージャの構成を示すブロック図である。 クライアント装置の構成を示すブロック図である。 情報処理システムの詳細を示す図である。 解析ルールを示す図である。 コード抽出処理を示す図である。 ACLを示す図である。 パッケージャの処理を示すフローチャートである。 クライアント装置の実行環境を示す図である。 危険度判定処理を示す図である。 危険度判定テーブルを示す図である。 更新後のACLを示す図である。 危険度判定部の処理を示すフローチャートである。 クライアント装置の処理を示すフローチャートである。
以下、本実施形態における情報処理システムについて説明する。
図1は、本実施形態における情報処理システムを示す図である。情報処理システムは、複数のアプリケーションサーバ100、ネットワーク400、中継装置であるパッケージャ200及び複数のクライアント装置300を有する。複数のアプリケーションサーバ100、パッケージャ200及び複数のクライアント装置300は、ネットワーク400によって互いに接続される。
アプリケーションサーバ100は、Webアプリを公開する。パッケージャ200は、Webアプリを解析して、ACL(Application Control List)を生成し、生成したACLとWebアプリとを対応付けて公開する。ACLについては後述する。クライアント装置300は、アプリを実行する。なお、アプリケーションサーバ100、パッケージャ200とクライアント装置300とからなる構成を当該情報処理システムの最小構成としても良い。
図2を用いて、本実施形態におけるアプリケーションサーバ100について説明する。アプリケーションサーバ100は、CPU(Central Processing Unit)101、主記憶装置102、システムコントローラ103、バス104、ネットワークコントローラ107、電源109、ディスクコントローラ112及びハードディスク113を有する。アプリケーションサーバ100は、CPU101によって制御されている。
CPU101及び主記憶装置102には、システムコントローラ103が接続されている。システムコントローラ103は、CPU101と主記憶装置102との間のデータ転送や、CPU101とバス104との間のデータ転送を制御する。さらに、システムコントローラ103には、バス104を介して、ネットワークコントローラ107及びディスクコントローラ112が接続されている。
主記憶装置102には、CPU101に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、主記憶装置102には、CPU101による処理に必要な各種データが格納される。主記憶装置102には、例えば、RAM(Random Access Memory)が用いられる。
ディスクコントローラ112には、ハードディスク113が接続されている。ディスクコントローラ112は、ハードディスク113を制御する。ハードディスク113は、CPU101が主記憶装置102上で実行するアプリケーションプログラム1100、CPU101に当該アプリケーションプログラム1100の呼び出しなどの制御を行わせる制御プログラム1000、公開するWebアプリ120及び各種データを格納する。
ネットワークコントローラ107は、図1に示したネットワーク400を介してパッケージャ200と接続されており、パッケージャ200との間で、Webアプリ120及び各種データの送受信を行う。
電源109は、不図示の電源線を介してアプリケーションサーバ100内の各ハードウェアに対して電力を供給する。
このようなハードウェアによって、アプリケーションサーバ100の処理機能を実現することができる。
図3を用いて、本実施形態におけるパッケージャ200について説明する。パッケージャ200は、CPU201、主記憶装置202、システムコントローラ203、バス204、ネットワークコントローラ207、電源209、ディスクコントローラ212及びハードディスク213を有する。パッケージャ200は、CPU201によって制御されている。
CPU201及び主記憶装置202には、システムコントローラ203が接続されている。システムコントローラ203は、CPU201と主記憶装置202との間のデータ転送や、CPU201とバス204との間のデータ転送を制御する。さらに、システムコントローラ203には、バス204を介して、ネットワークコントローラ207及びディスクコントローラ212が接続されている。
主記憶装置202には、CPU201に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、主記憶装置202には、CPU201による処理に必要な各種データが格納される。主記憶装置202には、例えば、RAMが用いられる。
ディスクコントローラ212には、ハードディスク213が接続されている。ディスクコントローラ212は、ハードディスク213を制御する。ハードディスク213は、CPU201が主記憶装置202上で実行するアプリケーションプログラム2100、CPU201に当該アプリケーションプログラム2100の呼び出しなどの制御を行わせる制御プログラム2000、解析ルール210、ACL230(図示せず)及び各種データ(図示せず)を格納する。
ネットワークコントローラ207は、図1に示したネットワーク400を介してアプリケーションサーバ100及びクライアント装置300と接続されており、アプリケーションサーバ100及びクライアント装置300との間で、データの送受信を行う。
電源209は、不図示の電源線を介してパッケージャ200内の各ハードウェアに対して電力を供給する。
このようなハードウェアによって、パッケージャ200の処理機能を実現することができる。
図4を用いて、本実施形態におけるクライアント装置300について説明する。クライアント装置300は、CPU301、主記憶装置302、システムコントローラ303、バス304、ネットワークコントローラ307、電源309、カメラ310、メモリコントローラ312及びフラッシュメモリ313を有する。クライアント装置300は、CPU301によって制御されている。
CPU301及び主記憶装置302には、システムコントローラ303が接続されている。システムコントローラ303は、CPU301と主記憶装置302との間のデータ転送や、CPU301とバス304との間のデータ転送を制御する。さらに、システムコントローラ303には、バス304を介して、ネットワークコントローラ307及びメモリコントローラ312が接続されている。
主記憶装置302には、CPU301に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、主記憶装置302には、CPU301による処理に必要な各種データが格納される。主記憶装置302には、例えば、RAMが用いられる。
メモリコントローラ312には、フラッシュメモリ313が接続されている。メモリコントローラ312は、フラッシュメモリ313を制御する。フラッシュメモリ313は、CPU301が主記憶装置302上で実行するアプリケーションプログラム3100、CPU301に当該アプリケーションプログラム3100の呼び出しなどの制御を行わせる制御プログラム3000及び各種データを格納する。また、フラッシュメモリ313は、パッケージャ200から受信したWebアプリ120、ACL230やアプリ実行環境を構築するためのエンジンを格納する。
ネットワークコントローラ307は、図1に示したネットワーク400を介してパッケージャ200と接続されており、パッケージャ200との間で、データの送受信を行う。
カメラ310は画像を撮像し、撮像した画像をフラッシュメモリ313に格納する。
電源309は、不図示の電源線を介してクライアント装置300内の各ハードウェアに対して電力を供給する。
このようなハードウェアによって、クライアント装置300の処理機能を実現することができる。
図5は、本実施形態における情報処理システムを示す図である。図5に示した各ブロックは、パッケージャ200のCPU201がアプリケーション2100を実行すること及びクライアント装置300のCPU301がアプリケーション3100を実行することによって実現される。
パッケージャ200は、アプリ解析部220、解析ルール210、ACL230及びACL書き換え部240を有する。アプリ解析部220は、アプリケーションサーバ100から受信したWebアプリ120を解析ルール210に基づいて解析し、ACL230を生成する。解析ルール210は、Webアプリ120からACL230に抽出すべきデバイスアクセスやサイトアクセスを記載したルールである。ACL230は、アクセスを許可されたデバイスやサイトの一覧を記載したリストである。ACL書き換え部240は、ダウンロード部320からの通知に基づいてACL230を書き換える。なお、ダウンロード部320の詳細については後述する。
クライアント装置300は、フラッシュメモリ313、ダウンロード部320、アプリ判定部330、ドライバ部340、危険度判定部350、ACL書き換え部360、ワーニング表示部370及び実行部390を有する。
ダウンロード部320は、パッケージャ200からWebアプリ120及びACL230を受信する。アプリ判定部330は、ダウンロード部320が受信したACL230を参照して、ダウンロード部320が受信したWebアプリ120がデバイスやサイトにアクセスを実施する際に、アクセス制限を実施する。ドライバ部340は、クライアント装置300のインタフェースを制御する。なお、パッケージャ200は、ACL230の改竄を検知するために、ACL230に暗号鍵等を適用しても良い。
図6に解析ルール210の一例を示す。解析ルール210は、オブジェクト2101、メソッド2102、抽出パラメータ2103及びACL記述ルール2104を有する。オブジェクト2101は、アクセス制限をかけたいデバイスや外部サイトを示す。メソッド2102は、操作を示す。抽出パラメータ2103は、関数名から抽出する情報を示す。ACL記述ルール2104は、ACL230に追加する情報を示す。
図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を抽出する。
図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"/>の部分に許可されたデバイス名を記載する。
図9にパッケージャ200の処理を示す。
S001において、アプリ解析部220は、アプリケーションサーバ100からWebアプリ120を受信する。アプリ解析部220は処理をS002へ移行する。
S002において、アプリ解析部220は、解析ルール210を参照する。アプリ解析部220は処理をS003へ移行する。
S003において、アプリ解析部220は、解析ルール210に基づいてWebアプリ120から特定コードを抽出する。具体的には、アプリ解析部220は、図7を用いて説明したソースから特定コードを抽出する。アプリ解析部220は処理をS004へ移行する。
S004において、アプリ解析部220は、抽出した特定コードに基づき、ACL230にアクセスを許可するURL名及びデバイス名を記載する。具体的には、アプリ解析部220は、図8を用いて説明したACL230に許可されたURL名及びデバイス名を記載する。アプリ解析部220は処理をS005へ移行する。
S005において、アプリ解析部220は、Webアプリ120、アクセスを許可するURL名及びデバイス名を記載したACL230をクライアント装置300に送信する。アプリ解析部220は処理を終了する。
図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をチェックする。
危険度判定部350は、プログラム上での端末の危険度判定を問い合わせることで、現時点での危険度判定結果を取得し、ダウンロード部320及びACL書き換え部360に通知する。例えば、危険度判定部350は、ウイルス対策ベンダが公開する情報からアプリ名と何のリソースに影響があるのかを解析する。また、例えば、危険度判定部350は、サービス提供者が蓄積したウイルス対策関連の情報からアプリ名と何のリソースに影響があるのかを解析する。なお、ウイルス対策ベンダが公開する情報は、例えば、ダウンロード部320がネットワーク400を介して当該情報を公開している外部サーバから取得して、フラッシュメモリ313に格納しておけば良い。また、サービス提供者が蓄積したウイルス対策関連の情報を予めフラッシュメモリ313に格納しておく構成にしても良い。
図11に、危険度判定部350の危険度判定処理を示す。危険度判定部350は、アプリ名一覧テーブル600からクライアント装置300に格納されているアプリ名を取得する。本実施形態では、クライアント装置300には、アプリ名「APP A」、アプリ名「APP B」及びアプリ名「APP C」の3つのアプリケーションが格納されている。
危険度判定部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」を書き込む。
なお、危険度判定部350は、クライアント装置300が搭載しているアプリ一覧と、その評判から、危険なリソースを判断しても良い。例えば、危険度判定部350は、あるアプリが危険な場合に、どのような攻撃がなされるのかについては、セキュリティベンダやインターネットでの情報が得られた場合に、危険なリソースについてはアクセスしないようにACL230を修正する。また、危険度判定部350は、コンテキストに応じてACL230を書き換えても良い。例えば、危険度判定部350は、クライアント装置300保持者が会社に居る時には、カメラデバイスにアクセスできないように動的に書き換えたり、社外に居る時にはfirewallを超えた会社内部の情報にアクセスできないように動的にACL230を書き換えたりしても良い。
図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の書き換えを要求する。
図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が危険な状態である旨を表示させる。
ワーニング表示部370は、ACL書き換え部360からの命令に基づいてクライアント端末300が危険な状態である旨を表示する。実行部390は、アプリケーションを実行する。
図14に危険度判定部350の処理を示す。
S101において、危険度判定部350は、アプリ名一覧テーブル600からクライアント装置300に格納されているアプリ名を取得する。危険度判定部350は、処理をS102へ移行する。
S102において、危険度判定部350は、S101において取得したアプリ名に対応するアプリケーションの評判をセキュリティベンダの公開情報等から検索する。危険度判定部350は、処理をS103へ移行する。
S103において、危険度判定部350は、S102における検索結果に基づいてリソース毎への影響状況を抽出する。危険度判定部350は、処理をS104へ移行する。
S104において、危険度判定部350は、S103における抽出結果に基づいて危険度判定テーブル800を生成する。危険度判定部350は、処理を終了する。
図15にクライアント装置300の処理を示す。
S201において、ダウンロード部320は、パッケージャ200からWebアプリ120及びACL230を受信する。ダウンロード部320は、受信したWebアプリ120及びACL230をフラッシュメモリ313に格納する。ダウンロード部320は、処理をS202へ移行する。
S202において、危険度判定部350は、危険度判定呼び出しを行う。危険度判定部350は、処理をS203へ移行する。
S203において、危険度判定部350は、危険度判定テーブル800を参照して、メモリが危険か否かを判定する。メモリが危険な場合、危険度判定部350は、処理をS204へ移行する。メモリが危険でない場合、危険度判定部350は、処理をS205へ移行する。
S204において、危険度判定部350は、ダウンロードしたWebアプリ120及びACL230を削除する。危険度判定部350は、処理を終了する。
S205において、危険度判定部350は、危険度判定テーブル800を参照して、既にACL230で許可されているが、判定結果が危険なリソースが存在するか否かを判定する。判定結果が危険なリソースが存在する場合、危険度判定部350は、処理をS206へ移行する。判定結果が危険なリソースが存在しない場合、危険度判定部350は、処理をS207へ移行する。
S206において、危険度判定部350は、ACL230から判定結果が危険なリソースを削除することで、ACL230を更新する。危険度判定部350は、処理をS207へ移行する。
S207において、アプリ判定部330は、ダウンロード部320からWebアプリ120を受信して起動する。アプリ判定部330は、処理をS208へ移行する。
S208において、アプリ判定部330は、起動したアプリから新たなコードを読み込む。アプリ判定部330は、処理をS209へ移行する。
S209において、アプリ判定部330は、ステップS208において読み込んだコードがアプリの終了を示すコードか否かを判定する。読み込んだコードがアプリの終了を示すコードである場合、アプリ判定部330は、処理を終了する。一方、読み込んだコードがアプリの終了を示すコードでない場合、アプリ判定部330は、処理をS209へ移行する。
S210において、アプリ判定部330は、実行しようとしているコードが、デバイスへのアクセスまたは外部へのアクセスか否かを判定する。当該判定を満たす場合、アプリ判定部330は、処理をS211へ移行する。一方、当該判定を満たさない場合、アプリ判定部330は、処理をS213へ移行する。
S211において、アプリ判定部330は、更新されたACL230を参照して、アクセスしようとしているデバイスまたはURLが許可されているか否かを判定する。アクセスしようとしているデバイスまたはURLが許可されている場合、アプリ判定部330は、処理をS213へ移行する。一方、アクセスしようとしているデバイスまたはURLが許可されていない場合、アプリ判定部330は、処理をS212へ移行する。
S213において、アプリ判定部330は、コードを実行する。アプリ判定部330は、処理をS208へ戻す。
S212において、アプリ判定部330は、アクセス制限を行うため許可されていないコードを不実行とする。アプリ判定部330は、処理をS208へ戻し、上記処理を繰り返す。
なお、クライアント装置300の危険度はその時々で変わるため、メモリの危険度が下がったらアプリをクライアント装置300にプッシュするような構成にしても良い。
また、例えば、クライアント装置300においてSDカードの入れ替えがあった場合は、クライアント装置300が危険な状態にあると判定するような構成にしても良い。
また、例えば、クライアント装置300がクライアント装置300の危険度に応じてアプリをパッケージャ200からダウンロードするか否かを決定するような構成にしても良い。
また、例えば、危険度判定部350がACL230を更新した場合、当該更新したACL230をダウンロード部320を介してパッケージャに格納するような構成にしても良い。また、例えば、サービス提供者が蓄積したウイルス対策関連の情報をパッケージャ200に格納しておく構成にしても良い。パッケージャ200にて、当該情報を一元管理することで、更新作業が容易になる。
本実施形態によれば、通常通り、Webアプリはソースコードを上から順に実行される。実行中に、アプリ判定部330がACL230に記載されるデバイスアクセスやネットワークアクセスが起こる度にACL230で許可されているか否かをランタイムでチェックする。アプリ判定部330が許可されたコードは実行させ、許可されないコードは実行を止めることで、Webアプリは通常通り動作させながら、不正なデバイスアクセスやネットワークアクセスを防ぐことが可能となる。これによれば、Webサーバにて公開されているWebアプリを正規手段で入手し、これを逆アセンブリ、マルウェアを混入してアセンブリ、再パッケージングして公開する、という手順でマルウェアを仕込んだアプリがWebサーバにて公開されていても、アクセス制限がかかっているため、例えば、端末から個人情報を抜き取り、悪意あるユーザのサーバへ勝手に個人情報を送信されてしまうことを防止することができる。さらに、マルウェアを仕込まれたWebアプリであっても、正規アプリ部分だけを実行させながら、マルウェア部分を実行させないことができる。
また、本実施形態によれば、クライアント端末が危険な状態であれば、余計なダウンロードを発生しないようにして、電力消費量を抑えたり、ネットワーク転送量を削減したりすることができる。
また、パソコンのようにウイルスチェック機能を強化するとウイルスチェッカが重くなるため、スマートフォン向けには、軽く動かせるアプローチが必要であった。そこで、現状のようなアプリ名をチェックするレベルでのウイルスチェックを利用し、アプリ名から潜在的に問題となるリソースを特定して、アクセス制御を行うことで軽量な処理を実現することができる。
以上、本発明の例示的な実施の形態の情報処理システムについて説明したが、本発明は、具体的に開示された実施の形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
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 アプリケーションプログラム

Claims (6)

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

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011234425A JP5765185B2 (ja) 2011-10-25 2011-10-25 制御プログラム、クライアント装置、制御システムの制御方法及びクライアント装置の制御方法
US13/606,313 US9251362B2 (en) 2011-10-25 2012-09-07 Medium for storing control program, client apparatus, and control method for client apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011234425A JP5765185B2 (ja) 2011-10-25 2011-10-25 制御プログラム、クライアント装置、制御システムの制御方法及びクライアント装置の制御方法

Publications (2)

Publication Number Publication Date
JP2013092907A JP2013092907A (ja) 2013-05-16
JP5765185B2 true JP5765185B2 (ja) 2015-08-19

Family

ID=48136881

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011234425A Active JP5765185B2 (ja) 2011-10-25 2011-10-25 制御プログラム、クライアント装置、制御システムの制御方法及びクライアント装置の制御方法

Country Status (2)

Country Link
US (1) US9251362B2 (ja)
JP (1) JP5765185B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6343900B2 (ja) * 2013-10-10 2018-06-20 富士通株式会社 通信端末、通信処理方法および通信処理プログラム
JP6303730B2 (ja) * 2014-03-31 2018-04-04 富士通株式会社 情報処理装置、情報処理システム、プログラムおよび処理方法
CN103927476B (zh) * 2014-05-07 2017-09-15 上海联彤网络通讯技术有限公司 实现应用程序权限管理的智能系统及方法
US10462145B2 (en) 2016-07-15 2019-10-29 The Directv Group, Inc. Method and apparatus for controlling access to custom browser functionality
CN106686150A (zh) * 2017-03-23 2017-05-17 北京奇虎科技有限公司 应用信息的备份方法、系统、客户端和云服务器

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6553375B1 (en) 1998-11-25 2003-04-22 International Business Machines Corporation Method and apparatus for server based handheld application and database management
JP4248913B2 (ja) 2003-03-31 2009-04-02 株式会社エヌ・ティ・ティ・ドコモ 端末装置、プログラムおよび通信システム
JP4514473B2 (ja) * 2004-02-23 2010-07-28 富士通株式会社 コンピュータシステム、中央装置及びプログラム実行方法
JP4643204B2 (ja) 2004-08-25 2011-03-02 株式会社エヌ・ティ・ティ・ドコモ サーバ装置
US7516477B2 (en) * 2004-10-21 2009-04-07 Microsoft Corporation Method and system for ensuring that computer programs are trustworthy
US7849507B1 (en) * 2006-04-29 2010-12-07 Ironport Systems, Inc. Apparatus for filtering server responses
CN101350054B (zh) * 2007-10-15 2011-05-25 北京瑞星信息技术有限公司 计算机有害程序自动防护方法及装置
US8353041B2 (en) * 2008-05-16 2013-01-08 Symantec Corporation Secure application streaming
US9134996B2 (en) * 2011-04-28 2015-09-15 F-Secure Corporation Updating anti-virus software
US9065826B2 (en) * 2011-08-08 2015-06-23 Microsoft Technology Licensing, Llc Identifying application reputation based on resource accesses
US20130061316A1 (en) * 2011-09-06 2013-03-07 Microsoft Corporation Capability Access Management for Processes

Also Published As

Publication number Publication date
US9251362B2 (en) 2016-02-02
JP2013092907A (ja) 2013-05-16
US20130103743A1 (en) 2013-04-25

Similar Documents

Publication Publication Date Title
US9635041B1 (en) Distributed split browser content inspection and analysis
US9563488B2 (en) Sharing extension points to allow an application to share content via a sharing extension
US11797636B2 (en) Intermediary server for providing secure access to web-based services
KR101373986B1 (ko) 모델을 사용하여 실행가능 프로그램을 조사하는 방법 및 장치
US8904492B2 (en) Method of controlling information processing system, computer-readable recording medium storing program for controlling apparatus
Tuncay et al. Draco: A system for uniform and fine-grained access control for web code on android
US20100186089A1 (en) Method and system for protecting cross-domain interaction of a web application on an unmodified browser
JP5654944B2 (ja) アプリケーション解析装置およびプログラム
US20140283078A1 (en) Scanning and filtering of hosted content
KR101453742B1 (ko) 웹 어플리케이션 실행을 위한 보안 제공 장치 및 방법
JP5765185B2 (ja) 制御プログラム、クライアント装置、制御システムの制御方法及びクライアント装置の制御方法
CN112703496B (zh) 关于恶意浏览器插件对应用用户的基于内容策略的通知
CN102622439A (zh) 一种在浏览器中展示文档的方法及装置
US8127033B1 (en) Method and apparatus for accessing local computer system resources from a browser
US20140157436A1 (en) Information processing apparatus and method of controlling same
Wu et al. An overview of mobile malware and solutions
JP5296627B2 (ja) 端末保護システム及び端末保護方法
US20130298121A1 (en) Method for Isolated Use of Browser
JP2011145945A (ja) マルウェア検出装置及びマルウェア検出方法
KR101234592B1 (ko) 안드로이드가 탑재된 휴대 단말기에서의 웹브라우저 백신 구동 방법
JP5682181B2 (ja) 通信制御機能を有する通信装置、方法、プログラム
KR101024444B1 (ko) 단말에서의 웹어플리케이션 플랫폼 및 웹어플리케이션 플랫폼 동작 방법
US20210084055A1 (en) Restricted web browser mode for suspicious websites
Zhang et al. Achieving resource-centric access control for web-app interactions on android
KR101305755B1 (ko) 주소에 기반하여 스크립트 실행을 필터링하는 장치 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140704

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150224

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150422

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150519

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150601

R150 Certificate of patent or registration of utility model

Ref document number: 5765185

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150