JP2009537892A - クライアントおよびサーバの保護方法 - Google Patents

クライアントおよびサーバの保護方法 Download PDF

Info

Publication number
JP2009537892A
JP2009537892A JP2009510892A JP2009510892A JP2009537892A JP 2009537892 A JP2009537892 A JP 2009537892A JP 2009510892 A JP2009510892 A JP 2009510892A JP 2009510892 A JP2009510892 A JP 2009510892A JP 2009537892 A JP2009537892 A JP 2009537892A
Authority
JP
Japan
Prior art keywords
service
client
network
virtual machine
server
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.)
Pending
Application number
JP2009510892A
Other languages
English (en)
Other versions
JP2009537892A5 (ja
Inventor
サンギュ イ
Original Assignee
サンギュ イ
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
Priority claimed from KR1020060044601A external-priority patent/KR20070111603A/ko
Application filed by サンギュ イ filed Critical サンギュ イ
Publication of JP2009537892A publication Critical patent/JP2009537892A/ja
Publication of JP2009537892A5 publication Critical patent/JP2009537892A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect

Abstract

本発明はインターネット、イントラネット、エキストラネットなどのネットワーク環境において実行されるクライアント-サーバ基盤のサービスシステムにおいて、サービス使用者側がサービス提供者のサービスを利用するのにおいて、サービス使用者側がサービス提供者にサービスの利用を要請すると、サービス提供者は使用者側のシステムに保護空間を設けて必要なソフトウェアを保護空間内で実行することによって、サービス提供者のシステムとサービス使用者側のシステムを安全に保護しながら、仮想マシンイメージの配布形態のソフトウェア配布方式を通じて、コンピュータに習熟していない使用者側も簡単かつ素早くサービスを利用することができるようにする。

Description

本発明はインターネット、イントラネットあるいはエキストラネット環境を含むネットワーク環境においてクライアント/サーバから構成されて、操作されるサービス提供システムを、外部のハッキング攻撃から保護することができる方法に関するものである。具体的にはクライアントシステムに既存のオペレーティングシステム(OS)環境に独立した保護空間を生成して、保護空間内においてのみクライアントのアプリケーションを実行する。サーバのアプリケーションは保護空間内において実行されたクライアントのアプリケーションが生成したネットワークパケットのみを信頼する。これにより、外部のハッカーの攻撃からサーバシステムおよび/またはクライアントシステムを保護することができる。
一般的にネットワーク環境において実行されるサービス提供システムは、クライアントを構成するサービス使用者側(以下、使用者側)とサーバを構成するサービス提供者側(以下、提供者側)からなり、提供者はサーバにサーバのアプリケーションを設け、使用者側は提供者のサービスを利用するために提供者が配布するアプリケーションプログラムであるクライアントのアプリケーションを自らのシステムにインストールして、サーバのアプリケーションとクライアントのアプリケーション間の相互作用によってサービスの提供がなされる。ところが、多くの場合、使用者側は提供者を信頼することができず、逆に提供者もまた使用者側を信頼することができない。このような信頼の欠如は、ITに基づいたサービス産業の発展を阻害し、時には犯罪の手段として利用されたりもする。
使用者側が提供者を信頼することができない理由は、提供者が配布するアプリケーションプログラムがスパイウェアやアドウェアのような悪性プログラムであることもあり、一部の構成ファイルがコンピュータウイルスに感染している可能性もあるためである。この場合、悪性であるプログラムやウイルスに感染したファイルをインストールすると、使用者側のシステムもまた悪性プログラムあるいはウイルスに感染する。
逆に、提供者が使用者側を信頼することができない理由は、使用者側のシステムは一般的にセキュリティの脆弱点を有しているためである。使用者側のシステムの脆弱点により、提供者のシステムが脆弱になり得、時には使用者側がリバースエンジニアリング技術を用いて提供者が配布したアプリケーションプログラムを分析して、重要なロジックをハッキングすることもできる。インターネットバンキングなどの金融取引きサービスはハッキングから内部ロジックを保護しなければならず、エキストラネットを通じて、協力業者に業務サービスを提供する企業の場合、協力業者システムのセキュリティ上の脆弱点により自社のサービスシステムが脆弱にならないように防御しなければならない。
このようなクライアントとサーバ間の相互の信頼性を構築するための多様な方法が提示された。従来のネットワーク環境を通じたサービスにおいて、システムに対するハッキングの攻撃を遮断するためのクライアント側の保護装置はアンチウイルス製品、パッチ管理システムなどがあり、サーバ或いはネットワーク側の保護装置はネットワーク・ファイアウォール、ウェブ・ファイアウォール、脆弱性スキャナー、ソースコード診断ツールなどがある。以下、各技術の内容と限界を考察する。
アンチウイルス製品は知られた悪性コードのシグネチャのリストを利用して各ファイルを診断した後、悪性コードの感染の有無を判断する。ところが、悪性コードが広く知られて広がり、申告センターに受付けられる前にはシグネチャのリストに悪性コードが存在しないため診断が不可能であるという限界がある。
パッチ管理システムはOSやアプリケーションに最新のセキュリティパッチを適用して、PCを安全な状態に維持する。ところが、パッチが発表されていない脆弱点に対する防御は不可能である。
ネットワーク・ファイアウォールはOSI(Open Systems Interconnection)の7階層中第3階層であるネットワーク層や第4階層であるトランスポート層に存在する脆弱点に対する外部ハッカーの攻撃を遮断する。
図1はネットワーク・ファイアウォール(150)の機能を概念的に示したものであって、使用者側はネットワーク・ファイアウォールを利用してIPアドレスおよびポート番号を利用したアクセス制御規則(151)を設定し、非認可の攻撃者からのネットワークパケットを遮断する。
例えば、FTPサーバ認可者(100)がFTPサーバ(160)に接続しようとすれば、ネットワーク・ファイアウォール(150)は該当接続を許可し、FTPサーバ非認可者(110)がFTPサーバ(160)に接続しようとすると、ネットワーク・ファイアウォール(150)は該当接続を遮断する。ところがネットワーク・ファイアウォールを利用する場合、IPアドレスおよびポートを基準として許可、遮断の可否を決定するため、攻撃者が認可者のマシンをハッキングした後、認可者のマシンを経由して攻撃したり、認可者が悪意を持って攻撃を試みたとしたら、これを防ぐ方法はない。
一方、ウェブサーバ(170)はすべての使用者側(120)にアクセスが許可されていることから、ネットワーク・ファイアウォール(150)はウェブサーバ(170)に向かうすべてのパケットを許可する。ところが、ウェブサーバ(170)とともに外部に公開されたサーバは、ウェブのアプリケーションに脆弱点があれば誰でも該当脆弱点を攻撃することができるため、ネットワーク・ファイアウォール(150)は脆弱点に対する外部ハッカーの攻撃を防ぐことができない。すなわち、ネットワーク・ファイアウォール(150)は許可するサービスと許可しないサービスを制御することはできるものの、許可されたサービスの脆弱点に対する攻撃は防ぐことができない。
このような問題を解決するために、アプリケーション・ファイアウォールが公開された。アプリケーション・ファイアウォールはOSIの7階層中第7階層であるアプリケーション層において動作するため、HTTP、FTP、SMTP等、各種プロトコルを認識することができ、該当アプリケーションに存在する脆弱点に対する攻撃を防御することができる。
図2はアプリケーション・ファイアウォールのうち、代表的なウェブのアプリケーション・ファイアウォール(220)に関するものである。ウェブのアプリケーション・ファイアウォール(220)はパケットをフィルタリングするシステム(222)を備え、受信されるパケットを予め定義されたパターン(221)と比較して悪性パケット(200)であれば遮断し、正常パケット(210)であればウェブサーバ(230)に伝送するパケットフィルタリング方式により動作する。
しかしながら、ウェブのアプリケーション・ファイアウォール(220)は、知られた攻撃技法を用いてパターン(221)を作成するため、攻撃者は既存の攻撃技法を若干変形することによってパターンフィルターシステム(222)を簡単に迂回することができ、知られていない攻撃技法は防御することができず、入力されるすべてのパケットを数十〜数千個の予め定義されたパターン(221)と比較する作業を遂行しなければならないことから、ウェブサーバの速度が大幅に遅くなる問題があった。また、正常パケット(210)が予め定義されたパターン(221)と偶然に一致すれば、悪性パケット(200)として誤認されて、正常な使用者側のウェブサーバの利用が遮断される副作用もある。
また、ウェブのアプリケーション・ファイアウォール(220)は一般的な攻撃パターンしか監視することができないため、特定のウェブサイトにのみ局限される脆弱点を防ぐことが難しい。例えば、ホームショッピング関連のウェブサイトにおいて物品の決済金額を10,000ウォンから1,000ウォンに修正することのような形態の攻撃は該当サイトにおいてのみ意味がある攻撃であるため、ウェブのアプリケーション・ファイアウォール(220)が効果的に防ぐことができない。
ウェブのアプリケーション・ファイアウォール(220)はアプリケーションの脆弱点はそのまますえ置いて、該当脆弱点に対する攻撃を遮断する方式である。これとは異なって、脆弱点スキャナーやソースコード点検ツールは脆弱点自体を除去する方式を使用する。
脆弱点スキャナーは、アプリケーションサーバの外部において脆弱点の存在有無の診断用パケットを伝送し、その応答を確認して脆弱点の存在有無を点検するツールであり、ソースコード点検ツールは、ソースコードを直接調べて脆弱点の存在有無を判断するツールである。
図3は脆弱点スキャナーおよびソースコード点検ツールを使用する過程である。アプリケーションプログラムの開発を開始(300)すると、一般的に設計およびコーディング段階(310)を経て、一定部分が完了した後、脆弱点スキャナーおよびソースコード点検ツールを実行して今まで作成したコードに脆弱点が存在するかを確認する脆弱点の点検段階(320)を進行させる。この時、脆弱点が発見されると、修正段階(330)を経てこの過程を脆弱点が発見されない時までこれを繰り返して開発を完了(340)する。
一般的に脆弱点スキャナーやソースコードの点検ツールは、セキュリティの脆弱点が存在することを知らせる役割のみを行い、セキュリティの脆弱点を除去することは開発者の役割である。したがって、開発者はセキュリティの脆弱点を除去するために脆弱点と関連して高級ハッカーと同等の水準の専門知識がなければならず、脆弱点の除去にも多くの費用と時間が必要である。また、アプリケーション・ファイアウォールと同様に物品の価格を10,000ウォンから1,000ウォンに修正することのような特定サイトに局限された脆弱点は、脆弱点スキャナーやソースコード点検ツールが発見することができない短所も存在する。
このような理由により、従来技術によるとネットワーク基盤クライアント/サーバシステムの信頼性向上のための根本的なセキュリティシステムを構築するのが難しかった。以下に詳述するが、本願は上述のような従来のセキュリティシステムの技術的限界を克服する新しい方式を記述する。
一方、クライアント/サーバのサービス提供システムは、一般的にサービスの提供に必要なクライアントのアプリケーションを提供者が使用者側に配布して、これを利用するように誘導する。ところがクライアントのアプリケーションの配布がサービスの提供に必須かつ不可欠であるにもかかわらずセキュリティのための対策が不備であるため、現在の不安定なクライアントのアプリケーションの配布方式はサービス提供システムの相互信頼性を阻害するまた一つの重要な要素となっている。
従来、提供者がサービスに必要なアプリケーションプログラムをサービス使用者側に配布する代表的な方式は、Active X コントロール方式、プログラム直接インストール方式、ストリーミング方式がある。以下各技術の内容と限界を考察する。
Active Xコントロール方式はウェブサーバにおいて数多く使用される。サービス提供者はサービスに必要なソフトウェアをActive Xコントロールの形態で制作し、ウェブページに記録しておく。使用者側が該当ウェブページを訪問すると、使用者側のウェブブラウザがActive XコントロールをPCにインストールするかどうかを使用者側に質問し、使用者側が同意すればActive Xコントロールがインストールされる。
Active Xコントロール方式はプログラムを手軽にインストールすることができるという長所があるが、インストールされるActive Xコントロールがアドウェア、スパイウェアのような悪性コードである場合がある。これによってウェブサーフィンをしていると、自分も知らないうちにPCが悪性コードに感染する問題があった。これを解決するために信頼性のある認証機関から認証書を受けたか否かを利用して、コントロールの安全性を判断することができる制度を国家的に導入することも行った。ところが、アドウェアの製作業者であるとしても、一定の費用だけ支払えば認証書を受けることができる制度的な盲点は常に存在し、ウェブブラウザにおいて電子署名の確認オプションが消えている場合、このような制度は無用の長物となる。また、正常なアクティブXコントロールにセキュリティの脆弱点が存在する場合、このような脆弱点を利用して使用者側のPCをハッキングすることも可能である。
プログラムの直接インストール方式は、Setup.exeのようなインストールプログラムを使用者側がダウンロードした後にこれを実行してソフトウェアをインストールする方式である。インストールプログラム方式は根本的にActive X方式と同一の問題点を有する。
Active Xコントロール方式やインストールプログラム方式は、いずれもクライアントシステムに直接ソフトウェアをインストールする形態であるため、バージョンの衝突問題、インストール過程の複雑さ、容量の問題等の問題が発生する。これを解決するために、ストリーミング形態のソフトウェア配布方式が導入された。
バージョンの衝突問題とは、例えばA、Bのソフトウェアが共に使用するab.dllという共有ライブラリがあるとき、ソフトウェアが使用するバージョンと互換されていないバージョンがインストールされていたり、他のソフトウェアが該当ファイルをアップデートした場合、正常に実行されない場合をいう。
ストリーミング方式は、クライアント/サーバの環境においてソフトウェアをクライアントのOSに直接インストールするのではなく、ソフトウェアがインストールされたストリーミングイメージに代替する形態である。プロセスがab.dllを要請すると、ストリーミング クライアントはストリーミングイメージにおいてab.dllを探した後、このファイルを戻すことによってOSにab.dllが存在しないものの存在するかのようにエミュレーションする。この場合、ファイルがOSに直接インストールされないため、バージョンの衝突問題やインストール過程の複雑さなどの問題を解決することができ、全体のプログラムをインストールするのではなく、現在必要なファイルやレジストリのみストリーミングサーバから持ってくればよいことから容量の問題も解決することができる。
ところが、ストリーミング方式はアプリケーションプログラムのレベルにおいてOSに存在しないファイル、レジストリ等をあたかも存在するもののようにエミュレーションするだけであって、OSレベルの仮想化を提供しはしないため、アプリケーションプログラムの実行はOSにおいて直接なされ、システムプロセス、サービスプロセス、OSカーネルもやはりストリーミングサーバにおいて実行されたプロセスと一般プロセスが共有する。したがって、ストリーミング方式を利用すれば、アプリケーションプログラムのインストールによるOSの変更は防げるが、アプリケーションプログラムの実行過程で発生する問題からサービス提供者とサービス使用者側のシステムをセキュリティ的な側面で効率的に保護することができない。
結局、クライアント/サーバ基盤のサービス提供システムにおいて提供者が使用者側に必要なアプリケーションを配布するための従来の方法は、互いに信頼性を構築することができない多様な問題点を有していた。以下に詳述するが、本願は上述したような従来のクライアントのアプリケーション配布方式の技術的限界を克服する新たな方式を提案する。
一方、最近仮想マシンに関する研究が活発に進められている。仮想マシンは1960年代に一台のメインフレームを何台かのマシンに仮想的に分けて使用するために導入された概念である。ところが、マイクロコンピュータやPCの価格が下落するのに伴い、一台のメインフレームを分けて使用することよりは何台かのPCを導入することが費用の側面において有利になり、その結果、1980年代に入って仮想マシンの技術はほとんど使われなくなった。ところが1990年代に入って、多数の小容量コンピュータを使用することが管理および維持補修費用をむしろ増加させ、コンピューティング資源の効率的使用にも問題があったため(一例としてAサーバはCPU使用率が10%であるのに比して、BサーバはCPU使用率が99%である場合がある)、再度仮想化技術に関心を傾け始めた。ところが、大容量サーバの効率的な資源管理のための仮想化技術に関することが主となって、クライアントシステムのための仮想化技術については未だ研究が不備である。
予め言及するが、本発明はクライアントのアプリケーションのインストールおよび実行のためにクライアントシステムにおいて仮想マシンを動作させる。
仮想マシンを具現する方式は多様である。今までに知られた仮想化の具現方式を挙げてみると、コマンドセットのレベルの仮想化、準仮想化(Paravirtualization)、ライブラリーレベルの仮想化、アプリケーションレベルの仮想化、OSレベルの仮想化などがある。
コマンドセットのレベルの仮想化方式は、中央処理装置、メモリー、チップセット、バスおよび各種周辺装置(ネットワークカード、ハードディスク、フロッピー(登録商標)ディスク、CD−ROM)をソフトウェア的にエミュレーションして仮想マシンを生成するものである。コマンドセットのレベルの仮想化方式は、仮想マシンにおいて発生するすべてのコマンドをソフトウェア的に処理しなければならないため、処理速度の低下をはじめとして性能上の問題が多かった。
準仮想化方式は、コマンドセットのレベルの仮想化方式とは異なって、コマンドをエミュレーションするものではなくOSのソースコードやバイナリを修正して、一つのハードウェアにおいていくつかのOSが実行されるようにするものである。最近ではOSを修正しなくても一つのハードウェアに複数のOSを実行できるようにする形態のCPUも開発された。準仮想化方式はコマンドセットがソフトウェア的に再解釈される訳ではないことから処理速度が速い。
コマンドセットのレベルの仮想化方式と準仮想化方式は、各仮想マシン別に完全に独立したOSをインストールすることができるのでVPS(Virtual Private Server)、サーバ統合等のサーバの仮想化に適合した方式であり、ソフトウェアの開発およびテスト等の分野にも活用されている。しかしながら、本願発明の追求するクライアントシステムの仮想化に利用するにはいくつかの問題がある。それぞれの仮想マシンにOSを新しくインストールしなければならない不便さがあり、仮想マシンの数だけOSライセンスを購入しなければならない。
ライブラリーレベルの仮想化方式は、OS内でライブラリーを仮想化する方式である。具体的にはAPI(Application Program Interface)を仮想化する方式である。例えば、WINEのようにWin32 APIをUNIX(登録商標)/Xシステムで具現して、ユニックスでウインドウズアプリケーションプログラムが実行されるようにしたり、反対にウインドウズにおいてPOSIX、OS2サブシステムを提供したりすること等がある。
アプリケーションレベルの仮想化方式は、Sunmicro Systems社によって開発されたJava (登録商標)Virtual Machineのように、アプリケーションをバイトコードの形態に作成して、一つのアプリケーションが多様な異機種のハードウェアおよびソフトウェアの環境で実行されるようにするものである。
最後に、OSレベルの仮想化方式は、OSの各構成要素(プロセス、ファイルシステム、ネットワーク資源、システムコールインターフェース、ネームスペース等)を仮想化する方式である。従来のOSレベルの仮想化方式は、主にVPS(Virtual Private Server)のようなサーバの仮想化を目的として開発された。
全仮想化、準仮想化方式を用いてVPSを具現する場合、一台の仮想マシンが必要とするメモリー、ハードディスクの資源は実際のマシンと同一であることから、一台の物理的マシンに多数の仮想マシンを生成するのは大変であった。ところが、OSレベルの仮想化を用いると、一つのOSですべての仮想サーバを駆動することができるため、個別の仮想マシンのOSの駆動に必要な資源が要求されず、全仮想化、準仮想化方式に比して小さいリソースで多数の仮想マシンを駆動することができた。あるいはソフトウェアの開発およびテスト等の目的で多数のOSの環境が必要な使用者側に独立したOS空間を効率的に提供するための方法としても使用されてきた。
現在、仮想化技術は、サーバの統合、ソフトウェアの開発およびテスト、ホスティング分野において数多く使用されており、セキュリティ分野においては信頼されていないプログラムを仮想マシン内で実行して、ホストOSを保護したり悪性コードが隠されているかどうかをテストしたりする等、主に仮想マシン内において信頼されていないアプリケーションプログラムを実行する方式で研究が進められてきた。ところが、クライアント/サーバ基盤のサービス提供システムのための技法において、仮想マシンを利用したクライアントのアプリケーションとサーバのアプリケーションのセキュリティ技術に関する研究はまだ進められていない。また、以下に説明されるが、従来のいかなる仮想化方式もクライアント/サーバ基盤のサービス提供システムに適していない。本明細書では、従来の仮想化とは異なる新たな仮想化方式を提案する。
一方、過去にはパーソナルコンピュータを使用するためにはOSに対する知識、プログラムのインストールに関する知識、プログラムの設定に関する知識等、コンピュータに門外漢である一般人が自由にアクセスするには多少複雑な知識が必要であったし、パーソナルコンピュータは一部の専門家たちだけが自由自在に利用できる専有物であった。パーソナルコンピュータがテレビや冷蔵庫のような大衆的な生活家電製品になるためには、コンピュータの使用が現在より容易にならなければならない。テレビの場合、使用者側がリモコンを利用してチャンネルの変更さえすることができれば、所望のチャンネルを容易にかつ素早く視聴することができる。コンピューティングの環境もこのように容易に変わらなければならない。
コンピュータの環境を容易に普及させるために、GUIをはじめとした多様な技術が普及した。ところが、今日に至ってもプログラムのインストールと設定は一般人が簡単にアクセスしにくく、各種のウイルスや悪性プログラムは一般人のコンピュータの使用をさらに難しくしている。
米国特許第6496847号明細書 米国特許第7099948号明細書 米国特許第7117495号明細書
本発明は前記のような従来の問題点を解決して、サービスの使用者側と提供者のいずれにも安全なコンピューティングの環境を提供するシステムおよび方法に関する。
本技術の基本構成は次のような段階に要約され得る。すなわち、第一に、使用者側が提供者にサービスの利用を要請する段階と、第二に、提供者が使用者側のシステムに独立した保護空間を自動的に生成する段階と、第三に、生成された保護空間内でのみ必要なアプリケーションプログラムを実行することにより、使用者側と提供者のいずれにも安全かつ便利なコンピューティングの環境を提供するものである。このような構成を根幹として、本発明は次のような多様な目的を追求している。
本発明の第1の目的は、サービス使用者側のシステムを安全に保護することである。具体的に提供者が配布したクライアントのアプリケーションは保護空間の内部でのみインストールされて実行されるため、配布されたクライアントのアプリケーションに悪性コードが存在するとしても保護空間外部のシステムや別の保護空間には感染しない。したがって使用者側は安心して提供者にサービスを要請することができ、使用者側のシステムは保護される。
本発明の第2の目的は、サービス提供者のシステムを安全に保護することである。具体的に使用者側のサービスの要請があると、提供者は使用者側のシステムに保護空間を強制的かつ自動的に生成し、その保護空間の内部でのみアプリケーションプログラムをインストールして実行すると共に、サーバに伝送されるパケットは、使用者側のシステム内の保護空間外部に存在する多様な脅威要素から隔離される。好ましくはサービス提供者が直接サービス使用者側のマシンに保護空間を生成するが、第三者がサービス提供者の指示により、使用者側のマシンの保護空間を生成させることもできるものの、本明細書はこのような技術的変形の例を全てサービス提供者が保護空間を生成したものと見なす。好ましくは、使用者側がクライアントのアプリケーションを操作することができないようにクライアントの個体を検証する。好ましくは、ネットワーク上におけるハッカーのインターセプト攻撃に備えて、パケットなどの送信データに対する無欠性の検証をさらに実施する。これにより提供者のシステムはハッキングから安全に保護される。
本発明の第3の目的は、提供者のシステムと使用者側のシステムを同時に、かつ安全に保護することである。従来のクライアントセキュリティ製品は、アンチウイルス(Anti-Virus)、アンチキーロガー(Anti-Key-logger)、PC・ファイアウォール(PC fire wall)等、クライアントシステムがハッキングされたり悪性コードに感染することを防止し、クライアントに記憶された重要な情報が流出するのを防止する。従来のサーバセキュリティ製品は、ネットワーク・ファイアウォール、アプリケーション・ファイアウォール、脆弱点スキャナーおよびソースコード点検ツール等サーバに伝送されるパケットをネットワークレベルにおいて遮断したり、サーバのアプリケーションに脆弱点が存在するかどうかを確認する方式である。
従来のセキュリティ製品は、クライアントのセキュリティ製品はクライアントシステムだけを保護し、サーバのセキュリティ製品はサーバシステムだけを保護するが、本発明は保護空間とクライアントの個体の検証と無欠性の検証の相互補完を通じて、クライアントシステムとサーバシステムを同時に保護することができ、知られていない形態の攻撃およびゼロデイ攻撃(Zero Day Attack)からもクライアントおよびサーバシステムを効率的に保護する。
本発明の第4の目的は、使用者側のシステムに保護空間を生成する方法および提供者がクライアントのアプリケーションを配布する方法において、仮想化技術を利用することである。サービスの利用に必要な少なくとも一つのアプリケーションプログラムを記憶するか、または事前インストール(pre-install)した仮想マシンイメージを配布すると、保護空間の生成とプログラムの配布を同時に安全かつ便利に達成することができる。事前インストール(pre-install)した仮想マシンイメージとは、アプリケーションがすでにインストールされていたり、インストールに必要なデータが含まれたりするイメージを意味する。
本発明の第5の目的は、仮想マシンのイメージを利用して、複数のアプリケーションプログラムを容易に、かつ素早く提供されるようにすることである。従来にはサービスの利用に必要なコンピューティングの環境を使用者側が直接構成しなければならなかった。使用するプログラムをインストールし、各種の設定を合わせるのに専門家的な知識が必要であった。ところが、コンピュータに関する知識がなくても誰でも手軽に自らが望むプログラムがインストールされた環境に簡単にアクセスすることができる環境が必要である。また、従来のわずらわしいプログラムの購入、インストール、設定などの過程をすべて省略し、何度かのクリック動作だけで自らが望むプログラムがすべてインストールされたコンピューティングの環境を提供することが要求される。
本発明はサービスの利用に必要なコンピューティングの環境を使用者側が構成するのではなく、サービス提供者が構成することができるようにし、使用者側は提供されたコンピューティングの環境をそのまま使用すれば良いため、パーソナルコンピュータやセキュリティに関する専門的な知識がなくても、テレビチャンネルを変更するように容易かつ安全に提供者のサービスを利用することができる。具体的に使用者側はソフトウェアを一つずつインストールするのではなく、サービスのためのすべてのソフトウェアおよび環境がそろった仮想マシンイメージをロードする方式で容易に、かつ素早くサービスを利用することができる。
本発明は前記のような目的を達成するために、サービスの使用者側と提供者が共に信頼することができるサービス提供システムを提供する。
本発明のある観点によると、使用者側システムには保護空間が設けられて、保護空間においてのみクライアントのアプリケーションが実行される。本明細書において、保護空間とはスパイウェアやアドウェアのような悪性コードおよびウイルスをはじめとする各種ハッカーの攻撃から遮断される空間という意味で使用される。すなわち、クライアントシステムに保護空間が生成されると、保護空間外部のハッカーの攻撃は保護空間の内部に浸透することができず、逆に保護空間の内部に浸透した攻撃は、保護空間の外部を攻撃することができない。あたかも別個のシステムであるかのような二つ以上のシステムが、一つの物理的システムに共存するようになるのである。このような保護空間を生成する技法は、仮想化技術を通じてすでにその可能性が知られている概念である。ところが、本発明においては使用者側が自らのシステムに仮想マシンをインストールしてサービスの提供を受ける準備をするのではなく、サービスの提供者が使用者側のシステムに仮想マシンを自動的に、かつ強制的にインストールするという点に特徴がある。実施形態によってはサービスの使用者側に保護空間を設けるための実行の可否の承諾を得てインストールしてもよい。
ところが、仮想マシン等を利用して保護空間を生成したことのみで全体のクライアント/サーバシステムが完全に保護される訳ではない。一旦、保護空間が設けられると、その内部で悪性のクライアントのアプリケーションが実行されても保護空間外部のクライアントシステムは影響を受けないため、クライアントシステムは保護されるといえる。以下詳細に説明するが、さらにクライアントの個体の検証を通じてクライアントのアプリケーションが保護され、無欠性の検証を通じて、サーバシステムまで保護され得る。そのような意味において本願で使用される保護空間は、クライアントシステム、クライアントのアプリケーションおよび/またはサーバシステムを保護するための空間と解釈されてもよい。
保護空間を生成する方法は、システムの資源を隔離させる方法により可能である。ハッキングツール、ワームおよびウイルスなどの悪性アプリケーション、クライアントのアプリケーションおよび一般的なアプリケーションは同一のOSの空間内で実行されるため、悪性のアプリケーションはクライアントのアプリケーションと一般のアプリケーションに対して攻撃を試みることができる。この時、クライアントのアプリケーションへの攻撃は、OSの資源を隔離することによって遮断され得る。OSの資源の隔離は、クライアントのアプリケーションをなすプロセス、レジストリ、ファイル、ネットワーク、メモリーなどのOSの資源に対して悪性のアプリケーションがアクセスすることを遮断することによって実現される。併せて、アンチリバースエンジニアリング(Anti-Reverse Engineering)およびデバッギング等の技法を利用して、アプリケーションの重要アルゴリズムや重要な値を把握し、データやプログラムの流れに対する操作を試みることを遮断する機能を含むこともできる。
ところで、本明細書においては、保護空間を生成する方法によって仮想化の技法を主に記述する。好ましくは、OSレベルの仮想化方式を利用する。従来のOSレベルの仮想化方式は上述した通り、多数の使用者側に完全に独立したOSの空間を提供するサーバの仮想化を主な目的とした。ところが、本願において利用しようとするOSレベルの仮想化方式は、従来のOSレベルの仮想化とは異なり、ある使用者側が多数の仮想マシンを効率的に結合して使用するデスクトップの仮想化を主な目的とする。
OSレベルの仮想化を適用する場合、クライアントシステムはホストOSとゲストOSに分離することができる。ホストOSとは、使用者側が物理的なシステムにインストールしたOSを意味し、ゲストOSとは仮想マシン内にインストールあるいは生成されたえOSを意味する。デスクトップの仮想化のためのOSレベルの仮想化を効率的に使用するためには、ホストOSにインストールしたアプリケーションをゲストOSで使用することができ、ホストOSとゲストOSに存在するデータが効率的に共有されなければならない。ただし、この場合ゲストOSを保護空間として信頼性を有するようにするためには、ホストOSの資源をゲストが使用しなければならない時に安全な資源であるのかを確認する装置が整えられなければならない。ゲストOSで動作するクライアントのアプリケーションが、ホストOSに存在するハッカーから攻撃される危険があるためである。また、ゲストOSで生成されたパケットが実際にホストOSでないゲストOSで生成されたものであるのか、またはネットワーク上で操作されたものでないのかを検証する装置を整えることが望ましい。
本発明の別のある観点によると、サービスの利用に必要な段階は以下の通りである。
最初に、使用者側(クライアント)が提供者(サーバ)にサービスの使用を要請する。
第二に、提供者は使用者側のシステムに保護空間を生成し、クライアントの保護空間に該当仮想マシンインスタンスを生成する。
第三に、使用者側は仮想マシン内にインストールされて実行されるクライアントのアプリケーションを介してサービスの提供を受ける。
ここで、使用者側は自らのシステムに仮想マシン等の保護空間が設けられるのかを認知する必要も、確認する必要もなく、単にクライアントのアプリケーションがインストールされた上で実行されることだけを確認すればよい。ところが、必要であれば仮想マシンがインストールされることを使用者側に認知させたり許諾を受けたりしても構わず、提供者システムを保護しなければならない要求があれば、使用者側には仮想マシンがインストールされるのに不便さを感じさせないようにしながら、時には仮想マシンがインストールされた事実を知らせる必要がない場合もあるはずである。
保護空間の生成のために、提供者はサービスの利用に必要なクライアントのアプリケーションが予めインストールされた仮想マシンイメージをクライアントに伝送することが望ましい。もちろん仮想マシンイメージのみを伝送して空いた保護空間を先に生成させ、選択的にクライアントのアプリケーションをインストールしたりインストールに必要なデータのみを含めて伝送することも可能である。
本願発明のある観点によると、保護空間を生成するための安全な仮想マシンシステムが必要である。ゲストOSで生成されたデータを信頼するために、安全なホストOSの資源を使用したのかを検証しようとしてクライアントの個体を検証しても良い。また、サーバに伝送されたデータがホストOSでないゲストOSで生成されたものであるか、あるいはネットワークで操作されはしなかったのかを確認する等、データを安全に送受信するための無欠性の検証を実施しても良い。
図4に示されている通り、サービス提供者のシステムはサーバ、サービスイメージ、及びサーバ側の無欠性の検証手段、のうちの全部または一部で構成され、サービス使用者側のシステムは仮想マシン、クライアントの個体検証手段、サービスイメージ、及びクライアント側の無欠性の検証手段、のうちの全部または一部で構成される。以下、各構成要素を具現する方法を具体的に説明する。本明細書で使用される技術用語は、本願発明の技術的範囲を限定したり制限したりする意図で使われたものではないことに注意しなければならない。
仮想マシンシステム
安全な仮想マシンシステムは、保護空間内にそれぞれの独立した仮想マシンインスタンスを生成することによって具現可能である。仮想マシンインスタンスは、OSの分割技術を利用してホストOSに対して独立したゲストOSを生成し、該当OSでシステムのブーティング(起動)過程を経て生成され、システムのシャットダウン過程を経て消滅する。
本明細書で使用する独立したという用語は、ホストOSの資源と各ゲストOSの資源が互いに衝突せずに、あたかも数台の物理的なマシンにそれぞれのOSがインストールされたのと同様に動作するようにする範囲における独立を意味する。したがって、システムの資源を効率的に利用するために、必要な場合、セキュリティ性を阻害しない範囲内でホストOSと各ゲストOSが資源を共有することができる。
従来の仮想化技術のうち、全仮想化(Full virtualization)方式はコンピュータを構成するすべてのハードウェア(中央処理装置、メモリー、コントローラーなど)をエミュレーションするハードウェア水準の仮想化方式であり、エミュレーションされたマシンには新たなOSをインストールしなければならない。これに対してOSの分割方式はOS水準の仮想化方式であるため、新たなOSをインストールするのではなく、すでにインストールされているOSを仮想的ないくつかのOSに分割する方式である。
また、全仮想化方式によると、ホストOSにインストールしたプログラムをゲストOSで使用することができず、ゲストOSにインストールしたプログラムを他のゲストOSで使用することができない問題があるため、前記方式は技術的、管理的側面において本発明の目的を解決するのに適していない。
仮想マシンの実行環境
図6は本願の仮想化方式の好ましい実施例を構成図として示した図面である。独立したゲストOSの実行環境は、仮想カーネル、実行空間、仮想マシンデータから構成される。
仮想カーネルを具現する一実施例は、ホストOSのカーネル実行部の各構成要素を仮想化することである。カーネル実行部の構成要素には、ファイル、レジストリ、カーネルオブジェクト、プロセス、スレッド、仮想メモリー管理者、構成管理者、I/O管理者などがあり、OS別にこれらの構成要素は変わることがある。
一般的にアプリケーションプログラムのプロセスやデバイスドライバがファイル(File)、レジストリ(Registry)、オブジェクトの使用を必要とする場合、カーネル実行部に要請すると、カーネル実行部は該当内容を処理する。カーネル実行部の各構成要素は固有の識別子を有する。ファイルの場合、WDeviceWHarddiskVolume1WwindowsWsystem32Wnotepad.exeのようなファイル名が識別子になり、レジストリの場合、WRegistryWMachineWSoftwareのようなキー名が識別子となる。プロセスやスレッドの場合、プロセスID、スレッドIDと呼ばれる数字が識別子である。
カーネル実行部の各構成要素を仮想化しようとすると、これらの識別子に対する独立性を付与し、各仮想マシン別に記憶空間を割り当てれば良い。例えば、第一の仮想マシンインスタンスのファイルシステムのためにWVM1空間を割り当てて第二の仮想マシンインスタンスのファイルシステムのためにWVM2空間を割り当てる。アプリケーションプログラムのプロセスやデバイスドライバがファイルに対するアクセスを要請すると、VMカーネルのマネージャー(管理部)が該当仮想マシンのファイルシステム内のファイルであるものに変更し、これをカーネル実行部に伝達する。
例えばVM1内のプロセスがWDeviceWHarddiskVolume1WwindowsWsystem32Wnotepad.exeに対するアクセスを要請したのであれば、VMカーネル管理者はこれをWVM1WDeviceWHarddiskVolume1WwindowsWsystem32Wnotepad.exeに変更してカーネル実行部に伝達し、カーネル実行部はWVM1の記憶空間に該当ファイルを生成するようになる。つまり、要請されたファイル名はWDeviceWHarddiskVolume1WwindowsWsystem 32Wnotepad.exeであって同一であるが、ファイル自体は各仮想マシン別に異なるのである。レジストリやカーネルオブジェクトなど他の構成要素も同じ方法で仮想化する。
仮想カーネルを具現する別のある実施例は、一つのカーネル実行部の各構成要素を仮想的に何個かに分けるのではなく、カーネル実行部自体を各仮想マシン別に一つずつ生成することである。
一般的に、保護モードと仮想アドレスを支援するCPUで動作するOSはユーザーモードとカーネルモードを提供するが、ユーザーモードの仮想アドレスの空間は各プロセス別に独立しているのに比して、カーネルモードの仮想アドレスの空間はすべてのプロセスにおいて共有され、グローバルである。例えば、ノートパッドのような使用者側プロセスはユーザーモードで動作するため、同じプログラムをいくつか実行することができ、各プロセスは固有の仮想メモリーの空間を有するため、同一の仮想メモリーアドレスに独立したデータを記憶することができるものの、カーネル実行部はカーネルモードで実行されることから同一の仮想メモリーアドレスにはただ一つのデータしか記憶することができず、いくつかを実行することはできない。
本願発明はこれを解決するために、カーネルマネージャーは物理的なメモリーとカーネル実行部との間にVMEngine Memory Managerを置く。VMEngine Memory Managerはカーネル実行部以外のカーネルモード要素の仮想メモリーの空間はグローバルに置いておき、カーネル実行部の仮想メモリーの空間は、ユーザーモードのように各仮想マシン別に独立して存在するようにすることによって同一のメモリーアドレスに互いに異なる値が記憶されるようにし、仮想マシン別に一つのカーネル実行部が生成されることを可能にする。もちろん、メモリー資源の効率的な利用のために、一部の仮想メモリーは共有することができる。
前記実施例のような技術を利用して、仮想マシン別に仮想カーネルを生成した後、システムのブーティングの過程を経て初めて完全なゲストOS環境が準備される。ブーティングの過程は、ホストOSのブーティングの過程に伴う。一般的に各仮想マシンで使用されるハードウェアチェック、サブシステムロード、遅れた変更、システムプロセスの実行、サービスプロセスの実行、使用者側プロセスの実行、デバイスドライバロードの全体あるいは一部の過程が必要である。
遅れた変更というのは、ファイル等の資源が使用中であればこれを削除したり変更したりすることが不可能であるため、一般的にシステムの終了後、次回のブーティングの過程において資源の削除や変更を処理することを意味する。システムプロセスはOSの環境を提供するのに必要な核心プロセスであって、使用者側アカウントの管理、ログオン処理、セッション管理、サービス管理などを担当するプロセスである。例えばマイクロソフト社のWindows(登録商標)オペレーティングシステムではlsass.exe、winlogon.exe、smss.exeのようなプロセスである。サービスプロセスはバックグラウンドで実行されながら、他のアプリケーションプログラムが必要な機能を提供するプロセスであって、DCOM/RPCサービス、プリンタspoolerサービスなどがある。
システムプロセスやサービスプロセスは、仮想マシン内にすべてのプロセスを実行することもできるが、全体システムの資源を効率的に利用するためにホストOSや別の仮想マシンにすでに実行されているプロセスを共有することもできる。例えば、アカウント管理システムのプロセスの場合、仮想マシンごとに一つずつ実行すれば各仮想マシン別に独立したアカウントが存在するが、ホストOSのプロセスを共有する場合、ホストOSのID/パスワードアカウント情報を各ゲストのOSが共有するようになる。
システムプロセスやサービスプロセスを共有するためには、該当プロセス内に存在するすべてのグローバルのオブジェクトに対するアクセスを、共有するプロセスのオブジェクトでマッピングさせなければならない。例えば、プリンタspoolerサービスのプロセスにはプリンタ制御のための名前付きパイプ(named pipe)等が存在するが、ゲストOS内のメモ帳プロセスが文書出力を要請すると基本的にゲストOS内のspoolerサービスの名前付きパイプで接続を試みるのである。ところが、ゲストOS内にはspoolerサービスが存在せず、ホストOSのものを共有するため、このような要請をホストOSのspoolerサービスでマッピングしなければならない。
デバイスドライバ等のカーネルアプリケーションプログラムも各ゲストOSにロードされ得る。カーネルアプリケーションプログラムの場合、カーネル実行部の場合のようにグローバルな仮想アドレス空間の問題が発生することがあり、これを解決するために必要な場合、VMカーネルマネージャー内のVMEngine Memory Managerは仮想アドレスの空間を局所化(ローカライズ)することができる。
使用者側プロセスの実行段階において、サービス提供者のアプリケーションプログラムや使用者側のアプリケーションプログラムがゲストOS内で実行される。
システムのシャットダウン過程は、ホストOSのシャットダウン過程に伴う。使用者側プロセスの終了、サービスおよびシステムプロセスの終了、デバイスドライバのオンロード、各種資源の解除等が必要である。
本願の仮想化方式を利用する場合、仮想マシンイメージの容量を大幅に減らすことができる。従来の仮想化方式で仮想マシンイメージを具現する場合には、OSのためのデータが必要であるため、マイクロソフト社のWindows(登録商標)の場合、OSを生成するためには、現在600メガバイトないし4ギカバイト程度のデータが必要であり、Linuxの場合、数十メガバイトで数ギカバイト程度のデータが必要である。ところが、本願の仮想化方式によると、OSの生成のためのデータが必要なくなる。これは、提供者が使用者側のシステムに強制的に保護空間を生成する技術を現実化する。
仮想マシンの構成要素
仮想マシンの構成要素は、設定マネージャー、デスクトップの環境、アプリケーションプログラムのテンプレート、使用者側データおよび臨時データを含み、これらの構成要素を組み合わせれば一つの仮想マシンが完成する。
設定マネージャーは仮想マシンの各種設定を管理する。設定項目は使用者側が入力したものとサービス提供者が提供したものがある。
デスクトップの環境は、壁紙、テーマ、ウインドウズスタイル、バックミュージック等から構成される。ある使用者側システムには同時にいくつかの仮想マシンおよびゲストOSが実行され得るために、デスクトップ環境はデスクトップの統合機能を提供しなければならない。デスクトップの統合は、それぞれのゲストOS内に存在する開始メニュー、壁紙のアイコン等をホストOSのものに統合して示すものである。背景イメージ、バックミュージック、ウインドウズスタイル等は実行中であるゲストOSのもののうちの一つを選択しなければならない。
アプリケーションプログラムのテンプレートは、事前インストール(pre-installation)されたアプリケーションプログラムのイメージと標準プラットホームの提供者が管理する共有ライブラリーのイメージに構成される。アプリケーションプログラムのテンプレートには提供者のサービス利用に必要なアプリケーションプログラムがインストールされており、アプリケーションプログラムのテンプレートは使用者側が提供者にサービスの利用を要請する際に、サービスサーバから使用者側システムに伝送される。
従来にはアプリケーションプログラムを使用するためにインストール過程が必要であった。例えば、マイクロソフトオフィスをインストールする時、インストールCDでsetup.exeやautorun.exeのようなインストールファイルを実行して、オフィスのアプリケーションプログラムを使用者側のPCに直接インストールしなければならない。本願発明を利用すると、前記インストール過程を必要とせずにアプリケーションプログラムを使用することができる。例えば、アプリケーションプログラムのテンプレート生成用の仮想マシンにおいて従来の方法でオフィスアプリケーションプログラムをインストールすると、その結果はアプリケーションプログラムのイメージに記憶され、一般の仮想マシンではこれらのイメージをロードすると、インストール過程なしに直ちにオフィスアプリケーションプログラムを使用することができる。
一般的にアプリケーションプログラムが実行されるためには、別のアプリケーションプログラムや共有ライブラリーが必要である。例えば、マイクロソフト社のオフィス関連プログラムを使用するためにはインターネットエクスプローラ、ドットネットフレームワーク(.NET Framework)等が必要である。これらの共有ライブラリーを各アプリケーションプログラムのイメージに重複的にインストールする代わりに共有ライブラリーのイメージを生成し、これをアプリケーションプログラムに連結する方式を導入すると資源を効率的に利用することができる。
使用者側ごとに使用中である仮想マシンの環境は異なる。例えば、特定の共有ライブラリーのイメージがすでに存在するマシンもあって、そうではないマシンもあり、ホストOSがウインドウズXPの基盤であることもあるし、ウインドウズ2000の基盤であることもあり得る。したがって、アプリケーションプログラムのテンプレート生成用仮想マシンで作ったテンプレートが多様な仮想マシンで十分に動作するためには標準プラットホームの提供者が標準的な仮想マシンの環境を提供し、アプリケーションプログラムテンプレートは標準プラットホームにおいて動作しなければならない。
使用者側データのイメージには使用者側が仮想マシンを介して提供者のサービスを使用する過程で、使用者側が生成したデータに各種文書ファイル、使用者側の指定ファイル、使用者側が直接インストールしたソフトウェアのファイルおよびレジストリ等が記憶される。
臨時データイメージには、仮想マシンの実行過程において生成されたデータとして臨時の使用が終わった後、削除されても問題ないデータが記憶される。デスクトップ環境、アプリケーションプログラムのテンプレート、使用者側のデータは別の仮想マシンでロードしたり共有したりすることができるものの、臨時データは特定の仮想マシンの実行過程で生成されたものであって共有されない。
図7に示された通り、アプリケーションプログラムのテンプレート、使用者側データ、臨時データは階層化されている。ファイルシステムを例に挙げると、ファイルシステムスタックにはホストOSのファイル、標準プラットホーム提供者内のファイル、アプリケーションプログラムのイメージ内のファイル、使用者側のデータファイル、臨時のデータファイルが積まれている。アプリケーションプログラムがc:WwindowsWsystem32Wnotepad.exeを要請すると、臨時データで該当ファイルを探し、存在しなければ使用者側データファイルで探し、存在しなければアプリケーションプログラムのデータファイルで探し、存在しなければホストOSのファイルで探す。レジストリ、カーネルオブジェクト等、他のカーネル構成要素も同じ方式で動作する。
アプリケーションプログラムのテンプレートイメージ、使用者側のデータイメージ、臨時のデータイメージには、ファイル、レジストリ、メモリー、その他のデータを記憶することができ、各イメージは一つあるいはいくつかのファイル形態で記憶されたり、物理的な記憶媒体のセクターに直接記憶されることもある。イメージの最初生成時に必要な大きさの記憶空間を予め割り当てることもでき、仮想マシンを使用しながら必要な大きさだけ動的に増加させることもできる。
仮想マシンイメージは、固定式ハードディスクドライブ、移動式ドライブ、ネットワークに連結されたファイル記憶サーバ等、多様な媒体に、全体あるいは一部のイメージが記憶されたりキャッシュされたりし得る。使用者側が移動式ディスクやネットワークに連結されたファイル記憶サーバをイメージの記憶場所として選択した場合、現在使用中であるシステムでない別のシステムで同一のサービスを利用する時、移動式記憶装置を連結したりファイル記憶サーバに接続したりして、使用者側のデータのイメージやアプリケーションプログラムのイメージをロードすることにより、使用者側が既存システムで利用中であった環境をそのまま再現して使用することができる。アプリケーションプログラムのイメージを利用して、アプリケーションプログラムのインストール環境を再現することができ、使用者側のデータイメージを利用して、既に作業中であった文書ファイルおよびその他のデータをそのまま利用することができる。互いに異なるシステムの間の差は、標準プラットホームの提供者が補正してくれる。
イメージキャッシュ機能を利用すると、全体イメージにおいて現在必要な部分のみサーバでクライアントに伝送し、伝送された部分を利用して仮想マシンを実行することができる。様々なサービス提供者が同一のアプリケーションプログラムのテンプレートを使用する場合、使用者側は他の提供者のサービス利用過程において伝送されたイメージキャッシュを利用することによって、ネットワーク伝送の効率性を高めることができる。使用者側がキャッシュされたイメージを固定式ハードディスクに記憶するのではなく、USBドライブのような移動式記憶装置に記憶すると、他のシステムで同一のサービスを利用する際に移動式記憶装置にキャッシュされたイメージを利用して、素早くサービスを使用することができる。
クライアントの個体の検証
クライアントの個体の検証は、安全なゲストOSの環境を提供するためのものであって、ゲストOS内でロードされ得る実行ファイル、文書ファイル、客体、DLLなどの検証リストを管理するものである。従来の全仮想化技法によると、仮想マシンで生成されたゲストOSと既存のホストOSはいかなる一部の資源も共有しない完全に分離した二つのシステムであると見なされるものの、本願で利用するOSレベルの仮想化方式によると、ゲストOSがホストOSの資源を一部共有するため、共有されたホストOSの資源が安全であるかを検査するためにクライアントの個体の検証を要求するようになる。
これはクライアントのアプリケーションがホストOSの資源を共有するということを知っている悪意の使用者側が、クライアントのアプリケーションが使用するホストOSの資源にアクセスしてデータを操作することにより、結果的にサーバに伝送されるパケットが操作されるようにするなどの行為を防止する。逆に、ホストOSには機密文書の資料や半導体の設計回路のようなセキュリティが要求されるデータが存在し得るため、ゲストOSがアクセスしようとするホストOSの個体が許容されないものであれば、クライアントの個体の検証を通じてアクセスを遮断することができる。
仮想マシンの設定管理者において仮想マシンのセキュリティレベルを設定することができ、セキュリティオプションには、すべて許容、ホスト検証、全体検証がある。すべて許容の場合、ゲストOSにどのようなファイルであっても実行されたりロードしたりされ得る。ホスト検証の場合、ホストOSと共有されるファイル、レジストリなどの個体は、ゲストOSに使用される前に使用可能なものであるかを検証する。アクセスしようとするホストOSの個体が機密資料、使用者側の画面等、サービス提供者がアクセスする権限のない個体である場合、アクセスを遮断する。アクセスしようとするホストOSの個体が悪性コードであるか、または悪性コードに感染している場合、および信頼のリストに存在しないファイルである場合、仮想マシンの設定マネージャーのセキュリティポリシーに応じてアクセスを遮断することができる。この場合、サービスサーバは悪性コードに感染していない安全なファイルを仮想マシンに複写した後、複写されたファイルを利用して次の段階を進行させる。全体検証は、ホストと共有されるファイル、レジストリ等の個体だけでなく、ゲストOSに存在する個体も使用される前に検証を行うのである。
検証の一実施例は、電子署名を利用するものである。ファイルの特定部分にファイル内容に対する電子署名値が添付されている場合、該当電子署名値を検証することによって信頼できるファイルであるか否かを確認することができる。ファイルの特定部分に記録するのではなく、検証リストにファイル名と電子署名を共に記録して管理することもある。
検証の別のある実施例は、ハッシュ値を利用するものである。ファイルの特定部分にファイル内容に対する解示値が添付されている場合、該当解示値を同一のアルゴリズムで再計算して、一致するか否かを検証することによって信頼することができるファイルであるか否かを確認することができる。ファイルの特定部分に記録するのではなく、検証リストにファイル名と解示値を共に記録して管理することもできる。
検証の別のある実施例は、ファイル名、生成日等の単純な情報を利用してチェックするものである。
検証の結果、安全でないのであれば、アクセス制御規則によりアクセスを遮断するか、またはサーバで安全な資源をゲストOSにインストールした後、それを使用する。サーバで安全な資源をクライアントに伝送した後、ゲストOSでは伝送された資源を使用する。
無欠性の検証
無欠性の検証は、使用者側および提供者に安全なサービス環境を提供するためのものであって、クライアント側の無欠性の検証とサーバ側の無欠性の検証が互いに連動してサーバとクライアント間の送受信データを検証する。無欠性の検証は、クライアントとサーバとの間にセキュリティトンネルを生成することによってクライアントとサーバに対する攻撃を遮断する。
詳述したクライアントの個体検証のみを実施する場合、サーバに対する攻撃を防御する手段がなく、仮想マシンで実行されるサービス提供者のソフトウェアを安全に保護するためには、仮想マシン内では該当ソフトウェアだけが実行され、悪性コード等は実行されてはならない。したがって、検証リストにサービス提供者のソフトウェアの内容を記録しておいて、検証された個体のみ使用を許すべきであるが、この場合ソフトウェアがアップデートされるたびに検証リストもアップデートしなければならないため、管理するのに不便な部分がある。
したがって、無欠性の検証を導入するとサーバに対する攻撃も防御し、サービス提供者のクライアントのアプリケーションプログラムも保護することができる。
図5を参照して、無欠性の検証を導入した本発明の一実施例を説明する。一般的にクライアント/サーバシステムはクライアント側システム(500)とサーバ側システム(550)で構成され、クライアント側システムとサーバ側システムとの間はネットワーク(532)で連結されている。クライアント側システム(500)はクライアントアプリケーション(521)とそれを実行することができるOSから構成され、アプリケーションの実行空間は一般的なアプリケーション実行空間(510)と保護空間(520)に分けられる。一般的なアプリケーション実行空間(510)には一般アプリケーション(511)、ハッキングツール(512)、その他のソフトウェア(513)が実行され得、保護空間(520)の中ではクライアントアプリケーション(521)と無欠性の検証(522)を実行する。今までサーバ側システム(550)に対するハッキングは、ハッカー(533)がクライアントアプリケーション(511)を操作するか、またはハッキングツール(512)を実行して悪性パケット(531)を生成し、それを伝送してサーバ側システム(550)を攻撃する方式からなっていた。したがって、既存のサーバシステムのセキュリティ製品は、前述した通りサーバ端に位置して受信されるネットワークパケットを検査して、許容の可否を決定したりサーバアプリケーション(551)の脆弱点自体を除去する方式で動作した。
一般的なアプリケーション実行空間(510)は、ハッカーが実行中であるアプリケーションを思いのままに操作することができ、領域内にどんなアプリケーションであっても実行することができるが、保護空間(520)は予め決められたクライアントアプリケーション(521)のみ実行され得るため、ハッキングツール、悪性コード、アドウェアは浸透することができず、ハッカーの攻撃からクライアントアプリケーション(521)を保護することができる。
ところが、保護空間(520)内のクライアントアプリケーション(521)が生成したパケットのみサーバ側システムに伝送されることを許容し、それ以外のアプリケーションプログラム(511、512、513)が生成したネットワークパケットはすべて遮断して初めて、サーバ側システム(550)もある程度保護することができる。また、保護空間(521)内で生成された安全なネットワークパケット(530)であっても、該当パケットは多様なネットワーク伝送区間(532)を経た後、サーバ側システム(550)に伝送されるため、ハッカー(533)はこのようなネットワーク伝送区間(532)でパケットを変造したり悪性コードを挿入したりすることができる。したがって保護空間(520)内のクライアントアプリケーション(521)で生成されたパケットがネットワーク伝送区間(532)でハッカー(533)により変造されていないことを保障する無欠性の検証が必要である。
無欠性の検証は、クライアント側の無欠性の検証(522)とサーバ側の無欠性の検証(540)から構成され、二つの部分が互いに作用して無欠性の有無を検証するようになる。
無欠性の検証のある実施例は暗号化である。図8は無欠性の検証の望ましい実施例を示す。保護空間(520)内において実行されたクライアントアプリケーション(800)で生成されたネットワークパケットとサーバアプリケーション(850)で生成されたパケットが伝送される過程において、ハッカー(860)がパケットを操作してクライアントアプリケーション(800)およびサーバアプリケーション(850)を攻撃することを防ぐために、クライアントとサーバとの間の送受信データを暗号化する。クライアントアプリケーション(800)で生成されたネットワークパケットはクライアント側暗号化手段(810)により暗号化されて伝送され、伝送されたパケットはサーバ側の復号化手段(840)により復号化されてサーバアプリケーション(850)に伝送される。サーバアプリケーション(850)において生成されたネットワークパケットは、サーバ側の暗号化手段(830)により暗号化されて伝送され、伝送されたパケットはクライアント側の復号化手段(820)により復号化されて、クライアントアプリケーション(800)に伝送される。この場合、クライアントとサーバとの間のネットワーク区間においてハッカー(860)が伝送されるネットワークパケットを偽造、変造することが不可能である。
無欠性の検証の別のある実施例は、図9に示されている通りハッシュを利用するものである。クライアントアプリケーション(900)が生成したネットワークパケットをサーバアプリケーション(930)に伝送する際に、クライアント側の無欠性情報追加モジュール(910)は伝送されるネットワークパケットを利用して、計算された無欠性の検証値をネットワークパケットに添付した後、これをサーバ側に伝送する。もしハッカー(940)が伝送過程においてパケットを偽造、変造(941)したのであれば、サーバ側の無欠性情報確認モジュール(921)でパケットを利用して計算した無欠性の検証値と、クライアント側の無欠性情報追加モジュール(910)で計算されて追加された無欠性の検証値が互いに異なるのであり、この場合、サーバ側の無欠性情報確認モジュール(921)は伝送されたネットワークパケットが偽造、変造されたものと判断して廃棄する。もし、値が同一であるならば、伝送されたパケットをサーバアプリケーション(930)に送る。
サーバアプリケーション(930)においてクライアントアプリケーション(900)にパケットを伝送する際に、サーバ側の無欠性情報追加モジュール(920)は伝送されるネットワークパケットを利用して計算された無欠性の検証値をネットワークパケットに添付した後にクライアント側に伝送する。もし、ハッカー(940)が伝送過程においてパケットを偽造、変造(941)したのであれば、クライアント側の無欠性情報確認モジュール(911)でパケットを利用して計算した無欠性の検証値と、サーバ側の無欠性情報追加モジュール(920)で計算されて追加された無欠性の検証値が互いに異なるのであり、この場合、クライアント側の無欠性情報確認モジュール(911)は、伝送されたネットワークパケットが偽造、変造されたものと判断して廃棄する。もし値が同一であるならば、伝送されたパケットをクライアントアプリケーション(900)に送る。
現在までのサーバアプリケーションの保安システムは、伝送されるすべてのパケットに悪意的な内容があるか否かをOSI 7階層において第7階層である(アプリケーション層)で確認しなければならないことから、かなりの計算が必要だったためにサーバシステムの性能低下をもたらしたが、本発明はこのような計算が必要ないためサーバシステムが性能低下せずにシステムを保護することができる。
本願発明の目的のうちの一つであるサービス使用者側のシステム保護は、前記で記述された保護空間のインストールを通じて実現される。サービス提供者のソフトウェアが悪性コードであるとか悪性コードに感染している場合、または知られていない脆弱点攻撃用コードが隠されている場合にも、ホストOSが感染するのを防ぐことができる。さらに、クライアントの個体検証を実施して使用者側のシステムのさらなる保護が可能である。ゲストOSが、アクセスしようとするホストOSの個体を許容しないのであれば(例:機密文書資料)、クライアントの個体検証を通じて、アクセスを遮断することができる。
本願発明の目的のうちの一つであるサービス提供者のシステム保護は、前記で記述された保護空間のインストールおよび無欠性の検証を通じて実現される。サービス提供者は使用者側システムに安全なゲストOSの環境を生成し、ゲストOS内においてクライアントのアプリケーションを実行して、ホストOSに存在する悪性コード、ハッキングプログラムからクライアントアプリケーションを保護する。また、無欠性の検証を利用して安全なゲストOS内で生成されたネットワークパケットのみを受け入れることによって、サーバは外部の攻撃から自らを保護することができる。さらに、クライアントの個体検証を実施して、悪意的な使用者側によるクライアントアプリケーションの操作を防止することにより、窮極的に提供者のシステムの更なる保護が可能である。
本願発明の目的のうちの一つであるサービス提供者のシステムとサービス使用者側のシステムの同時保護は、前記で記述された保護空間のインストール、クライアントの個体検証および無欠性の検証を通じて実現される。これにより、本明細書が追求する最も理想的な保安システムが完成される。
本願発明の目的のうちの一つであるソフトウェアの便利な配布および使用者側の容易かつ素早いソフトウェアの利用は、仮想マシンイメージの伝送を通じて実現される。個々人が各自必要なソフトウェアを直接インストールし、各種プログラムの設定を合わせる作業には熟練した知識を必要とする。本願発明は、サービス利用のためのソフトウェア環境をサービス使用者側が直接構成するのではなく、サービス提供者がサービスのために最適化された環境を構成し、サービス利用者は構成された内容をそのまま使用することができるようにする。したがって、コンピュータに習熟していない使用者側も、従来の複雑なソフトウェアのインストール過程なしにサービス提供者が伝送したアプリケーションテンプレートを利用して直ちにサービスを利用することができ、イメージキャッシュ機能と移動式ドライブやファイルサーバ記憶機能を利用して、素早く気軽にサービスを利用することができる。
本発明の最善の実施例によると、使用者側がサービスの利用を要請すると、提供者は使用者側のシステムに仮想マシンイメージを伝送し、伝送されたイメージは仮想マシンインスタンスを生成し、サービスイメージ内の事前にインストールされたクライアントアプリケーションが実行される。
クライアントアプリケーションが仮想マシン内で実行されるため、これらのソフトウェアが悪性コードであるとか悪性コードに感染した場合でも使用者側のシステムは安全に保護され、使用者側が複雑なインストール過程なしに、容易で素早く、かつ手軽にサービスを使用することができる。
特にインターネットを介した顧客サービスの環境を仮想化することが有用である。例えば、従来技術上のインターネットバンキング方式は、使用者側がインターネットバンキングを利用しようとすれば、公認認証書のアプリケーションおよび各種セキュリティプログラムをインストールしなければならないが、インストールされる各種セキュリティプログラムはハッキングから使用者側や提供者の情報を効果的に防御することができない。ところが、インターネットバンキングに必要な各種アプリケーションが予めインストールされた仮想マシンを利用する場合、使用者側は提供者のサービスを簡単かつ素早く利用することができ、ハッキングからシステムを安全に保護することができる。インターネットバンキングだけでなくインターネットショッピング、インターネット株式取引きなど大部分のインターネットを利用した顧客サービスに同じ方式で適用することができる。
本発明のある実施例は、前記の最善の実施例にクライアントの個体の検証をさらに実施する。クライアントの個体の検証を実施することで安全なゲストOSの環境を生成することができ、ゲストOS内のプロセスがホストOSの重要資源にアクセスするのを遮断することができ、その逆も可能である。また、ホストOSにインストールされた悪性コードやハッキングプログラムその他のハッカーの操作からクライアントアプリケーションを安全に保護することができる。
本発明の別の実施例は、前記の実施例に無欠性の検証をさらに実施する。無欠性の検証を実施してサーバとクライアントに対するネットワーク上における攻撃を遮断することができ、最も安全なシステムを提供することができる。無欠性の検証を通じて、サーバはただ保護空間内部で生成された後、操作されていないデータのみが受信される。
本発明のまた別の実施例によると、使用者側が要請した複数のプログラムが予めインストールされた仮想マシンイメージが提供者から使用者側のシステムに伝送される。従来にはソフトウェアの配布は、ソフトウェア製作会社や流通会社がオンライン、オフラインでソフトウェアを販売すると、購買者はインストールCDの郵便配達、電子ファイルのダウンロード等の形態でソフトウェアの伝達を受けた後、自らのPCに直接インストールして使用した。ソフトウェアの販売者が仮想マシンイメージの形態でソフトウェアを配布したり、必要なソフトウェア群を一つの仮想マシンに入れて標準仮想マシンの形態で配布したりする場合、コンピュータを充分に知らない使用者側もPCを一般家電製品のように簡単かつ素早く使用することができる。使用者側の要請は、少なくとも一つのインストールされるプログラムの種類および各プログラムの所定の設定事項を予め決定することを含む。使用者側が要請した少なくとも一つのプログラムおよび各設定事項は、提供者が予め仮想マシンのイメージにインストールしておき、使用者側の要請がある時にこれを使用者側のシステムに伝送する。
使用者側の要請に伴う各使用者側のオーダーメード式の仮想マシンイメージは、サーバに別途に記憶しておくことができる。したがって、使用者側がシステムの破壊やOSの故障が発生したためにプログラムを再インストールしなければならない時に、記憶しておいた仮想マシンのイメージをサーバから再伝送を受けることによりシステムの復旧を迅速になすことが可能である。
本発明のまた別の実施例によると、本システムを企業内のイントラネットや企業外のエキストラネットの環境を利用して、企業内の業務環境を仮想化することである。この場合、使用者側は企業の役職員、協力業者などの外部の業務上の人であってもよく、提供者は企業内のIT担当者である。使用者側は従来の場合、業務に必要なソフトウェアを求めて個別にインストールした上で業務環境を構築しなければならなかったが、本システムを利用すると、提供者が生成しておいた業務用仮想マシンを介して、予めセッティングされた業務環境を容易に利用することができる。提供者は社内で配布するアプリケーションに対するバージョンの管理、維持補修等がしやすくなり、これによって企業のITの管理費用が節減される。また、業務空間を仮想化する場合、生成された業務資料が仮想マシン内にしか存在しないため、機密資料の流出も防止することができる。また、出張、外勤時に必要に応じてインターネットカフェ、ホテルなどで共用PCを利用する場合、仮想マシンイメージを利用して同一の業務環境を直ちに再現することができ、業務完了後、仮想マシンイメージをイメージサーバに記憶し、共用PCにおいて削除すれば作業していたすべての内容が除去されるため、他の使用者側に企業資料が流出することも防止することができ、PCにハッキングツールがインストールされている場合も仮想マシン内は安全であるため安心して業務を行うことができる。
与えられた本発明の原理に対する説明に、数多くの変化および変形が考案されるものと理解される。よって、後記される特許請求の範囲は本発明の本質および範囲から外れない、そのようなすべての変化および変形を含むことを意図とする。
本発明はインターネット環境において、サーバクライアントの形態で動作するホームショッピングやホームバンキングのような各種電子商取引、企業や官公署の文書やその他のデータのセキュリティ製品、各種ソフトウェアの配布等、多様な分野において適用され得る。
従来のネットワーク・ファイアウォールの動作を概略的に示す図面である。 従来のウェブアプリケーション・ファイアウォールの動作を概略的に示す図面である。 従来の脆弱点スキャナーおよびソースコード点検ツールを使用して、アプリケーションを開発する過程を概略的に示す図面である。 本発明のサーバシステムとクライアントシステムの好ましい実施例を示す図面である。 本発明におけるシステムの無欠性の検証の好ましい実施例を示す図面である。 本願におけるOSレベルの仮想化方式の好ましい実施例を示す図面である。 本願の好ましい実施例に伴う階層化されたデータを示す図面である。 本発明の無欠性の検証を具現する好ましい実施例を示す図面である。 本発明の無欠性の検証を具現するまた別の好ましい実施例を示す図面である。

Claims (23)

  1. ネットワーク上でサービス提供者がサービス使用者側にサービスを提供する方法において、
    サービス提供者がネットワークを介して、サービス使用者側からサービスの要請を受ける段階;
    サービス提供者がネットワークを介して、サービス使用者側のシステムに保護空間を生成する段階;および、
    前記保護空間の内部において、サービスの提供に必要なアプリケーションが実行される段階を含み、
    前記保護空間は、サービス使用者側のシステムの保護空間の外部と独立していることを特徴とするネットワーク上におけるサービス提供方法。
  2. 請求項1において、
    前記保護空間は、仮想マシンイメージを伝送することによって生成されることを特徴とするネットワーク上におけるサービス提供方法。
  3. 請求項2において、
    前記仮想マシンイメージは、サービスの提供に必要な全部または一部のアプリケーションを含むことを特徴とするネットワーク上におけるサービス提供方法。
  4. 請求項2において、
    前記仮想マシンは、OSを仮想化して生成され、これによりサービス使用者側のシステムはホストOSとゲストOSに分割され、
    前記ゲストOSは、前記保護空間を構成することを特徴とするネットワーク上におけるサービス提供方法。
  5. 請求項4において、
    前記ホストOS内の個体がアクセス可能であるか否かを検証する段階をさらに含み、可能な場合、前記個体はゲストOSから利用可能であることを特徴とするネットワーク上におけるサービス提供方法。
  6. 請求項4において、
    前記ホストOSの資源が安全であるか否かを検証する段階をさらに含み、
    安全な場合、ゲストOSと資源を共有することを特徴とするネットワーク上におけるサービス提供方法。
  7. 請求項1において、
    前記サービス提供者は、前記保護空間で生成されたデータのみを受信することを特徴とするネットワーク上におけるサービス提供方法。
  8. 請求項1または請求項7において、
    前記サービス提供者が送受信するデータの無欠性を検証する段階をさらに含むことを特徴とするネットワーク上におけるサービス提供方法。
  9. 請求項8において、
    前記無欠性の検証は、提供者側と使用者側とのうちのいずれか一方でデータを暗号化して伝送し、他の一方においては受信したデータを復号化することによってなることを特徴とするネットワーク上におけるサービス提供方法。
  10. 請求項8において、
    前記無欠性の検証は、提供者側と使用者側のいずれか一方でデータに解示値を付加して 伝送すると他の一方においては受信したデータに付加された解示値を確認することによってなることを特徴とするネットワーク上におけるサービス提供方法。
  11. プログラムを配布するサービスを提供する方法において、
    サービス提供者がネットワークを介してサービス使用者側からプログラムの配布の要請を受ける段階;
    サービス提供者が仮想マシンのイメージをサービス提供者に伝送する段階;および前記サービス使用者側のシステムに前記仮想マシンのイメージをインストールする段階を含み、
    前記仮想マシンのイメージにはサービス使用者側が要請した少なくとも一つのプログラムが予めインストールされていることを特徴とするプログラム配布方法。
  12. 請求項11において、
    前記仮想マシンは、OSレベルの仮想化方式で生成されることを特徴とするプログラム配布方法。
  13. 請求項11または請求項12において、
    前記使用者側の要請は、少なくとも一つのインストールされるプログラムの種類および各プログラムの所定の設定事項を予め決定することを含むことを特徴とするプログラム配布方法。
  14. 請求項11ないし請求項13のうちいずれか一項において、
    前記使用者側に提供された仮想マシンのイメージは、提供者のシステムまたは外部記憶空間に記憶され、
    これにより、使用者側は前記仮想マシンのイメージの再伝送を受けることができることを特徴とするプログラム配布方法。
  15. クライアントとサーバから構成されるネットワークシステムのセキュリティシステムにおいて、
    前記クライアントにインストールされてクライアントアプリケーションを保護する保護空間生成手段と、
    クライアント側および/またはサーバ側に提供され、クライアントとサーバとの間で送受信するネットワークパケットが操作されなかったことを保障するための無欠性の検証手段と、
    を含むことを特徴とするクライアント/サーバセキュリティシステム。
  16. 請求項15において、
    前記サーバに提供される無欠性の検証手段は、前記保護空間において実行されたクライアントアプリケーションで生成されたネットワークパケットのみを許容することを特徴とするクライアント/サーバセキュリティシステム。
  17. 請求項15または請求項16において、
    前記保護空間生成手段は仮想マシンであることを特徴とするクライアント/サーバセキュリティシステム。
  18. 請求項15または請求項16において、
    前記保護空間生成手段は、隔離されたOSの資源を生成する手段であることを特徴とするクライアント/サーバセキュリティシステム。
  19. 請求項18において、
    前記隔離されたOSの資源の生成手段は、保護空間内で実行されるプロセスがアクセスすることができない資源に対するアクセスを遮断し、保護空間外で実行されるプロセスが保護空間内で実行されるプロセスの資源にアクセスすることを遮断することを特徴とするクライアント/サーバセキュリティシステム。
  20. 請求項19において、
    前記資源に対するアクセスは、メモリー、ファイル、ディレクトリ、レジストリ、ハンドル、プロセス、及びネットワークのうちの全部または一部に対するアクセスであることを特徴とするクライアント/サーバセキュリティシステム。
  21. 請求項15において、
    前記無欠性の検証手段は、無欠性情報の生成手段、および無欠性情報の確認手段を備えることを特徴とするクライアント/サーバセキュリティシステム。
  22. 請求項21において、
    前記無欠性情報の生成手段は、パケットを暗号化し、前記無欠性情報の確認手段はパケットを復号化することを特徴とするクライアント/サーバセキュリティシステム。
  23. 請求項21において、
    前記無欠性情報の生成手段は、検証値を付加し、前記無欠性情報の確認手段は前記検証値を確認することを特徴とするクライアント/サーバセキュリティシステム。
JP2009510892A 2006-05-18 2007-05-17 クライアントおよびサーバの保護方法 Pending JP2009537892A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR1020060044601A KR20070111603A (ko) 2006-05-18 2006-05-18 클라이언트 및 서버의 보안시스템
KR20070027161 2007-03-20
PCT/KR2007/002411 WO2007136192A1 (en) 2006-05-18 2007-05-17 Method for protecting client and server

Publications (2)

Publication Number Publication Date
JP2009537892A true JP2009537892A (ja) 2009-10-29
JP2009537892A5 JP2009537892A5 (ja) 2010-07-01

Family

ID=38723487

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009510892A Pending JP2009537892A (ja) 2006-05-18 2007-05-17 クライアントおよびサーバの保護方法

Country Status (4)

Country Link
US (1) US8738786B2 (ja)
EP (1) EP2021934A4 (ja)
JP (1) JP2009537892A (ja)
WO (1) WO2007136192A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011514992A (ja) * 2008-02-27 2011-05-12 サムスン エレクトロニクス カンパニー リミテッド 仮想化技術を利用したデータ入出力方法及び装置
JP2022107585A (ja) * 2021-01-11 2022-07-22 ペンタ・セキュリティ・システムズ・インコーポレーテッド マシンラーニングセルフチェック機能を利用する非対面認証基盤ウェブファイアウォールメンテナンス方法および装置

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8769690B2 (en) * 2006-03-24 2014-07-01 AVG Netherlands B.V. Protection from malicious web content
US20100107163A1 (en) * 2007-03-20 2010-04-29 Sanggyu Lee Movable virtual machine image
US8200738B2 (en) * 2007-09-30 2012-06-12 Oracle America, Inc. Virtual cluster based upon operating system virtualization
US8539551B2 (en) * 2007-12-20 2013-09-17 Fujitsu Limited Trusted virtual machine as a client
US20090183182A1 (en) * 2008-01-10 2009-07-16 Microsoft Corporation Dynamic Composition of Virtualized Applications
US8307456B2 (en) * 2008-02-28 2012-11-06 Red Hat, Inc. Systems and methods for a secure guest account
US8392361B2 (en) * 2008-08-11 2013-03-05 Vmware, Inc. Centralized management of virtual machines
US8209343B2 (en) * 2008-10-06 2012-06-26 Vmware, Inc. Namespace mapping to central storage
US8954897B2 (en) * 2008-08-28 2015-02-10 Microsoft Corporation Protecting a virtual guest machine from attacks by an infected host
KR100985074B1 (ko) 2009-02-05 2010-10-04 주식회사 안철수연구소 선별적 가상화를 이용한 악성 코드 사전 차단 장치, 방법 및 그 방법을 실행하는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체
US9372711B2 (en) 2009-07-20 2016-06-21 Google Technology Holdings LLC System and method for initiating a multi-environment operating system
US9367331B2 (en) 2009-07-20 2016-06-14 Google Technology Holdings LLC Multi-environment operating system
US9348633B2 (en) 2009-07-20 2016-05-24 Google Technology Holdings LLC Multi-environment operating system
US9389877B2 (en) 2009-07-20 2016-07-12 Google Technology Holdings LLC Multi-environment operating system
US8505103B2 (en) * 2009-09-09 2013-08-06 Fujitsu Limited Hardware trust anchor
EP2497026B1 (en) * 2009-11-04 2016-12-07 Deere & Company Electronic data processing system having a virtual bus server application
EP2521976B1 (en) * 2010-01-08 2018-04-18 Sauce Labs, Inc. Real time verification of web applications
DE102010014829A1 (de) * 2010-04-14 2011-10-20 Deutsche Telekom Ag Verfahren und System zur Übertragung von Daten
US8484465B1 (en) * 2010-12-08 2013-07-09 Google Inc. Heterogeneous virtual machines sharing a security model
US9063819B2 (en) * 2011-01-02 2015-06-23 Cisco Technology, Inc. Extensible patch management
US9354900B2 (en) 2011-04-28 2016-05-31 Google Technology Holdings LLC Method and apparatus for presenting a window in a system having two operating system environments
KR101281825B1 (ko) * 2011-09-07 2013-08-23 주식회사 팬택 클라우드 시스템에서 가상 인터페이스를 이용하는 보안 강화 장치 및 방법
US9417753B2 (en) 2012-05-02 2016-08-16 Google Technology Holdings LLC Method and apparatus for providing contextual information between operating system environments
US9342325B2 (en) 2012-05-17 2016-05-17 Google Technology Holdings LLC Synchronizing launch-configuration information between first and second application environments that are operable on a multi-modal device
US9237188B1 (en) * 2012-05-21 2016-01-12 Amazon Technologies, Inc. Virtual machine based content processing
US8949995B2 (en) 2012-09-18 2015-02-03 International Business Machines Corporation Certifying server side web applications against security vulnerabilities
US10356047B2 (en) 2013-12-05 2019-07-16 Crowdstrike, Inc. RPC call interception
CN104572169B (zh) * 2014-09-10 2017-10-27 中电科技(北京)有限公司 一种基于uefi的软件分发和安装系统
US10956175B2 (en) 2016-01-08 2021-03-23 Hewlett-Packard Development Company, L.P. Boot process modification
CN106453616A (zh) * 2016-11-15 2017-02-22 国云科技股份有限公司 一种基于文件的虚拟机与宿主机通信方法
US10320694B2 (en) * 2017-05-04 2019-06-11 Nokia Of America Corporation Methods, apparatuses and computer-readable storage mediums for communication via user services platform
KR102223141B1 (ko) * 2019-02-12 2021-03-04 성균관대학교산학협력단 컨테이너 환경에서의 스토리지 드라이버의 동작 방법 및 스토리지 드라이버 장치

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10154078A (ja) * 1996-10-07 1998-06-09 Internatl Business Mach Corp <Ibm> ネットワーク・サービスへのアクセス提供方法
JP2001051857A (ja) * 1999-08-04 2001-02-23 Fujitsu Ten Ltd ネットワーク端末でのソフトウエア実行方法
JP2001318797A (ja) * 2000-05-10 2001-11-16 Nec Corp 自動データ処理装置
WO2005027402A1 (en) * 2003-09-05 2005-03-24 Copeland Scott R Personal computer internet security system
JP2005332223A (ja) * 2004-05-20 2005-12-02 Ntt Data Corp 仮想マシン管理システム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7058822B2 (en) 2000-03-30 2006-06-06 Finjan Software, Ltd. Malicious mobile code runtime monitoring system and methods
US6496847B1 (en) * 1998-05-15 2002-12-17 Vmware, Inc. System and method for virtualizing computer systems
US6799197B1 (en) * 2000-08-29 2004-09-28 Networks Associates Technology, Inc. Secure method and system for using a public network or email to administer to software on a plurality of client computers
US7099948B2 (en) 2001-02-16 2006-08-29 Swsoft Holdings, Ltd. Virtual computing environment
US8001259B2 (en) * 2001-06-01 2011-08-16 International Business Machines Corporation Pervasive, distributed provision of services such as product brokerage
US7216173B2 (en) 2001-06-12 2007-05-08 Varian Medical Systems Technologies, Inc. Virtual private network software system
US7610332B2 (en) * 2002-01-15 2009-10-27 Nortel Networks Limited Overlay networks
WO2003107183A1 (en) 2002-06-12 2003-12-24 Fslogic Inc. Systems and methods for the creation of software packages using layered systems
US20050198303A1 (en) * 2004-01-02 2005-09-08 Robert Knauerhase Dynamic virtual machine service provider allocation
US20100005531A1 (en) * 2004-12-23 2010-01-07 Kenneth Largman Isolated multiplexed multi-dimensional processing in a virtual processing space having virus, spyware, and hacker protection features
JP4242819B2 (ja) * 2004-10-06 2009-03-25 株式会社日立製作所 オフライン作業可能な端末を有する計算機システム
US7849462B2 (en) 2005-01-07 2010-12-07 Microsoft Corporation Image server
US20070050770A1 (en) 2005-08-30 2007-03-01 Geisinger Nile J Method and apparatus for uniformly integrating operating system resources

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10154078A (ja) * 1996-10-07 1998-06-09 Internatl Business Mach Corp <Ibm> ネットワーク・サービスへのアクセス提供方法
JP2001051857A (ja) * 1999-08-04 2001-02-23 Fujitsu Ten Ltd ネットワーク端末でのソフトウエア実行方法
JP2001318797A (ja) * 2000-05-10 2001-11-16 Nec Corp 自動データ処理装置
WO2005027402A1 (en) * 2003-09-05 2005-03-24 Copeland Scott R Personal computer internet security system
JP2005332223A (ja) * 2004-05-20 2005-12-02 Ntt Data Corp 仮想マシン管理システム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011514992A (ja) * 2008-02-27 2011-05-12 サムスン エレクトロニクス カンパニー リミテッド 仮想化技術を利用したデータ入出力方法及び装置
US8966142B2 (en) 2008-02-27 2015-02-24 Samsung Electronics Co., Ltd. Method and apparatus for inputting/outputting virtual operating system from removable storage device on a host using virtualization technique
US9164919B2 (en) 2008-02-27 2015-10-20 Samsung Electronics Co., Ltd. Method and apparatus for inputting/outputting virtual operating system from removable storage device on a host using virtualization technique
JP2022107585A (ja) * 2021-01-11 2022-07-22 ペンタ・セキュリティ・システムズ・インコーポレーテッド マシンラーニングセルフチェック機能を利用する非対面認証基盤ウェブファイアウォールメンテナンス方法および装置
JP7278561B2 (ja) 2021-01-11 2023-05-22 ペンタ・セキュリティ・システムズ・インコーポレーテッド マシンラーニングセルフチェック機能を利用する非対面認証基盤ウェブファイアウォールメンテナンス方法および装置

Also Published As

Publication number Publication date
EP2021934A4 (en) 2010-03-31
WO2007136192A1 (en) 2007-11-29
EP2021934A1 (en) 2009-02-11
US20090193074A1 (en) 2009-07-30
US8738786B2 (en) 2014-05-27

Similar Documents

Publication Publication Date Title
JP2009537892A (ja) クライアントおよびサーバの保護方法
KR101179758B1 (ko) 클라이언트 및 서버의 보안방법
CN101443746B (zh) 用于保护客户端及服务器的方法
US9300640B2 (en) Secure virtual machine
US9934407B2 (en) Apparatus for and method of preventing unsecured data access
US6836888B1 (en) System for reverse sandboxing
US10348711B2 (en) Restricting network access to untrusted virtual machines
EP2913956B1 (en) Management control method and device for virtual machines
US9424430B2 (en) Method and system for defending security application in a user&#39;s computer
US8788763B2 (en) Protecting memory of a virtual guest
US8782351B2 (en) Protecting memory of a virtual guest
JP5460698B2 (ja) 安全なアプリケーションストリーミング
US20150212842A1 (en) On-demand disposable virtual work system
US20090193503A1 (en) Network access control
Pham et al. Universal serial bus based software attacks and protection solutions
JP2010205270A (ja) 取り外し可能な媒体に格納された実行可能なコードにタンパーエビデント性を提供する装置
Pham et al. Threat analysis of portable hack tools from USB storage devices and protection solutions
Smith et al. Security issues in on-demand grid and cluster computing
Grimes et al. Windows Vista security: Securing Vista against malicious attacks
Vaclavik Einschränken von Applikationen mittels verfügbarer Werkzeuge für Windows Systeme
Goktepe Windows XP Operating System Security Analysis
Durand et al. The Virtual Desktop: Options and Challenges in Selecting a Secure Desktop Infrastructure Based on Virtualization
Durand et al. The virtual desktop
Civilini The Security of Cloud Infrastructure

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100511

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100511

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120622

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120703

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20121127