(57)【特許請求の範囲】
【請求項１】
プロセッサに、少なくとも、
ウェブページが既知でないと判断された場合に、前記ウェブページと関連付けられた一時的ページプロファイルを生成することであって、前記一時的ページプロファイルは、形状コンポーネント、スタイルコンポーネント、リンクコンポーネント、およびウェブページに含まれる少なくとも１つの画像のハッシュを含む、生成することと、
前記一時的ページプロファイルを１または複数のベースラインページプロファイルと比較することと、
前記一時的ページプロファイルが、前記１または複数のベースラインページプロファイルと一致しないことに応答して、前記ウェブページが不正であることを示す、ユーザに表示する警告を生成することと
を実行させるためのプログラム。
【請求項２】
ファジーマッチングアルゴリズムを用いて、前記一時的ページプロファイルを前記１または複数のベースラインページプロファイルと比較することを前記プロセッサに実行させる、請求項１に記載のプログラム。
【請求項３】
前記ファジーマッチングアルゴリズムは、ＭｉｎＨａｓｈアルゴリズムである、請求項２に記載のプログラム。
【請求項４】
前記ユーザからの指示に基づいて、前記ウェブページを表示すること、前記ウェブページをホワイトリストに追加すること、または前記ウェブページをブラックリストに追加することのうち少なくとも１つを前記プロセッサに実行させる、請求項１に記載のプログラム。
【請求項５】
トリガイベントに応答して、一時的ページプロファイルを生成することとを前記プロセッサに実行させる、請求項１に記載のプログラム。
【請求項６】
前記一時的ページプロファイルをベースラインページプロファイルとして格納することを前記プロセッサに実行させる、請求項１から５の何れか一項に記載のプログラム。
【請求項７】
前記ウェブページが不正なものであることを示すレポートを脅威アナライザに送信することであって、前記レポートは、前記一時的ページプロファイルおよび前記ベースラインページプロファイルを含む、送信することを前記プロセッサに実行させる、請求項６に記載のプログラム。
【請求項８】
コンピュータ実行可能命令を含む少なくとも１つのメモリと、
少なくとも１つのプロセッサとを備え、
前記少なくとも１つのプロセッサは、
ウェブページが既知でないと判断された場合に、前記ウェブページと関連付けられた一時的ページプロファイルを生成することであって、前記一時的ページプロファイルは、前記ウェブページに含まれる少なくとも１つの画像のハッシュ、形状コンポーネント、スタイルコンポーネント、およびリンクコンポーネントを含む、生成することと、
前記一時的ページプロファイルを１または複数のベースラインページプロファイルと比較することと、
前記一時的ページプロファイルが、前記１または複数のベースラインページプロファイルと一致しないことに応答して、前記ウェブページが不正なものであることを示す、ユーザに表示する警告を生成することと
を実行する前記コンピュータ実行可能命令を実行する、システム。
【請求項９】
前記少なくとも１つのプロセッサは、ファジーマッチングアルゴリズムに基づいて、前記一時的ページプロファイルを前記１または複数のベースラインページプロファイルと比較する、請求項８に記載のシステム。
【請求項１０】
前記少なくとも１つのプロセッサは、前記ウェブページを表示すること、前記ウェブページをホワイトリストに追加すること、または前記ウェブページをブラックリストに追加することのうち少なくとも１つをさらに実行する、請求項８に記載のシステム。
【請求項１１】
前記少なくとも１つのプロセッサは、前記ウェブページが不正なものであることを示すレポートを送信し、前記レポートは、前記一時的ページプロファイルおよびベースラインページプロファイルを含む、請求項８から１０の何れか一項に記載のシステム。
【請求項１２】
命令を少なくとも１つのプロセッサで実行することによって、
ウェブページが既知でないと判断された場合に、前記ウェブページと関連付けられた一時的ページプロファイルを生成する段階であって、前記一時的ページプロファイルは、前記ウェブページに含まれる少なくとも１つの画像のハッシュ、形状コンポーネント、スタイルコンポーネント、およびリンクコンポーネントを含む、生成する段階と、
前記一時的ページプロファイルを１または複数のベースラインページプロファイルと比較する段階と、
前記一時的ページプロファイルが、前記１または複数のベースラインページプロファイルと一致しないことに応答して、少なくとも１つのプロセッサで命令を実行することによって、前記ウェブページが不正なものであることを示す、ユーザに表示する警告を生成する段階と
を備える方法。
【請求項１３】
前記一時的ページプロファイルを前記１または複数のベースラインページプロファイルと比較する前記段階は、ファジーマッチングアルゴリズムに基づく、請求項１２に記載の方法。
【請求項１４】
前記ファジーマッチングアルゴリズムは、ＭｉｎＨａｓｈアルゴリズムである、請求項１３に記載の方法。
【請求項１５】
前記ユーザからの指示に基づいて、前記ウェブページを表示すること、前記ウェブページをホワイトリストに追加すること、または前記ウェブページをブラックリストに追加することのうち少なくとも１つをさらに備える、請求項１２に記載の方法。
【請求項１６】
トリガイベントに応答して、前記一時的ページプロファイルを生成する段階をさらに備える、請求項１２に記載の方法。
【請求項１７】
前記一時的ページプロファイルをベースラインページプロファイルとして格納する段階をさらに備える、請求項１２に記載の方法。
【請求項１８】
前記ウェブページが不正なものであることを示すレポートを脅威アナライザに送信する段階であって、前記レポートは、前記一時的ページプロファイルおよび前記ベースラインページプロファイルを含む、送信する段階をさらに備える、請求項１７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願の相互参照］
本願は、２０１５年８月５日に出願された米国特許出願第１４／８１８，８７５号の利益を主張し、その開示は、全文が記載されているように参照により本明細書に引用される。
【０００２】
本開示は、概して、模倣検知を介する、ウェブサイトのフィッシングおよびブランド保護のためのシステムおよび方法に関する。
【背景技術】
【０００３】
マルウェアの保護がより効果的になるにつれて、フィッシングおよび模倣ウェブサイトの使用が増加しており、ソーシャルエンジニアリングを使用して、これらの正当性をユーザに確信させ、ユーザから認証情報を捕捉し、不正取引を生み出している。現行の解決策は、潜在的に有害なウェブサイトを識別するために、ファジードメイン名マッチング、証明書およびセキュリティチェック、ドメイン／ＩＰレピュテーション、ならびにユーザレポートリストに依存する。潜在的に有害なウェブサイトを識別するいくつかのメカニズムが、ウェブページを処理し得、ウェブページ上に表示される内容に基づいてウェブページを分類するコンテンツ分類エンジンを利用し得る。
【図面の簡単な説明】
【０００４】
添付図面を参照して、詳細な説明が記載されている。同一の参照番号の使用は、同様または同一のコンポーネントまたは要素を示すが、異なる参照番号が、同様または同一であり得るコンポーネントまたは要素を示すために同様に使用され得る。本開示の様々な実施形態は、図面で示されたもの以外の要素および／またはコンポーネントを利用してよく、いくつかの要素および／またはコンポーネントは、様々な実施形態において存在しなくてもよい。文脈に応じて、要素またはコンポーネントを説明するために使用される単数の用語は、複数のそのような要素またはコンポーネントを含んでよく、その逆もあり得る。
【０００５】
【図１】本開示の１または複数の実施形態に係る、フィッシングおよびブランド保護のためのシステムの例示的なシステムアーキテクチャの様々なコンポーネント間の例示的なデータフローを示す。
【０００６】
【図２】本開示の１または複数の実施形態に係る、図１に示されている例示的なシステムアーキテクチャの様々なハードウェアおよびソフトウェアコンポーネントを含むブロック図である。
【０００７】
【図３】本開示の１または複数の実施形態に係る、フィッシングおよびブランド保護のための、ウェブサイトのベースラインページプロファイルを生成する例示的な方法の処理フロー図である。
【０００８】
【図４】本開示の１または複数の実施形態に係る、フィッシングおよびブランド保護のためのシステムにおいて潜在的に有害なウェブサイトを識別する例示的な方法の処理フロー図である。
【発明を実施するための形態】
【０００９】
本開示は、とりわけ、ウェブサイトのフィッシングのような不正検知のシステムのためのシステム、方法、コンピュータ可読媒体、技術、および方法論に関する。例えば、銀行は、ユーザがオンラインバンキングのために頻繁に利用し得る正当なウェブサイトと関連付けられてよい。ウェブサイトは、ユーザが、彼らのアカウントにアクセスするために、認証クレデンシャル（例えば、ユーザ名およびパスワード）を提供することを必要としてよい。不正なウェブサイトは、銀行のウェブサイトをコピーして、ウェブサイトのルックアンドフィールを真似し得る。いくつかの実施形態において、認証クレデンシャルを受信するために指定されるサーバが異なり得ることを除いて、不正なウェブサイトは、正当なウェブサイトと全く同じであってよいことにより、認証クレデンシャルが捕捉され、許可されていないサーバに送信され得る。場合によっては、そのような不正なウェブサイトは、短期間（例えば、数時間、数日間）だけアクティブであり、従来技術を用いて検知することが困難である。本明細書に記載されているシステムおよび方法は、そのような不正なウェブサイトを検知し、ユーザが許可クレデンシャルのような機密情報を提供する前に、ユーザに警告することに関する。
【００１０】
いくつかの実施形態において、正当なウェブサイトは、固有のデジタルフィンガープリントをウェブサイトに関して生成するページプロファイラサーバによって、プロファイリングされてよい。固有のデジタルフィンガープリントは、ベースラインページプロファイルとして公知であってよい。ベースラインページプロファイルは、画像コンポーネント、形状コンポーネント、スタイルコンポーネント、および／またはリンクコンポーネントのような種々のコンポーネントを含んでよい。各コンポーネントは、処理されたウェブサイトから導出されてよい。例えば、画像コンポーネントは、ウェブサイトからロゴのような各画像を識別およびコピーし、画像にハッシュを適用し、ベースラインページプロファイルの画像コンポーネントとしてハッシュを格納することによって導出されてよい。ベースラインページプロファイルは、データストアに格納されてよく、または、不正検知処理で使用される１または複数のユーザデバイスに送信されてもよい。
【００１１】
いくつかの実施形態において、ユーザは、彼らのユーザデバイス上にページチェッカーコンポーネントを有してよい。ページチェッカーコンポーネントは、潜在的に不正なウェブサイトを検知するために使用され得る。ユーザは、ユーザデバイス上のブラウザとインターアクトし、ウェブページを要求する。ページチェッカーコンポーネントは、リストを読み出し、要求されたウェブページがリスト上にあるかを判断することによって、要求されたウェブページが不正を検知するべく、既に識別および処理されているかを判断してよい。ウェブページがリスト上にある場合、次に、ページチェッカーコンポーネントは、要求されたウェブページを読み出し、ウェブページをユーザに表示することをブラウザに許可してよい。しかしながら、要求されたウェブページがリスト上にない場合、ページチェッカーコンポーネントは、ウェブページをユーザに表示する前に不正を検知するためにウェブページを処理してよい。
【００１２】
ページチェッカーコンポーネントは、要求されたウェブページを読み出し、一時的ページプロファイルを生成してよい。一時的ページプロファイルは、ベースラインページプロファイルと同様の方式で生成され得、一時的ページプロファイルは、画像コンポーネント、形状コンポーネント、スタイルコンポーネント、および／またはリンクコンポーネントを含む。各コンポーネントは、要求されたウェブサイトを処理することによって導出されてよい。ページチェッカーコンポーネントは、次に、１または複数のベースラインページプロファイルを読み出してよく、要求されたウェブページの一時的ページプロファイルを１または複数のベースラインページプロファイルと比較してよい。いくつかの実施形態において、プロファイルは、ファジーマッチアルゴリズムを用いて比較されてよい。
【００１３】
ページチェッカーコンポーネントが、一時的ページプロファイルがベースラインページプロファイルと一致すると判断した場合、ページチェッカーコンポーネントは、要求されたウェブページに不正が検知されなかったと示してよく、ページチェッカーコンポーネントは、要求されたウェブページをユーザに表示することをブラウザに許可してよい。
【００１４】
ページチェッカーコンポーネントが、一時的ページプロファイルがベースラインページプロファイルと一致しないと判断する場合、ページチェッカーコンポーネントは、ウェブページが不正なものである可能性が高いと示してよい。ページチェッカーコンポーネントは、ユーザへの警告を生成し、表示してよい。警告は、いくつかの選択肢を含んでよい。選択肢は、ウェブページに進むこと、ウェブページをホワイトリストに追加すること、または、ウェブページをブラックリストに追加することを含んでよい。ホワイトリストは、ページチェッカーコンポーネントが不正の可能性が高いと判断したもので、不正検知にかかわらず、見ること、およびアクセスすることをユーザが要求しているウェブページのリストである。ブラックリストは、ページチェッカーコンポーネントが不正の可能性が高いと判断したもので、ユーザデバイスに表示されることからブロックされることをユーザが要求しているウェブページのリストである。
【００１５】
ページチェッカーコンポーネントは、次に、一時的ページプロファイルと関連付けられたドメインまたはＵＲＬを、不正検知のために識別および処理されているウェブサイトのリストに追加してよい。
【００１６】
いくつかの実施形態において、ページプロファイラサーバは、プロファイルのために１または複数のウェブページを受信してよい。ウェブページは、ユーザが遭遇するウェブページの処理に際して、ウェブサイトクローラ、または他のそのようなメカニズムを通じて、人気度によって受信または識別されてよい。ページプロファイラは、ページが既に識別およびプロファイリングされているかを判断してよい。ページが既にプロファイリングされていない場合、ページプロファイラサーバは、ウェブページを処理して、種々のコンポーネントを備えるベースラインページプロファイルを生成してよい。ベースラインページプロファイルを生成するべく、ページプロファイラは、画像（例えば、ロゴ）を識別し、ウェブページから画像を取得し、画像をハッシュしてよい。ページプロファイラサーバは、次に、ウェブページの形状を導出してよい。例えば、ページプロファイラサーバは、ウェブページを処理して、ウェブページのレイアウトを判断してよい。ページプロファイラサーバは、次に、ウェブページで使用される色およびフォント情報を取得してよい。ページプロファイラサーバは、ウェブページからリンク情報を取得してよい。いくつかの実施形態において、ページプロファイラサーバは、ウェブページの固有のプロファイルを生成するために使用され得る追加のメトリクスを取得してよい。ページプロファイラサーバは、取得した情報を使用して、ベースラインページプロファイルを生成し、格納してよい。ページプロファイラサーバは、ベースラインページプロファイルを格納のために１または複数のデータストアに送信してよい。
【００１７】
ページチェッカーコンポーネントは、例えば、モバイルデバイスのウェブブラウザと共に、モバイルデバイス上に格納されてよい。ユーザは、ブラウザを利用して、ウェブページにナビゲートされてよい。ページチェッカーコンポーネントは、ウェブページが、例えば、不正なまたは悪意のある、有害なものかを判断するために使用されてよい。例えば、ページチェッカーコンポーネントは、ウェブページが、既に識別および処理されているかを判断してよい。ページが、以前に、不正検知のために識別および処理されている場合、次に、ページチェッカーコンポーネントは、メッセージをユーザに表示してよい。ページが、以前に、識別または処理されていなかった場合、ページチェッカーコンポーネントは、ウェブページの一時的ページプロファイルを生成してよい。ページチェッカーコンポーネントは、次に、例えばデータストアから、以前に生成されたベースラインページプロファイルを読み出してよく、一時的ページプロファイルを以前に生成されたベースラインページプロファイルと比較して、一致があるかを判断してよい。一致がなかった場合、次に、ページチェッカーコンポーネントは、ブラウザが変更なく、ウェブページを継続して表示することを可能にし得る。ページチェッカーコンポーネントが、一致があると判断した場合、適切なメッセージがユーザに表示され得、結果がデータストアに格納されてよい。
【００１８】
様々な例示的な実施形態が上述されてきた。本開示のこれらおよび他の例示的な実施形態が、添付図面を参照して、以下により詳細に記載される。図面および対応する説明は、単に例示のために提供されており、決して、本開示を限定することを意図していない。多数の他の実施形態、変形例などが、本開示の範囲内であることが理解されるべきである。
【００１９】
［例示的な使用例およびシステムアーキテクチャ］
図１は、本開示の１または複数の実施形態に係る、フィッシングおよびブランド保護のためのシステムの例示的なシステムアーキテクチャの様々なコンポーネント間の例示的なデータフローを示す。
【００２０】
ユーザデバイス１０４は、タブレットコンピューティングデバイス、電子書籍（ｅブック）リーダ、ネットブックコンピュータ、ノートブックコンピュータ、ラップトップコンピュータ、Ｕｌｔｒａｂｏｏｋ（商標）コンピュータ、パーソナルデジタルアシスタント（ＰＤＡ）、スマートフォン、ウェブ対応テレビ、ビデオゲームコンソール、セットトップボックス（ＳＴＢ）、デジタルビデオレコーダ（ＤＶＲ）システム、これらの組合せ、または同様のものを含むが、これらに限定されない、ＷｉＦｉおよび非ＷｉＦｉアクセスが可能な任意の好適なプロセッサ駆動型コンピューティングデバイスを含んでよい。説明を簡単にするために、ユーザデバイス１０４は、単数で本明細書に記載され得るが、複数のユーザデバイス１０４が、提供されてもよいことが理解されるべきである。
【００２１】
ページプロファイラサーバ１０６は、デスクトップコンピューティングデバイス、ラップトップコンピューティングデバイス、サーバ、スマートフォン、タブレットなどを含むが、これらに限定されない、任意の好適なプロセッサ駆動型コンピューティングデバイスを含んでよい。説明を簡単にするために、ページプロファイラサーバ１０６は、単数で本明細書に記載され得るが、複数のページプロファイラサーバ１０６が提供されてもよいことが理解されるべきである。
【００２２】
データストア１０８は、ネットワークを介して１または複数のデバイスから受信され、ネットワークを介して１または複数のデバイスによってアクセスされ得る情報を格納することが可能な任意の好適なデータストアを含んでよい。説明を簡単にするために、データストア１０８は、単数で本明細書に記載され得るが、複数のデータストア１０８が提供されてもよいことが理解されるべきである。
【００２３】
いくつかの実施形態において、ユーザは、ユーザデバイス１０４とインターアクトしてよい。ユーザは、ブラウザを開始し、ウェブページを要求してよい。ページチェッキングエンジンのようなページチェッカーコンポーネントが、ユーザデバイス１０４上に存在してよく、トリガイベントが生じるときに開始されてよい。いくつかの実施形態において、トリガイベントは、ウェブページが、以前に、不正検知のために識別および処理されていないことを判断してよい。トリガイベントは、ウェブサイトまたはＵＲＬを、以前に識別および処理されている既知のウェブページのリストと比較することを含んでよい。既知のウェブページのリストは、ページチェッカーコンポーネントによってローカルに維持されてよく、またはリモートサーバ上に格納され、必要なときに読み出されてよい。ページチェッカーコンポーネントは、要求されたページを処理し、一時的ページプロファイルを生成してよい。ページチェッカーコンポーネントは、次に、１または複数の以前に生成されたベースラインページプロファイルをデータストア１０８から読み出し、その後、一時的ページプロファイルを１または複数のベースラインページプロファイルと比較してよい。以前に生成されたベースラインページプロファイルは、ページプロファイラサーバ１０６によって生成されていてもよく、格納のためにデータストア１０８に送信されてもよい。ページチェッカーコンポーネントは、比較に基づいて、ウェブページが、不正なものである、有害なものである、または悪意のあるものであるかを判断してよく、警告１１０をユーザに生成し、表示してよい。
【００２４】
図２は、本開示の１または複数の実施形態に係る、図１に示されている例示的なシステムアーキテクチャの様々なハードウェアおよびソフトウェアコンポーネントを含むブロック図である。例示的なアーキテクチャ２００は、複数のユーザデバイス１０４、１または複数のページプロファイラサーバ１０６、および／または１または複数のデータストア１０８を含んでよい。ユーザデバイス１０４、ページプロファイラサーバ１０６、および／またはデータストア１０８は、図１の参照を通じて説明される任意の種類のデバイスを含んでよい。
【００２５】
ユーザデバイス１０４、１または複数のページプロファイラサーバ１０６、および／または１または複数のデータストア１０８の何れかは、１または複数のネットワーク２３０を介して、互いに通信し、アーキテクチャ２００の任意の他のコンポーネントと通信するように構成されてよい。ネットワーク２３０は、例えば、ケーブルネットワーク、パブリックネットワーク（例えば、インターネット）、プライベートネットワーク、無線ネットワーク、セルラネットワーク、または任意の他の好適なプライベートおよび／もしくはパブリックネットワークのような、好適な通信ネットワークの何れか１つ、または異なる種類の好適な通信ネットワークの組合せを含むが、これらに限定されない。さらに、ネットワーク２３０は、関連付けられる任意の好適な通信距離を有してよく、例えば、グローバルネットワーク（例えば、インターネット）、メトロポリタンエリアネットワーク（ＭＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、無線パーソナルエリアネットワーク（ＷＰＡＮ）、またはパーソナルエリアネットワーク（ＰＡＮ）を含んでよい。加えて、ネットワーク２３０は、同軸ケーブル、ツイストペアワイヤ、光ファイバ、混成光ファイバ・同軸ケーブル（ＨＦＣ）媒体、地上マイクロ波トランシーバ、無線周波数通信媒体、衛星通信媒体、またはこれらの任意の組合せを含むが、これらに限定されない、ネットワークトラフィックが搬送され得る任意の種類の媒体を含んでよい。
【００２６】
ユーザデバイス１０４は、１または複数のプロセッサ２３２、および１または複数のメモリ２３６（本明細書で総称的にメモリ２３６と呼ばれる）を含んでよい。プロセッサ２３２は、デジタルデータを入力として受け取り、入力データを格納されたコンピュータ実行可能命令に基づいて処理し、出力データを生成することが可能な任意の好適な処理ユニットを含んでよい。コンピュータ実行可能命令は、例えば、データストレージ２３４に格納され得、とりわけ、オペレーティングシステムソフトウェア、およびアプリケーションソフトウェアを含んでよい。コンピュータ実行可能命令は、データストレージ２３４から読み出されてよく、実行のために、必要に応じてメモリ２３６へと読み込まれてもよい。プロセッサ２３２は、コンピュータ実行可能命令を実行して、様々な動作を行わせるように構成されてよい。プロセッサ２３２は、中央演算処理装置、マイクロプロセッサ、マイクロコントローラ、縮小命令セットコンピュータ（ＲＩＳＣ）マイクロプロセッサ、複合命令セットコンピュータ（ＣＩＳＣ）マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、システムオンチップ（ＳｏＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）などを含むが、これらに限定されない、任意の種類の処理ユニットを含んでよい。
【００２７】
データストレージ２３４は、プロセッサ２３２によって読み込み可能で実行可能なプログラム命令、ならびに、プログラム命令の実行中に、プロセッサ２３２によって操作され、生成されるデータを格納してよい。プログラム命令は、実行のために、必要に応じてメモリ２３６へと読み込まれてもよい。ユーザデバイス１０４の構成および実装に応じて、メモリ２３６は、ランダムアクセスメモリ（ＲＡＭ）のような揮発性メモリ（電源が供給されないとき、格納された情報を保持するように構成されないメモリ）、および／または、リードオンリメモリ（ＲＯＭ）、フラッシュメモリなどのような不揮発性メモリ（電源が供給されないときであっても、格納された情報を保持するように構成されるメモリ）であり得る。様々な実装において、メモリ２３６は、様々な形式のスタティックランダムアクセスメモリ（ＳＲＡＭ）、様々な形式のダイナミックランダムアクセスメモリ（ＤＲＡＭ）、改変不能ＲＯＭ、および／または、電気的消去可能プログラマブルリードオンリメモリ（ＥＥＰＲＯＭ）、フラッシュメモリなどのようなＲＯＭの書き込み可能な変形例のような複数の異なる種類のメモリを含んでよい。
【００２８】
ユーザデバイス１０４は、磁気ストレージ、光ディスクストレージおよび／またはテープストレージを含むが、これらに限定されない、リムーバブルストレージおよび／または非リムーバブルストレージのような追加のデータストレージ２３４をさらに含んでよい。データストレージ２３４は、コンピュータ実行可能命令および他のデータの不揮発性ストレージを提供してよい。メモリ２３６、および／または、リムーバブルおよび／または非リムーバブルのデータストレージ２３４は、コンピュータ可読ストレージ媒体（ＣＲＳＭ）の例である。
【００２９】
ユーザデバイス１０４は、ユーザデバイス１０４と、例示的なシステムアーキテクチャ２００の他のデバイスまたはアプリケーションソフトウェアとの間のネットワーク２３０を介する通信を容易にするネットワークインタフェース２４０をさらに含んでよい。ユーザデバイス１０４は、ユーザと、キーボード、マウス、ペン、ポインティングデバイス、音声入力デバイス、タッチ入力デバイス、ディスプレイ、スピーカ、カメラ、マイク、プリンタなどのような様々なＩ／Ｏデバイスとの間のインターアクションをサポートし得る、１または複数の入力／出力（Ｉ／Ｏ）インタフェース２３８（および、任意で、デバイスドライバのような関連するソフトウェアコンポーネント）を付加的に含んでよい。
【００３０】
データストレージ２３４を再度参照して、プロセッサ２３２によって実行されるとき、様々な動作を行わせるコンピュータ実行可能命令を含み得る様々なプログラムモジュール、アプリケーション、または同様のものが、データストレージ２３４に格納されてよい。メモリ２３６は、ユーザデバイス１０４上で実行される他のアプリケーションソフトウェア（例えば、専用アプリケーション、ブラウザアプリケーション、ウェブベースアプリケーション、分散型クライアントサーバアプリケーションなど）と、ユーザデバイス１０４のハードウェアリソースとの間のインタフェースを提供し得る１または複数のオペレーティングシステム（Ｏ／Ｓ）２４２をデータストレージ２３４から読み込んでいてもよい。より具体的には、Ｏ／Ｓ２４２は、ユーザデバイス１０４のハードウェアリソースを管理し、他のアプリケーションプログラムに共通のサービスを提供する（例えば、様々なアプリケーションプログラムの間でメモリ割当てを管理する）ためのコンピュータ実行可能命令のセットを含んでよい。Ｏ／Ｓ２４２は、任意のモバイルオペレーティングシステム、デスクトップもしくはラップトップのオペレーティングシステム、メインフレームオペレーティングシステム、または任意の他の独占もしくはオープンソースのオペレーティングシステムを含むが、これらに限定されない、現在公知であるまたは将来的に開発され得る任意のオペレーティングシステムを含んでよい。
【００３１】
データストレージ２３４は、１または複数のデータストア１０８に格納されるデータをアクセスする、読み出す、格納する、および／または操作するための１または複数のデータベース管理システム（ＤＢＭＳ）２４４をさらに含んでよい。ＤＢＭＳ２４４は、様々なデータベースモデル（例えば、リレーショナルモデル、オブジェクトモデルなど）のうちの何れかを使用してよく、様々な問合せ言語のうちの何れかをサポートし得る。データストレージ２３４は、様々な関連する機能をサポートするコンピュータ実行可能命令を含み得る様々な他のプログラムモジュールを付加的に含んでよい。例えば、データストレージ２３４は、１または複数のブラウザ２４６、および／または１または複数のページチェッキングエンジン２４８を含んでよい。
【００３２】
ブラウザ２４６は、プロセッサ２３２によって実行されることに応答して、１または複数のウェブサーバと通信して、ウェブページを取得し、それをユーザデバイス１０４上でユーザに表示することを含む動作を行わせるコンピュータ実行可能命令を含んでよい。
【００３３】
ページチェッキングエンジン２４８は、プロセッサ２３２によって実行されることに応答して、ウェブページが不正なものである、有害なものである、または悪意のあるものであると判断された場合、ユーザへの警告を表示し、一時的ページプロファイルをページプロファイルとして、不正のある、有害なまたは悪意のあるウェブページを識別する際の将来的な検討のために格納することを任意で容易にする一時的ページプロファイルを生成するべく、ウェブページを処理することによって、ブラウザ２４６によって要求されるウェブページが不正なものである、有害なものである、または悪意のあるものであるかを判断することを含む動作を行わせる、コンピュータ実行可能命令を含んでよい。いくつかの実施形態において、ページチェッキングエンジン２４８は、トリガイベントが生じたと識別または判断してよい。トリガイベントは、識別されたウェブページの一時的ページプロファイルの生成を開始するイベントであってよい。トリガイベントの一例は、ウェブページが不正なものである、有害なものである、または悪意のあるものであるかを判断するために、以前に処理されていないウェブページをユーザが要求すること含んでよい。
【００３４】
ページチェッキングエンジン２４８は、要求されたウェブページを読み出し得、ウェブページが、以前に識別および処理されていない場合、次に、ページチェッキングエンジン２４８は、ウェブページの一時的ページプロファイルを生成してよい。いくつかの実施形態において、一時的ページプロファイルは、ウェブページと関連付けられた固有の識別子として機能し得る。一時的ページプロファイルは、画像コンポーネント、形状コンポーネント、スタイルコンポーネント、およびリンクコンポーネントのような種々のコンポーネントを含んでよい。ページチェッキングエンジン２４８は、ページプロファイラモジュール２６６によって生成される１または複数のベースラインページプロファイル２７２を読み出して、ユーザによって要求されるウェブページが、ページプロファイラサーバ１０６によって生成される既知のベースラインページプロファイル２７２と同一かどうかを判断してよい。ウェブページが、既知のベースラインページプロファイル２７２と同一である場合、要求されたページは不正なものである、有害なものである、または悪意のあるものである可能性が低い。
【００３５】
一時的ページプロファイルの画像コンポーネントを生成するべく、ページチェッキングエンジン２４８は、ウェブページから１または複数の画像を識別および取得してよい。ページチェッキングエンジン２４８は、画像をハッシュし、画像のハッシュを一時的ページプロファイルの画像コンポーネントとして格納してよい。
【００３６】
一時的ページプロファイルの形状コンポーネントを生成するべく、ページチェッキングエンジン２４８は、ウェブページの形状を導出してよい。いくつかの実施形態において、ページチェッキングエンジン２４８は、ページソースから余分な項目を除去し、最小限のレイアウト情報を保持することによって、ウェブページの形状を導出してよい。例えば、ウェブページの基本レイアウトを判断するために、ページチェッキングエンジン２４８は、広告およびコンテンツを除去してよく、画像および入力ボックスの位置を注記してよい。ウェブページの形状の一例は、「画像１−左上、画像２−中央下、中央に位置合わせされ鉛直に離間された２つの入力ボックス」であってよい。
【００３７】
一時的ページプロファイルのスタイルコンポーネントを生成するべく、ページチェッキングエンジン２４８は、ウェブページから色およびフォント情報を取得してよい。例えば、ページチェッキングエンジン２４８は、ウェブページと関連付けられた階層式スタイルシート（ＣＳＳ）を用いて、背景色、パレット、フォント、および他の情報のような情報を捕捉してよい。
【００３８】
一時的ページプロファイルのリンクコンポーネントを生成するべく、ページチェッキングエンジン２４８は、ウェブページからリンク情報を取得してよい。いくつかの実施形態において、ページチェッキングエンジン２４８は、ウェブページのページソースの１または複数のリンクを識別してよく、ウェブページ上のオフドメインリンクのリストを生成してよい。
【００３９】
いくつかの実施形態において、ページチェッキングエンジンは、ウェブページのコンテンツを解析してよい。例えば、ページチェッキングエンジン２４８は、ウェブサイトが捕捉するデータの種類を捕捉してよい。例えば、ウェブページは、ユーザの社会保障番号、クレジットカード番号、アドレスおよび他の個人識別情報についての要求および関連する入力フィールドを含んでよい。ページチェッキングエンジン２４８は、また、ウェブページ上に表示されるコンテンツを用いて、ウェブページを分類してよい。
【００４０】
いくつかの実施形態において、ページチェッキングエンジン２４８は、プラグインアプリケーションのように、ブラウザ２４６と一体化されてよい。いくつかの実施形態において、ページチェッキングエンジン２４８は、ユーザデバイス１０４上のデータストア２３４に別個のアプリケーションとして格納され、トリガされたときに開始されてよい。
【００４１】
ページプロファイラサーバ１０６は、１または複数のプロセッサ２５２、および１または複数のメモリ２５６（本明細書で総称的にメモリ２５６と呼ばれる）を含んでよい。プロセッサ２５２は、デジタルデータを入力として受け取り、入力データを格納されたコンピュータ実行可能命令に基づいて処理し、出力データを生成することが可能な任意の好適な処理ユニットを含んでよい。コンピュータ実行可能命令は、例えば、データストレージ２５４に格納され得、とりわけ、オペレーティングシステムソフトウェア、およびアプリケーションソフトウェアを含んでよい。コンピュータ実行可能命令は、データストレージ２５４から読み出されてよく、実行のために、必要に応じてメモリ２５６へと読み込まれてもよい。プロセッサ２５２は、コンピュータ実行可能命令を実行して、様々な動作を行わせるように構成されてよい。プロセッサ２５２は、中央演算処理装置、マイクロプロセッサ、マイクロコントローラ、縮小命令セットコンピュータ（ＲＩＳＣ）マイクロプロセッサ、複合命令セットコンピュータ（ＣＩＳＣ）マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、システムオンチップ（ＳｏＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）などを含むが、これらに限定されない、任意の種類の処理ユニットを含んでよい。
【００４２】
データストレージ２５４は、プロセッサ２５２によって読み込み可能で実行可能なプログラム命令、ならびに、プログラム命令の実行中に、プロセッサ２５２によって操作され、生成されるデータを格納してよい。プログラム命令は、実行のために、必要に応じてメモリ２５６へと読み込まれてもよい。ブローカサーバ１０６の構成および実装に応じて、メモリ２５６は、ランダムアクセスメモリ（ＲＡＭ）のような揮発性メモリ（電源が供給されないとき、格納された情報を保持するように構成されないメモリ）、および／または、リードオンリメモリ（ＲＯＭ）、フラッシュメモリなどのような不揮発性メモリ（電源が供給されないときであっても、格納された情報を保持するように構成されるメモリ）であり得る。様々な実装において、メモリ２５６は、様々な形式のスタティックランダムアクセスメモリ（ＳＲＡＭ）、様々な形式のダイナミックランダムアクセスメモリ（ＤＲＡＭ）、改変不能ＲＯＭ、および／または、電気的消去可能プログラマブルリードオンリメモリ（ＥＥＰＲＯＭ）、フラッシュメモリなどのような、ＲＯＭの書き込み可能な変形例のような複数の異なる種類のメモリを含んでよい。
【００４３】
ページプロファイラサーバ１０６は、磁気ストレージ、光ディスクストレージおよび／またはテープストレージを含むが、これらに限定されない、リムーバブルストレージおよび／または非リムーバブルストレージのような追加のデータストレージ２５４をさらに含んでよい。データストレージ２５４は、コンピュータ実行可能命令および他のデータの不揮発性ストレージを提供してよい。メモリ２５６、および／または、リムーバブルおよび／または非リムーバブルのデータストレージ２５４は、コンピュータ可読ストレージ媒体（ＣＲＳＭ）の例である。
【００４４】
ページプロファイラサーバ１０６は、ページプロファイラサーバ１０６と、例示的なシステムアーキテクチャ２００の他のデバイス（例えば、ユーザデバイス１０４など）またはアプリケーションソフトウェアとの間のネットワーク２３０を介する通信を容易にするネットワークインタフェース２６０をさらに含んでよい。ページプロファイラサーバ１０６は、ユーザと、キーボード、マウス、ペン、ポインティングデバイス、音声入力デバイス、タッチ入力デバイス、ディスプレイ、スピーカ、カメラ、マイク、プリンタなどのような様々なＩ／Ｏデバイスとの間のインターアクションをサポートしてよい、１または複数の入力／出力（Ｉ／Ｏ）インタフェース２５８（および任意で、デバイスドライバのような関連するソフトウェアコンポーネント）を付加的に含んでよい。
【００４５】
データストレージ２５４を再度参照して、プロセッサ２５２によって実行されるとき、様々な動作を行わせるコンピュータ実行可能命令を含み得る様々なプログラムモジュール、アプリケーション、または同様のものが、データストレージ２５４に格納されてよい。メモリ２５６は、ページプロファイラサーバ１０６上で実行される他のアプリケーションソフトウェア（例えば、専用アプリケーション、ブラウザアプリケーション、ウェブベースアプリケーション、分散型クライアントサーバアプリケーションなど）と、ページプロファイラサーバ１０６のハードウェアリソースとの間のインタフェースを提供し得る１または複数のオペレーティングシステム（Ｏ／Ｓ）２６２をデータストレージ２５４から読み込んでいてもよい。より具体的には、Ｏ／Ｓ２６２は、ページプロファイラサーバ１０６のハードウェアリソースを管理し、他のアプリケーションプログラムに共通のサービスを提供する（例えば、様々なアプリケーションプログラムの間でメモリ割当てを管理する）ためのコンピュータ実行可能命令のセットを含んでよい。Ｏ／Ｓ２６２は、任意のモバイルオペレーティングシステム、デスクトップもしくはラップトップのオペレーティングシステム、メインフレームオペレーティングシステム、または任意の他の独占もしくはオープンソースのオペレーティングシステムを含むが、これらに限定されない、現在公知であるまたは将来的に開発され得る任意のオペレーティングシステムを含んでよい。
【００４６】
データストレージ２５４は、１または複数のデータストアに格納されるデータをアクセスする、読み出す、格納する、および／または操作するための１または複数のデータベース管理システム（ＤＢＭＳ）２６４をさらに含んでよい。ＤＢＭＳ２６４は、様々なデータベースモデル（例えば、リレーショナルモデル、オブジェクトモデルなど）のうちの何れかを使用してよく、様々な問合せ言語のうちの何れかをサポートしてよい。
【００４７】
データストレージ２５４は、様々な関連する機能をサポートするコンピュータ実行可能命令を含み得る様々な他のプログラムモジュールを付加的に含んでよい。例えば、データストレージ２５４は、１または複数のページプロファイラモジュール２６６を含んでよい。
【００４８】
ページプロファイラモジュール２６６は、プロセッサ２５２によって実行されることに応答して、識別されたウェブページに関してベースラインページプロファイル２７２を生成することを含む動作を行わせる、コンピュータ実行可能命令を含んでよい。ベースラインページプロファイル２７２は、ページチェッキングエンジン２４８を使用して、ウェブページが不正なものである、有害なものである、または悪意のあるものであるかを判断してよい。
【００４９】
ページプロファイラモジュール２６６は、画像コンポーネント、形状コンポーネント、スタイルコンポーネント、およびリンクコンポーネントのような種々のコンポーネントを含む、ベースラインページプロファイル２７２を生成してよい。ベースラインページプロファイルの画像コンポーネントを生成するべく、ページプロファイラモジュール２６６は、ウェブページから１または複数の画像を識別および取得してよい。ページプロファイラモジュール２６６は、画像をハッシュし、画像のハッシュを一時的ページプロファイルの画像コンポーネントとして格納してよい。
【００５０】
ベースラインページプロファイルの形状コンポーネントを生成するべく、ページプロファイラモジュール２６６は、ウェブページの形状を導出してよい。いくつかの実施形態において、ページプロファイラモジュール２６６は、ページソースから余分な項目を除去し、最小限のレイアウト情報を保持することによって、ウェブページの形状を導出してよい。ウェブページの形状の一例は、「画像１−左上、画像２−中央下、中央に位置合わせされ鉛直に離間された２つの入力ボックス」であってよい。
【００５１】
ベースラインページプロファイル２７２のスタイルコンポーネントを生成するべく、ページプロファイラモジュール２６６は、ウェブページから色およびフォント情報を取得してよい。例えば、ページプロファイラモジュール２６６は、ウェブページと関連付けられた階層式スタイルシート（ＣＳＳ）を用いて、背景色、パレット、フォント、および他の情報のような情報を捕捉してよい。
【００５２】
ベースラインページプロファイル２７２のリンクコンポーネントを生成するために、ページプロファイラモジュール２６６は、ウェブページからリンク情報を取得してよい。いくつかの実施形態において、ページプロファイラモジュール２６６は、ウェブページのページソースにおける１または複数のリンクを識別してよく、ウェブページ上のオフドメインリンクのリストを生成してよい。
【００５３】
いくつかの実施形態において、ページプロファイラモジュール２６６は、ウェブページのコンテンツを解析してよい。例えば、ページプロファイラモジュール２６６は、ウェブサイトが捕捉するデータの種類を捕捉してよい。例えば、ウェブページは、ユーザの社会保障番号、クレジットカード番号、アドレスおよび他の個人識別情報についての要求を含んでよく、それらついての関連する入力フィールドを提供してよい。ページプロファイラモジュール２６６は、また、ウェブページ上に表示されるコンテンツを用いて、ウェブページを分類してよい。
【００５４】
ページプロファイラモジュール２６６は、生成されたベースラインページプロファイル２７２をユーザデバイス１０４、および／またはユーザデバイス１０４によってアクセスされ得るデータストアに送信してよい。
【００５５】
いくつかの実施形態において、アーキテクチャ２００は、１または複数のデータストア１０８を含んでよい。１または複数のデータストアは、１または複数のユーザデバイス１０４、および／または１または複数のページプロファイラサーバ１０６からデータを受信してよい。いくつかの実施形態において、生成されたページプロファイル２７２は、格納のためにデータストア１０８に送信されてよく、ページチェッキングエンジン２４８によって、ページが有害なものまたは悪意のあるものであると判断されるときに読み出されてよい。データストア１０８は、また、生成されたプロファイル、およびユーザのインターアクションに基づいて、ウェブページのホワイトリスト２７４、および／またはブラックリスト２７６を格納してよい。ホワイトリスト２７４は、生成されたベースラインページプロファイル２７２に基づいて、有害なものまたは悪意のあるものであると分かったが、ウェブページにアクセスすることを望んでいるとユーザが示したウェブページを示すリストであってよい。ブラックリスト２７６は、生成されたベースラインページプロファイル２７２に基づいて、有害なものまたは悪意のあるものであると分かり、ブロックされるべきとユーザが示したウェブページを示すリストであってよい。
【００５６】
当業者であれば、本開示の範囲から逸脱することなく、アーキテクチャ２００のコンポーネントの何れかが、記載されている、または示されているもの以外の代替的および／もしくは追加のハードウェア、ソフトウェア、またはファームウェアコンポーネントを含んでよいことを理解するであろう。より具体的には、様々な実施形態において、アーキテクチャ２００の例示的なコンポーネントの何れかの一部を形成すると示され、または記載されている、ソフトウェア、ファームウェア、またはハードウェアコンポーネント、およびそのようなコンポーネントがサポートする関連する機能は、単なる例示であり、いくつかのコンポーネントは存在しなくてもよい、または追加のコンポーネントが提供されてもよいことが理解されるべきである。アーキテクチャ２００の様々な例示的なコンポーネントに関して、様々なプログラムモジュールが示され、記載されている一方で、プログラムモジュールによってサポートされていると記載されている機能は、ハードウェア、ソフトウェア、および／またはファームウェアの任意の組合せによって可能になり得ることが理解されるべきである。上述されたモジュールの各々は、様々な実施形態において、サポートされた機能のロジカルパーティショニングを表してよいことがさらに理解されるべきである。このロジカルパーティショニングは、機能の説明を容易にするために示され、機能を実装するソフトウェア、ファームウェア、および／またはハードウェアの構造を表さなくてもよい。従って、特定のモジュールによって提供されると記載されている機能は、様々な実施形態において、１または複数の他のモジュールによって、少なくとも部分的に提供されてよいことが理解されるべきである。さらに、１または複数の示されているモジュールは、特定の実施形態において存在しなくてもよく、一方で、他の実施形態において、示されていない追加のモジュールが存在してもよく、説明されている機能の少なくとも一部、および／または追加の機能をサポートしてよい。さらに、特定のモジュールが、別のモジュールのサブモジュールとして示され、記載され得る一方で、特定の実施形態において、そのようなモジュールは、独立したモジュールとして提供されてよい。
【００５７】
当業者ならば、例示的なネットワークアーキテクチャ２００が、単なる例として提供されていることを理解するであろう。多数の他の動作環境、システムアーキテクチャ、およびデバイス構成が、本開示の範囲内にある。本開示の他の実施形態は、より少ないもしくはより多くの数のコンポーネント、および／またはデバイスを含んでよく、例示的なアーキテクチャ２００に関して記載されている機能のうちのいくつかもしくは全て、または追加の機能を組み込んでよい。
【００５８】
［例示的な処理］
図３は、本開示の１または複数の実施形態に係る、フィッシングおよびブランド保護のためにページプロファイラサーバ１０６によって、ウェブサイトのベースラインページプロファイルを生成する例示的な方法３００の処理フロー図である。ブロック３０５において、ページプロファイラモジュール２６６は、識別されたウェブページが、以前に識別および処理されているかを判断してよい。例えば、ページプロファイラモジュール２６６は、識別されたウェブページのドメインを、関連するベースラインページプロファイル２７２がデータストア１０８に格納された既知のウェブサイトと比較してよい。ブロック３０５において、ウェブページが以前に識別および処理されているとページプロファイラモジュール２６６が判断した場合、次に方法は、終了に進んでよい。ブロック３０５において、ウェブページが以前に識別および処理されていないと、ページプロファイラモジュール２６６が判断した場合、方法は、段階３１０に進んでよい。ブロック３１０において、ページプロファイラモジュール２６６は、ウェブページから画像を取得し、ハッシュしてよい。ページプロファイラモジュール２６６は、ウェブページを処理して、画像（例えば、ロゴ）を識別し、画像の近似値またはハッシュを格納する。
【００５９】
ブロック３１５において、ページプロファイラモジュール２６６は、例えば、ページソースから余分な項目を除去し、最小限のレイアウト情報を保持することによって、ウェブページの形状を導出してよい。ウェブページの形状の一例は、「画像１−左上、画像２−中央下、中央に位置合わせされ鉛直に離間された２つの入力ボックス」であってよい。
【００６０】
ブロック３２０において、ページプロファイラモジュール２６６は、ウェブページから色およびフォント情報を取得してよい。例えば、ページプロファイラモジュール２６６は、ウェブページを処理することによって、背景色、パレット、フォント、および他の情報のような情報を捕捉してよい。いくつかの実施形態において、ページプロファイラモジュール２６６は、そのような情報をウェブページと関連付けられた階層式スタイルシート（ＣＳＳ）のために取得してよい。
【００６１】
ブロック３２５において、ページプロファイラモジュール２６６は、ウェブページからリンク情報を取得してよい。いくつかの実施形態において、ページプロファイラモジュール２６６は、ページ上のオフドメインリンクのリストを生成してよい。ページプロファイラモジュール２６６は、リスト内のウェブサイトが通信しているサーバを捕捉し得る。
【００６２】
いくつかの実施形態において、ページプロファイラモジュール２６６は、ウェブページの処理中に他の情報を取得してよい。例えば、ページプロファイラモジュール２６６は、ウェブサイトが捕捉するデータの種類を捕捉してよい。例えば、ウェブページは、ユーザの社会保障番号、クレジットカード番号、アドレスおよび他の個人識別情報を取得してよい。ページプロファイラモジュール２６６は、また、ウェブページ上に表示されるコンテンツを用いて、ウェブページを分類してよい。
【００６３】
ブロック３３０において、ページプロファイラモジュール２６６は、ブロック３１０−３２５で取得したデータ、ならびにウェブページの処理中にページプロファイラモジュール２６６によって取得された任意の他のデータを用いて、ウェブページと関連付けられたベースラインページプロファイル２７２を生成してよい。ページプロファイラモジュール２６６は、ページフィンガープリントとしても知られる、ベースラインページプロファイル２７２を生成してよく、生成したベースラインページプロファイル２７２を１または複数のデータストア１０８に送信してよい。いくつかの実施形態において、ページプロファイラモジュール２６６は、生成したベースラインページプロファイル２７２を１または複数のユーザデバイス１０４に送信してよい。
【００６４】
いくつかの実施形態において、ページプロファイラモジュール２６６は、周期的な時間間隔（例えば、毎時、毎週、毎月、および毎年など）でベースラインページプロファイルを生成または再生成してよい。いくつかの実施形態において、ページプロファイラモジュール２６６は、イベントに応答して、ベースラインページプロファイルを生成してよい。例えば、ベースラインページプロファイル２７２は、以前に識別されたウェブページが、新しいコンテンツまたは新しいレイアウトに更新されているかを判断することに応答して生成されてよい。
【００６５】
いくつかの実施形態において、ベースラインページプロファイルを生成する際、一時的ページプロファイルは、ページプロファイラモジュール２６６と同様の技術および方法を用いて、ユーザデバイス１０４上で実行されるページチェッキングエンジン２４８によって生成されてよい。例えば、一時的ページプロファイルは、段階３１０−３３０に記載されているものと同様の技術を用いて生成されてよい。
【００６６】
図４は、本開示の１または複数の実施形態に係る、フィッシングおよびブランド保護のためのシステムにおいて、ユーザデバイス１０４によって、潜在的に有害なウェブサイトを識別する例示的な方法４００の処理フロー図である。ブロック４０５において、ページチェッキングエンジン２４８は、ウェブページが既知であるか（例えば、不正検知のために以前に識別および処理されているか）を判断してよい。ページチェッキングエンジン２４８は、以前に識別および処理されている既知のウェブページのリストを読み出し、要求されたウェブページがリスト上にあるかを判断することによって、ウェブページが既知であるかを判断してよい。いくつかの実施形態において、リストは、ウェブページのホワイトリストおよびブラックリストの双方を含むリストであってよい。いくつかの実施形態において、リストは、ホワイトリストおよびブラックリストもチェックされるべきであると示してよい。ウェブページが既知である（例えば、リスト上にある）場合、次に方法は、ブロック４１０に進み得、そこで、ページチェッキングエンジン２４８は、ウェブページが既に処理されていることを示すメッセージをユーザに任意で表示してよい。例えば、ウェブページが既知であると判断され、ホワイトリスト上にある場合、ウェブページは、警告または任意の他の視覚もしくは音声指示なく、ユーザに表示され得る。ウェブページがブラックリスト上にある場合、ページチェッキングエンジン２４８は、要求されたページが、以前に処理され、不正であると判断されており、ブラックリスト上にあることをユーザに知らせる警告を生成してよい。警告は、ウェブページの指定を（例えば、ブラックリストからホワイトリストに）変更することをユーザに許可してよく、または、ウェブページをブラックリストから除去することなく、ユーザがウェブページに一度アクセスすることを可能にし得る。
【００６７】
ブロック４０５において、ウェブページが既知でないと判断された場合、次に方法は、ブロック４１５に進んでよい。ブロック４１５において、ページチェッキングエンジン２４８は、一時的ページプロファイルを生成してよい。例えば、一時的プロファイルは、画像コンポーネント、形状コンポーネント、スタイルコンポーネント、および／またはリンクコンポーネントを含んでよい。一時的ページプロファイルは、ベースラインページプロファイルを生成することに関して、図３に関連して記載されているものと同様の技術および方法を用いて生成されてよい。例えば、ページチェッキングエンジン２４８は、要求されたウェブページから画像を取得し、ハッシュしてよい。ページチェッキングエンジン２４８は、ウェブページを処理して、画像（例えば、ロゴ）を識別し、画像の近似値またはハッシュを格納してよい。ページチェッキングエンジン２４８は、例えば、ページソースから余分な項目を除去し、最小限のレイアウト情報を保持することによって、ウェブページの形状を導出してよい。ウェブページの形状の一例は、「画像１−左上、画像２−中央下、中央に位置合わせされ鉛直に離間された２つの入力ボックス」であってよい。ページチェッキングエンジン２４８は、ウェブページから色およびフォント情報を取得してよい。例えば、ページチェッキングエンジン２４８は、ウェブページを処理することによって、背景色、パレット、フォント、および他の情報のような情報を捕捉してよい。いくつかの実施形態において、ページチェッキングエンジン２４８は、そのような情報をウェブページと関連付けられた階層式スタイルシート（ＣＳＳ）のために取得してよい。
【００６８】
ページチェッキングエンジン２４８は、ウェブページからリンク情報を取得してよい。いくつかの実施形態において、ページチェッキングエンジン２４８は、ページ上のオフドメインリンクのリストを生成してよい。ページチェッキングエンジン２４８は、リスト内のウェブサイトが通信しているサーバを捕捉してよい。
【００６９】
いくつかの実施形態において、ページチェッキングエンジン２４８は、ウェブページの処理中に他の情報を取得してよい。例えば、ページチェッキングエンジン２４８は、ウェブサイトが捕捉するデータの種類を捕捉してよい。例えば、ウェブページは、ユーザの社会保障番号、クレジットカード番号、アドレスおよび他の個人識別情報を取得してよい。ページチェッキングエンジン２４８は、また、ウェブページ上に表示されるコンテンツを用いて、ウェブページを分類してよい。
【００７０】
ページチェッキングエンジン２４８は、ウェブページの処理中に取得される種々の情報に基づいて、ウェブページと関連付けられた一時的ページプロファイルも生成してよい。例えば、ページチェッキングエンジン２４８は、また、ウェブページのコンテンツを解析してよく、そのコンテンツに基づいて、ウェブページを分類してよい。例えば、ページチェッキングエンジン２４８は、モバイルバンキングのウェブサイトが金融のウェブサイトであるのに対し、Ａｍａｚｏｎ．ｃｏｍのようなウェブサイトは、小売ショッピングのウェブサイトであると判断してよい。
【００７１】
ブロック４２０において、ページチェッキングエンジン２４８は、ウェブページの一時的ページプロファイルをページプロファイラ１０６のページプロファイラモジュール２６６によって生成されたベースラインページプロファイルと比較してよい。いくつかの実施形態において、ページチェッキングエンジン２４８は、ファジーマッチアルゴリズムを用いて、ウェブページの一時的ページプロファイルを１または複数のベースラインページプロファイルと比較してよい。いくつかの実施形態において、ベースラインページプロファイルは、ユーザエクスペリエンスにおける不当な遅延を回避するため、実時間において、データストア１０８から読み出されてよい。いくつかの実施形態において、ユーザデバイス１０４は、ページプロファイラサーバ１０６からベースラインページプロファイルを以前に受信していてよく、それらをローカルストレージに格納していてよい。例えば、ページプロファイラサーバ１０６が、ベースラインページプロファイルが生成されると、それらをユーザデバイス１０４に送信することによって、ページチェッキングエンジン２４８は、要求されたウェブページを処理する間に、ローカルに格納されたベースラインページプロファイルを読み出し得、および／または一時的プロファイルを生成してよい。ローカルに格納されたベースラインページプロファイルを読み出すことは、あらゆる不必要な遅延（例えば、レイテンシ遅延）を低減し得、不正があるかを判断するために、要求されたウェブページが、すぐに処理されることを保証する。代替的に、ユーザデバイスによってアクセスされ得ると予測されたウェブページに基づいて、ユーザデバイス１０４の動作中に、ユーザデバイスは、ベースラインページプロファイルを動的に読み出してよい。
【００７２】
ブロック４２５において、ページチェッキングエンジン２４８は、ウェブページと関連付けられた一時的ページプロファイルが、任意のベースラインページプロファイルと一致するかを判断してよい。いくつかの実施形態において、ページチェッキングエンジン２４８は、近似アルゴリズム、またはＭｉｎＨａｓｈアルゴリズムのようなファジーマッチングアルゴリズムを使用して、要求されたページが登録されたページの派生物であるかを判断してよい。例えば、近似アルゴリズムが、一時的ページプロファイルが登録されたページのページプロファイルとのパーセンテージによる一致を有すると判断し、パーセンテージによる一致が予め定められた閾値（例えば、８０％）を超える場合、ページチェッキングエンジン２４８は、一致があると判断してよい。
【００７３】
ブロック４２５において、ページチェッキングエンジン２４８が一致がないと判断した場合、次に方法は、ブロック４３０に進んでよい。ブロック４３０において、ページチェッキングエンジン２４８は、ウェブページを変更なく継続して表示すること、またはメッセージをユーザに表示することをウェブブラウザに許可してよい。
【００７４】
ブロック４２５において、ページチェッキングエンジン２４８が一致があると判断した場合、次に方法は、ブロック４３５に進んでよい。ブロック４３５において、ページチェッキングエンジン２４８は、メッセージをユーザに表示してよい。いくつかの実施形態において、メッセージは、ウェブページが有害なもの、または悪意のあるものである可能性が高いことをユーザに警告してよい。いくつかの実施形態において、メッセージは、ユーザに提示され得る複数の選択肢を備えてよい。選択肢は、警告を無視し、ウェブページに進む選択肢、ウェブページをホワイトリスト２７４に追加する選択肢、および／またはウェブページをブラックリスト２７６に追加する選択肢を含んでよい。いくつかの実施形態において、ホワイトリスト２７４は、ウェブページが悪意のあるものまたは有害なものとして識別されているが、ウェブページへの将来的なアクセスを許可することをユーザが望んでいることを示してよい。ブラックリスト２７６は、ウェブページが悪意のあるもの、または有害なものとして識別されており、ブラウザ２４６が将来的にウェブページにアクセスすることを許可しないことを示してよい。
【００７５】
任意のブロック４４０において、ページチェッキングエンジン２４８は、将来使用するために、一時的ページプロファイルをベースラインページプロファイル２７２として、データストア１０８に格納してよい。いくつかの実施形態において、ページチェッキングエンジン２４８は、一時的ページプロファイルをベースラインページプロファイル２７２として、ユーザデバイス１０４のローカルストレージに格納してよい。
【００７６】
いくつかの実施形態において、ページチェッキングエンジン２４８は、ウェブページを不正なものとして、脅威アナライザにレポートし得る。レポートは、ベースラインページプロファイル２７２および一時的ページプロファイルを含んでよい。脅威アナライザは、悪意のあるアクティビティに関して、ウェブページをさらに解析し得、ウェブページは、ウェブページのコンテンツに基づいて分類されてよい。一度ウェブページが分類されると、カテゴライザは、ウェブサイトを識別することが可能であり得、その結果、他のユーザを脅威から防ぐ。
【００７７】
１つの実施形態において、コンピュータ可読媒体は、コンピュータ実行可能命令を格納してよく、命令はプロセッサによって実行されるとき、プロセッサに、ウェブページと関連付けられた一時的ページプロファイルを生成することであって、一時的ページプロファイルは、画像コンポーネント、形状コンポーネント、スタイルコンポーネント、およびリンクコンポーネントを含む、生成することと、１または複数のベースラインページプロファイルを読み出すことと、一時的ページプロファイルを１または複数のベースラインページプロファイルと比較することと、一時的ページプロファイルが１または複数のベースラインページプロファイルと一致しないと判断することと、ウェブページに関して不正が検知されたことを示す、ユーザに表示する警告を生成することとを含む動作を行わせるコンピュータ実行可能命令を格納してよい。
【００７８】
一実施形態の１つの態様において、一時的ページプロファイルを１または複数のベースラインページプロファイルと比較することは、ファジーマッチングアルゴリズムを用いて、一時的ページプロファイルを１または複数のベースラインページプロファイルと比較することをさらに備える。一実施形態の１つの態様において、ファジーマッチングアルゴリズムは、ＭｉｎＨａｓｈアルゴリズムであってよい。一実施形態の１つの態様において、警告は、ユーザに表示される選択肢を含んでよく、動作は、ウェブページが表示されるべきである、ホワイトリストに追加されるべきである、またはブラックリストに追加されるべきであるかとのユーザからの指示を受信することをさらに備えてよい。一実施形態の１つの態様において、動作は、トリガイベントが生じたと判断することと、トリガイベントが生じたと判断することに応答して、ウェブページと関連付けられた一時的ページプロファイルを生成することとをさらに備えてよい。一実施形態の１つの態様において、動作は、一時的ページプロファイルをベースラインページプロファイルとして格納することをさらに備えてよい。一実施形態の１つの態様において、動作は、ウェブページが不正なものであることを示すレポートを脅威アナライザに送信することをさらに備えてよく、レポートは、一時的ページプロファイルおよびベースラインページプロファイルを含む。
【００７９】
１つの実施形態において、システムは、コンピュータ実行可能命令を格納する少なくとも１つのメモリと、少なくとも１つのプロセッサとを備え、少なくとも１つのプロセッサは、少なくとも１つのメモリにアクセスし、ウェブページと関連付けられた一時的ページプロファイルを生成することであって、一時的ページプロファイルは、画像コンポーネント、形状コンポーネント、スタイルコンポーネント、およびリンクコンポーネントを含むことと、１または複数のベースラインページプロファイルを読み出すことと、一時的ページプロファイルを１または複数のベースラインページプロファイルと比較することと、一時的ページプロファイルは１または複数のベースラインページプロファイルと一致しないと判断することと、ウェブページに関して不正が検知されたことを示す、ユーザに表示する警告を生成することとを実行する、コンピュータ実行可能命令を実行するように構成される。
【００８０】
一実施形態の１つの態様において、一時的ページプロファイルを１または複数のベースラインページプロファイルと比較するために、少なくとも１つのプロセッサは、ファジーマッチングアルゴリズムを用いて、一時的ページプロファイルを１または複数のベースラインページプロファイルと比較するコンピュータ実行可能命令を実行するようにさらに構成されてよい。一実施形態の１つの態様において、ファジーマッチングアルゴリズムは、ＭｉｎＨａｓｈアルゴリズムであってよい。一実施形態の１つの態様において、警告は、ユーザに表示される選択肢を備えてよく、少なくとも１つのプロセッサは、ウェブページが表示されるべきである、ホワイトリストに追加されるべきである、またはブラックリストに追加されるべきであるかとのユーザからの指示を受信するコンピュータ実行可能命令を実行するようにさらに構成されてよい。一実施形態の１つの態様において、少なくとも１つのプロセッサは、トリガイベントが生じたと判断し、トリガイベントが生じたと判断することに応答して、ウェブページと関連付けられた一時的ページプロファイルを生成するコンピュータ実行可能命令を実行するようにさらに構成されてよい。一実施形態の１つの態様において、少なくとも１つのプロセッサは、一時的ページプロファイルをベースラインページプロファイルとして格納するコンピュータ実行可能命令を実行するようにさらに構成されてよい。一実施形態の１つの態様において、少なくとも１つのプロセッサは、ウェブページが不正なものであることを示すレポートを脅威アナライザに送信するコンピュータ実行可能命令を実行するようにさらに構成されてよく、レポートは、一時的ページプロファイルおよびベースラインページプロファイルを含む。
【００８１】
１つの実施形態において、方法は、ウェブページと関連付けられた一時的ページプロファイルを生成する段階であって、一時的ページプロファイルは、画像コンポーネント、形状コンポーネント、スタイルコンポーネント、およびリンクコンポーネントを含む、生成する段階と、１または複数のベースラインページプロファイルを読み出す段階と、一時的ページプロファイルを１または複数のベースラインページプロファイルと比較する段階と、一時的ページプロファイルが、１または複数のベースラインページプロファイルと一致しないと判断する段階と、ウェブページに関して不正が検知されたことを示す、ユーザに表示する警告を生成する段階とを備えてよい。
【００８２】
一実施形態の１つの態様において、一時的ページプロファイルを１または複数のベースラインページプロファイルと比較することは、ファジーマッチングアルゴリズムを用いて、一時的ページプロファイルを１または複数のベースラインページプロファイルと比較することをさらに備える。一実施形態の１つの態様において、ファジーマッチングアルゴリズムは、ＭｉｎＨａｓｈアルゴリズムであってよい。一実施形態の１つの態様において、警告は、ユーザに表示される選択肢を備えてよく、方法は、ウェブページが表示されるべきである、ホワイトリストに追加されるべきである、またはブラックリストに追加されるべきであるかとのユーザからの指示を受信することをさらに備えてよい。一実施形態の１つの態様において、方法は、トリガイベントが生じたと判断する段階と、トリガイベントが生じたと判断することに応答して、ウェブページと関連付けられた一時的ページプロファイルを生成する段階とをさらに備えてよい。一実施形態の１つの態様において、方法は、一時的ページプロファイルをベースラインページプロファイルとして格納することをさらに備えてよい。方法は、ウェブページが不正なものであることを示すレポートを脅威アナライザに送信する段階であって、レポートは、一時的ページプロファイルおよびベースラインページプロファイルを含む、送信する段階をさらに備えてよい。
【００８３】
１つの実施形態において、装置は、コンピュータ実行可能命令を格納する少なくとも１つのメモリと、少なくとも１つのプロセッサとを備え、少なくとも１つのプロセッサは、少なくとも１つのメモリにアクセスし、ウェブページと関連付けられた一時的ページプロファイルを生成することであって、一時的ページプロファイルは、画像コンポーネント、形状コンポーネント、スタイルコンポーネント、およびリンクコンポーネントを含む、生成することと、１または複数のベースラインページプロファイルを読み出すことと、一時的ページプロファイルを１または複数のベースラインページプロファイルと比較することと、一時的ページプロファイルが１または複数のベースラインページプロファイルと一致しないと判断することと、ウェブページに関して不正が検知されたことを示す、ユーザに表示する警告を生成することとを実行するコンピュータ実行可能命令を実行するように構成される。
【００８４】
一実施形態の１つの態様において、一時的ページプロファイルを１または複数のベースラインページプロファイルと比較するために、少なくとも１つのプロセッサは、ファジーマッチングアルゴリズムを用いて、一時的ページプロファイルを１または複数のベースラインページプロファイルと比較するコンピュータ実行可能命令を実行するようにさらに構成される。一実施形態の１つの態様において、ファジーマッチングアルゴリズムは、ＭｉｎＨａｓｈアルゴリズムであってよい。一実施形態の１つの態様において、警告は、ユーザに表示される選択肢を含み、少なくとも１つのプロセッサは、ウェブページが表示されるべきである、ホワイトリストに追加されるべきである、ブラックリストに追加されるべきであるかとのユーザからの指示を受信するコンピュータ実行可能命令を実行するようにさらに構成されてよい。一実施形態の１つの態様において、少なくとも１つのプロセッサは、トリガイベントが生じたと判断し、トリガイベントが生じたと判断することに応答して、ウェブページと関連付けられた一時的ページプロファイルを生成するコンピュータ実行可能命令を実行するようにさらに構成されてよい。一実施形態の１つの態様において、少なくとも１つのプロセッサは、一時的ページプロファイルをベースラインページプロファイルとして格納するコンピュータ実行可能命令を実行するようにさらに構成されてよい。一実施形態の１つの態様において、少なくとも１つのプロセッサは、ウェブページが不正なものであることを示すレポートを脅威アナライザに送信するコンピュータ実行可能命令を実行するようにさらに構成されてよく、レポートは、一時的ページプロファイルおよびベースラインページプロファイルを含む。
【００８５】
１つの実施形態において、システムは、ウェブページと関連付けられた一時的ページプロファイルを生成する手段であって、一時的ページプロファイルは、画像コンポーネント、形状コンポーネント、スタイルコンポーネント、およびリンクコンポーネントを含む、生成する手段と、１または複数のベースラインページプロファイルを読み出す手段と、一時的ページプロファイルを１または複数のベースラインページプロファイルと比較する手段と、一時的ページプロファイルが１または複数のベースラインページプロファイルと一致しないと判断する手段と、ウェブページに関して不正が検知されたことを示す、ユーザに表示する警告を生成する手段とを備えてよい。
【００８６】
一実施形態の１つの態様において、一時的ページプロファイルを１または複数のベースラインページプロファイルと比較する手段は、ファジーマッチングアルゴリズムを用いて、一時的ページプロファイルを１または複数のベースラインページプロファイルと比較する手段をさらに備えてよい。一実施形態の１つの態様において、ファジーマッチングアルゴリズムは、ＭｉｎＨａｓｈアルゴリズムであってよい。一実施形態の１つの態様において、警告は、ユーザに表示される選択肢を含んでよく、システムは、ウェブページが表示されるべきである、ホワイトリストに追加されるべきである、ブラックリストに追加されるべきであるかとのユーザからの指示を受信する手段をさらに備えてよい。一実施形態の１つの態様において、システムは、トリガイベントが生じたと判断する手段と、トリガイベントが生じたと判断することに応答して、ウェブページと関連付けられた一時的ページプロファイルを生成する手段とを備えてよい。一実施形態の１つの態様において、システムは、一時的ページプロファイルをベースラインページプロファイルとして格納する手段を備えてよい。一実施形態の１つの態様において、システムは、ウェブページが不正なものであることを示すレポートを脅威アナライザに送信する手段であって、レポートは、一時的ページプロファイルおよびベースラインページプロファイルを含む、手段を備えてよい。
【００８７】
［結論］
データストレージに格納されているとして本開示に示されている、プログラムモジュール、アプリケーション、コンピュータ実行可能命令、コード、または同様のものは、単なる例示であって、包括的なものでなく、任意の特定のモジュールによってサポートされていると記載されている処理は、代替的に、複数のモジュールにわたって分散されてよく、または異なるモジュールによって行われてよいことが理解されるべきである。加えて、様々なプログラムモジュール、スクリプト、プラグイン、アプリケーションプログラミングインタフェース（ＡＰＩ）、または、デバイス（例えば、ユーザデバイス１０４、ブローカ１０６、インシデントレスポンスサーバ１０８）上にローカルにホスティングされる、および／または１または複数のネットワークを介してアクセス可能な他のコンピューティングデバイス上にホスティングされる任意の他の好適なコンピュータ実行可能コードが、本明細書に示されている、プログラムモジュール、アプリケーション、またはコンピュータ実行可能コードによって提供される機能、および／または追加的もしくは代替的な機能をサポートするべく、提供されてよい。さらに、本明細書に記載されている一群のプログラムモジュールによって、一括してサポートされていると記載されている処理が、より少ないもしくはより多くの数のモジュールによって行われるように、異なるように機能がモジュール化されてよい、または任意の特定のモジュールによってサポートされていると記載されている機能が、別のモジュールによって、少なくとも部分的にサポートされてよい。加えて、本明細書に記載されている機能をサポートするプログラムモジュールは、例えば、クライアント・サーバモデル、ピア・ツー・ピアモデルなどのような任意の好適なコンピューティングモデルに係る、任意の数のシステムまたはデバイスににわたって実行可能な１または複数のアプリケーションの一部を形成してよい。加えて、本明細書に記載されているプログラムモジュールの何れかによってサポートされると記載されている機能の何れかは、任意の数のデバイスにわたって、ハードウェアおよび／またはファームウェアで少なくとも部分的に実装されてよい。
【００８８】
デバイス（例えば、ユーザデバイス１０４、ブローカ１０６、インシデントレスポンスサーバ１０８など）は、本開示の範囲から逸脱することなく、記載されているまたは示されているもの以外の代替的および／または追加のハードウェア、ソフトウェア、またはファームウェアコンポーネントを含んでよいことがさらに理解されるべきである。より具体的には、様々な実施形態において、デバイス（例えば、ユーザデバイス１０４、ブローカ１０６、インシデントレスポンスサーバ１０８など）の一部を形成すると示されているソフトウェア、ファームウェア、またはハードウェアコンポーネントは、単なる例示であり、いくつかのコンポーネントは存在しない場合がある、または追加のコンポーネントが提供されてもよいことが理解されるべきである。様々な例示的なプログラムモジュールが、データストレージに格納されるソフトウェアモジュールとして示され、記載されている一方で、プログラムモジュールによってサポートされていると記載されている機能は、ハードウェア、ソフトウェア、および／またはファームウェアの任意の組合せによって可能になり得ることが理解されるべきである。上述されたモジュールの各々は、様々な実施形態において、サポートされた機能のロジカルパーティショニングを表してよいことがさらに理解されるべきである。このロジカルパーティショニングは、機能の説明を容易にするために示され、機能を実装するソフトウェア、ハードウェア、および／またはファームウェアの構造を表さなくてもよい。従って、特定のモジュールによって提供されていると記載されている機能は、様々な実施形態において、１または複数の他のモジュールによって少なくとも部分的に提供されてよいことが理解されるべきである。さらに、１または複数の示されているモジュールは、特定の実施形態において存在しなくてもよく、一方で、他の実施形態において、示されていない追加のモジュールが存在してもよく、説明されている機能の少なくとも一部、および／または追加の機能をサポートしてもよい。さらに、特定のモジュールが、別のモジュールのサブモジュールとして示され、および記載され得る一方で、特定の実施形態において、そのようなモジュールは、独立したモジュール、または他のモジュールのサブモジュールとして提供されてもよい。
【００８９】
方法３００−４００の１または複数の動作は、デバイスの１または複数のコンポーネントによって行なわれているとして、またはより具体的には、そのようなデバイス上で実行される１または複数のプログラムモジュールによって行なわれているとして、上述されていてよい。しかしながら、方法３００−４００の動作の何れかは、少なくとも部分的に、１または複数の他のデバイスもしくはシステムによって、または、より具体的には、そのようなデバイス上で実行される１または複数のプログラムモジュール、アプリケーション、または同様のものによって、分散方式で行われてよいことが理解されるべきである。加えて、アプリケーション、プログラムモジュール、または同様のものの一部として提供されるコンピュータ実行可能命令の実行に応答して行われる処理は、アプリケーションもしくはプログラムモジュール自体によって、またはアプリケーション、プログラムモジュール、または同様のものが実行されるデバイスによって行われているものとして、本明細書に相互に交換可能に記載され得ることが理解されるべきである。方法３００の動作の何れかが、例示的なユーザデバイス４００の文脈で記載され得る一方で、そのような動作は、多数の他のシステム構成と関連して実施されてよいことが理解されるべきである。
【００９０】
図３から図４の例示的な方法に記載されおよび示されている動作は、本開示の様々な例示的な実施形態において、任意の好適な順序で所望により実行され、または行われてよい。付加的に、特定の例示的な実施形態において、動作の少なくとも一部は、並行して実行されてよい。さらに、特定の例示的な実施形態において、図３から図４に示されているものより少ない、より多い、または異なる動作が、行われてよい。
【００９１】
本開示の具体的な実施形態が記載されてきたが、当業者であれば、多数の他の修正、および代替的な実施形態が本開示の範囲内であることを認識するであろう。例えば、特定のデバイスまたはコンポーネントに関して記載されている機能および／または処理能力の何れかは、任意の他のデバイスまたはコンポーネントによって行われてよい。さらに、様々な例示的な実装およびアーキテクチャが、本開示の実施形態に従って記載されているが、当業者であれば、本明細書に記載されている例示的な実装およびアーキテクチャへの多数の他の修正も、本開示の範囲内であることを理解するであろう。
【００９２】
本開示の特定の態様が、例示的な実施形態に係る、システム、方法、装置、および／またはコンピュータプログラム製品のブロック図およびフロー図を参照して上述されている。ブロック図およびフロー図の１または複数のブロック、およびブロック図およびフロー図のブロックの組合せは、それぞれ、コンピュータ実行可能プログラム命令の実行によって実施されてよいことが理解されるであろう。同様に、いくつかの実施形態によれば、ブロック図およびフロー図のいくつかのブロックは、必ずしも提示された順序で行われる必要がなく、またはそもそも、必ずしも行われる必要がない。さらに、ブロック図および／またはフロー図のブロックに示されているもの以外の追加のコンポーネントおよび／または動作が、特定の実施形態において存在してよい。
【００９３】
従って、ブロック図およびフロー図のブロックは、指定される機能が行われる手段の組合せ、指定される機能が行われる要素または段階の組合せ、および指定される機能が行われるプログラム命令の手段をサポートする。ブロック図およびフロー図の各ブロック、およびブロック図およびフロー図のブロックの組合せが、指定される機能、要素もしくは段階、または特定用途ハードウェアおよびコンピュータ命令の組合せを行う、特定用途のハードウェアベースコンピュータシステムによって実装され得ることも理解されるであろう。
【００９４】
本明細書に開示されているプログラムモジュール、アプリケーション、または同様のものは、例えば、ソフトウェアオブジェクト、方法、データ構造、または同様のものを含む、１または複数のソフトウェアコンポーネントを含んでよい。そのようなソフトウェアコンポーネントの各々は、実行に応答して、本明細書に記載されている機能（例えば、本明細書に記載の例示的な方法の１または複数の動作）の少なくとも一部を行わせるコンピュータ実行可能命令を含む。
【００９５】
ソフトウェアコンポーネントは、様々なプログラミング言語のうちの何れかでコード化されてよい。例示的なプログラミング言語は、特定のハードウェアアーキテクチャおよび／またはオペレーティングシステムプラットフォームと関連付けられたアセンブリ言語のような、より低レベルのプログラミング言語であってよい。アセンブリ言語命令を備えるソフトウェアコンポーネントは、ハードウェアアーキテクチャおよび／またはプラットフォームによる実行の前に、アセンブラによって実行可能なマシンコードへの変換を必要としてよい。
【００９６】
別の例示的なプログラミング言語は、複数のアーキテクチャにわたってポータブルであり得る、より高レベルのプログラミング言語であってよい。より高レベルのプログラミング言語命令を備えるソフトウェアコンポーネントは、実行の前に、インタープリタまたはコンパイラによる中間表現への変換を必要としてよい。
【００９７】
プログラミング言語の他の例は、マクロ言語、シェルもしくはコマンド言語、ジョブ制御言語、スクリプト言語、データベース質問もしくは探索言語、または報告書作成言語を含むが、これらに限定されない。１または複数の例示的な実施形態において、前述の例のうちの１つのプログラミング言語の命令を備えるソフトウェアコンポーネントは、まず、別の形へと変化させる必要がないオペレーティングシステムまたは他のソフトウェアコンポーネントによって、直接的に実行される。
【００９８】
ソフトウェアコンポーネントは、ファイルまたは他のデータストレージ構成物として格納されてよい。同様の種類の、または機能的に関連するソフトウェアコンポーネントは、例えば、特定のディレクトリ、フォルダ、またはライブラリなどに一緒に格納されてよい。ソフトウェアコンポーネントは、静的（例えば、事前に構築された、もしくは固定の）、または、動的（例えば、実行時に形成され、もしくは変更される）であり得る。
【００９９】
多種多様なメカニズムの何れかを通じて、ソフトウェアコンポーネントが他のソフトウェアコンポーネントを呼び出してよい、または他のソフトウェアコンポーネントによって呼び出されてよい。呼び出された、または呼び出されているソフトウェアコンポーネントは、他の特別に開発されたアプリケーションソフトウェア、オペレーティングシステム機能（例えば、デバイスドライバ、データストレージ（例えば、ファイル管理）ルーチン、他の共通ルーチン、およびサービスなど）、または第三者ソフトウェアコンポーネント（例えば、ミドルウェア、暗号化、または他のセキュリティソフトウェア、データベース管理ソフトウェア、ファイル転送もしくは他のネットワーク通信ソフトウェア、数学もしくは統計ソフトウェア、画像処理ソフトウェア、およびフォーマット変換ソフトウェア）を含んでよい。
【０１００】
特定のソリューションまたはシステムに関連付けられたソフトウェアコンポーネントは、単一のプラットフォームに存在し、単一のプラットフォームで実行され得、または複数のプラットフォームにわたって分散されてよい。複数のプラットフォームは、１より多くのチップ技術の基礎をなすハードウェアベンダ、またはオペレーティングシステムに関連付けられてよい。さらに、特定のソリューションまたはシステムに関連付けられたソフトウェアコンポーネントは、最初に１または複数のプログラミング言語で書かれてよいが、別のプログラミング言語で書かれたソフトウェアコンポーネントを呼び出してもよい。
【０１０１】
コンピュータ、プロセッサ、または他のプログラム可能なデータ処理装置上の命令の実行が、フロー図で指定されている１または複数の機能または動作を行わせるように特定のマシンを製造するべく、コンピュータ実行可能プログラム命令は、特定用途コンピュータもしくは他の特定のマシン、プロセッサまたは他のプログラム可能なデータ処理装置に読み込まれてもよい。これらのコンピュータプログラム命令は、また、コンピュータ可読ストレージ媒体（ＣＲＳＭ）に格納されてよく、実行されると、コンピュータまたは他のプログラム可能なデータ処理装置は、コンピュータ可読ストレージ媒体に格納された命令が、フロー図で指定された１または複数の機能または動作を実施する命令手段を含む、製造品を製造するよう、特定の態様で機能するべく方向付けられてよい。コンピュータプログラム命令は、また、コンピュータによって実施される処理を生じさせるべく、コンピュータ、または他のプログラム可能装置上で一連の演算要素もしくは段階を行わせるコンピュータまたは他のプログラム可能なデータ処理装置に読み込まれてもよい。
【０１０２】
本明細書に記載されているデバイスの何れかに存在し得る追加の種類のＣＲＳＭは、プログラム可能ランダムアクセスメモリ（ＰＲＡＭ）、ＳＲＡＭ、ＤＲＡＭ、ＲＡＭ、ＲＯＭ、電気的消去可能プログラマブルリードオンリメモリ（ＥＥＰＲＯＭ）、フラッシュメモリ、または他のメモリ技術、コンパクトディスクリードオンリメモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、または他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、または他の磁気ストレージデバイス、または情報を格納するために使用され得、アクセスされ得る任意の他の媒体を含んでよいが、これらに限定されない。上記の任意のものの組合せが、ＣＲＳＭの範囲内にも含まれる。代替的に、コンピュータ可読通信媒体（ＣＲＣＭ）は、コンピュータ可読命令、プログラムモジュール、または搬送波のようなデータ信号内で、または他のトランスミッションで送信される他のデータを含んでよい。しかしながら、本明細書において使用されているように、ＣＲＳＭはＣＲＣＭを含まない。
【０１０３】
構造上の特徴および／または方法上の動作に特有の言語で実施形態が記載されているが、本開示は、記載されている特定の特徴または動作に必ずしも限定されないことが理解されるべきである。むしろ、特定の特徴および動作は、実施形態を実施する例示的な形で開示される。とりわけ、「ｃａｎ（〜できる）」、「ｃｏｕｌｄ（〜できる）」「ｍｉｇｈｔ（〜してよい）」または「ｍａｙ（〜してよい）」のような条件付き言語は、特に明記しない限り、または使用されている文脈で他の解釈がない限り、概して、特定の実施形態では特定の特徴、要素、および／または段階を含んでよく、一方で、他の実施形態では含まないことを伝えることを意図するものとする。従って、そのような条件付き言語は、概して、特徴、要素および／または段階が、１または複数の実施形態に多少なりとも必要とされる、または１または複数の実施形態が、ユーザ入力、またはこれらの特徴、要素および／または段階が、任意の特定の実施形態において含められる、または行われるかを促がすことの有無にかかわらず、決定するための論理を必ず含むことを示唆するように意図されるものではない。
【図１】
0006570663.tif 000002
【図２】
0006570663.tif 000003
【図３】
0006570663.tif 000004
【図４】
0006570663.tif 000005