(57)【要約】  ネットワーク侵入検出モデルを訓練するために使用される観察された信号を均衡させることにより、ネットワークを悪意のある者から防御するためのコンピューティングリソースのより正確な割り当てが可能となる。モデルは、ローリングウィンドウ内に定義されたライブデータと過去のデータとに照らして、データ中のユーザによって定義された特徴を検出するように訓練される。自動化された攻撃により、様々な種類の攻撃が常にローリング訓練ウィンドウ内に存在することを保証する。モデルのセットは、どのモデルを生成するかを決定し、分析者に侵入を警告し、および／または対抗措置を自動的に配備するように、常に訓練される。モデルは、特徴が再定義され、ローリングウィンドウ内のデータが変化するのに伴って、継続的に更新され、ローリングウィンドウの内容は、モデルを訓練するためのそれぞれの観察されたタイプについての充分なデータを提供するように均衡される。データセットを均衡させる際、数の少ない信号を数の多い信号に重畳して、各自の相対数を均衡させる。
2020505707.tif 000002
【特許請求の範囲】
【請求項１】
継続的に学習するモデルを介してオンラインサービスをセキュリティ保護するための方法であって、
前記オンラインサービスからセキュリティ信号のセットを収集するステップであって、前記セキュリティ信号のセットは、時間のローリングウィンドウ内で収集される、ステップと、
前記セキュリティ信号のセットのそれぞれのセキュリティ信号が悪意のあるものか無害であるかを識別するステップと、
前記セキュリティ信号のセットのうち悪意のある信号を、前記セキュリティ信号のセットのうち無害の信号と均衡させて、均衡させた訓練データセットを生成するステップと、
前記均衡させた訓練データセットに基づいて予測モデルを生成するステップであって、前記予測モデルは、セキュリティ信号が悪意のあるものか無害であるかを識別するように構成される、ステップと、
を含む方法。
【請求項２】
前記セキュリティ信号のセットのそれぞれのセキュリティ信号が悪意のあるものか無害であるかを識別するステップが、
それぞれのセキュリティ信号を生成モデルで検査するステップであって、前記生成モデルは、前記均衡させた訓練データセットに従ってモデルトレーナによって生成され、所与のセキュリティ信号が悪意のあるものか無害であるかの検出結果を生成するように構成される、ステップと、
前記検出結果を分析者ユーザに送信するステップと、
前記検出結果に関して前記分析者ユーザからアクションを受け取るのに応答して、前記所与のセキュリティ信号が悪意のあるものか無害であるかを示すように前記検出結果を更新するステップと、
をさらに含む、請求項１に記載の方法。
【請求項３】
自動化アタッカーが、前記オンラインサービスに対する攻撃を模擬し、前記セキュリティ信号のセットのそれぞれのセキュリティ信号が悪意のあるものか無害であるかを識別するステップが、
前記攻撃に応答して生成された前記セキュリティ信号を識別する通知を、前記自動化アタッカーから受け取るステップと、
前記攻撃に応答して生成された前記セキュリティ信号を、前記検出結果に関わらず悪意のあるものとして扱うステップと、
をさらに含む、請求項２に記載の方法。
【請求項４】
前記セキュリティ信号のセットのそれぞれのセキュリティ信号が悪意のあるものか無害であるかを識別するステップが、
前記所与のセキュリティ信号から特徴を抽出するステップと、
前記所与のセキュリティ信号から抽出された前記特徴が、ある攻撃タイプを定義するものとして管理ユーザによって指定された特徴セットを満たすかどうかを判定するステップと、
抽出された前記特徴が前記特徴セットを満たすと判定するのに応答して、前記所与のセキュリティ信号を悪意のあるものと指定するステップと、
抽出された前記特徴が前記特徴セットを満たさないと判定するのに応答して、前記所与のセキュリティ信号を無害と指定するステップと、
をさらに含む、請求項２に記載の方法。
【請求項５】
前記悪意のある信号を前記無害の信号と均衡させるステップが、
前記悪意のある信号それぞれの前記攻撃タイプを識別するステップと、
前記悪意のある信号に対して観察された攻撃タイプのセットについて、攻撃タイプの相対数を、
前記攻撃タイプのセット中で実際よりも少なく示された攻撃タイプの相対量を増加させること、および
前記攻撃タイプのセット中で実際よりも多く示された攻撃タイプの相対量を減少させること、
のうち少なくとも一方によって均衡させるステップと、
をさらに含む、請求項４に記載の方法。
【請求項６】
前記特徴セットは、前記管理ユーザから与えられる構造化文書中で識別され、前記構造化文書は、前記セキュリティ信号中で観察すべき特徴タイプおよびデータフィールドを特定し、前記特徴セットの特徴は、コードを修正する必要なしに、前記構造化文書に基づいて前記セキュリティ信号から動的に抽出される、請求項４に記載の方法。
【請求項７】
過去のデータ信号が前記セキュリティ信号のセットに含められる、請求項１に記載の方法。
【請求項８】
前記悪意のある信号を前記無害の信号と均衡させるステップが、
前記ローリングウィンドウ内で少なくとも１つの悪意のある信号がそこから収集された前記オンラインサービス内のデバイスを識別するステップと、
前記デバイスに関連する無害の信号を、前記セキュリティ信号のセットから除去するステップと、
をさらに含む請求項１に記載の方法。
【請求項９】
継続的に学習するモデルを介してオンラインサービスをセキュリティ保護するためのシステムであって、
プロセッサと、
命令を含むメモリ記憶装置と、を備え、前記命令は、前記プロセッサによって実行された時に、
前記オンラインサービス内のデバイスからセキュリティ信号を受信することと、
前記セキュリティ信号のそれぞれから特徴ベクトルを抽出することであって、所与の特徴ベクトルは、所与のセキュリティ信号がそこから受信される所与のデバイスの状態を表す数値を提供する、ことと、
関連付けられた予測モデルを介して前記特徴ベクトルそれぞれの検出結果を生成することであって、所与の検出結果は、前記所与のセキュリティ信号が前記所与のデバイス上で悪意のある活動を示唆するか無害の活動を示唆するかを識別する、ことと、
ローリングウィンドウを定義することであって、前記ローリングウィンドウは、現在の時刻からのある時間フレーム内に受信された複数のセキュリティ信号および関連付けられた検出結果を含む、ことと、
前記ローリングウィンドウについて均衡させた訓練データセットを生成することと、
を行うように動作可能であり、
前記均衡させた訓練データセットを生成するために、前記システムがさらに、
悪意のある活動を示唆するものと識別された前記ローリングウィンドウ内の前記セキュリティ信号それぞれの攻撃タイプを識別し、
前記ローリングウィンドウ内で実際よりも少なく示された攻撃タイプと共に識別されたセキュリティ信号の量を、実際よりも多く示された攻撃タイプと共に識別されたセキュリティ信号の量に対して増加させ、
悪意のある活動を示唆するものと識別された前記セキュリティ信号を、無害の活動を示唆するものと識別されたセキュリティ信号と交差結合して、前記ローリングウィンドウについての攻撃シナリオを生成し、
機械学習アルゴリズムに従って、前記均衡させた訓練データセットに基づいて前記関連付けられた予測モデルを更新する、
ように構成される、システム。
【請求項１０】
前記関連付けられた予測モデルを更新することは、
前記均衡させた訓練データセットに従って、前記セキュリティ信号が前記デバイス上で悪意のある活動を示唆するか無害の活動を示唆するかを、開発モデルの方が正確に識別することを、前記機械学習アルゴリズムが示すのに応答して、前記検出結果を生成するために使用される生成モデルを、前記機械学習アルゴリズムに従って前記均衡させた訓練データセットから開発された前記開発モデルに置き換えることを含む、請求項９に記載のシステム。
【請求項１１】
過去の信号が前記ローリングウィンドウに含められ、前記過去の信号は、前記時間フレームの外側で収集されたセキュリティ信号を含む、請求項９に記載のシステム。
【請求項１２】
前記オンラインサービス内の前記デバイスから受信された前記セキュリティ信号は、自動化アタッカーが前記オンラインサービスに対して既知の悪意のある活動を行うのに応答して収集されたセキュリティ信号を含み、前記自動化アタッカーが前記既知の悪意のある活動を行うのに応答して収集された前記セキュリティ信号に対して生成された前記検出結果は、前記自動化アタッカーからの通知に基づいて、前記所与のセキュリティ信号が悪意のある活動を示唆することを示すように設定される、請求項９に記載のシステム。
【請求項１３】
前記均衡させた訓練データセットを生成するために、前記システムがさらに、
無害の活動を示唆するものと識別されたセキュリティ信号がそこから受信された特定のデバイスが、前記ローリングウィンドウ内で悪意のある活動を示唆するものと識別された１つまたは複数のセキュリティ信号と関連付けられていることを識別するのに応答して、無害の活動を示唆するものと識別された前記セキュリティ信号を前記ローリングウィンドウから除去する
ように構成される、請求項９に記載のシステム。
【請求項１４】
前記均衡させた訓練データセットを生成するために、前記システムがさらに、
無害の活動を示唆するものと識別された前記ローリングウィンドウ内の前記セキュリティ信号それぞれがそこから受信されたデバイスタイプを識別し、
前記ローリングウィンドウ内で実際よりも少なく示されたデバイスタイプと共に識別されたセキュリティ信号の量を、実際よりも多く示されたデバイスタイプと共に識別されたセキュリティ信号に対して増加させる、
ように構成される、請求項９に記載のシステム。
【請求項１５】
継続的に学習するモデルを介してオンラインサービスをセキュリティ保護するためのプロセッサ実行可能命令を含むコンピュータ可読記憶装置であって、前記プロセッサ実行可能命令は、
前記オンラインサービスからセキュリティ信号のセットを収集することであって、前記セキュリティ信号のセットは時間のローリングウィンドウ内で収集される、ことと、
前記セキュリティ信号のセットのそれぞれのセキュリティ信号を予測モデルを介して検査して、それぞれのセキュリティ信号が悪意のあるものか無害であるかを識別することであって、前記予測モデルは、管理ユーザによって定義された特徴ベクトルに基づいて、所与のセキュリティ信号が悪意のあるものか無害であるかの検出結果を生成するように構成される、ことと、
前記セキュリティ信号を前記検出結果に関連付けて、前記セキュリティ信号を悪意のある信号または無害の信号として識別することと、
前記悪意のある信号を前記無害の信号と均衡させて、均衡させた訓練データセットを生成することであって、
前記悪意のある信号それぞれの攻撃タイプを識別すること、
前記無害の信号のそれぞれがそこから収集されたデバイスタイプを識別すること、
前記ローリングウィンドウ内の悪意のある信号の各相対数を、識別された攻撃タイプに基づいて等しくして、攻撃事例のセットを生成することと、
前記ローリングウィンドウ内の無害の信号の各相対数を、識別されたデバイスタイプに基づいて等しくして、識別された無害事例のセットを生成すること、および
前記攻撃事例のセットを前記無害事例のセットの少なくとも一部分と交差結合して、前記攻撃事例のセット中の攻撃事例の数を、前記無害事例のセット中の無害事例の数に対して均衡させること、
を含むことと、
前記均衡させた訓練データセットおよび機械学習アルゴリズムに基づいて前記予測モデルを精緻化することと、
を含む、コンピュータ可読記憶装置。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]コンピュータネットワークは、それらにホストされたシステムに不正にアクセスしようとする悪意のある者からの絶え間ない脅威を受けている。ネットワークを攻撃するために悪意のある者によって使用される戦略と、攻撃から防御するためにネットワーク管理者によって使用される戦略とは、互いを踏まえて常に発展し続けており、悪意のある者の集合に新しいエクスプロイト（exploit）が追加され、効果的でないエクスプロイトが破棄される。しかし、対抗措置の実装はしばしば事後対応的になされ、ネットワーク管理者は、最も新しいエクスプロイトを識別するのを待ってから対抗措置を配備しなければならず、また対応するエクスプロイトがもはや使用されなくなった時に対抗措置の配備をいつやめるかを決定する。最新のエクスプロイトを正しく識別し、阻止することは、しばしばネットワーク管理者にとって困難であり、これはエクスプロイトがまだ広まっていない場合、またはエクスプロイトがネットワーク上で提供されるサービスのうち小さな集団を攻撃する場合に、特にそうである。
【発明の概要】
【課題を解決するための手段】
【０００２】
[0002]この概要は、以下の「発明を実施するための形態」の項でさらに説明する概念から選択したものを簡略化した形態で紹介するために提供される。この概要は、特許請求の主題の主要な特徴または必須の特徴すべてを識別するために意図されるものでも、特許請求の主題の範囲を決定する際の助けとして意図されるものでもない。
【０００３】
[0003]本発明では、侵入検出のための継続的な学習を提供する、システム、方法、および命令を含むコンピュータ記憶装置が提供される。複数の機械学習モデルが、攻撃の挙動と無害な挙動とを表す、ネットワーク内の機械およびデバイスから収集された信号に基づくネットワーク信号に対して常に再訓練される。ローリングウィンドウ（rolling window）を使用して信号を収集することで、モデルは最新のデータを使用して攻撃を識別し、またモデルは、攻撃を正確に検出する各自の能力が最近のデータの構成に応じて増減するのに伴って、ネットワークを保護するように継続的に昇格および降格される。アクティブな生成ネットワーク内に配備されたモデルは、各自の検出をほぼリアルタイムでセキュリティ分析者に提供し、セキュリティ分析者は、モデルの精度に関するフィードバック（例えば見逃された侵入／偽陰性、偽陽性、誤って識別された侵入）を提供して、モデルをどのように訓練するかをさらに精緻化する。
【０００４】
[0004]検出モデルを常に再訓練し精緻化するために使用される訓練データセットの信頼性を改善し、それによってモデルを改善するために、攻撃信号が無害の信号と比べて稀であることに対処するように、かつ特定の攻撃タイプに関して、攻撃信号を均衡させる。無害な信号に他の機械からの様々なタイプの攻撃信号を重畳して、モデルを訓練および精緻化するための均衡させた訓練セットを提供する。均衡させた訓練セット中の攻撃信号のうち、様々な攻撃タイプの信号も均衡させることにより、モデルがすべての攻撃タイプに対して均等に訓練されることを保証する。テキストに基づく構成を介して信号の特徴を動的に抽出し、それにより、ネットワークへの攻撃を示唆する種々の特徴セットにモデルが応答する際の柔軟性を改善する。
【０００５】
[0005]様々な態様において、既知の内部アタッカーによって攻撃を模擬することで、ネットワークの即応性を増大させ、追加的な攻撃信号を発生させる。同様に、いくつかの態様では記録的（historically）に重要な攻撃信号を使用することにより、特定のタイプの攻撃信号がローリングウィンドウ内で観察されていない場合でも、それらの信号がモデルに提示されるようにする。
【０００６】
[0006]継続的に学習する侵入検出モデルをネットワークに提供することにより、ネットワーク内のデバイスおよびソフトウェアの機能性が改善される。新しい形態の攻撃がより迅速かつより確実に識別され、それにより、ネットワークのセキュリティをどのようにして改善するかというコンピュータを中心とした問題に対処する。加えて、旧式の攻撃形態の検出の試みにコンピューティングリソースが浪費されず、それにより、ネットワークを悪意のある者から守るために使用する処理リソースを低減する。
【０００７】
[0007]例えば、コンピュータプロセス、コンピューティングシステムとして、または、デバイス、コンピュータプログラム製品、もしくはコンピュータ可読媒体等の製造品として実施される。一態様によれば、コンピュータプログラム製品は、コンピュータシステムにより可読で、コンピュータプロセッサを実行するための命令を含むコンピュータプログラムを符号化した、コンピュータ記憶媒体である。
【０００８】
[0008]１つまたは複数の態様の詳細は、添付図面に明らかにされ、下記で説明される。他の特徴および利点は、以下の詳細な説明を読み、関連する図面を検討することから明らかになろう。以下の詳細な説明は単に説明のためであり、特許請求の範囲を制限するものではないことを理解すべきである。
【０００９】
[0009]本開示に組み込まれ、その一部を構成する添付図面は、様々な態様を例示する。
【図面の簡単な説明】
【００１０】
【図１Ａ】本開示を共に実施可能な例示的なセキュリティシステムの図である。
【図１Ｂ】本開示を共に実施可能な図１Ａの例示的なセキュリティシステムと共に使用するための例示的なモデル訓練および選択システムの図である。
【図２】オンラインサービスをセキュリティ保護するのに使用する予測モデルを訓練するための訓練データセットを開発する例示的な方法に伴う、一般的な段階を示すフローチャートである。
【図３】オンラインサービスをセキュリティ保護するのに使用するための予測モデルを訓練および選択する例示的な方法に伴う、一般的段階を示すフローチャートである。
【図４】コンピューティングデバイスの例示的な物理的構成要素を例示するブロック図である。
【発明を実施するための形態】
【００１１】
[0010]以下の詳細な説明では添付図面を参照する。可能な箇所では、図面および以下の説明で使用される同じ参照符号は、同じまたは同様の要素を指す。例を記載する場合があるが、修正、適合、および他の実装形態が可能である。例えば、図面に例示される要素に置換、追加、または修正を加えてよく、また本明細書に記載される方法は、開示される方法の段階を置換する、段階の順序を変える、または段階を追加することによって修正されてよい。したがって、以下の詳細な説明は制限的なものではなく、適正な範囲は添付の特許請求の範囲によって定義される。例は、ハードウェアによる実装、または完全にソフトウェアによる実装、またはソフトウェアによる態様とハードウェアによる態様とを組み合わせた実装の形態を取ってよい。したがって、以下の詳細な説明は制限的な意味に解釈すべきではない。
【００１２】
[0011]継続的に学習する侵入検出モデルを介して改善されたネットワークセキュリティを提供するための、システム、方法、および命令を含むコンピュータ可読記憶装置を本明細書で解説する。継続的に学習する侵入検出モデルをネットワークに提供することにより、ネットワーク内のデバイスおよびソフトウェアの機能性が改善される。新しい形態の攻撃がより迅速かつより確実に特定され、それにより、ネットワークのセキュリティをどのようにして改善するかというコンピュータを中心とした問題に対処する。加えて、旧式になった攻撃形態の検出を試みることにコンピューティングリソースが浪費されず、それにより、ネットワークを悪意のある者から守るために使用される処理リソースを低減する。
【００１３】
[0012]図１Ａは、本開示を共に実施可能な例示的なセキュリティシステム１００である。図１Ａに示されるように、オンラインサービス１１０は、無害である可能性も、悪意のある可能性もある様々なユーザと、セキュリティシステム１００とにより接続される。オンラインサービス１１０は、様々なユーザに「クラウド」サービスを提供する、クラウドデータセンター等のネットワーク化されたコンピューティングデバイスのセットを提示し、それらのサービスには、これらに限定されないが、以下が含まれる。ユーザがオンラインサービス１１０のデバイス上で実行されるオペレーティングシステムおよびソフトウェアを提供するＩｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ（ＩａａＳ）。ユーザがソフトウェアを提供し、オンラインサービス１１０がオペレーティングシステムおよびデバイスを提供するＰｌａｔｆｏｒｍ  ａｓ  ａ  Ｓｅｒｖｉｃｅ（ＰａａＳ）。または、オンラインサービス１１０がデバイス上で実行するオペレーティングシステムとソフトウェアとの両方をユーザに提供するＳｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ（ＳａａＳ）。オンラインサービス１１０へのアクセスを求めるユーザは、正当なユーザであることも、または、セキュリティの脆弱性を利用してオンラインサービス１１０に侵入し、正当な許可なしに不正なプロセスを実行する、および／もしくはオンラインサービス１１０からデータを取得する、悪意のある者であることもある。
【００１４】
[0013]ユーザが無害であるか、悪意のある者であるか、またはデバイスが安全である（悪意のある信号を送信していない）か、もしくは危険にさらされている（悪意のある信号を送信している）かを判定するために、オンラインサービス１１０からの様々なセキュリティ信号１１５を収集し、生成モデル１２０に供給して、所与のセッションが悪意のあるものか無害であるかを示す検出結果１２５を生成する。セキュリティ信号１１５は、イベントログ、ネットワークトレース、システムコマンド等を含み、これらを生成モデル１２０で分析して、悪意のある挙動または無害の挙動を示唆するように生成モデル１２０を訓練することを介して判定される特性およびその特徴値を求める。本開示の目的には、特定のセキュリティ信号１１５を発生させることに関連するオンラインサービス１１０内でのアクションに基づいて、その特定のセキュリティ信号１１５を「悪意のある」または「無害」と称する。また、本明細書で使用される場合、用語「特徴」は、「モデル」によって受け付けられる、ネットワーク内で観察された特性または挙動に関係する１つまたは複数の入力信号から導出される数値属性である。モデルは、特徴の値を、当該特徴が悪意のある活動を示すか無害の活動を示すかについての予測スコアまたは信頼度に変換するために、分析者によって定義された特徴セット（モデル特徴とも呼ぶ）を受け付けるアルゴリズムである。
【００１５】
[0014]セキュリティ信号１１５を生成モデル１２０に提供して、セキュリティ信号１１５から、様々な特徴を抽出する。このセキュリティ信号１１５に対しオンラインサービス１１０上での悪意のある活動を識別するように生成モデル１２０が訓練される。セキュリティ信号１１５は、オンラインサービス１１０内部のデバイスに発生する１つまたは複数の互いに関係するイベントの集まりであり、いくつかの特徴（例えば使用されたポート、接続が行われたＩＰアドレス、信号がそこから受信されたデバイスの識別／タイプ、ユーザ、取られたアクション）を含んでよく、それらの特徴のサブセットを所与の生成モデル１２０で検査するために抽出して、セキュリティ信号１１５が無害であるか悪意のあるものかを判定する。１つまたは複数のセキュリティ信号１１５からの特徴を組み合わせて、分析のための特徴ベクトルにする。そして、様々な態様において、特徴をスコア付けすることにより、生成モデル１２０に入力するための当該特徴の数値的分析を提供してよい。
【００１６】
[0015]例えば、所与のＩＰ（インターネットプロトコル）アドレスを使用頻度に基づいてスコア付けしてよく、ここで、ローリングウィンドウ１３０の間の当該所与のＩＰアドレスがより頻繁に使用されると、より頻繁でない使用と比べて、生成モデル１２０に提示される値が変化する。対して、機密性のあるファイルがアクセスされる、禁止されたアクションが行われる、ブラックリストにあるＩＰアドレスとの通信が行われる等の場合には、危険な状態が発生したことを示す２値スコアが、セキュリティ信号１１５中で生成モデル１２０に提供されてよい。生成モデル１２０は、ホワイトリストにもブラックリストにも依拠せず、生成モデルの訓練は、図１Ｂ、図２、および図３に関してより詳細に解説するように、セキュリティ信号１１５中で観察される特徴に対するものであり、生成モデルは、時間と共に、ブラックリストまたはホワイトリストの誘導なしで、オンラインサービス１１０への侵入を示唆する特徴を学習することができる。
【００１７】
[0016]所与のセキュリティ信号１１５に対して、生成モデル１２０による判定は、当該のセキュリティ信号１１５が無害であるか悪意のあるものかを特定する。これらの検出結果１２５をセキュリティ信号１１５に関連付けて、そのセキュリティ信号を悪意のあるものかまたは無害であるかのどちらかとして識別する。いくつかの態様では、これらの検出結果１２５の少なくとも一部（例えば悪意のある検出結果１２５）が、分析者ユーザに提供され、分析者ユーザは、検出結果１２５に基づいて行動して、悪意のあるユーザもしくは攻撃に対する対抗措置を配備するか、または検出結果１２５が、生成モデル１２０が示すものとは異なる判断を裏付けていると判定してよい。例えば、悪意のある信号に対する偽陰性が生成モデル１２０によって示された場合、分析者は、信号が実際には悪意のあるものであると判断し、取るべきアクションを示してよい。別の例では、無害の信号に対する偽陽性が示された場合、分析者は、信号が実際には無害であると判断し、アクションを取るべきでないことを示すことができる。さらなる例では、悪意のあるアクションに対する真陽性が示された場合、分析者は、アクションを取らないか、またはセキュリティシステム１００によって推奨されるものとは異なるアクションを取るべきことを示してよい。分析者からの補正は、それによりモデルのさらなる訓練と改善に使用される。
【００１８】
[0017]また、検出結果１２５は、様々な態様において、過去ｄ日間（ｄは分析者ユーザまたは別のネットワーク管理者によって、例えば２日、１０日、１５日等に設定可能である）にわたって観察されたセキュリティ信号１１５のローリングウィンドウ１３０を記憶するデータベースと、過去ｄ日間に見られたかどうかに関わらず、訓練に使用すべきセキュリティ信号１１５に関する過去の信号１３５を記憶するデータベースと、に供給される。過去の信号１３５は、既知の外部攻撃に関連付けられたセキュリティ信号１１５を含むように分析者ユーザによってキュレート（curete）される。追加的な態様では、分析者ユーザが、疑わしく見える、またはネットワーク侵入に関してその他の形で偽陽性を返す可能性のある無害の信号を含むように過去の信号１３５をキュレートして、予測モデルが、適正な識別が難しいことが記録的に判明している信号に対し適正に反応するように訓練されることを保証する。
【００１９】
[0018]自動化アタッカー１４０は、攻撃およびエクスプロイトの既知のパターンを使用してオンラインサービス１１０のセキュリティを試験し、生成モデル１２０によって生成された検出結果１２５と併せて使用するための既知の結果を提供する。自動化アタッカー１４０からの攻撃の結果であるセキュリティ信号１１５の検出結果１２５が、その攻撃が悪意のあるものであったことを特定しない場合、セキュリティ信号１１５は、自動化アタッカー１４０が当該信号が悪意のあるものであったことを示しているため、悪意のあるものとして扱われることになる。様々な態様において、自動化アタッカー１４０は、セキュリティシステム１００またはオンラインサービス１１０において任意選択される構成要素である。
【００２０】
[0019]セキュリティ信号１１５が無害と判定されたかまたは悪意のあるものと判定されたかを示す、生成モデル１２０からの検出結果１２５（および分析者ユーザからの補正）と共に、（ローリングウィンドウ１３０内の信号、および入手可能な場合は過去の信号１３５を含む）セキュリティ信号１１５は、信号スプリッタ１４５に供給される。また、自動化アタッカー１４０が配備される態様では、オンラインサービス１１０に対するアタッカーのアクションから発生させたセキュリティ信号１１５が無害であるか／悪意のあるものかの識別が、信号スプリッタ１４５に提供される。信号スプリッタ１４５は、セキュリティ信号１１５を、無害信号バランサ１５０に提供される無害の信号と、攻撃信号バランサ１５５に提供される悪意のある信号とに分割するように構成される。
【００２１】
[0020]無害信号バランサ１５０および攻撃信号バランサ１５５は、訓練データ・ブートストラッパ１６０によって使用されるデータセットへの投入に使用されるセキュリティ信号１１５のセットを開発し、均衡させた無害の信号と悪意のある信号を提供し、それにより、オンラインサービス１１０の最新のエクスプロイトを検出するようにモデルを訓練する。訓練データ・ブートストラッパ１６０は、オンラインサービス１１０内の危険にさらされたデバイスから受信した無害の信号を除去し、危険にさらされたデバイスからの悪意のある信号だけを残しておく。クリーンなデバイスからの無害の信号は危険にさらされたデバイスからの悪意のある信号と交差結合（cross join）され、その結果、Ｂ×Ｍ個の攻撃事例が得られ、ここでＢは無害事例の数を表し、Ｍは悪意のある事例の数を表す。これにより、攻撃がクリーンなデバイスで起こったかのように示す攻撃事例を無害事例の上に重畳した、拡張されたデータを生成する。
【００２２】
[0021]クリーンなデバイスは種々のバリエーションの無害な信号を有し、危険にさらされたデバイスは種々のバリエーションの攻撃信号を有するので、２つのデータセットを交差結合することにより、大量のバリエーションを備えた多数のシナリオを作成する。ただし、シナリオが自動化アタッカー１４０等により無作為に選定された場合には、訓練セット中にそれぞれの攻撃タイプが等しくない数ずつ存在する場合があり、そのことがモデルの訓練を歪める（その結果、一部の攻撃が他の攻撃よりもよく予測される）可能性がある。したがって、攻撃事例を攻撃シナリオに照らして均衡させることにより、訓練セット中にそれぞれの事例攻撃がほぼ同数ずつ（例えば±５％）存在することを保証する。様々な態様において、実際よりも少なく示された攻撃タイプ（すなわち均衡させた数未満の量の攻撃タイプ）は、既存の悪意のある信号をコピーしてそれらの相対数を増加させ、および／または、実際よりも多く示された攻撃タイプ（すなわち均衡させた数以上の量の攻撃タイプ）は、既存の悪意のある信号を削除するか、もしくは実際よりも少なく示された攻撃タイプの事例で置換／重畳して、均衡させた攻撃事例セットを達成する。
【００２３】
[0022]悪意のある信号と同様に、無害の信号は、それらの信号がそこから受信されたデバイスのタイプまたは役割に関して互いに対して均衡させて、所与のデバイスタイプまたは役割が訓練データセット中で実際よりも多く示される（その結果、一部の攻撃が所与のデバイスタイプ／役割に対して他の攻撃よりもよく予測される）ことがないようにする。したがって、無害事例を、利用可能なデバイスタイプに照らして均衡させることにより、無害事例を提供するそれぞれのデバイスタイプがほぼ同数個（例えば±５％）ずつ存在することを保証する。様々な態様において、実際よりも少なく示されたデバイスタイプ（すなわち均衡させた数未満の量のデバイスタイプ）は、既存の無害の信号をコピーしてそれらの相対数を増加させ、および／または、実際よりも多く示されたデバイスタイプ（すなわち均衡させた数以上の量のデバイスタイプ）は、既存の無害の信号を削除するか、もしくは実際よりも少なく示されたデバイスタイプからの無害事例で置換／重畳して、均衡させた無害事例セットを達成する。
【００２４】
[0023]図１Ｂは、本開示を共に実施可能な図１Ａの例示的なセキュリティシステム１００と共に使用するための例示的なモデル訓練および選択システム１０５である。訓練データ・ブートストラッパ１６０からの無害の信号および悪意のある信号の均衡させたデータセットは、オンラインサービス１１０をセキュリティ保護するための様々なモデルの訓練と評価の両方を行うために、訓練／試験スプリッタ１６５に提供される。データセットはｋ個の部分セットに分割され、ここで、利用可能な部分セットのうちｋ−１個（例えば３分の２）はモデルの訓練に使用され、データセットのうち１つの部分セット（例えば３分の１）はモデルを評価するために確保される。様々な態様において、データセットを、それぞれモデルトレーナ１７０およびモデル・エバリュエータ１７５に提供される訓練用部分セットと評価用部分セットとに分けるには、様々な割合が想定される。
【００２５】
[0024]モデルトレーナ１７０は、均衡させたデータの訓練用部分セットを介して、１つまたは複数の機械学習技術により、複数の開発モデル１８０を訓練するように構成される。機械学習技術は、モデルに供給されたデータに対して正確に予測を行うようにモデルを訓練する（例えば、セキュリティ信号１１５が無害であるか、悪意のあるものか、名詞が人物であるか、場所であるか、または物であるか、明日はどのような天気か）。学習フェーズの間、既知の入力（例えばサンプルＡ、サンプルＢ、サンプルＣ）の訓練データセットに照らしてモデルを開発して、所与の入力に対する出力を正しく予測するようにモデルを最適化する。一般に、学習フェーズは、教師あり、半教師あり、または教師なしであってよく、これは、訓練用の入力に対応して「正しい」出力が提供される度合いが低下していくことを意味する。教師あり学習フェーズでは、出力のすべてがモデルに提供され、モデルは、入力を出力に対応付ける一般的規則またはアルゴリズムを開発するように誘導される。それに対して、教師なし学習フェーズでは、要求される出力が入力に対して提供されず、そのため、モデルは訓練データセット中で関係を発見するための独自の規則を開発してよい。半教師あり学習フェーズでは、不完全にラベル付けされた訓練セットが提供され、出力の一部は訓練データセットにとって既知であり、一部は未知である。
【００２６】
[0025]モデルは、訓練データセットに照らして数エポックにわたって実行してよく、その際、訓練データセットを繰り返しモデルに供給してモデルの結果を精緻化する。例えば、教師あり学習フェーズでは、所与の入力のセットに対する出力を予測するようにモデルを開発し、訓練データセットに対して最も多い数の入力について、当該所与の入力に対応していると特定される出力をより確実に提供するように、数エポックにわたってモデルを評価する。別の例では、教師なし学習フェーズに、データセットをｎ個のグループにクラスタリングするようにモデルを開発し、モデルがどれほど一貫して所与の入力を所与のグループに入れるか、およびモデルが各エポックにわたってどれほど確実にｎ個の要求されるクラスタを生成するかについて、数エポックにわたってモデルを評価する。
【００２７】
[0026]様々な態様において、それぞれの訓練フェーズに加えて交差検証を適用し、ここでは、訓練データセットの一部分が評価データセットとして使用される。例えば、訓練データセットをｋ個のセグメントに分けてよく、ここで、（ｋ−１）個のセグメントを訓練エポックに使用し、残りのセグメントは、訓練されたモデルがどれほど良好に機能したかを判定するために使用する。このようにして、それぞれのモデルを、入力パラメータのあらゆる可能な組み合わせに照らして訓練し、よってそれぞれのモデルがｋ回ずつ訓練され、当該エポックにわたる各モデルの平均性能に基づいて最良のモデルパラメータが選択される。
【００２８】
[0027]エポックが実行されると、モデルが評価され、モデルをより精緻化することを試みて各モデルの変数の値が調整される。様々な態様において、評価は、偽陰性に抗するようにバイアスがかけられるか、偽陽性に抗するようにバイアスがかけられるか、またはモデルの総合的な精度に対して均等にバイアスがかけられる。上記値は、使用する機械学習技術に応じていくつかの方式で調整してよい。例えば、遺伝的アルゴリズムまたは進化的アルゴリズムでは、要求される出力を最もうまく予測するモデルに対応する値を使用して、後続のエポック中に使用するためのモデルの値を開発し、このことは追加的なデータ点を得るための無作為の変形／変異を含んでよい。当業者は、線形回帰、ランダムフォレスト（random forest）、決定木学習、ニューラルネットワーク等を含む、本開示と共に適用可能ないくつかの他の機械学習アルゴリズムに精通していよう。
【００２９】
[0028]モデルは、入力に影響する１つまたは複数の変数の値を、要求される結果により近く対応付けされるように変化させることによって、数エポックをかけて規則またはアルゴリズムを開発する。しかし、訓練データセットは変更されることがあり、また好ましくは非常に大きいので、完璧な精度および正確度は達成可能でない可能性がある。したがって、学習フェーズを構成するいくつかのエポックを、所与の回数の試行、もしくは固定された時間／演算予算として設定してよく、または所与のモデルの精度が充分に高いもしくは充分に低い時、または精度のプラトーに達している時には、当該回数／予算に到達する前にエポックを終結してよい。例えば、訓練フェーズが、ｎエポック実行されると共に少なくとも９５％の精度のモデルを生成するように設計され、そのようなモデルがｎ回目のエポックより前に生成された場合、学習フェーズは早めに終了して、最終目標の精度閾値を満たす生成されたモデルを使用してよい。同様に、所与のモデルが、無作為の確率閾値を満たすほど不正確である（例えばモデルが所与の入力に対して真／偽の出力を判定する精度がわずか５５％である）場合、そのモデルの学習フェーズは早めに終結してよいが、ただし学習フェーズにある他のモデルは訓練を継続してよい。同様に、所与のモデルが複数のエポックにわたって同様の精度を提供し続けるか、またはモデルの結果に揺らぎがあり、性能のプラトーに達している場合、その所与のモデルの学習フェーズはエポック数／演算予算に達する前に集結させてよい。
【００３０】
[0029]学習フェーズが完了すると、モデルが確定される。確定されたモデルは、試験基準に照らして評価される。第１の例では、その入力に対する既知の出力を含む試験データセットを確定されたモデルに供給して、モデルが訓練されていないデータを扱う際のモデルの精度を判定する。第２の例では、偽陽性率、偽陰性率を使用して、確定後のモデルを評価してよい。第３の例では、クラスタリング間の線引きを使用して、自身のデータクラスタに対して最も明確な境界線を生成するモデルを選択する。他の例では、適合率および再現率曲線の下の部分の面積（areas under precision and recall curve）等、モデルの追加的な指標を評価する。
【００３１】
[0030]開発モデル１８０（およびしたがって生成モデル１２０）は、管理ユーザが行った選択に基づいてモデル特徴コンフィギュレータ１８５によって最初に開発される予測モデルである。管理ユーザは、オンラインサービス１１０のデバイス上で監視すべきセキュリティ信号１１５の１つまたは複数の特徴と、所与のセキュリティ信号１１５が悪意のあるものか無害であるかを表現するためにそれらの特徴をどのように分析するかとを選択する。様々な態様において、特徴は、管理ユーザが新しい開発モデル１８０の特徴セットを定義するためにそこから選択できる、構造化テキストファイル（例えば拡張可能マークアップ原語（ＸＭＬ）またはＪａｖａ（登録商標）Ｓｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ（ＪＳＯＮ）タグを使用する）内に提供される。特徴構成に基づいて、あるデバイスについてのセキュリティ信号の所与のセットから、特徴を特徴ベクトルとして動的に抽出する。異なるモデルに対して、モデル各自の特徴構成に基づいて、異なる特徴が抽出される場合がある。したがって、構造化テキストファイルにより、管理ユーザは、コードをコードベースに追加するまたはコードを修正する必要なしに、特徴と、それらの特徴をどのように検査するかとをモデルに追加する、または修正することができる。構造化テキストファイルは、コードベースからコードセグメントを呼び出し、そのコードセグメントを開発者が拡張または修正して、管理ユーザが選択するための新しい特徴タイプをもたらすことができる。例えば、管理ユーザが、セキュリティ信号１１５からの所与のパラメータまたはデータフィールドに使用するための特徴検査タイプとして、データセット中の異なる値の数（Ｃｏｕｎｔ）、データセット中の最大値（Ｍａｘ）、リスト中で最も頻繁に出現する値の個数（ＭａｘＣｏｕｎｔ）、制限値を超えないリスト中の値の最大の和（ＭａｘＳｕｍ）等を選択してよい。セキュリティ信号中で観察すべきデータフィールド／パラメータの例は、これらに限定されないが、信号タイプ（例えばデータの抜き取り、ログインの試み、所与のファイルへのアクセス要求）、使用されたポート、プロセス／通信で使用されたバイト数、所与のインターネットプロトコル（ＩＰ）アドレスおよびポートの組に転送された、またはそこから転送されたバイト数、ユーザ識別子、所与のＩＰアドレスまたはアクションがブラックリストまたはホワイトリストにあるか等を含む。
【００３２】
[0031]モデル・エバリュエータ１７５は、開発モデル１８０を評価して、どのモデルをセキュリティシステム１００内で生成モデル１２０として使用するかを決定するように構成される。様々な態様において、生成モデル１２０を評価のために開発モデル１８０に再度組み込むか、または、生成モデル１２０の精度閾値を使用して、所与の生成モデル１２０を開発モデル１８０で置き換えるかどうかを決定する。他の態様では、開発モデル１８０を、例えば、精度や、適合率および再現率曲線の下の部分の面積等の他の指標に関して生成モデル１２０と比較し、そこでは、最良のモデルを、生成モデル１２０として使用する昇格したモデル１９０として選択する。モデルは、悪意のある信号を悪意のあるものと適正に識別し、無害の信号を無害と適正に識別する各モデルの有効性をモデル・エバリュエータ１７５が判定するのに伴って、継続的に開発モデル１８０から生成モデル１２０に昇格し（および生成モデル１２０から開発モデル１８０に降格）してよい。様々な態様において、上位ｎ個の最も精度の高い開発モデル１８０、または精度閾値を超えるすべての開発モデル１８０が、昇格したモデル１９０として生成モデル１２０に昇格される。他の態様では、例えば、セキュリティ信号１１５の所与の特徴をモニタする他のモデルがない場合等に、管理ユーザが手動で開発モデル１８０を生成モデル１２０に昇格させてよい。
【００３３】
[0032]セキュリティシステム１００、モデル訓練および選択システム１０５、ならびに各自の構成要素は、多数のコンピューティングシステムを例示するものであり、それらには、デスクトップコンピュータシステム、有線および無線のコンピューティングシステム、モバイルコンピューティングシステム（例えば携帯電話、ネットブック、タブレットまたはスレート型コンピュータ、ノート型コンピュータ、およびラップトップコンピュータ）、携帯型デバイス、マルチプロセッサシステム、マイクロプロセッサを利用したまたはプログラム可能な消費者家電製品、ミニコンピュータ、プリンタ、およびメインフレームコンピュータが、制限なしに含まれる。これらコンピューティングシステムのハードウェアについては、図４に関して詳細に解説する。
【００３４】
[0033]セキュリティシステム１００ならびにモデル訓練および選択システム１０５の構成要素は、例示のために互いからリモートに図示しているが、これらのデバイスのうち１つまたは複数のいくつかの構成が、別の例示されるデバイスに対してローカルにホストされることが可能であり、例示される各デバイスは、そのデバイスの複数の個体を表してよいことに留意すべきである。当業者に知られる様々なサーバおよび仲介物が、図１Ａおよび図１Ｂに例示される構成要素間に存在して、それらシステム間の通信を中継してよく、これは、本開示の新規の態様から注意を逸らさないように例示していない。
【００３５】
[0034]図２は、オンラインサービス１１０をセキュリティ保護するのに使用する予測モデルを訓練するための訓練データセットを開発する例示的な方法２００に伴う、一般的な段階を示すフローチャートである。方法２００は動作２１０で開始し、ここでセキュリティ信号１１５を収集する。様々な態様において、セキュリティ信号１１５は、リアルタイムで（もしくは処理および伝送遅延を加味してほぼリアルタイムで）受信されるか、または、受信され、例えばｍ分ごとにセキュリティイベントを点検するバッチプロセス等による周期的な点検のために、データベースにキャッシュされてよい。セキュリティ信号１１５は、監視対象イベントと、オンラインサービス１１０内の機械上で起きる様々なアクションのパラメータとを含む。
【００３６】
[0035]この監視対象イベントおよびパラメータを動作２２０で使用して、所与のセキュリティ信号１１５が、悪意のあるアクションに対応するか、または無害のアクションに対応するかを識別する。様々な態様において、収集されたセキュリティ信号１１５は、それぞれのセキュリティ信号１１５が悪意のあるものか無害であるかを判定するためにライブオンラインサービス１１０（すなわち生成モデル１２０）と共に使用することが指定された予測モデルに供給される。これらの判定は分析者ユーザに提示され、分析者ユーザは、当該判定に基づいて行動して、オンラインサービス１１０を悪意のある者からセキュリティ保護することができるが、予測モデルによって行われた判定を取り消してもよく、これは、判定が偽陽性または偽陰性であることを意味する。同様に、自動化アタッカー１４０を使用してオンラインサービス１１０への攻撃を模擬する態様では、自動化アタッカー１４０は、当該攻撃に応答して生成されたセキュリティ信号１１５を悪意のあるものと識別する通知を提供し、そのため、それらのセキュリティ信号１１５は、予測モデルからの検出結果に関わらず悪意のあるものとして扱われる。
【００３７】
[0036]動作２３０で、ローリングウィンドウ１３０を設定して、オンラインサービス１１０に対して実行されている最新のエクスプロイトおよび攻撃に関連するセキュリティ信号１１５を分析するための、現在の時刻からの時間フレームを定義する。ローリングウィンドウ１３０は、現在の時刻から指定された期間内に入るセキュリティ信号１１５のセットを定義し、セキュリティ信号１１５は直前のｄ日間に収集されたものである。遅効性の攻撃（slow attack）の訓練および予測には複数日のウィンドウが使用され、遅効性の攻撃は、従来のセキュリティシステムによる検出を回避するために複数日をかけて実行される。セキュリティ信号１１５が収集されるのに伴い、最近のセキュリティ信号が、ローリングウィンドウ１３０に対応するセキュリティ信号１１５のセットに追加され、ローリングウィンドウ１３０に対応する指定期間より前に収集されたセキュリティ信号１１５は、セキュリティ信号１１５のセットから継続的に除去される。
【００３８】
[0037]いくつかの態様では、過去の信号１３５が任意選択で、動作２４０で受け取られる。過去の信号１３５は、同様の攻撃または使用時例がローリングウィンドウ１３０の期間内に見られたかどうかに関わらず、特定の攻撃タイプを表す記録的に重要なセキュリティ信号１１５、または訓練目的に指定された無害使用時例を含むように、以前に観察されたセキュリティ信号１１５から分析者ユーザによってキュレートされる。一例では、記録的に危険なエクスプロイトは、当該エクスプロイトの検出に関係するセキュリティ信号１１５を過去の信号１３５に追加して、そのエクスプロイトに対して常に警戒し続けるようにしてよい。別の例では、開発者が、ゼロデイ（zero-day）・エクスプロイトを発見し、悪意のある者がそれを使用しているのかどうかをまだ把握していないが、そのエクスプロイトが一度も見られたことがなくとも、そのエクスプロイトに対して先制的に警戒するために、過去の信号１３５として使用するためのゼロデイ・エクスプロイトのアクションを模倣した例示的なセキュリティ信号１１５を提供してよい。さらに他の例では、頻繁に偽陽性となるセキュリティ信号１１５を過去の信号１３５に追加して、予測モデルがこの特定のセキュリティ信号１１５に照らして訓練されることを保証してよい。入手可能な場合、過去の信号１３５は、ローリングウィンドウ１３０内に収集されたセキュリティ信号１１５のセットに追加される。
【００３９】
[0038]動作２５０に進み、方法２００は、ローリングウィンドウ１３０内に入る収集された悪意のある信号および無害の信号と、任意選択の動作２４０でセットに追加されていれば過去の信号１３５とを均衡させる。悪意のある信号を均衡させる際には、それぞれの信号の攻撃タイプを判定して、それぞれの攻撃タイプを表す信号の相対量が平衡される（すなわち等しくされる）ようにし、それにより、悪意のある信号の集団の中でどの所与の攻撃タイプも実際よりも多く示される、または実際よりも少なく示されることがないようにする。無害の信号を均衡させる際には、ローリングウィンドウ１３０内に悪意のある信号を生成したデバイスから受信された無害の信号は破棄し、オンラインサービス１１０内のそれぞれのタイプのデバイスから受信された各無害の信号の相対量を平衡させて、どの所与のデバイスタイプも、無害の信号の集団中で実際よりも多く示される、または実際よりも少なく示されることがないようにする。
【００４０】
[0039]加えて、悪意のある信号のセットは無害の信号のセットよりも数が少ないことが予想されるため、動作２６０で無害の信号のセットの一部分を選択して悪意のある信号と交差結合することにより、新しく、より大きな、悪意のある信号のセットを生成してよく、それにより、２つのセットは所望の比の悪意のある信号対無害の信号を含むことになる。様々な態様において、悪意のある信号のセットおよび無害の信号のセットが所望の比（例えば平衡）にされると、２つのセットが一緒に訓練セットとして使用される。
【００４１】
[0040]動作２７０で、ローリングウィンドウ１３０内で発生した均衡させた悪意のある信号および無害の信号（ならびにある場合には過去の信号１３５）からなる、様々な攻撃シナリオの訓練セットを、予測モデルの訓練に利用できるようにする。例えば、セキュリティ信号１１５を分析するために使用される生成モデル１２０は、オンラインサービス１１０に対して活発に使用されている攻撃およびエクスプロイトをよりうまく評価するようにローリングウィンドウ１３０の内容が時間と共に更新されるのに伴って、継続的に再訓練される、および／または異なる予測モデルに置き換えられる。したがって、方法２００は、動作２７０の後に終了するか、または動作２１０に戻って、ローリングウィンドウ１３０に基づいて周期的にまたは常に訓練データセットを供給するために、セキュリティ信号１１５の収集を続けてよい。
【００４２】
[0041]図３は、オンラインサービス１１０をセキュリティ保護するのに使用するための予測モデルを訓練および選択する例示的な方法３００に伴う、一般的段階を示すフローチャートである。方法３００は動作３１０から開始し、ここで、方法２００に従って開発されたもの等、均衡させた悪意のある信号および無害の信号の訓練データセットを受け取る。様々な態様において、方法３００は、周期的に（例えばｈ時間ごとに）、またはローリングウィンドウ１３０（およびしたがって訓練データセット）への更新に応答して、またはユーザコマンドに応答して、呼び出される。
【００４３】
[0042]動作３２０に進み、訓練データセットを評価用部分セットと学習部分セットとに分割する。様々な態様において、訓練データセットに対する評価用部分セットのサイズは、様々に異なってよいが、一般には学習部分セットよりもサイズが小さい。例えば、評価用部分セットは、初期の訓練セットの３分の１であってよく、したがって、学習部分セットは初期の訓練セットの残りの３分の２となる。当業者は、訓練データセットの他の割合が、評価用部分セットとして使用するために取り分けられてよいことを認識されよう。
【００４４】
[0043]動作３３０で、構成特徴を受け取って、オンラインサービス１１０をセキュリティ保護するために生成時に（すなわち生成モデル１２０として）使用する潜在的予測モデルとして、開発モデル１８０を生成する。セキュリティ分析者等の管理ユーザが、セキュリティ信号１１５を介してオンラインサービス１１０内で監視する１つまたは複数のパラメータと、それらのパラメータを検査するための特徴タイプとを選定する。セキュリティ信号１１５は、これらに限定されないが、イベントログ、ネットワークトレース、エラーレポート、特殊イベント・リスナー・レポート、アトミック検出、およびそれらの組み合わせを含み、選択された特徴に関するパラメータは、セキュリティ信号１１５に含まれる要素の何れかを含んでよい。
【００４５】
[0044]例えば、セキュリティ信号１１５がネットワークトレースを含む場合、送信者アドレス／受信者アドレスのペアのパラメータを選択し、「ｃｏｕｎｔ」の特徴タイプに従って評価してよく、訓練セット内でそのペアが見られる回数が、その特徴について評価すべきスコア／値を増分させるようにする。別の例では、セキュリティ信号１１５がネットワークトレースを含む場合、送信者／受信者のペア間で伝送されたバイト数のパラメータが、その特徴について評価すべきスコア／値として提供される。さらなる例では、相対的なアップロード／ダウンロード比を示す送信者／受信者のペア間の伝送のバランスのパラメータが、その特徴について評価すべき値／スコアとして提供される。当業者は、上記は非制限的な例であることを認識されよう。他のパラメータ、および予測モデルによってそれらのパラメータを評価することが可能となる当該パラメータの他の特徴タイプが、本願と共に使用されることが想定される。
【００４６】
[0045]動作３４０に進み、受け取った特徴構成に基づいて開発モデル１８０が作成され、１つまたは複数の機械学習アルゴリズムを用いて、学習部分セットに従って精緻化される。それぞれの予測モデルは、特定の特徴ベクトル（管理ユーザによって選択された特徴を特定する）を受け付けるように作成され、ここで特徴ベクトルを構成するそれぞれの特徴は係数に関連付けられる。それぞれの特徴ベクトルは、特徴構成に基づいて動的にセキュリティ信号１１５から抽出される。係数の値は機械学習アルゴリズムの数エポックにわたって調整され、それにより、所与の開発モデル１８０が特徴ベクトルの入力を受け取ると、学習部分セット中で指定された出力と一致する、悪意のあるものか無害であるかの出力を確実に生成するように、様々な特徴値間の相互作用を調整してよい。
【００４７】
[0046]動作３５０に進み、動作３４０で訓練データセットに関して精緻化された予測モデルを、動作３２０で訓練データセットから分割された評価用部分セットに照らして評価する。評価用部分セットは、入力（オンラインサービス１１０から集められたセキュリティ信号１１５）を、当該信号が悪意のあるものか無害であるかの既知の出力と併せて含む。加えて、評価用部分セットの入力／出力ペアは、開発モデル１８０を直接訓練するためには使用されておらず、したがって、未知の信号が悪意のあるものか無害であるかを判定するための一般的な機能規則を開発モデル１８０が提供するかどうかについての試験を提供する。
【００４８】
[0047]昇格閾値を開発モデル１８０に適用して、所与の開発モデル１８０を生成モデル１２０に昇格させるかどうかを決定する。昇格閾値は、セキュリティ信号１１５から抽出された特徴ベクトルに基づいて信号が悪意のあるものか無害であるかを予測する際に、開発モデル１８０がどれほど正確である必要があるかを特定する。いくつかの態様では、昇格閾値は、定数として、例えば、少なくともｎ％の精度、試験データ上での所与の適合率および再現率曲線の下の部分の面積等として設定される。他の態様では、昇格閾値は、所与の特徴ベクトルまたは攻撃タイプに対する現在の生成モデル１２０の精度によって設定され、セキュリティシステム１００内で開発モデル１８０が生成モデル１２０に取って替わるには開発モデル１８０が現在の生成モデル１２０よりも高精度でなければならないようにする。
【００４９】
[0048]動作３６０で、開発モデル１８０と、評価用部分セットおよび昇格閾値に従って性能が最良の再評価後の生成モデル１２０とが、オンラインサービス１１０を守るためにセキュリティシステム１００で使用するために昇格される。昇格閾値を満たさなくなった、または開発モデル１８０に取って替わられた生成モデル１２０は、削除するか、または開発モデル１８０に降格して、さらに訓練および補正し、後に再評価してよい。次いで方法３００は終了してよい。
【００５０】
[0049]実装形態について、コンピュータのオペレーティングシステム上で実行されるアプリケーションプログラムとの関連で実行されるプログラムモジュールの一般的な文脈で説明してきたが、当業者は、態様は、他のプログラムモジュールと組み合わせて実施してもよいことを認識されよう。一般に、プログラムモジュールは、特定のタスクを行うか、または特定の抽象データ型を実装する、ルーチン、プログラム、コンポーネント、データ構造、および他のタイプの構造を含む。
【００５１】
[0050]本明細書に記載される態様および機能性は、多種のコンピューティングシステムを介して動作することができ、それらには、デスクトップコンピュータシステム、有線および無線のコンピューティングシステム、モバイルコンピューティングシステム（例えば携帯電話、ネットブック、タブレットまたはスレート型コンピュータ、ノート型コンピュータ、およびラップトップコンピュータ）、携帯型デバイス、マルチプロセッサシステム、マイクロプロセッサを利用したまたはプログラム可能な消費者家電製品、ミニコンピュータ、およびメインフレームコンピュータが、制限なしに含まれる。
【００５２】
[0051]加えて、一態様によれば、本明細書に記載される態様および機能性は、分散システム（例えばクラウドベースのコンピューティングシステム）にまたがって動作し、分散システムでは、アプリケーション機能、メモリ、データ記憶および検索、ならびに様々な処理機能が、インターネットまたはイントラネットなどの分散コンピューティングネットワークを通じて互いにリモートから操作される。一態様によれば、様々なタイプのユーザインターフェースおよび情報が、内蔵コンピューティングデバイスディスプレイを介して、または１つもしくは複数のコンピューティングデバイスに関連付けられたリモートの表示ユニットを介して表示される。例えば、様々なタイプのユーザインターフェースおよび情報が、様々なタイプのユーザインターフェースおよび情報が投影される壁面に表示され、壁面上で対話される。実装形態がそれと共に実施される多種のコンピューティングシステムとの対話は、キーストローク入力、タッチ画面入力、声または他の音声入力、関連付けられたコンピューティングデバイスがコンピューティングデバイスの機能性を制御するためのユーザジェスチャを捕捉し、解釈する検出（例えばカメラ）機能を備える場合のジェスチャ入力等を含む。
【００５３】
[0052]図４およびそれに関連する説明は、例が実施される各種の動作環境の解説を提供する。しかし、図４に関して例示および解説するデバイスおよびシステムは、例および例示を目的とするものであり、本明細書に記載される態様を実施するために利用される膨大な数のコンピューティングデバイス構成の制限ではない。
【００５４】
[0053]図４は、本開示の例をそれと共に実施可能なコンピューティングデバイス４００の物理的構成要素（すなわちハードウェア）を例示するブロック図である。基本的構成で、コンピューティングデバイス４００は、少なくとも１つの処理ユニット４０２およびシステムメモリ４０４を含む。一態様によれば、コンピューティングデバイス４００の構成およびタイプに応じて、システムメモリ４０４は、これらに限定されないが、揮発性ストレージ（例えばランダムアクセスメモリ）、不揮発性ストレージ（例えば読出し専用メモリ）、フラッシュメモリ、またはそのようなメモリの組み合わせを含むメモリ記憶装置である。一態様によれば、システムメモリ４０４は、オペレーティングシステム４０５と、ソフトウェアアプリケーション４５０を実行するのに適した１つまたは複数のプログラムモジュール４０６とを含む。一態様によれば、システムメモリ４０４は、セキュリティシステム１００、モデル訓練および選択システム１０５、およびそれらにより使用または生成される任意のモデルを含む。オペレーティングシステム４０５は、例えば、コンピューティングデバイス４００の動作を制御するのに適する。さらに、態様は、グラフィックライブラリ、他のオペレーティングシステム、または任意の他のアプリケーションプログラムとの関連で実施され、どの特定のアプリケーションまたはシステムにも制限されない。この基本的構成は、図４では破線４０８内の構成要素によって例示される。一態様によれば、コンピューティングデバイス４００は、追加的な特徴または機能性を有する。例えば、一態様によれば、コンピューティングデバイス４００は、例えば、磁気ディスク、光ディスク、またはテープなどの追加的なデータ記憶装置（取り外し可能および／または取り外し不能）を含む。そのような追加的なストレージは、図４では、取り外し可能記憶装置４０９および取り外し不能記憶装置４１０によって例示される。
【００５５】
[0054]上述のように、一態様によれば、複数のプログラムモジュールおよびデータファイルがシステムメモリ４０４に記憶される。処理ユニット４０２上で実行される間、プログラムモジュール４０６（例えばセキュリティシステム１００、モデル訓練および選択システム１０５）は、これに限定されないが、それぞれ図２および図３に例示される方法２００および３００の段階の１つまたは複数を含むプロセスを行う。一態様によれば、他のプログラムモジュールが、例に従って使用され、それらの例は、電子メールおよび連絡先アプリケーション、文書処理アプリケーション、表計算アプリケーション、データベースアプリケーション、スライド提示アプリケーション、描画またはコンピュータ支援アプリケーションプログラム等である。
【００５６】
[0055]一態様によれば、コンピューティングデバイス４００は、キーボード、マウス、ペン、音入力装置、タッチ入力装置等の１つまたは複数の入力装置４１２を有する。ディスプレイ、スピーカ、プリンタ等の出力装置４１４も、一態様によれば含まれる。上述のデバイスは例であり、他のものが使用されてよい。一態様によれば、コンピューティングデバイス４００は、他のコンピューティングデバイス４１８との通信を可能にする１つまたは複数の通信接続４１６を含む。適切な通信接続４１６の例には、これらに限定されないが、無線周波（ＲＦ）送信機、受信機、および／またはトランシーバ回路、ユニバーサルシリアルバス（ＵＳＢ）、パラレルポート、および／またはシリアルポートが含まれる。
【００５７】
[0056]本明細書で使用されるコンピュータ可読媒体という用語は、コンピュータ記憶媒体を含む。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、またはプログラムモジュールなどの情報を記憶するための任意の方法または技術で実装された、揮発性および不揮発性、取り外し可能および取り外し不能の媒体を含む。システムメモリ４０４、取り外し可能記憶装置４０９、および取り外し不能記憶装置４１０はすべてコンピュータ記憶媒体の例（すなわちメモリストレージ）である。一態様によれば、コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、電気的に消去可能なプログラム可能読出し専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）もしくは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気記憶装置、または情報を記憶するために使用することができ、コンピューティングデバイス４００からアクセスできる任意の製造品を含む。一態様によれば、任意のそのようなコンピュータ記憶媒体がコンピューティングデバイス４００の一部である。コンピュータ記憶媒体は、搬送波または他の伝播データ信号を含まない。
【００５８】
[0057]一態様によれば、通信媒体は、搬送波や他の移送機構などの変調データ信号中の、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータによって実現され、任意の情報伝達媒体を含む。一態様によれば、用語「変調データ信号」は、信号中に情報を符号化するような形で１つまたは複数の特性を設定または変化させた信号を言う。制限ではなく例として、通信媒体は、有線ネットワークや直接配線接続などの有線媒体、および音響、無線周波（ＲＦ）、赤外線、他のワイヤレス媒体などの無線媒体を含む。
【００５９】
[0058]例えば実装形態について、上記ではブロック図および／または各態様に係る方法、システム、およびコンピュータプログラム製品の動作図を参照して説明した。ブロックに記された機能／動作は、何れかのフローチャートに示される順序とは異なって行ってよい。例えば、連続して示される２つのブロックを実際には実質的に同時に実行してよく、またはそれらのブロックは、場合によっては、関連する機能性／動作に応じて逆の順序で実行してよい。
【００６０】
[0059]本願に提供される１つまたは複数の例の説明および例示は、特許請求される範囲をどのような意味でも制限または制約する意図はない。本願に提供される態様、例、および詳細事項は、概念を伝え、他の者が最良の形態を作製し、使用できるようにするのに充分なものと考えられる。実装形態は、本願に提供されるどの態様、例、または詳細事項にも制限されるものとは解釈すべきでない。組み合わせて図示され、説明されるか、または別々に図示され、説明されるかに関わらず、様々な特徴（構造的特徴と方法論的特徴の両方）は、特定の特徴のセットを備えた例を生成するために選択的に含められるか、または省略されることが意図される。本願の説明および例示を提供された当業者は、本願において実現される一般的な発明概念のより広い態様の主旨の範囲内に入り、より広い範囲から逸脱することのない、変形形態、修正形態、および代替例を想定できよう。
【図１Ａ】
2020505707.tif 000003
【図１Ｂ】
2020505707.tif 000004
【図２】
2020505707.tif 000005
【図３】
2020505707.tif 000006
【図４】
2020505707.tif 000007
【国際調査報告】
2020505707.tif 000008
2020505707.tif 000009