(57)【特許請求の範囲】
【請求項１】
ウェブサイトに含まれるスクリプトコードであって前記ウェブサイト中の複数箇所に分割して記述されたスクリプトコードを取得する取得部と、
前記取得部が取得した前記分割して記述されたスクリプトコード内のデータ間の依存関係に基づいて、複数の前記分割して記述されたスクリプトコードのうちデータ間の依存関係が存在するスクリプトコード同士を結合し、及び、前記分割して記述されたスクリプトコードの実行に起因した動的生成関係に基づいて、複数の前記分割して記述されたスクリプトコードのうち動的生成されたスクリプトコードと実行元のスクリプトコードとを結合するコード結合部と、
を有することを特徴とする結合装置。
【請求項２】
前記コード結合部は、前記分割して記述されたスクリプトコード内のデータから、変数或いは関数の定義情報、および、変数或いは関数の参照情報を取得し、該取得した情報に基づいて、複数の前記分割して記述されたスクリプトコードを結合することを特徴とする請求項１に記載の結合装置。
【請求項３】
前記コード結合部は、前記取得部によって取得された前記分割して記述されたスクリプトコードのうち処理対象であるスクリプトコードに対し、前記分割して記述されたスクリプトコードを実行して動的に生成された新たなスクリプトコードであるか否かを判断し、前記処理対象であるスクリプトコードが前記新たなスクリプトコードである場合に、実行元の前記分割して記述されたスクリプトコードと前記新たなスクリプトコードとを結合することを特徴とする請求項１または２に記載の結合装置。
【請求項４】
前記取得部は、前記分割して記述されたスクリプトコードを各スクリプトコードの実行順に取得することを特徴とする請求項１〜３のいずれか一つに記載の結合装置。
【請求項５】
分割して記述されたスクリプトコードを結合する結合装置が実行する結合方法であって、
ウェブサイトに含まれるスクリプトコードであって前記ウェブサイト中の複数箇所に分割して記述されたスクリプトコードを取得する工程と、
取得した前記分割して記述されたスクリプトコード内のデータ間の依存関係に基づいて、複数の前記分割して記述されたスクリプトコードのうちデータ間の依存関係が存在するスクリプトコード同士を結合し、及び、前記分割して記述されたスクリプトコードの実行に起因する動的生成関係に基づいて、複数の前記分割して記述されたスクリプトコードのうち動的生成されたスクリプトコードと実行元のスクリプトコードとを結合する工程と、
を含んだことを特徴とする結合方法。
【請求項６】
コンピュータを、請求項１〜４のいずれか一つに記載の結合装置として機能させるための結合プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、結合装置、結合方法および結合プログラムに関する。
【背景技術】
【０００２】
ドライブバイダウンロード攻撃（Drive-by  Download攻撃）は、ウェブサイトにアクセスしたクライアントを、主にHTML（HyperText  Markup  Language）タグやJavaScript（登録商標）を用いて異なるウェブサイトへ転送した後、攻撃コードを実行する悪性ウェブサイトへ転送する攻撃である。クライアントが悪性ウェブサイトにアクセスすると、ウェブブラウザ（以下、ブラウザと呼ぶ。）やブラウザのプラグイン（以下、プラグインと呼ぶ。）の脆弱性を悪用する攻撃コードが実行され、コンピュータウィルスなどの悪性プログラム（マルウェア）をダウンロード、インストールしてしまう。なお、以下、攻撃コードが実行されるウェブサイトやマルウェアをダウンロードするウェブサイトのURL（Uniform  Resource  Locator）を悪性URLと呼ぶ。【０００３】
ドライブバイダウンロード攻撃を検知する方法として、実システムのブラウザ（以下、実ブラウザと呼ぶ。）で悪性ウェブサイトへアクセスし、マルウェアをダウンロード、インストールすることによって、発生するファイルシステムの変化を検知する方法（例えば、非特許文献１参照）がある。また、ドライブバイダウンロード攻撃を検知する方法として、JavaScriptをブラウザのエミュレータ（以下、疑似ブラウザと呼ぶ。）で実行し、実行結果を解析することで悪性なJavaScriptを検知する方法（例えば、非特許文献２参照）などもある。【０００４】
これらの検知方法に対し、攻撃者は、アクセスしてきたクライアントを悪性URLへ転送する前に、このクライアントの種別やバージョンを識別し（以下、ブラウザフィンガープリンティングと呼ぶ。）、予め定めた攻撃対象とするクライアントのみを悪性URLへ転送するようJavaScriptの制御フローを変更することによって、攻撃の成功率を向上させる（例えば、非特許文献３参照）。【０００５】
その他にも、攻撃者は、プラグインの機能を使用したり、意図的な例外処理を発生させたりすることで、既存手法による解析を回避、妨害するコード（以下、解析回避コードと呼ぶ。）が用いられるものがある（例えば、非特許文献４参照）。【０００６】
上述した複数の転送、ブラウザフィンガープリンティングコード、或いは、解析回避コードを用いる悪性ウェブサイトのほとんどは、エクスプロイトキットと呼ばれるツールで自動的に構築される。【０００７】
ここで、従来、JavaScriptを解析する方法が提案されている（例えば、非特許文献４、非特許文献５参照）。例えば、非特許文献５記載の方法は、解析対象の良性JavaScriptおよび悪性JavaScriptから変換した抽象構文木の木構造（すなわち、コードの構造）に基づき、コードの特徴量を抽出し、分類器に学習させることで、悪性JavaScriptを検知する方法である。【０００８】
また、非特許文献４記載の方法は、上述の攻撃検知方法を用いて定常的に悪性ウェブサイトを監視することで検知した悪性JavaScriptと、攻撃者が悪性JavaScriptに変更を加えたことで、ある時点から攻撃検知できなくなったJavaScriptを入力とし、該入力の差分情報から解析回避コードを抽出する方法である。この方法は、攻撃者が解析回避方法を発見し、その方法を既存の悪性コードに追記（攻撃手法のアップデート）するような場合に適用する。
【先行技術文献】
【非特許文献】
【０００９】
【非特許文献１】L.  Lu,  V.  Yegneswaran,  P.  Porras,  and  W.  Lee,  “BLADE:  An  Attack-Agnostic  Approach  for  Preventing  Drive-By  Malware  Infections”,  Proc.  ACM  on  Conference  Computer  and  Communications  Security,  pp.  440−450,  2010.
【非特許文献２】M.  Cova,  C.  Kruegel,  and  G.  Vigna,  “Detection  and  Analysis  of  Drive-by-Download  Attacks  and  Malicious  JavaScript  Code”,  Proc.  World  Wide  Web  Conference,  pp.  281−290,  2010.
【非特許文献３】Y.  Takata,  M.  Akiyama,  T.  Yagi,  T.  Hariu,  and  S.  Goto,  “MineSpider:  Extracting  Hidden  URLs  Behind  Evasive  Drive-by  Download  Attacks”,  IEICE  Trans.  Information  and  System,  vol.  E99.D,  no.  4,  pp.  860−872,  2016.
【非特許文献４】A.  Kapravelos,  Y.  Shoshitaishvili,  M.  Cova,  C.  Kruegel,  and  G.  Vigna,  “Revolver:  An  Automated  Approach  to  the  Detection  of  Evasive  Web-based  Malware”,  In  Proceedings  of  the  USENIX  Security  Symposium,  2013.
【非特許文献５】C.  Curtsinger,  B.  Livshits,  B.  Zorn,  and  C.  Seifert,  “ZOZZLE:  Fast  and  Precise  In-Browser  JavaScript  Malware  Detection”,In  Proceedings  of  the  USENIX  Security  Symposium,  2011.
【発明の概要】
【発明が解決しようとする課題】
【００１０】
ここで、JavaScriptを実行する方法は、複数存在する。例えば、JavaScriptを実行する方法として、異なるURLから読み込んだコードを実行する方法、scriptタグに記述されたコードを実行する方法、動的に生成されたコードを実行する方法がある。【００１１】
そして、悪性ウェブサイトの中には、JavaScriptを細かく分割してscriptタグに記述することによって、或いは、意味のない計算ダミーコードや使用しない変数、関数を定義するダミーコードを記述することによって、解析を妨害するウェブサイトが存在する。【００１２】
しかしながら、従来の解析方法では、分割されたコードや動的生成されたコードに対しては、悪性JavaScriptを検知できない場合があった。【００１３】
例えば、非特許文献５に記載の方法は、悪性コード全体から特徴量を抽出する方法である。このため、非特許文献５に記載の方法では、JavaScriptを細かく分割してscriptタグに記述されたコードからは、分類に十分寄与する特徴量を得られないという問題があった。また、非特許文献４に記載の方法では、閾値以下のサイズのコードを単純に結合して解析するため、解析する必要のないダミーコードを余分に結合してしまう場合があるという問題があった。【００１４】
したがって、これまでの方法では解析対象とならなかったコードを解析するために、分割されたコードや動的生成されたコードを、より意味のある大きいサイズのコードにする必要がある。【００１５】
本発明は、上記に鑑みてなされたものであって、これまで解析対象とならなかったウェブサイト中の複数箇所に分割して記述されたスクリプトコードを、解析対象となり得るサイズにすることができる結合装置、結合方法および結合プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１６】
本発明の結合装置は、ウェブサイトに含まれるスクリプトコードであってウェブサイト中の複数箇所に分割して記述されたスクリプトコードを取得する取得部と、取得部が取得した分割して記述されたスクリプトコード内のデータ間の依存関係、或いは、分割して記述されたスクリプトコードの実行に起因した動的生成関係に基づいて、複数の分割して記述されたスクリプトコードを結合するコード結合部と、を有することを特徴とする。
【発明の効果】
【００１７】
本発明によれば、これまで解析対象とならなかったウェブサイト中の複数箇所に分割して記述されたスクリプトコードを、解析対象となり得るサイズにすることができる。
【図面の簡単な説明】
【００１８】
【図１】図１は、本実施の形態に係る結合装置の構成を示すブロック図である。
【図２】図２は、図１に示すコード結合部の処理を説明するための図である。
【図３】図３は、図２に示すスクリプトコード実行履歴情報を説明するための図である。
【図４】図４は、図１に示す結合装置によるコード結合処理の処理手順を示すフローチャートである。
【図５】図５は、プログラムが実行されることにより結合装置が実現されるコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１９】
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
【００２０】
［実施の形態］
本発明の実施の形態について説明する。本発明の実施の形態では、ウェブサイトのコンテンツおよびスクリプトを解析するために、ウェブサイト中の複数箇所に分割して記述されたスクリプトコードを、解析対象となり得るサイズにする結合装置、結合方法および結合プログラムについて説明する。まず、実施の形態における結合装置の概略について説明する。
【００２１】
［結合装置の構成］
図１は、本実施の形態に係る結合装置の構成を示すブロック図である。図１に示すように、結合装置１０は、入力部１１、通信部１２、記憶部１３、制御部１４および出力部１５を有する。なお、実施の形態１では、スクリプトコードのうち、ウェブブラウザに使用されているJavaScriptコードを、解析対象となり得るサイズに結合する場合を例に説明する。
【００２２】
入力部１１は、結合装置１０の操作者からの各種操作を受け付ける入力インタフェースである。例えば、入力部１１は、タッチパネル、音声入力デバイス、キーボードやマウス等の入力デバイスによって構成される。
【００２３】
通信部１２は、ネットワーク等を介して接続された他の装置との間で、各種情報を送受信する通信インタフェースである。通信部１２は、ＮＩＣ（Network  Interface  Card）等で実現され、ＬＡＮ（Local  Area  Network）やインターネットなどの電気通信回線を介した他の装置と制御部１４との間の通信を行う。
【００２４】
具体的には、通信部１２は、ブラウザでURLにアクセスした際に取得した、実行されたJavaScriptコード情報Ｄａを、ネットワークなどを介して、制御部１４に入力する。ここで、悪性ウェブサイトの中には、JavaScriptコードを複数に分割して記述し、解析を妨害するウェブサイトが存在する。この実行されたJavaScriptコード情報Ｄａは、悪性ウェブサイトであるおそれがあるウェブサイト中の複数箇所に分割して記述されたJavaScriptを含む情報である。
【００２５】
本実施の形態では、例えば、通信部１２は、疑似ブラウザで取得した実行されたJavaScriptコード情報（例えば、Y.  Takata,  M.  Akiyama,  T.  Yagi,  T.  Yada,  and  S.  Goto,  “Website  Forensic  Investigation  to  Identify  Evidence  and  Impact  of  Compromise,”  In  Proceedings  of  the  International  Conference  on  Security  and  Privacy  in  Communication  Networks  (SecureComm),  2016参照）を制御部１４に入力する。なお、JavaScriptコード情報を取得できれば、疑似ブラウザに限らず、任意の実ブラウザであってもよい。すなわち、ブラウザは、実行されたJavaScriptコード情報を取得できれば、疑似ブラウザに限定されず、任意の実ブラウザを使用できる。
【００２６】
また、通信部１２は、コード結合部１４２によって、解析対象となり得るサイズに結合されたJavaScriptコードである、結合済みJavaScriptコード情報Ｄｂを、ネットワーク等を介して、ウェブサイトのコンテンツおよびスクリプトを解析する解析装置に出力する。なお、結合装置１０自体が、ウェブサイトのコンテンツおよびスクリプトを解析する解析機能を有する場合には、コード結合部１４２から、この解析機能に結合済みJavaScriptコード情報Ｄｂが出力される。
【００２７】
記憶部１３は、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置によって実現され、結合装置１０を動作させる処理プログラムや、処理プログラムの実行中に使用されるデータなどが記憶される。
【００２８】
制御部１４は、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する。例えば、制御部１４は、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などの電子回路である。制御部１４は、取得部１４１及びコード結合部１４２を有する。
【００２９】
取得部１４１は、ウェブサイトに含まれるスクリプトコードであってウェブサイト中の複数箇所に分割して記述されたスクリプトコードを取得する。取得部１４１は、JavaScriptコード情報実行履歴に基づき、分割して記述されたスクリプトコードを各スクリプトコードの実行順に取得する。
【００３０】
コード結合部１４２は、取得部が取得した、分割して記述されたスクリプトコード内のデータ間の依存関係、或いは、分割して記述されたスクリプトコードの実行に起因した動的生成関係に基づいて、複数の分割して記述されたスクリプトコードを結合する。言い換えると、コード結合部１４２は、ブラウザで取得した、実行されたJavaScriptコード情報Ｄａに含まれる分割されたコードや動的生成されたコードを、解析対象となり得る、より意味のある大きいサイズのコードに結合する。
【００３１】
出力部１５は、例えば、液晶ディスプレイなどの表示装置、プリンター等の印刷装置、情報通信装置等によって実現される。出力部１５は、結合結果や解析結果等を操作者に対して出力する。
【００３２】
［コード結合部の処理］
次に、コード結合部１４２の処理について具体的に説明する。図２は、図１に示すコード結合部１４２の処理を説明するための図である。図２の左側には、実行されたJavaScriptコード情報Ｄａの一例として、ウェブサイト構成Ｗ１に含まれるJavaScriptを示し、右側には、コード結合部１４２が結合した結合済みJavaScriptコードＤｂを示す。図３は、図２に示すウェブサイト構成Ｗ１から取得したJavaScriptコード実行履歴情報Ｄ１を説明するための図である。図３では、ウェブサイト構成Ｗ１のURLを仮に「http://a.example/」としており、実行方法「rendered_exec」は実行元のURLにアクセスした際に、実行先のJavaScriptコードを実行したことを表し、実行方法「eval」は実行元のJavaScriptコードを実行した際に、実行先のJavaScriptコードを動的に生成し、実行したことを表している。また、実行方法「location.href」は実行元のJavaScriptコードを実行した際に、実行先のURLへ転送したことを意味する。JavaScriptコード実行履歴情報Ｄ１は、例えば実ブラウザまたは疑似ブラウザにより出力される情報を用いてもよい。
【００３３】
予め保持するJavaScriptコード実行履歴情報Ｄ１に基づき、取得部１４１には、分割されたJavaScriptコードが各JavaScriptコードの実行順に入力される。取得部１４１は、分割されたJavaScriptコードを実行順に取得し、コード結合部１４２に対し、入力する。JavaScriptは、ウェブサイトのコンテンツ中にscriptタグで複数記述でき、それぞれ読み込んだ順に実行される。ただし、JavaScriptコード間のデータ依存関係、或いは、動的生成関係を特定できれば、必ずしも実行順でなくてもよい。
【００３４】
コード結合部１４２は、実行されたJavaScriptコード情報Ｄａを基に、JavaScriptコードごとに定義或いは参照された変数および関数を記録しておく。言い換えると、コード結合部１４２は、分割されたJavaScriptコード内のデータから、変数或いは関数の定義情報、および、変数或いは関数の参照情報を取得する。コード間で変数または関数を共有する場合、すなわち、コード間にデータ依存関係が存在する場合、データ依存関係が存在する複数のコードを結合し、抽出する。
【００３５】
例えば、図２の例では、コードＣ２において変数「hoge」を定義している。そして、コードＣ３において変数「hoge」を参照し、変数「foo」を定義している。このため、コード結合部１４２は、コードＣ２およびコードＣ３が変数「hoge」を共有すると判断する。これによって、コード結合部１４２は、共有する変数「hoge」に基づき、コードＣ２とコードＣ３を結合し、コードＣ２０を生成する。このように、コード結合部１４２は、データ依存関係のあるコードを結合し（図２の（１）参照）、より意味のある大きいサイズのコードを生成する。
【００３６】
また、JavaScriptは、「document.write(“<script>code</script>”);」や「eval(“code”);」等を用いることで、動的にコードを生成し実行できる。図２の例では、Ｃ４のコードを実行元として、「eval(“code”);」の実行によって動的にコードが生成される。この場合には、コード結合部１４２は、実行元のコードＣ４と、新たに生成されたコードＣ５とを、JavaScriptコード実行履歴情報Ｄ１から抽出し、これらのコードＣ４，Ｃ５を結合し、コードＣ４０を生成する。このように、コード結合部１４２は、解析対象のコードが、分割して記述されたスクリプトコードを実行して動的に生成された新たなスクリプトコードである場合に、実行元コードと、動的に生成された新たなコードとを結合し（図２の（２）参照）、より意味のある大きいサイズのコードを生成する。
【００３７】
［コード結合処理の処理手順］
図４は、図１に示す結合装置１０によるコード結合処理の処理手順を示すフローチャートである。図４に示すように、まず、取得部１４１は、解析対象ウェブサイトにて実行されたJavaScriptコード情報Ｄａに基づき、JavaScriptコード実行履歴情報Ｄ１に記録された実行時間情報にしたがって、実行されたコードを実行順に取得する（ステップＳ１）。そして、コード結合部１４２は、取得部１４１が取得したコードに対し、順番に、未解析のコードを選択する（ステップＳ２）。
【００３８】
コード結合部１４２は、解析対象コードを、例えば抽象構文木に変換し、構文解析することによって、コード内で定義されている変数および関数情報、コード内で参照されている変数および関数情報を取得する（ステップＳ３）。続いて、取得結果を基に、コード結合部１４２は、選択した解析対象コードは動的に生成された新たなコードであるか否かを判断する（ステップＳ４）。
【００３９】
コード結合部１４２は、選択した解析対象コードは動的に生成された新たなコードであると判断した場合（ステップＳ４：Ｙｅｓ）、解析対象コードを動的生成元のコードに結合する（ステップＳ５）。
【００４０】
一方、コード結合部１４２は、選択した解析対象コードは動的生成されたコードでないと判断した場合（ステップＳ４：Ｎｏ）、既に解析した解析済みコードおよび結合済みコード内に、ステップＳ３において取得した変数、関数情報を含むコードはあるか否かを判断する（ステップＳ６）。
【００４１】
コード結合部１４２は、解析済みコードおよび結合済みコード内に、取得した変数および関数情報を含むコードはあると判断した場合（ステップＳ６：Ｙｅｓ）、解析済みコードおよび／または結合済みコードに、選択した解析対象コードを結合する（ステップＳ７）。
【００４２】
一方、コード結合部１４２は、解析済みコードおよび結合済みコード内に、取得した変数、関数情報を含むコードはないと判断した（ステップＳ６：Ｎｏ）、すなわち、解析済みコードおよび結合済みコードが、ステップＳ３において取得した変数および関数情報を含まないコードである場合、ステップＳ８へ進む。コード結合部１４２は、ステップＳ８として、ステップＳ１において取得した全てのコードを解析したか否かを判断する（ステップＳ８）。
【００４３】
コード結合部１４２は、ステップＳ１において取得した全てのコードを解析していないと判断した場合（ステップＳ８：Ｎｏ）、ステップＳ２に戻り、未解析の次のコードに対して処理を続ける。これに対し、コード結合部１４２は、ステップＳ８として、ステップＳ１において取得した全てのコードを解析したと判断した場合（ステップＳ８：Ｙｅｓ）、当該コードの結合処理を終了する。
【００４４】
［実施の形態の効果］
上述のように、本実施の形態では、ウェブサイトに含まれるスクリプトコードがウェブサイト中の複数箇所に分割して記述されていた場合であっても、分割して記述されたスクリプトコード内のデータ間の依存関係、或いは、分割して記述されたスクリプトコードの実行に起因した動的生成関係に基づいて、複数の分割して記述されたスクリプトコードを結合する。
【００４５】
すなわち、本実施の形態によれば、分割されたコードや動的生成されたコードを、より意味のある大きいサイズであって解析可能なサイズのコードにすることができる。言い換えると、これまで解析対象とならなかったウェブサイト中の複数箇所に分割して記述されたスクリプトコードを、解析対象となり得るサイズにすることができる。
【００４６】
したがって、本実施の形態によれば、疑似ブラウザで取得したウェブサイトアクセス中に実行されたJavaScriptコード情報を入力することにより、たとえ分割してJavaScriptが記述されていたとしても、分割されたコードを結合することができる。このように、本実施の形態によれば、データ依存関係や動的生成関係等のコンテキストに基づいて、解析対象となり得るサイズとなるようにコードを結合するため、従来の方法と比較して、分類に十分寄与する、より多くの情報量を持った特徴量を抽出できる。また、本実施の形態によれば、データ依存関係や動的生成関係に基づいてコードを結合するため、解析する必要のないダミーコードを解析対象から排除することも可能になる。
【００４７】
このため、本実施の形態によれば、データ依存関係や動的生成関係に基づき解析対象となり得るサイズとなるように結合したコードを手動解析することによって、従来の方法と比較して、解析回避コードの特定、悪性ウェブサイト検知のためのシグネチャの生成、疑似ブラウザの模擬性能の改善などが実現できる。
【００４８】
［システム構成等］
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部又は任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００４９】
また、本実施の形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００５０】
［プログラム］
図５は、プログラムが実行されることにより、結合装置１０が実現されるコンピュータの一例を示す図である。コンピュータ１０００は、例えば、メモリ１０１０、ＣＰＵ１０２０を有する。また、コンピュータ１０００は、ハードディスクドライブインタフェース１０３０、ディスクドライブインタフェース１０４０、シリアルポートインタフェース１０５０、ビデオアダプタ１０６０、ネットワークインタフェース１０７０を有する。これらの各部は、バス１０８０によって接続される。
【００５１】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１およびＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、例えばディスプレイ１１３０に接続される。
【００５２】
ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、結合装置１０の各処理を規定するプログラムは、コンピュータ１０００により実行可能なコードが記述されたプログラムモジュール１０９３として実装される。プログラムモジュール１０９３は、例えばハードディスクドライブ１０９０に記憶される。例えば、結合装置１０における機能構成と同様の処理を実行するためのプログラムモジュール１０９３が、ハードディスクドライブ１０９０に記憶される。なお、ハードディスクドライブ１０９０は、ＳＳＤ（Solid  State  Drive）により代替されてもよい。
【００５３】
また、上述した実施の形態の処理で用いられる設定データは、プログラムデータ１０９４として、例えばメモリ１０１０やハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して実行する。
【００５４】
なお、プログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムモジュール１０９３およびプログラムデータ１０９４は、ネットワーク（ＬＡＮ、ＷＡＮ等）を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール１０９３およびプログラムデータ１０９４は、他のコンピュータから、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【００５５】
以上、本発明者によってなされた発明を適用した実施の形態について説明したが、本実施の形態による本発明の開示の一部をなす記述および図面により本発明は限定されることはない。すなわち、本実施の形態に基づいて当業者等によりなされる他の実施の形態、実施例および運用技術等は全て本発明の範疇に含まれる。
【符号の説明】
【００５６】
１０  結合装置
１１  入力部
１２  通信部
１３  記憶部
１４  制御部
１５  出力部
１４１  取得部
１４２  コード結合部
【図１】
0006687761.tif 000002
【図２】
0006687761.tif 000003
【図３】
0006687761.tif 000004
【図４】
0006687761.tif 000005
【図５】
0006687761.tif 000006