(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022008007
(43)【公開日】2022-01-13
(54)【発明の名称】アプリケーションにおける挙動の異常を検出するシステム、方法およびコンピュータ可読媒体
(51)【国際特許分類】
G06F 21/55 20130101AFI20220105BHJP
G06F 8/77 20180101ALI20220105BHJP
【FI】
G06F21/55
G06F8/77
【審査請求】未請求
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2021042131
(22)【出願日】2021-03-16
(31)【優先権主張番号】63/044,587
(32)【優先日】2020-06-26
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/180,912
(32)【優先日】2021-02-22
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】313015247
【氏名又は名称】アクロニス・インターナショナル・ゲーエムベーハー
(74)【代理人】
【識別番号】110002147
【氏名又は名称】特許業務法人酒井国際特許事務所
(72)【発明者】
【氏名】アンドレイ クラーガ
(72)【発明者】
【氏名】スタニスラフ プロタソフ
(72)【発明者】
【氏名】セルゲイ ベロウソフ
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376DA16
5B376FA13
(57)【要約】 (修正有)
【課題】アプリケーションにおける挙動の異常を検出する方法を提供する。
【解決手段】方法は、コンピュータデバイス上のアプリケーションの使用履歴情報から少なくとも1つの主要メトリックを検索するステップと、アプリケーションに関連する使用挙動を予測するように構成された回帰モデルを生成するステップと、少なくとも1つの主要メトリックに関連するデータにおける外れ値を識別するように構成された統計モデルを生成するステップと、アプリケーションの使用情報をリアルタイムで受信するステップと、回帰モデルを使用して、少なくとも1つの主要メトリックの期待値を示す、アプリケーションの使用パターンを予測するステップと、使用情報が、予測された使用パターンに対応しておらず、かつ、既知の外れ値を含んでいないとの判定に応じて、挙動の異常を検出するステップと、を含む。
【選択図】
図2
【特許請求の範囲】
【請求項1】
アプリケーションにおける挙動の異常を検出する方法であって、
コンピュータデバイス上のアプリケーションの使用履歴情報を検索するステップと、
前記使用履歴情報から少なくとも1つの主要メトリックを識別するステップと、
前記少なくとも1つの主要メトリックに関連するデータに基づいて前記アプリケーションに関連する使用挙動を予測するように構成された回帰モデルを生成するステップと、
前記少なくとも1つの主要メトリックに関連する前記データにおける外れ値を識別するように構成された統計モデルを生成するステップと、
前記回帰モデルを生成するステップと前記統計モデルを生成するステップの後に、前記アプリケーションの使用情報をリアルタイムで受信するステップと、
前記回帰モデルを使用して、前記少なくとも1つの主要メトリックの期待値を示す、前記アプリケーションの使用パターンを予測するステップと、
リアルタイムで受信した前記使用情報は予測された前記使用パターンに対応していないとの判定に応じて、前記使用情報が既知の外れ値を含んでいるか否かを、前記統計モデルを介して判定するステップと、
前記使用情報は前記既知の外れ値を含んでいないとの判定に応じて、前記挙動の異常を検出するステップと、
前記挙動の異常を示すアラートを生成するステップと、
を含む、方法。
【請求項2】
前記使用履歴情報は、周期的な時間間隔内に生じたものであり、
前記使用パターンを予測する前記ステップは、前記時間間隔に関連する前記回帰モデルのバージョンを使用することを、さらに含む、
請求項1に記載の方法。
【請求項3】
前記統計モデルは、前記少なくとも1つの主要メトリックに関連するデータポイントであって、異常ではないデータポイントをハイライトする確率分布である、
請求項1に記載の方法。
【請求項4】
前記少なくとも1つの主要メトリックは、
(1)クライアント接続、
(2)待ち時間、
(3)アカウントルックアップ数、
(4)読み込みバイト、および
(5)ファイルルックアップ数、
のうち、少なくとも1つを含む、
請求項1に記載の方法。
【請求項5】
リアルタイムで受信した前記使用情報は予測された前記使用パターンに対応しているとの判定、または、前記使用情報は前記既知の外れ値を含んでいるとの判定に応じて、前記挙動の異常は発生していないと判定し、前記アラートを生成しないステップ
をさらに含む、請求項1に記載の方法。
【請求項6】
リアルタイムで受信した前記使用情報は予測された前記使用パターンに対応していないと判定するステップは、
リアルタイムで受信した前記使用情報からの前記少なくとも1つの主要メトリックの値と予測された前記使用パターンに従った前記少なくとも1つの主要メトリックの前記期待値との差の平均が、閾値差を超えていると判定することを、さらに含む、
請求項1に記載の方法。
【請求項7】
前記挙動の異常が誤検出であることを示す前記アラートに対する応答を受信するステップと、
自動的に前記閾値差を増加させるステップと、
をさらに含む、請求項6に記載の方法。
【請求項8】
前記挙動の異常が誤検出であることを示す前記アラートに対する応答を受信するステップと、
リアルタイムで受信した前記使用情報に基づいて、前記回帰モデルと前記統計モデルの両方を調節するステップであって、前記回帰モデルは更新されたデータセット上で再訓練され、前記統計モデルは更新された外れ値を示す、ステップと、
をさらに含む、請求項1に記載の方法。
【請求項9】
アプリケーションにおける挙動の異常を検出するシステムであって、
コンピュータデバイス上のアプリケーションの使用履歴情報を検索し、
前記使用履歴情報から少なくとも1つの主要メトリックを識別し、
前記少なくとも1つの主要メトリックに関連するデータに基づいて前記アプリケーションに関連する使用挙動を予測するように構成された回帰モデルを生成し、
前記少なくとも1つの主要メトリックに関連する前記データにおける外れ値を識別するように構成された統計モデルを生成し、
前記回帰モデルの生成と前記統計モデルの生成の後に、前記アプリケーションの使用情報をリアルタイムで受信し、
前記回帰モデルを使用して、前記少なくとも1つの主要メトリックの期待値を示す、前記アプリケーションの使用パターンを予測し、
リアルタイムで受信した前記使用情報は予測された前記使用パターンに対応していないとの判定に応じて、前記使用情報が既知の外れ値を含んでいるか否かを、前記統計モデルを介して判定し、
前記使用情報は前記既知の外れ値を含んでいないとの判定に応じて、前記挙動の異常を検出し、
前記挙動の異常を示すアラートを生成する
ように構成されたハードウェアプロセッサ
を含む、システム。
【請求項10】
前記使用履歴情報は、周期的な時間間隔内に生じたものであり、
前記使用パターンを予測することは、前記時間間隔に関連する前記回帰モデルのバージョンを使用することを、さらに含む、
請求項9に記載のシステム。
【請求項11】
前記統計モデルは、前記少なくとも1つの主要メトリックに関連するデータポイントであって、異常ではないデータポイントをハイライトする確率分布である、
請求項9に記載のシステム。
【請求項12】
前記少なくとも1つの主要メトリックは、
(1)クライアント接続、
(2)待ち時間、
(3)アカウントルックアップ数、
(4)読み込みバイト、および
(5)ファイルルックアップ数、
のうち、少なくとも1つを含む、
請求項9に記載のシステム。
【請求項13】
前記ハードウェアプロセッサは、
リアルタイムで受信した前記使用情報は予測された前記使用パターンに対応しているとの判定、または、前記使用情報は前記既知の外れ値を含んでいるとの判定に応じて、前記挙動の異常は発生していないと判定し、前記アラートを生成しない
ように、さらに構成されている、
請求項9に記載のシステム。
【請求項14】
前記ハードウェアプロセッサは、
リアルタイムで受信した前記使用情報からの前記少なくとも1つの主要メトリックの値と予測された前記使用パターンに従った前記少なくとも1つの主要メトリックの前記期待値との差の平均が、閾値差を超えていると判定することによって、
リアルタイムで受信した前記使用情報は予測された前記使用パターンに対応していないと判定するように構成されている、
請求項9に記載のシステム。
【請求項15】
前記ハードウェアプロセッサは、
前記挙動の異常が誤検出であることを示す前記アラートに対する応答を受信し、かつ、
自動的に前記閾値差を増加させる
ように、さらに構成されている、
請求項14に記載のシステム。
【請求項16】
前記ハードウェアプロセッサは、
前記挙動の異常が誤検出であることを示す前記アラートに対する応答を受信し、
リアルタイムで受信した前記使用情報に基づいて、前記回帰モデルと前記統計モデルの両方を調節する
ように、さらに構成されており、
前記調節において、前記回帰モデルは更新されたデータセット上で再訓練され、前記統計モデルは更新された外れ値を示す、
請求項9に記載のシステム。
【請求項17】
アプリケーションにおける挙動の異常を検出するためのコンピュータ実行可能命令を格納する非一時的なコンピュータ可読媒体であって、
前記コンピュータ実行可能命令は、
コンピュータデバイス上のアプリケーションの使用履歴情報を検索し、
前記使用履歴情報から少なくとも1つの主要メトリックを識別し、
前記少なくとも1つの主要メトリックに関連するデータに基づいて前記アプリケーションに関連する使用挙動を予測するように構成された回帰モデルを生成し、
前記少なくとも1つの主要メトリックに関連する前記データにおける外れ値を識別するように構成された統計モデルを生成し、
前記回帰モデルの生成と前記統計モデルの生成の後に、前記アプリケーションの使用情報をリアルタイムで受信し、
前記回帰モデルを使用して、前記少なくとも1つの主要メトリックの期待値を示す、前記アプリケーションの使用パターンを予測し、
リアルタイムで受信した前記使用情報は予測された前記使用パターンに対応していないとの判定に応じて、前記使用情報が既知の外れ値を含んでいるか否かを、前記統計モデルを介して判定し、
前記使用情報は前記既知の外れ値を含んでいないとの判定に応じて、前記挙動の異常を検出し、
前記挙動の異常を示すアラートを生成する
ための命令を含む、
非一時的なコンピュータ可読媒体。
【請求項18】
前記使用履歴情報は、周期的な時間間隔内に生じたものであり、
前記使用パターンを予測することは、前記時間間隔に関連する前記回帰モデルのバージョンを使用することを、さらに含む、
請求項17に記載の非一時的なコンピュータ可読媒体。
【請求項19】
前記統計モデルは、前記少なくとも1つの主要メトリックに関連するデータポイントであって、異常ではないデータポイントをハイライトする確率分布である、
請求項17に記載の非一時的なコンピュータ可読媒体。
【請求項20】
前記少なくとも1つの主要メトリックは、
(1)クライアント接続、
(2)待ち時間、
(3)アカウントルックアップの数、
(4)読み込みバイト、および
(5)ファイルルックアップの数、
のうち、少なくとも1つを含む、
請求項17に記載の非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、データセキュリティの分野に関し、より具体的には、アプリケーションにおける挙動の異常を検出するシステム、方法およびコンピュータ可読媒体に関する。
【背景技術】
【0002】
格納されたデータおよびアプリケーションは、それらのストレージの場所や関連するネットワークの接続によっては、悪意のあるサイバー攻撃を受ける傾向にあることが多い。侵入およびマルウェアを監視するために、各種組織は、挙動の異常を検出する監視システムを利用する。しかし、従来の監視システムでは、主要アプリケーションメトリックに対するアラートの閾値を手動定義することが必要となる。第一に、アラートの閾値の設定は労働集約的である。さらに、管理者が定義した間隔内に主要メトリックがない場合、アラートの閾値は異常な挙動の検出を妨げる。たとえば、管理者が設定したアラートの閾値は、午前0時~午前6時の時間帯に、所与のサーバ上で、65%超のCPU使用率を異常であると識別しうる。しかし、CPU処理のわずか64%しか使用しない悪意のある実体は検出されないであろう。
【発明の概要】
【発明が解決しようとする課題】
【0003】
一方、アラートの閾値は、いくつかの誤検出を引き起こしうる。たとえば、許可されたユーザは、ある時点でCPU処理の70%を使用するように、上述したタイムウィンドウの間に実際にサーバを利用しうる。許可されたユーザによる上記使用にもかかわらず、従来の監視システムは、異常を宣言すると、誤検出を引き起こすことになろう。トリガーへの前記システムの反応をどのように設計しているかによって、許可されたユーザによるアクセスが困難または不可能になることがありうる。したがって、異常検出へのアプローチを改善する必要がある。
【課題を解決するための手段】
【0004】
本開示の態様は、アプリケーションにおける挙動の異常を検出する分野に関する。例示的な一態様において、方法は、コンピュータデバイス上のアプリケーションに対する使用履歴情報を検索するステップを含んでもよい。前記方法は、使用履歴情報から、少なくとも1つの主要メトリックを識別するステップを含んでもよい。前記方法は、前記少なくとも1つの主要メトリックに関連するデータに基づいて、アプリケーションに関連する使用挙動を予測するように構成された回帰モデルを生成するステップを含んでもよい。前記方法は、前記少なくとも1つの主要メトリックに関連するデータにおける外れ値を識別するように構成された統計モデルを生成するステップを含んでもよい。回帰モデルを生成するステップと統計モデルを生成するステップの後に、前記方法は、アプリケーションの使用情報をリアルタイムで受信するステップを含んでもよい。前記方法は、回帰モデルを用いて、前記少なくとも1つの主要メトリックの期待値を示す、アプリケーションの使用パターンを予測するステップを含んでもよい。前記方法は、リアルタイムで受信した使用情報は予測された使用パターンに対応していないとの判定に応じて、使用情報が既知の外れ値を含むか否かを、統計モデルを介して判定するステップを含んでもよい。前記方法は、使用情報は既知の外れ値を含まないとの判定に応じて、挙動の異常を検出するステップを含んでもよい。前記方法は、挙動の異常を示すアラートを生成するステップを含んでもよい。
【0005】
いくつかの態様において、使用履歴情報は、周期的な時間間隔内に生じたものであり、また、使用パターンを予測するステップは、前記時間間隔に関連する回帰モデルのバージョンを使用するステップをさらに含んでもよい。
【0006】
いくつかの態様において、統計モデルは、前記少なくとも1つの主要メトリックに関連するデータポイントであって、異常ではないデータポイントをハイライトする確率分布である。
【0007】
いくつかの態様において、前記少なくとも1つの主要メトリックは、(1)クライアント接続、(2)待ち時間、(3)アカウントルックアップ数、(4)読み込みバイト、および、(5)ファイルルックアップ数、のうち少なくとも1つを含む。
【0008】
いくつかの態様において、リアルタイムで受信した使用情報は予測された使用パターンに対応しているとの判定、または使用情報は既知の外れ値を含んでいるとの判定に応じて、前記方法は、挙動の異常は発生していないと判定し、アラートを生成しないステップを含んでもよい。
【0009】
いくつかの態様において、リアルタイムで受信した使用情報は予測された使用パターンに対応していないと判定するステップは、リアルタイムで受信した使用情報からの前記少なくとも1つの主要メトリックの値と予測された使用パターンに従った前記少なくとも1つの主要メトリックの期待値との差の平均が、閾値差を超えていると判定するステップをさらに含む。
【0010】
いくつかの態様において、前記方法は、挙動の異常が誤検出であることを示すアラートに対する応答を受信するステップと、自動的に閾値差を増加させるステップとを含んでもよい。
【0011】
いくつかの態様において、前記方法は、挙動の異常が誤検出であることを示すアラートに対する応答を受信するステップと、リアルタイムで受信した使用情報に基づいて、回帰モデルと統計モデルの両方を調節するステップとを含んでもよい。前記回帰モデルは更新されたデータセット上で再訓練され、前記統計モデルは更新された外れ値を示す。
【0012】
なお、上述した方法を、ハードウェアプロセッサを含むシステムにおいて実現してもよい。または、非一時的コンピュータ可読媒体のコンピュータ実行可能命令を用いて、前記方法を実現してもよい。
【0013】
例示的な態様についての上記の簡略な概要は、本開示を基本的に理解させるためのものである。この概要は、検討したすべての態様の広範な概略ではなく、また、すべての態様の主要または重大な要素を特定することを意図するものでもなく、本開示の任意またはすべての態様の範囲を説明するものでもない。その唯一の目的は、以下の開示におけるより詳細な説明の前置きとして、1つまたは複数の態様を簡略化した形で提示することである。前述の目的を達成するために、本開示の1つまたは複数の態様は、特許請求の範囲に記載され、例示的に指摘される特徴を含む。
【図面の簡単な説明】
【0014】
本明細書の一部に組み込まれ、本明細書の一部を構成する添付の図面は、本開示の1つまたは複数の例示的な態様を示し、詳細な説明とともに、それらの原理および実施態様を説明するのに役立つ。
【
図1】
図1は、本開示の態様に従って、アプリケーションにおける挙動の異常を検出するシステムを示すブロック図である。
【
図2】
図2は、本開示の態様に従って、アプリケーションにおける挙動の異常を検出する方法を示すフローチャートである。
【
図3】
図3は、本開示の態様を実現することが可能な汎用コンピュータシステムの一例を示す図である。
【発明を実施するための形態】
【0015】
アプリケーションにおける挙動の異常を検出するシステム、方法、およびコンピュータプログラム製品の文脈で、例示的な態様を本明細書において説明する。当業者であれば、以下の説明は例示的なものにすぎず、本発明を限定することを意図するものではないことを理解するであろう。他の態様は、本開示の恩恵を享受する当業者には容易に示唆されるであろう。添付の図面が示す例示的な態様の実現について、以下に詳細に説明する。同じまたは同様の項目を表すために、可能な限り図面全体および以下の説明にわたって、同じ参照符号を使用する。
【0016】
従来の監視システムの欠点に取り組むために、異常検出システムは、モデルを訓練するための手動作業を必要とせず、いずれのタイプの装置に対しても動作し、自動的に異常を検出し、ユーザのニーズに基づいて異常の定義を調整し、システムの負荷とは無関係に異常を検出できるように閾値を適応させ、非常に正確であり、かつ、アラートスパム(たとえば誤検出)を低減する。
【0017】
図1は、本開示の態様に従って、アプリケーションにおける挙動の異常を検出するシステム100を示すブロック図である。異常検出システム(Anomaly Detection System:ADS)102は、アンチウイルスソフトウェアなどのセキュリティソフトウェアのモジュールであってもよい。ADS102は、記憶装置104上の異常を監視するために記憶装置104に格納されてもよく、または、異なる装置に格納され、インターネットなどのネットワークを介して記憶装置104と通信してもよい。データ検索装置106、機械学習モジュール108、統計モジュール110、およびセキュリティモジュール112など、複数の構成要素でADS102を構成してもよい。
【0018】
例示的な態様において、ADS102のデータ検索装置106を、コンピュータデバイス(たとえば、
図3に記載するコンピュータシステム)上のアプリケーションの使用履歴情報を検索するように構成してもよい。使用履歴情報は、詳細、たとえば、いつ、誰によってアプリケーションがアクセスされたか、装置の状態の情報(たとえば、RAM消費、CPUの使用率、記憶空間など)、アプリケーションへの要求、アプリケーションによる要求、および、アプリケーション(たとえばIPアドレス)によって使用されたネットワーク接続などを含む。いくつかの態様において、アプリケーションはコンピュータデバイスにインストールされているため、使用履歴情報はすべての情報であってもよい。いくつかの態様において、使用履歴情報は、所与の時間間隔(たとえば、2020年6月1日午前0時~2020年6月2日午前0時)であってもよい。いくつかの態様において、使用履歴情報は、周期的な時間間隔であってもよい。たとえば、アプリケーションがインストールされているため、データ検索装置106は毎週月曜日に情報を検索してもよい。月曜日に特定したデータに基づいて、ADS102は、次の月曜日の挙動を予測することができる。
【0019】
使用履歴情報から、データ検索装置106は、少なくとも1つの主要メトリックを識別してもよい。アプリケーションに従って、主要メトリックは、クライアント接続数、コマンドおよび実行の待ち時間、アカウントルックアップ数、読み込みバイト量、ならびにファイルルックアップ数であってもよい。なお、書き込みバイト量、使用時間の長さ、アプリケーションにおいてアクセスされた特徴など、他の多くの主要メトリックも同様に存在してもよい。データ検索装置106は、使用履歴情報を解析して、少なくとも1つの主要メトリックを識別し、前記少なくとも1つの主要メトリックに関連するデータを有するデータ構造を生成してもよい。たとえば、識別された主要メトリックが、アプリケーションに関連する読み込みバイト量である場合、データ構造は、タイムスタンプと、それに対応する読み込みバイト数とを含んでもよい。このデータ構造は、訓練データ114であり、ADS102が使用し、機械学習モジュール108を生成する。機械学習モジュール108は、少なくとも1つの主要メトリックに関連するデータに基づいて、アプリケーションに関連する使用挙動を予測するように構成されている。
【0020】
いくつかの態様において、機械学習モジュール108は、ノベルティ検出に使用される1クラスサポートベクターマシン(one-class Support Vector Machine:SVM)であってもよい。使用履歴情報から取得した主要メトリックを用いて、1クラスSVMを訓練してもよい。異常が非常に稀なものである可能性があるので、データ114の大多数は、アプリケーションの正確な使用を示すのみであってもよい。1クラスSVMによって、訓練データ114(すなわち、正確な使用を表す主要メトリック)とは異なる使用データを異常なものとして分類することが可能となる。
【0021】
いくつかの態様において、機械学習モジュール108は、独立変数に基づいて予測値の的を絞る機械学習アルゴリズムであってもよい。いくつかの態様において、1つの主要メトリックのみを使用する場合、機械学習モジュール108は、線形回帰モデルを使用することであってもよい。他の態様において、モジュール108を生成する際に複数の主要メトリックを考慮にいれる場合、多項回帰モデルまたは多変数線形回帰モデルが使用される。機械学習モジュール108の目標は、アプリケーションがどのような挙動の履歴を持つかを学習し、そして、アプリケーションが今後どのような挙動をするか予測することである。たとえば、アプリケーションが、過去10週間の月曜日の午前0時~午前0時1分の間に、ある待ち時間とあるルックアップ数を有していた場合、前記アプリケーションは、次の月曜日に、同じ待ち時間およびルックアップ数を有すると予想できる。機械学習モジュール108に対して、確率的勾配降下法などの教育方法を用いて、訓練データ114に関する訓練および試験を行ってもよい。
【0022】
ADS102は、少なくとも1つの主要メトリックに関連するデータにおける外れ値を識別するように構成されている統計モジュール110を生成してもよい。統計モジュールは、前記少なくとも1つの主要メトリックに関連するデータポイントであって、異常ではないデータポイントをハイライトする確率分布を用いる。主要メトリックは読み込みバイト数であると仮定する。月曜日の午前0時~午前0時1分の間などの時間間隔を考慮すると、ADS102は、読み込みバイトを示す確率分布を作成してもよい。この確率分布において、発生(および、これまでの発生)についての最も低い確率を有する読み込みバイト数は、外れ値とみなされる。たとえば、ある時間の95%において、アプリケーションの読み込みバイトは、所与の間隔で900万~1000万であった可能性がある。しかし、前記時間の5%において、前記アプリケーションの読み込みバイトは、所与の間隔で1500万バイト超であった。いくつかの態様において、ADS102は、見込み閾値を設定して、外れ値を識別してもよい。この場合、5%以下の確率を有するバイト数のいずれも外れ値であるとみなされる。
【0023】
アプリケーションがどのような挙動をする可能性が高いか、および、稀な場合においてアプリケーションがどのような挙動をするか予測する方法を、機械学習モジュール108と統計モジュール110とが一緒に提供する。アクティビティが異常で悪意があると従来の監視システムが宣言する場合がありうる。しかし、このアクティビティは、コンピュータデバイスの許可されたユーザが引き起こした外れ値に関連している可能性がある。
【0024】
機械学習モデル(たとえば回帰モデル)を生成するステップおよび統計モデルを生成するステップの後に、ADS102のデータ検索装置106は、アプリケーションの使用情報をリアルタイムで受信してもよい。ADS102は、機械学習モジュール108を用いて、少なくとも1つの主要メトリックを基準としてアプリケーションの使用パターンを予測してもよい。使用パターンは、将来における主要メトリックの予測値一式を示す。たとえば、機械学習モジュール108は、入力として時間間隔を備え、時間間隔中の、期待する読み込みバイト数を出力してもよい。この場合、前記出力は、毎秒の読み込みバイト数を含むデータ構造であってもよい。
【0025】
セキュリティモジュール112は、予測された使用パターンをリアルタイムパターンと比較するように構成されたモジュールであってもよい。たとえば、機械学習モジュール108の出力は、月曜日の午前0時~午前0時1分の間に関連する時間間隔中の60個のデータポイント(毎秒1個)であってもよい。前記データポイントは、期待する読み込みバイト数であってもよい。データ検索装置106は、同じ時間間隔中の60個のデータポイントを提供してもよい。これらのデータポイントは、実際の読み込みバイト数であってもよい。
【0026】
いくつかの態様において、リアルタイムで受信した使用情報は予測された使用パターンと対応していないと判定するステップは、リアルタイムで受信した使用情報からの少なくとも1つの主要メトリックの値と予測された使用パターンに従った前記少なくとも1つの主要メトリックの期待値との差の平均が、閾値差を超えていると判定することを含む。たとえば、時間間隔において、読み込みバイト数の平均が1000万であり、予測された読み込みバイト数の平均が500万であってもよい。閾値差が、200万に等しい初期値であってもよい。平均値の差は500万であり、この差は閾値差よりも大きい。したがって、セキュリティモジュール112は、使用情報が潜在的異常であると判定しうる。なお、平均数は、平均値、標準偏差値、中央値などでありうる。
【0027】
いくつかの態様において、セキュリティモジュール112は、各々のデータポイントを比較し、予測における誤差率を判定してもよい。たとえば、セキュリティモジュール112は、予測した使用パターンにおける第1データポイントと実際の使用における第1データポイントとの間の誤差率を判定してもよい。各誤差率に対して、誤差率が閾値誤差率(たとえば20%)より大きい場合、セキュリティモジュール112は、受信データ(すなわち使用情報)は使用パターンに対応していないと判定してもよい。使用情報が潜在的異常か否かを判定するために、セキュリティモジュール112は、閾値誤差率よりも大きな誤差率であるか否かによって、データポイント数を判定してもよい。データポイントの大半が閾値誤差率よりも大きい誤差率を有する場合、使用情報を潜在的異常であると識別してもよい。その後、「潜在的異常」から「異常」への変更は、統計モデルに基づいて行われる。
【0028】
より具体的には、セキュリティモジュール112は、受信した使用情報が、異常ではなく、既知の外れ値を含むか否かを、統計モジュール110を介して判定する。たとえば、既知の外れ値は、(回帰モデルは1000万以下であると予測したものの)、アプリケーションにおいて、所与の時間間隔中、読み込みバイトが平均して1500万よりわずかに小さかったことがあることを示してもよい。受信した使用情報が、時間間隔内における短時間の読み込みバイトが1450万であったことを示す場合、受信した使用情報を外れ値とみなすことができる。しかし、使用情報が、はるかに高い読み込みバイト数(たとえば、2000万の読み込みバイト数)を示す場合、セキュリティモジュール112は、このようなバイト量を過去に読み込んだことがなく、したがって、これは異常である可能性があると判定してもよい。よって、使用情報は外れ値を含んでいないとの判定に応じて、セキュリティモジュール112は、挙動の異常を検出し、そして、挙動の異常を示すアラートを生成してもよい。一方、リアルタイムで受信した使用情報は予測された使用パターンに対応しているとの判定、または、使用情報は既知の外れ値を含んでいるとの判定に応じて、挙動の異常が発生していないと判定し、アラートを生成しなくてもよい。
【0029】
いくつかの態様において、数個の外れ値を含むウィンドウが検出された場合に、異常が検出されてもよい。たとえば、使用情報の受信に応じて、ADS102は、(特に、予測された挙動が処理能力を保つのに見合わない場合)、受信した使用情報の別の統計モデルを生成してもよい。時間間隔中、読み込みバイト数は、時間の95%において約1400万であり、かつ、時間の5%においてわずか700万であったことを、新しく受信した使用情報が示してもよい。1400万バイト超を読み込むための、このように長い時間の比率を、異常の確率閾値(たとえば70%)と比較してもよい。前記比率が異常の確率閾値よりも大きい場合、バイト数は外れ値であるが、前記外れ値が発生する確率は、異常とみなされるのには十分高いと判定することができる。
【0030】
いくつかの態様において、外れ値が検出された際に挙動の異常を検出するために、セキュリティモジュール112は、範囲外の主要メトリックの閾値数よりも大きい値をすぐに検出されるか否かを判定する。たとえば、範囲外の主要メトリックは、読み込みバイト数であってもよい。他の範囲外の主要メトリックは、待ち時間の量であってもよい。追跡された5つの主要メトリックのうち、3つが外れ値であると仮定する。主要メトリックの閾値量が外れ値を有するとの判定に応じて、セキュリティモジュール112は、挙動の異常を検出してもよい。いくつかの態様において、具体的には、外れ値を有する主要メトリック量が独立した主要メトリックである場合に、セキュリティモジュール112は挙動の異常を検出してもよい。独立した主要メトリックは、別の主要メトリックによって影響されない主要メトリックであってもよい。たとえば、読み込みバイト数を、ファイルルックアップ数に関連づけてもよい。したがって、両方の主要メトリックにおいて外れ値が検出された場合、1つの外れ値のみを、閾値量と比較するために考慮してもよい。一方、読み込みバイト数は、アプリケーション上のアカウント数と無関係であってもよい。したがって、両方の主要メトリックにおいて外れ値が検出された場合、2つの外れ値を考慮してもよい。ADS102は、すべての主要メトリック、およびデータベース中の前記主要メトリックへの対応物各々を追跡し続けてもよい。
【0031】
なお、統計モデルを使用することで、機械学習モジュール108による閾値への依存を緩和する。その理由は、履歴面で期待されるような形でアプリケーションが使用されていなくとも(たとえば、誤差率または平均差は、それぞれ、閾値誤差率または閾値差と過度に異なっていなくとも)、外れ値を確認することで、誤検出や検出漏れを最低限に抑えるからである。その理由は、通常、異常であると誤って分類されうる使用が統計モデルによって外れ値であると判明した場合、その使用を、正常使用であると正しく分類されうるからである。
【0032】
さらに、異常と分類された使用が実際に異常であるか否かに基づいて、モジュール108および110が使用する閾値を調節してもよい。たとえば、セキュリティモジュール112は、所与の時間間隔中のアプリケーションの使用が異常であることを示すアラートを生成してもよい。このアラートを、電子メール、テキスト、音声出力、アプリケーション通知などの形で、ユーザ(たとえば、装置104の管理者)のコンピュータデバイス上に生成してもよい。アラートの生成に応じて、ADS102は、挙動の異常が誤検出であることを示すアラートに対する応答を受信してもよい。たとえば、アラートは、ユーザによる使用であったのか、または無許可の実体による使用であったのかを確認することを要求してもよい。ユーザは、使用することを許可されたことを示してもよい。したがって、セキュリティモジュール112は、モジュール108および110が使用する閾値を、(たとえば前記閾値を緩和することによって)調節してもよい。主要メトリックの平均値(予測された平均値と実際の平均値の両方)に関連する閾値差の例において、セキュリティモジュール112は、閾値差を自動的に増加させてもよい。
【0033】
いくつかの態様において、挙動の異常が誤検出であることを示すアラートに対する応答を受信したことに応じて、セキュリティモジュール112は、リアルタイムで受信した使用情報に基づき、回帰モデルと統計モデルの両方を調節してもよい。より具体的には、ADS102は、リアルタイムで受信した収集使用情報を異常ではないものとして分類している更新されたデータセットを用いて、回帰モデルを再訓練してもよく、また、使用情報を外れ値と識別しうる統計モデルを再生成してもよい。
【0034】
図2は、本開示の態様に従って、アプリケーションにおける挙動の異常を検出する方法200を示すフローチャートである。ステップ202において、データ検索装置106は、コンピューティングデバイス上のアプリケーションの使用履歴情報を検索する。ステップ204において、データ検索装置106は、使用履歴情報から少なくとも1つの主要メトリックを識別する。ステップ206において、異常検出システム102は、前記少なくとも1つの主要メトリックに関連するデータに基づいてアプリケーションに関連する使用挙動を予測するように構成された機械学習モジュール108を生成する。ステップ208において、異常検出システム102は、前記少なくとも1つの主要メトリックに関連するデータにおける外れ値を識別するように構成された統計モジュール110を生成する。
【0035】
ステップ210において、データ検索装置106は、アプリケーションの使用情報をリアルタイムで受信する。ステップ212において、異常検出システム102は、機械学習モジュール108を用いて、少なくとも1つの主要メトリックを基準としてアプリケーションの使用パターンを予測する。ステップ214において、異常検出システム102は、使用情報が使用パターンに対応しているか否かを判定する。使用情報が使用パターンに対応していないとの判定に応じて、ステップ216において、異常検出システム102は、使用情報が既知の外れ値を含んでいるか否かを判定する。使用情報が既知の外れ値を含んでいないとの判定に応じて、ステップ218において、セキュリティモジュール112は挙動の異常を検出し、ステップ220において、セキュリティモジュール112はアラートを生成する。ステップ214または216において、異常検出システム102が、使用情報が使用パターンに対応していると判定するか、または、使用情報が既知の外れ値を含んでいると判定した場合、方法200は、ステップ210へ戻り、異常検出システム102は挙動の異常を監視し続ける。
【0036】
図3は、アプリケーションにおける挙動の異常を検出するシステムおよび方法の態様を例示的な態様に従って実現しうるコンピュータシステム20を示すブロック図である。コンピュータシステム20は、複数のコンピューティングデバイスの形をとっていてもよく、または、単一のコンピューティングデバイス、たとえば、デスクトップコンピュータ、ノート型コンピュータ、ラップトップコンピュータ、モバイルコンピューティングデバイス、スマートフォン、タブレットコンピュータ、サーバ、メインフレーム、埋込み型デバイス、および他の形式のコンピューティングデバイスの形をとっていてもよい。
【0037】
図示のように、コンピュータシステム20は、中央処理装置(Central Processing Unit:CPU)21と、システムメモリ22と、中央処理装置21に関連するメモリを含む様々なシステム構成要素を接続するシステムバス23とを含む。システムバス23は、バスメモリまたはバスメモリコントローラと、周辺バスと、その他のバスアーキテクチャと相互作用可能なローカルバスとを含む。これらのバスとして、たとえば、PCI、ISA、PCI Express、HyperTransport(登録商標)、InfiniBand(登録商標)、シリアルATA、I
2C、および、他の好適な相互配線が挙げられる。中央処理装置21(プロセッサとも称する)は、単一または複数のコアを有する単一または複数のプロセッサのセットを含みうる。プロセッサ21は、本開示の技術を実現する1つ以上のコンピュータ実行可能コードを実行してもよい。たとえば、
図1および
図2で説明したコマンド/ステップのうちのいずれかをプロセッサ21によって実行してもよい。システムメモリ22は、本明細書で使用したデータおよび/またはプロセッサ21によって実行可能なコンピュータプログラムを格納する任意のメモリであってもよい。システムメモリ22は、ランダムアクセスメモリ(Random Access Memory:RAM)25などの揮発性メモリ、読み出し専用メモリ(Read Only Memory:ROM)24などの不揮発性メモリ、フラッシュメモリ、またはこれらの任意の組み合わせを含んでもよい。基本入出力システム(Basic Input/Output System:BIOS)26は、ROM24を使用してオペレーティングシステムをロードする際の手順など、コンピュータシステム20の要素間で情報を送信するための基本手順を格納してもよい。
【0038】
コンピュータシステム20は、1つまたは複数の取り外し可能な記憶装置27、1つまたは複数の取り外し不可能な記憶装置28、またはこれらの組み合わせなど、1つまたは複数の記憶装置を含んでもよい。1つまたは複数の取り外し可能な記憶装置27および1つまたは複数の取り外し不可能な記憶装置28は、ストレージインターフェース32を介してシステムバス23に接続される。一態様において、記憶装置、およびそれに対応するコンピュータ可読記憶媒体は、コンピュータ命令、データ構造、プログラムモジュール、およびコンピュータシステム20の他のデータを格納するための電力独立モジュールである。システムメモリ22、取り外し可能な記憶装置27、および取り外し不可能な記憶装置28は、様々なコンピュータ可読記憶媒体を用いてもよい。コンピュータ可読記憶媒体の例として、キャッシュ、SRAM、DRAM、ゼロキャパシタRAM、ツイントランジスタRAM、eDRAM、EDO RAM、DDR RAM、EEPROM、NRAM、RRAM(登録商標)、SONOS、PRAMなどのマシンメモリ、フラッシュメモリ、または、ソリッドステートドライブ(Solid State Drive:SSD)もしくはフラッシュドライブなどにおける他のメモリ技術、磁気カセット、磁気テープ、およびハードディスクドライブまたはフロッピーディスク(「フロッピー」は登録商標)などにおける磁気ディスクストレージ、コンパクトディスク読み取り専用記憶装置(Compact Disc Read-Only Memory:CD-ROM)またはデジタルバーサタイルディスク(Digital Versatile Disc:DVD)などにおける光ストレージ、ならびに、所望のデータを格納するために用いられ、コンピュータシステム20がアクセスできる他の媒体が挙げられる。
【0039】
コンピュータシステム20のシステムメモリ22、取り外し可能な記憶装置27、および取り外し不可能な記憶装置28を、オペレーティングシステム35、追加のプログラムアプリケーション37、他のプログラムモジュール38、およびプログラムデータ39を格納してもよい。コンピュータシステム20は、入力装置40からのデータを伝達する周辺装置46を含んでもよい。入力装置40として、キーボード、マウス、スタイラス、ゲームコントローラ、音声入力装置、タッチ入力装置、または他の周辺装置などが挙げられる。前記他の周辺装置として、1つまたは複数のI/Oポートを介したプリンタまたはスキャナなどが挙げられ、前記I/Oポートとして、シリアルポート、パラレルポート、ユニバーサルシリアルバス(Universal Serial Bus:USB)、または他の周辺インターフェースなどが挙げられる。1つまたは複数のモニタ、プロジェクタ、または一体型ディスプレイなどの表示装置47を、ビデオアダプタなどの出力インターフェース48を介してシステムバス23に接続してもよい。コンピュータシステム20は、表示装置47に加えて、スピーカおよび他の音響映像装置などの他の周辺出力装置(図示せず)を備えていてもよい。
【0040】
コンピュータシステム20は、1つまたは複数のリモートコンピュータ49へのネットワーク接続を用いて、ネットワーク環境内で動作してもよい。リモートコンピュータ(またはコンピュータ)49は、コンピュータシステム20の性質を表すものとして、上述したほとんどまたはすべての要素を備えるローカルコンピュータワークステーションまたはサーバであってもよい。他の装置は、ルータ、ネットワークステーション、ピアデバイス、または他のネットワークノードなどのコンピュータネットワーク内にあってもよいが、これに限定されない。コンピュータシステム20は、ローカルエリアコンピュータネットワーク(Local-Area computer Network:LAN)50、ワイドエリアコンピュータネットワーク(Wide-Area computer Network:WAN)、イントラネット、およびインターネットなどの1つまたは複数のネットワークを介して、リモートコンピュータ49と通信するための1つまたは複数のネットワークインターフェース51またはネットワークアダプタを含んでもよい。ネットワークインターフェース51の例として、イーサネットインターフェース(「イーサネット」は登録商標)、フレームリレーインターフェース、SONETインターフェース、およびワイヤレスインターフェースが挙げられる。
【0041】
本開示の態様は、システム、方法、および/またはコンピュータプログラム製品であってもよい。コンピュータプログラム製品は、本開示の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体を含んでもよい。
【0042】
コンピュータ可読記憶媒体は、コンピュータシステム20などのコンピューティングデバイスのプロセッサがアクセスできる命令またはデータ構造の形をとるプログラムコードを保持かつ格納することができる有形の装置でありうる。コンピュータ可読記憶媒体は、電子記憶装置、磁気記憶装置、光学記憶装置、電磁気記憶装置、半導体記憶装置、または、これらの任意の好適な組み合わせであってもよい。そのようなコンピュータ可読記憶媒体の例として、RAM、ROM、EEPROM、CD-ROM、DVD、フラッシュメモリ、ハードディスク、ポータブルコンピュータディスケット、メモリスティック、フロッピーディスク、または、パンチカードまたは、命令が記録された溝における浮き彫り構造などの機械的にコード化された装置さえ挙げることができる。本明細書で使用されているように、コンピュータ可読記憶媒体は、電波もしくは他の自由に伝播する電磁波、導波路もしくは送信媒体を介して伝播する電磁波、またはワイヤを介して送信される電気信号など、一時的な信号それ自体として解釈されるべきではない。
【0043】
本明細書に記載したコンピュータ可読プログラム命令を、コンピュータ可読記憶媒体から各コンピューティングデバイスへ、または、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、および/またはワイヤレスネットワークなどのネットワークを介して、外部コンピュータまたは外部記憶装置へ、ダウンロードすることができる。前記ネットワークは、銅製の伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、および/またはエッジサーバを含んでもよい。各コンピューティングデバイスにおけるネットワークインターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、各コンピューティングデバイス内のコンピュータ可読記憶媒体に格納するためにコンピュータ可読プログラム命令を転送する。
【0044】
本開示のオペレーションを実行するコンピュータ可読プログラム命令は、アセンブリ命令、命令セットアーキテクチャ(Instruction-Set-Architecture:ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、オブジェクト指向プログラミング言語や従来の手続き型プログラミング言語などの1つまたは複数のプログラミング言語の任意の組み合わせで書かれたソースコードもしくはオブジェクトコードであってもよい。コンピュータ可読プログラム命令を、ユーザのコンピュータ全体で、スタンドアローンソフトウェアパッケージとしてユーザのコンピュータの一部で、ユーザコンピュータの一部およびリモートコンピュータの一部で、または、リモートコンピュータもしくはサーバ全体で実行してもよい。後者のシナリオにおいて、リモートコンピュータを、LANまたはWANなどの任意のタイプのネットワークを介してユーザのコンピュータに接続してもよく、または、前記接続を、(たとえば、インターネットを介して)外部コンピュータに対して行ってもよい。いくつかの実施形態において、たとえば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ(Field-Programmable Gate Array:FPGA)、またはプログラマブルロジックアレイ(Programmable Logic Array:PLA)などを含む電子回路は、本開示の態様を実施するために、電子回路をパーソナライズするためのコンピュータ可読プログラム命令の状態情報を利用して、コンピュータ可読プログラム命令を実行してもよい。
【0045】
様々な態様において、本開示に記載したシステムおよび方法を、モジュールの観点で扱うことができる。本明細書において使用した「モジュール」という用語は、実世界の装置、構成要素、または構成要素の配置を表す。これらは、特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)もしくはFPGAなどのハードウェアを用いて実現されるか、または、マイクロプロセッサシステムと(実行中に)マイクロプロセッサシステムを特定目的装置に変換するモジュールの機能を実施する命令セットとの組み合わせなど、ハードウェアとソフトウェアの組み合わせとして実施される。ハードウェア単体によって容易になる機能、および、ハードウェアとソフトウェアの組み合わせによって容易になる他の機能を用いて、前記2つの組み合わせとして、モジュールを実現してもよい。ある実施態様において、モジュールの少なくとも一部、場合によっては、モジュールのすべてを、コンピュータシステムのプロセッサ上で実行してもよい。したがって、各モジュールを様々な好適な構成で実現してもよく、本明細書で例示したいずれの特定の実施態様にも限定されるべきではない。
【0046】
理解しやすいように、本明細書において態様の通常の機能のすべてを開示してはいない。本開示のいずれかの実施態様を実際に開発する場合において、開発者の特定の目標を達成するためには、多くの実施態様に特定的な決定を行わなければならず、これらの特定の目標は実施態様および開発者ごとに異なることが分かるであろう。そのような開発努力は、複雑で時間を要する可能性があるが、本開示の利益を享受する当業者にとって日常的なエンジニアリングであることが理解される。
【0047】
さらに、本明細書で使用した用語または表現は、説明を目的としたものであり、限定することを目的としていない。つまり、本明細書の用語または表現は、当業者の知識と組み合わせて、本明細書に示す教示および指針に照らして、当業者によって解釈されるものであると理解される。さらに、明示的な記載がない限り、本明細書または請求項におけるいずれの用語にも、稀なまたは特別な意味を持つとみなされることを意図していない。
【0048】
本明細書において開示した様々な態様は、例示により本明細書で言及した既知のモジュールの現在および将来の既知の均等物を包含する。さらに、態様および用途を示して説明してきたが、本開示の利益を享受する当業者には、本明細書に開示した発明の概念から逸脱することなく、上記より多くの改変が可能であることが明らかであろう。
【外国語明細書】