(57)【特許請求の範囲】
【請求項１】
変更されたウェブページを判定する方法であって、
複数のマルウェア・トリガー・コードのフラグメントを悪意のあるソフトウェアの少なくとも1つの構成ファイルからハードウェアプロセッサによって抽出する工程と、
前記複数のマルウェア・トリガー・コードのフラグメントをテンプレートページへ加え、検証ウェブページを前記ハードウェアプロセッサによって作成する工程と、
前記検証ウェブページの初期状態に関連するデータをデータベースに格納する工程と、
前記検証ウェブページを開く工程と、
前記検証ウェブページの開かれた状態に関連するデータを確認する工程と、
前記初期状態に関連するデータと前記検証ウェブページの開かれた状態に関連するデータを前記ハードウェアプロセッサによって比較する工程と、
前記初期状態に関連するデータ及び前記検証ウェブページの開かれた状態に関連するデータの検出差異に基づき、前記検証ウェブページの少なくとも１つの変更されたコードのフラグメントを特定する工程と、
悪意のあるソフトウェア構成ファイルのデータベースに、前記悪意のあるソフトウェアの少なくとも１つの構成ファイルを格納する工程と、
前記ハードウェアプロセッサによって、前記検証ウェブページを作成するための前記少なくとも１つの構成ファイルを複数の基準に基づいて選択する工程と
を含み、
前記複数の基準は、一定期間内における前記少なくとも１つの構成ファイル内における挿入コードの検出頻度を含む、方法。
【請求項２】
前記検証ウェブページを開く工程は、ウェブブラウザによって検証ウェブページを開く工程を含む、請求項１に記載の方法。
【請求項３】
前記検証ウェブページの作成工程は、ページの最大数の制限、全ページを合わせた場合の最大サイズの制限、1ページの最大サイズの制限、及び1500以下の文字を含むURLの長さの制限のうち少なくとも一つ以上に基づいて前記検証ウェブページを作成する工程を含む、請求項１に記載の方法。
【請求項４】
最も検出頻度の高い挿入コードを有する悪意のあるソフトウェアの少なくとも１つの構成ファイルからN個のフラグメントを選択することによって前記検証ウェブページを作成するために、前記複数のコードフラグメントを選択する工程をさらに含み、数Nは前記検証ウェブページのサイズ制限に基づいて決定される、請求項１に記載の方法。
【請求項５】
前記少なくとも１つの変更されたコードのフラグメント中のコードを、前記悪意のあるソフトウェアの挙動を分析するために、バーチャルマシンによって実行する工程をさらに含む、請求項１に記載の方法。
【請求項６】
前記検証ウェブページの前記少なくとも１つの変更されたコードのフラグメント中のURLコードを前記ハードウェアプロセッサによって分析する工程と、
少なくとも１つのフィッシングリソースへのリンクを前記ハードウェアプロセッサによって特定する工程と、
をさらに含む、請求項１に記載の方法。
【請求項７】
変更されたウェブページを判定するシステムであって、
少なくとも１つのデータベースと、ハードウェアプロセッサを備え、
前記少なくとも１つのデータベースは、悪意のあるソフトウェアの少なくとも１つの構成ファイルを格納するように構成され、
前記ハードウェアプロセッサは、
複数のマルウェア・トリガー・コードのフラグメントを前記悪意のあるソフトウェアの少なくとも１つの構成ファイルから抽出し、
前記複数のマルウェア・トリガー・コードのフラグメントをテンプレートページへ加えることによって検証ウェブページを作成し、
前記検証ウェブページの初期状態に関連するデータを前記少なくとも１つのデータベースに格納し、
前記検証ウェブページを開き、
前記検証ウェブページの開かれた状態に関連するデータを確認し、
前記初期状態に関連するデータ及び前記検証ウェブページの開かれた状態に関連するデータの検出差異に基づき、検証ウェブページの少なくとも１つの変更されたコードのフラグメントを特定し、
前記少なくとも１つのデータベースは、前記悪意のあるソフトウェアの少なくとも１つの構成ファイルを格納し、
前記ハードウェアプロセッサは、複数の基準に基づいて前記検証ウェブページを作成するために前記少なくとも１つの構成ファイルを選択するように構成され、
前記複数の基準は、一定期間内における前記少なくとも１つの構成ファイル内における挿入コードの検出頻度を含む、システム。
【請求項８】
前記ハードウェアプロセッサは、ウェブブラウザによって前記検証ウェブページを開くようにさらに構成されている、請求項７に記載のシステム。
【請求項９】
前記ハードウェアプロセッサは、ページの最大数の制限、全ページを合わせた場合の最大サイズの制限、1ページの最大サイズの制限、及び1500以下の文字を含むURLの長さの制限のうち少なくとも一つ以上に基づいて前記検証ウェブページを作成するようにさらに構成されている、請求項７に記載のシステム。
【請求項１０】
前記ハードウェアプロセッサは、最も検出頻度の高い挿入コードを有する悪意のあるソフトウェアの少なくとも１つの構成ファイルからN個のフラグメントを選択することによって前記検証ウェブページを作成するために、前記複数のコードフラグメントを選択するようにさらに構成されており、数Nは前記検証ウェブページのサイズ制限に基づいて決定される、請求項７に記載のシステム。
【請求項１１】
前記ハードウェアプロセッサは、前記少なくとも１つの変更されたコードのフラグメント中のコードを、前記悪意のあるソフトウェアの挙動を分析するために、バーチャルマシンを作動させるようにさらに構成されている、請求項７に記載のシステム。
【請求項１２】
前記ハードウェアプロセッサは、前記検証ウェブページの前記少なくとも１つの変更されたコードのフラグメント中のURLコードを前記ハードウェアプロセッサによって分析し、少なくとも１つのフィッシングリソースへのリンクを前記ハードウェアプロセッサによって特定するようにさらに構成されている、請求項７に記載のシステム。
【請求項１３】
変更されたウェブページを判定するためのコンピュータ実行可能命令を格納する非一過性の記録媒体であって、前記命令は、
複数のマルウェア・トリガー・コードのフラグメントを悪意のあるソフトウェアの少なくとも１つの構成ファイルから抽出する命令と、
前記複数のマルウェア・トリガー・コードのフラグメントをテンプレートページへ加えることによって検証ウェブページを作成する命令と、
前記検証ウェブページの初期状態に関連するデータをデータベースに格納する命令と、
前記検証ウェブページを開き、前記検証ウェブページの開かれた状態に関連するデータを確認する命令と、
前記初期状態に関連するデータと前記検証ウェブページの開かれた状態に関連するデータを比較する命令と、
前記初期状態に関連するデータ及び前記検証ウェブページの開かれた状態に関連するデータの検出差異に基づき、前記検証ウェブページの少なくとも１つの変更されたコードのフラグメントを特定する命令と、
悪意のあるソフトウェア構成ファイルのデータベースに、前記悪意のあるソフトウェアの少なくとも１つの構成ファイルを格納する命令と、
ハードウェアプロセッサによって、前記検証ウェブページを作成するための前記少なくとも１つの構成ファイルを複数の基準に基づいて選択する命令と、
を含み、
前記複数の基準は、一定期間内における前記少なくとも１つの構成ファイル内における挿入コードの検出頻度を含む、記録媒体。
【請求項１４】
前記検証ウェブページを開くことは、ウェブブラウザによって前記検証ウェブページを開くことによって行われる、請求項１３に記載の非一過性の記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般的にコンピュータセキュリティの分野に関し、特に変更されたウェブページを判定するためのシステム及び方法に関する。
【０００２】
関連出願の相互参照
本開示は、2015年6月30日に出願されたロシア特許出願第2015125971の関連出願であり、米国特許法第119条でこの出願に基づく優先権を主張し、本明細書中に参考として援用する。
【背景技術】
【０００３】
現在、パーソナルコンピューティングデバイスの数が増加している。コンピュータおよびモバイルデバイスは、様々なオペレーティング・システムの制御下で動作し、さまざまな問題を解決している。多くのユーザは、インターネットブラウジングのためのこれらのデバイスを使用している。
【０００４】
また、新しい悪意のあるソフトウェア（マルウェア）が絶えず開発されており、例えばトロイの木馬、インターネットワームなどのコンピュータウイルスを含む。このようなマルウェアの大部分は、インターネット上で作業するユーザを攻撃することを目的としている。インターネットユーザへの攻撃の一般的なタイプは、ユーザに表示されるウェブページの内容を悪意のあるソフトウェアによって置き換える攻撃である。上記の悪意のあるソフトウェアは、ウェブページへのHTMLコードの挿入を実行する。多くの場合、この攻撃は、「マン・イン・ザ・ブラウザ」または「ウェブ・コード・インジェクション」として知られている。上記攻撃は、被害者のWebブラウザにブラウザを再起動したときに起動される悪質な拡張機能やプラグインをインストールする、例えば、トロイの木馬アプリケーションの使用によって開始されることがある。そして、特定のウェブサイト（ほとんどの場合バンキングサイト）向けのユーザのトラフィックが傍受されるようになる。次に、ユーザに表示されるウェブページは、ダウンロード又は開いたの段階で変更されており、ウェブページの特定の要素の外観を変更することが可能となり、入力された被害者の認証データを盗むか、あるいはユーザによって送金される資金を別の口座宛の送金とする。
【０００５】
インターネット上のユーザの作業の安全性を高めることを目的とした現在の技術的解決策は、ウェブページに悪意のあるコードを挿入する攻撃を問題としている。しかしながら、ウェブページが悪意のあるソフトウェアによって変更されているかどうかを判定するための効果的な解決策は提供されていない。
【発明の概要】
【０００６】
変更されたウェブページを判定するためのシステム及び方法が開示される。例示的な一態様によれば、複数のマルウェア・トリガー・コードのフラグメントを悪意のあるソフトウェアの少なくとも1つ構成ファイルから抽出する工程と、複数のマルウェア・トリガー・コードのフラグメントをテンプレートページへ加え検証ウェブページを作成する工程と、検証ウェブページの初期状態に関連するデータをデータベースに格納する工程と、検証ウェブページを開き、検証ウェブページの開かれた状態に関連するデータを確認する工程と、初期状態に関連するデータと検証ウェブページの開かれた状態に関連するデータを比較する工程と、初期状態に関連するデータ及び検証ウェブページの開かれた状態に関連するデータの検出差異に基づき、検証ウェブページの少なくとも１つの変更されたコードのフラグメントを特定する工程とを含む。
【０００７】
一態様によれば、上記方法において、検証ウェブページを開く工程は、ウェブブラウザによって検証ウェブページを開くことによって行われる。
【０００８】
一態様によれば、検証ウェブページの作成工程は、ページの最大数の制限、全ページを合わせた場合の最大サイズの制限、1ページの最大サイズの制限、及び1500以下の文字を含むURLの長さの制限のうち少なくとも一つ以上に基づいて検証ウェブページを作成する工程を含む。
【０００９】
一態様によれば、上記方法は、悪意のあるソフトウェア構成ファイルのデータベースに、悪意のあるソフトウェアの少なくとも１つの構成ファイルを格納する工程を含む。
【００１０】
一態様によれば、上記方法は、ハードウェアプロセッサによって、検証ウェブページを作成するための少なくとも１つの構成ファイルを複数の基準に基づいて選択する工程を含む。
【００１１】
一態様によれば、複数の基準は、挿入コードの時間間隔および少なくとも１つの構成ファイルにおける頻度を含む。
【００１２】
一態様によれば、上記方法は、最も頻度の高い挿入コードを有する悪意のあるソフトウェアの少なくとも１つの構成ファイルからN個のフラグメントを選択することによって検証ウェブページを作成するために、複数のコードフラグメントを選択する工程を含み、数Nは検証ウェブページのサイズ制限に基づいて決定される。
【００１３】
一態様によれば、上記方法は、少なくとも１つの変更されたコードのフラグメント中のコードを、悪意のあるソフトウェアの挙動を分析するために、バーチャルマシンによって実行する工程を含む。
【００１４】
一態様によれば、上記方法は、検証ウェブページの少なくとも１つの変更されたコードのフラグメント中のURLコードをハードウェアプロセッサによって分析する工程と、ハードウェアプロセッサによって、少なくとも１つのフィッシングリソースへのリンクを特定する工程を含む。
【００１５】
別の例示的な態様によれば、システムは、悪意のあるソフトウェアによって変更されたウェブページを判定するために開示される。このような態様によれば、上記システムは、少なくとも１つのデータベースと、ハードウェアプロセッサを備える。上記少なくとも１つのデータベースは悪意のあるソフトウェアの少なくとも１つの構成ファイルを格納するように構成される。上記ハードウェアプロセッサは、複数のマルウェア・トリガー・コードのフラグメントを悪意のあるソフトウェアの少なくとも１つの構成ファイルから抽出し、複数のマルウェア・トリガー・コードのフラグメントをテンプレートページへ加えることによって検証ウェブページを作成し、検証ウェブページの初期状態に関連するデータを少なくとも１つのデータベースに格納し、検証ウェブページを開き検証ウェブページの開かれた状態に関連するデータを確認し、初期状態に関連するデータと検証ウェブページの開かれた状態に関連するデータを比較し、初期状態に関連するデータ及び検証ウェブページの開かれた状態に関連するデータの検出差異に基づき、検証ウェブページの少なくとも１つの変更されたコードのフラグメントを特定するように構成されている。
【００１６】
別の例示的な態様によれば、悪意のあるソフトウェアによって変更されたウェブページを判定するためのコンピュータ実行可能命令を格納する非一過性の記録媒体が開示される。このような態様によれば、複数のマルウェア・トリガー・コードのフラグメントを悪意のあるソフトウェアの少なくとも１つの構成ファイルから抽出する命令と、複数のマルウェア・トリガー・コードのフラグメントをテンプレートページへ加えることによって検証ウェブページを作成する命令と、検証ウェブページの初期状態に関連するデータをデータベースに格納する命令と、検証ウェブページを開き検証ウェブページの開かれた状態に関連するデータを確認する命令と、初期状態に関連するデータと検証ウェブページの開かれた状態に関連するデータを比較する命令と、初期状態に関連するデータ及び検証ウェブページの開かれた状態に関連するデータの検出差異に基づき、検証ウェブページの少なくとも１つの変更されたコードのフラグメントを特定する命令とが含まれる。
【００１７】
例示的態様における上記の簡単な概要は、本開示の基本的な理解を提供するのに役立つ。本概要は、すべての企図される態様の広範な概観ではなく、すべての態様の主要または重大な要素を特定することも意図しておらず、本開示における、任意又は全ての態様の範囲を線引きもしないということが意図される。その唯一の目的は、以下の開示のより詳細な説明の前置きとして簡略化された形式で1または複数の態様を提示することである。前述の達成のために、本開示の1つまたは複数の態様について、説明され、例示的に特許請求の範囲に示してある特徴を含む。
【図面の簡単な説明】
【００１８】
添付図面は、詳細な説明と共に、本明細書に組み込まれ、その一部を構成し、本開示における1つまたは複数の実施態様を示しており、それらの原理及び実装を説明するのに役立つ。
【００１９】
【図１】図1は、ウェブブラウザを利用するネットワークにおけるユーザの作業の一例を示す。
【図２】図2は、典型的な態様による、変更されたウェブページを判定するためのシステムのブロック図を示す。
【図３】図3は、典型的な態様による、変更されたウェブページを判定するための方法のフローチャートを示す。
【図４】図4は、例示的な一態様による、本開示のシステム及び方法を実施することが可能な汎用コンピュータシステムを表す。
【詳細な説明】
【００２０】
例示的な態様は、変更されたウェブページを判定するために、システム、方法、及びコンピュータプログラム製品に関連して本明細書に開示される。当業者は、以下の説明は単なる例示であり、決して限定であることを意図するものではないことを理解するであろう。他の態様は、本開示の利益を有する当業者にとって、容易に示唆となりえる。参照は、添付の図面に示されるように、現在の例示の態様の実装について詳細に説明するものである。同じ参照指標は、同一または同様の項目を参照するため、図面及び以下の説明の全体を通じて、可能な限り使用される。
【００２１】
以下の開示は、開示されるシステム及び方法の様々な態様を説明する際に用いられる定義及び概念である。
【００２２】
悪意のあるソフトウェアの「構成ファイル」は、悪意のあるソフトウェアの設定を格納するバイナリファイル（例えば、テキスト、XML、JSONなど）であり、該設定は、特にコマンド・サーバーのアドレス、攻撃対象のURLアドレス（または、それらのフラグメントやマスク）、実際のウェブページ挿入コードなどである。
【００２３】
「ウェブページ挿入コード」は、ユーザに表示されるウェブページへ悪意のあるソフトウェアによって挿入されるコードである。該コードは、ユーザデータの機密性に害（例えば、結果としてユーザが自身の口座のコントロールを失う可能性のあるフィッシング攻撃）、あるいはユーザへ金融上の害（例えば、オンライン決済を行う際に、振込先を置き換える）を与える可能性がある機能を通常備える。
【００２４】
図1は、ウェブブラウザを利用するネットワークにおけるユーザの作業の一例を示す。図示するように、コンピューティングデバイス120（パーソナルコンピュータ、携帯電話、ノートブックなど）上で作業するユーザ110は、サーバ130を利用し得る。サーバ130は、様々なウェブページを含むウェブサーバ、Eメールサーバ、及びデータベースサーバであってよい。一般に、ユーザ110は、Internet Explorer（登録商標）などのブラウザ140によってサーバ130にアクセスする。
【００２５】
上述のように、悪意のあるソフトウェア150は、ユーザ110のコンピューティングデバイス120上に存在し得る。悪意のあるソフトウェア150は、サーバ130から受信し、ブラウザ140上で開かれたウェブページに悪意あるコードを挿入し得る。
【００２６】
ユーザ110のコンピューティングデバイス120上に存在する悪意のあるソフトウェア150を検出するために、悪意のあるソフトウェア150の攻撃対象となり得るサイト及びネットワークリソースへリンクしているHTMLフラグメントを含むウェブページを利用することが可能である。一般に、ユーザ110のコンピューティングデバイス120上でウェブページを開いた後、悪意のあるソフトウェア150は挿入コードを追加してウェブページを変更する。開いた後にウェブページの状態は保存され、そしてその中の変更されたコードフラグメントが特定され得る。そのようなコードフラグメントが見つかった場合には、ユーザ110のコンピューティングデバイス120上に悪意のあるソフトウェア150が存在することを示唆している。ウェブページの変更についてより詳細な分析を行った後、悪意のあるソフトウェア150が存在するという決定が行われる。
【００２７】
図2は、典型的な態様による、変更されたウェブページを判定するためのシステムのブロック図を示す。典型的な態様においては、検証ウェブページ作成モジュール210は、テンプレートページ（例えば、標準のHTMLヘッダおよび種々の標準的なHTMLコードとテキスト要素を含むページ）から検証ウェブページを作成する。通常、検証ウェブページは、既知のウェブコード挿入マルウェアのアクティベーションを起動するものとして知られている典型的なコードである「<head><body input type="password">」などのテンプレートページのHTMLコードフラグメントを、モジュール210によって追加することにより作成される。
【００２８】
例示的な一態様において、HTMLコードフラグメントは、検証ウェブページ作成モジュール210によって、既知の悪意のあるソフトウェア150の構成ファイルから抽出され、以下でより詳細に説明するように検証ウェブページに追加され得る。続いて、ユーザのコンピュータ上で検証ウェブページが開かれている間に、ユーザのコンピュータ上に存在する悪意のあるソフトウェア150は、検証ウェブページへ自身のコードを挿入することによって検証ウェブページを変更し得る。
【００２９】
悪意のあるソフトウェアを起動し検証ウェブページを変更するために、悪意のあるソフトウェアは、URLアドレス中の必要なフラグメントおよび検証ウェブページ中の必要なフラグメントを見つけ出すことが必要である。そのため、ページフラグメントのそれぞれについて、アドレスフラグメントが、URLに追加され得る。例示的な一態様において、ウェブサイトアドレスおよびそのフラグメントは、既知のマルウェアの構成ファイルから検索することができる。アドレスフラグメントのいくつかの例は、制限されないが、銀行のウェブサイトを攻撃することが知られているマルウェアの構成ファイルに現れる銀行ウェブサイトのURL、または悪意のあるソフトウェアの構成ファイル中で示されているワード（例えば、ログイン、パスワードや認証データ）を含むURLである。
【００３０】
例示的な一態様において、検証ウェブページは、検証ウェブページ作成モジュール210によって作成されたいくつかのウェブページによって構成され得る。例示的な一態様において、検証ウェブページは、一定基準に基づき作成され得るものであり、該基準は、ウェブページ（テンプレート）の最大数の制限、全ページを合わせた場合の最大サイズの制限、1ページの最大サイズの制限、1500以下の文字を含むURLの長さの制限などである。
【００３１】
一態様によれば、悪意のあるソフトウェアの構成ファイルは、悪意のあるソフトウェア構成ファイルのデータベース215に格納され得る。検証ウェブページ作成モジュール210は、悪意のあるソフトウェア構成ファイルを選択するための基準を決定することが可能である。一態様によれば、該基準は、例えば、時間間隔（例えば、現在の日から6ヶ月）や、挿入コードの一般性（どのくらいの頻度で、マルウェア構成ファイルにおいてその特定の挿入コードに遭遇するか）といった1つ以上の基準であってよい。
【００３２】
例示的な一態様において、検証ウェブページ作成モジュール210は、最も頻度の高い挿入コードを有する悪意のあるソフトウェア構成ファイルからN個のフラグメントを選択する（数Nは、検証ウェブページのサイズの制限によって決定される）。例えば、基準「1ページの最大サイズの制限」がX（例えば、1024バイト）である基準に基づいて検証ウェブページを作成した場合には、フラグメントは、最も頻度の高い挿入コードを有する悪意のあるソフトウェア構成ファイルから選択され、基準によって指定されたサイズXを超えるまで検証ウェブページに追加される。挿入コードの一般性についてのデータは、悪意のあるソフトウェア構成ファイルのデータベース215に保存され得る。
【００３３】
例示的な一態様において、検証ウェブページ作成モジュール210は、検証ウェブページの作成時にユーザが作業しているサイトを確認する。例えば、特定の銀行のサイトを訪問した場合、検証ウェブページ作成モジュール210は、悪意のあるソフトウェア構成ファイルのデータベース215から、その銀行のユーザへの攻撃として使用されることが知られている既知の悪意のあるソフトウェアの構成ファイルを選択することができる。そして、例示的な一態様において、検証ウェブページは、悪意のあるソフトウェアの構成ファイルからさきほど選択されたフラグメントを用いて、モジュール210によって作成される。別の例示的な態様では、検証ウェブページの作成時に、最も一般的な/頻度の高い挿入コードを有する悪意のあるソフトウェアの構成ファイルからのフラグメントと同様に、悪意のあるソフトウェアの構成ファイルから選択されたフラグメントが用いられる。
【００３４】
例示的な一態様において、検証ウェブページの構成のために、検証ウェブページ作成時にモジュール210はユニークフラグメントのみが追加され得る（すなわち、２つの同一フラグメントは作成されるウェブページ上に存在するべきではない）。しかしながら、２つの同一フラグメントが同じ検証ウェブページ上に存在することは、例示的な本態様によるシステムの働きを妨げるものではないことは理解されるべきである。
【００３５】
また、基準の変更に応じて、検証ウェブページはモジュール210によって任意（ランダム）に変更され得るが、その最終的な外観は重要ではない。検証ウェブページが、マルウェア・トリガー・コードのフラグメントを含むことのみが重要である。例示的な本態様においては、これらのフラグメントの順番および書式（例えば、スペース、引用符、コメント）は重要ではない。
【００３６】
また、例示的な本態様においては、作成された検証ウェブページは、検証ウェブページ作成モジュール210によって、検証ウェブページ処理モジュール220および検証ウェブページ分析モジュール230に送信され得る。
【００３７】
例示的な一態様において、検証ウェブページ処理モジュール220は、検証ウェブページを検証ウェブページ作成モジュール210から受信し開く。一態様では、ウェブページは、ウェブブラウザを用いて開かれ得る。さらに別の態様では、検証ウェブページ処理モジュール220自身が検証ウェブページを開く。
【００３８】
一態様によれば、検証ウェブページ処理モジュール220は、ページをユーザに表示しない。別の態様においては、検証ウェブページは、例えば、AJAX（非同期JavascriptおよびXML）などの手段によって非同期的に送信される。検証ウェブページの正しい書式が保証されていないため、ページをユーザに表示することは重要ではない。
【００３９】
例示的な一態様において、検証ウェブページ処理モジュール220は、ユーザのウェブサイトへのアクセスを遮断し、アクセスウェブサイトのURLアドレスを検証ウェブページ作成モジュール210へ送信する。
【００４０】
また、検証ウェブページ処理モジュール220は、ユーザに警告およびユーザとの相互作用する様々なメカニズム、例えば、ユーザにテキストや音声メッセージを送信するメカニズムや、ユーザのデータ入力を遮断するメカニズムを備えていてよい。
【００４１】
悪意のあるソフトウェアは、ユーザのコンピュータ上でのウェブページの読込み中、およびユーザのコンピュータのブラウザでウェブページを開く瞬間にコードを挿入することが多い。そのため、検証ウェブページを開いた後、検証ウェブページ処理モジュール220は、開いたあとの検証ウェブページの状態を保存し、検証ウェブページ分析モジュール230にそのコードを送信してもよい。例示的な一態様において、状態データは、クライアント側のブラウザがページ外観を作成するために使用するHTMLやJavaScriptなどの検証ウェブページのコードを含み得る。別の例示的な態様では、状態データは、ページ上に存在する様々なリソース（例えば、画像、ビデオ、オーディオ、およびその他のコンテンツ）と同様に、検証ウェブページのコードを含んでよい。
【００４２】
検証ウェブページ分析モジュール230は、検証ウェブページ作成モジュール210から受信した元の（最初の）ウェブページと、検証ウェブページ処理モジュール220から受信したページを比較し、検証ウェブページの状態の変更を特定するように構成されている。例えば、検証ウェブページは、ブラウザでウェブページを開く瞬間に変更され（例えば、GoogleChrome（登録商標）でのコンテンツターゲット広告）、その変更は、ブラウザ拡張機能（広告ブロッキングモジュール）、セキュリティアプリケーション（ペアレンタルコントロールルールに従った一定フラグメントのブロッキング）、もしくはその他によるものであってもよい。
【００４３】
ウェブページの変更を確認後、検証ウェブページ分析モジュール230は、その変更が検証ウェブページ作成モジュール210によって検証ウェブページに以前追加されたフラグメントに関するものであるかを判定する。例示的な一態様において、検証ウェブページ分析モジュール230は、ハッシュのターム中のフラグメントのコード（例えば、SHA1）を比較する。例えば、ハッシュは、算出され、検証ウェブページ処理モジュール220から受信したページのフラグメント用ハッシュであって、検証ウェブページ作成モジュール210から受信した検証ウェブページの各フラグメントについて比較される。検証ウェブページ分析モジュール230がそのようなフラグメントの変更を検出した場合、検証ウェブページは疑わしいとみなされ、マルウェア分析のために悪意のあるソフトウェア識別モジュール240に送信され得る。
【００４４】
例示的な一態様において、悪意のあるソフトウェア識別モジュール240は、検証ウェブページが悪意のあるソフトウェアによって変更されているか判定するように構成される。例示的な一態様において、ページは、悪意のあるソフトウェア挿入コードの検出を可能にするための助けとして、アンチウイルスデータベース250と照合され得る。一般に、アンチウイルスデータベース250は、例示的な一態様において悪意のあるソフトウェア識別モジュール240によるファイルのシグネチャベースおよび/またはヒューリスティック分析によって使用されたデータを格納する。状況はウェブページが変更されていた場合に生じ得るが、この変更の原因は不明である（おそらく、新しいマルウェア）。決定的な結論を出すのは難しいが、疑わしいウェブページについてユーザに警告することが可能であり、ページの状態データ（例えば、そのコードとリソース）をモジュール240又はリモートアンチウイルスサーバによるマルウェアの詳細分析のために送信することも可能である。悪意のあるソフトウェア識別モジュール240が検証ウェブページの変更を検出した場合、検証ウェブページがモジュール220によって開かれたコンピュータ上に悪意のあるソフトウェアが存在すると結論付けることが可能である。別の態様においては、検証ウェブページはセキュリティの専門家245によって分析されてもよい。
【００４５】
例示的な一態様において、悪意のあるソフトウェア識別モジュール240は、挿入コードの挙動分析のために、保護された環境、エミュレータまたはバーチャルマシン260を使用することが可能である。例えば、追加のコードが変更されたフラグメント中に見出された場合（例えば、JavaScript言語で）、このコードは、悪意のあるソフトウェア識別モジュール240による挙動分析のためにバーチャルマシン内で実行される。
【００４６】
例示的な一態様において、悪意のあるソフトウェア識別モジュール240は、変更されたフラグメントに追加されたURLアドレスを分析し、フィッシングリソースへのリンクを見つけ出すことが可能である。さらに別の態様では、悪意のあるソフトウェアによって実行された変更であると判明した場合、悪意のあるソフトウェア識別モジュール240は、検証ウェブページ処理モジュール220にページ上の判明した変更を報告する。検証ウェブページ処理モジュール220は、例えば、ユーザのデータを保護するために、次にユーザにその変更について報告するか、キーボード入力を遮断する。
【００４７】
図3は、典型的な態様による、変更されたウェブページを判定するための方法のフローチャートを示す。図示するように、初期の工程310において、検証ウェブページは、テンプレートページにマルウェアトリガーHTMLコードフラグメントを追加する検証ウェブページ作成モジュール210によって作成される。コードフラグメントは、例えば、図２に関しての記載における基準に基づき追加される。検証ウェブページ作成時、データベース215に格納されていた悪意のあるソフトウェアの構成ファイルが例えば、一般的挿入コードおよびそのトリガーであるかを識別するために用いられる。
【００４８】
次に、工程315において、検証ウェブページの初期状態が保存され、検証ウェブページ分析モジュール230に送信される。そして、工程320において、検証ウェブページが検証ウェブページ処理モジュール220によって開かれる。例示的な一態様において、検証ウェブページはウェブブラウザを使用して開かれる。別の例示的な態様では、検証ウェブページ処理モジュール220が検証ウェブページを開く。次に、工程330では、検証ウェブページ処理モジュール220の助けによって、検証ウェブページの開かれた状態が保存され、検証ウェブページ分析モジュール230に送信される。
【００４９】
そして、工程340においては、変更されたウェブページフラグメントを確認するために、保存された検証ウェブページの状態が検証ウェブページ分析モジュール230によって分析される。この処理中に、検証ウェブページの初期状態のコードは開かれた後の検証ウェブページの状態のコードと比較される。変更されたコードのフラグメントが検出された場合、工程350においては、悪意のあるソフトウェア識別モジュール240は、検証ウェブページが悪意のあるソフトウェアによって変更されたのかを判定する。例示的な一態様において、検証ウェブページは、悪意のあるソフトウェア挿入コードを検出することが可能な特別なデータベース250を用いて確認される。
【００５０】
別の例示的な態様おいては、検証ウェブページはセキュリティの専門家245によって分析されてよい。さらに別の例示的な態様においては、検証ウェブページに挿入されたコードの挙動分析のために保護された環境、エミュレータ又はバーチャルマシン260が用いられる。例示的な一態様において、変更されたフラグメントに追加されたURLコードは分析され、フィッシングリソースへのリンクが特定される。検出された場合には、検証ウェブページ処理モジュール220によってテンプレートページを開くのに用いられたコンピュータ上に悪意のあるソフトウェアが存在すると結論付けられる。
【００５１】
図4は、例示的な一態様による、本開示のシステム及び方法を実施することが可能な汎用コンピュータシステム（パーソナルコンピュータまたはサーバであってよい）を表す。示されているように、コンピュータシステムは、中央処理装置21と、システムメモリ22と、中央処理装置21と関連するメモリを含む様々なシステムコンポーネントに接続しているシステムバス23とを備える。システムバス23は、先行技術から知られている任意のバス構造に類似であってよく、他のバスアーキテクチャと相互作用することが可能なバスメモリまたはバスメモリコントローラ、周辺バス、ローカルバスを含んでよい。システムメモリは、固定メモリ（ROM）24及びランダムアクセスメモリ（RAM）25を含む.基本入力/出力システム（BIOS）26は、ROM24を使用したオペレーティングシステムの読み込み時などのパーソナルコンピュータ20の要素間の情報伝達を保証する基本的手順を含む。
【００５２】
パーソナルコンピュータ２０は、同様に、データを読み込み及び書き込むためにハードディスク２７、リムーバル磁気ディスク２９に読み取り及び書き込みするために磁気ディスクドライブ２８及びリムーバル光学ディスクドライブ３１（ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ及び別の光学情報メディア）を読み取り及び書き込みするために光学ドライブ３０を含む。ハードディスク２７、磁気ディスクドライブ２８及び光学ドライブ３０は、ハードディスクインターフェース３２、磁気ディスクインターフェース３３及び光学ドライブインターフェース３４それぞれを介して、システムバス２３に接続されている。ドライブ及び対応するコンピュータ情報メディアは、パーソナルコンピュータ２０における、コンピュータ命令、データ構造、プログラムモジュール及び別のデータを記憶するために、電力的に独立しているモジュールである。
【００５３】
本開示は、ハードディスク２７、リムーバブル磁気ディスク２９及びリムーバブル光学ディスク３１を使用するシステムの実装を提供するが、別のタイプのコンピュータ情報媒体５６の採用が可能であることが理解されるべきであり、それは、コンピュータによって読み取り可能な形式でデータを格納することができるもの（半導体ドライブ、フラッシュメモリカード、デジタルディスク、ランダムアクセスメモリ（ＲＡＭ）など）であり、それは、コントローラ５５を介してシステムバス２３に接続されている。
【００５４】
コンピュータ20は、ファイルシステム36（記録されるシステム35はここに保持される）、さらに、追加プログラム・アプリケーション37、他のプログラムモジュール38及びプログラムデータ39を備える。ユーザは、入力デバイス（キーボード40、マウス42）を用いて、パーソナルコンピュータ20にコマンドと情報を入力することが可能である。他の入力デバイス（図示せず）は、マイクロフォン、ジョイスティック、ゲームコントローラ、スキャナ、等を用いることができる。そのような入力デバイスは、通常コンピュータシステム20に、シリアルポート46を介して、接続され、それは、順に、システムバスに接続されるが、それらは、他の方法で、例えば、パラレルポート、ゲームポート及びユニバーサルシリアルバス（USB）の助けを借りて、接続される。モニター47又は他の種類のディスプレイデバイスも、ビデオアダプター48等のインターフェースを介してシステムバス23に接続される。モニター47に加えて、パーソナルコンピュータは、ラウドスピーカー、プリンタ等他の周辺外部デバイス（図示せず）に備えてもよい。
【００５５】
パーソナルコンピュータ20は、1つ又は複数のリモートコンピュータ49とのネットワーク接続を用いて、ネットワーク環境で操作できる。リモートコンピュータ（またはコンピュータ）49も、図４に示すように、前述の要素（パーソナルコンピュータ20の特質を説明したもの）の大部分又は全てを有するパーソナルコンピュータ又はサーバである。他のデバイスも、ルータ、ネットワーク局、ピアデバイス又は他のネットワークノード等、コンピュータネットワークに存在してもよい。
【００５６】
ネットワーク接続は、ローカル・エリア・コンピュータ・ネットワーク（LAN）50、及びワイドエリア・コンピュータ・ネットワーク（WAN）を形成することができる。そのようなネットワークは、企業コンピュータネットワーク又は社内ネットワークで使用され、それらは、概してインターネットアクセスを有している。LAN又はWANネットワークで、パーソナルコンピュータ20は、ネットワークアダプター又はネットワークインターフェース51を介して、ローカル・エリア・ネットワーク50に接続される。ネットワークが用いられる場合、パーソナルコンピュータ20は、インターネット等のワイド・エリア・ネットワークでのコミュニケーションを提供するために、モデム54又は他のモジュールを採用する。モデム54は、内部的又は外部的デバイスであり、シリアルポート46によって、システムバス23と接続される。ネットワーク接続は、一例であり、ネットワークの正確な構成を示す必要はないことを留意されたい。すなわち、実際には、技術的な通信モジュールによる、あるコンピュータと他のコンピュータとの接続を確立する他の方法がある。
【００５７】
様々な態様において、本明細書で説明するシステム及び方法は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組み合わせで実現されてもよい。ソフトウェアで実装される場合、本方法は、非一時的なコンピュータ可読媒体の1つ又は複数の命令又はコードとして格納されてもよい。コンピュータ可読媒体は、データ記憶装置を含む。例として、限定するものではないが、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROM、フラッシュメモリ、又は、電気的、磁気的、又は他の種類の光学記憶媒体を備えてもよい。それは、命令又はデータ構造の形式で、所望のプログラムコードを搬送又は格納されてもよく、且つ、汎用コンピュータのプロセッサにアクセスできる。
【００５８】
様々な側面で、本開示に記載されたシステム及び方法はモジュールの観点から理解することが可能である。本明細書で使用される用語"モジュール"は、特定用途向け集積回路（ASIC）又はフィールド・プログラマブル・ゲート・アレイ（FPGA）（例えば、ハードウェアとソフトウェアの組み合わせ）などによって、ハードウェアを用いて実装される、実世界のデバイス、構成要素、又は構成要素の配置を意味している。例えば、マイクロプロセッサシステム及びジュールの機能を実装するための命令セットによって、それは、（実行時）マイクロプロセッサシステムを専用機に変換する。モジュールも、これらの組み合わせとして実装されてもよく、ハードウェア単体で容易である特定の機能で、及び、ハードウェアとソフトウェアの組み合わせによって容易である他の機能で実装されてもよい。ある実施態様で、モジュールの少なくとも一部、及び、場合によっては、全てが、汎用コンピュータ（上記、図４により詳細に説明したもの等）のプロセッサで実行することができる。したがって、各モジュールは、様々な適切である構成で実現することができ、本明細書において例示される任意の特定の実装に限定されるものではない。
【００５９】
明瞭にするために、本態様における繰り返される機能の全てが、本明細書に開示されるわけではない。本開示の任意で実際の実装における開発で、多数の実装固有の決定が、開発者の特定の目標を達成するために、成されなければならないことが理解されるであろう。これらの具体的な目標は、実装及び開発者ごとに変化するであろう。そのような開発努力は複雑で時間がかかるかもしれないことが、それにもかかわらず、本開示の利益を有する当業者にとっては、エンジニアにとっては日常の仕事であることが、理解されるであろう。
【００６０】
さらに、本明細書で使用される表現又は用語は、説明の目的のためであり、制限を目的としていないことを理解すべきである。本明細書の用語又は表現は、関連技術での熟練の知識と組み合わせて、本明細書に提示される教示及び指針に照らして当業者によって解釈されるべきである。さらに、明示的記載がない限り、本明細書又は特許請求の範囲における任意の用語に対して、一般的でない又は特別な意味を帰することは意図されていない。
【００６１】
本明細書に開示される様々な態様は、例示により本明細書に言及される既知のモジュールに、現在及び将来の既知の均等物を包含する。さらに、態様及び用途を図示し、且つ、説明してきたが、本明細書に開示された発明の概念から逸脱することなく、上述したよりも多くの改変が可能であることは、この開示の利益を有する当業者には明らかであろう。
【図１】
0006371790.tif 000002
【図２】
0006371790.tif 000003
【図３】
0006371790.tif 000004
【図４】
0006371790.tif 000005