IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ マイクロソフト テクノロジー ライセンシング,エルエルシーの特許一覧

<>
  • 特許-侵入検出のための継続的な学習 図1A
  • 特許-侵入検出のための継続的な学習 図1B
  • 特許-侵入検出のための継続的な学習 図2
  • 特許-侵入検出のための継続的な学習 図3
  • 特許-侵入検出のための継続的な学習 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-06-10
(45)【発行日】2022-06-20
(54)【発明の名称】侵入検出のための継続的な学習
(51)【国際特許分類】
   G06F 21/55 20130101AFI20220613BHJP
   G06N 20/00 20190101ALI20220613BHJP
【FI】
G06F21/55 320
G06N20/00 130
【請求項の数】 20
(21)【出願番号】P 2019541304
(86)(22)【出願日】2018-01-22
(65)【公表番号】
(43)【公表日】2020-02-20
(86)【国際出願番号】 US2018014606
(87)【国際公開番号】W WO2018140335
(87)【国際公開日】2018-08-02
【審査請求日】2021-01-14
(31)【優先権主張番号】15/419,933
(32)【優先日】2017-01-30
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】314015767
【氏名又は名称】マイクロソフト テクノロジー ライセンシング,エルエルシー
(74)【代理人】
【識別番号】100140109
【弁理士】
【氏名又は名称】小野 新次郎
(74)【代理人】
【識別番号】100118902
【弁理士】
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100106208
【弁理士】
【氏名又は名称】宮前 徹
(74)【代理人】
【識別番号】100120112
【氏名又は名称】中西 基晴
(74)【代理人】
【識別番号】100162846
【弁理士】
【氏名又は名称】大牧 綾子
(72)【発明者】
【氏名】ルオ,プオンチェン
(72)【発明者】
【氏名】ブリッグス,リーブス・ホッペ
(72)【発明者】
【氏名】アーマッド,ナビード
【審査官】岸野 徹
(56)【参考文献】
【文献】特開2004-312083(JP,A)
【文献】米国特許第09306962(US,B1)
【文献】山田明ほか,亜種攻撃を検知できる侵入検知システムの提案,コンピュータセキュリティシンポジウム,日本,2003年10月29日,pp.659-664
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/55
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
継続的に学習するモデルを介してネットワーク上で提供されるオンラインサービスを保護するための、プロセッサによって実行される方法であって、
前記オンラインサービスから1つまたは複数のネットワークセッションに関連するセキュリティ信号のセットを収集するステップであって、前記セキュリティ信号のセットは、時間のローリングウィンドウで収集される、ステップと、
前記セキュリティ信号のセットのそれぞれのセキュリティ信号が悪意のあるものか無害であるかを識別するステップと、
前記時間のローリングウィンドウの均衡させた訓練データセットを、
悪意のある信号それぞれについて識別された攻撃タイプに基づいて、前記セキュリティ信号のセットのうち悪意のある信号を均衡させるステップと、
無害の信号がそれぞれ受信されるデバイスのタイプに基づいて、前記セキュリティ信号のセットのうち無害の信号を均衡させるステップと、
前記悪意のある信号を前記無害の信号と交差結合することにより、前記悪意のある信号を前記無害の信号と均衡させるステップと
により、生成するステップと、
前記均衡させた訓練データセットに基づいて予測モデルを生成するステップと、
を含み、前記オンラインサービスから新しいネットワークセッションに関連する追加のセキュリティ信号を受信することに応答して、前記追加のセキュリティ信号が悪意のあるものか無害のものかが判定するために前記予測モデルが適用される、
方法。
【請求項2】
前記セキュリティ信号のセットのそれぞれのセキュリティ信号が悪意のあるものか無害であるかを識別するステップが、
それぞれのセキュリティ信号を生成モデルで検査するステップであって、前記生成モデルは、前記均衡させた訓練データセットに従ってモデルトレーナーによって生成され、所与のセキュリティ信号が悪意のあるものか無害であるかの検出結果を生成するよう構成される、ステップと、
前記検出結果を分析者ユーザに送信するステップと、
前記検出結果に関して前記分析者ユーザからアクションを受け取るのに応答して、前記所与のセキュリティ信号が悪意のあるものか無害であるかを示すように前記検出結果を更新するステップと、
をさらに含む、請求項1に記載の方法。
【請求項3】
自動化アタッカーが、前記オンラインサービスに対する攻撃を模擬し、前記セキュリティ信号のセットのそれぞれのセキュリティ信号が悪意のあるものか無害であるかを識別するステップが、
前記攻撃に応答して生成された前記セキュリティ信号を識別する通知を、前記自動化アタッカーから受け取るステップと、
前記攻撃に応答して生成された前記セキュリティ信号を、前記検出結果に関わらず悪意のあるものとして扱うステップと、
をさらに含む、請求項2に記載の方法。
【請求項4】
前記セキュリティ信号のセットのそれぞれのセキュリティ信号が悪意のあるものか無害であるかを識別するステップが、
前記所与のセキュリティ信号から特徴を抽出するステップと、
前記所与のセキュリティ信号から抽出された前記特徴が、ある攻撃タイプを定義するものとして管理ユーザによって指定された特徴セットを満たすかどうかを判定するステップと、
抽出された前記特徴が前記特徴セットを満たすと判定するのに応答して、前記所与のセキュリティ信号を悪意のあるものと指定するステップと、
抽出された前記特徴が前記特徴セットを満たさないと判定するのに応答して、前記所与のセキュリティ信号を無害と指定するステップと、
をさらに含む、請求項2に記載の方法。
【請求項5】
悪意のある信号それぞれについて識別された攻撃タイプに基づいて、前記セキュリティ信号のセットのうち前記悪意のある信号を均衡させるステップは、
前記悪意のある信号に対して観察された攻撃タイプのセットについて、攻撃タイプの総対数を、
前記攻撃タイプのセット中で実際よりも少なく示された攻撃タイプの相対量を増加させるステップと、および
前記攻撃タイプのセット中で実際よりも多く示された攻撃タイプの相対量を減少させるステップと、
のうち少なくとも一方によって均衡させるステップと、
をさらに含む、請求項4に記載の方法。
【請求項6】
前記特徴セットは、前記管理ユーザから与えられる構造化文書中で識別され、前記構造化文書は、前記セキュリティ信号のセット中で観察すべき特徴タイプおよびデータフィールドを特定し、前記特徴セットの特徴は、コードを修正する必要なしに、前記構造化文書に基づいて前記セキュリティ信号のセットから動的に抽出される、請求項4に記載の方法。
【請求項7】
過去のデータ信号が前記セキュリティ信号のセットに含められる、請求項1に記載の方法。
【請求項8】
前記無害の信号がそれぞれ受信されるデバイスのタイプに基づいて、前記セキュリティ信号のセットのうち無害の信号を均衡させるステップは、
前記ローリングウィンドウ内で少なくとも1つの悪意のある信号が収集された前記オンラインサービス内のデバイスを識別するステップと、
前記デバイスに関連する無害の信号を、前記セキュリティ信号のセットから除去するステップと、
をさらに含む、請求項1に記載の方法。
【請求項9】
前記悪意のある信号を無害の信号と交差結合することにより、前記悪意のある信号を前記無害の信号と均衡させるステップは、
前記均衡させた訓練データセットについて複数の攻撃シナリオを生成するために前記悪意のある信号を前記無害の信号と交差結合するステップをさらに含み、前記複数の攻撃シナリオは、前記悪意のある信号と前記無害の信号とを含む、
請求項8に記載の方法。
【請求項10】
前記ローリングウィンドウ内の前記セキュリティ信号のセットを収集するステップは、
現在の時刻からの前記ローリングウィンドウを定義する時間フレームを識別するステップと、
前記現在の時刻で前記オンラインサービスから新しいセキュリティ信号を受信するステップと、
前記現在の時刻で受信した前記新しいセキュリティ信号を前記セキュリティ信号のセットに追加するステップと、
前記現在の時刻からの前記時間フレームの外側で前記セキュリティ信号のセットに追加された既存のセキュリティ信号を識別するステップと、
前記セキュリティ信号のセットから、前記現在の時刻からの前記時間フレームの外側で前記セキュリティ信号のセットに追加されたと識別された前記既存のセキュリティ信号を除去するステップと
をさらに含む、請求項1に記載の方法。
【請求項11】
継続的に学習するモデルを介してネットワーク上で提供されるオンラインサービスをセキュリティ保護するためのシステムであって、
プロセッサと、
命令を含むメモリ記憶装置と、を備え、前記命令は、前記プロセッサによって実行された時に、
前記オンラインサービス内のデバイスからセキュリティ信号を受信することであって、前記セキュリティ信号は1つまたは複数のネットワークセッションと関連付けられる、受信することと、
前記セキュリティ信号のそれぞれから特徴ベクトルを抽出することであって、所与の特徴ベクトルは、所与のセキュリティ信号が受信される所与のデバイスの状態を表す数値を提供する、抽出することと、
関連付けられた予測モデルを介して前記特徴ベクトルそれぞれの検出結果を生成することであって、所与の検出結果は、所与のネットワークセッションと関連付けられた前記所与のセキュリティ信号が前記所与のデバイス上で悪意のある活動を示唆するか無害の活動を示唆するかを識別する、生成することと、
ローリングウィンドウを定義することであって、前記ローリングウィンドウは、現在の時刻からのある時間フレーム内に受信された複数のセキュリティ信号および関連付けられた検出結果を含む、定義することと、
前記ローリングウィンドウについて均衡させた訓練データセットを生成することと、
を行うように動作可能であり、
前記均衡させた訓練データセットを生成するために、前記システムがさらに、
悪意のある活動を示唆するものと識別された前記ローリングウィンドウ内の前記セキュリティ信号それぞれの攻撃タイプを識別し、
前記ローリングウィンドウ内で実際よりも少なく示された攻撃タイプで識別されたセキュリティ信号の量を、実際よりも多く示された攻撃タイプで識別されたセキュリティ信号の量に対して増加させ、
悪意のある活動を示唆するものと識別された前記セキュリティ信号を、無害の活動を示唆するものと識別されたセキュリティ信号と交差結合して、前記ローリングウィンドウ
についての攻撃シナリオを生成し、
機械学習アルゴリズムに従って、前記均衡させた訓練データセットに基づいて前記関連付けられた予測モデルを更新する、
ように構成される、システム。
【請求項12】
前記関連付けられた予測モデルを更新することは、
前記均衡させた訓練データセットに従って、前記セキュリティ信号が前記デバイス上で悪意のある活動を示唆するか無害の活動を示唆するかを、開発モデルの方が正確に識別することを、前記機械学習アルゴリズムが示すのに応答して、前記検出結果を生成するために使用される生成モデルを、前記機械学習アルゴリズムに従って前記均衡させた訓練データセットから開発された前記開発モデルに置き換えることを含む、請求項11に記載のシステム。
【請求項13】
過去の信号が前記ローリングウィンドウに含められ、前記過去の信号は、前記時間フレームの外側で収集されたセキュリティ信号を含む、請求項11に記載のシステム。
【請求項14】
前記オンラインサービス内の前記デバイスから受信された前記セキュリティ信号は、自動化アタッカーが前記オンラインサービスに対して既知の悪意のある活動を行うのに応答して発生したセキュリティ信号を含み、
前記自動化アタッカーが前記既知の悪意のある活動を行うのに応答して発生した前記セキュリティ信号に対して生成された前記検出結果は、前記自動化アタッカーからの通知に基づいて、前記所与のセキュリティ信号が悪意のある活動を示唆することを示すように設定される、請求項11に記載のシステム。
【請求項15】
前記均衡させた訓練データセットを生成するために、前記システムがさらに、
無害の活動を示唆するものと識別されたセキュリティ信号が受信された特定のデバイスが、前記ローリングウィンドウ内で悪意のある活動を示唆するものと識別された1つまたは複数のセキュリティ信号と関連付けられていることを識別するのに応答して、無害の活動を示唆するものと識別された前記セキュリティ信号を前記ローリングウィンドウから除去するように構成される、請求項11に記載のシステム。
【請求項16】
前記均衡させた訓練データセットを生成するために、前記システムがさらに、
無害の活動を示唆するものと識別された前記ローリングウィンドウ内の前記セキュリティ信号それぞれが受信されたデバイスのタイプを識別し、
前記ローリングウィンドウ内で実際よりも少なく示されたデバイスタイプで識別されたセキュリティ信号の量を、実際よりも多く示されたデバイスタイプで識別されたセキュリティ信号に対して増加させる、
ように構成される、請求項11に記載のシステム。
【請求項17】
継続的に学習するモデルを介してネットワーク上で提供されるオンラインサービスをセキュリティ保護するためのプロセッサ実行可能命令を含むコンピュータ可読記憶装置であって、前記プロセッサ実行可能命令は、
前記オンラインサービスから1つまたは複数のネットワークセッションに関連するセキュリティ信号のセットを収集することであって、前記セキュリティ信号のセットは時間のローリングウィンドウ内で収集される、収集することと、
所与のネットワークセッションと関連するそれぞれのセキュリティ信号が悪意のあるものか無害であるかを識別するために、予測モデルを介して前記セキュリティ信号のセットのそれぞれのセキュリティ信号を検査することであって、前記予測モデルは、管理ユーザによって定義された特徴ベクトルに基づいて、所与のセキュリティ信号が悪意のあるものか無害であるかの検出結果を生成するように構成される、検査することと、
前記セキュリティ信号のセットを悪意のある信号または無害の信号として識別するために、前記セキュリティ信号のセットを前記検出結果に関連付けることと、
均衡させた訓練データセットを生成するために、前記悪意のある信号を前記無害の信号と均衡させることと、
前記悪意のある信号それぞれの攻撃タイプを識別することと、
前記無害の信号のそれぞれが収集されたデバイスのタイプを識別することと、
攻撃事例のセットを生成するために、前記ローリングウィンドウ内の悪意のある信号の各相対数を、識別された攻撃タイプに基づいて等しくすることと、
識別された無害事例のセットを生成するために、前記ローリングウィンドウ内の無害の信号の各相対数を、識別されたデバイスタイプに基づいて等しくすることと、および
前記攻撃事例のセット中の攻撃事例の数を、前記無害事例のセット中の無害事例の数に対して均衡させるために、前記攻撃事例のセットを前記無害事例のセットの少なくとも一部分と交差結合すること、
を含むことと、
前記均衡させた訓練データセットおよび機械学習アルゴリズムに基づいて前記予測モデルを精緻化することと、
を含む、コンピュータ可読記憶装置。
【請求項18】
前記悪意のある信号を前記無害の信号と均衡させることは
前記ローリングウィンドウ内で少なくとも1つの悪意のある信号が収集された前記オンラインサービス内でデバイスを識別することと、
前記デバイスと関連する無害の信号を、前記セキュリティ信号のセットから除去することと、
をさらに含む、請求項17に記載のコンピュータ可読記憶装置。
【請求項19】
前記予測モデルを介してそれぞれのセキュリティ信号を検査することは、
前記検出結果を分析者ユーザに送信することと、
前記検出結果に関連する分析者ユーザからのアクションを受け取るのに応答して、前記分析者ユーザからの前記アクションに照らして、前記所与のセキュリティ信号が悪意のあるものか無害であるかを示すように前記検出結果を更新することと、
をさらに含む、請求項17に記載のコンピュータ可読記憶装置。
【請求項20】
前記特徴ベクトルは、1つまたは複数の攻撃タイプを識別するよう構成された予測モデルを定義するために前記管理ユーザによって与えられる構造化文書中で識別される特徴セットを含み、前記構造化文書は、前記セキュリティ信号のセット中で観察すべき特徴タイプおよびデータフィールドを特定し、前記特徴セットの特徴は、コードを修正する必要なしに、前記構造化文書に基づいて前記セキュリティ信号のセットから動的に抽出される、請求項17に記載のコンピュータ可読記憶装置。
【発明の詳細な説明】
【背景技術】
【0001】
[0001]コンピュータネットワークは、それらにホストされたシステムに不正にアクセスしようとする悪意のある者からの絶え間ない脅威を受けている。ネットワークを攻撃するために悪意のある者によって使用される戦略と、攻撃から防御するためにネットワーク管理者によって使用される戦略とは、互いを踏まえて常に発展し続けており、悪意のある者の集合に新しいエクスプロイト(exploit)が追加され、効果的でないエクスプロイトが破棄される。しかし、対抗措置の実装はしばしば事後対応的になされ、ネットワーク管理者は、最も新しいエクスプロイトを識別するのを待ってから対抗措置を配備しなければならず、また対応するエクスプロイトがもはや使用されなくなった時に対抗措置の配備をいつやめるかを決定する。最新のエクスプロイトを正しく識別し、阻止することは、しばしばネットワーク管理者にとって困難であり、これはエクスプロイトがまだ広まっていない場合、またはエクスプロイトがネットワーク上で提供されるサービスのうち小さな集団を攻撃する場合に、特にそうである。
【発明の概要】
【課題を解決するための手段】
【0002】
[0002]この概要は、以下の「発明を実施するための形態」の項でさらに説明する概念から選択したものを簡略化した形態で紹介するために提供される。この概要は、特許請求の主題の主要な特徴または必須の特徴すべてを識別するために意図されるものでも、特許請求の主題の範囲を決定する際の助けとして意図されるものでもない。
【0003】
[0003]本発明では、侵入検出のための継続的な学習を提供する、システム、方法、および命令を含むコンピュータ記憶装置が提供される。複数の機械学習モデルが、攻撃の挙動と無害な挙動とを表す、ネットワーク内の機械およびデバイスから収集された信号に基づくネットワーク信号に対して常に再訓練される。ローリングウィンドウ(rolling window)を使用して信号を収集することで、モデルは最新のデータを使用して攻撃を識別し、またモデルは、攻撃を正確に検出する各自の能力が最近のデータの構成に応じて増減するのに伴って、ネットワークを保護するように継続的に昇格および降格される。アクティブな生成ネットワーク内に配備されたモデルは、各自の検出をほぼリアルタイムでセキュリティ分析者に提供し、セキュリティ分析者は、モデルの精度に関するフィードバック(例えば見逃された侵入/偽陰性、偽陽性、誤って識別された侵入)を提供して、モデルをどのように訓練するかをさらに精緻化する。
【0004】
[0004]検出モデルを常に再訓練し精緻化するために使用される訓練データセットの信頼性を改善し、それによってモデルを改善するために、攻撃信号が無害の信号と比べて稀であることに対処するように、かつ特定の攻撃タイプに関して、攻撃信号を均衡させる。無害な信号に他の機械からの様々なタイプの攻撃信号を重畳して、モデルを訓練および精緻化するための均衡させた訓練セットを提供する。均衡させた訓練セット中の攻撃信号のうち、様々な攻撃タイプの信号も均衡させることにより、モデルがすべての攻撃タイプに対して均等に訓練されることを保証する。テキストに基づく構成を介して信号の特徴を動的に抽出し、それにより、ネットワークへの攻撃を示唆する種々の特徴セットにモデルが応答する際の柔軟性を改善する。
【0005】
[0005]様々な態様において、既知の内部アタッカーによって攻撃を模擬することで、ネットワークの即応性を増大させ、追加的な攻撃信号を発生させる。同様に、いくつかの態様では記録的(historically)に重要な攻撃信号を使用することにより、特定のタイプの攻撃信号がローリングウィンドウ内で観察されていない場合でも、それらの信号がモデルに提示されるようにする。
【0006】
[0006]継続的に学習する侵入検出モデルをネットワークに提供することにより、ネットワーク内のデバイスおよびソフトウェアの機能性が改善される。新しい形態の攻撃がより迅速かつより確実に識別され、それにより、ネットワークのセキュリティをどのようにして改善するかというコンピュータを中心とした問題に対処する。加えて、旧式の攻撃形態の検出の試みにコンピューティングリソースが浪費されず、それにより、ネットワークを悪意のある者から守るために使用する処理リソースを低減する。
【0007】
[0007]例えば、コンピュータプロセス、コンピューティングシステムとして、または、デバイス、コンピュータプログラム製品、もしくはコンピュータ可読媒体等の製造品として実施される。一態様によれば、コンピュータプログラム製品は、コンピュータシステムにより可読で、コンピュータプロセッサを実行するための命令を含むコンピュータプログラムを符号化した、コンピュータ記憶媒体である。
【0008】
[0008]1つまたは複数の態様の詳細は、添付図面に明らかにされ、下記で説明される。他の特徴および利点は、以下の詳細な説明を読み、関連する図面を検討することから明らかになろう。以下の詳細な説明は単に説明のためであり、特許請求の範囲を制限するものではないことを理解すべきである。
【0009】
[0009]本開示に組み込まれ、その一部を構成する添付図面は、様々な態様を例示する。
【図面の簡単な説明】
【0010】
図1A】本開示を共に実施可能な例示的なセキュリティシステムの図である。
図1B】本開示を共に実施可能な図1Aの例示的なセキュリティシステムと共に使用するための例示的なモデル訓練および選択システムの図である。
図2】オンラインサービスをセキュリティ保護するのに使用する予測モデルを訓練するための訓練データセットを開発する例示的な方法に伴う、一般的な段階を示すフローチャートである。
図3】オンラインサービスをセキュリティ保護するのに使用するための予測モデルを訓練および選択する例示的な方法に伴う、一般的段階を示すフローチャートである。
図4】コンピューティングデバイスの例示的な物理的構成要素を例示するブロック図である。
【発明を実施するための形態】
【0011】
[0010]以下の詳細な説明では添付図面を参照する。可能な箇所では、図面および以下の説明で使用される同じ参照符号は、同じまたは同様の要素を指す。例を記載する場合があるが、修正、適合、および他の実装形態が可能である。例えば、図面に例示される要素に置換、追加、または修正を加えてよく、また本明細書に記載される方法は、開示される方法の段階を置換する、段階の順序を変える、または段階を追加することによって修正されてよい。したがって、以下の詳細な説明は制限的なものではなく、適正な範囲は添付の特許請求の範囲によって定義される。例は、ハードウェアによる実装、または完全にソフトウェアによる実装、またはソフトウェアによる態様とハードウェアによる態様とを組み合わせた実装の形態を取ってよい。したがって、以下の詳細な説明は制限的な意味に解釈すべきではない。
【0012】
[0011]継続的に学習する侵入検出モデルを介して改善されたネットワークセキュリティを提供するための、システム、方法、および命令を含むコンピュータ可読記憶装置を本明細書で解説する。継続的に学習する侵入検出モデルをネットワークに提供することにより、ネットワーク内のデバイスおよびソフトウェアの機能性が改善される。新しい形態の攻撃がより迅速かつより確実に特定され、それにより、ネットワークのセキュリティをどのようにして改善するかというコンピュータを中心とした問題に対処する。加えて、旧式になった攻撃形態の検出を試みることにコンピューティングリソースが浪費されず、それにより、ネットワークを悪意のある者から守るために使用される処理リソースを低減する。
【0013】
[0012]図1Aは、本開示を共に実施可能な例示的なセキュリティシステム100である。図1Aに示されるように、オンラインサービス110は、無害である可能性も、悪意のある可能性もある様々なユーザと、セキュリティシステム100とにより接続される。オンラインサービス110は、様々なユーザに「クラウド」サービスを提供する、クラウドデータセンター等のネットワーク化されたコンピューティングデバイスのセットを提示し、それらのサービスには、これらに限定されないが、以下が含まれる。ユーザがオンラインサービス110のデバイス上で実行されるオペレーティングシステムおよびソフトウェアを提供するInfrastructure as a Service(IaaS)。ユーザがソフトウェアを提供し、オンラインサービス110がオペレーティングシステムおよびデバイスを提供するPlatform as a Service(PaaS)。または、オンラインサービス110がデバイス上で実行するオペレーティングシステムとソフトウェアとの両方をユーザに提供するSoftware as a Service(SaaS)。オンラインサービス110へのアクセスを求めるユーザは、正当なユーザであることも、または、セキュリティの脆弱性を利用してオンラインサービス110に侵入し、正当な許可なしに不正なプロセスを実行する、および/もしくはオンラインサービス110からデータを取得する、悪意のある者であることもある。
【0014】
[0013]ユーザが無害であるか、悪意のある者であるか、またはデバイスが安全である(悪意のある信号を送信していない)か、もしくは危険にさらされている(悪意のある信号を送信している)かを判定するために、オンラインサービス110からの様々なセキュリティ信号115を収集し、生成モデル120に供給して、所与のセッションが悪意のあるものか無害であるかを示す検出結果125を生成する。セキュリティ信号115は、イベントログ、ネットワークトレース、システムコマンド等を含み、これらを生成モデル120で分析して、悪意のある挙動または無害の挙動を示唆するように生成モデル120を訓練することを介して判定される特性およびその特徴値を求める。本開示の目的には、特定のセキュリティ信号115を発生させることに関連するオンラインサービス110内でのアクションに基づいて、その特定のセキュリティ信号115を「悪意のある」または「無害」と称する。また、本明細書で使用される場合、用語「特徴」は、「モデル」によって受け付けられる、ネットワーク内で観察された特性または挙動に関係する1つまたは複数の入力信号から導出される数値属性である。モデルは、特徴の値を、当該特徴が悪意のある活動を示すか無害の活動を示すかについての予測スコアまたは信頼度に変換するために、分析者によって定義された特徴セット(モデル特徴とも呼ぶ)を受け付けるアルゴリズムである。
【0015】
[0014]セキュリティ信号115を生成モデル120に提供して、セキュリティ信号115から、様々な特徴を抽出する。このセキュリティ信号115に対しオンラインサービス110上での悪意のある活動を識別するように生成モデル120が訓練される。セキュリティ信号115は、オンラインサービス110内部のデバイスに発生する1つまたは複数の互いに関係するイベントの集まりであり、いくつかの特徴(例えば使用されたポート、接続が行われたIPアドレス、信号がそこから受信されたデバイスの識別/タイプ、ユーザ、取られたアクション)を含んでよく、それらの特徴のサブセットを所与の生成モデル120で検査するために抽出して、セキュリティ信号115が無害であるか悪意のあるものかを判定する。1つまたは複数のセキュリティ信号115からの特徴を組み合わせて、分析のための特徴ベクトルにする。そして、様々な態様において、特徴をスコア付けすることにより、生成モデル120に入力するための当該特徴の数値的分析を提供してよい。
【0016】
[0015]例えば、所与のIP(インターネットプロトコル)アドレスを使用頻度に基づいてスコア付けしてよく、ここで、ローリングウィンドウ130の間の当該所与のIPアドレスがより頻繁に使用されると、より頻繁でない使用と比べて、生成モデル120に提示される値が変化する。対して、機密性のあるファイルがアクセスされる、禁止されたアクションが行われる、ブラックリストにあるIPアドレスとの通信が行われる等の場合には、危険な状態が発生したことを示す2値スコアが、セキュリティ信号115中で生成モデル120に提供されてよい。生成モデル120は、ホワイトリストにもブラックリストにも依拠せず、生成モデルの訓練は、図1B図2、および図3に関してより詳細に解説するように、セキュリティ信号115中で観察される特徴に対するものであり、生成モデルは、時間と共に、ブラックリストまたはホワイトリストの誘導なしで、オンラインサービス110への侵入を示唆する特徴を学習することができる。
【0017】
[0016]所与のセキュリティ信号115に対して、生成モデル120による判定は、当該のセキュリティ信号115が無害であるか悪意のあるものかを特定する。これらの検出結果125をセキュリティ信号115に関連付けて、そのセキュリティ信号を悪意のあるものかまたは無害であるかのどちらかとして識別する。いくつかの態様では、これらの検出結果125の少なくとも一部(例えば悪意のある検出結果125)が、分析者ユーザに提供され、分析者ユーザは、検出結果125に基づいて行動して、悪意のあるユーザもしくは攻撃に対する対抗措置を配備するか、または検出結果125が、生成モデル120が示すものとは異なる判断を裏付けていると判定してよい。例えば、悪意のある信号に対する偽陰性が生成モデル120によって示された場合、分析者は、信号が実際には悪意のあるものであると判断し、取るべきアクションを示してよい。別の例では、無害の信号に対する偽陽性が示された場合、分析者は、信号が実際には無害であると判断し、アクションを取るべきでないことを示すことができる。さらなる例では、悪意のあるアクションに対する真陽性が示された場合、分析者は、アクションを取らないか、またはセキュリティシステム100によって推奨されるものとは異なるアクションを取るべきことを示してよい。分析者からの補正は、それによりモデルのさらなる訓練と改善に使用される。
【0018】
[0017]また、検出結果125は、様々な態様において、過去d日間(dは分析者ユーザまたは別のネットワーク管理者によって、例えば2日、10日、15日等に設定可能である)にわたって観察されたセキュリティ信号115のローリングウィンドウ130を記憶するデータベースと、過去d日間に見られたかどうかに関わらず、訓練に使用すべきセキュリティ信号115に関する過去の信号135を記憶するデータベースと、に供給される。過去の信号135は、既知の外部攻撃に関連付けられたセキュリティ信号115を含むように分析者ユーザによってキュレート(curete)される。追加的な態様では、分析者ユーザが、疑わしく見える、またはネットワーク侵入に関してその他の形で偽陽性を返す可能性のある無害の信号を含むように過去の信号135をキュレートして、予測モデルが、適正な識別が難しいことが記録的に判明している信号に対し適正に反応するように訓練されることを保証する。
【0019】
[0018]自動化アタッカー140は、攻撃およびエクスプロイトの既知のパターンを使用してオンラインサービス110のセキュリティを試験し、生成モデル120によって生成された検出結果125と併せて使用するための既知の結果を提供する。自動化アタッカー140からの攻撃の結果であるセキュリティ信号115の検出結果125が、その攻撃が悪意のあるものであったことを特定しない場合、セキュリティ信号115は、自動化アタッカー140が当該信号が悪意のあるものであったことを示しているため、悪意のあるものとして扱われることになる。様々な態様において、自動化アタッカー140は、セキュリティシステム100またはオンラインサービス110において任意選択される構成要素である。
【0020】
[0019]セキュリティ信号115が無害と判定されたかまたは悪意のあるものと判定されたかを示す、生成モデル120からの検出結果125(および分析者ユーザからの補正)と共に、(ローリングウィンドウ130内の信号、および入手可能な場合は過去の信号135を含む)セキュリティ信号115は、信号スプリッタ145に供給される。また、自動化アタッカー140が配備される態様では、オンラインサービス110に対するアタッカーのアクションから発生させたセキュリティ信号115が無害であるか/悪意のあるものかの識別が、信号スプリッタ145に提供される。信号スプリッタ145は、セキュリティ信号115を、無害信号バランサ150に提供される無害の信号と、攻撃信号バランサ155に提供される悪意のある信号とに分割するように構成される。
【0021】
[0020]無害信号バランサ150および攻撃信号バランサ155は、訓練データ・ブートストラッパ160によって使用されるデータセットへの投入に使用されるセキュリティ信号115のセットを開発し、均衡させた無害の信号と悪意のある信号を提供し、それにより、オンラインサービス110の最新のエクスプロイトを検出するようにモデルを訓練する。訓練データ・ブートストラッパ160は、オンラインサービス110内の危険にさらされたデバイスから受信した無害の信号を除去し、危険にさらされたデバイスからの悪意のある信号だけを残しておく。クリーンなデバイスからの無害の信号は危険にさらされたデバイスからの悪意のある信号と交差結合(cross join)され、その結果、B×M個の攻撃事例が得られ、ここでBは無害事例の数を表し、Mは悪意のある事例の数を表す。これにより、攻撃がクリーンなデバイスで起こったかのように示す攻撃事例を無害事例の上に重畳した、拡張されたデータを生成する。
【0022】
[0021]クリーンなデバイスは種々のバリエーションの無害な信号を有し、危険にさらされたデバイスは種々のバリエーションの攻撃信号を有するので、2つのデータセットを交差結合することにより、大量のバリエーションを備えた多数のシナリオを作成する。ただし、シナリオが自動化アタッカー140等により無作為に選定された場合には、訓練セット中にそれぞれの攻撃タイプが等しくない数ずつ存在する場合があり、そのことがモデルの訓練を歪める(その結果、一部の攻撃が他の攻撃よりもよく予測される)可能性がある。したがって、攻撃事例を攻撃シナリオに照らして均衡させることにより、訓練セット中にそれぞれの事例攻撃がほぼ同数ずつ(例えば±5%)存在することを保証する。様々な態様において、実際よりも少なく示された攻撃タイプ(すなわち均衡させた数未満の量の攻撃タイプ)は、既存の悪意のある信号をコピーしてそれらの相対数を増加させ、および/または、実際よりも多く示された攻撃タイプ(すなわち均衡させた数以上の量の攻撃タイプ)は、既存の悪意のある信号を削除するか、もしくは実際よりも少なく示された攻撃タイプの事例で置換/重畳して、均衡させた攻撃事例セットを達成する。
【0023】
[0022]悪意のある信号と同様に、無害の信号は、それらの信号がそこから受信されたデバイスのタイプまたは役割に関して互いに対して均衡させて、所与のデバイスタイプまたは役割が訓練データセット中で実際よりも多く示される(その結果、一部の攻撃が所与のデバイスタイプ/役割に対して他の攻撃よりもよく予測される)ことがないようにする。したがって、無害事例を、利用可能なデバイスタイプに照らして均衡させることにより、無害事例を提供するそれぞれのデバイスタイプがほぼ同数個(例えば±5%)ずつ存在することを保証する。様々な態様において、実際よりも少なく示されたデバイスタイプ(すなわち均衡させた数未満の量のデバイスタイプ)は、既存の無害の信号をコピーしてそれらの相対数を増加させ、および/または、実際よりも多く示されたデバイスタイプ(すなわち均衡させた数以上の量のデバイスタイプ)は、既存の無害の信号を削除するか、もしくは実際よりも少なく示されたデバイスタイプからの無害事例で置換/重畳して、均衡させた無害事例セットを達成する。
【0024】
[0023]図1Bは、本開示を共に実施可能な図1Aの例示的なセキュリティシステム100と共に使用するための例示的なモデル訓練および選択システム105である。訓練データ・ブートストラッパ160からの無害の信号および悪意のある信号の均衡させたデータセットは、オンラインサービス110をセキュリティ保護するための様々なモデルの訓練と評価の両方を行うために、訓練/試験スプリッタ165に提供される。データセットはk個の部分セットに分割され、ここで、利用可能な部分セットのうちk-1個(例えば3分の2)はモデルの訓練に使用され、データセットのうち1つの部分セット(例えば3分の1)はモデルを評価するために確保される。様々な態様において、データセットを、それぞれモデルトレーナ170およびモデル・エバリュエータ175に提供される訓練用部分セットと評価用部分セットとに分けるには、様々な割合が想定される。
【0025】
[0024]モデルトレーナ170は、均衡させたデータの訓練用部分セットを介して、1つまたは複数の機械学習技術により、複数の開発モデル180を訓練するように構成される。機械学習技術は、モデルに供給されたデータに対して正確に予測を行うようにモデルを訓練する(例えば、セキュリティ信号115が無害であるか、悪意のあるものか、名詞が人物であるか、場所であるか、または物であるか、明日はどのような天気か)。学習フェーズの間、既知の入力(例えばサンプルA、サンプルB、サンプルC)の訓練データセットに照らしてモデルを開発して、所与の入力に対する出力を正しく予測するようにモデルを最適化する。一般に、学習フェーズは、教師あり、半教師あり、または教師なしであってよく、これは、訓練用の入力に対応して「正しい」出力が提供される度合いが低下していくことを意味する。教師あり学習フェーズでは、出力のすべてがモデルに提供され、モデルは、入力を出力に対応付ける一般的規則またはアルゴリズムを開発するように誘導される。それに対して、教師なし学習フェーズでは、要求される出力が入力に対して提供されず、そのため、モデルは訓練データセット中で関係を発見するための独自の規則を開発してよい。半教師あり学習フェーズでは、不完全にラベル付けされた訓練セットが提供され、出力の一部は訓練データセットにとって既知であり、一部は未知である。
【0026】
[0025]モデルは、訓練データセットに照らして数エポックにわたって実行してよく、その際、訓練データセットを繰り返しモデルに供給してモデルの結果を精緻化する。例えば、教師あり学習フェーズでは、所与の入力のセットに対する出力を予測するようにモデルを開発し、訓練データセットに対して最も多い数の入力について、当該所与の入力に対応していると特定される出力をより確実に提供するように、数エポックにわたってモデルを評価する。別の例では、教師なし学習フェーズに、データセットをn個のグループにクラスタリングするようにモデルを開発し、モデルがどれほど一貫して所与の入力を所与のグループに入れるか、およびモデルが各エポックにわたってどれほど確実にn個の要求されるクラスタを生成するかについて、数エポックにわたってモデルを評価する。
【0027】
[0026]様々な態様において、それぞれの訓練フェーズに加えて交差検証を適用し、ここでは、訓練データセットの一部分が評価データセットとして使用される。例えば、訓練データセットをk個のセグメントに分けてよく、ここで、(k-1)個のセグメントを訓練エポックに使用し、残りのセグメントは、訓練されたモデルがどれほど良好に機能したかを判定するために使用する。このようにして、それぞれのモデルを、入力パラメータのあらゆる可能な組み合わせに照らして訓練し、よってそれぞれのモデルがk回ずつ訓練され、当該エポックにわたる各モデルの平均性能に基づいて最良のモデルパラメータが選択される。
【0028】
[0027]エポックが実行されると、モデルが評価され、モデルをより精緻化することを試みて各モデルの変数の値が調整される。様々な態様において、評価は、偽陰性に抗するようにバイアスがかけられるか、偽陽性に抗するようにバイアスがかけられるか、またはモデルの総合的な精度に対して均等にバイアスがかけられる。上記値は、使用する機械学習技術に応じていくつかの方式で調整してよい。例えば、遺伝的アルゴリズムまたは進化的アルゴリズムでは、要求される出力を最もうまく予測するモデルに対応する値を使用して、後続のエポック中に使用するためのモデルの値を開発し、このことは追加的なデータ点を得るための無作為の変形/変異を含んでよい。当業者は、線形回帰、ランダムフォレスト(random forest)、決定木学習、ニューラルネットワーク等を含む、本開示と共に適用可能ないくつかの他の機械学習アルゴリズムに精通していよう。
【0029】
[0028]モデルは、入力に影響する1つまたは複数の変数の値を、要求される結果により近く対応付けされるように変化させることによって、数エポックをかけて規則またはアルゴリズムを開発する。しかし、訓練データセットは変更されることがあり、また好ましくは非常に大きいので、完璧な精度および正確度は達成可能でない可能性がある。したがって、学習フェーズを構成するいくつかのエポックを、所与の回数の試行、もしくは固定された時間/演算予算として設定してよく、または所与のモデルの精度が充分に高いもしくは充分に低い時、または精度のプラトーに達している時には、当該回数/予算に到達する前にエポックを終結してよい。例えば、訓練フェーズが、nエポック実行されると共に少なくとも95%の精度のモデルを生成するように設計され、そのようなモデルがn回目のエポックより前に生成された場合、学習フェーズは早めに終了して、最終目標の精度閾値を満たす生成されたモデルを使用してよい。同様に、所与のモデルが、無作為の確率閾値を満たすほど不正確である(例えばモデルが所与の入力に対して真/偽の出力を判定する精度がわずか55%である)場合、そのモデルの学習フェーズは早めに終結してよいが、ただし学習フェーズにある他のモデルは訓練を継続してよい。同様に、所与のモデルが複数のエポックにわたって同様の精度を提供し続けるか、またはモデルの結果に揺らぎがあり、性能のプラトーに達している場合、その所与のモデルの学習フェーズはエポック数/演算予算に達する前に集結させてよい。
【0030】
[0029]学習フェーズが完了すると、モデルが確定される。確定されたモデルは、試験基準に照らして評価される。第1の例では、その入力に対する既知の出力を含む試験データセットを確定されたモデルに供給して、モデルが訓練されていないデータを扱う際のモデルの精度を判定する。第2の例では、偽陽性率、偽陰性率を使用して、確定後のモデルを評価してよい。第3の例では、クラスタリング間の線引きを使用して、自身のデータクラスタに対して最も明確な境界線を生成するモデルを選択する。他の例では、適合率および再現率曲線の下の部分の面積(areas under precision and recall curve)等、モデルの追加的な指標を評価する。
【0031】
[0030]開発モデル180(およびしたがって生成モデル120)は、管理ユーザが行った選択に基づいてモデル特徴コンフィギュレータ185によって最初に開発される予測モデルである。管理ユーザは、オンラインサービス110のデバイス上で監視すべきセキュリティ信号115の1つまたは複数の特徴と、所与のセキュリティ信号115が悪意のあるものか無害であるかを表現するためにそれらの特徴をどのように分析するかとを選択する。様々な態様において、特徴は、管理ユーザが新しい開発モデル180の特徴セットを定義するためにそこから選択できる、構造化テキストファイル(例えば拡張可能マークアップ原語(XML)またはJava(登録商標)Script Object Notation(JSON)タグを使用する)内に提供される。特徴構成に基づいて、あるデバイスについてのセキュリティ信号の所与のセットから、特徴を特徴ベクトルとして動的に抽出する。異なるモデルに対して、モデル各自の特徴構成に基づいて、異なる特徴が抽出される場合がある。したがって、構造化テキストファイルにより、管理ユーザは、コードをコードベースに追加するまたはコードを修正する必要なしに、特徴と、それらの特徴をどのように検査するかとをモデルに追加する、または修正することができる。構造化テキストファイルは、コードベースからコードセグメントを呼び出し、そのコードセグメントを開発者が拡張または修正して、管理ユーザが選択するための新しい特徴タイプをもたらすことができる。例えば、管理ユーザが、セキュリティ信号115からの所与のパラメータまたはデータフィールドに使用するための特徴検査タイプとして、データセット中の異なる値の数(Count)、データセット中の最大値(Max)、リスト中で最も頻繁に出現する値の個数(MaxCount)、制限値を超えないリスト中の値の最大の和(MaxSum)等を選択してよい。セキュリティ信号中で観察すべきデータフィールド/パラメータの例は、これらに限定されないが、信号タイプ(例えばデータの抜き取り、ログインの試み、所与のファイルへのアクセス要求)、使用されたポート、プロセス/通信で使用されたバイト数、所与のインターネットプロトコル(IP)アドレスおよびポートの組に転送された、またはそこから転送されたバイト数、ユーザ識別子、所与のIPアドレスまたはアクションがブラックリストまたはホワイトリストにあるか等を含む。
【0032】
[0031]モデル・エバリュエータ175は、開発モデル180を評価して、どのモデルをセキュリティシステム100内で生成モデル120として使用するかを決定するように構成される。様々な態様において、生成モデル120を評価のために開発モデル180に再度組み込むか、または、生成モデル120の精度閾値を使用して、所与の生成モデル120を開発モデル180で置き換えるかどうかを決定する。他の態様では、開発モデル180を、例えば、精度や、適合率および再現率曲線の下の部分の面積等の他の指標に関して生成モデル120と比較し、そこでは、最良のモデルを、生成モデル120として使用する昇格したモデル190として選択する。モデルは、悪意のある信号を悪意のあるものと適正に識別し、無害の信号を無害と適正に識別する各モデルの有効性をモデル・エバリュエータ175が判定するのに伴って、継続的に開発モデル180から生成モデル120に昇格し(および生成モデル120から開発モデル180に降格)してよい。様々な態様において、上位n個の最も精度の高い開発モデル180、または精度閾値を超えるすべての開発モデル180が、昇格したモデル190として生成モデル120に昇格される。他の態様では、例えば、セキュリティ信号115の所与の特徴をモニタする他のモデルがない場合等に、管理ユーザが手動で開発モデル180を生成モデル120に昇格させてよい。
【0033】
[0032]セキュリティシステム100、モデル訓練および選択システム105、ならびに各自の構成要素は、多数のコンピューティングシステムを例示するものであり、それらには、デスクトップコンピュータシステム、有線および無線のコンピューティングシステム、モバイルコンピューティングシステム(例えば携帯電話、ネットブック、タブレットまたはスレート型コンピュータ、ノート型コンピュータ、およびラップトップコンピュータ)、携帯型デバイス、マルチプロセッサシステム、マイクロプロセッサを利用したまたはプログラム可能な消費者家電製品、ミニコンピュータ、プリンタ、およびメインフレームコンピュータが、制限なしに含まれる。これらコンピューティングシステムのハードウェアについては、図4に関して詳細に解説する。
【0034】
[0033]セキュリティシステム100ならびにモデル訓練および選択システム105の構成要素は、例示のために互いからリモートに図示しているが、これらのデバイスのうち1つまたは複数のいくつかの構成が、別の例示されるデバイスに対してローカルにホストされることが可能であり、例示される各デバイスは、そのデバイスの複数の個体を表してよいことに留意すべきである。当業者に知られる様々なサーバおよび仲介物が、図1Aおよび図1Bに例示される構成要素間に存在して、それらシステム間の通信を中継してよく、これは、本開示の新規の態様から注意を逸らさないように例示していない。
【0035】
[0034]図2は、オンラインサービス110をセキュリティ保護するのに使用する予測モデルを訓練するための訓練データセットを開発する例示的な方法200に伴う、一般的な段階を示すフローチャートである。方法200は動作210で開始し、ここでセキュリティ信号115を収集する。様々な態様において、セキュリティ信号115は、リアルタイムで(もしくは処理および伝送遅延を加味してほぼリアルタイムで)受信されるか、または、受信され、例えばm分ごとにセキュリティイベントを点検するバッチプロセス等による周期的な点検のために、データベースにキャッシュされてよい。セキュリティ信号115は、監視対象イベントと、オンラインサービス110内の機械上で起きる様々なアクションのパラメータとを含む。
【0036】
[0035]この監視対象イベントおよびパラメータを動作220で使用して、所与のセキュリティ信号115が、悪意のあるアクションに対応するか、または無害のアクションに対応するかを識別する。様々な態様において、収集されたセキュリティ信号115は、それぞれのセキュリティ信号115が悪意のあるものか無害であるかを判定するためにライブオンラインサービス110(すなわち生成モデル120)と共に使用することが指定された予測モデルに供給される。これらの判定は分析者ユーザに提示され、分析者ユーザは、当該判定に基づいて行動して、オンラインサービス110を悪意のある者からセキュリティ保護することができるが、予測モデルによって行われた判定を取り消してもよく、これは、判定が偽陽性または偽陰性であることを意味する。同様に、自動化アタッカー140を使用してオンラインサービス110への攻撃を模擬する態様では、自動化アタッカー140は、当該攻撃に応答して生成されたセキュリティ信号115を悪意のあるものと識別する通知を提供し、そのため、それらのセキュリティ信号115は、予測モデルからの検出結果に関わらず悪意のあるものとして扱われる。
【0037】
[0036]動作230で、ローリングウィンドウ130を設定して、オンラインサービス110に対して実行されている最新のエクスプロイトおよび攻撃に関連するセキュリティ信号115を分析するための、現在の時刻からの時間フレームを定義する。ローリングウィンドウ130は、現在の時刻から指定された期間内に入るセキュリティ信号115のセットを定義し、セキュリティ信号115は直前のd日間に収集されたものである。遅効性の攻撃(slow attack)の訓練および予測には複数日のウィンドウが使用され、遅効性の攻撃は、従来のセキュリティシステムによる検出を回避するために複数日をかけて実行される。セキュリティ信号115が収集されるのに伴い、最近のセキュリティ信号が、ローリングウィンドウ130に対応するセキュリティ信号115のセットに追加され、ローリングウィンドウ130に対応する指定期間より前に収集されたセキュリティ信号115は、セキュリティ信号115のセットから継続的に除去される。
【0038】
[0037]いくつかの態様では、過去の信号135が任意選択で、動作240で受け取られる。過去の信号135は、同様の攻撃または使用時例がローリングウィンドウ130の期間内に見られたかどうかに関わらず、特定の攻撃タイプを表す記録的に重要なセキュリティ信号115、または訓練目的に指定された無害使用時例を含むように、以前に観察されたセキュリティ信号115から分析者ユーザによってキュレートされる。一例では、記録的に危険なエクスプロイトは、当該エクスプロイトの検出に関係するセキュリティ信号115を過去の信号135に追加して、そのエクスプロイトに対して常に警戒し続けるようにしてよい。別の例では、開発者が、ゼロデイ(zero-day)・エクスプロイトを発見し、悪意のある者がそれを使用しているのかどうかをまだ把握していないが、そのエクスプロイトが一度も見られたことがなくとも、そのエクスプロイトに対して先制的に警戒するために、過去の信号135として使用するためのゼロデイ・エクスプロイトのアクションを模倣した例示的なセキュリティ信号115を提供してよい。さらに他の例では、頻繁に偽陽性となるセキュリティ信号115を過去の信号135に追加して、予測モデルがこの特定のセキュリティ信号115に照らして訓練されることを保証してよい。入手可能な場合、過去の信号135は、ローリングウィンドウ130内に収集されたセキュリティ信号115のセットに追加される。
【0039】
[0038]動作250に進み、方法200は、ローリングウィンドウ130内に入る収集された悪意のある信号および無害の信号と、任意選択の動作240でセットに追加されていれば過去の信号135とを均衡させる。悪意のある信号を均衡させる際には、それぞれの信号の攻撃タイプを判定して、それぞれの攻撃タイプを表す信号の相対量が平衡される(すなわち等しくされる)ようにし、それにより、悪意のある信号の集団の中でどの所与の攻撃タイプも実際よりも多く示される、または実際よりも少なく示されることがないようにする。無害の信号を均衡させる際には、ローリングウィンドウ130内に悪意のある信号を生成したデバイスから受信された無害の信号は破棄し、オンラインサービス110内のそれぞれのタイプのデバイスから受信された各無害の信号の相対量を平衡させて、どの所与のデバイスタイプも、無害の信号の集団中で実際よりも多く示される、または実際よりも少なく示されることがないようにする。
【0040】
[0039]加えて、悪意のある信号のセットは無害の信号のセットよりも数が少ないことが予想されるため、動作260で無害の信号のセットの一部分を選択して悪意のある信号と交差結合することにより、新しく、より大きな、悪意のある信号のセットを生成してよく、それにより、2つのセットは所望の比の悪意のある信号対無害の信号を含むことになる。様々な態様において、悪意のある信号のセットおよび無害の信号のセットが所望の比(例えば平衡)にされると、2つのセットが一緒に訓練セットとして使用される。
【0041】
[0040]動作270で、ローリングウィンドウ130内で発生した均衡させた悪意のある信号および無害の信号(ならびにある場合には過去の信号135)からなる、様々な攻撃シナリオの訓練セットを、予測モデルの訓練に利用できるようにする。例えば、セキュリティ信号115を分析するために使用される生成モデル120は、オンラインサービス110に対して活発に使用されている攻撃およびエクスプロイトをよりうまく評価するようにローリングウィンドウ130の内容が時間と共に更新されるのに伴って、継続的に再訓練される、および/または異なる予測モデルに置き換えられる。したがって、方法200は、動作270の後に終了するか、または動作210に戻って、ローリングウィンドウ130に基づいて周期的にまたは常に訓練データセットを供給するために、セキュリティ信号115の収集を続けてよい。
【0042】
[0041]図3は、オンラインサービス110をセキュリティ保護するのに使用するための予測モデルを訓練および選択する例示的な方法300に伴う、一般的段階を示すフローチャートである。方法300は動作310から開始し、ここで、方法200に従って開発されたもの等、均衡させた悪意のある信号および無害の信号の訓練データセットを受け取る。様々な態様において、方法300は、周期的に(例えばh時間ごとに)、またはローリングウィンドウ130(およびしたがって訓練データセット)への更新に応答して、またはユーザコマンドに応答して、呼び出される。
【0043】
[0042]動作320に進み、訓練データセットを評価用部分セットと学習部分セットとに分割する。様々な態様において、訓練データセットに対する評価用部分セットのサイズは、様々に異なってよいが、一般には学習部分セットよりもサイズが小さい。例えば、評価用部分セットは、初期の訓練セットの3分の1であってよく、したがって、学習部分セットは初期の訓練セットの残りの3分の2となる。当業者は、訓練データセットの他の割合が、評価用部分セットとして使用するために取り分けられてよいことを認識されよう。
【0044】
[0043]動作330で、構成特徴を受け取って、オンラインサービス110をセキュリティ保護するために生成時に(すなわち生成モデル120として)使用する潜在的予測モデルとして、開発モデル180を生成する。セキュリティ分析者等の管理ユーザが、セキュリティ信号115を介してオンラインサービス110内で監視する1つまたは複数のパラメータと、それらのパラメータを検査するための特徴タイプとを選定する。セキュリティ信号115は、これらに限定されないが、イベントログ、ネットワークトレース、エラーレポート、特殊イベント・リスナー・レポート、アトミック検出、およびそれらの組み合わせを含み、選択された特徴に関するパラメータは、セキュリティ信号115に含まれる要素の何れかを含んでよい。
【0045】
[0044]例えば、セキュリティ信号115がネットワークトレースを含む場合、送信者アドレス/受信者アドレスのペアのパラメータを選択し、「count」の特徴タイプに従って評価してよく、訓練セット内でそのペアが見られる回数が、その特徴について評価すべきスコア/値を増分させるようにする。別の例では、セキュリティ信号115がネットワークトレースを含む場合、送信者/受信者のペア間で伝送されたバイト数のパラメータが、その特徴について評価すべきスコア/値として提供される。さらなる例では、相対的なアップロード/ダウンロード比を示す送信者/受信者のペア間の伝送のバランスのパラメータが、その特徴について評価すべき値/スコアとして提供される。当業者は、上記は非制限的な例であることを認識されよう。他のパラメータ、および予測モデルによってそれらのパラメータを評価することが可能となる当該パラメータの他の特徴タイプが、本願と共に使用されることが想定される。
【0046】
[0045]動作340に進み、受け取った特徴構成に基づいて開発モデル180が作成され、1つまたは複数の機械学習アルゴリズムを用いて、学習部分セットに従って精緻化される。それぞれの予測モデルは、特定の特徴ベクトル(管理ユーザによって選択された特徴を特定する)を受け付けるように作成され、ここで特徴ベクトルを構成するそれぞれの特徴は係数に関連付けられる。それぞれの特徴ベクトルは、特徴構成に基づいて動的にセキュリティ信号115から抽出される。係数の値は機械学習アルゴリズムの数エポックにわたって調整され、それにより、所与の開発モデル180が特徴ベクトルの入力を受け取ると、学習部分セット中で指定された出力と一致する、悪意のあるものか無害であるかの出力を確実に生成するように、様々な特徴値間の相互作用を調整してよい。
【0047】
[0046]動作350に進み、動作340で訓練データセットに関して精緻化された予測モデルを、動作320で訓練データセットから分割された評価用部分セットに照らして評価する。評価用部分セットは、入力(オンラインサービス110から集められたセキュリティ信号115)を、当該信号が悪意のあるものか無害であるかの既知の出力と併せて含む。加えて、評価用部分セットの入力/出力ペアは、開発モデル180を直接訓練するためには使用されておらず、したがって、未知の信号が悪意のあるものか無害であるかを判定するための一般的な機能規則を開発モデル180が提供するかどうかについての試験を提供する。
【0048】
[0047]昇格閾値を開発モデル180に適用して、所与の開発モデル180を生成モデル120に昇格させるかどうかを決定する。昇格閾値は、セキュリティ信号115から抽出された特徴ベクトルに基づいて信号が悪意のあるものか無害であるかを予測する際に、開発モデル180がどれほど正確である必要があるかを特定する。いくつかの態様では、昇格閾値は、定数として、例えば、少なくともn%の精度、試験データ上での所与の適合率および再現率曲線の下の部分の面積等として設定される。他の態様では、昇格閾値は、所与の特徴ベクトルまたは攻撃タイプに対する現在の生成モデル120の精度によって設定され、セキュリティシステム100内で開発モデル180が生成モデル120に取って替わるには開発モデル180が現在の生成モデル120よりも高精度でなければならないようにする。
【0049】
[0048]動作360で、開発モデル180と、評価用部分セットおよび昇格閾値に従って性能が最良の再評価後の生成モデル120とが、オンラインサービス110を守るためにセキュリティシステム100で使用するために昇格される。昇格閾値を満たさなくなった、または開発モデル180に取って替わられた生成モデル120は、削除するか、または開発モデル180に降格して、さらに訓練および補正し、後に再評価してよい。次いで方法300は終了してよい。
【0050】
[0049]実装形態について、コンピュータのオペレーティングシステム上で実行されるアプリケーションプログラムとの関連で実行されるプログラムモジュールの一般的な文脈で説明してきたが、当業者は、態様は、他のプログラムモジュールと組み合わせて実施してもよいことを認識されよう。一般に、プログラムモジュールは、特定のタスクを行うか、または特定の抽象データ型を実装する、ルーチン、プログラム、コンポーネント、データ構造、および他のタイプの構造を含む。
【0051】
[0050]本明細書に記載される態様および機能性は、多種のコンピューティングシステムを介して動作することができ、それらには、デスクトップコンピュータシステム、有線および無線のコンピューティングシステム、モバイルコンピューティングシステム(例えば携帯電話、ネットブック、タブレットまたはスレート型コンピュータ、ノート型コンピュータ、およびラップトップコンピュータ)、携帯型デバイス、マルチプロセッサシステム、マイクロプロセッサを利用したまたはプログラム可能な消費者家電製品、ミニコンピュータ、およびメインフレームコンピュータが、制限なしに含まれる。
【0052】
[0051]加えて、一態様によれば、本明細書に記載される態様および機能性は、分散システム(例えばクラウドベースのコンピューティングシステム)にまたがって動作し、分散システムでは、アプリケーション機能、メモリ、データ記憶および検索、ならびに様々な処理機能が、インターネットまたはイントラネットなどの分散コンピューティングネットワークを通じて互いにリモートから操作される。一態様によれば、様々なタイプのユーザインターフェースおよび情報が、内蔵コンピューティングデバイスディスプレイを介して、または1つもしくは複数のコンピューティングデバイスに関連付けられたリモートの表示ユニットを介して表示される。例えば、様々なタイプのユーザインターフェースおよび情報が、様々なタイプのユーザインターフェースおよび情報が投影される壁面に表示され、壁面上で対話される。実装形態がそれと共に実施される多種のコンピューティングシステムとの対話は、キーストローク入力、タッチ画面入力、声または他の音声入力、関連付けられたコンピューティングデバイスがコンピューティングデバイスの機能性を制御するためのユーザジェスチャを捕捉し、解釈する検出(例えばカメラ)機能を備える場合のジェスチャ入力等を含む。
【0053】
[0052]図4およびそれに関連する説明は、例が実施される各種の動作環境の解説を提供する。しかし、図4に関して例示および解説するデバイスおよびシステムは、例および例示を目的とするものであり、本明細書に記載される態様を実施するために利用される膨大な数のコンピューティングデバイス構成の制限ではない。
【0054】
[0053]図4は、本開示の例をそれと共に実施可能なコンピューティングデバイス400の物理的構成要素(すなわちハードウェア)を例示するブロック図である。基本的構成で、コンピューティングデバイス400は、少なくとも1つの処理ユニット402およびシステムメモリ404を含む。一態様によれば、コンピューティングデバイス400の構成およびタイプに応じて、システムメモリ404は、これらに限定されないが、揮発性ストレージ(例えばランダムアクセスメモリ)、不揮発性ストレージ(例えば読出し専用メモリ)、フラッシュメモリ、またはそのようなメモリの組み合わせを含むメモリ記憶装置である。一態様によれば、システムメモリ404は、オペレーティングシステム405と、ソフトウェアアプリケーション450を実行するのに適した1つまたは複数のプログラムモジュール406とを含む。一態様によれば、システムメモリ404は、セキュリティシステム100、モデル訓練および選択システム105、およびそれらにより使用または生成される任意のモデルを含む。オペレーティングシステム405は、例えば、コンピューティングデバイス400の動作を制御するのに適する。さらに、態様は、グラフィックライブラリ、他のオペレーティングシステム、または任意の他のアプリケーションプログラムとの関連で実施され、どの特定のアプリケーションまたはシステムにも制限されない。この基本的構成は、図4では破線408内の構成要素によって例示される。一態様によれば、コンピューティングデバイス400は、追加的な特徴または機能性を有する。例えば、一態様によれば、コンピューティングデバイス400は、例えば、磁気ディスク、光ディスク、またはテープなどの追加的なデータ記憶装置(取り外し可能および/または取り外し不能)を含む。そのような追加的なストレージは、図4では、取り外し可能記憶装置409および取り外し不能記憶装置410によって例示される。
【0055】
[0054]上述のように、一態様によれば、複数のプログラムモジュールおよびデータファイルがシステムメモリ404に記憶される。処理ユニット402上で実行される間、プログラムモジュール406(例えばセキュリティシステム100、モデル訓練および選択システム105)は、これに限定されないが、それぞれ図2および図3に例示される方法200および300の段階の1つまたは複数を含むプロセスを行う。一態様によれば、他のプログラムモジュールが、例に従って使用され、それらの例は、電子メールおよび連絡先アプリケーション、文書処理アプリケーション、表計算アプリケーション、データベースアプリケーション、スライド提示アプリケーション、描画またはコンピュータ支援アプリケーションプログラム等である。
【0056】
[0055]一態様によれば、コンピューティングデバイス400は、キーボード、マウス、ペン、音入力装置、タッチ入力装置等の1つまたは複数の入力装置412を有する。ディスプレイ、スピーカ、プリンタ等の出力装置414も、一態様によれば含まれる。上述のデバイスは例であり、他のものが使用されてよい。一態様によれば、コンピューティングデバイス400は、他のコンピューティングデバイス418との通信を可能にする1つまたは複数の通信接続416を含む。適切な通信接続416の例には、これらに限定されないが、無線周波(RF)送信機、受信機、および/またはトランシーバ回路、ユニバーサルシリアルバス(USB)、パラレルポート、および/またはシリアルポートが含まれる。
【0057】
[0056]本明細書で使用されるコンピュータ可読媒体という用語は、コンピュータ記憶媒体を含む。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、またはプログラムモジュールなどの情報を記憶するための任意の方法または技術で実装された、揮発性および不揮発性、取り外し可能および取り外し不能の媒体を含む。システムメモリ404、取り外し可能記憶装置409、および取り外し不能記憶装置410はすべてコンピュータ記憶媒体の例(すなわちメモリストレージ)である。一態様によれば、コンピュータ記憶媒体は、RAM、ROM、電気的に消去可能なプログラム可能読出し専用メモリ(EEPROM)、フラッシュメモリもしくは他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD)もしくは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気記憶装置、または情報を記憶するために使用することができ、コンピューティングデバイス400からアクセスできる任意の製造品を含む。一態様によれば、任意のそのようなコンピュータ記憶媒体がコンピューティングデバイス400の一部である。コンピュータ記憶媒体は、搬送波または他の伝播データ信号を含まない。
【0058】
[0057]一態様によれば、通信媒体は、搬送波や他の移送機構などの変調データ信号中の、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータによって実現され、任意の情報伝達媒体を含む。一態様によれば、用語「変調データ信号」は、信号中に情報を符号化するような形で1つまたは複数の特性を設定または変化させた信号を言う。制限ではなく例として、通信媒体は、有線ネットワークや直接配線接続などの有線媒体、および音響、無線周波(RF)、赤外線、他のワイヤレス媒体などの無線媒体を含む。
【0059】
[0058]例えば実装形態について、上記ではブロック図および/または各態様に係る方法、システム、およびコンピュータプログラム製品の動作図を参照して説明した。ブロックに記された機能/動作は、何れかのフローチャートに示される順序とは異なって行ってよい。例えば、連続して示される2つのブロックを実際には実質的に同時に実行してよく、またはそれらのブロックは、場合によっては、関連する機能性/動作に応じて逆の順序で実行してよい。
【0060】
[0059]本願に提供される1つまたは複数の例の説明および例示は、特許請求される範囲をどのような意味でも制限または制約する意図はない。本願に提供される態様、例、および詳細事項は、概念を伝え、他の者が最良の形態を作製し、使用できるようにするのに充分なものと考えられる。実装形態は、本願に提供されるどの態様、例、または詳細事項にも制限されるものとは解釈すべきでない。組み合わせて図示され、説明されるか、または別々に図示され、説明されるかに関わらず、様々な特徴(構造的特徴と方法論的特徴の両方)は、特定の特徴のセットを備えた例を生成するために選択的に含められるか、または省略されることが意図される。本願の説明および例示を提供された当業者は、本願において実現される一般的な発明概念のより広い態様の主旨の範囲内に入り、より広い範囲から逸脱することのない、変形形態、修正形態、および代替例を想定できよう。
図1A
図1B
図2
図3
図4