(57)【要約】      （修正有）【課題】分散型サービス拒否（ＤＤｏＳ）攻撃を検知するシステムおよび方法を提供する。【解決手段】方法は、サーバ上で実行されるサービスに対する１以上のリクエストを第１ユーザから受信し、当該サービスにアクセスする第１ユーザを示す複数の特徴を含む、第１ユーザに対応する第１ベクトルを生成する。そして、第１ベクトルと、サービスにアクセスする複数のユーザの特徴の平均分布を含む基準ベクトルとの比較を算出し、第１ベクトルと基準ベクトルとの比較に基づいて、サービスがサービス拒否攻撃を受けていると判定する。【選択図】図５
2019021294.tif 000002
【特許請求の範囲】
【請求項１】
サーバ上で実行されるサービスに対する１以上のリクエストを第１ユーザから受信し、
前記サービスにアクセスする前記第１ユーザを示す複数の特徴を含む、前記第１ユーザに対応する第１ベクトルを生成し、
前記第１ベクトルと、前記サービスにアクセスする複数のユーザの特徴の平均分布を含む基準ベクトルとの比較を算出し、
前記第１ベクトルと前記基準ベクトルとの前記比較に基づいて、前記サービスがサービス拒否攻撃を受けていると判定する、
ことを含む、分散型サービス拒否（ＤＤｏＳ）攻撃防御方法。
【請求項２】
前記第１ベクトルと前記基準ベクトルとの前記比較に基づいて、前記サービスがサービス拒否攻撃を受けていると判定することは、
前記第１ベクトルと前記基準ベクトルとの差分を算出し、
前記算出された前記第１ベクトルと前記基準ベクトルとの差分が第１の閾値を超えるとの判定に応じて、前記第１ユーザは悪意あるユーザであると判定し、
前記算出された差分が第２の閾値以下であるとの判定に応じて、前記第１ユーザは正規ユーザであると判定する、
ことをさらに含む請求項１に記載の分散型サービス拒否攻撃防御方法。
【請求項３】
前記複数のユーザからのリクエストによって指定される経路識別子を含む、前記複数のユーザに対応する、前記サービスに対するリクエストに対応するデータを収集し、
経路識別子ごとに、リクエストの平均頻度を含む前記収集されたデータに基づいて、前記基準ベクトルを生成する、
ことをさらに含む請求項１に記載の分散型サービス拒否攻撃防御方法。
【請求項４】
前記複数のユーザからのＨＴＴＰリクエストのパラメータに対応する収集されたデータに基づいて、前記基準ベクトルを生成する
ことをさらに含む請求項１に記載の分散型サービス拒否攻撃防御方法。
【請求項５】
前記第１ベクトルと前記基準ベクトルとの前記比較に基づいて、前記サービスがサービス拒否攻撃を受けていると判定することは、
前記第１ベクトルは、パスワードによってウェブページに繰り返しアクセスリクエストする動作を示すと判定する
ことを含む請求項１に記載の分散型サービス拒否攻撃防御方法。
【請求項６】
前記第１ベクトルと前記基準ベクトルとの前記比較に基づいて、前記サービスがサービス拒否攻撃を受けていないと判定し、
サイバー攻撃の可能性によって前記サービスがリクエスト処理を停止した旨の表示の受信に応じて、前記基準ベクトル用のデータ収集の時間間隔を修正し、前記比較に使用する閾値を変更する、
ことをさらに含む請求項１に記載の分散型サービス拒否攻撃防御方法。
【請求項７】
前記サービス拒否攻撃は、Low-and-Slowサービス拒否攻撃を含む、請求項１に記載の分散型サービス拒否攻撃防御方法。
【請求項８】
メモリ装置と、
ハードウェアプロセッサであって、
サーバ上で実行されるサービスに対する１以上のリクエストを第１ユーザから受信し、
前記サービスにアクセスする前記第１ユーザを示す複数の特徴を含む、前記第１ユーザに対応する第１ベクトルを生成し、
前記第１ベクトルと、前記サービスにアクセスする複数のユーザの特徴の平均分布を含む基準ベクトルとの比較を算出し、
前記第１ベクトルと前記基準ベクトルとの前記比較に基づいて、前記サービスがサービス拒否攻撃を受けていると判定するよう構成される、ハードウェアプロセッサと、
を備える、分散型サービス拒否攻撃防御システム。
【請求項９】
前記第１ベクトルと前記基準ベクトルとの前記比較に基づいて、前記サービスがサービス拒否攻撃を受けていると判定するよう構成される前記プロセッサは、さらに、
前記第１ベクトルと前記基準ベクトルとの差分を算出し、
前記算出された前記第１ベクトルと前記基準ベクトルとの差分が第１の閾値を超えるとの判定に応じて、前記第１ユーザは悪意あるユーザであると判定し、
前記算出された差分が第２の閾値以下であるとの判定に応じて、前記第１ユーザは正規ユーザであると判定する、請求項８に記載の分散型サービス拒否攻撃防御システム。
【請求項１０】
前記プロセッサは、さらに
前記複数のユーザからのリクエストによって指定された経路識別子を含む、前記複数のユーザに対応する、前記サービスに対するリクエストに対応するデータを収集し、
経路識別子ごとに、リクエストの平均頻度を含む前記収集されたデータに基づいて、前記基準ベクトルを生成する、請求項８に記載の分散型サービス拒否攻撃防御システム。
【請求項１１】
前記プロセッサは、さらに、
前記複数のユーザからのＨＴＴＰリクエストのパラメータに対応する収集されたデータに基づいて、前記基準ベクトルを生成する、請求項８に記載の分散型サービス拒否攻撃防御システム。
【請求項１２】
前記第１ベクトルと前記基準ベクトルとの前記比較に基づいて、前記サービスがサービス拒否攻撃を受けていると判定する前記プロセッサは、さらに、
前記第１ベクトルは、パスワードによってウェブページに繰り返しアクセスリクエストする動作を示すと判定する、請求項８に記載の分散型サービス拒否攻撃防御システム。
【請求項１３】
前記プロセッサは、さらに、
前記第１ベクトルと前記基準ベクトルとの前記比較に基づいて、前記サービスがサービス拒否攻撃を受けていないと判定し、
サイバー攻撃の可能性によって前記サービスがリクエスト処理を停止した旨の表示の受信に応じて、前記基準ベクトル用のデータ収集の時間間隔を修正し、前記比較に使用する閾値を変更する、請求項８に記載の分散型サービス拒否攻撃防御システム。
【請求項１４】
前記サービス拒否攻撃は、Ｌｏｗ−ａｎｄ−Ｓｌｏｗサービス拒否攻撃を含む、請求項８に記載の分散型サービス拒否攻撃防御システム。
【請求項１５】
サーバ上で実行されるサービスに対する１以上のリクエストを第１ユーザから受信し、
前記サービスにアクセスする前記第１ユーザを示す複数の特徴を含む、前記第１ユーザに対応する第１ベクトルを生成し、
前記第１ベクトルと、前記サービスにアクセスする複数のユーザの特徴の平均分布を含む基準ベクトルとの比較を算出し、
前記第１ベクトルと前記基準ベクトルとの前記比較に基づいて、前記サービスがサービス拒否攻撃を受けていると判定する
各手順をコンピュータに実行させる、分散型サービス拒否攻撃の防御のためのコンピュータ実行可能命令を含む、非一時的コンピュータ可読記憶媒体。
【請求項１６】
前記第１ベクトルと前記基準ベクトルとの前記比較に基づいて、前記サービスがサービス拒否攻撃を受けていると判定する手順を実行させる前記命令は、さらに、
前記第１ベクトルと前記基準ベクトルとの差分を算出し、
前記算出された前記第１ベクトルと前記基準ベクトルとの差分が第１の閾値を超えるとの判定に応じて、前記第１ユーザは悪意あるユーザであると判定し、
前記算出された差分が第２の閾値以下であるとの判定に応じて、前記第１ユーザは正規ユーザであると判定する
各手順をコンピュータに実行させる命令を含む、請求項１５に記載のコンピュータ可読記憶媒体。
【請求項１７】
前記複数のユーザからのリクエストによって指定される経路識別子を含む、前記複数のユーザに対応する、前記サービスに対するリクエストに対応するデータを収集し、
経路識別子ごとに、リクエストの平均頻度を含む前記収集されたデータに基づいて、前記基準ベクトルを生成する
各手順をコンピュータに実行させる命令をさらに含む、請求項１５に記載のコンピュータ可読記憶媒体。
【請求項１８】
前記複数のユーザからのＨＴＴＰリクエストのパラメータに対応する収集されたデータに基づいて、前記基準ベクトルを生成する手順をコンピュータに実行させる命令をさらに含む、請求項１５に記載のコンピュータ可読記憶媒体。
【請求項１９】
前記第１ベクトルと前記基準ベクトルとの前記比較に基づいて、前記サービスがサービス拒否攻撃を受けていると判定する手順をコンピュータに実行させる前記命令はさらに、
前記第１ベクトルは、パスワードによってウェブページに繰り返しアクセスリクエストする動作を示すと判定する手順をコンピュータに実行させる命令をさらに含む、請求項１５に記載のコンピュータ可読記憶媒体。
【請求項２０】
前記第１ベクトルと前記基準ベクトルとの前記比較に基づいて、前記サービスがサービス拒否攻撃を受けていないと判定し、
サイバー攻撃の可能性によって前記サービスがリクエスト処理を停止した旨の表示の受信に応じて、前記基準ベクトル用のデータ収集の時間間隔を修正し、前記比較に使用する閾値を変更する、
各手順をコンピュータに実行させる命令をさらに含む、請求項１５に記載のコンピュータ可読記憶媒体。
【請求項２１】
前記サービス拒否攻撃は、Low-and-Slowサービス拒否攻撃を含む、請求項１５に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コンピュータセキュリティの分野に関し、特に、分散型サービス拒否（ＤＤｏＳ）攻撃を検知するシステムおよび方法に関する。
【背景技術】
【０００２】
現在、ほとんどすべての会社および組織が何らかの態様でインターネット上に表示されており、その多くがインターネットをビジネスツールとして使用している。同時に、インターネットは「デフォルトでは」サービスの適切な保護手段を提供していない。さらに、今日、ファイアウォール、攻撃回避システム、アンチウィルス等の個人的な保護手段によって数多くのインターネットの脅威を防ぐことは困難である。これらの脅威のうち特に目立つものが、分散型サービス拒否（ＤＤｏＳ）攻撃である。
【０００３】
サービス拒否（ＤｏＳ）攻撃とは、コンピュータシステムに障害を引き起こすコンピュータシステム上のサイバー攻撃であり、たとえば、システムによって提供されているリソース（サーバ）に正規（許可されている）ユーザがアクセスできない状態や、アクセスをより低速またはより困難にさせる状態を発生させる。攻撃の動機は様々でありうる。すなわち、競争行為、脅迫の手段、報復、不満の表明、能力の見せつけ又は注目集めなどであり、これらはほとんどの場合サイバーテロとして扱われる。攻撃が多数のコンピュータから同時に実行される場合は、分散型サービス拒否（ＤＤｏＳ）攻撃という。ＤＤｏＳ攻撃には主に、帯域幅攻撃およびアプリケーション攻撃の２種類がある。
【０００４】
帯域幅攻撃は、大量のパケットを送ることで、通信チャネル、割り当て帯域幅および機器を停滞させることで機能する。攻撃対象は、ルータ、サーバおよびファイアウォール等で、各々が限られた処理リソース（メモリバッファ、ネットワークインタフェース帯域幅等）しか持たない。攻撃の影響により、これらの装置は適切なトランザクション（すなわち、正規のリクエスト）を処理できなくなったり、想定外に多いワークロードによりクラッシュしたりする可能性がある。帯域幅妨害によるもっとも一般的なサイバー攻撃は、パケットディスパッチによるいわゆるアバランチ（Avalanche）攻撃であり、この攻撃中は、トランスポート・コントロール・プロトコル（Transport  Control  Protocol；ＴＣＰ）、ユーザ・データグラム・プロトコル（User  Datagram  Protocol；ＵＤＰ）、またはインターネット・コントロール・メッセージ・プロトコル（Internet  Control  Message  Protocol；ＩＣＭＰ）の一見正当な大量のパケットが特定のポイントに送られる。
【０００５】
アプリケーション攻撃は、ネットワークプロトコル（ＴＣＰ、ＨＴＴＰ等）の動作特徴の他、サービスおよびアプリケーションの動作特徴を利用して行われ、攻撃対象が実行されているコンピュータの計算リソースを乗っ取り、正規のトランザクションやリクエストを処理できないようにする。アプリケーション攻撃の例としては、ハーフオープンＨＴＴＰ接続による攻撃やＨＴＴＰ誤接続による攻撃などがある。
【０００６】
近年、いわゆる「Slow−Rate」攻撃や「Low  and  Slow」攻撃がますます一般的となりつつある。これらの攻撃は、サービスエンド（ウェブサーバ等）におけるアプリケーション実装の欠陥を利用して、数少ないリクエストだけでサーバの重要なサービスを機能できなくする。攻撃中に生成されるトラフィックの量は極めて少ない場合があるため、この攻撃に対しては帯域幅攻撃を検知および軽減する方法では効果がないことが証明されている。また、Slow−Rate攻撃は、ネットワークスタンダードや共通のセキュリティポリシーに違反しない一見正規の（すなわち、プロトコル規則に則した）トラフィックを使う。悪性データパケットが正規のものと類似しているため、アプリケーション攻撃を検知および軽減する従来の方法ではこれらを見分けられないことが多い。
【０００７】
Slow−Rate攻撃の一例として、Slowloris攻撃がある。この攻撃方法は、一台のコンピュータのみでも実行できる。Slowloris攻撃では、不完全なＨＴＴＰリクエスト（たとえば、ＧＥＴリクエストの部分的なリクエスト）を送信し、その後ホストが追加のヘッダを送信するが、リクエストそのものは完全なものとならない。このため、サーバはＨＴＴＰ処理用のすべてのソケットを確保したままとなり、他のクライアントへのサービスを拒否することになる。この攻撃には時間がかかる。
【０００８】
近年の多くの特許文献たとえば米国特許出願公開第２０１６／０２２６８９６号明細書等では、ネットワークプロトコル、特に、Secure  Sockets  Layer（ＳＳＬ）プロトコルに基づくデータ分析が提案されている。しかし、係る分析はプロトコル固有性が高い。そのため、将来的に攻撃が別のプロトコルを利用した場合や特定のプロトコルが（次のバージョン等に）変更された場合、Slow−Rate攻撃の検知や軽減には使えなくなるおそれがある。サーバに対するネットワーク攻撃の可能性を早期に判定するためには、使用されるプロトコルに関係なくユーザからのデータパケットを分析できる、より柔軟かつ普遍的な解決法が必要である。
【０００９】
さらに、ＤＤｏＳ攻撃の背後で別の攻撃が実行される例が知られている。いわゆる標的型サイバー攻撃（Targeted  Cyberattack）やAdvanced  Persistent  Threat  （ＡＰＴ）である。したがって、単にＤＤｏＳ攻撃を発見して無効にするだけでなく、ＤＤｏＳ攻撃が仕掛けられている組織の防御用インフラストラクチャ全体に対するフィードバックを提供する解決策が必要である。既存の先行技術を分析すると、従来の方法は効果がなく、場合によっては適用できないという結論に至る。こうした従来の方法の欠陥は、本開示の側面により解決される。
【発明の概要】
【００１０】
本開示は、分散型サービス拒否（ＤＤｏＳ）攻撃を検知するシステムおよび方法に関する。例示的な方法の一つは、サーバ上で実行されるサービスに対する１以上のリクエストを第１ユーザから受信し、当該サービスにアクセスする第１ユーザを示す複数の特徴を含む、第１ユーザに対応する第１ベクトルを生成する。この方法では、さらに、第１ベクトルと、サービスにアクセスする複数のユーザの特徴の平均分布を含む基準ベクトルとの比較を算出する。この方法では、第１ベクトルと基準ベクトルとの比較に基づいて、サービスがサービス拒否攻撃を受けていると判定する。
【００１１】
他の例示的側面では、分散型サービス拒否（ＤＤｏＳ）攻撃から保護するためのシステムを提供する。このシステムは、メモリ装置とハードウェアプロセッサを備える。ハードウェアプロセッサは、サーバ上で実行されるサービスに対する１以上のリクエストを第１ユーザから受信し、当該サービスにアクセスする第１ユーザを示す複数の特徴を含む、第１ユーザに対応する第１ベクトルを生成する。このプロセッサは、さらに、第１ベクトルと、サービスにアクセスする複数のユーザの特徴の平均分布を含む基準ベクトルとの比較を算出する。このプロセッサは、さらに、第１ベクトルと基準ベクトルとの比較に基づいて、サービスがサービス拒否攻撃を受けていると判定する。
【００１２】
他の例示的側面では、本明細書に記載する方法のいずれかを実行するためのコンピュータ実行可能命令からなる命令を備えたコンピュータ可読媒体を提供する。
【００１３】
上記の例示的側面の簡単な概要により、本開示を基本的に理解できるであろう。この概要は、想定されるすべての側面の包括的な概観ではなく、全ての側面の主要または必要不可欠な要素を特定するものでも、本開示の側面の一部または全部の範囲を画するものでもない。本概要は、単に、以下の本開示の詳細な説明の前置きとして、１以上の側面を簡単に述べるものである。本開示の１以上の側面は、請求の範囲において説明され例示的に提示されている特徴を含む。本明細書に組み込まれて本明細書の一部を構成する添付の図面は、本開示の１以上の例示的側面を図示するものであり、詳細な説明とともにその原理および実施形態を説明するものである。
【図面の簡単な説明】
【００１４】
【図１】図１は、例示的一側面に係る、トラフィックを処理してＤＤｏＳ攻撃を防御するシステムを示すブロック図である。
【図２】図２は、典型的な人間のユーザからのリクエストのヒストグラムを示す図である。
【図３】図３は、悪意あるユーザ（ボット）からのリクエストのヒストグラムを示す図である。
【図４】図４は、検索エンジンボットからのリクエストのヒストグラムを示す図である。
【図５】図５は、例示的一側面に係る、ユーザから収集したデータに基づいてＤＤｏＳ攻撃を防御する方法を示すフローチャートである。
【図６】図６は、例示的一側面に係る、トラフィックを処理してＤＤｏＳ攻撃を防御するシステムを示すブロック図である。
【図７Ａ】図７Ａは、検知された攻撃中の、保護モジュールとセキュリティ・アプリケーションとのインタラクションの一例を示す図である。
【図７Ｂ】図７Ｂは、攻撃が見過ごされた場合の、保護モジュールとセキュリティ・アプリケーションとのインタラクションの一例を示す図である。
【図８】図８は、例示的一側面により本開示のシステムおよび方法が実現される汎用コンピュータシステムのブロック図である。
【発明を実施するための形態】
【００１５】
ユーザコンピュータ上でＤＤｏＳ攻撃を検知するためのシステム、方法およびコンピュータプログラムプロダクトについて、例示的側面を説明する。当業者であれば、以下の説明が単に例示的なものであって限定的なものではないことが理解できるであろう。他の側面についても、本開示の利益を享受する当業者は容易に理解できるであろう。以下、添付の図面に示す、例示的側面に係る実施形態を詳しく参照する。図面および以下の説明では、同じ又は同様の要素については可能な限り同じ参照符号を使用する。
【００１６】
図１は、例示的一側面に係る、トラフィックを処理してＤＤｏＳ攻撃を防御するシステム１００を示すブロック図である。システム１００は、通信可能にサーバ１４０に接続され、ＤＤｏＳ攻撃からサーバ１４０を保護するよう構成される、ＤＤｏＳ保護モジュール１３０を備える。図示するように、複数の（正規）ユーザ１１０は、サーバ１４０に対してリクエスト１０２を送ることができる。以下のすべての実施形態は、このサーバ１４０の保護に関する。なお、従来の理解に基づくサーバ自体（すなわち、ユーザ１１０が自身のブラウザからアクセスするウェブサイト）の他、ＨＴＭＬ、ＸＭＬ、ＷＳＤＬ（Web  Service  Definition  Language）、ＳＯＡＰ等の現在のスタンダードを使用して構築される任意のウェブサービスも含んでよい。さらに、サーバ１４０は、データベース管理システムまたはＤＢＭＳ（図示せず）などの他のサービスにアクセスするインタフェースを提供してもよい。また、サーバ１４０は、一つの物理コンピュータ（サーバ）だけではなく、自身の負荷分散メカニズムを有するグループ全体（クラスタまたはデータセンタ）を含んでもよい。
【００１７】
サーバ１４０に到達するリクエストは、通常のユーザ１１０からだけではなく悪意あるユーザ（またはボット）１２０からも送られる。ユーザ１２０の目的は、複数のリクエスト１０４を用いてサーバ１４０を攻撃することである。一部の側面では、複数のリクエスト１０４は、量（１秒当たりのバイト数）および頻度（１秒当たりのリクエスト数）の両面でサーバ１４０の帯域幅に対する帯域幅攻撃となり、大量のリクエストを処理するサーバ１４０（たとえばＣＰＵ）のネットワーク帯域幅そのものおよびリソースに悪影響を及ぼす。一部の側面では、攻撃は、サーバ（ウェブサーバ等）上で実行されるアプリケーションに向けられる、アプリケーションレイヤ攻撃である。通常のユーザ１１０および悪意あるユーザ１２０は、ともに、サーバ１４０のクライアントである。攻撃防御のため、ＤＤｏＳ保護モジュール１３０を使用する。本開示では、ＤＤｏＳ保護モジュール１３０の機能をさらに詳細に検討するが、そのためにはまず、サーバにアクセスするユーザの処理についてさらに詳細に説明する必要がある。
【００１８】
ユーザ１１０（または、悪意あるユーザ１２０）は、たとえば、ウェブブラウザアプリケーションを使用してサーバ１４０にリクエスト（リクエスト１０２、１０４）を送信する。または、ユーザ１１０（または、悪意あるユーザ１２０）は、特定の態様で予めフォーマット化されたデータパケットを送信する。たとえば、リクエストは、ＧＥＴメソッドを指定するＨＴＴＰリクエストであってもよく、又は他の場合には、ＰＯＳＴメソッドを指定するＨＴＴＰリクエストであってもよい。複数のパラメータを有するリクエストの一例を以下に示す。
【数１】
2019021294.tif 000003
【００１９】
１行目および２行目に示すように、リクエストは、ユーザがアクセスするソースへの経路を含む。上記の例では、リクエストは経路「/path/to/resource」およびホスト名（site.com等）を指定する。経路は、ウェブページにアクセスするため、Universal  Resource  Location（ＵＲＬ）とも呼ばれるUniversal  Resource  Identifier（ＵＲＩ）としてフォーマット化される。経路は、一意でも動的でもよい。すなわち、ユーザのブラウザとサーバ１４０との間で情報交換が行われている間にフォーマット化されてもよい。ファジーハッシュ和（fuzzy  hash  sum）等のハッシュ方法を用いることにより、サーバ１４０にアクセスする経路の有限集合をフォーマット化することができる。
【００２０】
これにより、ユーザ（ユーザ１１０、１２０等）ごとに、経路識別子によって、サーバ１４０に対する複数のリクエストのヒストグラムを構築することができる。図２に、一例としてヒストグラム２００を示す。通常のユーザは、サイト内をナビゲートして、サーバ１４０にリクエストを送る。その結果、ユーザによるアクセスのヒストグラム２００は、通常、異なる経路からの複数のリクエストを含む。電子商取引に関する一例では、ユーザは最初にオンラインストアのＵＲＬをウェブブラウザに入力し（第一経路）、所望の商品を検索し（複数の異なる経路）、オンラインストア内でレビューを読んで注文をする（再度、複数の異なる経路）。
【００２１】
一つの例示的側面では、ユーザごとに、サーバ１４０に対するリクエストの頻度に基づいてヒストグラムを構築することができる。通常のユーザは、サイト内をナビゲートして、手動でリクエストを送る。したがって、たとえば、ブラウザ内で「更新（Refresh）」ボタンが何度も押されたとしても、通常のユーザのリクエストの頻度は、一秒当たりのリクエスト数が所定の閾値、たとえば、１秒当たり５リクエストを超えることはない。
【００２２】
一側面では、リクエスト頻度のヒストグラムは、ユーザがアクセスしたページ（ＵＲＬ）に基づいて構築される。よって、ページ内に含まれる他のページへのリンクが少ないと当該ページをナビゲートするユーザのリクエストも（量および頻度面で）少なくなる。
【００２３】
他の側面では、リクエスト頻度のヒストグラムは、ユーザがインタラクションに用いるプロトコルに基づいて構築される。たとえばＴＣＰプロトコルはパケットの配信を保証するので、同じページに繰り返しリクエストが送られる場合は攻撃を示すと言える。
【００２４】
他の側面では、リクエスト頻度のヒストグラムは、ユーザがアクセスしたリソース（ＵＲＬ、ウェブページ等）のコンテンツに基づいて構築される。たとえば、ページにリフレッシュ可能なチャートが表示されている場合（Ｆｏｒｅｘ等）、通常のリフレッシュ頻度は５秒間隔である。また、ページにニュース（通信社のサイト等）が含まれる場合、通常のリフレッシュ頻度は１分間隔である。しかし、ページに含まれる情報が静的である場合（ウィキペディアのページ等）、当該ページに繰り返しアクセスがあれば当該サービスへの攻撃開始を示すものと言える。
【００２５】
図３は、悪意あるユーザ（ボット）１２０からのリクエストのヒストグラム３００を示す図である。ヒストグラム内の１つの棒に示されるように、悪意あるユーザ（ボット）１２０は、概ね特定の一経路（場合により、複数の経路）を介してアクセスする。この挙動は、図２の通常のユーザ１１０の挙動とは異なる。比較として、図４は、検索エンジンボットからのリクエストのヒストグラム４００を示す図である。検索エンジンボットは、ウェブクローラまたはスパイダーと呼ばれることもある。検索エンジンボットは、通常再帰走査方法（recursive  traversal）を用いてウェブサイト上のすべてのページを調べることでウェブサイトを走査し、当該ウェブサイトのサイトマップを構築するプログラムである。ヒストグラム２００、３００、４００からわかるとおり、異なるユーザ（またはプログラムおよびボット）の挙動は大きく異なり、ＤＤｏＳ保護モジュール１３０によって利用することができる。なお、以下、ＤＤｏＳ保護モジュール１３０は略して保護モジュール１３０ともいう。
【００２６】
図５は、例示的一側面に係る、ユーザから収集したデータに基づいてＤＤｏＳ攻撃を防御する方法を示すフローチャートである。以下の例示的方法の説明では、上記のシステムおよび構成要素を参照する。ステップ５１０の時点では、保護モジュール１３０にはユーザに関するデータがなく、作業開始時には、保護モジュール１３０は想定されるユーザすべて（通常のユーザ１１０および悪意あるユーザ１２０の両方）に関する統計を収集する必要があり、これはステップ５２０の中で行われる。
【００２７】
ステップ５２０では、保護モジュール１３０は、収集したデータに基づいて基準ベクトルを生成する。基準ベクトルは、サービスにアクセスする複数のユーザの特徴の平均分布を含んでもよい。一部の側面では、保護モジュール１３０は、複数のユーザからのＨＴＴＰリクエストのパラメータに対応する収集されたデータに基づいて、基準ベクトルを生成する。他の側面では、保護モジュール１３０は、複数のユーザからのサービスへのリクエストによって指定された経路を有するデータを収集し、当該経路によるリクエストの平均頻度として基準ベクトルを生成してもよい。
【００２８】
ステップ５２０の期間は、数秒または数分、あるいは、数日または数週間などの長い期間でもよい。一部の側面では、データの収集期間（ステップ５２０）は、保護モジュールのＤｏＳ攻撃検知能力に対するフィードバックに基づいて、動作中に動的に修正することができる。原則として、数分のうちに、全ユーザの平均ヒストグラムである基準ヒストグラムをステップ５３０において構築することができる。この場合の第１の前提は、ユーザの大多数は通常の（正規）ユーザ１１０であり、通常のユーザに関するデータに基づき悪意あるユーザ１２０に関するデータを「ならす（smooth  out）」ことができる、という事である。
【００２９】
一側面では、保護モジュール１３０は、起動後、別のリソースで統計的に得られたユーザのヒストグラムを使用する。たとえば、保護モジュール１３０は、セキュリティネットワークサービスから受け取ったユーザリクエストのヒストグラムを受信する。セキュリティネットワークサービスは、新規の脅威または既知の脅威に関連するデータ、アプリケーションの評価データ、ウェブサイトの評価データ、および検知された脅威および不審な動作に関連するその他のデータを収集して提供する、クラウドベースのサービスでもよい。セキュリティネットワークサービスの例には、たとえば、Kaspersky  Labs（登録商標）製のKaspersky  Security  Network（ＫＳＮ）がある。
【００３０】
さらに本実施形態の文脈において、本開示のヒストグラムの概念を、サーバ１４０にアクセスするユーザを特徴づける複数の特徴を含むベクトルに置き換えてもよい。ベクトルは、（ブラウザを用いてアクセスした）ユーザがリクエストした経路（ＵＲＩ）の上記のデータを含んでもよい。ベクトルは、さらに、受信されたリクエストから導出された他のパラメータを含んでもよい。一部の側面では、ベクトルは、「ＨＴＴＰ１．１」等、リクエストのプロトコル（およびバージョン）の表示を含んでもよい。また、一部の側面では、ベクトルは、リクエストが受信されたポートのポート番号に関する情報を含んでもよい。さらに、一部の側面では、ベクトルは、（ＨＴＴＰの場合）「User−Agent」または「Referrer」等、受信されたリクエストのヘッダフィールド；ユーザの（ソース）ＩＰアドレスに関する情報；ＳＳＬセッションＩＤ、リクエストに対するサーバの応答コード、およびその他の情報を含んでもよい。
【００３１】
ステップ５３５では、保護モジュール１３０は、サービスにアクセスするユーザの複数の特徴を含む、ユーザに対応するベクトルを生成する。ステップ５４０では、保護モジュール１３０は、生成したベクトルと基準ベクトル（ヒストグラム）とを比較し、特定のユーザが、前述した特定の「平均」ユーザに相当する標準ユーザのプロフィールにどの程度一致するか判定する。一側面では、「平均」（標準）ユーザは、取得したすべてのベクトルの算術平均となるベクトルを持つ、従来のユーザである。平均値を算出する他の方法としては、加重算術平均、調和平均、加重調和平均を使用する方法がある。一部の側面では、保護モジュール１３０は、生成したベクトルと基準ベクトルとの比較に基づいて、サービスはサービス拒否攻撃を受けていると判定する。
【００３２】
ベクトルは、レーベンシュタイン距離、ハミング距離、ジャッカール指数、およびその他の指標等、異なる比較方法を用いて比較される。これらの比較指標の使用に関しては、上記方法は、特定のユーザが「良性」（ユーザ１１０）であるか「悪性」（ユーザ１２０）であるかというような概念の使用を控える。標準ユーザのベクトル（すなわち、基準ベクトル）と自身のベクトルとの距離が所定の閾値以下のユーザを、良性（正規）ユーザとみなしてもよい。係る指標を用いることにより、以下の表１に示すようにユーザを分類することができる。
【表１】
2019021294.tif 000004
【００３３】
表１に示すように、ユーザのベクトルと基準ベクトルとの算出された差分が閾値を超える（たとえば、＞１）との判定に応じて、保護モジュール１３０は、そのユーザを悪意あるユーザと判定（すなわち、分類）してもよい。別のケースでは、算出された差分が第２の閾値未満（たとえば、＜０．１）であるとの判定に応じて、保護モジュール１３０は、そのユーザを正規ユーザと判定（分類）してもよい。
【００３４】
Low−and−Slow攻撃では、リクエストや（slow  ＨＴＴＰ  ＰＯＳＴ攻撃の場合）ユーザからの生成された応答の通信速度等、ユーザのベクトルにおけるこれらのパラメータを含むＴＣＰプロトコルのレベルに応じて、要因をさらに解析してもよい。この攻撃は、通常の帯域幅に対するＤＤｏＳ攻撃と比べてリクエストの通信速度が遅い点で特徴づけることができる。たとえば、毎秒２００リクエストの１０００接続であれば、ウェブサーバにその接続の３分の１のみを処理して残りを保留させるのに十分である。リクエストそのものは許容されるデータ（たとえば、適切にフォーマット化されたヘッダ）を含み、各リクエスト単独では悪性と判断することはできない。
【００３５】
以下は、Low−and−Slow攻撃の主な特徴であると考えられている。Low−and−Slow攻撃からのリクエストは、正規ユーザ１１０からのリクエストと類似している。ＤＤｏＳ攻撃（帯域幅Ｆｌｏｏｄ攻撃等）を検知する従来の方法では、この攻撃の検知をすることはできない。シグネチャの検知や異常の検知に基づく、侵入防止システム（Intrusion  Prevention  Systems：ＩＰＳ）および侵入検知システム（Intrusion  Detection  Systems：ＩＤＳ）による方法でも、この攻撃を検知することはできない。Low−and−Slow攻撃は、多くのリソースを必要とせず、一台のコンピュータで実行することができる。この攻撃を受けると、予備のハードウェア能力が大きいウェブサーバであっても機能不全にされてしまう。次に、本開示の側面に基づき、サーバ１４０のインフラストラクチャからのデータを考慮しつつユーザのベクトルの利用および比較について詳しく説明する。
【００３６】
図６は、例示的一側面による、トラフィックを処理してＤＤｏＳ攻撃を防御するシステム６００を示すブロック図である。システム６００は、サーバ１４０に通信可能に接続され、ＤＤｏＳ攻撃からサーバ１４０を保護するよう構成されるＤＤｏＳ保護モジュール１３０を備える。システム６００は、図１に示すシステム１００と同様である。ただし、サーバ１４０側のサーバ側インフラが詳細に示されている点で異なる。たとえば、サーバ１４０は、サーバ上で実行される多種のサービス６１０（ウェブサーバ６１２、メールサーバ６１４、ＦＴＰサーバ６１６等）を含んでもよい。
【００３７】
一側面では、システム６００は、セキュリティを管理する１以上のアプリケーション６２０を含んでもよい。セキュリティ・アプリケーション６２０は、ＩＰＳ／ＩＤＳソリューション、ファイアウォール、ＳＩＥＭ（Security  Information  and  Event  Management）ソリューションの機能、および、ＤＬＰモジュールでもよい。これらのソリューションには、たとえば、Microsoft  Exchange  Server（商標）用のKaspersky  Security（登録商標）、またはEndpoint  Security  for  Windows（商標）などがある。一側面では、システム６００は、Cisco（登録商標）製のルータなど、保護メカニズム内蔵型のコンピュータおよび／またはネットワーク・ハードウェア６２５をさらに含む。セキュリティ・アプリケーション６２０および／またはハードウェア６２５は、サービス６１０から情報を取得して構築（設定変更）し、保護モジュール１３０と情報交換する。保護モジュール１３０とアプリケーション６２０との情報交換は、既知のプロトコルおよびＪＳＯＮ（JavaScript（登録商標）  Object  Notation）などのデータフォーマットを使用して行われる。本開示では、以下のアプリケーション６２０は、コンピュータセキュリティを管理するアプリケーション６２０の一式を指す。一例示的側面では、セキュリティ・アプリケーション６２０は、少なくとも一つのハードウェア装置６２５のファームウェアである。
【００３８】
一側面では、システム６００は、セキュリティ・アプリケーション６２０および保護メカニズム内蔵型ハードウェア６２５を集中的に管理するよう構成される（たとえば、ソフトウェア・アプリケーションとして実行する）管理モジュール６３０を備える。管理モジュール６３０は、システム６００のセキュリティポリシーを作成し、セキュリティポリシーに従って多種のセキュリティ・アプリケーション６２０およびハードウェア装置６２５の設定を振り分けるために、（システムアドミニストレータ等によって）使用されてもよい。管理モジュール６３０は、たとえば、Kaspersky  Security  Center（商標）またはMcAfee  ePolicy  Orchestrator（商標）等のアプリケーションであってよい。
【００３９】
一部の側面では、保護モジュール１３０は、セキュリティ・アプリケーション６２０が（サービス６１０等から）受信したイベント通知を処理するよう構成されてもよい。セキュリティ・アプリケーション６２０がサービス６１０から受信する通知、および、アプリケーション６２０および保護モジュール１３０によるこの情報の処理方法については、以下に例示する。
【００４０】
（例１）
サーバ１４０への攻撃により、ウェブサーバ６１２等のサービス６１０の一つは、ユーザからのリクエスト６０２を正しく処理しなくなる。代わりに、アプリケーション６２０がサービス６１０を再開し、さらに、攻撃防御のため、サービス６１０の設定をより適切なものに変更する。たとえば、セキュリティ・アプリケーション６２０は、ウェブサーバ設定ファイル（Apacheウェブサーバの場合、「httpd.conf」等）を、ユーザからのＨＴＴＰリクエストヘッダおよびＨＴＴＰリクエスト本文の受信のタイムアウトを設定するよう修正する。設定されたタイムアウト期間内にユーザが本文データのヘッダを送信できなかった場合、ウェブサーバ６１２は、リクエスト・タイムアウト・エラー（408  REQUEST  TIME  OUT等）を送信する。以下の設定ファイルの一例では、ユーザは、ヘッダデータを送信するまでに２０秒、ヘッダ完成までに最大４０秒（すなわち、「header=20-40」）かけることができる：
【数２】
2019021294.tif 000005
また、アプリケーション６２０は、保護モジュール１３０の作業パラメータを後で再設定するため、サービス６１０の誤動作について保護モジュール１３０にデータを送信する。保護モジュール１３０の動作の再設定について以下に例示する。
【００４１】
（例２）
一側面では、サーバ１４０に対する攻撃により、ウェブサーバ６１２等のサービス６１０の一つは、ユーザからのリクエストを正しく処理しなくなる。代わりに、アプリケーション６２０は、攻撃がウェブサーバの特定のバージョン（Ａｐａｃｈｅバージョン２．２．１５等）に向けられたという情報を保護モジュール１３０から受信し、その攻撃からうまく防御するために、攻撃されたウェブサーバ６１２の前で補助ウェブサーバ（nginx（登録商標）等）がプロキシモードで起動される。
【００４２】
（例３）
他の側面では、保護モジュール１３０は、ユーザ１２０が、パスワードによるページへの持続的なアクセス動作に対応する不定型なベクトルを持っていることを検知する。これに対し、保護モジュール１３０は、このユーザ１２０に関する情報をセキュリティ・アプリケーション６２０に送信する。アプリケーション６２０は、総当たり攻撃（brute  force  attack）が発生していて、対応するアプリケーション又はモジュール（ＩＰＳ等）を再設定し、この攻撃元であるユーザ１２０のコンピュータのＩＰアドレスをブラックリストに追加する必要があると決定する。
【００４３】
（例４）
他の側面では、保護モジュール１３０は、ユーザ１１０が持続的に特定のサービス６１０にアクセスしている（ＦＴＰサーバ６１６から持続的にファイルをダウンロードしている等）ことを明らかにする、不定形なベクトルを持つユーザ１１０に関する情報を送信する。ユーザ１１０のコンピュータのＩＰアドレスがホワイトリストにあったとしても、保護モジュール１３０からの情報に基づき、アプリケーション６２０は、データ漏えいが発生しており、対応するアプリケーション又はモジュール（たとえば、Data  Loss  Prevention；ＤＬＰ）を再設定する必要がある、あるいは、攻撃元であるユーザ１１０のコンピュータのＩＰアドレスをブラックリストに追加する必要がある、と決定する。
【００４４】
（例５）
他の側面では、アプリケーション６２０は、ＨＴＴＰ  Response  Splitting型の攻撃が発生していると判定する。この攻撃は、通常、ウェブサーバ側でヘッダの適切なＨＴＴＰ認証を行わないために発生する。かかる攻撃に対しては、アプリケーション６２０は、ＨＴＴＰヘッダを分析するよう保護モジュール１３０を再設定することができる。
【００４５】
セキュリティ・アプリケーション６２０およびハードウェア６２５から提供される情報に基づいてSlow−typeサイバー攻撃を検知するよう保護モジュール１３０を再設定する例を検討する。先述のとおり、ベクトルは、一定期間中のアクセスページ数またはＵＲＩへのリクエスト数、使用したプロトコル（ＨＴＴＰ等）、ポート番号、ヘッダ、およびＩＰアドレスなどを示す、データおよび指標を含む。
【００４６】
ベクトル変更の一例では、アプリケーション６２０は、想定されるLow−and−Slowサイバー攻撃により、ウェブサーバ６１２がユーザのリクエストを処理しなくなったことを、保護モジュール１３０に知らせる。この情報の解析に際し、保護モジュール１３０は、アクセスページ数またはＵＲＩへのリクエスト数に関する情報の収集間隔を（たとえば、１０分から５分に）変更する。この結果、上記で例示した分類に基づき、ユーザのベクトルと基準ベクトルとの差分は、基準ベクトルに対して１を超え、Low−and−Slowサイバー攻撃を実行する悪意あるユーザ１２０は、ベクトルの変更によって検知される。
【００４７】
ベクトル変更の別の例では、大量のデータに関する問題を解決する。たとえば、ベクトルには大量のデータ（すなわち、ノイズ）が過剰に含まれるため、基準ベクトルと比較しても閾値を超えるベクトルはなく、すべてのユーザが通常（正規）ユーザとみなされる。しかし、特定のデータ（たとえば、大多数のユーザ（通常のユーザ１１０および悪意あるユーザ１２０の両方）で共通するヘッダの情報）がベクトルから取り除かれると、ベクトルの値が変更され、ユーザをより正確に分類することができる。上記問題に対するかかる解決法（次元削減）の一例として、主成分分析（principal  component  analysis；ＰＣＡ）がある。
【００４８】
ベクトル変更のさらに別の例では、新たなパラメータを追加する。たとえば、ＲＥＳＴプロトコルで動作する別のサービス６１０を追加した後、保護モジュール１３０は、新たなサービスの運用に関連するデータを解析する。このプロトコルから送信されるデータの一例を以下に示す。
【数３】
2019021294.tif 000006
このように、保護モジュール１３０には、使用されているプロトコルのパーサも追加される。これにより、必要なタグ（<reply>タグ等）に関する情報が抽出され、解析のためにベクトルに挿入することができる。
【００４９】
本開示はまた、保護モジュール１３０とアプリケーション６２０との間で想定されるデータの相関関係について例示する。たとえば、保護モジュール１３０は、ＤＤｏＳ攻撃が企業Ａで発生したと確認する。その後、サービス６１０の一部が攻撃中に正しく動作しなかったことが同様に確認される。ＤＢＭＳの一つ（同様にサービス６１０の一つ）から、重要な情報が書き換えられ、アプリケーション６２０のログの一つに記録される。これにより、データ盗取から注意をそらすためにＤＤｏＳ攻撃が使用されたと判定できる。このような相関関係を将来検知できるよう、以下の情報が下記のとおり規則として保存される。ベクトルに基づき攻撃があったと判定し、かつ、ベクトルが指定された特徴を有していると判定した場合、保護モジュール１３０は、サービス６１０の一つ（ＤＢＭＳ等）におけるデータの漏えいを防止するためアプリケーション６２０（ＤＬＰまたはＩＤＳモジュール）を設定する。かかる規則は、保護モジュール１３０とアプリケーション６２０とを連携させることによって、かかるサービスを利用するいずれの他の企業においても、保存し使用することができる。
【００５０】
一部の側面では、保護モジュール１３０は、機械学習方法を使用することにより、１以上の規則を生成する。セキュリティ・アプリケーション６２０を設定する規則を生成するために使用される機械学習方法は、たとえば、線形回帰または論理回帰等の回帰モデル、サポートベクトルマシン、人工ニューラルネットワーク、およびクラスタリング等を使用する。
【００５１】
一つの隠れ層を含む単純なニューラルネットワークの一例では、上記と同様の規則を構築することができる。たとえば、ニューラルネットの入力層のニューロンは、保護モジュール１３０からデータを受信する。学習（すなわち、ニューロンへの重み割り当て）は、既知のインシデントに基づいて行うことができる。
【００５２】
さらに、上述の規則は、JavaScriptなどの高水準言語で書き込まれ、以下のように表される。
【数４】
2019021294.tif 000007
【００５３】
一側面では、管理モジュール６３０は、オートメーション技術を使用して、アプリケーション６２０および保護メカニズム内蔵型ハードウェア６２５の設定を、修正および管理するよう構成されてもよい。この技術によって、ネットワークアドミニストレータは、スクリプト記述およびスタートアップシナリオの支援を得て、アンチウィルス保護の自動化や、アプリケーション６２０およびハードウェア６２５の設定管理を行うことができる。この技術の一例として、たとえば、Kaspersky  Security  Center（商標）１０から入手可能なAdministration  Kit  Automation  10がある。一部の側面では、管理モジュール６２０は、ＯＬＥ（Object  Linking  and  Embedding）コンポーネントまたはActiveXコンポーネントを用いてスクリプトを受信する。スクリプトは、JscriptやVBScriptなどの言語のみならず、ＯＬＥ技術をサポートする高水準言語（Ｃ、Ｃ++、Visual  Basic、Visual  Basic．NET、Ｃ＃、Ｊ＃等）で記述されてもよい。このように、高水準言語で記述された上記の規則により、アプリケーション６２０および保護メカニズム内蔵型ハードウェア６２５の設定がされた場合、管理モジュール６３０の動作は完全に自動化することができる。
【００５４】
図７Ａは、保護モジュール１３０が検知した攻撃中の、保護モジュール１３０とアプリケーション６２０とのインタラクション７００の一例を示す。ステップ７１０において、保護モジュール１３０は、サーバ１４０とそのサービス６１０がＤｏＳ攻撃（または、「Low−and−Slow」攻撃等、検知可能なその他の攻撃）を受けたと判定する。次に、ステップ７２０において、保護モジュール１３０は攻撃のパラメータに関する情報（ベクトル）をアプリケーション６２０に送信する。これに対し、アプリケーション６２０は自身の動作メカニズムを変更する。たとえば、セキュリティ・アプリケーション６２０は攻撃者のＩＰアドレスをブラックリストに追加する。また、アプリケーション６２０は、ステップ７４０においてサービス６１０の動作パラメータを変更する。たとえば、アプリケーション６２０は、設定ファイルを更新してサービスを再開することによりウェブサーバの動作パラメータを修正する。
【００５５】
図７Ｂは、攻撃が見過ごされた（見逃された）場合の、保護モジュール１３０とアプリケーション６２０とのインタラクション８００の一例を示す。ステップ８１０において、アプリケーション６２０は、サービスの一つが正しく動作していない（たとえば、ウェブサーバ６１２がユーザからのリクエストに応答していない、または、ＤＢＭＳが通常とは異なり大容量のデータを送信している）と判定する。このような異常が記録されると、次のステップ８２０においてアプリケーション６２０は自身の動作のパラメータを変更する。たとえば、アプリケーション６２０は誤動作しているサービス６１０が配置されているコンピュータのアンチウィルス走査を開始する。次に、ステップ８３０において、セキュリティ・アプリケーション６３０は実行の際に異常が検知された上記のサービスの動作パラメータを変更する。この後、ステップ８４０では、アプリケーション６２０は保護モジュール１３０の動作パラメータを変更する。たとえば、セキュリティ・アプリケーション６２０は、サーバ１４０（および対応するサービス６１０）からのユーザリクエストに対応するデータを収集する時間間隔を変更する。
【００５６】
本開示では、モジュールおよび装置、６３０、６２０、６２５および１４０は、集積マイクロ回路（特定用途向け集積回路（ＡＳＩＣ））またはプログラマブル・ゲート・アレイ（field−programmable  gate  array；ＦＰＧＡ）などのハードウェア、または、マイクロプロセッサシステムおよびソフトウェア命令一式、ならびにニューロモーフィック・チップ（ニューロシナプティック・チップ）などのソフトウェアとハードウェアの組み合わせ形式で実現される、実装置、システム、コンポーネント、コンポーネントグループとして実現することができる。モジュール６３０、６２０、６２５および１４０の機能は、ハードウェアのみで実行することもでき、また、機能の一部をソフトウェアで実行し一部をハードウェアで実行するという組み合わせ形式で実行することもできる（ソフトウェア・ハードウェア複合体）。一部の例示的側面では、モジュール６３０、６２０、６２５および１４０の一部は、汎用コンピュータシステムのプロセッサで実行される（図８に図示）。
【００５７】
図８は、ＤＤｏＳ攻撃を防御するシステムおよび方法の側面が例示的一側面に基づいて実行される、汎用コンピュータシステム２０のブロック図である。コンピュータシステム２０は、前述したモジュール１３０、６３０、サーバ１４０およびハードウェア６２５に対応し得ることを留意されたい。
【００５８】
図示されているとおり、コンピュータシステム２０（パーソナルコンピュータまたはサーバでもよい）は、中央処理装置２１、システムメモリ２２、および、中央処理装置２１に対応するメモリを含む様々なシステムコンポーネントを接続するシステムバス２３を備える。当業者には理解されるとおり、システムバス２３は、バスメモリまたはバスメモリ制御部、周辺バス、および他のバスアーキテクチャと相互作用可能なローカルバスを含む。システムメモリは、永久メモリ（ＲＯＭ）２４およびランダムアクセスメモリ（ＲＡＭ）２５を含む。基本入力／出力システム（basic  input／output  system；ＢＩＯＳ）２６は、ＲＯＭ２４を使用してオペレーティングシステムをロードする時などの、コンピュータシステ２０の要素間の基本的な情報転送手順を記憶する。
【００５９】
コンピュータシステム２０は、さらに、データの読み取りおよび書き込みを行うハードディスク２７、取り外し可能な磁気ディスク２９の読み取りおよび書き込みを行う磁気ディスクドライブ２８、ならびに、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭおよびその他の光学媒体等の取り外し可能な光学ディスク３１の読み取りおよび書き込みを行う光学ドライブ３０を含む。ハードディスク２７、磁気ディスクドライブ２８、および光学ドライブ３０は、それぞれ、ハードディスクインタフェース３２、磁気ディスクインタフェース３３、および光学ドライブインタフェース３４を介して、システムバス２３に接続されている。ドライブおよびそれに対応するコンピュータ情報媒体は、コンピュータ命令、データ構造、プログラムモジュールおよびその他のコンピュータシステム２０のデータを記憶するための独立電源型モジュールである。
【００６０】
コンピュータシステム２０は、コントローラ５５を介してシステムバス２３に接続される、ハードディスク２７、取り外し可能な磁気ディスク２９、および取り外し可能な光学ディスク３１を含む。コンピュータによって読み取り可能な形式でデータを記憶できる媒体５６（ソリッド・ステート・ドライブ、フラッシュメモリカード、デジタルディスク、ランダムアクセスメモリ（ＲＡＭ）等）であればどのようなものでも利用できることは、当業者であれば理解できるであろう。
【００６１】
コンピュータシステム２０は、オペレーティングシステム３５が記憶されるファイルシステム３６、ならびに、追加プログラムアプリケーション３７、その他のプログラムモジュール３８およびプログラムデータ３９を有する。コンピュータシステム２０のユーザは、キーボード４０、マウス４２、または当業者に知られているマイク、ジョイスティック、ゲームコントローラ、スキャナ等（これらに限定されない）のその他の入力装置を使用して命令や情報を入力する。これらの入力装置は、通常、シリアルポート４６を介してコンピュータシステム２０に差し込まれ、システムバスに接続される。ただし、当業者であれば、入力装置は、パラレルポート、ゲームポート、またはユニバーサルシリアルバス（ＵＳＢ）（これらに限定されない）を介するその他の方法でも接続され得ることがわかるであろう。モニタ４７やその他のタイプの表示装置も、ビデオアダプタ４８などのインタフェースを介してシステムバス２３に接続されてもよい。モニタ４７に加え、パーソナルコンピュータは、ラウドスピーカやプリンタ等のその他の周辺出力装置（図示せず）を装備していてもよい。
【００６２】
コンピュータシステム２０は、１以上のリモートコンピュータ４９へのネットワーク接続を使用して、ネットワーク環境で動作してもよい。一台（または複数）のリモートコンピュータ４９は、上述のコンピュータシステム２０の性質で説明した要素の大部分もしくはすべてを含むローカルコンピュータワークステーションまたはサーバでもよい。以下に限定されないが、ルータ、ネットワークステーション、ピア装置またはその他のネットワークノードなど他の装置も、コンピュータネットワーク内に存在してもよい。
【００６３】
ネットワーク接続により、ローカルエリア・コンピュータネットワーク（ＬＡＮ）５０およびワイドエリア・コンピュータネットワーク（ＷＡＮ）が形成される。これらのネットワークは、企業コンピュータネットワークおよび社内ネットワークで使用され、通常はインターネットにアクセスできる。ＬＡＮまたはＷＡＮネットワークでは、パーソナルコンピュータ２０は、ネットワークアダプタまたはネットワークインタフェース５１を介して、ローカルエリア・ネットワーク５０に接続されている。ネットワークが使用されると、コンピュータシステム２０は、モデム５４、または、インターネットなどのワイドエリア・コンピュータネットワークによって通信を可能にする、当業者に周知のその他のモジュールを使用する。内部装置または外部装置であるモデム５４は、シリアルポート４６によってシステムバス２３に接続される。このネットワーク接続が、通信モジュールを使用して一つのコンピュータを別のコンピュータに接続させる数々の周知の方法の非限定的な例であることは、当業者であればわかるであろう。
【００６４】
種々の側面において、ここに記載するシステムおよび方法は、ハードウェア、ソフトウェア、ファームウェアまたはその組み合わせにおいて実行される。ソフトウェアで実行される場合、この方法は１以上の命令またはコードとして非一時的なコンピュータ可読媒体に記憶されてもよい。コンピュータ可読媒体はデータ記憶装置も含む。一例では、このコンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ、フラッシュメモリ、その他の電気、磁気または光学記憶媒体、あるいは、命令やデータ構造の形式で所望のプログラムコードを伝達または記憶するために使用し、汎用コンピュータのプロセッサからアクセス可能な、その他の媒体を含んでもよいが、これらに限定されない。
【００６５】
種々の側面において、ここに記載したシステムおよび方法は、モジュールによって処理することができる。「モジュール」という用語は、たとえば、application−specific  integrated  circuit（ＡＳＩＣ）またはfield−programmable  gate  array（ＦＰＧＡ）などのハードウェア、あるいは、モジュールの機能を実行するマイクロプロセッサシステムおよび命令一式などのハードウェアとソフトウェアとの組み合わせによって実行される、実装置、コンポーネントまたは一組のコンポーネントのことを指しており、これらは（実行中に）マイクロプロセッサシステムを専用装置に変換する。モジュールは、一部の機能をハードウェアのみで実行させ、他の機能をハードウェアとソフトウェアの組み合わせによって実行させるという、２つの組み合わせで実行させることもできる。特定の実施例では、モジュールの少なくとも一部、または、場合によってすべてが、汎用コンピュータのプロセッサで実行される（上記図８で詳しく説明）。よって、各モジュールは、様々な適切な設定で実行されるものであって、ここで例示した特定の実施例に限定されるものではない。
【００６６】
なお、明瞭化のため、各側面の一般的な特徴すべてについては開示しない。本開示の実際の実装を開発する際、開発者の具体的な目的を達成するためには実装に応じた数々の決定を行わなければならず、具体的な目的は実装や開発者によって異なることに留意されたい。こうした開発上の取り組みは、複雑で時間を要するものであるが、本発明の利益を享受する当業者にとっては日常の作業であることを理解されたい。
【００６７】
更に、ここで使用する用語又は表現は、あくまでも説明のためであり、限定するものではないことを理解されたい。よって、本明細書の用語又は表現は、関連技術の熟練者の知識と組み合わせて、本明細書に示す教示及び指針に照らして当業者によって解釈されたい。明細書又は特許請求の範囲における用語はいずれも、特に明記していない限り、一般的でない意味や特別な意味をもつものではない。
【００６８】
本明細書で開示した様々な側面は、本明細書で例示した既知のモジュールの、現在及び将来の既知の均等物を包含する。本明細書では、複数の側面及び応用例を示して説明したが、本明細書に開示した発明の概念の範囲内で、上記よりも多くの変形例が可能であることは、本発明の利益を享受する当業者にとって明らかであろう。
【図１】
2019021294.tif 000008
【図２】
2019021294.tif 000009
【図３】
2019021294.tif 000010
【図４】
2019021294.tif 000011
【図５】
2019021294.tif 000012
【図６】
2019021294.tif 000013
【図７Ａ】
2019021294.tif 000014
【図７Ｂ】
2019021294.tif 000015
【図８】
2019021294.tif 000016
【外国語明細書】
2019021294000001.pdf