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

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

▶ ビットディフェンダー アイピーアール マネジメント リミテッドの特許一覧

特許7069399コンピュータセキュリティインシデントを報告するためのシステムおよび方法
<>
  • 特許-コンピュータセキュリティインシデントを報告するためのシステムおよび方法 図1
  • 特許-コンピュータセキュリティインシデントを報告するためのシステムおよび方法 図2
  • 特許-コンピュータセキュリティインシデントを報告するためのシステムおよび方法 図3
  • 特許-コンピュータセキュリティインシデントを報告するためのシステムおよび方法 図4
  • 特許-コンピュータセキュリティインシデントを報告するためのシステムおよび方法 図5
  • 特許-コンピュータセキュリティインシデントを報告するためのシステムおよび方法 図6
  • 特許-コンピュータセキュリティインシデントを報告するためのシステムおよび方法 図7-A
  • 特許-コンピュータセキュリティインシデントを報告するためのシステムおよび方法 図7-B
  • 特許-コンピュータセキュリティインシデントを報告するためのシステムおよび方法 図8
  • 特許-コンピュータセキュリティインシデントを報告するためのシステムおよび方法 図9
  • 特許-コンピュータセキュリティインシデントを報告するためのシステムおよび方法 図10
  • 特許-コンピュータセキュリティインシデントを報告するためのシステムおよび方法 図11
  • 特許-コンピュータセキュリティインシデントを報告するためのシステムおよび方法 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-05-09
(45)【発行日】2022-05-17
(54)【発明の名称】コンピュータセキュリティインシデントを報告するためのシステムおよび方法
(51)【国際特許分類】
   G06F 21/55 20130101AFI20220510BHJP
【FI】
G06F21/55
【請求項の数】 20
(21)【出願番号】P 2021502894
(86)(22)【出願日】2019-07-18
(65)【公表番号】
(43)【公表日】2021-11-11
(86)【国際出願番号】 IB2019056172
(87)【国際公開番号】W WO2020016834
(87)【国際公開日】2020-01-23
【審査請求日】2021-04-13
(31)【優先権主張番号】62/699,817
(32)【優先日】2018-07-18
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/816,389
(32)【優先日】2019-03-11
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】312016539
【氏名又は名称】ビットディフェンダー アイピーアール マネジメント リミテッド
(74)【代理人】
【識別番号】100118902
【弁理士】
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100106208
【弁理士】
【氏名又は名称】宮前 徹
(74)【代理人】
【識別番号】100196508
【弁理士】
【氏名又は名称】松尾 淳一
(72)【発明者】
【氏名】ワルメンホーフェン,アドリアヌス
(72)【発明者】
【氏名】ホフステード,リシャルト・イェー
【審査官】宮司 卓佳
(56)【参考文献】
【文献】国際公開第2017/103254(WO,A1)
【文献】国際公開第2018/122640(WO,A1)
【文献】特表2017-504102(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/55-21/57
(57)【特許請求の範囲】
【請求項1】
コンピュータセキュリティ脅威から複数のクライアントシステムを保護するように構成されたサーバコンピュータシステムの少なくとも1つのハードウェアプロセッサを用いて、
フォレンジックインジケータの受信に応じて、複数のルーチンから第1のセキュリティ属性を評価するための第1のルーチンを選択することであって、前記第1のルーチンは、前記フォレンジックインジケータに従って選択され、前記フォレンジックインジケータは、前記複数のクライアントシステムのうちのクライアントシステムと別のパーティとの間のネットワークフローを特徴付ける複数のメタデータ要素を含む、選択することと、
前記複数のルーチンから、第2のセキュリティ属性を評価するための第2のルーチンを選択することであって、前記第2のルーチンは、前記第1のルーチンを実行した結果に従って選択される、選択することと、
前記第1のルーチンの選択に応じて、第1のテキストメッセージを、前記クライアントシステムがコンピュータセキュリティ脅威にさらされているか否かを示すセキュリティアラートに追加することであって、前記第1のテキストメッセージは、前記第1のルーチンに従って選択された第1のメッセージテンプレートに従って決定される、追加することと、
前記第2のルーチンの選択に応じて、第2のテキストメッセージを前記セキュリティアラートに追加することであって、前記第2のテキストメッセージは、前記第2のルーチンに従って選択された第2のメッセージテンプレートに従って決定される、追加することと、
前記セキュリティアラートを人間のオペレータに表示するように構成された管理デバイスに前記セキュリティアラートを送信することと
を行うステップを含む方法。
【請求項2】
請求項1に記載の方法であって、前記第1のセキュリティ属性を評価することは、第3のセキュリティ属性を評価することを含み、前記方法はさらに、前記サーバコンピュータシステムの少なくとも1つのハードウェアプロセッサを用いて、
前記複数のルーチンから、前記第3のセキュリティ属性を評価するための第3のルーチンを選択することと、
前記管理デバイスへの送信の準備として、第3のテキストメッセージを前記セキュリティアラートに追加することであって、前記第3のテキストメッセージは、前記第3のルーチンに従って選択された第3のメッセージテンプレートに従って決定される、追加することと
を行うステップを含む、方法。
【請求項3】
請求項2に記載の方法であって、前記第1のテキストメッセージは、アクティブ化された場合に前記第3のテキストメッセージを表示させるハイパーリンクを含む、方法。
【請求項4】
請求項1に記載の方法であって、前記サーバコンピュータシステムの少なくとも1つのハードウェアプロセッサを用いて、
前記クライアントシステムが前記コンピュータセキュリティ脅威にさらされているか否かを示す判断を決定することであって、前記判断は、前記第1のルーチンを実行した結果と、前記第2のルーチンを実行した別の結果とに従って決定される、決定することと、
前記管理デバイスへの送信の準備として、前記判断のインジケータを前記セキュリティアラートに追加することと
を行うステップをさらに含む方法。
【請求項5】
請求項1に記載の方法であって、前記第1のメッセージテンプレートはプレースホルダを含み、前記第1のテキストメッセージを決定することは、前記プレースホルダを、前記第1のルーチンを実行した前記結果に従って決定された前記第1のセキュリティ属性の値に置き換えることを含む、方法。
【請求項6】
請求項1に記載の方法であって、前記第1のテキストメッセージは、前記クライアントシステムのデバイスタイプのインジケータと、前記別のパーティの地理的場所のインジケータと、電子通信の発生時間のインジケータとを含むグループから選択されるアイテムを含む、方法。
【請求項7】
請求項1に記載の方法であって、前記複数のメタデータ要素は、前記複数のメタデータ要素のうちの別の要素に従って計算されたタグ付け要素を含む、方法。
【請求項8】
請求項1に記載の方法であって、前記第1のテキストメッセージは、前記人間のオペレータが前記複数のルーチンから前記第1のルーチンを識別できるようにする識別子を含む、方法。
【請求項9】
請求項1に記載の方法であって、前記第1のテキストメッセージは、アクティブ化された場合に前記第1のセキュリティ属性の値を表示させるハイパーリンクを含む、方法。
【請求項10】
コンピュータセキュリティ脅威から複数のクライアントシステムを保護するように構成されたサーバコンピュータシステムであって、前記サーバコンピュータシステムは、フォレンジックアナライザと前記フォレンジックアナライザに接続されたアラートマネージャとを実行するように構成された少なくとも1つのハードウェアプロセッサを含み、
前記フォレンジックアナライザは、
フォレンジックインジケータの受信に応じて、複数のルーチンから第1のセキュリティ属性を評価するための第1のルーチンを選択することであって、前記第1のルーチンは、前記フォレンジックインジケータに従って選択され、前記フォレンジックインジケータは、前記複数のクライアントシステムのうちのクライアントシステムと別のパーティとの間のネットワークフローを特徴付ける複数のメタデータ要素を含む、選択することと、
前記複数のルーチンから第2のセキュリティ属性を評価するための第2のルーチンを選択することであって、前記第2のルーチンは、前記第1のルーチンを実行した結果に従って選択される、選択することと
を行うように構成され、
前記アラートマネージャは、
前記フォレンジックアナライザが前記第1のルーチンを選択することに応じて、第1のテキストメッセージを、前記クライアントシステムがコンピュータセキュリティ脅威にさらされているか否かを示すセキュリティアラートに追加することであって、前記第1のテキストメッセージは、前記第1のルーチンに従って選択された第1のメッセージテンプレートに従って決定される、追加することと、
前記フォレンジックアナライザが第2のセキュリティアルゴリズムを選択することに応じて、前記セキュリティアラートに第2のテキストメッセージを追加することであって、前記第2のテキストメッセージは、前記第2のルーチンに従って選択された第2のメッセージテンプレートに従って決定される、追加することと、
前記セキュリティアラートを人間のオペレータに表示するように構成された管理デバイスに前記セキュリティアラートを送信することと
を行うように構成される、
サーバコンピュータシステム。
【請求項11】
請求項10に記載のサーバコンピュータシステムであって、前記第1のセキュリティ属性を評価することは、第3のセキュリティ属性を評価することを含み、
前記フォレンジックアナライザはさらに、前記複数のルーチンから、前記第3のセキュリティ属性を評価するための第3のルーチンを選択するように構成され、
前記アラートマネージャはさらに、前記管理デバイスへの送信の準備として、第3のテキストメッセージを前記セキュリティアラートに追加するように構成され、前記第3のテキストメッセージは、前記第3のルーチンに従って選択された第3のメッセージテンプレートに従って決定される、
サーバコンピュータシステム。
【請求項12】
請求項11に記載のサーバコンピュータシステムであって、前記第1のテキストメッセージは、アクティブ化された場合に前記第3のテキストメッセージを表示させるハイパーリンクを含む、サーバコンピュータシステム。
【請求項13】
請求項10に記載のサーバコンピュータシステムであって、
前記フォレンジックアナライザはさらに、前記クライアントシステムが前記コンピュータセキュリティ脅威にさらされているか否かを示す判断を決定するように構成され、前記判断は、前記第1のルーチンを実行した結果と、前記第2のルーチンを実行した別の結果とに従って決定され、
前記アラートマネージャはさらに、前記管理デバイスへの送信の準備として、前記判断のインジケータを、前記セキュリティアラートに追加するように構成される、
サーバコンピュータシステム。
【請求項14】
請求項10に記載のサーバコンピュータシステムであって、前記第1のメッセージテンプレートはプレースホルダを含み、前記第1のテキストメッセージを決定することは、前記プレースホルダを、前記第1のルーチンを実行した前記結果に従って決定された前記第1のセキュリティ属性の値に置き換えることを含む、サーバコンピュータシステム。
【請求項15】
請求項10に記載のサーバコンピュータシステムであって、前記第1のテキストメッセージは、前記クライアントシステムのデバイスタイプのインジケータと、前記別のパーティの地理的場所のインジケータと、電子通信の発生時間のインジケータとを含むグループから選択されるアイテムを含む、サーバコンピュータシステム。
【請求項16】
請求項10に記載のサーバコンピュータシステムであって、前記複数のメタデータ要素は、前記複数のメタデータ要素のうちの別の要素に従って計算されたタグ付け要素を含む、サーバコンピュータシステム。
【請求項17】
請求項10に記載のサーバコンピュータシステムであって、前記第1のテキストメッセージは、前記人間のオペレータが前記複数のルーチンから前記第1のルーチンを識別できるようにする識別子を含む、サーバコンピュータシステム。
【請求項18】
請求項10に記載のサーバコンピュータシステムであって、前記第1のテキストメッセージは、アクティブ化された場合に前記第1のセキュリティ属性の値を表示させるハイパーリンクを含む、サーバコンピュータシステム。
【請求項19】
コンピュータセキュリティ脅威から複数のクライアントシステムを保護するように構成されたサーバコンピュータシステムの少なくとも1つのハードウェアプロセッサによって実行されると、前記サーバコンピュータシステムに、フォレンジックアナライザと、前記フォレンジックアナライザに接続されたアラートマネージャとを実行させる命令を格納する非一時的なコンピュータ可読媒体であって、
前記フォレンジックアナライザは、
フォレンジックインジケータの受信に応じて、複数のルーチンから第1のセキュリティ属性を評価するための第1のルーチンを選択することであって、前記第1のルーチンは前記フォレンジックインジケータに従って選択され、前記フォレンジックインジケータは、前記複数のクライアントシステムのうちのクライアントシステムと別のパーティとの間のネットワークフローを特徴付ける複数のメタデータ要素を含む、選択することと、
前記複数のルーチンから第2のセキュリティ属性を評価するための第2のルーチンを選択することであって、前記第2のルーチンは前記第1のルーチンを実行した結果に従って選択される、選択することと
を行うように構成され、
前記アラートマネージャは、
前記フォレンジックアナライザが前記第1のルーチンを選択することに応じて、第1のテキストメッセージを、前記クライアントシステムがコンピュータセキュリティ脅威にさらされているか否かを示すセキュリティアラートに追加することであって、前記第1のテキストメッセージは、前記第1のルーチンに従って選択された第1のメッセージテンプレートに従って決定される、追加することと、
前記フォレンジックアナライザが第2のセキュリティアルゴリズムを選択することに応じて、前記セキュリティアラートに第2のテキストメッセージを追加することであって、前記第2のテキストメッセージは、前記第2のルーチンに従って選択された第2のメッセージテンプレートに従って決定される、追加することと、
前記セキュリティアラートを人間のオペレータに表示するように構成された管理デバイスに、前記セキュリティアラートを送信することと
を行うように構成される、
非一時的なコンピュータ可読媒体。
【請求項20】
請求項19に記載の非一時的なコンピュータ可読媒体であって、第2の一連の命令をさらに格納し、前記第2の一連の命令は、前記少なくとも1つのハードウェアプロセッサに前記第1のルーチンを実行させる、非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
[0001]この出願は、2018年7月18日に出願され「AI for Security Review(セキュリティレビューのためのAI)」と題された米国仮特許出願第62/699,817号と、2019年3月11日に出願され「Systems and Methods for Reporting Computer Security Incidents(コンピュータセキュリティインシデントを報告するためのシステムおよび方法)」と題された米国仮特許出願第62/816,389号との利益を主張し、これらの全内容は参照により本明細書に組み込まれる。
【0002】
[0002]本発明は、コンピュータセキュリティ脅威を緩和するためのシステムおよび方法、特に、自動的に検出されたインシデントを人間のオペレータに報告することに関する。
【背景技術】
【0003】
[0003]マルウェアとしても知られる悪意のあるソフトウェアは、世界中の多数のコンピュータシステムに影響を与える。マルウェアは、コンピュータウイルス、トロイの木馬、スパイウェア、およびランサムウェアなどの多くの形態で、何百万ものコンピュータユーザに深刻なリスクをもたらし、とりわけ、データや機密情報の損失、個人情報の盗難、および生産性の低下などに対して脆弱にする。悪意のあるソフトウェアは、コンピュータシステムへの不正アクセスを助長する可能性もあり、侵入者(ハッカー)が、ユーザデータや、他の機密情報を抽出することを可能にし得る。
【0004】
[0004]非公式にモノのインターネット(IoT)と呼ばれる多種多様なデバイスが、通信ネットワークおよびインターネットにますます接続されている。そのようなデバイスは、とりわけ、スマートフォン、スマートウォッチ、テレビおよび他のマルチメディアデバイス、ゲーム機、家電製品、およびサーモスタットなどの様々な家庭用センサを含む。そのようなデバイスがオンラインになると、マルウェアや侵入などのセキュリティの脅威にさらされるようになる。したがって、マルウェアからそのようなデバイスを保護すること、およびそのようなデバイスとの間の通信を保護することの必要性が高まっている。
【0005】
[0005]悪意のあるソフトウェアおよびハッキング方法は絶えず進化しており、絶えず変化する脅威の状況を維持するように、コンピュータセキュリティプロバイダに挑戦している。通常、挙動検出として知られるセキュリティ方法の1つの特定のカテゴリは、一連のルールに従ってデバイスおよび/またはソフトウェアコンポーネントのアクティビティを監視することに依存する。一部のアクティビティパターン(たとえば、ハードウェアまたはソフトウェアイベントのシーケンス、ネットワークトラフィックの特定の機能)は、それぞれのデバイスの通常の合法的な使用に対応するが、他のパターンは、悪意を示している場合がある。
【0006】
[0006]ますます多くのデバイスがインターネットに接続され、ビジネスが、主にデータ駆動型になるにつれて、電子通信ネットワーク上のデータトラフィックの速度および莫大な量は絶えず増加しており、従来のコンピュータセキュリティシステムおよび方法を圧倒する可能性がある。さらに、コンピュータセキュリティインシデントを調査するために人間の介入が必要な場合は常に、セキュリティ担当者が大量の情報を分類する能力によって、検出の効率が大幅に制限される。したがって、セキュリティ関連のデータを分析および視覚化する堅牢でスケーラブルな方法を開発する強いインセンティブがある。
【発明の概要】
【0007】
[0007]1つの態様によれば、方法は、コンピュータセキュリティ脅威から、複数のクライアントシステムを保護するためにサーバコンピュータシステムを用いる。この方法は、フォレンジックインジケータの受信に応じて、サーバコンピュータシステムの少なくとも1つのハードウェアプロセッサを用いて、複数のルーチンから第1のセキュリティ属性を評価するための第1のルーチンを選択することを備え、第1のルーチンは、フォレンジックインジケータに従って選択される。フォレンジックインジケータは、複数のクライアントシステムのうちのクライアントシステムと、別のパーティとの間のネットワークフローを特徴付ける複数のメタデータ要素を備える。この方法はさらに、サーバコンピュータシステムの少なくとも1つのハードウェアプロセッサを用いて、複数のルーチンから、第2のセキュリティ属性を評価するための第2のルーチンを選択することを備え、第2のルーチンは、第1のルーチンを実行した結果に従って選択される。この方法はさらに、第1のルーチンの選択に応じて、サーバコンピュータシステムの少なくとも1つのハードウェアプロセッサを用いて、クライアントシステムが、コンピュータセキュリティ脅威にさらされているか否かを示す第1のテキストメッセージを、セキュリティアラートに追加することを備える。第1のテキストメッセージは、第1のルーチンに従って選択された第1のメッセージテンプレートに従って決定される。この方法はさらに、第2のルーチンの選択に応じて、サーバコンピュータシステムの少なくとも1つのハードウェアプロセッサを用いて、第2のテキストメッセージを、セキュリティアラートに追加することを備える。第2のテキストメッセージは、第2のルーチンに従って選択された第2のメッセージテンプレートに従って決定される。この方法はさらに、サーバコンピュータシステムの少なくとも1つのハードウェアプロセッサを用いて、セキュリティアラートを人間のオペレータに表示するように構成された管理デバイスに、セキュリティアラートを送信することを備える。
【0008】
[0008]別の態様によれば、サーバコンピュータシステムは、コンピュータセキュリティ脅威から複数のクライアントシステムを保護するように構成される。サーバコンピュータシステムは、フォレンジックアナライザとフォレンジックアナライザに接続されたアラートマネージャとを実行するように構成された少なくとも1つのハードウェアプロセッサを備える。フォレンジックアナライザは、フォレンジックインジケータの受信に応じて、複数のルーチンから第1のセキュリティ属性を評価するための第1のルーチンを選択するように構成され、第1のルーチンは、フォレンジックインジケータに従って選択される。フォレンジックインジケータは、複数のクライアントシステムのうちのクライアントシステムと、別のパーティとの間のネットワークフローを特徴付ける複数のメタデータ要素を備える。フォレンジックアナライザはさらに、複数のルーチンから第2のセキュリティ属性を評価するための第2のルーチンを選択するように構成され、第2のルーチンは、第1のルーチンを実行した結果に従って選択される。アラートマネージャは、フォレンジックアナライザが第1のルーチンを選択することに応じて、クライアントシステムが、コンピュータセキュリティ脅威にさらされているか否かを示す第1のテキストメッセージを、セキュリティアラートに追加するように構成される。第1のテキストメッセージは、第1のルーチンに従って選択された第1のメッセージテンプレートに従って決定される。アラートマネージャはさらに、フォレンジックアナライザが第2のセキュリティアルゴリズムを選択することに応じて、セキュリティアラートに第2のテキストメッセージを追加するように構成される。第2のテキストメッセージは、第2のルーチンに従って選択された第2のメッセージテンプレートに従って決定される。アラートマネージャはさらに、セキュリティアラートを人間のオペレータに表示するように構成された管理デバイスに、セキュリティアラートを送信するように構成される。
【0009】
[0009]別の態様によれば、非一時的なコンピュータ可読媒体は、コンピュータセキュリティ脅威から複数のクライアントシステムを保護するように構成されたサーバコンピュータシステムの少なくとも1つのハードウェアプロセッサによって実行されると、サーバコンピュータシステムに対して、フォレンジックアナライザと、フォレンジックアナライザに接続されたアラートマネージャとを実行させる命令を格納する。フォレンジックアナライザは、フォレンジックインジケータの受信に応じて、複数のルーチンから、第1のセキュリティ属性を評価するための第1のルーチンを選択するように構成され、第1のルーチンは、フォレンジックインジケータに従って選択される。フォレンジックインジケータは、複数のクライアントシステムのうちのクライアントシステムと、別のパーティとの間のネットワークフローを特徴付ける複数のメタデータ要素を備える。フォレンジックアナライザはさらに、複数のルーチンから第2のセキュリティ属性を評価するための第2のルーチンを選択するように構成され、第2のルーチンは、第1のルーチンを実行した結果に従って選択される。アラートマネージャは、フォレンジックアナライザが第1のルーチンを選択することに応じて、クライアントシステムが、コンピュータセキュリティ脅威にさらされているか否かを示す第1のテキストメッセージを、セキュリティアラートに追加するように構成される。第1のテキストメッセージは、第1のルーチンに従って選択された第1のメッセージテンプレートに従って決定される。アラートマネージャはさらに、フォレンジックアナライザが第2のセキュリティアルゴリズムを選択することに応じて、セキュリティアラートに第2のテキストメッセージを追加するように構成される。第2のテキストメッセージは、第2のルーチンに従って選択された第2のメッセージテンプレートに従って決定される。アラートマネージャはさらに、セキュリティアラートを人間のオペレータに表示するように構成された管理デバイスに、セキュリティアラートを送信するように構成される。
【0010】
[0010]本発明の前述の態様および利点は、以下の詳細な説明を読み、以下の図面を参照することにより、より良く理解されるようになる。
【図面の簡単な説明】
【0011】
図1】[0011]本発明のいくつかの実施形態による、コンピュータセキュリティ脅威から保護された例示的な一連のクライアントシステムを示す図である。
図2】[0012]本発明のいくつかの実施形態による、様々なエンティティ間の例示的なデータ交換を示す図である。
図3】[0013]本発明のいくつかの実施形態による、コンピューティングデバイスの例示的なハードウェア構成を例示する図である。
図4】[0014]本発明のいくつかの実施形態による、クライアントシステムで実行する例示的なソフトウェアコンポーネントを例示する図である。
図5】[0015]本発明のいくつかの実施形態による、フロー前処理の一部として実行されるステップの例示的なシーケンスを示す図である。
図6】[0016]本発明のいくつかの実施形態による、例示的なフロータグ付け処理を示すステップの別のシーケンスを示す。
図7-A】[0017]本発明のいくつかの実施形態による、フロータグ付けの例を示す図である。
図7-B】[0018]本発明のいくつかの実施形態による、フロータグ付けの別の例を示す図である。
図8】[0019]本発明のいくつかの実施形態による、例示的なソフトウェアコンポーネントおよびセキュリティサーバの動作を例示する図である。
図9】[0020]本発明のいくつかの実施形態による、フォレンジックアナライザコンポーネントによって実行されるステップの例示的なシーケンスを示す図である。
図10】[0021]本発明のいくつかの実施形態による、アラートマネージャコンポーネントによって実行されるステップの例示的なシーケンスを示す図である。
図11】[0022]本発明のいくつかの実施形態による、決定木を備える例示的な攻撃検出手順を例示する図である。
図12】[0023]いくつかの実施形態による、複数のステップを備え、各ステップは、複数のシナリオに従って実行され得る、別の例示的な攻撃検出手順を示す図である。
【発明を実施するための形態】
【0012】
[0024]以下の説明において、構造間のすべての列挙された接続は、直接作用接続または中間構造を介した間接作用接続であり得ることが理解される。一連の要素は、1つまたは複数の要素を含む。要素の詳説は、少なくとも1つの要素を指すと理解される。複数の要素は、少なくとも2つの要素を含む。特に必要がない限り、説明される方法ステップは、必ずしも特定の例示された順序で実行される必要はない。第2の要素から導出された第1の要素(たとえば、データ)は、第2の要素に等しい第1の要素、ならびに第2の要素およびオプションで他のデータを処理することによって生成される第1の要素を包含する。パラメータに従って判定または決定を行うことは、パラメータに従って、およびオプションで他のデータに従って判定または決定を行うことを包含する。特に指定のない限り、ある量/データのインジケータは、量/データ自体、または量/データ自体とは異なるインジケータであり得る。コンピュータプログラムは、タスクを実行するプロセッサ命令のシーケンスである。本発明のいくつかの実施形態で説明されるコンピュータプログラムは、スタンドアロンソフトウェアエンティティまたは他のコンピュータプログラムのサブエンティティ(たとえば、サブルーチン、ライブラリ)であり得る。「データベース」という用語は、本明細書では、体系化された検索可能なデータの集合を示すために使用される。コンピュータ可読媒体は、磁気、光、および半導体記憶媒体(たとえば、ハードドライブ、光ディスク、フラッシュメモリ、DRAM)のような非一時的な媒体、ならびに導電性ケーブルや光ファイバリンクのような通信リンクを包含する。いくつかの実施形態によれば、本発明は、とりわけ、本明細書に説明される方法を実行するようにプログラムされたハードウェア(たとえば、1つまたは複数のプロセッサ)、ならびに本明細書に説明される方法を実行するためのコンピュータ可読媒体エンコード命令を備えるコンピュータシステムを提供する。
【0013】
[0025]以下の説明は、例として、必ずしも限定としてではなく、本発明の実施形態を例示する。
【0014】
[0026]図1は、本発明のいくつかの実施形態による、複数のクライアントシステム10a~10eが、コンピュータセキュリティ脅威から保護される例示的な構成を示す。クライアントシステム10a~10eは、プロセッサ、メモリ、および通信インターフェースを有する任意の電子デバイスを表し得る。例示的なクライアントシステム10a~10eは、とりわけ、企業のメインフレームコンピュータ、パーソナルコンピュータ、ラップトップ、タブレットコンピュータ、モバイル通信デバイス(たとえば、スマートフォン)、メディアプレーヤ、テレビ、ゲーム機、家電製品(たとえば、冷蔵庫、サーモスタット、インテリジェント暖房および/または照明システム)、およびウェアラブルデバイス(たとえば、スマートウォッチ、スポーツ、フィットネス機器)を含む。クライアントシステム10a~10eは、ローカルネットワーク12によって相互接続され、さらにインターネットなどの拡張ネットワーク14に接続される。ローカルネットワーク12は、ローカルエリアネットワーク(LAN)を備え得る。例示的なローカルネットワーク12は、とりわけ、ホームネットワークおよび企業ネットワークを含み得る。
【0015】
[0027]いくつかの実施形態では、フローエクスポータ製品15は、ローカルネットワーク12内のクライアント10a~10e間、および/または、クライアント10a~10eと、ローカルネットワーク12の外部に位置する他のエンティティとの間のデータトラフィックを傍受するように構成される。いくつかの実施形態では、フローエクスポータ15は、ローカルネットワーク12と拡張ネットワーク14との間のゲートウェイとして機能するように構成されるか、またはローカルネットワーク12と拡張ネットワーク14との間のネットワークトラフィックの少なくとも一部が、フローエクスポータ15をトラバースするように構成される。いくつかの実施形態では、フローエクスポータは、以下に示すように、傍受されたトラフィックから情報を選択的に抽出し、抽出された情報を、(Internet Engineering Task Force Request For Comments IETF-RFC 7011で説明される)インターネットプロトコルフロー情報エクスポート-IPFIX、またはCisco社からのNetFlow(R)などのエクスポートフォーマット(IETF-RFC 3954などを参照)でエンコードされたネットワークフローとして表し、それぞれのネットワークフローデータを、データアグリゲータまたはセキュリティサーバにエクスポートする。ネットワークフローは、特定のフローに属するすべてのパケットが一連の共通のプロパティ(たとえば、同じ発信元および/または宛先)を有するように、特定の時間間隔中にネットワーク内の観測点(たとえば、フローエクスポータ15)を通過する一連のデータパケットとして定義され得る。ネットワークフローに関連するエクスポートされた情報は、典型的に、傍受されたトラフィックのメタデータの要約、パケットヘッダから、またはペイロードの実際のコンテンツ以外のパケット特性から導出されたそれぞれのメタデータを備える。例示的なフローメタデータ要素は、発信元および宛先のIPアドレスまたはインターネットドメイン名、ペイロードサイズ、送信プロトコル、タイムスタンプなどを含む。典型的なエクスポートフォーマットでは、データは、テーブルとして系統化され、各行は個別のフローを表し、各列はそれぞれのフローのプロパティの値を表す。フローテーブルのそのような列は、本明細書ではフロー要素と見なされる。IPFIXやNetFlowなどの業界標準に従って定式化されたフロー要素は、本明細書では標準フロー要素と呼ばれる。
【0016】
[0028]いくつかの実施形態では、データアグリゲータデバイス17は、保護されたクライアント10a~10eおよび/またはフローエクスポータ15から情報を受信し、フォレンジック分析の準備としてそのような情報を体系化および前処理するように構成される。データアグリゲータ17および/またはデータリポジトリ18に通信可能に結合されたセキュリティサーバ16は、潜在的なコンピュータセキュリティ脅威を検出するために、クライアントから収集された情報を分析するように構成される。
【0017】
[0029]データアグリゲータ17は、クライアントおよび/またはフローエクスポータから収集された情報に対して部分的なフォレンジック分析を実行し得る。しかしながら、典型的なデータアグリゲータ17は、セキュリティ評価を行わず、たとえば、特定のフローが、コンピュータシステムのある部分への不正アクセスを示しているか否か、またはそれぞれのフローがマルウェア感染を示しているか否かを判定しない。代わりに、データアグリゲータ17の典型的な実施形態によって行われる前処理のタイプは、他のシステムコンポーネント(たとえば、セキュリティサーバ16)によって行われるフォレンジック分析を、それらのコンポーネントから計算負荷の一部を取り除くことによって加速および促進することを目的とされる。その後、サーバ16は、マルウェアおよび/または侵入検出ルーチンの実行に焦点を合わせることができる一方、セキュリティ処理のためにデータを最適な形式にするために必要な作業の大部分は、データアグリゲータ17によって行われ得る。例示的な前処理動作は、イベントおよび/またはフローフィルタリング、すなわち、様々な基準に従ってイベントおよび/またはフローデータを選択することを含む。
【0018】
[0030]データアグリゲータ17のいくつかの実施形態は、ハードディスク、SANストレージ、RAMディスク、任意のタイプのメモリ構造、キューなどを含むがこれらに限定されない任意のタイプのコンピュータ可読媒体を使用して実施され得るデータリポジトリ18に、セキュリティ関連情報(たとえば、イベントインジケータ、ネットワークフロー)を格納する。データアグリゲータ17は、フロー前処理のすべての結果をデータリポジトリ18に格納しない場合がある。代わりに、いくつかの実施形態は、特に有益であり得、および/または監視されたクライアントおよび/またはネットワークの状態におけるある種の変化を最も良く捕捉し得るいくつかの結果を選択する。前処理のそのような結果は、一連の事前決定された規則に従って選択され得る。データアグリゲータ17の動作は、以下でさらに詳細に説明される。
【0019】
[0031]いくつかの実施形態では、クライアントシステム10a~10eは、拡張ネットワーク14(たとえば、インターネット)に接続された管理デバイス13上で実行するソフトウェアを使用して、遠隔で監視、管理、および/または構成される。例示的な管理デバイス13は、とりわけ、パーソナルコンピュータおよびスマートフォンを含む。デバイス13は、ユーザ(たとえば、コンピュータセキュリティ専門家、ネットワーク管理者)が、たとえば、構成オプションを設定し、および/または、それぞれのクライアントシステムで発生するイベントに関するセキュリティアラートを受信するために、クライアントシステム10a~10eの動作を遠隔で監視および/または管理することを可能にするグラフィカルユーザインターフェース(GUI)を見せることができる。1つの例示的なユースケースシナリオでは、クライアント10a~10eは、企業ネットワーク上の個々のコンピュータを表し、管理デバイス13は、それぞれのネットワークのアクティビティを視覚化および監視するように構成されたセキュリティオペレーションセンタ(SOC)のコンピュータを集合的に表す。そのような一例では、管理デバイス13は、それぞれの企業ネットワーク内で発生するイベントに関連するセキュリティアラートを表示するように構成されたセキュリティ情報およびイベント管理(SIEM)ソフトウェアを実行し得る。別の例示的なユースケースシナリオでは、クライアント10a~10eは、ホームネットワークによって相互接続された家庭の電子デバイスを表す。そのようなケースでは、管理デバイス13は、それぞれの親がクライアント10a~10eに関するセキュリティアラートを受信し、ネットワークアクセスおよび/または親制御オプションなどを構成することを可能にするアプリケーションを実行する親のスマートフォンを表し得る。
【0020】
[0032]当業者は、図1における例示的な構成が、多くの可能な構成のうちの1つにすぎないことを理解するであろう。コンポーネント15および17の各々は、スタンドアロンネットワーク製品として実施され得るか、あるいはオプションで、サーバまたはサーバのグループの一部として、オプションでファームウェアとして、またはソフトウェアとして実施され得る。たとえば、フローエクスポータ15およびデータアグリゲータ17は、同じ物理マシン上で実行するコンピュータプログラムとして具体化され得る。いくつかの実施形態では、データアグリゲータ17は、セキュリティサーバ16上で実行し得る。別の代替実施形態では、フローエクスポータ15は、図1のクライアント10a~10eのようなクライアントシステム上で実行するソフトウェアを表し得る。さらに他の例示的な実施形態では、フローエクスポータ15およびデータアグリゲータ17のいずれかは、たとえば、フィールドプログラマブルゲートアレイ(FPGA)または特定用途向け集積回路(ASIC)を使用して、専用のハードウェアデバイスとして具体化され得る。
【0021】
[0033]図2は、本発明のいくつかの実施形態による例示的なデータ交換を示す。データアグリゲータ17は、監視されているクライアントシステム10からイベントインジケータ22を、および/または、フローエクスポータ15からフローインジケータ20を受信し得る。イベントインジケータ22は、それぞれのクライアントシステムの動作中にイベントが発生したことを示すデータを備え得る。そのようなイベントは、セキュリティ脅威を示すものがある。他のイベントは、それ自体が悪意を示すものではない場合もあるが、それぞれのクライアントシステムまたは他の監視されているクライアントシステムで発生する他のイベントのコンテキストで得られた場合に攻撃を示す場合がある。例示的なイベントインジケータ22は、特定の悪意のあるソフトウェア(マルウェア)が、それぞれのクライアントシステムで検出されたことを示し得る。イベントインジケータ22を介して通信されるイベントの他の例には、特定のソフトウェアコンポーネント/アプリケーションの起動、ローカルストレージデバイス(たとえば、ハードドライブ)または特定のネットワークリソース上の特定の場所へのアクセスの試み、特定の動作のシーケンス(たとえば、短時間に多数のディスク書き込みが発生する)などを含む。フローインジケータ20は、一連のメタデータ(たとえば、複数の標準フロー要素を備えるNetFlowまたはIPFIXフォーマットされたデータテーブル)として体系化されたネットワークトラフィックのダイジェストを含み得る。
【0022】
[0034]いくつかの実施形態では、データアグリゲータ17は、収集されたデータを前処理して、セキュリティサーバ16によるさらなる分析を容易にし得る。前処理は、フローエクスポータ15および/またはクライアントシステム10a~10eから受信したデータに詳細(たとえば、追加のメタデータ)を追加し得る。そのような一例では、ネットワークフローデータは、追加情報(たとえば、地理的場所、特定のIPアドレスが訪問された頻度、送受信比など)でタグ付けされ得る。代替実施形態では、そのようなフロータグ付けは、フローエクスポータ15によって実行され得る。フロー前処理/タグ付けの詳細および例を以下に示す。
【0023】
[0035]セキュリティサーバ16は、一般に、互いに物理的に近接していてもいなくてもよい、通信可能に結合された一連のコンピュータシステムを表す。サーバ16は、クライアントから収集したデータを分析して、悪意のあるソフトウェアや侵入のようなコンピュータセキュリティ脅威を検出するように構成される。そのような分析が脅威を示すとき、サーバ16のいくつかの実施形態は、セキュリティアラート26を管理デバイス13に送信する。アラート13は、自然言語(たとえば、英語、オランダ語など)で定式化された少なくとも1つのアラートメッセージのエンコードを備え、それぞれのメッセージは、それぞれの脅威について、およびそれぞれの脅威の検出に至る推論についての情報を、人間のオペレータ(たとえば、コンピュータセキュリティ専門家、ネットワーク管理者、親など)へ提供するように定式化される。いくつかの実施形態では、アラートメッセージはさらに、分析中に決定された様々なパラメータまたは量の値(たとえば、時間、ファイルサイズ、ネットワークアドレス、地理的場所)、ならびに、さらなるアクションまたは調査のための提案(たとえば、ネットワークドメインXを分離する、ホストYでマルウェア対策ソフトウェアを実行するなど)を含み得る。
【0024】
[0036]例示的なアラートメッセージは、以下のように読み取れる。「「アカウンティング」ネットワークサブドメインに属するエンティティによる悪意のあるアクティビティの可能性は75%です。ネットワークアドレスXにあるプリンタが、疑わしいIPアドレスに大量のデータ(サイズ>1Gb)をアップロードしました(詳細はクリックして下さい)。転送は週末の営業時間外に行われました(詳細はクリックして下さい)。」アラートメッセージの一部はハイパーリンクされ得るため、クリックすると、より多くのテキストが表示される。たとえば、「ターゲットデバイスは、MACアドレスがEpson製のデバイスを示しているため、プリンタとして識別されました」、「ターゲットIPアドレスは、グレーリストにあるアイテムと一致し、地理的にウクライナに配置されていたため、疑わしいと見なされました」。
【0025】
[0037]別の例示的なアラートメッセージは、以下のように読み取れる。「侵入アラート!ヒューリスティック番号5、25、および71によって検出されました(詳細は数字をクリックして下さい)。」別のバージョンは、「侵入アラート!アクティビティの時間、宛先アドレス、およびペイロードサイズに従って検出されました(詳細はクリックして下さい)。」と読み取れる。上記の例では、下線が引かれたアイテムはハイパーリンクを備え得る。
【0026】
[0038]図3は、本発明のいくつかの実施形態によるコンピューティングデバイスの例示的なハードウェア構成を示す。例示されるコンピューティングデバイスは、一般に、図1に示されるマシン(クライアント10a~10e、管理デバイス13、フローエクスポータ15、データアグリゲータ17、およびセキュリティサーバ16)のいずれかを表す。図3に示される構成は、コンピュータシステムに対応し、タブレットコンピュータ、スマートフォンなどの他のデバイスのアーキテクチャは、本明細書で示されている例示的なアーキテクチャとわずかに異なる場合がある。プロセッサ32は、一連の信号および/またはデータを用いて計算および/または論理演算を実行するように構成された物理デバイス(たとえば、半導体基板上に形成されたマルチコア集積回路)を備える。そのような演算は、プロセッサ命令(たとえば、マシンコードまたは他のいくつかのプログラミング言語)としてエンコードされ得る。メモリユニット34は、プロセッサ命令および/または演算を実行する過程でプロセッサ32によってアクセスまたは生成されたデータを格納する揮発性コンピュータ可読媒体(たとえば、RAM)を備え得る。入力デバイス36は、とりわけ、ユーザが、データおよび/または命令をそれぞれのコンピューティングデバイスに導入することを可能にするそれぞれのハードウェアインターフェースおよび/またはアダプタを含む、コンピュータキーボード、マウス、およびマイクロフォンを含み得る。出力デバイス38は、とりわけ、モニタおよびスピーカなどのディスプレイデバイス、ならびにグラフィックカードのようなハードウェアインターフェース/アダプタを含み得、それぞれのコンピューティングデバイスがユーザにデータを通信することを可能にする。いくつかの実施形態では、入力デバイス36および出力デバイス38は、タッチスクリーンデバイスの場合のように、共通のハードウェアの部分を共有し得る。ストレージデバイス42は、ソフトウェア命令および/またはデータの不揮発性ストレージ、読み取り、および書き込みを可能にするコンピュータ可読媒体を含む。例示的なストレージデバイス42は、磁気ディスクおよび光ディスクおよびフラッシュ(ソリッドステート)メモリデバイス、ならびにCDおよび/またはDVDディスクおよびドライブのようなリムーバブル媒体を含む。ネットワークアダプタ44は、それぞれのコンピューティングデバイスが電子通信ネットワークに接続すること、および/または他のデバイス/コンピュータシステムと通信することを可能にする。コントローラハブ40は、複数のシステム、周辺機器、および/またはチップセットバス、および/またはプロセッサ32とデバイス34,36,38,42,および44との間の通信を可能にする他のすべての回路を表す。たとえば、コントローラハブ40は、とりわけ、メモリコントローラ、入力/出力(I/O)コントローラ、および割込コントローラを含み得る。別の例では、コントローラハブ40は、プロセッサ32をメモリ34に接続するノースブリッジ、および/または、プロセッサ32をデバイス36,38,42,および44に接続するサウスブリッジを備え得る。
【0027】
[0039]図4は、図1におけるクライアント10a~10eのようなクライアントシステム上で実行する例示的なソフトウェアコンポーネントを示す。アプリケーション48は、一般的に、とりわけ、ワードプロセッシング、スプレッドシート、コンピュータグラフィックス、ブラウザ、ゲーム、メディアプレーヤ、および電子通信アプリケーションのような任意のユーザアプリケーションを表す。セキュリティアプリケーション50は、悪意のあるソフトウェア、アプリケーション制御、親制御などの検出のような、様々なコンピュータセキュリティタスクを実行し得る。アプリケーション50は、アプリケーション48および/またはOS46の実行中に様々なセキュリティ関連イベントの発生を検出するように構成されたイベントハーベスタ52を備え得る。そのようなイベントの発生およびパラメータは、イベントインジケータ22の形態でデータアグリゲータ17に通信され得る。ネットワークフィルタ53は、ファイアウォールおよび/またはトラフィック分析などの通信セキュリティサービスを提供し得る。いくつかの実施形態では、ネットワークフィルタ53は、クライアント10と他のエンティティとの間の電子通信から情報を抽出し得、フローインジケータなどのそのような情報を、データアグリゲータ17にエクスポートし得る。
【0028】
[0040]図5図6は、本発明のいくつかの実施形態による、データアグリゲータ17の例示的な動作を詳述するステップの例示的なシーケンスを示す。アグリゲータ17によって実行される特定の前処理動作は、クライアント10a~10eおよび/またはフローエクスポータ15から受信されたネットワークフローのタグ付けを備え得る。本明細書におけるタグ付けは、フローインジケータ20および/またはイベントインジケータ22(図2参照)のような着信データから追加情報(たとえば、メタデータ)を決定し、たとえば、ネットワークフローを表すテーブル行における追加の列として、それぞれの着信データの表現にそれぞれの追加情報を追加することを指す。タグ付けフロー要素は、標準フロー要素(すなわち、NetFlowまたはIPFIXのような規格に従って定式化されたフロー要素)の任意の組合せに従って決定され得るか、または、オプションで、そのような標準フロー要素と、場合によっては他の外部および/または非フロー情報とに従って導出され得る。
【0029】
[0041]タグ付け要素の非限定的な例は、地理的場所のルックアップテーブルの助けを借りて、ターゲットネットワークフローのIPアドレスから導出された地理的場所のタグ付け要素である。ルックアップテーブルは、IPアドレスを地理的場所(たとえば、国、都市、郵便番号、地域など)と照合し、これはその後、それぞれのフローの新しいタグ付け要素になる。タグ付け要素の別の非限定的な例は、時間経過または持続時間であり、これは、オプションで、フローの「フロー開始時間」および「フロー終了時間」タイムスタンプに従って計算され得る。タグ付け要素の別の例は、特定のIPアドレスから受信した要求の頻度を示すインジケータである。さらに別の例示的なタグ付け要素は、特定のIPアドレス、または特定のIPアドレスに位置するデバイスの特定のポートとの間で送受信されるデータの量から導出されるトラフィック比である。さらに別の例示的なタグ付け要素は、ネットワークフローの送信元IPアドレスおよび宛先ポートに従って導出されるポート/IPアドレス要素である。
【0030】
[0042]タグ付け要素の特定のカテゴリは、他のタグ付け要素に従って、およびオプションで他のデータに従って決定される複合タグ付け要素を備える。複合タグ付け要素は、複数のタグ付け要素の組合せを備え得る。複合タグ付け要素の非限定的な例は、時間経過要素および地理的場所のタグ付け要素に従って決定される。別の非限定的な例は、特定の地理的場所へのトラフィックの量(たとえば、頻度、バイト、またはそれらの組合せ)を判定することによって計算される。次に、複合タグ付け要素を使用して、他のより複雑なタグ付け要素を決定することができる。
【0031】
[0043]図5は、本発明のいくつかの実施形態による、フロータグ付けを実行するために実行されるステップの例示的なシーケンスを示す。分析のためのネットワークフローを受信することに応じて、ステップ104は、タグ付けの順序を決定し得る。いくつかの実施形態では、タグ付けは、分析されているデータのタイプに応じて同時にまたは順次に実行され得る一連のタグ付けモジュールによって実行される。たとえば、各タグ付けモジュールは、別個のタグ付け要素を計算し得る。最適化された並列計算構成では、別個のタグ付けモジュールが、アグリゲータ17の別個の物理プロセッサ上で実行し得る。ステップ104は、たとえば、分析されたネットワークフローの特性に従って、そのようなモジュールが実行する順序を決定し得る。一例では、タグ付けモジュールAの実行は、タグ付けモジュールBによって計算される特定のタグ付け要素の存在を必要とする。その後、例示的なスケジューリングは、モジュールBがモジュールAの前に実行することを保証し得る。スケジューリングにより、循環依存および/または無限ループを防ぐこともできる。代替実施形態では、データアグリゲータ17は、分析されたネットワークフローの特殊性に従って様々なタグ付けモジュールの実行を自動的にトリガする有限状態マシンを備える。たとえば、各タグ付けモジュールは、特定の種類のフロー要素の可用性によってトリガされ得る。
【0032】
[0044]ステップ106において、タグ付けモジュールは、スケジューリングに従って選択される。さらなるステップ108は、それぞれのタグ付けモジュールを実行する(詳細は図6参照)。次に、ステップ110は、実行する必要のあるいくつかのタグ付けモジュールがまだあるか否かを判定し、ある場合、データアグリゲータ17は、ステップ106に戻って、実行する別のタグ付けモジュールを選択する。
【0033】
[0045]図6は、典型的なタグ付けモジュールの実行を詳述するステップのシーケンスを示す。第1に、ステップ122は、それぞれのタグ付け要素を導出するために必要なすべてのデータが利用可能であるか否か、たとえば、すべての必須のフロー要素が既に指定されているか否かをチェックする。そうではない場合、それぞれのタグ付けモジュールの実行が終了し得る。いくつかの実施形態では、それぞれのモジュールは、必須のデータが利用可能になったときに後で再実行され得る。
【0034】
[0046]必要なすべてのデータが利用可能である場合、それぞれのタグ付けモジュールは、それぞれのネットワークフローを表すテーブルの各行について、ループ内のステップのシーケンスを実行し得る。各行について、ステップ126は、一連のフロー要素を読み取れる一方、ステップ128は、それぞれのフロー要素に従って、およびオプションで他のデータに従って、タグ付け要素を決定し得る。タグ付け要素を受信するために新しい列を作成しなければならない場合、それぞれの列はステップ132で作成される。さらなるステップ134は、実際に、タグ付け要素を、ネットワークフローを表すテーブルに書き込む。ステップ134は、既存のタグ付け要素を上書きすることを備え得る。
【0035】
[0047]図7-A~図7-Bは、本発明のいくつかの実施形態による、例示的なインクリメンタルフロータグ付け処理を示す。フローインジケータ20は、複数のフローを備え、各フローは、たとえば、送信元および宛先のIPアドレス、パケットサイズなどを表す複数の列/標準要素を有するテーブル行として表される。フローインジケータ20は、フローエクスポータ15から受信され得る(図2および上記の関連する説明を参照)。例示される例では、第1のタグ付けモジュールが、各フローの「宛先IPアドレス」要素に従って地理的場所を決定する。新しく計算されたタグ付け要素が、新しい列に書き込まれる。第2のモジュールは「宛先IPアドレス」要素/列を再度使用するが、IPアドレスが訪問された頻度の追跡を保持する内部データベースも使用する。そして、内部データベースにおける値をインクリメントし、その値をデータベースに格納して、ここで「頻度」とラベル付けされた新しい列にコピーする。第3のタグ付けモジュールは、「送信バイト数」列と「受信バイト数」列とを使用して、たとえば送信/受信などのトラフィック比を決定し、新しく計算された値を、「トラフィック比」とラベル付けされた新しい列に書き込む。第4のタグ付けモジュールは、各フローの「送信元IPアドレス」および「宛先ポート」の標準要素と、内部データベースとを使用して、それぞれの値のタプルが、その送信元IPアドレスに記録された以前のアクティビティからの異常値を表す範囲を決定する。その新しいタグ付け要素は、「異常測定値1」と見なされる新しい列に書き込まれる。
【0036】
[0048]複合タグ付けの例では、第5のタグ付けモジュール(図7-B)は、第3のタグ付けモジュールによって以前に決定された「宛先ポート」列および「トラフィック比」列を使用して、第4のタグ付けモジュールによって決定された列「異常測定値1」に既に存在する値を変更する。その結果は、既存の列「異常測定値1」、またはオプションで、ここで「異常測定値2」とラベル付けされた新しい列で更新される。
【0037】
[0049]図8は、本発明のいくつかの実施形態による、セキュリティサーバ16の例示的なコンポーネントおよび動作を示す。コンポーネントは、アラートマネージャ66に接続されたフォレンジックアナライザ64と、フォレンジックアナライザ64および/またはアラートマネージャ66に接続されたシナリオディスパッチャ62とを備え得る。当業者は、ディスパッチャ62、アナライザ64、およびアラートマネージャ66が、別個のエンティティ(たとえば、場合によっては別個の物理プロセッサ上で実行する別個の処理)またはサーバ16上で実行する単一のソフトウェアエンティティの別個のコンポーネント(たとえば、ライブラリ)であり得ることを理解する。同様に、本明細書で説明される「シグナリング」は、別個の実行エンティティ/マシン間のデータの実際の送信、または単一の実行エンティティの別個のモジュール間の値の受け渡しを表し得ることを理解されたい。代替実施形態では、いくつかのコンポーネントは、ハードウェアおよび/またはファームウェアで実施され得る。
【0038】
[0050]属性(predicate)という用語は、本明細書では、その変数の値に応じて、可変である真の度合を有するステートメントを示すために使用される。属性の評価は、それぞれの属性の真の値を決定することを備える。例示的な属性には、とりわけ、「クライアントXが攻撃を受けています」、「クライアントXはプリンタです」、および「アップロードされたデータのサイズが1Gbを超えています」を含む。一部の属性は厳密にブール値(真/偽)であるが、他の属性の真の値は数値であり得、それぞれの属性が真である可能性を示す(たとえば、クライアントXが攻撃を受けている確率pがあり、pは50%、65%、90%などであり得る)。いくつかの実施形態では、以下により詳細に示されるように、いくつかの属性値は、アラートを選択的にトリガする。たとえば、クライアントXが攻撃を受けていると判定すると、アラートをトリガする場合があるが、クライアントXがプリンタであると判定すると、トリガされない場合がある。別の例では、それぞれの属性が、計算された真の値を有する可能性が、事前決定されたしきい値を超えると(たとえば、攻撃の可能性>75%)、アラートがトリガされる。
【0039】
[0051]シナリオという用語は、本明細書では、属性を評価するための一連の規則、プロトコル、またはアルゴリズムを示すために使用される。1つの例示的なシナリオは、入ってくる一連のフローおよび/またはイベントデータによって満たされるとき、それぞれの属性が真であることを示す一連の条件を備える。シナリオは、AND、OR、および/またはNOTで接続された一連の属性を備える任意の論理命題、たとえば(p∧q)∨(r∧s∧¬t)→uという関係を含めることができ、ここで、p,q,r,s,tは前提であり、uは結論である。そのような一例では、uはそれぞれのシナリオ(たとえば、「クライアントXは攻撃を受けている」)に関連付けられた主な属性である。それぞれのシナリオの実行には、他の複数のサブ属性p,q,...tの評価を備える。属性pは「クライアントAは、プリンタです」と読み取れ、属性qは「クライアントXは、疑わしいIPアドレスにデータをアップロードしました」と読み取れ、属性tは「営業時間中にアクティビティが発生しました」と読み取れる。属性qを評価するには、いくつかのサブ属性を評価する必要があり得る(たとえば、それぞれのアドレスがブラックリストまたはグレーリストにあるか否かをチェックし、それぞれのIPアドレスが特定の地域または国に地理的に配置されているか否かをチェックする)。他の例示的なシナリオは、マルウェア検出ヒューリスティックおよび決定木を含む。典型的に、属性とシナリオとの間には一対多の関係があり、すなわち、単一の属性を評価する多数の手法が存在し得る。
【0040】
[0052]いくつかの実施形態は、コンピュータセキュリティ脅威を検出するために複数の(たとえば、数百の)シナリオを使用する。そのようないくつかのシナリオは、並列的に実行され得る。シナリオは、ソフトウェアルーチン、すなわち、それぞれのシナリオに固有のコンピュータ命令のシーケンスとして実施され得る。シナリオは、実行可能コード、XML、バイトコード、Prologなどのコンピュータ可読形式でシナリオリポジトリ19に格納され得る。その後、受信したフローおよび/またはイベントインジケータの機能に従って、シナリオは選択的に検索、アクセス、または呼び出され得る。シナリオの選択的トリガを可能にするために、シナリオリポジトリのいくつかの実施形態は、属性と、それぞれの属性を評価するために使用されるシナリオとの間の関連付けを示すインジケータをさらに備える。
【0041】
[0053]いくつかの実施形態では、シナリオディスパッチャ62は、収集されたデータの属性および/または様々な機能に従って、一連のシナリオを選択し、その選択を、フォレンジックアナライザ64および/またはアラートマネージャ66に通信するように構成される。一部のシナリオの実行は、特定のトリガイベントおよび/または収集されたフローの特定の要素のトリガ値によってトリガされ得る。そのような一例では、シナリオディスパッチャ62および/またはフォレンジックアナライザ64は、入力されたフォレンジックインジケータの特定の値によってトリガされる有限状態マシンを備え得る。
【0042】
[0054]フォレンジックアナライザ64は、一連のシナリオに従って、クライアントシステム10a~10eおよび/またはフローエクスポータ15から収集されたデータを分析するように構成される。分析されたデータは、データアグリゲータ17および/またはフローエクスポータ15による前処理の結果を含み得る。いくつかの実施形態では、そのような前処理は、フォレンジックアナライザ64による分析を容易にするために、タグ付け、すなわち、クライアントから受信したデータに追加のメタデータを追加することを含み得る。
【0043】
[0055]図9は、本発明のいくつかの実施形態によるフォレンジックアナライザ64の動作を例示する。評価を必要とする各属性について、アナライザ64は、少なくとも1つのシナリオを選択的に検索し、それぞれのシナリオを実行して、それぞれの属性を評価し得る。属性評価はさらに、データリポジトリ18からの情報の検索/アクセスを備え得る。そのような情報は、デバイス構成設定、デバイス識別データ(たとえば、MACアドレスを製造業者またはデバイスタイプに関連付けるテーブルなど)、および/または履歴データ(たとえば、イベントまたはネットワークログなど)を備え得る。属性の評価が、他のサブ属性の評価を備え得、そのような各サブ属性が、別個のシナリオに従って評価され得ることを考慮すると、いくつかの実施形態は、すべてのそれぞれの属性およびサブ属性が評価されるまで、ステップ202~212を再帰的に実行する。
【0044】
[0056]いくつかの実施形態では、ステップ209は、属性評価が成功したか否かをチェックし得る。しばしば、必須のデータが不足しているために、一部の属性を評価できない場合がある。いくつかのケースでは、それぞれの属性を評価する別の試みが、後で行われ得る。それぞれの属性が成功裡に評価されたとき、ステップ210において、フォレンジックアナライザ64は、現在の属性を評価した結果をアラートマネージャ66に送信する。それに応じて、マネージャ66は、アナライザ64から受信したそのような結果に従って、アラートのテキスト部分を定式化し得る(詳細は以下を参照)。属性評価が完了すると、ステップ214は、計算された属性値が、アラート条件を満たす(たとえば、攻撃の確率>75%)か否かを検証し得る。満たす場合、アナライザ64は、送信のためにセキュリティアラート26を準備するようにアラートマネージャ66にシグナルし得る。
【0045】
[0057]いくつかの実施形態では、アラートマネージャ66は、セキュリティアラート26を定式化し、管理デバイス13に配信する(図2参照)。アラートは、自然言語で定式化されたテキスト部分を備える。それぞれのテキスト部分は、フォレンジックアナライザ64によるシナリオ実行中に評価される様々な値(たとえば、属性値)を組み込み得る。アラートマネージャ66は、一連の事前決定されたアラートテンプレートに従って、アラートメッセージを定式化し得る。いくつかの実施形態では、各アラートテンプレートは、シナリオに関連付けられており、フォレンジックアナライザ64によって実行されるシナリオに従って、それぞれのテンプレートの選択的な検索を可能にする。例示的なアラートテンプレートは、自然言語で定式化されたテキストと、それぞれのシナリオの一部として評価された属性の値の一連のプレースホルダとを備え得る。いくつかの例示的なテンプレートが以下に示される。
【0046】
・T1:侵入の可能性は[%val_1]です。ターゲットIPアドレスは[%val_2]です。デバイスタイプ、アップロードされたデータの量、および宛先IPに基づく評価は、以下の通りです。
【0047】
・T2:クライアントデバイスは[%val_3]です。
【0048】
・T3:[%val_4]で、クライアントは、約[%val_5]のデータを、疑わしいIPにアップロードしました。
【0049】
・T4:クライアントデバイスは、MACアドレスおよび公開された通信インターフェースに従うプリンタです。
【0050】
・T5:IPアドレスは[%val_6]に地理的に配置されているため、疑わしいと見なされました。
【0051】
・T6:IPアドレスが、ブラックリストに登録されたアイテムと一致しました。
ここで、[%val_i]は、IPアドレス、日付、ファイルサイズなどを含むアイテムのプレースホルダを示す。アラートテンプレートは、専用のテンプレートリポジトリ29に格納され得るか、あるいはシナリオリポジトリ19に含まれ得る。一例では、アラートテンプレートは、たとえば、それぞれのシナリオのXML、バイトコード、またはPrologエンコーディングの一部として、関連するシナリオとともにコード化され得る。
【0052】
[0058]図10は、本発明のいくつかの実施形態による、アラートマネージャ66によって実行されるステップの例示的なシーケンスを示す。例示されるアラートマネージャは、シナリオディスパッチャ62および/またはフォレンジックアナライザ64から受信したシグナルをリッスンする。その後、アラートメッセージが、個々のシナリオ固有のテンプレートと、フォレンジックアナライザ64から受信した評価結果とに基づいて段階的に構築される。受信したシグナルが、シナリオインジケータ63(図8)を備える場合、アラートマネージャ66は、テンプレートリポジトリ29からそれぞれのシナリオに関連付けられたアラートテンプレートを選択的に検索し得る。様々なシナリオ属性が評価されるとき、ステップ232は、計算された値を含めるように現在のアラートメッセージを編集し得る。いくつかの実施形態では、ステップ232は、評価された属性値でそれぞれのテンプレートを単純にインスタンス化し得る(上記の例では、プレースホルダ[%val_3]を「プリンタ」に置き換え、プレースホルダ[%val_4]をタイムスタンプに置き換える)。
【0053】
[0059]属性を評価することが、一連のサブ属性を評価することを備える場合、アラートマネージャ64は、それぞれのサブ属性を評価するためのシナリオに従って、テンプレートを再帰的に検索し得る。そのような状況では、ステップ232は、メインシナリオ/属性のアラートテンプレートに従って、さらにそれぞれのサブ属性に関連付けられた個々のテンプレートに従って、現在のアラートメッセージを再定式化することを備え得る。いくつかの実施形態では、そのような再定式化は、メインアラートテンプレートを、それぞれのサブ属性のテンプレートと連結することを単に備え得る。上記に例示される例示的なテンプレートを使用すると、連結により、「T1T2T3」と読み取れるアラートテンプレートとなり得る。代替実施形態では、連結は、たとえば、ユーザがそれぞれのセキュリティ状況に関連する様々なレベルの情報にアクセスできるようにする階層テンプレートを生成するために、より洗練された処理に置き換えられ得る。テンプレートのそのような例示的な再定式化は、ハイパーリンク、図解、アイテム化されたリストなどの導入を含む。
【0054】
[0060]アラートマネージャ234が、ユーザ/管理者にアラートを発するための一連の条件の充足を示すアラートインジケータを、アナライザ64から受信すると、アラートマネージャ66は、ステップ226~232で構築されたテキストメッセージを含むセキュリティアラート26を集め、管理デバイス13に送信するためのアラート26を出力し得る。
【0055】
[0061]上記で説明される例示的なシステムおよび方法は、高性能コンピューティングアプリケーションおよび高速ネットワークにおいてでさえ、コンピュータセキュリティ脅威の効率的な検出および通信を可能にする。いくつかの実施形態は、分散エージェントを使用して、クライアントからセキュリティ関連データを収集する。そのようなデータは、たとえば、ネットワークトラフィックダイジェスト、および/または、保護されたクライアントデバイス上でのソフトウェアの実行中の特定のイベントの発生に関する情報を含み得る。収集された情報は、その後、収集されたデータが、悪意のあるソフトウェアおよび/またはネットワークへの侵入のように、コンピュータセキュリティ脅威を示しているか否かを判定するように構成されたフォレンジックアナライザに送られる前に、一元化および前処理される。前処理は、たとえば、追加のセキュリティ指標情報(たとえば、それぞれのフローの様々な態様および/または非フローデータに従って導出されたメタデータ)でネットワークフローデータにタグ付けすることを含み得る。そのような前処理は、フォレンジックアナライザから、検出に関連付けられた計算負荷の一部を軽減することにより、検出を大幅に容易にし得る。セキュリティシステムのコンポーネント間でのそのような計算コストの分散は、データの量が従来の集中型コンピュータセキュリティシステムを圧倒する可能性がある高速で高性能なコンピューティングアプリケーションにおいて特に重要になる可能性がある。
【0056】
[0062]本発明のいくつかの実施形態は、現代の電子通信ネットワークを循環するデータの速度および莫大な量が、コンピュータセキュリティ担当者を容易に圧倒する可能性があるという観察に依存している。したがって、セキュリティ関連の情報を分析および視覚化する、堅牢でスケーラブルな方法を開発する強いインセンティブがある。いくつかの実施形態は、セキュリティイベントの検出に応じて、関連する詳細の直感的な提示を可能にし、その結果、平均的な熟練度のコンピュータオペレータでさえ、何が起こったか、および各状況にどのように対応するかを理解することができる。
【0057】
[0063]いくつかの実施形態は、その検出に至った推論の説明を含む、セキュリティイベントの様々な態様を詳述する自然言語(たとえば、英語、中国語)で定式化されたアラートメッセージを表示する。そのようなアラートメッセージは、セキュリティイベントの理解を大幅に容易にし、人間のオペレータが、マシンによって提供される判断(verdict)の正確さを知力で検証できるようになり、さらに、技術者以外の担当者(たとえば、マネージャ、親など)にそれぞれのイベントを報告できるようになる。そのようなメッセージの中には、法廷でフォレンジック的証拠として使用されるものもある。
【0058】
[0064]いくつかの実施形態は、マシンが検出アルゴリズムをトラバースするときにメッセージフラグメントを集めることによって、アラートメッセージを漸進的かつ動的に構築する。そのような一例では、条件が評価されるか、または特定の変数が計算されるたびに、メッセージフラグメントが追加され得る。したがって、アラートメッセージは、「Xが発生しました」から、「YによりXが発生しました」へ、さらに「YおよびZによりXが発生し、ZおよびZに基づいてZが判定されました」までに進展し得る。
【0059】
[0065]そのような動的メッセージ構築の1つの利点は、すべての検出シナリオ、起こり得る結果、およびパラメータの可能な組合せについての事前の知識を必要としないことである。アラートメッセージを各セキュリティ状況(たとえば、フォレンジック分析の各結果)に合わせて調整する代わりに、いくつかの実施形態は、アラートメッセージテンプレートを、各検出シナリオに、および/または、セキュリティ関連量を評価する(たとえば、デバイスタイプを判定する、通信相手の評判を判定するなどの)ための各ルーチンに添付する。その後、完全なアラートメッセージは、それぞれのイベントが実際にどのように検出されたかに従って選択された個々のテンプレートによって生成されたメッセージフラグメントから、動的に構築される。各リーフが条件の一意の組合せに対応する決定木の例を挙げると、いくつかの実施形態は、事前決定されたアラートメッセージを個々のリーフに添付する代わりに、メッセージフラグメントを、決定木の中間分岐およびサブ分岐に添付する。次に、実際のアラートメッセージは、決定木をトラバースする特定の方式に従って構築される。
【0060】
[0066]そのような一例が、図11に例示される。検出ルーチンは、決定木を備え、ノードは様々な属性を表し、分岐は、対応する属性の個別の値を表す。たとえば、属性P1は、「クライアントはプリンタです」と読み取れ、属性P2は、「クライアントが大きなファイルをアップロードしました」などと読み取れる。例示される例では、決定木を通る2つの異なるパスが、同じ判断V、たとえば、「クライアントは攻撃を受けています」に到達する。しかしながら、いくつかの実施形態では、一方の検出パスを通ることによって生成されるアラートメッセージは、他方の検出パスによって生成されるアラートメッセージとは異なるであろう。例示される例では、アラートテンプレートT1,...,T4は、それぞれ属性P1,...,P4に関連付けられる。そのような各テンプレートは、それぞれメッセージフラグメントM1,...,M4を生成し得る。メッセージフラグメントが連結されて、完全なアラートメッセージを形成する例示的な実施形態では、左側のパスはアラートメッセージM1+M4を生成し、右側のパスはアラートメッセージM1+M2+M3を生成するが、判断は同じである。対照的に、事前決定されたアラートメッセージが、判断Vに関連付けられているシステムは、左側と右側との両方の検出パスに対して同じアラートメッセージを生成する。
【0061】
[0067]おそらく並列コンピューティング構成において、セキュリティ関連データが高速で生成および処理される場合、特定の属性を評価するために必要ないくつかの情報が、特定のシナリオが呼び出された時点で利用できない状況が発生する可能性がある。しかしながら、それぞれの情報は、後で入手できる場合がある。そのため、クライアントマシンおよびネットワークから収集されたデータが、同じ検出シナリオをトリガした場合でさえも、これらシナリオの一部は、実際には毎回実行されない可能性があるため、実際に実行されるセキュリティ分析は、時として異なる場合がある。別の言い方をすれば、現代のコンピュータおよびネットワークによって生成される莫大な量の情報を処理するためにしばしば必要とされる動きの速い非同期計算構成では、属性評価のラインまたは推論/正確なシーケンスは事前に知られていない。本発明のいくつかの実施形態のように、動的に生成されるアラートシステムは、オペレータが、毎回どの推論のラインが使用されたか、および、なぜ2つの同様の状況が、矛盾するセキュリティ判断をしばしば生成するのかを、正確に理解することを可能にし得る。
【0062】
[0068]さらに、絶えず変化するコンピュータセキュリティの世界では、セキュリティ脅威を検出する複数の手法、および様々なセキュリティパラメータを計算する複数の手法があり得る。新しい分析ツール、アルゴリズム、および攻撃シナリオは常に開発されている。人工知能の最近の進歩により、一連の利用可能なツールからマシンを柔軟に選択できるようにすることへの関心が高まっている。本発明のいくつかの実施形態によって提供されるアラートメッセージの動的生成は、そのような柔軟な意思決定に対応することができる。
【0063】
[0069]図12に例示されるそのような一例では、検出ルーチンは、3つの別個の属性P1,P2,およびP3を評価することを備える。しかしながら、各属性は、個別のシナリオS1,...,S8によって例示される複数の独立した手法で評価され得る。そのようなシナリオの例は、たとえば、入力データの個別の態様の分析など、個別の分析ヒューリスティックを含む。2つの異なるデータセット(フォレンジックインジケータ24a~24b)は、関連する属性を評価するための異なるシナリオをトリガし得る。たとえば、フォレンジックインジケータ24aはシナリオS1,S4およびS7をトリガし得る一方、インジケータ24bは、シナリオS1,S5,およびS6をトリガし得る。例示される実施形態では、各シナリオは、関連するアラートテンプレートを備える。それぞれのテンプレートは、一連のメッセージフラグメントM1,M4,M7およびM1,M5,M6をそれぞれ生成し、これらは、アラートマネージャ66によって、例示されるアラートメッセージに集められる。この例は、どちらの場合も、判断が同じであっても、アラートメッセージが異なる可能性があることを示す。個別のアラートメッセージ(M1+M4+M7と、M1+M5+M6)は、判断に到達した個別の方式を示す。シナリオの左右のシーケンスが矛盾する判断をもたらす状況では、アラートメッセージは、そのような不一致の理由に関してアナリストに実質的な洞察を提供し得る。
【0064】
[0070]図12を使用して例示され得る別の例示的な実施形態は、各属性を評価するすべての代替方式を試み得る。たとえば、フォレンジックアナライザ64は、3つのシナリオS1,S2,およびS3すべてを使用して属性P1を評価し、シナリオS4とS5との両方を使用して属性P2を評価し得る。シナリオは、たとえば、別個のプロセッサまたはマシン上で並列的に実行し得る。各シナリオは、たとえば、検出率および/または誤検出率などのパフォーマンス測定に反映される固有の信頼性を有し得る。したがって、そのようなシステムは、複数の判断を生成することができ、各判断は、シナリオの別個の組合せに対応し、各組合せは、それぞれのアラートメッセージで説明され得る独自の信頼性の度合を有する。したがって、各判断に使用されるシナリオの特定の組合せを示す複合アラートメッセージは、アナリストが、競合する判断、そして最終的にはどの判断を信頼するのかを理解するのに役立ち得る。
【0065】
[0071]図11および図12に例示される例に関して、判断Vは、たとえば、「クライアントは攻撃を受けています」のような主なセキュリティ属性、または、「クライアントはプリンタです」、「IPアドレスは疑わしいです」、「ノードXに異常なネットワークトラフィックがあります」、「ノードXにおけるトラフィックが予想量を超えています」などのセキュリティシナリオの一部として評価される任意のサブ属性などの、様々なタイプの属性を表し得る。
【0066】
[0072]セキュリティアラートを動的に構築することの追加の利点は、セキュリティシステムの様々なコンポーネントを分離することを可能にすることである。特に、互いに独立して検出シナリオを開発できる。言い換えると、残りの検出コンポーネント(たとえば、アラートマネージャ66)を変更する必要なく、新しい検出シナリオを開発して既存のツールセットに追加することができる。新しいシナリオごとに、アラートメッセージフラグメントを生成するための独自のテンプレートが提供され得る。セキュリティシステムのこの分離されたアーキテクチャは、開発、テスト、および展開を大幅に促進し、市場投入までの時間とメンテナンスのコストを全体的に低減し得る。
【0067】
[0073]上記の実施形態は、本発明の範囲から逸脱することなく、多くの手法で変更され得ることが当業者に明らかであろう。したがって、本発明の範囲は、以下の特許請求の範囲およびそれらの法的同等物によって判定されるべきである。
図1
図2
図3
図4
図5
図6
図7-A】
図7-B】
図8
図9
図10
図11
図12