(57)【要約】  サーバ上で提供されるアプリケーションに対する悪意のある活動を検出するための方法、コンピュータ・システム、およびコンピュータ・プログラム製品が提供される。本発明は、ネットワークを通じてリモートでアクセスされるアプリケーションに関連付けられたユーザ活動データを収集することと、収集されたユーザ活動データからグラフを生成することとを含むことができる。グラフの各ノードは、アプリケーション内の位置に対するユーザから受け取ったユーザ要求の組を表すことができ、ノード間の各接続部は、アプリケーション内の位置の間のユーザ・ナビゲート可能な経路を表すことができる。本発明は、生成されたグラフを記憶することと、アプリケーションに対する後続のユーザ活動を監視することとを含むことができる。本発明は、記憶されたグラフに一致しない後続のユーザ活動を検出することを含むことができる。
2021529366.tif 000002
【特許請求の範囲】
【請求項１】
サーバ上で提供されるアプリケーションに対する悪意のある活動を検出するための方法であって、
ネットワークを通じてリモートでアクセスされるアプリケーションに関連付けられたユーザ活動データを収集することであって、収集された前記ユーザ活動データが、ユーザから受け取ったユーザ要求の少なくとも１つの組を含み、受け取ったユーザ要求の前記少なくとも１つの組の各組が、前記アプリケーション内の対応する位置に関連付けられている、前記収集することと、
収集された前記ユーザ活動データからグラフを生成することであって、生成された前記グラフが、複数のノードと前記複数のノードをリンクする複数の接続部とを含み、前記複数のノードの各ノードが、受け取ったユーザ要求の前記少なくとも１つの組の対応する組を表し、前記複数の接続部の各接続部が、前記アプリケーション内の対応する位置のペア間のユーザ・ナビゲート可能な経路を表す、前記生成することと、
生成された前記グラフを記憶することと、
前記ネットワークを通じてリモートでアクセスされる前記アプリケーションに関連付けられた後続のユーザ活動を監視することと、
前記後続のユーザ活動が、収集された前記ユーザ活動データの記憶された前記グラフに一致しないことを検出することと
を含む、方法。
【請求項２】
前記後続のユーザ活動が記憶された前記グラフに一致しないことを検出することが、受け取ったユーザ要求の後続の組が記憶された前記グラフの前記複数のノードのいずれのノードにも一致しないことを検出することをさらに含む、請求項１に記載の方法。
【請求項３】
前記後続のユーザ活動が記憶された前記グラフに一致しないことを検出することが、前記複数の接続部のうちの１つによってリンクされない、前記複数のノードのうちのノードのペア間のナビゲーションに対応する後続のユーザ活動を検出することをさらに含む、請求項１に記載の方法。
【請求項４】
前記アプリケーション内の各対応する位置に対するユーザ活動の加重平均を決定することと、
ユーザ活動の前記加重平均から、各対応する位置に対する前記複数のノードのうちの対応するノードを生成することと
をさらに含む、請求項１ないし３のいずれかに記載の方法。
【請求項５】
収集された前記ユーザ活動データから、ユーザの前記アプリケーションとの対話とは無関係に生成されるデータ要求を除去することをさらに含む、請求項１ないし４のいずれかに記載の方法。
【請求項６】
サーバ上で提供されるアプリケーションに対する悪意のある活動を検出するためのコンピュータ・システムであって、
１つまたは複数のプロセッサと、１つまたは複数のコンピュータ可読メモリと、１つまたは複数のコンピュータ可読有形記憶媒体と、前記１つまたは複数のメモリのうちの少なくとも１つを介して前記１つまたは複数のプロセッサのうちの少なくとも１つによる実行のための前記１つまたは複数のコンピュータ可読有形記憶媒体のうちの少なくとも１つに記憶されたプログラム命令とを含み、前記コンピュータ・システムは、
ネットワークを通じてリモートでアクセスされるアプリケーションに関連付けられたユーザ活動データを収集することであって、収集された前記ユーザ活動データが、ユーザから受け取ったユーザ要求の少なくとも１つの組を含み、受け取ったユーザ要求の前記少なくとも１つの組の各組が、前記アプリケーション内の対応する位置に関連付けられている、前記収集することと、
収集された前記ユーザ活動データからグラフを生成することであって、生成された前記グラフが、複数のノードと前記複数のノードをリンクする複数の接続部とを含み、前記複数のノードの各ノードが、受け取ったユーザ要求の前記少なくとも１つの組の対応する組を表し、前記複数の接続部の各接続部が、前記アプリケーション内の対応する位置のペア間のユーザ・ナビゲート可能な経路を表す、前記生成することと、
生成された前記グラフを記憶することと、
前記ネットワークを通じてリモートでアクセスされる前記アプリケーションに関連付けられた後続のユーザ活動を監視することと、
前記後続のユーザ活動が、収集された前記ユーザ活動データの記憶された前記グラフに一致しないことを検出することと
を含む方法を実施することができる、コンピュータ・システム。
【請求項７】
前記後続のユーザ活動が記憶された前記グラフに一致しないことを検出することが、受け取ったユーザ要求の後続の組が記憶された前記グラフの前記複数のノードのいずれのノードにも一致しないことを検出することをさらに含む、請求項６に記載のコンピュータ・システム。
【請求項８】
前記後続のユーザ活動が記憶された前記グラフに一致しないことを検出することが、前記複数の接続部のうちの１つによってリンクされない、前記複数のノードのうちのノードのペア間のナビゲーションに対応する後続のユーザ活動を検出することをさらに含む、請求項６に記載のコンピュータ・システム。
【請求項９】
前記アプリケーション内の各対応する位置に対するユーザ活動の加重平均を決定することと、
ユーザ活動の前記加重平均から、各対応する位置に対する前記複数のノードのうちの対応するノードを生成することとをさらに含む、請求項６ないし８のいずれかに記載のコンピュータ・システム。
【請求項１０】
収集された前記ユーザ活動データから、ユーザの前記アプリケーションとの対話とは無関係に生成されるデータ要求を除去することをさらに含む、請求項６ないし８のいずれかに記載のコンピュータ・システム。
【請求項１１】
サーバ上で提供されるアプリケーションに対する悪意のある活動を検出するコンピュータ・プログラム製品であって、
処理回路によって可読であり、かつ、請求項１ないし５のいずれかに記載の方法を実施するために前記処理回路による実行のための命令を記憶するコンピュータ可読記憶媒体
を備える、コンピュータ・プログラム製品。
【請求項１２】
コンピュータ可読媒体に記憶され、デジタル・コンピュータの内部メモリにロード可能なコンピュータ・プログラムであって、前記プログラムがコンピュータ上で実行されたとき請求項１ないし５のいずれかに記載の方法を実施するためのソフトウェア・コード部分を含む、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にコンピューティングの分野に関し、より詳しくは、インターネット・セキュリティに関する。
【背景技術】
【０００２】
インターネットを介して転送される通信は、サーバ上で提供されるアプリケーションのアプリケーション・ロジック（application logic）の背後にある弱点を悪用するためにエンドポイントとサーバとの間で傍受されることに対して脆弱である。これらの脆弱性がアプリケーション・ロジックに関連しているので、一般的な脆弱性スキャナおよび保護技術は、そのような悪意のある活動を検出することができない。
【０００３】
したがって、当技術分野では上述の問題に対処することが必要とされる。
【発明の概要】
【０００４】
第１の態様から見ると、本発明は、サーバ上で提供されるアプリケーションに対する悪意のある活動を検出するための方法を提供し、方法は、ネットワークを通じてリモートでアクセスされるアプリケーションに関連付けられたユーザ活動データを収集することであって、収集されたユーザ活動データが、ユーザから受け取ったユーザ要求の少なくとも１つの組を含み、受け取ったユーザ要求の少なくとも１つの組の各組が、アプリケーション内の対応する位置に関連付けられている、収集することと、収集されたユーザ活動データからグラフを生成することであって、生成されたグラフが、複数のノードと複数のノードをリンクする複数の接続部とを含み、複数のノードの各ノードが、受け取ったユーザ要求の少なくとも１つの組の対応する組を表し、複数の接続部の各接続部が、アプリケーション内の対応する位置のペア間のユーザ・ナビゲート可能な経路（user navigable path）を表す、生成することと、生成されたグラフを記憶することと、ネットワークを通じてリモートでアクセスされるアプリケーションに関連付けられた後続のユーザ活動を監視することと、後続のユーザ活動が、収集されたユーザ活動データの記憶されたグラフに一致しないことを検出することとを含む。
【０００５】
他の態様から見ると、本発明は、サーバ上で提供される（ｈｏｓｔｅｄ）アプリケーションに対する悪意のある活動を検出するためのコンピュータ・システムであって、１つまたは複数のプロセッサと、１つまたは複数のコンピュータ可読メモリと、１つまたは複数のコンピュータ可読有形記憶媒体と、１つまたは複数のメモリのうちの少なくとも１つを介して１つまたは複数のプロセッサのうちの少なくとも１つによる実行のための１つまたは複数のコンピュータ可読有形記憶媒体のうちの少なくとも１つに記憶されたプログラム命令とを備える、コンピュータ・システムを提供し、コンピュータ・システムは、ネットワークを通じてリモートでアクセスされるアプリケーションに関連付けられたユーザ活動データを収集することであって、収集されたユーザ活動データが、ユーザから受け取ったユーザ要求の少なくとも１つの組を含み、受け取ったユーザ要求の少なくとも１つの組の各組が、アプリケーション内の対応する位置に関連付けられている、収集することと、収集されたユーザ活動データからグラフを生成することであって、生成されたグラフが、複数のノードと複数のノードをリンクする複数の接続部とを含み、複数のノードの各ノードが、受け取ったユーザ要求の少なくとも１つの組の対応する組を表し、複数の接続部の各接続部が、アプリケーション内の対応する位置のペア間のユーザ・ナビゲート可能な経路を表す、生成することと、生成されたグラフを記憶することと、ネットワークを通じてリモートでアクセスされるアプリケーションに関連付けられた後続のユーザ活動を監視することと、後続のユーザ活動が、収集されたユーザ活動データの記憶されたグラフに一致しないことを検出することとを含む方法を実施することができる。
【０００６】
他の態様から見ると、本発明は、サーバ上で提供されるアプリケーションに対する悪意のある活動を検出するためのコンピュータ・プログラム製品を提供し、コンピュータ・プログラム製品は、処理回路によって可読のおよび本発明のステップを実施するための方法を実施するための処理回路による実行のための命令を記憶するコンピュータ可読記憶媒体を備える。
【０００７】
他の態様から見ると、本発明は、コンピュータ可読媒体に記憶され、デジタル・コンピュータの内部メモリにロード可能であるコンピュータ・プログラムを提供し、プログラムは、このプログラムがコンピュータ上で実行されたとき本発明のステップを実施するためのソフトウェア・コード部分を含む。
【０００８】
本発明の実施形態は、サーバ上で提供されるアプリケーションに対する悪意のある活動を検出するための方法、コンピュータ・システム、およびコンピュータ・プログラム製品を開示する。本発明は、第１の態様において、ネットワークを通じてリモートでアクセスされるアプリケーションに関連したユーザ活動データを収集することと、収集されたユーザ活動データからグラフを生成することであって、グラフの各ノードが、アプリケーション内の位置に関して、ユーザから受け取ったユーザ要求の組を表し、ノード間の各接続部が、アプリケーション内の位置の間のユーザ・ナビゲート可能な経路を表す、生成することと、生成されたグラフを記憶することと、アプリケーションに対する後続のユーザ活動を監視することと、記憶されたグラフに一致しないユーザ活動を検出することとを含むコンピュータ実施方法を含むことができる。
【０００９】
第２の態様によれば、本発明は、ネットワークを通じてリモートでアクセスされるアプリケーションに関連したユーザ活動データを収集し、収集されたユーザ活動データから、グラフであって、グラフの各ノードが、アプリケーション内の位置に関するユーザから受け取ったユーザ要求の組を表し、ノード間の各接続部が、アプリケーション内の位置の間のユーザ・ナビゲート可能な経路を表す、グラフを生成し、生成されたグラフを記憶し、アプリケーションに対する後続のユーザ活動を監視し、記憶されたグラフに一致しないいずれかのユーザ活動を検出するように構成されたプロセッサを備えるデータ処理システムを含むことができる。
【００１０】
第３の態様によれば、本発明は、プロセッサを備えるデータ処理システムを制御するためのコンピュータ・プログラム製品を含むことができ、コンピュータ・プログラム製品は、ともに具現化されたプログラム命令を有するコンピュータ可読記憶媒体を備え、プログラム命令は、プロセッサに、ネットワークを通じてリモートでアクセスされるアプリケーションに関連したユーザ活動データを収集させ、収集されたユーザ活動データから、グラフであって、グラフの各ノードが、アプリケーション内の位置に関するユーザから受け取ったユーザ要求の組を表し、ノード間の各接続部が、アプリケーション内の位置の間のユーザ・ナビゲート可能な経路を表す、グラフを生成させ、生成されたグラフを記憶させ、アプリケーションに対する後続のユーザ活動を監視させ、記憶されたグラフに一致しないいずれかのユーザ活動を検出させるようにプロセッサによって実行可能である。
【００１１】
本発明のこれらのおよび他の目的、特徴および利点は、添付の図面に関連して読まれる、その例示的な実施形態の以下の詳細な説明から明らかとなるであろう。図は詳細な説明に併せて本発明を当業者が理解するのを容易にする際に明確にするためのものであるので、図面の様々な特徴は縮尺通りではない。
【図面の簡単な説明】
【００１２】
【図１】少なくとも１つの実施形態による、ネットワーク化されたコンピュータ環境を通じてアプリケーションにアクセスするユーザ・デバイスを示す概略図である。
【図２】少なくとも１つの実施形態による、図１に示す装置のコンポーネントを示す概略図である。
【図３】少なくとも１つの実施形態による、ノードおよび接続部のグラフを示す概略図である。
【図４】少なくとも１つの実施形態による、アプリケーションとの対話に対するセキュリティ・チェックを実施するためのプロセスを示す動作フローチャートである。
【図５】少なくとも１つの実施形態による、アプリケーションおよびグラフを示す概略図である。
【図６】本開示の実施形態に従った、図２に示す装置を示す概略図である。
【発明を実施するための形態】
【００１３】
特許請求される構造および方法の詳細な実施形態が、本明細書に開示される。しかしながら、開示される実施形態は、様々な形で具現化することができる、特許請求される構造および方法を、単に例示するに過ぎないことが理解できる。しかしながら、本発明は、多くの異なる形式で具現化することができ、本明細書に記載される例示的な実施形態に限定されると解釈すべきではない。むしろ、これらの例示的な実施形態は、本開示が完璧および完全であり、本発明の範囲を当業者に十分に伝達するように提供される。本明細書において、周知の特徴および技法の詳細は、本実施形態を不必要にあいまいにすることを回避するために省略されている可能性がある。以下に説明する例示的な実施形態は、サーバ上で提供されるアプリケーションに対する悪意のある活動を検出するためのシステム、方法およびプログラム製品を提供する。
【００１４】
図１を参照すると、１つの実施形態に従った、例示的なネットワーク化されたコンピュータ環境が示される。
【００１５】
ネットワーク化されたコンピュータ環境は、ネットワーク１４を通じてリモート・サーバ１２に接続することができるユーザ・デバイス１０を含むことができる。デバイス１０とサーバ１２との間の通信は、セキュリティ装置（Ｓｅｃｕｒｉｔｙ  Ａｐｐｌｉａｎｃｅ）８を通過することができる。装置８は、独立型デバイスを含むことができるが、サーバ１２にインストールすることができるソフトウェアコンポーネントとして実施することもできる。図１に示すように、１つの実施形態において、ユーザ・デバイス１０は、モバイル・デバイス（例えば、スマートフォン）を含むことができ、リモート・サーバ１２は、ユーザ・デバイス１０がネットワーク１４を介して接続することができるモバイル・アプリケーション１６を実行することができる。ネットワーク１４は、４Ｇなどの無線コンポーネントおよびインターネットなどの有線コンポーネントを含むことができる。ユーザ・デバイス１０は、４Ｇネットワークに接続することができ、４Ｇネットワーク・プロバイダは、インターネットに接続することができ、ユーザ・デバイス１０のユーザが、インターネット、およびユーザ・デバイス１０を通じてインターネットを介して供給されるアプリケーションにアクセスすることを可能にする。ユーザ・デバイス１０は、スマートフォンを含むことができるが、有線ネットワークを介して接続されたコンピュータなどの任意の適切に接続されたデバイスは、サーバ１２上のアプリケーション１６にアクセスすることができる。
【００１６】
１つの実施形態において、ユーザ・デバイス１０は、ユーザ・デバイス１０上で実行されるインターネット・ブラウザを通じて、アプリケーション１６などのモバイル・アプリケーションにアクセスすることができる。別の実施形態において、ユーザ・デバイス１０は、ユーザ・デバイス１０にインストールされた専用アプリケーションを通じてアプリケーション１６にアクセスすることができ、その場合、専用アプリケーションは、アプリケーション１６に直接接続することができる。図１に示す例において、ユーザは、リモート・バンキング・アプリケーション１６にアクセスするためにユーザのスマートフォン１０を使用することができ、リモート・バンキング・アプリケーション１６は、ユーザのスマートフォン１０上で実行されるアプリケーション１６を通じて様々なオンライン銀行業務をユーザに提供することができる。例えば、ユーザは、ユーザのスマートフォン１０上で実行されるアプリケーション１６を通じて、ユーザの銀行預金口座にログインし、現在の銀行預金残高をチェックすることおよび銀行振込を実施することなど、ユーザの銀行預金口座に関連した動作を実施することができる。
【００１７】
モバイル・アプリケーション１６に関連付けられた様々なサービスをユーザのスマートフォン１０に確実に供給することは、モバイル・アプリケーション１６への高い優先順位がある可能性があることを理解することができる。アプリケーション１６の、例えば、ユーザの銀行預金口座へのおよびユーザの銀行預金口座からの銀行振込を実施することができる能力は、そのようなアプリケーション１６が悪意のあるおよび犯罪の活動の標的となる虞があることを意味し得る。そのようなアプリケーション１６を妨害しようとするのに多くの異なる技法が使用され得る。インターネットを介して転送される通信は、常に、通信の内容を変更するように、傍受および操作されることに、またはアプリケーション１６に対する攻撃の基盤を形成するのに使用されることに対して、脆弱性がある可能性がある。
【００１８】
次に図２を参照すると、少なくとも１つの実施形態による、装置８のコンポーネントを示す概略図が示される。
【００１９】
１つの実施形態において、装置８は、活動監視コンポーネント１８、モデリング・エンジン・コンポーネント２０、およびセキュリティ監視コンポーネント２２の３つのコンポーネントを含むことができる。３つのコンポーネントは、装置８のプロセッサ２４によって実行することができる。活動監視コンポーネント１８、モデリング・エンジン・コンポーネント２０、およびセキュリティ監視コンポーネント２２は、例示目的でおよび異なる機能を説明するために、別々のコンポーネントとして図２に示される。１つの実施形態によれば、３つのコンポーネントは、セキュリティ機能を供給することができる１つのまたは同じソフトウェアまたはハードウェア要素全体の一部として実施することができる。活動監視コンポーネント１８、モデリング・エンジン・コンポーネント２０、およびセキュリティ監視コンポーネント２２は、アプリケーション１６にセキュリティを提供するように、かつ、アプリケーション１６に関連付けられる悪意のあるおよび犯罪の活動を検出し、防止するように、設計され得る。
【００２０】
１つの実施形態によれば、活動監視コンポーネント１８は、挙動モデリング・プロセスにデータを提供するためにユーザ活動ログを収集することができる。次いで、モデリング・エンジン・コンポーネント２０は、活動監視コンポーネント１８によって収集されたデータを使用し、ユーザ挙動をモデル化し得るグラフを生成することができる。次に、セキュリティ監視コンポーネント２２は、後続のユーザ・インターネット活動を監視し、任意のユーザ・インターネット活動が、生成されたモデルに反している可能性があるかどうかを検出することができる。モデリング・エンジン・コンポーネント２０は、ユーザ挙動モデルをグラフとして生成することができ、そこでは、グラフの各ノードは、アプリケーション１６内の位置に関する活動に対応することができ、ノード間の各接続部は、アプリケーション１６内の位置の間のユーザ・ナビゲート可能な経路を表すことができる。１つの実施形態において、アプリケーション１６内の位置は、アプリケーション１６の状態（例えば、特定のページ）でもよい。
【００２１】
前に説明したように、装置８の３つのコンポーネント（例えば、活動監視コンポーネント１８、モデリング・エンジン・コンポーネント２０、およびセキュリティ監視コンポーネント２２）は、アプリケーション１６に対して正常なユーザ挙動を表すグラフを生成するように実装され得て、次いで、生成されたグラフに一致しない任意のユーザ挙動を検出することができる。グラフは、ユーザが十分に長い期間にわたってアプリケーション１６に対して有することができる累積的な対話の正規化バージョンを含むデータ・セットから作り上げることができ、データ・セットは、活動監視コンポーネント１８によって集積することができる。集積されたデータ・セットにおけるアプリケーション１６の任意の悪意のあるユーザの重みは、アプリケーション１６のユーザの圧倒的多数が正規ユーザである可能性があるので、無視できるほどである可能性があることが考えられる。
【００２２】
次いで、モデリング・エンジン・コンポーネント２０は、活動監視コンポーネント１８によって集積されたデータ・セットを使用してグラフを生成することができる。少なくとも１つの実施形態において、活動監視コンポーネント１８も、モデリング・エンジン・コンポーネント２０も、アプリケーション１６の正常な動作を妨害しない可能性がある。活動監視コンポーネント１８およびモデリング・エンジン・コンポーネント２０は、２つのコンポーネント１８および２０を意識せずに正常な動作を実施することができるアプリケーション１６に対して透過的である可能性がある。
【００２３】
１つの実施形態によれば、ユーザ・デバイス１０を使用するユーザは、ウェブ・アプリケーションまたはモバイル・アプリケーション１６を閲覧することができ、そこでは、ユーザが機能をナビゲートするたびに、ユーザ・デバイス１０からサーバ１２にいくつかの要求をほぼ同時に送られ得る。前の例を継続すると、ユーザがオンライン・バンキング・アプリケーション１６を通じて決済するためにスマートフォン１０を使用しているとき、トークン確認要求、関連ページ上の画像、スタイルシート、および勘定残高情報などのいくつかの要求をアプリケーション・サーバ１２に送ることができる。１つの実施形態において、要求のクラスタは、疑似アトミック要求でもよい。活動監視コンポーネント１８は、アプリケーション１６内のユーザの現在の位置に関連した疑似アトミック要求をキャプチャすることができる。
【００２４】
次いで、モデリング・エンジン・コンポーネント２０は、集積された過去データを使用してユーザ・トラヒックを分析することができ、ユーザ挙動をグラフベースのデータ構造としてモデル化することができる。ユーザ・トラヒックがモデル化されると、セキュリティ監視コンポーネント２２は、生成されたモデルに対して、後続のユーザ・トラヒックを監視し、分析することができる。
【００２５】
次に図３を参照すると、少なくとも１つの実施形態による、グラフ２６の例を示す概略図が示される。
【００２６】
１つの実施形態において、グラフ２６は、１つまたは複数のノード２８と、１つまたは複数の接続部３０とを含むことができる。各接続部３０は、２つのノード２８を接続することができ、一方向接続部または双方向接続部でもよい。図３において、グラフ２６の１つの視覚表現が示される。しかしながら、グラフ２６の根拠をなすデータは、多くの様々な他のやり方で表すことができる。図３は、一緒にクラスタ化され得る様々な要求を示すテーブル３２も示す。図３に示すグラフ２６は、４つのノード２８だけを含むが、１つの実施形態において、グラフ２６は、アプリケーション１６に関連付けられた、任意の数のノード２８および接続部３０を含むことができる。
【００２７】
前の例を継続すると、オンライン・バンキング・アプリケーション１６に関連して、ノードＡが、アプリケーション１６のホーム・ページを表すことができ、ノードＢが、「現在残高」機能を表すことができ、ノードＣが、「送金」機能を表すことができる。したがって、図３に示すグラフ２６の構造は、ホーム・ページ（例えば、ノードＡ）の後、ユーザが「送金」ページ（例えば、ノードＣ）に直接ナビゲートすることができるか、またはまず「現在残高」ページ（例えば、ノードＢ）にナビゲートすることができるかのいずれかを示すことができる。接続部３０は、アプリケーション１６をナビゲートするとき、ユーザが利用可能なナビゲーション選択肢を表すことができる。
【００２８】
次に図４を参照すると、少なくとも１つの実施形態による、アプリケーション１６との対話に対するセキュリティ・チェックを実施する例示的なコンピュータ実施方法を示す動作フローチャートが示される。
【００２９】
ステップＳ４．１において、リモート・アプリケーションに関連したユーザ活動データが収集される。活動監視コンポーネント１８が、ネットワーク１４を通じてリモートでアクセスされるアプリケーション１６に関連したユーザ活動データを収集または集積することができる。１つの実施形態において、活動監視コンポーネント１８は、一定期間（例えば、２４時間）にわたるユーザのアプリケーション１６との対話を集積することができる。集積されたデータは、アプリケーション１６を提供する（ｈｏｓｔｉｎｇ）サーバ１２に対してユーザ・デバイス１０から行われる要求を含むことができるユーザ活動ログを含むことができる。
【００３０】
次いで、ステップＳ４．２において、グラフが、収集されたデータから生成される。モデリング・エンジン・コンポーネント２０は、収集されたユーザ活動データからグラフ２６（図３参照）を生成することができる。グラフ２６の各ノード２８（図３参照）は、アプリケーション１６内の位置に関連した、ユーザ・デバイス１０から受け取ったユーザ要求の組を表すことができる。さらに、グラフ２６のノード２８の間の各接続部３０（図３参照）は、アプリケーション１６内の位置の間のユーザ・ナビゲート可能な経路を表すことができる。１つの実施形態において、モデリング・エンジン・コンポーネント２０は、（ユーザのアプリケーション１６との対話の結果として）ユーザ・デバイス１０から受け取ったユーザ要求の組を疑似アトミック要求内に集めてクラスタ化することができ、次いで、それぞれのそのような疑似アトミック要求のクラスタに対してノード２８を生成することができる。
【００３１】
次に、ステップＳ４．３において、生成されたグラフが記憶される。アプリケーション１６との対話に対してセキュリティ・チェックを実施することができる装置８のプロセッサ２４は、生成されたグラフ２６が必要に応じて／必要なときに継続的にアクセスすることができるように、生成されたグラフ２６をローカルに記憶することができる。１つの実施形態によれば、生成されたグラフ２６は、装置８内にローカルに記憶することができる。
【００３２】
次いで、ステップＳ４．４において、ユーザ活動がアプリケーション内で監視される。セキュリティ監視コンポーネント２２は、アプリケーション１６に対する後続のユーザ活動を監視することができる。１つの実施形態において、セキュリティ監視コンポーネント２２は、アプリケーション１６を提供するサーバ１２への入力される要求によってアプリケーション１６が継続して使用され、アクセスされるとき、アプリケーション１６に関連付けられたユーザ活動を継続的に監視することができる。
【００３３】
次に、ステップＳ４．５において、グラフに一致しないユーザ活動が検出される。セキュリティ監視コンポーネント２２（図２参照）は、記憶されたグラフ２６（図３参照）に一致しない任意のユーザ活動を検出することができる。１つの実施形態によれば、セキュリティ監視コンポーネント２２は、例えば、サーバ１２に同時に送られない可能性があるクラスタの要求、サーバ１２に同時に送られる可能性がある異なるクラスタからの要求およびグラフ２６において発見することができる任意の異常なナビゲーション経路を含むユーザ活動を検出することができる。任意の悪意のある活動を検出することに応答して、セキュリティ監視コンポーネント２２は、アラートを生成することができ、検出されたアプリケーション１６への要求を休止させることができる。別の実施形態において、セキュリティ監視コンポーネント２２は、監視目的でアラートを作動させることができる。悪意のある活動が検出されたとき、アプリケーション１６の正常な動作を停止させることができ、アプリケーション１６のセキュリティを改善することができる。
【００３４】
前の例を継続すると、受け取ったユーザ要求の組が、生成されたグラフ２６（図３参照）のいずれのノード２８（図３参照）にも一致しないとき、ユーザ活動が検出され得る。具体的には、疑似アトミック要求を形成し得るユーザ要求は、ノード２８によって定義され得るクラスタのいずれかを形成する可能性のある要求に一致しない可能性がある。これはアプリケーション１６にアクセスする悪意のある試みを示すことができ、したがって、要求は拒否され得る。１つの実施形態において、すべての正常な受け取った要求は、グラフ２６におけるノード２８の要求に一致する可能性がある。したがって、任意の正常なユーザ要求の改ざんまたは偽のユーザ要求の作成を検出することができる。
【００３５】
１つの実施形態によれば、ユーザ活動が、接続部３０によって直接接続されない２つのノード２８の間のナビゲーションに対応する場合、ユーザ活動が検出され得る。アプリケーション１６において、ノード２８の間の接続部３０の潜在的な数は、極めて大きい可能性があるが、しかしながら、ほとんどのノード２８は、少数の他のノード２８だけに接続され得る。したがって、ユーザ活動が、グラフ２６上で接続されないアプリケーション１６における位置の間のナビゲーションを示す場合、ユーザ活動は、警報を作動させることができる。
【００３６】
警報が作動されると、セキュリティ方法は、例えば、不審な活動に応答しないようにアプリケーション１６を停止させ、ユーザ・アカウントへのアクセスを一時停止させ、アプリケーション１６の管理者への電子メール・アラートを生成することによって、自動的に動作することができる。すべての他の点において、アプリケーション１６は、継続して正常に動作することができ、セキュリティ・プロセスの様々なコンポーネントは、それぞれのコンポーネントのタスクを継続して実施することができる。セキュリティ監視コンポーネント２２は、アプリケーション１６に対するすべてのユーザ活動を継続して監視することができる。
【００３７】
次に図５を参照すると、少なくとも１つの実施形態による、その中に位置３４を含むアプリケーション１６を示す概略図が示される。
【００３８】
位置３４は、そこでユーザが、ユーザ・デバイス１０上で出力を提示され、またはユーザ・デバイス１０を使用して１つまたは複数の具体的な動作を実施し、あるいはその両方をすることができる、アプリケーション１６内の論理位置を含むことができる。例えば、ウェブ・アプリケーション１６のランディングまたはホーム・ページは、アプリケーション１６内の第１の位置３４でもよい。
【００３９】
アプリケーション１６は、アプリケーション１６内のナビゲート可能なルート３６を含むこともでき、そのルート３６は、ユーザがアプリケーション１６をナビゲートしながら（例えば、論理的な意味で）進んでいくことができる経路を表すことができる。例えば、ユーザがホーム・ページから「現在残高」ページにアクセスすることを選択した場合、ユーザは、アプリケーション１６内の新たな位置３４にナビゲートしなければならない可能性がある。モデリング・エンジン・コンポーネント２０は、ノード２８および接続部３０を含むグラフ２６を生成することができ、これらは、アプリケーション１６の位置３４およびルート３６に対応し得る。モデリング・エンジン・コンポーネント２０は、活動監視コンポーネント１８の出力に基づいて動作することができ、アプリケーション１６に直接アクセスできない可能性がある。したがって、モデリング・エンジン・コンポーネント２０は、グラフ２６を生成するプロセスにおいてアプリケーション１６のアプリケーション・ロジックにアクセスしない可能性がある。
【００４０】
１つの実施形態において、モデリング・エンジン・コンポーネント２０は、アプリケーション１６内の各位置３４に対するユーザ活動の加重平均を決定し、ユーザ活動の加重平均から、グラフ２６において、特定の位置３４に対するノード２８を生成することができる。モデリング・エンジン・コンポーネント２０は、特定の位置３４（および対応するノード２８）に対するユーザ活動に関連してユーザ活動の加重平均を決定することができる。アプリケーション１６のユーザの圧倒的多数が正規ユーザである可能性があり、したがって、データ・セットにおける悪意のあるユーザの重みが無視できるほどであり得ることが企図される。したがって、悪意のあるユーザ挙動は、グラフ２６に体系化されない可能性があり、グラフ２６は、アプリケーション１６に関連した正常なユーザの正常な動作を表すことができる。グラフ２６は、アプリケーション１６内の位置３４に対する正常なユーザ活動を表すことができる複数のノード２８を含むことができる。
【００４１】
１つの実施形態によれば、モデリング・エンジン・コンポーネント２０は、収集されたユーザ活動データから、ユーザのアプリケーション１６との対話とは無関係に生成された任意のデータ要求を除去することができる。このようにして、モデリング・エンジン・コンポーネント２０は、ユーザ活動とは無関係にサーバ１２に送られ得る一般的な要求を除去することができる。モデリング・エンジン・コンポーネント２０は、グラフ２６がユーザのアプリケーション１６との直接対話の結果として生成された疑似アトミック要求だけを体系化することができることを提供することができる。直接のユーザ動作の結果ではない、ユーザ・デバイス１０とサーバ１２上のアプリケーション１６との間で行われる可能性がある任意のバックグラウンド活動は、グラフ２６内に含まれない可能性がある。
【００４２】
次に図６を参照すると、本開示の実施形態に従った、データ処理システムを含む装置８を示す概略図が示される。
【００４３】
装置８は、装置８の動作を制御するように構成されたプロセッサ２４を含むことができる。装置８のプロセッサ２４は、（例えば、生成されたグラフ２６を記憶するための）ローカル記憶デバイス３８およびローカル・インターフェース４０に接続することができる。コンピュータ可読記憶媒体（「ＣＤ−ＲＯＭ」）４２を、装置８を動作させるようにプロセッサ２４を制御するのに使用することができるコンピュータ・プログラム製品を記憶するために設けることができる。プロセッサ２４は、コンピュータ・プログラム製品からの命令を実行して装置８を動作させることができる。プロセッサ２４は、モデリング・エンジン・コンポーネント２０（図２参照）を用いて、グラフ２６を生成することができる。次いで、プロセッサ２４は、生成されたグラフ２６をローカル記憶デバイス３８に記憶することができる。
【００４４】
本発明は、任意の可能な技術的に詳細な統合レベルにおけるシステム、方法、またはコンピュータ・プログラム製品あるいはその組合せでもよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためにコンピュータ可読プログラム命令をその上に有する１つのまたは複数のコンピュータ可読記憶媒体を含むことができる。
【００４５】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持し、記憶することができる有形デバイスであることができる。例えば、コンピュータ可読記憶媒体は、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁気記憶デバイス、半導体記憶デバイス、または前述のものの任意の適切な組合せでもよいが、それに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的リストには、携帯用コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラム可能読み取り専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、携帯用コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、フロッピー（登録商標）ディスク、パンチカードまたは上に命令を記録した溝における持ち上がった構造などの機械的にエンコードされたデバイス、および前述のものの任意の適切な組合せが含まれる。コンピュータ可読記憶媒体は、本明細書で使用するときは、電波または他の自由に伝播する電磁波、導波路もしくは他の伝送媒体中を伝播する電磁波（例えば、光ファイバ・ケーブル中を通過する光パルス）、または電線を通じて伝送される電気信号などの、それ自体が一過性の信号であると解釈されないものとする。
【００４６】
本明細書に説明するコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング／処理デバイスに、あるいはネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくは無線ネットワークまたはその組合せを介して外部コンピュータまたは外部記憶デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルーター、ファイアウォール、スイッチ、ゲートウェイ・コンピュータまたはエッジ・サーバあるいはその組合せを備えることができる。各コンピューティング／処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、コンピュータ可読プログラム命令をネットワークから受け取り、それぞれのコンピューティング／処理デバイス内のコンピュータ可読記憶媒体への記憶のためにコンピュータ可読プログラム命令を転送する。
【００４７】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ）命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、またはＳｍａｌｌｔａｌｋ（登録商標）、Ｃ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語または同様のプログラミング言語などの手続きプログラミング言語を含む、１つまたは複数のプログラミング言語の任意の組合せで作成されたソース・コードもしくはオブジェクト・コードのいずれかでもよい。コンピュータ可読プログラム命令は、全体的にユーザのコンピュータ上で、独立型のソフトウェア・パッケージとして部分的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上および部分的にリモート・コンピュータ上で、または全体的にリモート・コンピュータもしくはサーバ上で実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）またはワイド・エリア・ネットワーク（ＷＡＮ）を含む、任意の種類のネットワークを通じてユーザのコンピュータに接続することができ、あるいは（例えば、インターネット・サービス・プロバイダを使用してインターネットを通じて）外部コンピュータに接続することができる。いくつかの実施形態において、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、またはプログラマブル・ロジック・アレイ（ＰＬＡ）を含む電子回路は、本発明の態様を実施するために、電子回路を個別化するコンピュータ可読プログラム命令の状態情報を利用することによってコンピュータ可読プログラム命令を実行することができる。
【００４８】
本発明の態様は、本発明の実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して本明細書に説明する。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方のブロックの組合せは、コンピュータ可読プログラム命令によって実施することができることが理解されよう。
【００４９】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指定される機能／動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供されて、マシンを作り出すものであってもよい。これらのコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指定される機能／動作の態様を実施する命令を含んだ製品を備えるべく、コンピュータ可読記憶媒体に記憶され、コンピュータ、プログラム可能データ処理装置、または他のデバイスあるいはその組合せに特定の方式で機能するように指示することができるものであってもよい。
【００５０】
コンピュータ可読プログラム命令は、コンピュータ、他のプログラム可能装置、または他のデバイスで実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックで指定された機能／動作を実施するように、コンピュータ実施プロセスを作出するべく、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
【００５１】
図におけるフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実施のアーキテクチャ、機能、および動作を示す。この点において、フローチャートまたはブロック図における各ブロックは、指定された論理機能（複数可）を実施するための１つまたは複数の実行可能命令を含む、モジュール、セグメント、または命令の一部分を表すことができる。いくつかの代替実施において、ブロックに記載された機能は、図に記載された順番以外で行われる場合がある。例えば、連続して示す２つのブロックは、実際には、実質的に同時に実行することができ、またはブロックは、関与する機能に応じて時には逆の順番で実行することもできる。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組合せは、指定された機能または動作を実施し、または専用ハードウェアとコンピュータ命令との組合せを実行する、専用ハードウェアベースのシステムによって実施することができることも留意される。
【００５２】
例示目的で本発明の様々な実施形態の説明を提示してきたが、包括的であること、または開示された実施形態に限定されることは意図されていない。説明した実施形態の範囲から逸脱することなく多くの変更形態および変形形態が当業者には明らかであろう。本明細書に使用した専門用語は、実施形態の原理、市場で見出される技術に対する実際の適用もしくは技術的改善を最もよく説明するように、または本明細書に開示された実施形態を他の当業者が理解することを可能にするように選択されたものである。
【図１】
2021529366.tif 000003
【図２】
2021529366.tif 000004
【図３】
2021529366.tif 000005
【図４】
2021529366.tif 000006
【図５】
2021529366.tif 000007
【図６】
2021529366.tif 000008
【手続補正書】
【提出日】令和2年12月28日(2020.12.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
サーバ上で提供されるアプリケーションに対する悪意のある活動を検出するための方法であって、
ネットワークを通じてリモートでアクセスされるアプリケーションに関連付けられたユーザ活動データを収集することであって、収集された前記ユーザ活動データが、ユーザから受け取ったユーザ要求の少なくとも１つの組を含み、受け取ったユーザ要求の前記少なくとも１つの組の各組が、前記アプリケーション内の対応する位置に関連付けられている、前記収集することと、
収集された前記ユーザ活動データからグラフを生成することであって、生成された前記グラフが、複数のノードと前記複数のノードをリンクする複数の接続部とを含み、前記複数のノードの各ノードが、受け取ったユーザ要求の前記少なくとも１つの組の対応する組を表し、前記複数の接続部の各接続部が、前記アプリケーション内の対応する位置のペア間のユーザ・ナビゲート可能な経路を表す、前記生成することと、
生成された前記グラフを記憶することと、
前記ネットワークを通じてリモートでアクセスされる前記アプリケーションに関連付けられた後続のユーザ活動を監視することと、
前記後続のユーザ活動が、収集された前記ユーザ活動データの記憶された前記グラフに一致しないことを検出することと
を含む、方法。
【請求項２】
前記後続のユーザ活動が記憶された前記グラフに一致しないことを検出することが、受け取ったユーザ要求の後続の組が記憶された前記グラフの前記複数のノードのいずれのノードにも一致しないことを検出することをさらに含む、請求項１に記載の方法。
【請求項３】
前記後続のユーザ活動が記憶された前記グラフに一致しないことを検出することが、前記複数の接続部のうちの１つによってリンクされない、前記複数のノードのうちのノードのペア間のナビゲーションに対応する後続のユーザ活動を検出することをさらに含む、請求項１に記載の方法。
【請求項４】
前記アプリケーション内の各対応する位置に対するユーザ活動の加重平均を決定することと、
ユーザ活動の前記加重平均から、各対応する位置に対する前記複数のノードのうちの対応するノードを生成することと
をさらに含む、請求項１ないし３のいずれかに記載の方法。
【請求項５】
収集された前記ユーザ活動データから、ユーザの前記アプリケーションとの対話とは無関係に生成されるデータ要求を除去することをさらに含む、請求項１ないし４のいずれかに記載の方法。
【請求項６】
サーバ上で提供されるアプリケーションに対する悪意のある活動を検出するためのコンピュータ・システムであって、
１つまたは複数のプロセッサと、１つまたは複数のコンピュータ可読メモリと、１つまたは複数のコンピュータ可読有形記憶媒体と、前記１つまたは複数のメモリのうちの少なくとも１つを介して前記１つまたは複数のプロセッサのうちの少なくとも１つによる実行のための前記１つまたは複数のコンピュータ可読有形記憶媒体のうちの少なくとも１つに記憶されたプログラム命令とを含み、前記コンピュータ・システムは、
ネットワークを通じてリモートでアクセスされるアプリケーションに関連付けられたユーザ活動データを収集することであって、収集された前記ユーザ活動データが、ユーザから受け取ったユーザ要求の少なくとも１つの組を含み、受け取ったユーザ要求の前記少なくとも１つの組の各組が、前記アプリケーション内の対応する位置に関連付けられている、前記収集することと、
収集された前記ユーザ活動データからグラフを生成することであって、生成された前記グラフが、複数のノードと前記複数のノードをリンクする複数の接続部とを含み、前記複数のノードの各ノードが、受け取ったユーザ要求の前記少なくとも１つの組の対応する組を表し、前記複数の接続部の各接続部が、前記アプリケーション内の対応する位置のペア間のユーザ・ナビゲート可能な経路を表す、前記生成することと、
生成された前記グラフを記憶することと、
前記ネットワークを通じてリモートでアクセスされる前記アプリケーションに関連付けられた後続のユーザ活動を監視することと、
前記後続のユーザ活動が、収集された前記ユーザ活動データの記憶された前記グラフに一致しないことを検出することと
を含む方法を実施することができる、コンピュータ・システム。
【請求項７】
前記後続のユーザ活動が記憶された前記グラフに一致しないことを検出することが、受け取ったユーザ要求の後続の組が記憶された前記グラフの前記複数のノードのいずれのノードにも一致しないことを検出することをさらに含む、請求項６に記載のコンピュータ・システム。
【請求項８】
前記後続のユーザ活動が記憶された前記グラフに一致しないことを検出することが、前記複数の接続部のうちの１つによってリンクされない、前記複数のノードのうちのノードのペア間のナビゲーションに対応する後続のユーザ活動を検出することをさらに含む、請求項６に記載のコンピュータ・システム。
【請求項９】
前記アプリケーション内の各対応する位置に対するユーザ活動の加重平均を決定することと、
ユーザ活動の前記加重平均から、各対応する位置に対する前記複数のノードのうちの対応するノードを生成することとをさらに含む、請求項６ないし８のいずれかに記載のコンピュータ・システム。
【請求項１０】
収集された前記ユーザ活動データから、ユーザの前記アプリケーションとの対話とは無関係に生成されるデータ要求を除去することをさらに含む、請求項６ないし８のいずれかに記載のコンピュータ・システム。
【請求項１１】
サーバ上で提供されるアプリケーションに対する悪意のある活動を検出するためのプログラムを格納したコンピュータ可読な記録媒体であって、前記プログラムは、コンピュータに、請求項１ないし５のいずれかに記載の方法を実行させるためのものである、記憶媒体。
【請求項１２】
コンピュータ可読媒体に記憶され、デジタル・コンピュータの内部メモリにロード可能なコンピュータ・プログラムであって、前記プログラムがコンピュータ上で実行されたとき請求項１ないし５のいずれかに記載の方法を実施するためのソフトウェア・コード部分を含む、コンピュータ・プログラム。
【国際調査報告】
2021529366.tif 000009
2021529366.tif 000010