(57)【特許請求の範囲】
【請求項１】
フィッシング・スクリプトを検出するための方法であって、
前記方法は、
ハードウェアプロセッサによって、スクリプトのバイトコードを生成する工程と、
前記ハードウェアプロセッサによって、前記生成されたバイトコードのハッシュ値を計算する工程と、
前記ハードウェアプロセッサによって、前記バイトコードのハッシュ値と、既知のフィッシング・スクリプトにおける１つ又は複数のハッシュ値グループにあるハッシュ値との間の類似度を決定する工程と、
前記ハードウェアプロセッサによって、前記バイトコードのハッシュ値との類似度が閾値内にあるハッシュ値を含む少なくとも１つのハッシュ値グループを特定する工程と、
前記ハードウェアプロセッサによって、特定された前記ハッシュ値グループにおける、コンパクト係数及び信頼係数を決定する工程と、
前記ハードウェアプロセッサによって、前記類似度、前記コンパクト係数、及び前記信頼係数に基づいて、前記スクリプトがフィッシング・スクリプトであるかどうかを決定する工程を含み、
前記コンパクト係数は、計算されたハッシュ値と類似するハッシュ値のグループ内の数を示し、計算されたハッシュ値はグループ内の少なくとも1つのハッシュ値と類似しており、
前記信頼係数は、フィッシング目的とするデータを含むグループのハッシュ値を形成するために使用されるスクリプトの割合を示す、
方法。
【請求項２】
前記バイトコードは、前記スクリプトの少なくとも１つのオペコードを含む、
請求項１に記載の方法。
【請求項３】
前記スクリプトのバイトコードを生成する工程は、
前記ハードウェアプロセッサによって、ディスクへのデータの書き込み、ファイルシステムのオブジェクト操作、プログラムの実行の機能を担うスクリプトコマンドを特定する工程と、
前記ハードウェアプロセッサによって、特定の前記機能に基づいて、前記特定されたスクリプトコマンドを複数の機能グループにグループ化する工程と、
前記ハードウェアプロセッサによって、各機能グループにバイナリの値を割り当てる工程と、
前記ハードウェアプロセッサによって、前記バイナリの値からの前記バイトコードを生成する工程を含む、
請求項１に記載の方法。
【請求項４】
前記ハッシュ値はファジーハッシュを含む、
請求項１に記載の方法。
【請求項５】
ハッシュ値を一致させるための検索はファジー検索を含む、
請求項１に記載の方法。
【請求項６】
前記特定されたハッシュ値グループにおける前記コンパクト係数及び信頼係数を決定する工程は、
前記特定されたハッシュ値グループのインデックスを決定する工程をさらに含み、
前記インデックスは、前記信頼係数と前記コンパクト係数の相関の度合いを示すものである、
請求項１に記載の方法。
【請求項７】
フィッシング・スクリプトを検出するためのシステムであって、
ハードウェアプロセッサを備え、
前記ハードウェアプロセッサは、
スクリプトのバイトコードを生成し、
前記生成されたバイトコードのハッシュ値を計算し、
前記バイトコードのハッシュ値と、既知のフィッシング・スクリプトにおける１つ又は複数のハッシュ値のグループにあるハッシュ値との間の類似度を決定し、
前記バイトコードのハッシュ値との類似度が閾値内にあるハッシュ値を含む少なくとも１つのハッシュ値グループを特定し、
前記特定されたハッシュ値グループにおける、コンパクト係数及び信頼係数を決定し、
及び、
前記類似度、前記コンパクト係数及び前記信頼係数に基づいて、前記スクリプトがフィッシング・スクリプトであるかどうかを決定するように構成され、
前記コンパクト係数は、計算されたハッシュ値と類似するハッシュ値のグループ内の数を示し、計算されたハッシュ値はグループ内の少なくとも1つのハッシュ値と類似しており、
前記信頼係数は、フィッシング目的とするデータを含むグループのハッシュ値を形成するために使用されるスクリプトの割合を示す、
システム。
【請求項８】
前記バイトコードは、前記スクリプトの少なくとも１つのオペコードを含む、
請求項７に記載のシステム。
【請求項９】
前記スクリプトのバイトコードの生成は、
ディスクへのデータの書き込み、ファイルシステムのオブジェクト操作、プログラムの実行の機能を担うスクリプトコマンドを特定し、
特定の前記機能に基づいて、前記特定されるスクリプトコマンドを複数の機能グループにグループ化し、
各機能グループにバイナリの値を割り当て、
前記バイナリの値からの前記バイトコードを生成する、
請求項７に記載のシステム。
【請求項１０】
前記ハッシュ値はファジーハッシュを含む
請求項７に記載のシステム。
【請求項１１】
ハッシュ値を一致させるための検索はファジー検索を含む、
請求項７に記載のシステム。
【請求項１２】
前記特定されたハッシュ値グループにおける前記コンパクト係数及び信頼係数の決定は、
前記特定されたハッシュ値グループのインデックスをさらに決定し、
前記インデックスは、前記信頼係数と前記コンパクト係数の相関の度合いを示すものである、
請求項７に記載のシステム。
【請求項１３】
フィッシング・スクリプトを検出するためのコンピュータ実行可能命令を格納する非一時的なコンピュータ可読媒体であって、
前記命令は、
スクリプトのバイトコードを生成する命令と、
前記生成されたバイトコードのハッシュ値を計算する命令と、
前記バイトコードのハッシュ値と、既知のフィッシング・スクリプトにおける１つ又は複数のハッシュ値のグループにあるハッシュ値との間の類似度を決定する命令と、
前記バイトコードのハッシュ値との類似度が閾値内にあるハッシュ値を含む少なくとも１つのハッシュ値グループを特定する工程と、
前記特定されたハッシュ値グループにおける、コンパクト係数及び信頼係数を決定する命令と、
前記類似度、前記コンパクト係数及び前記信頼係数に基づいて、前記スクリプトがフィッシング・スクリプトであるかどうかを決定する命令、
を含み、
前記コンパクト係数は、計算されたハッシュ値と類似するハッシュ値のグループ内の数を示し、計算されたハッシュ値はグループ内の少なくとも1つのハッシュ値と類似しており、
前記信頼係数は、フィッシング目的とするデータを含むグループのハッシュ値を形成するために使用されるスクリプトの割合を示す、
非一時的なコンピュータ可読媒体。
【請求項１４】
前記バイトコードは、前記スクリプトの少なくとも１つのオペコードを含む、
請求項１３に記載の非一時的なコンピュータ可読媒体。
【請求項１５】
前記スクリプトのバイトコードを生成する命令は、
ディスクへのデータの書き込み、ファイルシステムのオブジェクト操作、プログラムの実行の機能を担うスクリプトコマンドを特定する命令と、
特定の前記機能に基づいて、前記特定されるスクリプトコマンドを複数の機能グループにグループ化する命令と、
各機能グループにバイナリの値を割り当てる命令と、
前記バイナリの値からの前記バイトコードを生成する命令を含む、
請求項１３に記載の非一時的なコンピュータ可読媒体。
【請求項１６】
前記ハッシュ値はファジーハッシュを含む、
請求項１３に記載の非一時的なコンピュータ可読媒体。
【請求項１７】
ハッシュ値を一致させるための検索はファジー検索を含む、
請求項１３に記載の非一時的なコンピュータ可読媒体。
【請求項１８】
前記特定されたハッシュ値グループにおける前記コンパクト係数及び信頼係数を決定する命令は、
前記特定されたハッシュ値グループのインデックスを決定する命令をさらに含み、
前記インデックスは、前記信頼係数と前記コンパクト係数の相関の度合いを示すものである、
請求項１３に記載の非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本開示は、米国特許法35 U.S.C.119(a)-(d)に基づいて、2015年9月30日に出願されたロシア特許出願第2015141553についての優先権の利益を主張し、本明細書中に参考として援用する。
【０００２】
本発明は、概してコンピュータセキュリティの分野に関するものであり、より具体的には、フィッシング・スクリプトを検出するためのシステム及び方法である。
【背景技術】
【０００３】
過去10年間にインターネット技術において活発な開発が行われ、インターネットを介してデータを伝送する多数のデバイス（例えば、パーソナルコンピュータ、ノートPC、タブレット、携帯電話等）が出現した。それらは容易に使用することができ利便性があるので、多くの人々が、日常の用事（情報の入手、銀行口座へのアクセス、購入、電子メールの使用、及び娯楽としてソーシャルネットワークのアクセス等）にインターネットを使用するようになった。多くのインターネットでの作業（物品の購入、送金、登録を必要とするウェブサイトへのアクセス等）で、ユーザは非常に重要な情報を送信する必要が生じる。それらの情報は、外部サーバへの機密情報（クレジットカード又は銀行口座番号、アカウントレコードのパスワード等）であり、ユーザに依存する財務的なセキュリティの安全性に関わる非常に重要な情報である。
【０００４】
インターネットのユーザが膨大な数であるという事実により、ハッカーの活動を増加させている。彼らは、様々な技術及び手法を介してユーザの機密情報に対するアクセス権を入手し、彼らの更なる目的で必要となるデータを盗もうと試みる。最も一般的な方法の一つは、いわゆるフィッシングである。
すなわち、人気ブランドの名称でメッセージを送信することと、
様々なサービス（ソーシャルネットワーク、インスタントメッセージシステム）での個人的なメッセージを送信することと、
及び、サイト（銀行、インターネットマガジン、ソーシャルネットワーク等の合法的なサイトであると主張する）の検索サービスを作成、登録することによって、
ユーザの機密情報へのアクセス権を入手することである。ハッカーからユーザに送信される電子メール又はメッセージは、多くの場合、本物とは外目には区別しにくい悪質なサイトへのリンクが含まれ、或いは、そのサイトから悪質なサイトに移動することができる。ユーザが偽造サイトにたどり着いた後、ハッカーはさまざまなソーシャルエンジニアリング手法を用いて、彼又は彼女の機密情報（特定のサイトへのアクセスに使用される）を入力するようにユーザを促す。それにより、ハッカーは銀行口座及びその他のアカウントへのアクセス権を得ることができる。機密情報を一回開示してしまうだけでなく、ユーザには、そのような偽造サイトからマルウェア・アプリケーション（被害者のコンピュータからの定期的に情報を収集するもの）をダウンロードするリスクが生じる。
【０００５】
上記ハッキングの方法に対応したいくつかの技術を用いると、フィッシングメッセージ（電子メール等）と、さらに偽造サイトも明らかになる。
この目的のために、メッセージの中にあるフィッシングに使用されるデータ（例えば、特徴的な画像、メッセージ形成技術、特にメッセージに含まれているスクリプト等）を、信頼のある及び信頼のないサイトアドレス並びにフィッシングメッセージ由来のフレージングテンプレート等のライブラリを使用して検索する。上記の手法の１つの例としては、署名又はログ（フィッシングに使用されたデータであって以前に発見されたデータでの振る舞いのログ）の類似性によってフィッシングに使用されているデータを検索することである。疑わしいオブジェクトがあると検出された場合、ユーザは潜在的な危険を知らされる。
【０００６】
上記の方法は、既知のフィッシング方法とフィッシングに使用されるデータの種類の解析に基づくフィッシング（特に、フィッシング・スクリプト）検出において特定の問題を解決することに向いている。しかしながら、多くの場合、フィッシングの使用又はフィッシングに対して使用される新しいデータに対する新しい手法には何の助けにもならない。
【発明の概要】
【０００７】
フィッシング・スクリプトを検出するためのシステム及び方法が開示される。
例示的な一態様で、本方法は、
ハードウェアプロセッサによって、スクリプトのバイトコードを生成する工程と、
ハードウェアプロセッサによって、生成されたバイトコードのハッシュ値を計算する工程と、
ハードウェアプロセッサによって、バイトコードのハッシュ値と、既知のフィッシング・スクリプトにおける1つ又は複数のハッシュ値のグループにあるハッシュ値との間の類似度を決定する工程と、
ハードウェアプロセッサによって、バイトコードのハッシュ値との類似度が閾値内にあるハッシュ値を含む少なくとも1つのハッシュ値グループを特定する工程と、
ハードウェアプロセッサによって、特定されたハッシュ値グループにおけるコンパクト係数及び信頼係数を決定する工程と、
ハードウェアプロセッサによって、類似度、コンパクト係数、及び信頼係数に基づいて、スクリプトがフィッシング・スクリプトであるかどうかを決定する工程、を備える。
【０００８】
例示的な一態様で、バイトコードはスクリプトの少なくとも１つのオペコードを含んでいる。
【０００９】
例示的な一態様で、スクリプトのバイトコードを生成する工程は、
ハードウェアプロセッサによって、ディスクへのデータの書き込み、ファイルシステムのオブジェクト操作、プログラムの実行の機能を担うスクリプトコマンドを特定する工程と、
ハードウェアプロセッサによって、それら特定の機能に基づいて、その特定されるスクリプトコマンドを複数の機能グループにグループ化する工程と、
ハードウェアプロセッサによって、各機能グループにバイナリの値を割り当てる工程と、
及び、ハードウェアプロセッサによって、バイナリの値からのバイトコードを生成する工程を含む。
【００１０】
例示的な一態様で、ハッシュ値はファジーハッシュを含む。
【００１１】
例示的な一態様で、ハッシュ値を一致させるための検索はファジー検索を含む。
【００１２】
例示的な一態様で、特定されたハッシュ値グループにおけるコンパクト係数及び信頼係数を決定する工程は、
特定されたハッシュ値グループのインデックスを決定する工程をさらに含み、
インデックスは、特定されたハッシュ値グループにおける信頼係数とコンパクト係数の依存の度合いを示すものである。
【００１３】
例示的な一態様で、フィッシング・スクリプトを検出するためのシステムは、以下のように構成されたハードウェアプロセッサを備え、
ハードウェアプロセッサは、
スクリプトのバイトコードを生成し、
生成されたバイトコードのハッシュ値を計算し、
バイトコードのハッシュ値と、既知のフィッシング・スクリプトにおける1つ又は複数のハッシュ値のグループにあるハッシュ値との間の類似度を決定し、
バイトコードのハッシュ値との類似度が閾値内にあるハッシュ値を含む少なくとも１つのハッシュ値グループを特定し、
特定されたハッシュ値グループにおける、コンパクト係数及び信頼係数を決定し、
及び、
類似度、コンパクト係数、及び信頼係数に基づいて、スクリプトがフィッシング・スクリプトであるかどうかを決定するように構成される。
【００１４】
例示的な一態様で、フィッシング・スクリプトを検出するためのコンピュータ実行可能命令を格納する非一時的なコンピュータ可読媒体であって、
上記命令は、
スクリプトのバイトコードを生成する命令と、
生成されたバイトコードのハッシュ値を計算する命令と、
バイトコードのハッシュ値と、既知のフィッシング・スクリプトにおける1つ又は複数のハッシュ値のグループにあるハッシュ値との間の類似度を決定する命令と、
バイトコードのハッシュ値との類似度が閾値内にあるハッシュ値を含む少なくとも１つのハッシュ値グループを特定する工程と、
特定されたハッシュ値グループにおける、コンパクト係数及び信頼係数を決定する命令と、
類似度、コンパクト係数、及び信頼係数に基づいて、スクリプトがフィッシング・スクリプトであるかどうかを決定する命令、
を含む。
【００１５】
本発明の例示的な態様の上記の簡単な概要は、本発明の基本的な理解を提供するのに役立つ。この概要は、すべての企図される態様の広範な概観ではなく、すべての態様の主要または重要な要素を特定することも、本発明における任意の範囲又はすべての態様を線引きすることも意図されていない。その唯一の目的は、以下の本発明のより詳細な説明の前置きとして簡略化された形式で、一つ又は複数の態様を提示することである。前述の達成のために、本発明の一つ又は複数の態様は、特許請求の範囲で説明され、特に指摘された特徴を含む。
【図面の簡単な説明】
【００１６】
添付図面は、本明細書に組み込まれ、本明細書の1モジュールを構成し、本発明の1つ又は複数の例示的態様を示し、詳細な説明と共に、それらの原理及び実装を説明するのに役立つ。
【図１】図1は、フィッシング・スクリプトの検出のための例示的なシステム示す。
【図２】図2は、フィッシング・スクリプトの検出のための例示的な方法である。
【図３】図3は、グループコンパクト係数に応じて、グループ信頼係数をプロットした一例を示す。
【図４】図4は、離散フーリエ変換後のグループコンパクト係数に対してプロットされたグループ信頼係数の一例を示す。
【図５】図5は、グループコンパクト係数に応じて、グループ信頼係数の二つのプロットの類似性の一例を示す。
【図６】図6は、本発明のシステム及び方法の様々な態様を実装するために使用することができるコンピュータシステムの一例を示す。
【発明を実施するための形態】
【００１７】
本発明の例示的態様は、フィッシング・スクリプトを検出するためのシステム、方法、及びコンピュータプログラム製品における説明で本明細書に記載されている。当業者は、以下の説明は単なる例示であり、いかなる方法においても限定されることを意図するものではないことを理解するであろう。他の態様は、本開示の利益を有する当業者に対して容易に示される。添付の図面に示されるように、参照は例示的態様の実装に対して以下で詳細に説明される。同じ参照指標が、同一または同様の項目を参照するために、図面全体と以下の説明を通じて可能な限り使用される。
【００１８】
以下の説明で使用される定義及び概念のいくつかは、初めから導入される。
【００１９】
フィッシング・スクリプトはフィッシングに使用されるデータを含むスクリプトであり、コンピュータに対して又はコンピュータユーザのデータに対して害を引き起こすことが可能であるスクリプトでありえる。そのような害の例は、盗難を目的として、コンピュータに保存されているデータを含むコンピュータリソースへの不正アクセスでありえ、及び、データの保存、計算の実行等を含むリソースの不正使用もありえる。
【００２０】
信頼できるスクリプトとは、コンピュータ又はそのユーザに害を引き起こすことのないスクリプトでありえる。信頼できるスクリプトは、信頼できるソフトウェアの製造元によって開発され、信頼できるソース（信頼できるサイトのライブラリの一員であるサイト等）からダウンロードしたスクリプトであると考えることができる。又、そのスクリプトの特定子（スクリプトファイルのMD5等）は、信頼できるスクリプトのライブラリに格納されている。製造元の特定子（デジタル証明書等）も、信頼できるスクリプトのライブラリに格納することができる。
【００２１】
図1は、フィッシング・スクリプトの検出のための例示的なシステム示す。システムは、ネットワークリソース100、収集モジュール110、バイトコード計算モジュール120、ハッシュ値計算モジュール130、検索モジュール140、統計収集モジュール15、解析モジュール160、評価作成モジュール170、ハッシュ値ライブラリ180と評価テンプレートライブラリ190、を含むが、それに限定されない。
ネットワークリソース100は、インターネットページ、電子メール、インスタメッセージシステムからのメッセージを含むが、それに限定されない。
【００２２】
例示的な一態様で、収集モジュール110は、少なくとも１つのスクリプトを含むネットワークリソース100から少なくとも1つのスクリプトを選択し、
バイトコード計算モジュール120へ選択されたスクリプトを送信するように構成される。
例示的な一態様で、スクリプトは、  ネットワークリソースから選択することができ、そのネットワークリソースにあるリンクは、他のスクリプトにあったものである（例えば、JavaScript（登録商標）のスクリプトが、'document.getElementById("new_tag").src="new_script.js"'の形式で、他のJavaScript（登録商標）のスクリプトにあるリンクによって選択される）。
【００２３】
例示的な一態様で、バイトコード計算モジュール120は、選択されたスクリプトのバイトコードを計算し、算出したバイトコードをハッシュ値計算モジュール130に送信するように構成される。バイトコードは、選択されたスクリプトに含まれる少なくとも1つのスクリプトコマンドで構成される、スクリプトコマンド（オペコード）の集合である。
【００２４】
例示的な一態様で、次のように、選択されたスクリプトのバイトコードを計算することができる。
・すべてのスクリプトコマンドのシーケンスがスクリプトから選択される。
・特定の機能（画面に情報を表示する、ハイパーリンクを介してジャンプする、画像をロードする等）を実行しないスクリプトコマンドの中には、選択されたシーケンスから削除されるものもある。
・選択されたシーケンスに残るスクリプトコマンドは、少なくとも1つのスクリプトコマンドを含むコマンドのグループにそれぞれ組み合わされる（例えば、情報の画面表示を担う機能と画像のロードを担う機能は、1つのグループに組み合わせることができる）。
・各スクリプトコマンド又はスクリプトコマンドのグループには、一意の２バイトの値が割り当てられる。
・得られた２バイトの値のシーケンスは、算出したバイトコードを構成する。
【００２５】
例示的な一態様で、ハッシュ値計算モジュール130は、算出したバイトコードのハッシュ値を計算し、計算されたハッシュ値を検索モジュール140に送信するように構成される。ハッシュ値は、少なくともファジーハッシュ値を計算することとインデックスを用いたファジー検索することによって算出することができる。
データのファジーハッシュ値とは、ファジーハッシュが計算される領域に対して、それぞれ別のデータ領域から計算されたハッシュ値の集合で構成される。
インデックスを用いたファジー検索は、データ構造を用いた集合の要素（ユークリッド空間、ツリー空間などの要素）を見つける技術であり、集合（ハッシュ値を構成する）の要素間の距離を計算する。所与の空間内で比較する回数が少なくなるので、検索対象の要素に最も近い集合の要素を素早く検索することができる。
【００２６】
例示的な一態様で、検索モジュール140は以下のように構成される。
算出したハッシュ値と類似である少なくとも1つのハッシュ値を含む少なくとも1つのハッシュ値のグループとこれらハッシュ値の間における算出された類似度が、ハッシュ値ライブラリ180から選択されるように構成される。選択されたグループと選択されたハッシュ値の類似度を統計収集モジュール150に送信されるようにさらに構成される。
ハッシュ値の類似度は、少なくとも以下の手段によって計算される。
ファジーハッシュ値を比較する（すなわち、ハッシュ値の計算に用いられるデータの類似性を特徴付ける数値を算出することによる）手段。
インデックスを用いてファジー検索メトリックを算出する（すなわち、検索される集合のSEEK要素とFIND要素との間の距離を算出することによる）手段。
【００２７】
例示的な一態様で、統計収集モジュール150は、検索モジュール140から取得したハッシュ値における類似度、グループ信頼係数及びグループコンパクト係数に基づいて、少なくとも1つの選択されたグループに対するグループインデックスを計算し、決定されたグループインデックスを解析モジュール160に送信するように構成される。グループインデックスはグループ信頼係数のグループコンパクト係数への依存の度合いを示す。
【００２８】
例示的な一態様で、グループインデックスは1対の数{x、y}でありえ、（図3に示すように）グループコンパクト係数に応じたグループ信頼係数のプロットの要素を特徴付けるものである。成分{x}は、グループコンパクト係数とそのグループのハッシュ値の類似度の積であり、成分{y}は、グループ信頼係数とそのグループの類似度の積である。
【００２９】
評価テンプレートライブラリ190からサンプリングする前に、（図4に示すように）統計収集モジュール150で決定されたグループインデックスを、少なくとも離散フーリエ変換、ウェーブレット変換で変換することが可能である。
【００３０】
このような変換の結果、より高いグループコンパクト係数及びより高いグループ信頼係数を有するグループインデックスが、より重要であるとして関数の左側に移動される。これにより、解析モジュール150で決定及び選択されたシーケンスの比較の精度が増すだろう。
【００３１】
例示的な一態様で、解析モジュール160は以下のように構成される。
評価テンプレートライブラリ190から、少なくとも1つの評価テンプレートを選択し、
評価テンプレートにある少なくとも1つのグループインデックスは、統計収集モジュール150で決定された少なくとも１つのグループインデックスに類似する。２つのグループインデックス類似性は、設定閾値に対する算出された類似度の対応関係によって決定される。これらグループインデックスの算出された類似度も評価テンプレートライブラリ190から選択され、選択された評価テンプレートとグループインデックスの類似度を評価作成モジュール170に送信するように構成される。
【００３２】
グループインデックスの類似度は、多次元ベクトルのスカラー積を求めることによって算出でき、多次元ベクトルの要素がそのグループに含まれるデータとなる（図5参照）。
【００３３】
例示的な一態様で、評価モジュール170は以下のように構成される。
設定閾値に対する、少なくとも1つの評価テンプレート信頼係数及び少なくとも1つのグループインデックスの類似度（解析モジュール160から取得される）の対応関係に基づいて、収集モジュール110で選択されるスクリプトがフィッシング・スクリプトであるかの決定を行う。例示的な一態様で、収集モジュール110で選択されるスクリプトがフィッシング・スクリプトであるかについての決定を行うことは、以下のように成される。取得された評価テンプレート信頼係数及びグループインデックスの類似度の各々の対について、その積が計算される。得られる積の最小値が見つけられ、その最小値が設定閾値を超えるかについて確認される。上記条件を満たす場合には、収集モジュール110によって選択されたスクリプトがフィッシング・スクリプトであると判断される。
【００３４】
例示的な一態様で、ハッシュ値ライブラリ180は、少なくとも1つのハッシュ値、グループコンパクト係数、グループ信頼係数を含むデータの集合である少なくとも1つのグループを保存するように構成される。
コンパクト係数は、計算されたハッシュ値と類似するハッシュ値のグループ内の数を示し、計算されたハッシュ値はグループ内の少なくとも1つのハッシュ値と類似しており、２つのハッシュ値間の類似性は、設定閾値に対する計算された類似度との対応関係によって決定される。
グループ信頼係数は、フィッシング目的とするデータを含むグループのハッシュ値を形成するために使用されるスクリプトの数（割合）を示す。
【００３５】
例示的な一態様で、グループコンパクト係数は少なくとも以下の方法で計算できる。
グループに含まれるハッシュ値の全ての対の中での最小の類似度を検索する方法。
グループに含まれるハッシュ値の少なくとも２対の類似度から代表値を計算する方法。
【００３６】
例示的な一態様で、グループ信頼係数は、0から1までの範囲の値を決定することによって算出される。
0は、所与のグループのハッシュ値を形成するために使用されるすべてのスクリプトがフィッシング・スクリプトであることを示し、
１は、所与のグループのハッシュ値を形成するために使用されるすべてのスクリプトが信頼できることを示す。
【００３７】
評価テンプレートライブラリ190は、少なくとも1つのグループインデックスと評価テンプレート信頼係数を含むデータの集合である少なくとも１つの評価テンプレートを保存するように構成される。
グループインデックスは、グループ信頼係数のグループコンパクト係数への依存の度合いを示し、
評価テンプレート信頼係数は、グループを形成するために使用されるスクリプトの数（割合）を示し、フィッシング目的とするデータを含む評価テンプレートから、そのグループに対するグループインデックスが決定される。
【００３８】
例示的な一態様で、評価テンプレート信頼係数は、0からの1までの範囲の値を決定することによって算出される。
0は、評価テンプレートから決定されるグループインデックスに対するグループを形成するために使用されるスクリプトのすべてがフィッシング・スクリプトであることを示し、
1は、評価テンプレートから決定されるグループインデックスに対するグループを形成するために使用されるすべてのスクリプトが信頼できることを示す。
【００３９】
評価テンプレートライブラリ190からの評価テンプレートは、ハッシュ値ライブラリ180からのすべてのグループを用いて決定されるグループインデックスを集合的に包含することができる。
【００４０】
以下の例は、フィッシング・スクリプトスクリプトの検出のために上記のシステムがどのように機能するかを示すものである。銀行の正当なインターネットページhttp://givemeyourmoney.comであることを主張して、サイトhttp://gimmeyourmoney.comのインターネットページに含まれるフィッシング・スクリプトの検出の例における例示である。
【００４１】
ユーザは、サイトhttp://gimmeyourmoney.comのインターネットページであるネットワークリソース100に自分のブラウザを設定する。サーチエンジン（ウェブクローラ）である傍受モジュール110は、示されたサイトからユーザが閲覧しているページに何らかの形で関連するスクリプトを選択する。選択されたスクリプトは、閲覧している実際のページに含まれるスクリプトのみならず、閲覧しているページに含まれるリンクのページにあるスクリプトでありえ、且つ、選択されたスクリプトをバイトコード計算モジュール120に送信することができる。
【００４２】
バイトコード計算モジュール120は、傍受したスクリプトのバイトコードを計算する。この目的に対して、選択されたスクリプトから全てのスクリプトコマンドのシーケンスが抽出される。特定の機能（画面への情報の表示、ハイパーリンクによるジャンプ、画像のロード等）を実行しない一部のスクリプトコマンドは、選択されたシーケンスから削除される。選択されたシーケンスに残っているスクリプトコマンドは、少なくとも1つのスクリプトコマンドを含むコマンドのグループにそれぞれ結合される（例えば、画面への情報の表示及び画像のロードを担う一連のスクリプトコマンドを1つのグループにまとめることができる）。各スクリプトコマンド又はスクリプトコマンドのグループには一意の２バイト値が割り当てられる。得られた２バイト値のシーケンスは、計算されたバイトコードを構成する。
【００４３】
ハッシュ値計算モジュール130は、取得したバイトコードから（例えば、オープンソースアルゴリズムfuzzyHashを使用して）ファジーハッシュ値を計算する。ファジーハッシュ値は、ブロックのサイズ（バイトコードを分割するブロックサイズ）とこれらブロックのハッシュ値を含むデータの集合である。その後、計算されたハッシュ値を検索モジュール140に送信する。
【００４４】
検索モジュール140は、ハッシュ値ライブラリ180からハッシュ値グループを選択する。グループは、フィッシング・スクリプトの以前に計算されたハッシュ値、グループコンパクト係数、グループ信頼係数を含むデータの集合で構成される。
コンパクト係数は、計算されたハッシュ値と類似するハッシュ値のグループ内の数を示し、計算されたハッシュ値はグループ内の少なくとも１つのハッシュ値と類似しており、２つのハッシュ値間の類似性は、設定閾値に対する計算された類似度との対応関係によって決定される。
グループ信頼係数は、フィッシング目的とするデータを含むグループのハッシュ値を形成するために使用されるスクリプトの数（割合）を示す。
【００４５】
ハッシュ値ライブラリ180からの選択プロセスにおいて、ハッシュ値ライブラリ180にある各グループのハッシュ値と、ハッシュ値計算モジュール130から得られるハッシュ値とのファジー比較（ファジー検索）を行う。
２つのハッシュ値のファジー比較の結果は0から1までの範囲の数値である。
その数値は、ハッシュ値が互いにどれほど類似しているかを示し、２つのハッシュ値間の類似度を表す(例えば、互いに10％異なるスクリプトコマンドを含むスクリプトのバイトコードから計算されたファジーハッシュ値の類似性は、0.9である)。
比較されるグループにおける少なくとも1つのハッシュ値とハッシュ値計算モジュール130から得られるものとの類似度が設定閾値（例えば0.85）を超える場合、グループが見つけられたとみなされ、ハッシュ値計算モジュール130から得られるハッシュ値が比較のグループに属すると考えられる。
この後、選択されたグループと決定された類似度が、統計収集モジュール150へ送られる。サイトhttp://gimmeyourmoney.comのインターネットページから選ばれたスクリプトに対するグループは、ある機能を含むスクリプトのハッシュ値を含むように選択される。
・グループ#１−ロゴタイプ（銀行のもの等）の表示に使用されるパラメータを持つ画像を表示する機能（類似性0.98）
・グループ#２−パスワード入力フォームから複数のアドレスへデータを送信する機能（類似度0.95）
・グループ#３−銀行インターネットページにおける特定のテンプレートと同一であるインターネットページの構造を形成する機能（類似性0.90）
・グループ#４−パスワード入力フォームからデータを送信するボタンを押して実行されるコードを難読化する機能（類似度0.87）
選択されたグループは、解析モジュール160へ送られる。
【００４６】
解析モジュール160は、評価テンプレートライブラリ190から評価テンプレートを選択する。評価テンプレートにある少なくとも1つのグループインデックスは、統計収集モジュール150によって決定された少なくとも1つのグループインデックスに類似している。グループの類似性は、次のように決定される。グループインデックスの各集合は、一対の｛x,y｝の集合で構成され、{x}はグループコンパクト係数であり、{y}はグループ信頼係数である。グループインデックスの各集合は、多次元ベクトルVとして扱われ、ベクトルの要素は｛x,y｝の対である。２つの構成ベクトルのスカラー積が計算される。
計算されたスカラー積は、設定閾値と比較され、それがこれを超えない場合、上記ベクトルが得られるグループインデックスの集合は、類似しているとみなされる。
【００４７】
統計収集モジュール150から取得されたグループインデックスに対して、次の評価テンプレートが選択される。
テンプレート＃1「銀行偽装」：テンプレート信頼係数0.1、類似度0.9
テンプレート＃2「登録偽装」：テンプレート信頼係数0.3、類似度0.8
【００４８】
選択された評価テンプレートとグループインデックスの類似度は、評価通知モジュール170へ送られる。
【００４９】
評価通知モジュール170は、次のアクションを実行する。
取得した一対の評価テンプレート信頼係数とグループインデックスの類似度について、その積を計算する。
テンプレート＃1「銀行偽装」：0.1×0.9 = 0.09;
テンプレート＃2「登録偽装」：0.3×0.8 = 0.24;
乗算の計算結果の最小値（0.09）が見つけられ、それが設定閾値（0.15）を超えていないかを確認する。上記の条件が満たされているので、インターネットページhttp://gimmeyourmoney.comに含まれ、収集モジュール110によって選択されたスクリプトは、インターネットページhttp://gimmeyourmoney.comのサイトと共に、フィッシング・スクリプトであると判断される。評価を示した後、ユーザに通知する。
【００５０】
ユーザは、インターネットページhttp://gimmeyourmoney.comがフィッシングサイトであることの通知を受けているので、機密データをそのサイトに渡さないだろう。すなわち、フィッシングのハッキング技術から保護される。
【００５１】
図2は、フィッシング・スクリプトの検出の例示的な方法を示す。工程210において、少なくとも1つのスクリプトを含むネットワークリソース100から少なくとも1つのスクリプトが選択される。工程220において、選択されたスクリプトのバイトコードが形成される。バイトコードは、選択されたスクリプトに含まれる少なくとも1つのスクリプトコマンドからなるスクリプトコマンドの集合（オペコード）で構成される。工程230において、形成されたバイトコードのハッシュ値が計算される。
【００５２】
工程240において、ハッシュ値ライブラリ180から、計算されたハッシュ値に類似している少なくとも1つのハッシュ値を含む少なくとも1つのグループと類似度（２つの提示されたハッシュ値の計算される類似度）が選択される。２つのハッシュ値間の類似性は、ハッシュ値の類似性における設定閾値に対する、２つの提示されたハッシュ値における計算された類似度との対応関係に基づいて決定される。
選択されたグループには、少なくとも1つのハッシュ値、グループコンパクト係数、グループ信頼係数を含む。
グループコンパクト係数は、計算されたハッシュ値と類似するハッシュ値のグループ内の数を示し、計算されたハッシュ値はグループ内の少なくとも1つのハッシュ値に類似しており、２つのハッシュ値間の類似性は、ハッシュ値の類似性における設定閾値に対する２つの提示されたハッシュ値における計算された類似度との対応関係に基づいて決定される。
グループ信頼係数は、フィッシング目的とするデータを含むグループのハッシュ値を形成するために使用されたスクリプトの数（割合）を示す。
【００５３】
工程250において、グループインデックスは、少なくとも1つの選択されたグループに対して、グループコンパクト係数、グループ信頼係数、及び工程240で計算されたハッシュ値の類似度に基づいて決定される。
グループインデックスは、グループ信頼係数のグループコンパクト係数への依存の度合いを示す。
【００５４】
工程260において、評価テンプレートライブラリ190から、少なくとも1つの評価テンプレートが選択され、評価テンプレートにある少なくとも1つのグループインデックスは、工程250で決定された少なくとも1つのグループインデックスに類似し、２つのグループインデックスの類似性は、グループインデックスの類似性における設定閾値に対する、提示されたグループインデックスの計算された類似度との対応関係に基づいて決定される。
これらグループインデックスの計算された類似度も評価テンプレートライブラリ190から選択される。
選択された評価テンプレートは、少なくとも1つのグループインデックスと評価テンプレート信頼係数を含む。
グループインデックスは、グループ信頼係数のグループコンパクト係数への依存の度合いを示す。
評価テンプレート信頼係数は、グループを形成するために使用されるスクリプトの割合を示し、そのグループに対するグループインデックスが、フィッシング目的とするデータを含む評価テンプレートから決定される。
【００５５】
工程270では、工程210で選択されたスクリプトは、工程260で選択された評価テンプレートに含まれる、少なくとも1つの評価テンプレート信頼係数の設定閾値フィッシング値と、工程260で計算されたグループインデックスの少なくとも1つの類似度との対応関係に基づいて、
フィッシング・スクリプトであるかが決定される。
【００５６】
以下の例は、フィッシング・スクリプトを検出する上記のシステムが、どのように、ユーザが受信した電子メールのメッセージに含まれるフィッシング・スクリプトを検出するのかを示す。電子メールのメッセージは、合法的な営利団体「Worldwide Hardware Goods」からのメッセージであると主張している。
【００５７】
ユーザは、電子メールサーバであるネットワークリソース100に自分のメールクライアント（Microsoft Outlookなど）を設定し、営利団体「Worldwide Hardware Goods」からのものであると主張する電子メールを受信する。工程210において、傍受モジュール110は、電子メールクライアントのプラグインモジュールであり、受信した電子メールからスクリプトを取り出す。取り出されたスクリプトは、電子メール自体に含まれるスクリプトだけでなく、受信した電子メールに含まれるリンクのインターネットページに含まれるスクリプトでもよく、取り出されたスクリプトはバイトコード形成モジュール120に送られる。
【００５８】
工程220において、バイトコード形成モジュール120は、傍受したスクリプトのバイトコードを形成する。このために、全てのスクリプトコマンドのシーケンスが、選択されたスクリプトから取り出される。特定の機能（画面への情報の表示、ハイパーリンクによるジャンプ、画像のロード等）を実行しない一部のスクリプトコマンドは、選択されたシーケンスから削除される。選択されたシーケンスに残っているスクリプトコマンドは、少なくとも1つの各スクリプトコマンドを含むコマンドのグループに結合される（例えば、画面への情報の表示を担うスクリプトコマンドのシーケンスと画像のロードは1つのグループに結合することができる）。各スクリプトコマンド又はスクリプトコマンドグループには一意の２バイト値が割り当てられる。得られた2バイト値のシーケンスは、計算されたバイトコードを構成する。
【００５９】
工程230において、ハッシュ計算モジュール130は、取得したバイトコードから（例えば、オープンソースアルゴリズムfuzzyHashを使用して）ファジーハッシュ値を計算する。ファジーハッシュ値は、ブロックのサイズ（バイトコードを分割するサイズ）とこれらブロックのハッシュ値を含むデータの集合である。その後、計算されたハッシュ値を検索モジュール140に送信する。
【００６０】
工程240において、検索モジュール140は、ハッシュ値ライブラリ180からハッシュ値グループを選択する。そのグループは、フィッシング・スクリプトにおける以前に計算されたハッシュ値、グループコンパクト係数、グループ信頼係数を含むデータの集合で構成される。
グループコンパクト係数は、計算されたハッシュ値と類似するハッシュ値のグループ内の数を示し、計算されたハッシュ値はグループ内の少なくとも1つのハッシュ値に類似しており、２つのハッシュ値間の類似性は、設定閾値に対する計算された類似度との対応関係によって決定される。
グループ信頼係数は、フィッシング目的とするデータを含むグループのハッシュ値を形成するために使用されるスクリプトの数（割合）を示す。
【００６１】
ハッシュ値ライブラリ180からの選択プロセスにおいて、ハッシュ値ライブラリ180にある各グループのハッシュ値と、工程230で得られるハッシュ値とのファジー比較（ファジー検索）を行う。２つのハッシュ値のファジー比較の結果は、0から1までの範囲の数値である。その数値は、ハッシュ値が互いにどれほど類似しているかを示し、２つのハッシュ値間の類似度を表す（例えば、互いに10％異なるスクリプトコマンドを含むスクリプトのバイトコードから計算されたファジーハッシュ値の類似性は0.9である）。比較されるグループにおける少なくとも1つのハッシュ値と、工程230で得られるものと類似度が、設定閾値（例えば、0.85）を超える場合、グループが見つけられたとみなされ、工程230で得られるハッシュ値が比較のグループに属すると考えられる。この後、選択されたグループと決定された類似度が、統計収集モジュール150へ送られる。工程250において、電子メールから取り出されるスクリプトに対するグループは、ある機能を含むスクリプトのハッシュ値を含むように選択される。
・グループ＃1 - ロゴタイプ（銀行のもの等）の表示に使用されるパラメータを持つ画像を表示する（類似度0.9）
・グループ＃2 - パスワード入力フォームから複数のアドレスへデータを送信する（類似性0.99）
選択されたグループからのデータは解析モジュール160に送られる。
【００６２】
工程260において、解析モジュール160は、評価テンプレートライブラリ190から評価テンプレートを選択する。評価テンプレートにある少なくとも1つのグループインデックスは、工程250で決定された少なくとも1つのグループインデックスに類似している。グループインデックスの類似性は、次のように決定される。
グループインデックスの各集合は、一対の{x、y}の集合で構成され、{x}はグループコンパクト係数であり、{y}はグループ信頼係数である。それは、多次元ベクトルVとして扱われ、ベクトルの要素は、{x、y}の対である。ベクトルを構成するこの２つのスカラー積が計算される。計算されたスカラー積は、設定閾値と比較され、それを超えない場合、上記のベクトルが得られるグループインデックスの集合は、類似しているとみなされる。
【００６３】
統計収集モジュール150から得られるグループインデックスに対して、次の評価テンプレートが選択される。
テンプレート＃1「登録偽装」：テンプレート信頼係数0.05、類似度0.97。
【００６４】
選択された評価テンプレートとグループインデックスの類似度は、評価通知モジュール170に送られる。
【００６５】
工程270において、評価通知モジュール170は、次のアクションを行う。
取得した一対の評価テンプレート信頼係数とグループインデックスの類似度について、その積を計算する。
テンプレート＃2「登録偽装」：0.05×0.97 = 0.0485
取得された値が設定閾値（0.1）を超えていないかを確認する。上記の条件が満たされているので、工程210で選択された電子メールに含まれるスクリプトはフィッシング・スクリプトであると判断される。評価を示した後、ユーザに通知する。
【００６６】
ユーザは、受信した電子メールがフィッシング・スクリプトメールであることの通知を受けているので、機密データを渡さないだろう。すなわち、フィッシングのハッキング技術から保護される。
【００６７】
図3は、グループコンパクト係数に応じて、グループ信頼係数をプロットした一例を示す。
【００６８】
図4は、離散フーリエ変換後のグループコンパクト係数に対してプロットされたグループ信頼係数の一例を示す。
【００６９】
図5は、グループコンパクト係数に応じて、グループ信頼係数の２つのプロットの類似性の一例を示す。
【００７０】
グループコンパクト係数に応じたグループ信頼係数のプロットは、図3に示すように、離散信号として表すことができる。２つのプロットのより正確な比較と類似度を決定するために、グループコンパクト係数に応じたグループ信頼係数のプロットの離散フーリエ変換を最初に実行することができ、その結果、図4に示すように、信号関数の振幅表現は頻度表現に変換される。したがって、頻繁に使用されるグループインデックスは、グラフのY軸に近づくように集められ、使用されたものが、グラフのY軸から離れて遠くに集まることはほとんどなく、削除することができる。関数の比較結果にはほとんど影響しないからである。
【００７１】
図5は、グループインデックスの集合501のグループインデックスの集合502との比較の例を示す。
グループインデックスの集合501は、統計収集モジュール150から取得されたグループコンパクト係数に応じたグループ信頼係数のプロットを表す。
グループインデックスの集合502は、評価テンプレートライブラリ190から取得されたグループコンパクト係数に応じたグループ信頼係数のプロットを表す。
【００７２】
比較は、以下のようにして行うことができる。グループインデックスの各集合は、一対の{x、y}の集合で構成され、{x}はグループコンパクト係数であり、{y}はグループ信頼係数である。多次元ベクトルVとして扱われ、ベクトルの要素は{x、y}対になる。２つの構成ベクトルのスカラー積が計算される。計算されたスカラー積は、設定閾値と比較され、設定閾値が計算されたスカラー積を超えない場合、上記のベクトルが得られるグループインデックスの集合は、類似しているとみなされる。
【００７３】
図6は、開示されたシステム及び方法を実装できる汎用コンピュータシステム（パーソナルコンピュータ又はサーバであってもよい）の一例を示す図である。コンピュータシステムは、中央処理装置21、システムメモリ22及び、システムバス23を含み、それは、様々なシステムコンポーネント（中央処理装置21に関連するメモリを含む）を接続される。システムバス23は、従来技術から知られている任意のバス構造のように実現され、順に、バスメモリ、又はバスメモリコントローラー、周辺バス及びローカルバスを含み、それは、任意の他のバスアーキテクチャと相互作用できる。システムメモリは、読み出し専用メモリ（ROM）24およびランダムアクセスメモリ（RAM）25を含む。基本入力/出力システム（BIOS）26は、ROM24を使用してオペレーティングシステムをロードする時にあるようなもの等の、パーソナルコンピュータ20の要素間の情報の転送を保証する、基本的な手順を含む。
【００７４】
パーソナルコンピュータ20は、順番に、データの読み書きするためのハードディスク27、読み書き可能なリムーバブル磁気ディスク29用の磁気ディスクドライブ28、及び、リムーバブル光学ディスク31（CD-ROM、DVD-ROMや他の光学情報媒体等）に読み書きするための光学ドライブ30を含む。
ハードディスク27、磁気ディスクドライブ28、及び光学ドライブ30は、それぞれハードディスクインターフェース32、磁気ディスクインターフェース33及び光学ドライブインターフェース34を介してシステムバス23に接続される。ドライブ及び対応するコンピュータ情報媒体は、パーソナルコンピュータ20のコンピュータ命令、データ構造、プログラムモジュール、及び他のデータを記憶するため、電力的に独立しているモジュールである。
【００７５】
本開示は、ハードディスク27、リムーバブル磁気ディスク29及びリムーバブル光学ディスク31を使用するシステムの実装を提供するが、他の種類のコンピュータ情報媒体56を採用することもできることが理解されるべきである。そのような情報媒体は、コンピュータによって読み取り可能な形式でデータ（ソリッドステートドライブ、フラッシュメモリカード、デジタルディスク、ランダムアクセスメモリ（RAM）等）を格納することができ、コントローラ55を介してシステムバス23に接続される。
【００７６】
コンピュータ20は、ファイルシステム36（記録されるシステム35はここに格納される）、さらに、追加プログラム・アプリケーション37、他のプログラムモジュール38及びプログラムデータ39を備える。
ユーザは、入力デバイス（キーボード40、マウス42）を用いて、パーソナルコンピュータ20にコマンドと情報を入力することが可能である。他の入力デバイス（図示せず）は、マイクロフォン、ジョイスティック、ゲームコントローラー、スキャナー、等を用いることができる。
そのような入力デバイスは、通常コンピュータシステム20に、シリアルポート46を介して、接続され、それは、順に、システムバスに接続されるが、それらは、他の方法で、例えば、パラレルポート、ゲームポート及びユニバーサルシリアルバス(USB)の助けを借りて、接続される。モニター47又は他の種類のディスプレイデバイスも、ビデオアダプター48等のインターフェースを介してシステムバス23に接続される。モニター47に加えて、パーソナルコンピュータは、ラウドスピーカー、プリンタ等他の周辺外部デバイス（図示せず）に備えてもよい。
【００７７】
パーソナルコンピュータ20は、1つ又は複数のリモートコンピュータ49とのネットワーク接続を用いて、ネットワーク環境で操作できる。リモートコンピュータ（またはコンピュータ）49も、図3に示すように、前述の要素（パーソナルコンピュータ20の特質を説明したもの）の大部分又は全てを有するパーソナルコンピュータ又はサーバである。他のデバイスも、ルータ、ネットワーク局、ピアデバイス又は他のネットワークノード等、コンピュータネットワークに存在してもよい。
【００７８】
ネットワーク接続は、有線及び/又は無線ネットワーク等のローカル・エリア・コンピュータ・ネットワーク（LAN）50、及びワイドエリア・コンピュータ・ネットワーク（WAN）を形成することができる。そのようなネットワークは、企業コンピュータネットワーク又は社内ネットワークで使用され、それらは、概してインターネットアクセスを有している。LAN又はWANネットワークで、パーソナルコンピュータ20は、ネットワークアダプター又はネットワークインターフェース51を介して、ローカル・エリア・ネットワーク50に接続される。ネットワークが用いられる場合、パーソナルコンピュータ20は、インターネット等のワイド・エリア・ネットワークでのコミュニケーションを提供するために、モデム54又は他のモジュールを採用する。モデム54は、内部的又は外部的デバイスであり、シリアルポート46によって、システムバス23と接続される。ネットワーク接続は、一例であり、ネットワークの正確な構成を示す必要はないことを留意されたい。すなわち、実際には、Bluetooth（登録商標）などの技術的な通信モジュールによる、あるコンピュータと他のコンピュータとの接続を確立する他の方法がある。
【００７９】
様々な態様において、本明細書で説明するシステム及び方法は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組み合わせで実現されてもよい。ソフトウェアで実装される場合、本方法は、非一時的なコンピュータ可読媒体の1つ又は複数の命令又はコードとして格納されてもよい。コンピュータ可読媒体は、データ記憶装置を含む。例として、限定するものではないが、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROM、フラッシュメモリ、又は、電気的、磁気的、又は他の種類の光学記憶媒体を備えてもよい。それは、命令又はデータ構造の形式で、所望のプログラムコードを搬送又は格納されてもよく、且つ、汎用コンピュータのプロセッサにアクセスできる。
【００８０】
様々な側面で、モジュールの観点から、システム及び方法は本開示に記載される。本明細書で使用される用語"モジュール"は、特定用途向け集積回路（ASIC）又はフィールド・プログラマブル・ゲート・アレイ（FPGA）（例えば、ハードウェアとソフトウェアの組み合わせ）などによって、ハードウェアを用いて実装される、実世界のデバイス、構成要素、又は構成要素の配置を意味している。例えば、マイクロプロセッサシステム及びジュールの機能を実装するための命令セットによって、それは、（実行時）マイクロプロセッサシステムを専用機に変換する。モジュールも、これらの組み合わせとして実装されてもよく、ハードウェア単体で容易である特定の機能で、及び、ハードウェアとソフトウェアの組み合わせによって容易である他の機能で実装されてもよい。ある実施態様で、モジュールの少なくとも一部、及び、場合によっては、全てが、汎用コンピュータ（上記、図3により詳細に説明したもの等）のプロセッサで実行することができる。したがって、各モジュールは、様々な適切である構成で実現することができ、本明細書において例示される任意の特定の実装に限定されるものではない。
【００８１】
明瞭にするために、本態様における繰り返される機能の全てが、本明細書に開示されるわけではない。本開示の任意で実際の実装における開発で、多数の実装固有の決定が、開発者の特定の目標を達成するために、成されなければならないことが理解されるであろう。これらの具体的な目標は、実装及び開発者ごとに変化するであろう。そのような開発努力は複雑で時間がかかるかもしれないことが、それにもかかわらず、本開示の利益を有する当業者にとっては、エンジニアにとっては日常の仕事であることが、理解されるであろう。
【００８２】
さらに、本明細書で使用される表現又は用語は、説明の目的のためであり、制限を目的としていないことを理解すべきである。本明細書の用語又は表現は、関連技術での熟練の知識と組み合わせて、本明細書に提示される教示及び指針に照らして当業者によって解釈されるべきである。さらに、明示的記載がない限り、本明細書又は特許請求の範囲における任意の用語に対して、一般的でない又は特別な意味を帰することは意図されていない。本明細書に開示される様々な態様は、例示により本明細書に言及される既知のモジュールに、現在及び将来の既知の均等物を包含する。さらに、態様および用途を図示し、且つ、説明してきたが、本明細書に開示された発明の概念から逸脱することなく、上述したよりも多くの改変が可能であることは、この開示の利益を有する当業者には明らかであろう。
【図１】
0006322240.tif 000002
【図２】
0006322240.tif 000003
【図３】
0006322240.tif 000004
【図４】
0006322240.tif 000005
【図５】
0006322240.tif 000006
【図６】
0006322240.tif 000007