(57)【要約】      （修正有）【課題】ウェブリソースの変更を検出するシステムおよび方法を提供する。【解決手段】ウェブリソースの整合性を検証するためのスクリプトを生成する方法は、そのウェブリソースのオブジェクトの特性を計算する過程の記述である。スクリプトを生成し２１０、ウェブリソースにスクリプトを埋め込み２２０、ウェブリソースを実行し２３０、その後ウェブリソースの畳み込みを計算する２４０。そして計算された少なくとも１つの畳み込みに基づいてウェブリソースの画像を生成する２５０。ウェブリソースの画像はウェブリソースのコンテンツのベクトル表現である。ウェブリソースの画像の生成２５０と、ウェブリソースの変更の特性の決定２６０に基づいて、ウェブリソースの変更に関して決定を下す２７０。【選択図】図２
2019194832.tif 000002
【特許請求の範囲】
【請求項１】
ウェブリソースの変更を検出する方法であって、
前記ウェブリソースの構造およびコンテンツに関するデータに基づいて、前記ウェブリソースの整合性を検証するためのスクリプトをハードウェアプロセッサーによって生成することであって、前記スクリプトは、前記ウェブリソースのオブジェクトの特性を計算する過程の記述である、生成することと、
生成された前記スクリプトをハードウェアプロセッサーによって前記ウェブリソースに埋め込むことと、
前記ウェブリソースが実行された後に、前記ウェブリソースの少なくとも１つの畳み込みをハードウェアプロセッサーによって受信することであって、前記畳み込みは、実行されている前記ウェブリソースに埋め込まれた前記ウェブリソースの整合性を検証するための前記スクリプトに従って計算される、受信することと、
計算された前記少なくとも１つの畳み込みに基づいて、前記ウェブリソースの画像をハードウェアプロセッサーによって生成することであって、前記ウェブリソースの前記画像は前記ウェブリソースのコンテンツのベクトル表現である、生成することと、
前記ウェブリソースの変更の決定された特性に基づいて、前記ウェブリソースの前記変更に関する決定をプロセッサーによって下すことと、を含む方法。
【請求項２】
前記ウェブリソースの前記変更の前記特性は、整合性を検証するためのトレーニングされたモデルを利用して、前記ウェブリソースの生成された前記画像に基づいて決定され、整合性を検証するための前記モデルは、前記ウェブリソースの変更の確率を計算するための一連の規則である、請求項１に記載の方法。
【請求項３】
整合性を検証するための前記モデルは、以前に解析されたウェブリソース、その実行前に解析されている前記ウェブリソース、に少なくとも基づいて生成された前記ウェブリソースの画像に基づいてさらにトレーニングされる、請求項２に記載の方法。
【請求項４】
前記ウェブリソースの前記オブジェクトの前記特性は、前記ウェブリソースのすべてのオブジェクトのセットのうち前記ウェブリソースの前記オブジェクトを記述するパラメーター、前記ウェブリソースの前記オブジェクトの畳み込みの形成規則、および前記ウェブリソースの前記オブジェクトの畳み込み、のうちの１つ以上を含む、請求項１に記載の方法。
【請求項５】
前記ウェブリソースの前記オブジェクトの畳み込みは、前記ウェブリソースの前記オブジェクトを記述するパラメーターの畳み込み、および前記ウェブリソースの前記オブジェクトに含まれるデータの畳み込み、のうちの１つを含む、請求項１に記載の方法。
【請求項６】
前記ウェブリソースの実行は、前記ウェブリソースに埋め込まれた前記ウェブリソースの整合性を検証するための前記スクリプトを実行すること、前記ウェブリソースを解析すること、前記ウェブリソースを解釈すること、および前記ウェブリソースを視覚化すること、のうちの１つを含む、請求項１に記載の方法。
【請求項７】
前記ウェブリソースの解析は、前記ウェブリソースが実行されるオンラインセッション中に実行される、請求項６に記載の方法。
【請求項８】
前記ウェブリソースの前記オブジェクトは、スクリプト、フォーム、ＨＴＭＬデータ、ＸＨＲクエリ、およびＤＯＭイベントのうちの１つ以上を含む、請求項１に記載の方法。
【請求項９】
前記ウェブリソースに埋め込まれた前記ウェブリソースの整合性を検証するための前記スクリプトは、前記ウェブリソースから少なくとも１つのオブジェクトを選択する、請求項１に記載の方法。
【請求項１０】
前記ウェブリソースの前記変更の前記特性は、前記ウェブリソースの以前に指定されたユーザーのグループおよび前記ウェブリソースの特定のユーザーのうちの少なくとも１つに関して前記ウェブリソースが変更された確率、前記ウェブリソースの前記変更のパラメーター、前記ウェブリソースの変更方法、および前記ウェブリソースの前記変更に使用されるデータ、の１つ以上を含む、請求項１に記載の方法。
【請求項１１】
ウェブリソースの変更を検出するシステムであって、
ハードウェアプロセッサーを備え、前記ハードウェアプロセッサーは、
前記ウェブリソースの構造およびコンテンツに関するデータに基づいて、前記ウェブリソースの整合性を検証するためのスクリプトを生成し、前記ウェブリソースの整合性を検証するための前記スクリプトは、前記ウェブリソースのオブジェクトの特性を計算する過程の記述であり、
生成された前記スクリプトを前記ウェブリソースに埋め込み、
前記ウェブリソースが実行された後に、前記ウェブリソースの少なくとも１つの畳み込みを受信し、前記畳み込みは、実行されている前記ウェブリソースに埋め込まれた前記ウェブリソースの整合性を検証するための前記スクリプトに従って計算され、
計算された前記少なくとも１つの畳み込みに基づいて、前記ウェブリソースの画像を生成し、前記ウェブリソースの前記画像は前記ウェブリソースの前記コンテンツのベクトル表現であり、
前記ウェブリソースの変更の決定された特性に基づいて、前記ウェブリソースの前記変更に関して決定を下すように構成される、システム。
【請求項１２】
前記ウェブリソースの前記変更の前記特性は、整合性を検証するためのトレーニングされたモデルを利用して、前記ウェブリソースの生成された前記画像に基づいて決定され、整合性を検証するための前記モデルは、前記ウェブリソースの変更の確率を計算するための一連の規則である、請求項１１に記載のシステム。
【請求項１３】
整合性を検証するための前記モデルは、以前に解析されたウェブリソースまたはその実行前に解析されている前記ウェブリソースの１つ以上に少なくとも基づいて生成された前記ウェブリソースの画像に基づいてさらにトレーニングされる、請求項１２に記載のシステム。
【請求項１４】
前記ウェブリソースの前記オブジェクトの前記特性は、前記ウェブリソースのすべてのオブジェクトのセットのうち前記ウェブリソースの前記オブジェクトを記述するパラメーター、前記ウェブリソースの前記オブジェクトの畳み込みの形成規則、および前記ウェブリソースの前記オブジェクトの畳み込み、のうちの１つ以上を含む、請求項１１に記載のシステム。
【請求項１５】
前記ウェブリソースの前記オブジェクトの畳み込みは、前記ウェブリソースの前記オブジェクトを記述するパラメーターの畳み込み、および前記ウェブリソースの前記オブジェクトに含まれるデータの畳み込み、のうちの１つを含む、請求項１１に記載のシステム。
【請求項１６】
前記ウェブリソースの実行は、前記ウェブリソースに埋め込まれた前記ウェブリソースの整合性を検証するための前記スクリプトを実行すること、前記ウェブリソースを解析すること、前記ウェブリソースを解釈すること、および前記ウェブリソースを視覚化すること、のうちの１つを含む、請求項１１に記載のシステム。
【請求項１７】
前記ハードウェアプロセッサーは、前記ウェブリソースが実行されるオンラインセッション中に前記ウェブリソースの解析を実行するようにさらに構成される、請求項１６に記載のシステム。
【請求項１８】
前記ウェブリソースの前記オブジェクトは、スクリプト、フォーム、ＨＴＭＬデータ、ＸＨＲクエリ、およびＤＯＭイベントのうちの１つ以上を含む、請求項１１に記載のシステム。
【請求項１９】
前記ウェブリソースに埋め込まれた前記ウェブリソースの整合性を検証するための前記スクリプトは、前記ウェブリソースから少なくとも１つのオブジェクトを選択する、請求項１１に記載のシステム。
【請求項２０】
前記ウェブリソースの前記変更の前記特性は、前記ウェブリソースの以前に指定されたユーザーのグループおよび前記ウェブリソースの特定のユーザーのうちの少なくとも１つに関して前記ウェブリソースが変更された確率、記ウェブリソースの前記変更のパラメーター、前記ウェブリソースの変更方法、および前記ウェブリソースの前記変更に使用されるデータ、の１つ以上を含む、請求項１１に記載のシステム。
【請求項２１】
ウェブリソースの変更を検出するための命令を記憶する非一時的コンピューター可読媒体であって、
前記ウェブリソースの構造およびコンテンツに関するデータに基づいて、前記ウェブリソースの整合性を検証するためのスクリプトを生成し、前記ウェブリソースの整合性を検証するための前記スクリプトは、前記ウェブリソースのオブジェクトの特性を計算する過程の説明であり、
生成された前記スクリプトを前記ウェブリソースに埋め込み、
前記ウェブリソースが実行された後に、前記ウェブリソースの少なくとも１つの畳み込みを受信し、前記畳み込みは、実行されている前記ウェブリソースに埋め込まれた前記ウェブリソースの整合性を検証するための前記スクリプトに従って計算され、
計算された前記少なくとも１つの畳み込みに基づいて、前記ウェブリソースの画像を生成し、前記ウェブリソースの前記画像は前記ウェブリソースの前記コンテンツのベクトル表現であり、
前記ウェブリソースの変更の決定された特性に基づいて、前記ウェブリソースの前記変更に関して決定を下すための命令を含む、非一時的コンピューター可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示はアンチウイルス技術に関し、より具体的にはウェブリソースの変更を検出するシステムおよび方法に関する。
【背景技術】
【０００２】
パーソナルコンピューター、ノートブック、タブレット、スマートフォンなどは、ここ数十年の間に広く使用されるようになった。この広範な使用は、様々な活動分野におけるそのような装置の使用および様々な多くの問題（インターネットサーフィンから銀行振込および電子文書の管理まで）を解決するための強力な動機付けとなっている。コンピューティング装置およびこれらの装置上で実行されるソフトウェアの数の増加と並行して、悪意のあるプログラムの数もそれに比例して増加している。
【０００３】
現在、様々なネットワークに広がっている無数の悪意のあるプログラムおよび開発中の他の悪意のあるプログラムがある。これらの悪意のあるプログラムの中には、ユーザーの装置から個人情報や機密情報（ログインやパスワード、銀行取引情報、電子文書など）を盗むものがある。他にも、分散サービス妨害（Distributed  Denial  of  Service：ＤＤＯＳ）攻撃のような攻撃のために、または他のコンピューターもしくはコンピューターネットワーク上で総当たり方式によりパスワードを調べるために、ユーザーの装置をいわゆるボットネットに変えるプログラムがある。さらに他のプログラムは、煩わしい広告、有料購読、有料電話番号へのＳＭＳの送信などを通じて有料コンテンツをユーザーに提案する。
【０００４】
悪意のあるプログラムをユーザーのコンピューターに埋め込む方法も様々である。一部のプログラムは、サーバーやクライアント（ユーザーのコンピューター）にひそかに（ソフトウェアの脆弱性を利用するなどして）、または公然と（例えば、ユーザー自身の取り組みによってソーシャルエンジニアリング技術を使用して）ダウンロード、インストールされる。サーバーとクライアント間で送信され第三者によりインターセプトされるデータに自分自身を埋め込むものもある。
【０００５】
ウェブリソース（銀行サイト、サーバーへの問い合わせ結果など）は、悪意のあるプログラムの攻撃の一般的なオブジェクトのいくつかであり、攻撃の標的は機密ユーザーデータ（ログインおよびパスワード、アカウント番号など）、コンピューティングリソース（ＤＤＯＳ攻撃への参加などの他のコンピューターへの攻撃、暗号通貨のマイニングなどの不正な計算などに使用される）などである。前述の攻撃の活動は、サーバーとクライアント間で送信されているデータの置き換え（例えば、偽の個人のアカウントによる個人の銀行口座のコンテンツの置き換え、悪意のあるスクリプトの埋め込みなど）から始まる。
【０００６】
前述のような攻撃との闘いにおける主な要素は、送信されているウェブリソースのデータの変更の決定であり、それには以下を含む様々な技術が使用される。
・シグネチャー解析、これにより、事前定義されたウェブリソースのテンプレートとの比較に基づいてウェブリソースの変更を決定しようとする。
・ヒューリスティック解析、これにより、以前に指定されたウェブリソースの形成規則を満たしているかを確認することに基づいて、ウェブリソースの変更を決定しようとする。
・ブラックリストとホワイトリスト、これにより、ウェブリソースへのリンクやアドレスの挿入を決定しようとする。
【０００７】
本開示は、一態様では、ウェブサイトの未知の変更を検出することができるシステムおよび方法を説明する。多くの場合、既知の解析技術では、個人のユーザーデータがクライアントからサーバーに送信されることがある（これはウェブサイトの要素に含まれることがある）。このようなデータ転送は潜在的に脆弱であり、国の法律によっては違法と見なされる可能性がある。
【０００８】
本開示は、ウェブリソースの変更を検出するシステムおよび方法を説明する。
【発明の概要】
【０００９】
本開示は、情報セキュリティを提供する方法およびシステムを説明する。本開示の一態様によれば、ウェブリソースの画像を解析することによってウェブリソースが変更されたと決定することで、技術的結果が達成される。
【００１０】
例示的な方法は、ウェブリソースの構造およびコンテンツに関するデータに基づいて、ウェブリソースの整合性を検証するためのスクリプトを生成することであって、スクリプトは、そのウェブリソースのオブジェクトの特性を計算する過程の記述である、生成することと、生成されたスクリプトをウェブリソースに埋め込むことと、ウェブリソースが実行された後に、ウェブリソースの少なくとも１つの畳み込みを受信することであって、畳み込みは、実行されているウェブリソースに埋め込まれたウェブリソースの整合性を検証するためのスクリプトに従って計算される、受信することと、計算された少なくとも１つの畳み込みに基づいて、ウェブリソースの画像を生成することであって、ウェブリソースの画像はウェブリソースのコンテンツのベクトル表現である、生成することと、ウェブリソースの変更の決定された特性に基づいて、ウェブリソースの変更に関する決定をプロセッサーによって下すことと、を含む。
【００１１】
さらに別の態様では、ウェブリソースの変更の特性は、整合性を検証するためのトレーニングされたモデルを利用して、ウェブリソースの生成された画像に基づいて決定され、整合性を検証するためのモデルは、ウェブリソースの変更の確率を計算するための一連の規則である。
【００１２】
別の態様では、整合性を検証するためのモデルは、以前に解析されたウェブリソース、その実行前に解析されているウェブリソース、に少なくとも基づいて生成されたウェブリソースの画像に基づいてさらにトレーニングされる。
【００１３】
さらに別の態様では、ウェブリソースのオブジェクトの特性は、そのウェブリソースのすべてのオブジェクトのセットのうち当該ウェブリソースのオブジェクトを記述するパラメーター、ウェブリソースのオブジェクトの畳み込みの形成規則、およびウェブリソースのオブジェクトの畳み込み、のうちの１つ以上を含む。
【００１４】
別の態様では、ウェブリソースのオブジェクトの畳み込みは、ウェブリソースのオブジェクトを記述するパラメーターの畳み込み、およびウェブリソースのオブジェクトに含まれるデータの畳み込み、のうちの１つを含む。
【００１５】
さらに別の態様では、ウェブリソースの実行は、ウェブリソースに埋め込まれたウェブリソースの整合性を検証するためのスクリプトを実行すること、ウェブリソースを解析すること、ウェブリソースを解釈すること、およびウェブリソースを視覚化すること、のうちの１つを含む。
【００１６】
別の態様では、ウェブリソースの解析は、ウェブリソースが実行されるオンラインセッション中に実行される。
【００１７】
別の態様では、ウェブリソースのオブジェクトは、スクリプト、フォーム、ＨＴＭＬデータ、ＸＨＲクエリ、およびＤＯＭイベントのうちの１つ以上を含む。
【００１８】
別の態様では、ウェブリソースに埋め込まれたウェブリソースの整合性を検証するためのスクリプトは、ウェブリソースから少なくとも１つのオブジェクトを選択する。
【００１９】
別の態様では、ウェブリソースの変更を検出するシステムが開示される。このシステムはハードウェアプロセッサーを備え、このハードウェアプロセッサーは、ウェブリソースの構造およびコンテンツに関するデータに基づいて、ウェブリソースの整合性を検証するためのスクリプトを生成し、ウェブリソースの整合性を検証するためのスクリプトは、そのウェブリソースのオブジェクトの特性を計算する過程の記述であり、生成されたスクリプトをウェブリソースに埋め込み、ウェブリソースが実行された後に、ウェブリソースの少なくとも１つの畳み込みを受信し、畳み込みは、実行されているウェブリソースに埋め込まれたウェブリソースの整合性を検証するためのスクリプトに従って計算され、計算された少なくとも１つの畳み込みに基づいて、ウェブリソースの画像を生成し、ウェブリソースの画像はウェブリソースのコンテンツのベクトル表現であり、ウェブリソースの変更の決定された特性に基づいて、ウェブリソースの変更に関して決定を下すように構成される。
【００２０】
別の態様では、本明細書で開示されるシステムおよび方法の態様によるウェブリソースの変更を検出するための命令を記憶する非一時的コンピューター可読媒体が開示される。
【００２１】
上述の例示的な態様の簡潔な概要は、本開示の基本的な理解に役立つ。この概要は、考えられるすべての態様の広範な概要ではなく、すべての態様の主要または重要な要素を特定することも、本開示のいずれかまたはすべての態様の範囲を描写することも意図されていない。その唯一の目的は、以下のより詳細な開示の説明の前置きとして、１つ以上の態様を簡潔に提示することである。前述の目的を達成するために、本開示の１つ以上の態様は、特許請求の範囲で説明され例示的に指摘された特徴を含む。
【図面の簡単な説明】
【００２２】
本明細書に組み込まれてその一部を構成する添付の図面は、本開示の１つ以上の例示的な態様を示し、発明を実施するための形態とともに、それらの原理および実行を説明するのに役立つ。
【００２３】
【図１】図１は、ウェブリソースの変更を検出するシステムの構造図の一例を示す図である。
【図２】図２は、ウェブリソースの変更を検出する方法の構造図の一例を示す図である。
【図３】図３は、汎用コンピューターシステム、パーソナルコンピューター、またはサーバーの一例を示す図である。
【発明を実施するための形態】
【００２４】
本明細書において、例示的な態様は、ウェブリソースの変更を検出するシステム、方法、およびコンピュータープログラム製品に関して説明される。当業者は、以下の説明が例示的なものにすぎず、決して限定的であることを意図するものではないことを理解するであろう。本開示から利益を受ける当業者は、他の態様も容易に想到されるだろう。添付の図面に示されている例示的な態様の実施についてここで詳細に言及する。同じまたは類似の項目に言及する際は、図面および以下の説明を通して可能な範囲で同じ参照符号を使用する。図１は、本開示の例示的態様による、ウェブリソースの変更を検出するシステム１００のブロック図である。
【００２５】
システム１００は、クライアント１０１、サーバー１０２、ウェブリソース１１１（少なくとも初期ウェブリソース１１１Ａ、保護されたウェブリソース１１１Ｂ、変更されたウェブリソース１１１Ｃ、および生成されたウェブリソース１１１Ｄを含む１つ以上のウェブオブジェクトを表すことがある）、ウェブリソースの整合性を検証するためのスクリプト１１２、ウェブリソースの変更されたデータ１１３、ウェブリソース保護モジュール１１０、実行モジュール１２０、オブジェクト選択モジュール１３０、画像形成モジュール１４０、解析モジュール１５０、整合性を検証するためのモデル１５１、および統計収集モジュール１６０を備えることができる。
【００２６】
一例示的態様では、システム１００はクライアント−サーバーアーキテクチャー上でモデル化され、実行モジュール１２０およびオブジェクト選択モジュール１３０はクライアント１０１側で機能し、一方、ウェブリソース保護モジュール１１０、画像形成モジュール１４０、解析モジュール１５０、および統計収集モジュール１６０は、サーバー側１０２上で機能する。
【００２７】
例えば、クライアント１０１は、ブラウザを実行しているユーザーのコンピューターまたはモバイル装置であり得る。ユーザーは、ブラウザを使用して個人のユーザーアカウントのページを閲覧していることがあり、そのページのコードは銀行サーバー１０２からダウンロードされている。
【００２８】
さらに別の例示的態様では、ウェブリソース１１１は少なくとも１つのページを備えるインターネットサイトであり、そのページは少なくとも以下のものを備える。
・ウェブリソースのオブジェクトを含むＨＴＭＬコード
・サーバー１０２に記憶されているマルチメディアリソース（例えば、画像、オーディオ、およびビデオファイルへのリンク、またはページ上に直接ｕｒｌ（「ｄａｔａ：ｉｍａｇｅ／ｐｎｇ；ｂａｓｅ６４、…」）の形式で書かれた画像、オーディオ、およびビデオファイル）
・スクリプトのファイル
・スタイルシートファイル（カスケードスタイルシートト（Cascading  Style  Sheet：ＣＳＳ））
【００２９】
例えば、個人のユーザーアカウント情報を表示するページは、そのページの構造およびコンテンツを記述するＨＴＭＬコード、個人のユーザーアカウントに関連する画像（銀行のロゴなど）、フォームエントリーを確認および検証するＪａｖａ（登録商標）Ｓｃｒｉｐｔスクリプトなどを備える。
【００３０】
さらに別の例示的態様では、ウェブリソース１１１のオブジェクトは少なくとも以下の通りである。
・ウェブリソース１１１に含まれる（例えば、初期ウェブリソース１１１Ａ）
・ウェブリソース１１１の実行中に含まれる（例えば、生成されたウェブリソース１１１Ｄ）
【００３１】
例えば、初期ウェブリソース１１１Ａは、ページの要素（フォームなど）を形成するためのスクリプトを含んでもよく、生成されたウェブリソース１１１Ｄを実行すると、生成されたフォームが、クライアント１０１のＲＡＭにロードされたウェブブラウザによって表示されるウェブページに関連付けられた文書オブジェクトモデル（Document  Object  Model：ＤＯＭ）に存在してもよい。
【００３２】
さらに別の例示的態様では、ウェブリソース１１１のオブジェクトは少なくとも以下のものを備える。
・スクリプト
・フォーム
・ＨＴＭＬデータ
・ＸＨＲリクエスト（ＸＭＬＨｔｔｐＲｅｑｕｅｓｔ）
・ＤＯＭイベント
【００３３】
スクリプトは、例えば、ＪａｖａＳｃｒｉｐｔ（登録商標）などの任意のスクリプト言語で書かれてもよい。
【００３４】
さらに別の例示的態様では、ウェブリソース１１１を用いた作業は以下のように行われる。
・安全であり、悪意のある変更を全く含んでいない初期ウェブリソース１１１Ａが最初にサーバー１０２上に形成される。
・次に、保護されたウェブリソース１１１Ｂが形成される。ウェブリソースの整合性を検証するためのスクリプト１１２が生成され、そのスクリプトは初期ウェブリソース１１１Ａに埋め込まれる。
・保護されたウェブリソース１１１Ｂは、その後、実行のためにクライアント１０１に送信され、
・サーバー１０２からクライアント１０１への保護されたウェブリソース１１１Ｂの送信
・クライアント１０１上の保護されたウェブリソース１１１Ｂの実行
のステップのうちのいずれか１つの間に、悪意のあるアプリケーションによるウェブリソースの変更が発生し、その結果として保護されたウェブリソース１１１Ｂのデータ１１３の一部が変更され、それによって変更されたウェブリソース１１１Ｃが形成される。
・その後、生成されたウェブリソース１１１Ｄが形成され、それに対して変更されたウェブリソース１１１Ｃが実行される。
【００３５】
システム１００は、生成されたウェブリソース１１１Ｄの解析に基づいて、初期ウェブリソース１１１Ａが変更されたかどうかを決定してもよい。
【００３６】
ウェブリソース保護モジュール１１０は、以下のように設計されている。
・ウェブリソース１１１の構造およびコンテンツに関するデータに基づいて、ウェブリソースの整合性を検証するためのスクリプト１１２を生成する。ウェブリソースの整合性を検証するためのスクリプト１１２は、そのウェブリソース１１１のオブジェクトの特性の決定に関係する。
・ウェブリソースの整合性を検証するために生成されたスクリプト１１２をそのウェブリソース１１１に埋め込む。
【００３７】
一例示的態様では、ウェブリソース１１１のオブジェクトの特性は少なくとも以下の通りである。
・そのウェブリソース１１１のすべてのオブジェクトのセットのうち当該ウェブリソース１１１のオブジェクトを記述する１つ以上のパラメーター
・ウェブリソース１１１のオブジェクトの畳み込みの形成規則
・ウェブリソース１１１のオブジェクトの畳み込み
【００３８】
さらに別の例示的態様では、ウェブリソース１１１のオブジェクトの畳み込みは少なくとも以下を含む。
・ウェブリソース１１１のオブジェクトを記述するパラメーターの畳み込み
・ウェブリソース１１１のオブジェクトに含まれるデータの畳み込み
【００３９】
さらに別の例示的態様では、ウェブリソースの整合性を検証するためのスクリプト１１２はＥＣＭＡＳｃｒｉｐｔスクリプト（例えば、ＪａｖａＳｃｒｉｐｔ言語で書かれたスクリプト）である。
【００４０】
さらに別の例示的態様では、ウェブリソースの整合性を検証するためのスクリプト１１２は、対応するウェブリソースを実行するブラウザ用の拡張である。
【００４１】
さらに別の例示的態様では、ウェブリソースの整合性を検証するためのスクリプト１１２は事前に（ウェブリソース１１１の解析の前に）生成され、ウェブリソース１１１の解析中にウェブリソースの整合性を検証するためのスクリプト１１２の働きのために初期パラメーターが生成される一方で、ウェブリソースの整合性を検証するためのスクリプト１１２自体は、異なるウェブリソースに対して同じであってもよい。
【００４２】
実行モジュール１２０は、ウェブリソース１１１を実行するように設計されている。
【００４３】
一例示的態様では、ウェブリソース１１１の実行は少なくとも以下を含む。
・そのウェブリソース１１１に埋め込まれた、ウェブリソースの整合性を検証するためのスクリプト１１２の実行
・ウェブリソース１１１の解析
・ウェブリソース１１１の解釈
・ウェブリソース１１１の視覚化
【００４４】
さらに別の例示的態様では、ウェブリソースの実行は、クライアント１０１上で動作するブラウザによって、またはウェブリソースのデータを使用し、そのウェブリソースに埋め込まれた、ウェブリソースの整合性を検証するためのスクリプト１１２を実行することができる任意の所与のアプリケーションによって行われる。
【００４５】
オブジェクト選択モジュール１３０は、以下のように設計されている。
・ウェブリソース１１１の少なくとも１つのオブジェクトの畳み込みを決定する。この畳み込み（本開示の他の箇所で説明されるように実行される）は、そのウェブリソース１１１に埋め込まれたウェブリソースの整合性を検証するためのスクリプト１１２を実行するように決定される。
・計算された畳み込みを画像形成モジュール１４０に送る。
【００４６】
一例示的態様では、オブジェクト選択モジュール１３０は、ウェブリソース１１１から少なくとも１つのオブジェクトを選択してもよい。ウェブリソース１１１からのオブジェクトの選択は、そのウェブリソース１１１に埋め込まれた、ウェブリソースの整合性を検証するためのスクリプト１１２の実行中に行われる。
【００４７】
さらに別の例示的態様では、ウェブリソースのオブジェクトの畳み込みは少なくとも以下の通りである。
・ファジーハッシュ
・局所性鋭敏型ハッシュ（Locality-Sensitive  Hashing：ＬＨＳ）
【００４８】
例えば、ウェブオブジェクトから選択された任意の所与のテキストに対してファジーハッシュを構築でき、テキストは次のようになり得る。
・タグ「ｓｃｒｉｐｔ」の「ｉｎｎｅｒＨＴＭＬ」属性から抽出されたＪａｖａＳｃｒｉｐｔスクリプト
・スクリプトのネットワークリソース（ＵＲＬ）のネットワークアドレスでＡＪＡＸリクエストによってダウンロードされたＪａｖａＳｃｒｉｐｔスクリプト
・ｓｅｔＩｎｔｅｒｖａｌで送信される関数内の呼び出し「ｔｏＳｔｒｉｎｇ（）」によって取得されたＪａｖａＳｃｒｉｐｔスクリプト
・「ｏｕｔｅｒＨＴＭＬ」属性からのＤＯＭ要素のＨＴＭＬ表現
・追加のＡＪＡＸリクエストによる現在のダウンロードページ
【００４９】
ハッシュを構築するためのアルゴリズムは、以下のようにｎ−ｇｒａｍの長さと重なりによってパラメーター化される。
・テキストは所与の長さと重なりのワードによってｎ−ｇｒａｍに分割される。
・ｎ−ｇｒａｍごとにＣＲＣ３２が構築される。
・結果として得られた整数の配列は、ユニバーサルハッシュ関数によって処理される。
【００５０】
出力において、係数の組に応じて、３２、６４または１２８個の数の配列が得られる。
【００５１】
ハッシュ関数の一例示的態様では、その式は次の形式をとる。
ｈ（ｘ）＝（ａｘ＋ｂ）ｍｏｄｃ
【００５２】
さらに別の例示的態様では、ウェブリソース１１１からの各種類のオブジェクトは、他の種類のオブジェクトを解析するために使用される方法とは異なる個々の方法によって解析される。
【００５３】
例えば、ウェブスクリプト（ＪａｖａＳｃｒｉｐｔスクリプトなど）を解析する際には、悪意のあるスクリプトや銀行のページでは一般的ではないスクリプトを見つける方法が以下のように使用される。
・スクリプトに属性「ｓｒｃ」が含まれている場合はそのスクリプトが選択される。
・選択されたスクリプトは、属性「ｓｒｃ」がｄａｔａ−ｕｒｌである場合、インラインスクリプトとして解釈される（このため、ｄａｔａ−ｕｒｌが最初にデコードされる）。
【００５４】
例えば以下の通りである。
ｄａｔａ：ｔｅｘｔ／ｊａｖａｓｃｒｉｐｔ；ｂａｓｅ６４，ａＷＹｏＩｍｈ０ｄＨＢｚＯｉＩ９ＰＴ１３ａＷ５ｋｂ３ｃｕｂＧ９ｊＹＸＲｐｂ２４ｕｃ
ＨＪｖｄＧ９ｊｂ２ｗｐｅ３ＺｈｃｉＢｚＹ３ＪｐｃＨＱｇＰＳＢｋｂ２Ｎ１ｂＷＶｕｄＣ５ｊｃｍＶｈｄＧＶＦｂＧＶｔＺＷ５０ＫＣＪｚＹ３ＪｐｃＨ
ＱｉＫＴｔｚＹ３ＪｐｃＨＱｕｃ３ＪｊＩＤ０ｇＩｍｈ０ｄＨＢｚＯｉ８ｖｃＧｘｈＺｍＹｔＺ２８ｕｃｎＵｖｂＧｌｕａｙ９ｓＮＷｌｌＹＷｗ０ＭＳ８
ｉＯ２ＲｖＹ３ＶｔＺＷ５０ＬｍｄｌｄＥＶｓＺＷ１ｌｂｎＲｚＱｎｌＵＹＷｄＯＹＷ１ｌＫＣＪｏＺＷＦｋＩｉｌｂＭＦ０ｕＹＸＢｗＺＷ５ｋＱ２ｈｐ
ｂＧＱｏｃ２ＮｙａＸＢ０ＫＴｔ９
・ＪａｖａＳｃｒｉｐｔのいくつかの表現が使用される。
・スクリプトは改行セパレーター［＼ｒ＼ｎ］によって文字列に分割される。
・スクリプトはトークンに分割される。
【００５５】
スクリプトをトークンに分割するために、従来技術から知られているトークンセパレーター（「＼ｒ＼ｎ＼ｔ」など）が使用される。
・スクリプトはシンボルに分割される。
・トークンから、ｎ−ｇｒａｍを構築するためのパラメーターでハッシュシグネチャーが構築される。
・長さ−１１トークン
・重なり−４トークン
・スクリプトの文字列から、ｎ−ｇｒａｍを構築するためのパラメーターでハッシュシグネチャーが構築される。
・長さ−７文字列
・重なり−３文字列
・スクリプト言語の悪意のある呼び出しのリストが構成される。
【００５６】
悪意のあるスクリプト呼び出し（具体的にはＪａｖａＳｃｒｉｐｔ呼び出し、ただしこれに限定されない）のリストの例を以下に示す。
＃１
【表１】
2019194832.tif 000003
＃２
【表２】
2019194832.tif 000004
・ＪａｖａＳｃｒｉｐｔのキーワードのリストが構成される。
例えば、以下のようなワードがキーである。
［「ｂｒｅａｋ」，「ｄｏ」，「ｉｎｓｔａｎｃｅｏｆ」，「ｔｙｐｅｏｆ」，「ｃａｓｅ」，「ｅｌｓｅ」，「ｎｅｗ」，「ｖａｒ」，「ｃａｔｃｈ」，「ｆｉｎａｌｌｙ」，「ｒｅｔｕｒｎ」，「ｆｕｎｃｔｉｏｎ」，「ｔｈｉｓ」，「ｗｉｔｈ」，「ｄｅｆａｕｌｔ」，「ｉｆ」，「ｔｈｒｏｗ」，「ｔｒｙ」，「ａｂｓｔｒａｃｔ」，「ｅｘｐｏｒｔ」，「ｉｎｔｅｒｆａｃｅ」，「ｓｔａｔｉｃ」，「ｎｕｌｌ」，「ｔｒｕｅ」，「ｆａｌｓｅ」］
・一次属性が考慮される。
・悪意の可能性がある呼び出しごとに、トークン内で発生した回数がカウントされる。
・結果として得られたデータが（例えば、ＪＳＯＮなどで）構築される。
【００５７】
例えば以下の通りである。
｛
"object_01":  [
[1958351,  5156809,  ...],
[565119,  357121,  150627,  39682,  ...],
[
[5347,  5189,  16,  160497,  2412,  ...],
[8,  13,  ...],
[2,  0,  4,  7,  13,  0,  ...]
]
],
"object_02":  [
["https://target-url",
[1958351,  5156809,  679194,  ...],
[565119,  878958,  ...],
[
[5347,  30.016270806059474,  1,  ...],
[8,  13,  1,  ...],
[2,  0,  4,  7,  13,  0,  ...]
]
],
｝
【００５８】
例えば、ＸＨＲリクエストを解析するためには、以下のことが行われる。
・ＸＨＲを実行する方法がインターセプトされる：ＸＭＬＨｔｔｐＲｅｑｕｅｓｔ．ｐｒｏｔｏｔｙｐｅ．ｏｐｅｎ，ＸＭＬＨｔｔｐＲｅｑｕｅｓｔ．ｐｒｏｔｏｔｙｐｅ．ｓｅｎｄ
・インターセプトされたＤＯＭレベル３呼び出しごとに、時間、イベントの種類、ＵＲＬ、およびスタックトレースが記録される。
・結果として得られたデータが（例えば、ＪＳＯＮなどで）構築される。
【００５９】
例えば以下の通りである。
｛
"xhr":  [
[1498825034,  "open",  "https://sync.target-url.com/",
｛"stacktrace":"stacktrace"｝],
[1498825034,  "send",  "https://  sync.target-url.com/",
｛"stacktrace":"stacktrace"｝],
],
｝
【００６０】
画像形成モジュール１４０は、以下のように設計されている。
・得られた畳み込みに基づいてウェブリソースの画像を生成する。このウェブリソースの画像はウェブリソース１１１のコンテンツのベクトル表現である。
・生成されたウェブリソースの画像を解析モジュール１５０に送信する。
【００６１】
解析モジュール１５０は、以下のように設計されている。
・整合性を検証するためのモデル１５１を用いて、取得したウェブリソースの画像に基づいてウェブリソース１１１の変更１１３の特性を決定する。整合性を検証するためのモデル１５１は、ウェブリソース１１１の変更の確率を計算するための一連の規則である。
・ウェブリソース１１１の変更１１３の決定された特性に基づいてウェブリソース１１１の変更に関する決定を宣言する。
【００６２】
一例示的態様では、ウェブリソース１１１の変更１１３の特性は少なくとも以下の通りである。
・少なくとも以下に関して、ウェブリソース１１１が変更された確率
・ウェブリソース１１１の以前に指定されたユーザーのグループ
・ウェブリソース１１１の特定のユーザー
・以下のようなウェブリソース１１１の変更１１３のパラメーター
・ウェブリソース１１１の変更１１３の方法
・ウェブリソース１１１の変更に使用されたデータ
【００６３】
一例示的態様では、ウェブリソース１１１の解析は、そのウェブリソース１１１が実行されるオンラインセッション中に行われる。
【００６４】
統計収集モジュール１６０は、少なくとも以下から生成されたウェブリソースの画像に基づいて、整合性を検証するためのモデル１５１の機械トレーニングを実行してもよい。
・以前に解析されたウェブリソース１１１
・実行前に解析されているウェブリソース１１１
【００６５】
図２は、ウェブリソースの変更を検出する方法の構造フロー図の一例を示す。
【００６６】
ウェブリソースの変更を検出する方法は、ウェブリソースの整合性を検証するためのスクリプトを生成し得るステップ２１０と、ウェブリソースの整合性を検証するために生成されたスクリプトを埋め込み得るステップ２２０と、ウェブリソースを実行し得るステップ２３０と、ウェブリソースの畳み込みを計算し得るステップ２４０と、ウェブリソースの画を生成し得るステップ２５０と、ウェブリソースの変更の特性を決定し得るステップ２６０と、ウェブリソースの変更に関する決定を宣言し得るステップ２７０と、整合性を検証するためのモデルをトレーニングし得るステップ２８０と、を含む。
【００６７】
ステップ２１０において、ウェブリソース１１１の構造およびコンテンツに関するデータに基づいて、ウェブリソースの整合性を検証するためのスクリプト１１２を生成してもよい。ウェブリソースの整合性を検証するためのスクリプト１１２は、そのウェブリソース１１１のオブジェクトの特性を計算する過程の記述である。
【００６８】
ステップ２２０において、ウェブリソースの整合性を検証するために生成されたスクリプト１１２をそのウェブリソース１１１に埋め込んでもよい。
【００６９】
ステップ２３０において、ウェブリソース１１１を実行してもよい。この目的のために、クライアント側１０１でダウンロードされたウェブリソースが最初に解析され（例えば、そのページに対して構文解析が行われる）、その結果に基づいて追加のデータがダウンロードされ（例えば、インターネットの識別されたアドレスから画像がダウンロードされる）、ウェブリソースに含まれるスクリプトが実行され（例えば、ＪａｖａＳｃｒｉｐｔスクリプト）、ページ要素が生成され（フォームなど）、生成されたページ要素に基づいて、実行されているウェブリソース１１１が視覚化され、さらに、ウェブリソース１１１の実行の過程で、データが追加的に収集される（例えば、ページ要素の生成中および利用中に作成されるイベントがインターセプトされる）。
【００７０】
ステップ２４０において、ウェブリソース１１１に埋め込まれたウェブリソースの整合性を検証するためのスクリプト１１２に従って、ウェブリソース１１１の少なくとも１つの畳み込みを計算することができる。
【００７１】
ステップ２５０において、ウェブリソースの画像を、少なくとも１つの計算された畳み込みに基づいて生成してもよい。ウェブリソースの画像はウェブリソース１１１のコンテンツのベクトル表現である。
【００７２】
ステップ２６０において、整合性を検証するためのトレーニングされたモデル１５１を利用して、生成されたウェブリソースの画像に基づいてウェブリソース１１１の変更１１３の特性を決定してもよい。整合性を検証するためのモデル１５１は、ウェブリソース１１１の変更の確率を計算するための一連の規則である。
【００７３】
ステップ２７０において、ウェブリソース１１１の変更１１３の決定された特性に基づいて、ウェブリソース１１１の変更に関する決定を宣言する。
【００７４】
ステップ２８０において、以下に少なくとも基づいて生成されたウェブリソースの画像に基づいて、整合性を検証するためのモデル１５１をトレーニングしてもよい。
・以前に解析されたウェブリソース１１１
・実行前に解析されているウェブリソース１１１
【００７５】
図４は、一例示的態様に従って本開示の態様を実装することができる汎用コンピューターシステム２０を示すブロック図である。コンピューターシステム２０は、システム１００、および／またはその個々の構成要素に対応し得ることに留意されたい。
【００７６】
図示のように、コンピューターシステム２０（パーソナルコンピューターまたはサーバーであり得る）は、中央処理装置２１と、システムメモリ２２と、中央処理装置２１に関連するメモリを含む様々なシステム構成要素を接続するシステムバス２３と、を備える。当業者には理解されるように、システムバス２３はバスメモリまたはバスメモリコントローラーと、周辺バスと、他の任意のバスアーキテクチャーと相互作用することができるローカルバスとを備えてもよい。システムメモリは、永久メモリ（Read-Only  Memory：ＲＯＭ）２４およびランダムアクセスメモリ（Random-Access  Memory：ＲＡＭ）２５を備えてもよい。基本入出力システム（Basic  Input/Output  System：ＢＩＯＳ）２６は、ＲＯＭ２４を使用してオペレーティングシステムをロードする際の手順など、コンピューターシステム２０の要素間で情報を転送するための基本手順を記憶してもよい。
【００７７】
コンピューターシステム２０はまた、データを読み書きするためのハードディスク２７と、取り外し可能磁気ディスク２９上で読み書きするための磁気ディスクドライブ２８と、取り外し可能光学ディスク３１を読み書きするための光学ドライブ３０（ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、その他の光学媒体など）と、を備えてもよい。ハードディスク２７、磁気ディスクドライブ２８、および光学ドライブ３０は、それぞれ、ハードディスクインターフェース３２、磁気ディスクインターフェース３３、および光学ドライブインターフェース３４を介してシステムバス２３に接続されている。ドライブおよび対応するコンピューター情報媒体は、コンピューターシステム２０のコンピューター命令、データ構造、プログラムモジュール、およびその他のデータを記憶するための、電力に依存しないモジュールである。
【００７８】
一例示的態様は、コントローラー５５を介してシステムバス２３に接続されたハードディスク２７、取り外し可能磁気ディスク２９、および取り外し可能光学ディスク３１を使用するシステムを備える。コンピューターによって読み取り可能な形式でデータを記憶することができる任意の種類の媒体５６（ソリッドステートドライブ、フラッシュメモリカード、デジタルディスク、ランダムアクセスメモリ（ＲＡＭ）など）を利用することもできることが当業者には理解されよう。
【００７９】
コンピューターシステム２０は、オペレーティングシステム３５が記憶され得るファイルシステム３６、ならびに追加のプログラムアプリケーション３７、他のプログラムモジュール３８、およびプログラムデータ３９を備える。コンピューターシステム２０のユーザーは、キーボード４０、マウス４２、または以下に限定されないが、マイクロフォン、ジョイスティック、ゲームコントローラー、スキャナーなどの当業者に知られている他の任意の入力装置を使用してコマンドおよび情報を入力してもよい。このような入力装置は、通常、システムバスに接続されているシリアルポート４６を介してコンピューターシステム２０につながれるが、入力装置は、以下に制限されないが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス（Universal  Serial  Bus：ＵＳＢ）を介するなど他の方法でも接続され得ることを当業者は理解するであろう。モニター４７または他の種類の表示装置を、ビデオアダプター４８などのインターフェースを介してシステムバス２３に接続してもよい。モニター４７に加えて、パーソナルコンピューターは、拡声器、プリンタなどの他の周辺出力装置（図示せず）を備えてもよい。
【００８０】
コンピューターシステム２０は、１つ以上のリモートコンピューター４９へのネットワーク接続を使用して、ネットワーク環境で動作してもよい。リモートコンピューター４９（単数または複数）は、コンピューターシステム２０の性質の説明における前述の要素のほとんどまたはすべてを備えるローカルコンピューターワークステーションまたはサーバーであり得る。限定はしないが、ルーター、ネットワークステーション、ピア装置、または他のネットワークノードなどの他の装置がコンピューターネットワーク内に存在してもよい。
【００８１】
ネットワーク接続により、ローカルエリアコンピューターネットワーク（Local-Area  computer  Network：ＬＡＮ）５０およびワイドエリアコンピューターネットワーク（Wide-Area  computer  Network：ＷＡＮ）を形成することができる。このようなネットワークは、企業のコンピューターネットワークおよび社内のネットワークで使用され、一般にインターネットにアクセスできる。ＬＡＮまたはＷＡＮネットワークでは、パーソナルコンピューター２０は、ネットワークアダプターまたはネットワークインターフェース５１を介してローカルエリアネットワーク５０に接続されている。ネットワークを使用する際、コンピューターシステム２０は、モデム５４や、インターネットなどのワイドエリアコンピューターネットワークとの通信を可能にする当業者に周知の他のモジュールを使用してもよい。モデム５４は、内部装置でも外部装置でもよく、シリアルポート４６によってシステムバス２３に接続してもよい。前述のネットワーク接続は、通信モジュールを使用してコンピューター間で接続を確立するための多数の周知の方法の非限定的な例であることを当業者は理解するであろう。
【００８２】
様々な態様では、本明細書で説明されているシステムおよび方法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせで実行され得る。ソフトウェアで実行される場合、方法は、１つ以上の命令またはコードとして非一時的コンピューター可読媒体に記憶され得る。コンピューター可読媒体はデータ記憶装置を含む。限定ではなく例として、そのようなコンピューター可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ、フラッシュメモリ、または他のタイプの電気的、磁気的、もしくは光学的記憶媒体、または命令もしくはデータ構造の形で所望のプログラムコードを保持または記憶し、汎用コンピューターのプロセッサーによってアクセスすることができる他の任意の媒体を含み得る。
【００８３】
様々な態様では、本開示に記載されているシステムおよび方法は、モジュールの観点から説明することができる。本明細書で使用される「モジュール」という用語は、実装される現実世界の装置、構成要素、または構成要素の配置を指す。これらは、ハードウェアを使用して、すなわち、例えば特定用途向け集積回路（Application  Specific  Integrated  Circuit：ＡＳＩＣ）やフィールドプログラマブルゲート配列（Field-Programmable  Gate  Array：ＦＰＧＡ）などにより、または、ハードウェアとソフトウェアの組み合わせとして、すなわち、マイクロプロセッサーシステムと、（実行中に）マイクロプロセッサーシステムを特殊用途の装置に変換する、モジュールの機能を実行するための一組の命令とにより、実装される。モジュールはまた、ハードウェアのみによって促進される特定の機能と、ハードウェアとソフトウェアの組み合わせによって促進される他の機能とにより、上記２つの組み合わせとして実装されてもよい。特定の実装では、モジュールの少なくとも一部、場合によってはすべてを（上記の図４でより詳細に説明されるものなどの）汎用コンピューターのプロセッサー上で実行してもよい。したがって、各モジュールは様々な適切な構成で実現されてもよく、本明細書に例示された任意の特定の実装に限定されるべきではない。
【００８４】
明確にするために、態様のすべての典型的な特徴が本明細書に開示されているわけではない。本開示の任意の実際の実装の開発において、開発者の特定の目的を達成するために多数の実装特有の決定がなされなければならず、これらの特定の目的は実装および開発者によって異なるであろうことを理解されたい。そのような開発努力は、複雑で時間がかかる可能性があるが、それにもかかわらず、本開示から利益を受ける当業者にとっては日常的なエンジニアリングの作業であろうことが理解される。
【００８５】
さらに、本明細書で使用される語法や用語は、当業者が、本明細書に提示されている教示および手引きを参照し、関連技術の当業者の知識と組み合わせて容易に理解されるように、説明することを目的としており、制限するためではないことを理解されたい。さらに、本明細書または特許請求の範囲におけるいかなる用語も、そうであると明示的に述べられていない限り、一般的ではないまたは特別な意味に解釈されることを意図するものではない。本明細書に開示された様々な態様は、例示として本明細書に言及された既知のモジュールに対する現在および将来の既知の均等物を包含する。さらに、態様および用途を示し説明してきたが、本明細書に開示された発明の概念から逸脱することなく、上記よりもはるかに多くの変更が可能であることが、本開示から利益を受ける当業者にとって明らかであろう。
【図１】
2019194832.tif 000005
【図２】
2019194832.tif 000006
【図３】
2019194832.tif 000007
【外国語明細書】
2019194832000001.pdf