(57)【要約】  アラートマネージャソフトウェアは、様々なセキュリティシナリオがテストされて判断に達すると、セキュリティアラートを動的に集める。実行された各シナリオは、シナリオ固有のメッセージに寄与し得るので、結果として得られる複合セキュリティアラートは、それぞれの判断に到達する際に使用された実際の推論のラインを示す。説明されるシステムおよび方法は、とりわけ、企業ネットワーク内の大量のネットワークフローの分析に適用する。いくつかの実施形態では、フローは、マルウェアおよび／または侵入の検出を容易にするために、追加のメタデータで事前にタグ付けされる。
2021530807.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータセキュリティ脅威から複数のクライアントシステムを保護するように構成されたサーバコンピュータシステムの少なくとも１つのハードウェアプロセッサを用いて、
フォレンジックインジケータの受信に応じて、複数のルーチンから第１のセキュリティ属性を評価するための第１のルーチンを選択することであって、前記第１のルーチンは、前記フォレンジックインジケータに従って選択され、前記フォレンジックインジケータは、前記複数のクライアントシステムのうちのクライアントシステムと別のパーティとの間のネットワークフローを特徴付ける複数のメタデータ要素を含む、選択することと、
前記複数のルーチンから、第２のセキュリティ属性を評価するための第２のルーチンを選択することであって、前記第２のルーチンは、前記第１のルーチンを実行した結果に従って選択される、選択することと、
前記第１のルーチンの選択に応じて、第１のテキストメッセージを、前記クライアントシステムがコンピュータセキュリティ脅威にさらされているか否かを示すセキュリティアラートに追加することであって、前記第１のテキストメッセージは、前記第１のルーチンに従って選択された第１のメッセージテンプレートに従って決定される、追加することと、
前記第２のルーチンの選択に応じて、第２のテキストメッセージを前記セキュリティアラートに追加することであって、前記第２のテキストメッセージは、前記第２のルーチンに従って選択された第２のメッセージテンプレートに従って決定される、追加することと、
前記セキュリティアラートを人間のオペレータに表示するように構成された管理デバイスに前記セキュリティアラートを送信することと
を行うステップを含む方法。
【請求項２】
請求項１に記載の方法であって、前記第１のセキュリティ属性を評価することは、第３のセキュリティ属性を評価することを含み、前記方法はさらに、前記サーバコンピュータシステムの少なくとも１つのハードウェアプロセッサを用いて、
前記複数のルーチンから、前記第３のセキュリティ属性を評価するための第３のルーチンを選択することと、
前記管理デバイスへの送信の準備として、第３のテキストメッセージを前記セキュリティアラートに追加することであって、前記第３のテキストメッセージは、前記第３のルーチンに従って選択された第３のメッセージテンプレートに従って決定される、追加することと
を行うステップを含む、方法。
【請求項３】
請求項２に記載の方法であって、前記第１のテキストメッセージは、アクティブ化された場合に前記第３のテキストメッセージを表示させるハイパーリンクを含む、方法。
【請求項４】
請求項１に記載の方法であって、前記サーバコンピュータシステムの少なくとも１つのハードウェアプロセッサを用いて、
前記クライアントシステムが前記コンピュータセキュリティ脅威にさらされているか否かを示す判断を決定することであって、前記判断は、前記第１のルーチンを実行した結果と、前記第２のルーチンを実行した別の結果とに従って決定される、決定することと、
前記管理デバイスへの送信の準備として、前記判断のインジケータを前記セキュリティアラートに追加することと
を行うステップをさらに含む方法。
【請求項５】
請求項１に記載の方法であって、前記第１のメッセージテンプレートはプレースホルダを含み、前記第１のテキストメッセージを決定することは、前記プレースホルダを、前記第１のルーチンを実行した前記結果に従って決定された前記第１のセキュリティ属性の値に置き換えることを含む、方法。
【請求項６】
請求項１に記載の方法であって、前記第１のテキストメッセージは、前記クライアントシステムのデバイスタイプのインジケータと、前記別のパーティの地理的場所のインジケータと、電子通信の発生時間のインジケータとを含むグループから選択されるアイテムを含む、方法。
【請求項７】
請求項１に記載の方法であって、前記複数のメタデータ要素は、前記複数のメタデータ要素のうちの別の要素に従って計算されたタグ付け要素を含む、方法。
【請求項８】
請求項１に記載の方法であって、前記第１のテキストメッセージは、前記人間のオペレータが前記複数のルーチンから前記第１のルーチンを識別できるようにする識別子を含む、方法。
【請求項９】
請求項１に記載の方法であって、前記第１のテキストメッセージは、アクティブ化された場合に前記第１のセキュリティ属性の値を表示させるハイパーリンクを含む、方法。
【請求項１０】
コンピュータセキュリティ脅威から複数のクライアントシステムを保護するように構成されたサーバコンピュータシステムであって、前記サーバコンピュータシステムは、フォレンジックアナライザと前記フォレンジックアナライザに接続されたアラートマネージャとを実行するように構成された少なくとも１つのハードウェアプロセッサを含み、
前記フォレンジックアナライザは、
フォレンジックインジケータの受信に応じて、複数のルーチンから第１のセキュリティ属性を評価するための第１のルーチンを選択することであって、前記第１のルーチンは、前記フォレンジックインジケータに従って選択され、前記フォレンジックインジケータは、前記複数のクライアントシステムのうちのクライアントシステムと別のパーティとの間のネットワークフローを特徴付ける複数のメタデータ要素を含む、選択することと、
前記複数のルーチンから第２のセキュリティ属性を評価するための第２のルーチンを選択することであって、前記第２のルーチンは、前記第１のルーチンを実行した結果に従って選択される、選択することと
を行うように構成され、
前記アラートマネージャは、
前記フォレンジックアナライザが前記第１のルーチンを選択することに応じて、第１のテキストメッセージを、前記クライアントシステムがコンピュータセキュリティ脅威にさらされているか否かを示すセキュリティアラートに追加することであって、前記第１のテキストメッセージは、前記第１のルーチンに従って選択された第１のメッセージテンプレートに従って決定される、追加することと、
前記フォレンジックアナライザが第２のセキュリティアルゴリズムを選択することに応じて、前記セキュリティアラートに第２のテキストメッセージを追加することであって、前記第２のテキストメッセージは、前記第２のルーチンに従って選択された第２のメッセージテンプレートに従って決定される、追加することと、
前記セキュリティアラートを人間のオペレータに表示するように構成された管理デバイスに前記セキュリティアラートを送信することと
を行うように構成される、
サーバコンピュータシステム。
【請求項１１】
請求項１０に記載のサーバコンピュータシステムであって、前記第１のセキュリティ属性を評価することは、第３のセキュリティ属性を評価することを含み、
前記フォレンジックアナライザはさらに、前記複数のルーチンから、前記第３のセキュリティ属性を評価するための第３のルーチンを選択するように構成され、
前記アラートマネージャはさらに、前記管理デバイスへの送信の準備として、第３のテキストメッセージを前記セキュリティアラートに追加するように構成され、前記第３のテキストメッセージは、前記第３のルーチンに従って選択された第３のメッセージテンプレートに従って決定される、
サーバコンピュータシステム。
【請求項１２】
請求項１１に記載のサーバコンピュータシステムであって、前記第１のテキストメッセージは、アクティブ化された場合に前記第３のテキストメッセージを表示させるハイパーリンクを含む、サーバコンピュータシステム。
【請求項１３】
請求項１０に記載のサーバコンピュータシステムであって、
前記フォレンジックアナライザはさらに、前記クライアントシステムが前記コンピュータセキュリティ脅威にさらされているか否かを示す判断を決定するように構成され、前記判断は、前記第１のルーチンを実行した結果と、前記第２のルーチンを実行した別の結果とに従って決定され、
前記アラートマネージャはさらに、前記管理デバイスへの送信の準備として、前記判断のインジケータを、前記セキュリティアラートに追加するように構成される、
サーバコンピュータシステム。
【請求項１４】
請求項１０に記載のサーバコンピュータシステムであって、前記第１のメッセージテンプレートはプレースホルダを含み、前記第１のテキストメッセージを決定することは、前記プレースホルダを、前記第１のルーチンを実行した前記結果に従って決定された前記第１のセキュリティ属性の値に置き換えることを含む、サーバコンピュータシステム。
【請求項１５】
請求項１０に記載のサーバコンピュータシステムであって、前記第１のテキストメッセージは、前記クライアントシステムのデバイスタイプのインジケータと、前記別のパーティの地理的場所のインジケータと、電子通信の発生時間のインジケータとを含むグループから選択されるアイテムを含む、サーバコンピュータシステム。
【請求項１６】
請求項１０に記載のサーバコンピュータシステムであって、前記複数のメタデータ要素は、前記複数のメタデータ要素のうちの別の要素に従って計算されたタグ付け要素を含む、サーバコンピュータシステム。
【請求項１７】
請求項１０に記載のサーバコンピュータシステムであって、前記第１のテキストメッセージは、前記人間のオペレータが前記複数のルーチンから前記第１のルーチンを識別できるようにする識別子を含む、サーバコンピュータシステム。
【請求項１８】
請求項１０に記載のサーバコンピュータシステムであって、前記第１のテキストメッセージは、アクティブ化された場合に前記第１のセキュリティ属性の値を表示させるハイパーリンクを含む、サーバコンピュータシステム。
【請求項１９】
コンピュータセキュリティ脅威から複数のクライアントシステムを保護するように構成されたサーバコンピュータシステムの少なくとも１つのハードウェアプロセッサによって実行されると、前記サーバコンピュータシステムに、フォレンジックアナライザと、前記フォレンジックアナライザに接続されたアラートマネージャとを実行させる命令を格納する非一時的なコンピュータ可読媒体であって、
前記フォレンジックアナライザは、
フォレンジックインジケータの受信に応じて、複数のルーチンから第１のセキュリティ属性を評価するための第１のルーチンを選択することであって、前記第１のルーチンは前記フォレンジックインジケータに従って選択され、前記フォレンジックインジケータは、前記複数のクライアントシステムのうちのクライアントシステムと別のパーティとの間のネットワークフローを特徴付ける複数のメタデータ要素を含む、選択することと、
前記複数のルーチンから第２のセキュリティ属性を評価するための第２のルーチンを選択することであって、前記第２のルーチンは前記第１のルーチンを実行した結果に従って選択される、選択することと
を行うように構成され、
前記アラートマネージャは、
前記フォレンジックアナライザが前記第１のルーチンを選択することに応じて、第１のテキストメッセージを、前記クライアントシステムがコンピュータセキュリティ脅威にさらされているか否かを示すセキュリティアラートに追加することであって、前記第１のテキストメッセージは、前記第１のルーチンに従って選択された第１のメッセージテンプレートに従って決定される、追加することと、
前記フォレンジックアナライザが第２のセキュリティアルゴリズムを選択することに応じて、前記セキュリティアラートに第２のテキストメッセージを追加することであって、前記第２のテキストメッセージは、前記第２のルーチンに従って選択された第２のメッセージテンプレートに従って決定される、追加することと、
前記セキュリティアラートを人間のオペレータに表示するように構成された管理デバイスに、前記セキュリティアラートを送信することと
を行うように構成される、
非一時的なコンピュータ可読媒体。
【請求項２０】
請求項１９に記載のコンピュータ可読媒体であって、第２の一連の命令を格納し、前記第２の一連の命令は、前記少なくとも１つのハードウェアプロセッサに前記第１のルーチンを実行させる、コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]この出願は、２０１８年７月１８日に出願され「ＡＩ  ｆｏｒ  Ｓｅｃｕｒｉｔｙ  Ｒｅｖｉｅｗ（セキュリティレビューのためのＡＩ）」と題された米国仮特許出願第６２／６９９，８１７号と、２０１９年３月１１日に出願され「Ｓｙｓｔｅｍｓ  ａｎｄ  Ｍｅｔｈｏｄｓ  ｆｏｒ  Ｒｅｐｏｒｔｉｎｇ  Ｃｏｍｐｕｔｅｒ  Ｓｅｃｕｒｉｔｙ  Ｉｎｃｉｄｅｎｔｓ（コンピュータセキュリティインシデントを報告するためのシステムおよび方法）」と題された米国仮特許出願第６２／８１６，３８９号との利益を主張し、これらの全内容は参照により本明細書に組み込まれる。
【０００２】
[0002]本発明は、コンピュータセキュリティ脅威を緩和するためのシステムおよび方法、特に、自動的に検出されたインシデントを人間のオペレータに報告することに関する。
【背景技術】
【０００３】
[0003]マルウェアとしても知られる悪意のあるソフトウェアは、世界中の多数のコンピュータシステムに影響を与える。マルウェアは、コンピュータウイルス、トロイの木馬、スパイウェア、およびランサムウェアなどの多くの形態で、何百万ものコンピュータユーザに深刻なリスクをもたらし、とりわけ、データや機密情報の損失、個人情報の盗難、および生産性の低下などに対して脆弱にする。悪意のあるソフトウェアは、コンピュータシステムへの不正アクセスを助長する可能性もあり、侵入者（ハッカー）が、ユーザデータや、他の機密情報を抽出することを可能にし得る。
【０００４】
[0004]非公式にモノのインターネット（ＩｏＴ）と呼ばれる多種多様なデバイスが、通信ネットワークおよびインターネットにますます接続されている。そのようなデバイスは、とりわけ、スマートフォン、スマートウォッチ、テレビおよび他のマルチメディアデバイス、ゲーム機、家電製品、およびサーモスタットなどの様々な家庭用センサを含む。そのようなデバイスがオンラインになると、マルウェアや侵入などのセキュリティの脅威にさらされるようになる。したがって、マルウェアからそのようなデバイスを保護すること、およびそのようなデバイスとの間の通信を保護することの必要性が高まっている。
【０００５】
[0005]悪意のあるソフトウェアおよびハッキング方法は絶えず進化しており、絶えず変化する脅威の状況を維持するように、コンピュータセキュリティプロバイダに挑戦している。通常、挙動検出として知られるセキュリティ方法の１つの特定のカテゴリは、一連のルールに従ってデバイスおよび／またはソフトウェアコンポーネントのアクティビティを監視することに依存する。一部のアクティビティパターン（たとえば、ハードウェアまたはソフトウェアイベントのシーケンス、ネットワークトラフィックの特定の機能）は、それぞれのデバイスの通常の合法的な使用に対応するが、他のパターンは、悪意を示している場合がある。
【０００６】
[0006]ますます多くのデバイスがインターネットに接続され、ビジネスが、主にデータ駆動型になるにつれて、電子通信ネットワーク上のデータトラフィックの速度および莫大な量は絶えず増加しており、従来のコンピュータセキュリティシステムおよび方法を圧倒する可能性がある。さらに、コンピュータセキュリティインシデントを調査するために人間の介入が必要な場合は常に、セキュリティ担当者が大量の情報を分類する能力によって、検出の効率が大幅に制限される。したがって、セキュリティ関連のデータを分析および視覚化する堅牢でスケーラブルな方法を開発する強いインセンティブがある。
【発明の概要】
【０００７】
[0007]１つの態様によれば、方法は、コンピュータセキュリティ脅威から、複数のクライアントシステムを保護するためにサーバコンピュータシステムを用いる。この方法は、フォレンジックインジケータの受信に応じて、サーバコンピュータシステムの少なくとも１つのハードウェアプロセッサを用いて、複数のルーチンから第１のセキュリティ属性を評価するための第１のルーチンを選択することを備え、第１のルーチンは、フォレンジックインジケータに従って選択される。フォレンジックインジケータは、複数のクライアントシステムのうちのクライアントシステムと、別のパーティとの間のネットワークフローを特徴付ける複数のメタデータ要素を備える。この方法はさらに、サーバコンピュータシステムの少なくとも１つのハードウェアプロセッサを用いて、複数のルーチンから、第２のセキュリティ属性を評価するための第２のルーチンを選択することを備え、第２のルーチンは、第１のルーチンを実行した結果に従って選択される。この方法はさらに、第１のルーチンの選択に応じて、サーバコンピュータシステムの少なくとも１つのハードウェアプロセッサを用いて、クライアントシステムが、コンピュータセキュリティ脅威にさらされているか否かを示す第１のテキストメッセージを、セキュリティアラートに追加することを備える。第１のテキストメッセージは、第１のルーチンに従って選択された第１のメッセージテンプレートに従って決定される。この方法はさらに、第２のルーチンの選択に応じて、サーバコンピュータシステムの少なくとも１つのハードウェアプロセッサを用いて、第２のテキストメッセージを、セキュリティアラートに追加することを備える。第２のテキストメッセージは、第２のルーチンに従って選択された第２のメッセージテンプレートに従って決定される。この方法はさらに、サーバコンピュータシステムの少なくとも１つのハードウェアプロセッサを用いて、セキュリティアラートを人間のオペレータに表示するように構成された管理デバイスに、セキュリティアラートを送信することを備える。
【０００８】
[0008]別の態様によれば、サーバコンピュータシステムは、コンピュータセキュリティ脅威から複数のクライアントシステムを保護するように構成される。サーバコンピュータシステムは、フォレンジックアナライザとフォレンジックアナライザに接続されたアラートマネージャとを実行するように構成された少なくとも１つのハードウェアプロセッサを備える。フォレンジックアナライザは、フォレンジックインジケータの受信に応じて、複数のルーチンから第１のセキュリティ属性を評価するための第１のルーチンを選択するように構成され、第１のルーチンは、フォレンジックインジケータに従って選択される。フォレンジックインジケータは、複数のクライアントシステムのうちのクライアントシステムと、別のパーティとの間のネットワークフローを特徴付ける複数のメタデータ要素を備える。フォレンジックアナライザはさらに、複数のルーチンから第２のセキュリティ属性を評価するための第２のルーチンを選択するように構成され、第２のルーチンは、第１のルーチンを実行した結果に従って選択される。アラートマネージャは、フォレンジックアナライザが第１のルーチンを選択することに応じて、クライアントシステムが、コンピュータセキュリティ脅威にさらされているか否かを示す第１のテキストメッセージを、セキュリティアラートに追加するように構成される。第１のテキストメッセージは、第１のルーチンに従って選択された第１のメッセージテンプレートに従って決定される。アラートマネージャはさらに、フォレンジックアナライザが第２のセキュリティアルゴリズムを選択することに応じて、セキュリティアラートに第２のテキストメッセージを追加するように構成される。第２のテキストメッセージは、第２のルーチンに従って選択された第２のメッセージテンプレートに従って決定される。アラートマネージャはさらに、セキュリティアラートを人間のオペレータに表示するように構成された管理デバイスに、セキュリティアラートを送信するように構成される。
【０００９】
[0009]別の態様によれば、非一時的なコンピュータ可読媒体は、コンピュータセキュリティ脅威から複数のクライアントシステムを保護するように構成されたサーバコンピュータシステムの少なくとも１つのハードウェアプロセッサによって実行されると、サーバコンピュータシステムに対して、フォレンジックアナライザと、フォレンジックアナライザに接続されたアラートマネージャとを実行させる命令を格納する。フォレンジックアナライザは、フォレンジックインジケータの受信に応じて、複数のルーチンから、第１のセキュリティ属性を評価するための第１のルーチンを選択するように構成され、第１のルーチンは、フォレンジックインジケータに従って選択される。フォレンジックインジケータは、複数のクライアントシステムのうちのクライアントシステムと、別のパーティとの間のネットワークフローを特徴付ける複数のメタデータ要素を備える。フォレンジックアナライザはさらに、複数のルーチンから第２のセキュリティ属性を評価するための第２のルーチンを選択するように構成され、第２のルーチンは、第１のルーチンを実行した結果に従って選択される。アラートマネージャは、フォレンジックアナライザが第１のルーチンを選択することに応じて、クライアントシステムが、コンピュータセキュリティ脅威にさらされているか否かを示す第１のテキストメッセージを、セキュリティアラートに追加するように構成される。第１のテキストメッセージは、第１のルーチンに従って選択された第１のメッセージテンプレートに従って決定される。アラートマネージャはさらに、フォレンジックアナライザが第２のセキュリティアルゴリズムを選択することに応じて、セキュリティアラートに第２のテキストメッセージを追加するように構成される。第２のテキストメッセージは、第２のルーチンに従って選択された第２のメッセージテンプレートに従って決定される。アラートマネージャはさらに、セキュリティアラートを人間のオペレータに表示するように構成された管理デバイスに、セキュリティアラートを送信するように構成される。
【００１０】
[0010]本発明の前述の態様および利点は、以下の詳細な説明を読み、以下の図面を参照することにより、より良く理解されるようになる。
【図面の簡単な説明】
【００１１】
【図１】[0011]本発明のいくつかの実施形態による、コンピュータセキュリティ脅威から保護された例示的な一連のクライアントシステムを示す図である。
【図２】[0012]本発明のいくつかの実施形態による、様々なエンティティ間の例示的なデータ交換を示す図である。
【図３】[0013]本発明のいくつかの実施形態による、コンピューティングデバイスの例示的なハードウェア構成を例示する図である。
【図４】[0014]本発明のいくつかの実施形態による、クライアントシステムで実行する例示的なソフトウェアコンポーネントを例示する図である。
【図５】[0015]本発明のいくつかの実施形態による、フロー前処理の一部として実行されるステップの例示的なシーケンスを示す図である。
【図６】[0016]本発明のいくつかの実施形態による、例示的なフロータグ付け処理を示すステップの別のシーケンスを示す。
【図７−Ａ】[0017]本発明のいくつかの実施形態による、フロータグ付けの例を示す図である。
【図７−Ｂ】[0018]本発明のいくつかの実施形態による、フロータグ付けの別の例を示す図である。
【図８】[0019]本発明のいくつかの実施形態による、例示的なソフトウェアコンポーネントおよびセキュリティサーバの動作を例示する図である。
【図９】[0020]本発明のいくつかの実施形態による、フォレンジックアナライザコンポーネントによって実行されるステップの例示的なシーケンスを示す図である。
【図１０】[0021]本発明のいくつかの実施形態による、アラートマネージャコンポーネントによって実行されるステップの例示的なシーケンスを示す図である。
【図１１】[0022]本発明のいくつかの実施形態による、決定木を備える例示的な攻撃検出手順を例示する図である。
【図１２】[0023]いくつかの実施形態による、複数のステップを備え、各ステップは、複数のシナリオに従って実行され得る、別の例示的な攻撃検出手順を示す図である。
【発明を実施するための形態】
【００１２】
[0024]以下の説明において、構造間のすべての列挙された接続は、直接作用接続または中間構造を介した間接作用接続であり得ることが理解される。一連の要素は、１つまたは複数の要素を含む。要素の詳説は、少なくとも１つの要素を指すと理解される。複数の要素は、少なくとも２つの要素を含む。特に必要がない限り、説明される方法ステップは、必ずしも特定の例示された順序で実行される必要はない。第２の要素から導出された第１の要素（たとえば、データ）は、第２の要素に等しい第１の要素、ならびに第２の要素およびオプションで他のデータを処理することによって生成される第１の要素を包含する。パラメータに従って判定または決定を行うことは、パラメータに従って、およびオプションで他のデータに従って判定または決定を行うことを包含する。特に指定のない限り、ある量／データのインジケータは、量／データ自体、または量／データ自体とは異なるインジケータであり得る。コンピュータプログラムは、タスクを実行するプロセッサ命令のシーケンスである。本発明のいくつかの実施形態で説明されるコンピュータプログラムは、スタンドアロンソフトウェアエンティティまたは他のコンピュータプログラムのサブエンティティ（たとえば、サブルーチン、ライブラリ）であり得る。「データベース」という用語は、本明細書では、体系化された検索可能なデータの集合を示すために使用される。コンピュータ可読媒体は、磁気、光、および半導体記憶媒体（たとえば、ハードドライブ、光ディスク、フラッシュメモリ、ＤＲＡＭ）のような非一時的な媒体、ならびに導電性ケーブルや光ファイバリンクのような通信リンクを包含する。いくつかの実施形態によれば、本発明は、とりわけ、本明細書に説明される方法を実行するようにプログラムされたハードウェア（たとえば、１つまたは複数のプロセッサ）、ならびに本明細書に説明される方法を実行するためのコンピュータ可読媒体エンコード命令を備えるコンピュータシステムを提供する。
【００１３】
[0025]以下の説明は、例として、必ずしも限定としてではなく、本発明の実施形態を例示する。
【００１４】
[0026]図１は、本発明のいくつかの実施形態による、複数のクライアントシステム１０ａ〜１０ｅが、コンピュータセキュリティ脅威から保護される例示的な構成を示す。クライアントシステム１０ａ〜１０ｅは、プロセッサ、メモリ、および通信インターフェースを有する任意の電子デバイスを表し得る。例示的なクライアントシステム１０ａ〜１０ｅは、とりわけ、企業のメインフレームコンピュータ、パーソナルコンピュータ、ラップトップ、タブレットコンピュータ、モバイル通信デバイス（たとえば、スマートフォン）、メディアプレーヤ、テレビ、ゲーム機、家電製品（たとえば、冷蔵庫、サーモスタット、インテリジェント暖房および／または照明システム）、およびウェアラブルデバイス（たとえば、スマートウォッチ、スポーツ、フィットネス機器）を含む。クライアントシステム１０ａ〜１０ｅは、ローカルネットワーク１２によって相互接続され、さらにインターネットなどの拡張ネットワーク１４に接続される。ローカルネットワーク１２は、ローカルエリアネットワーク（ＬＡＮ）を備え得る。例示的なローカルネットワーク１２は、とりわけ、ホームネットワークおよび企業ネットワークを含み得る。
【００１５】
[0027]いくつかの実施形態では、フローエクスポータ製品１５は、ローカルネットワーク１２内のクライアント１０ａ〜１０ｅ間、および／または、クライアント１０ａ〜１０ｅと、ローカルネットワーク１２の外部に位置する他のエンティティとの間のデータトラフィックを傍受するように構成される。いくつかの実施形態では、フローエクスポータ１５は、ローカルネットワーク１２と拡張ネットワーク１４との間のゲートウェイとして機能するように構成されるか、またはローカルネットワーク１２と拡張ネットワーク１４との間のネットワークトラフィックの少なくとも一部が、フローエクスポータ１５をトラバースするように構成される。いくつかの実施形態では、フローエクスポータは、以下に示すように、傍受されたトラフィックから情報を選択的に抽出し、抽出された情報を、（Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ  Ｒｅｑｕｅｓｔ  Ｆｏｒ  Ｃｏｍｍｅｎｔｓ  ＩＥＴＦ−ＲＦＣ  ７０１１で説明される）インターネットプロトコルフロー情報エクスポート−ＩＰＦＩＸ、またはＣｉｓｃｏ社からのＮｅｔＦｌｏｗ（Ｒ）などのエクスポートフォーマット（ＩＥＴＦ−ＲＦＣ  ３９５４などを参照）でエンコードされたネットワークフローとして表し、それぞれのネットワークフローデータを、データアグリゲータまたはセキュリティサーバにエクスポートする。ネットワークフローは、特定のフローに属するすべてのパケットが一連の共通のプロパティ（たとえば、同じ発信元および／または宛先）を有するように、特定の時間間隔中にネットワーク内の観測点（たとえば、フローエクスポータ１５）を通過する一連のデータパケットとして定義され得る。ネットワークフローに関連するエクスポートされた情報は、典型的に、傍受されたトラフィックのメタデータの要約、パケットヘッダから、またはペイロードの実際のコンテンツ以外のパケット特性から導出されたそれぞれのメタデータを備える。例示的なフローメタデータ要素は、発信元および宛先のＩＰアドレスまたはインターネットドメイン名、ペイロードサイズ、送信プロトコル、タイムスタンプなどを含む。典型的なエクスポートフォーマットでは、データは、テーブルとして系統化され、各行は個別のフローを表し、各列はそれぞれのフローのプロパティの値を表す。フローテーブルのそのような列は、本明細書ではフロー要素と見なされる。ＩＰＦＩＸやＮｅｔＦｌｏｗなどの業界標準に従って定式化されたフロー要素は、本明細書では標準フロー要素と呼ばれる。
【００１６】
[0028]いくつかの実施形態では、データアグリゲータデバイス１７は、保護されたクライアント１０ａ〜１０ｅおよび／またはフローエクスポータ１５から情報を受信し、フォレンジック分析の準備としてそのような情報を体系化および前処理するように構成される。データアグリゲータ１７および／またはデータリポジトリ１８に通信可能に結合されたセキュリティサーバ１６は、潜在的なコンピュータセキュリティ脅威を検出するために、クライアントから収集された情報を分析するように構成される。
【００１７】
[0029]データアグリゲータ１７は、クライアントおよび／またはフローエクスポータから収集された情報に対して部分的なフォレンジック分析を実行し得る。しかしながら、典型的なデータアグリゲータ１７は、セキュリティ評価を行わず、たとえば、特定のフローが、コンピュータシステムのある部分への不正アクセスを示しているか否か、またはそれぞれのフローがマルウェア感染を示しているか否かを判定しない。代わりに、データアグリゲータ１７の典型的な実施形態によって行われる前処理のタイプは、他のシステムコンポーネント（たとえば、セキュリティサーバ１６）によって行われるフォレンジック分析を、それらのコンポーネントから計算負荷の一部を取り除くことによって加速および促進することを目的とされる。その後、サーバ１６は、マルウェアおよび／または侵入検出ルーチンの実行に焦点を合わせることができる一方、セキュリティ処理のためにデータを最適な形式にするために必要な作業の大部分は、データアグリゲータ１７によって行われ得る。例示的な前処理動作は、イベントおよび／またはフローフィルタリング、すなわち、様々な基準に従ってイベントおよび／またはフローデータを選択することを含む。
【００１８】
[0030]データアグリゲータ１７のいくつかの実施形態は、ハードディスク、ＳＡＮストレージ、ＲＡＭディスク、任意のタイプのメモリ構造、キューなどを含むがこれらに限定されない任意のタイプのコンピュータ可読媒体を使用して実施され得るデータリポジトリ１８に、セキュリティ関連情報（たとえば、イベントインジケータ、ネットワークフロー）を格納する。データアグリゲータ１７は、フロー前処理のすべての結果をデータリポジトリ１８に格納しない場合がある。代わりに、いくつかの実施形態は、特に有益であり得、および／または監視されたクライアントおよび／またはネットワークの状態におけるある種の変化を最も良く捕捉し得るいくつかの結果を選択する。前処理のそのような結果は、一連の事前決定された規則に従って選択され得る。データアグリゲータ１７の動作は、以下でさらに詳細に説明される。
【００１９】
[0031]いくつかの実施形態では、クライアントシステム１０ａ〜１０ｅは、拡張ネットワーク１４（たとえば、インターネット）に接続された管理デバイス１３上で実行するソフトウェアを使用して、遠隔で監視、管理、および／または構成される。例示的な管理デバイス１３は、とりわけ、パーソナルコンピュータおよびスマートフォンを含む。デバイス１３は、ユーザ（たとえば、コンピュータセキュリティ専門家、ネットワーク管理者）が、たとえば、構成オプションを設定し、および／または、それぞれのクライアントシステムで発生するイベントに関するセキュリティアラートを受信するために、クライアントシステム１０ａ〜１０ｅの動作を遠隔で監視および／または管理することを可能にするグラフィカルユーザインターフェース（ＧＵＩ）を見せることができる。１つの例示的なユースケースシナリオでは、クライアント１０ａ〜１０ｅは、企業ネットワーク上の個々のコンピュータを表し、管理デバイス１３は、それぞれのネットワークのアクティビティを視覚化および監視するように構成されたセキュリティオペレーションセンタ（ＳＯＣ）のコンピュータを集合的に表す。そのような一例では、管理デバイス１３は、それぞれの企業ネットワーク内で発生するイベントに関連するセキュリティアラートを表示するように構成されたセキュリティ情報およびイベント管理（ＳＩＥＭ）ソフトウェアを実行し得る。別の例示的なユースケースシナリオでは、クライアント１０ａ〜１０ｅは、ホームネットワークによって相互接続された家庭の電子デバイスを表す。そのようなケースでは、管理デバイス１３は、それぞれの親がクライアント１０ａ〜１０ｅに関するセキュリティアラートを受信し、ネットワークアクセスおよび／または親制御オプションなどを構成することを可能にするアプリケーションを実行する親のスマートフォンを表し得る。
【００２０】
[0032]当業者は、図１における例示的な構成が、多くの可能な構成のうちの１つにすぎないことを理解するであろう。コンポーネント１５および１７の各々は、スタンドアロンネットワーク製品として実施され得るか、あるいはオプションで、サーバまたはサーバのグループの一部として、オプションでファームウェアとして、またはソフトウェアとして実施され得る。たとえば、フローエクスポータ１５およびデータアグリゲータ１７は、同じ物理マシン上で実行するコンピュータプログラムとして具体化され得る。いくつかの実施形態では、データアグリゲータ１７は、セキュリティサーバ１６上で実行し得る。別の代替実施形態では、フローエクスポータ１５は、図１のクライアント１０ａ〜１０ｅのようなクライアントシステム上で実行するソフトウェアを表し得る。さらに他の例示的な実施形態では、フローエクスポータ１５およびデータアグリゲータ１７のいずれかは、たとえば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）または特定用途向け集積回路（ＡＳＩＣ）を使用して、専用のハードウェアデバイスとして具体化され得る。
【００２１】
[0033]図２は、本発明のいくつかの実施形態による例示的なデータ交換を示す。データアグリゲータ１７は、監視されているクライアントシステム１０からイベントインジケータ２２を、および／または、フローエクスポータ１５からフローインジケータ２０を受信し得る。イベントインジケータ２２は、それぞれのクライアントシステムの動作中にイベントが発生したことを示すデータを備え得る。そのようなイベントは、セキュリティ脅威を示すものがある。他のイベントは、それ自体が悪意を示すものではない場合もあるが、それぞれのクライアントシステムまたは他の監視されているクライアントシステムで発生する他のイベントのコンテキストで得られた場合に攻撃を示す場合がある。例示的なイベントインジケータ２２は、特定の悪意のあるソフトウェア（マルウェア）が、それぞれのクライアントシステムで検出されたことを示し得る。イベントインジケータ２２を介して通信されるイベントの他の例には、特定のソフトウェアコンポーネント／アプリケーションの起動、ローカルストレージデバイス（たとえば、ハードドライブ）または特定のネットワークリソース上の特定の場所へのアクセスの試み、特定の動作のシーケンス（たとえば、短時間に多数のディスク書き込みが発生する）などを含む。フローインジケータ２０は、一連のメタデータ（たとえば、複数の標準フロー要素を備えるＮｅｔＦｌｏｗまたはＩＰＦＩＸフォーマットされたデータテーブル）として体系化されたネットワークトラフィックのダイジェストを含み得る。
【００２２】
[0034]いくつかの実施形態では、データアグリゲータ１７は、収集されたデータを前処理して、セキュリティサーバ１６によるさらなる分析を容易にし得る。前処理は、フローエクスポータ１５および／またはクライアントシステム１０ａ〜１０ｅから受信したデータに詳細（たとえば、追加のメタデータ）を追加し得る。そのような一例では、ネットワークフローデータは、追加情報（たとえば、地理的場所、特定のＩＰアドレスが訪問された頻度、送受信比など）でタグ付けされ得る。代替実施形態では、そのようなフロータグ付けは、フローエクスポータ１５によって実行され得る。フロー前処理／タグ付けの詳細および例を以下に示す。
【００２３】
[0035]セキュリティサーバ１６は、一般に、互いに物理的に近接していてもいなくてもよい、通信可能に結合された一連のコンピュータシステムを表す。サーバ１６は、クライアントから収集したデータを分析して、悪意のあるソフトウェアや侵入のようなコンピュータセキュリティ脅威を検出するように構成される。そのような分析が脅威を示すとき、サーバ１６のいくつかの実施形態は、セキュリティアラート２６を管理デバイス１３に送信する。アラート１３は、自然言語（たとえば、英語、オランダ語など）で定式化された少なくとも１つのアラートメッセージのエンコードを備え、それぞれのメッセージは、それぞれの脅威について、およびそれぞれの脅威の検出に至る推論についての情報を、人間のオペレータ（たとえば、コンピュータセキュリティ専門家、ネットワーク管理者、親など）へ提供するように定式化される。いくつかの実施形態では、アラートメッセージはさらに、分析中に決定された様々なパラメータまたは量の値（たとえば、時間、ファイルサイズ、ネットワークアドレス、地理的場所）、ならびに、さらなるアクションまたは調査のための提案（たとえば、ネットワークドメインＸを分離する、ホストＹでマルウェア対策ソフトウェアを実行するなど）を含み得る。
【００２４】
[0036]例示的なアラートメッセージは、以下のように読み取れる。「「アカウンティング」ネットワークサブドメインに属するエンティティによる悪意のあるアクティビティの可能性は７５％です。ネットワークアドレスＸにあるプリンタが、疑わしいＩＰアドレスに大量のデータ（サイズ＞１Ｇｂ）をアップロードしました（詳細はクリックして下さい）。転送は週末の営業時間外に行われました（詳細はクリックして下さい）。」アラートメッセージの一部はハイパーリンクされ得るため、クリックすると、より多くのテキストが表示される。たとえば、「ターゲットデバイスは、ＭＡＣアドレスがＥｐｓｏｎ製のデバイスを示しているため、プリンタとして識別されました」、「ターゲットＩＰアドレスは、グレーリストにあるアイテムと一致し、地理的にウクライナに配置されていたため、疑わしいと見なされました」。
【００２５】
[0037]別の例示的なアラートメッセージは、以下のように読み取れる。「侵入アラート！ヒューリスティック番号５、２５、および７１によって検出されました（詳細は数字をクリックして下さい）。」別のバージョンは、「侵入アラート！アクティビティの時間、宛先アドレス、およびペイロードサイズに従って検出されました（詳細はクリックして下さい）。」と読み取れる。上記の例では、下線が引かれたアイテムはハイパーリンクを備え得る。
【００２６】
[0038]図３は、本発明のいくつかの実施形態によるコンピューティングデバイスの例示的なハードウェア構成を示す。例示されるコンピューティングデバイスは、一般に、図１に示されるマシン（クライアント１０ａ〜１０ｅ、管理デバイス１３、フローエクスポータ１５、データアグリゲータ１７、およびセキュリティサーバ１６）のいずれかを表す。図３に示される構成は、コンピュータシステムに対応し、タブレットコンピュータ、スマートフォンなどの他のデバイスのアーキテクチャは、本明細書で示されている例示的なアーキテクチャとわずかに異なる場合がある。プロセッサ３２は、一連の信号および／またはデータを用いて計算および／または論理演算を実行するように構成された物理デバイス（たとえば、半導体基板上に形成されたマルチコア集積回路）を備える。そのような演算は、プロセッサ命令（たとえば、マシンコードまたは他のいくつかのプログラミング言語）としてエンコードされ得る。メモリユニット３４は、プロセッサ命令および／または演算を実行する過程でプロセッサ３２によってアクセスまたは生成されたデータを格納する揮発性コンピュータ可読媒体（たとえば、ＲＡＭ）を備え得る。入力デバイス３６は、とりわけ、ユーザが、データおよび／または命令をそれぞれのコンピューティングデバイスに導入することを可能にするそれぞれのハードウェアインターフェースおよび／またはアダプタを含む、コンピュータキーボード、マウス、およびマイクロフォンを含み得る。出力デバイス３８は、とりわけ、モニタおよびスピーカなどのディスプレイデバイス、ならびにグラフィックカードのようなハードウェアインターフェース／アダプタを含み得、それぞれのコンピューティングデバイスがユーザにデータを通信することを可能にする。いくつかの実施形態では、入力デバイス３６および出力デバイス３８は、タッチスクリーンデバイスの場合のように、共通のハードウェアの部分を共有し得る。ストレージデバイス４２は、ソフトウェア命令および／またはデータの不揮発性ストレージ、読み取り、および書き込みを可能にするコンピュータ可読媒体を含む。例示的なストレージデバイス４２は、磁気ディスクおよび光ディスクおよびフラッシュ（ソリッドステート）メモリデバイス、ならびにＣＤおよび／またはＤＶＤディスクおよびドライブのようなリムーバブル媒体を含む。ネットワークアダプタ４４は、それぞれのコンピューティングデバイスが電子通信ネットワークに接続すること、および／または他のデバイス／コンピュータシステムと通信することを可能にする。コントローラハブ４０は、複数のシステム、周辺機器、および／またはチップセットバス、および／またはプロセッサ３２とデバイス３４，３６，３８，４２，および４４との間の通信を可能にする他のすべての回路を表す。たとえば、コントローラハブ４０は、とりわけ、メモリコントローラ、入力／出力（Ｉ／Ｏ）コントローラ、および割込コントローラを含み得る。別の例では、コントローラハブ４０は、プロセッサ３２をメモリ３４に接続するノースブリッジ、および／または、プロセッサ３２をデバイス３６，３８，４２，および４４に接続するサウスブリッジを備え得る。
【００２７】
[0039]図４は、図１におけるクライアント１０ａ〜１０ｅのようなクライアントシステム上で実行する例示的なソフトウェアコンポーネントを示す。アプリケーション４８は、一般的に、とりわけ、ワードプロセッシング、スプレッドシート、コンピュータグラフィックス、ブラウザ、ゲーム、メディアプレーヤ、および電子通信アプリケーションのような任意のユーザアプリケーションを表す。セキュリティアプリケーション５０は、悪意のあるソフトウェア、アプリケーション制御、親制御などの検出のような、様々なコンピュータセキュリティタスクを実行し得る。アプリケーション５０は、アプリケーション４８および／またはＯＳ４６の実行中に様々なセキュリティ関連イベントの発生を検出するように構成されたイベントハーベスタ５２を備え得る。そのようなイベントの発生およびパラメータは、イベントインジケータ２２の形態でデータアグリゲータ１７に通信され得る。ネットワークフィルタ５３は、ファイアウォールおよび／またはトラフィック分析などの通信セキュリティサービスを提供し得る。いくつかの実施形態では、ネットワークフィルタ５３は、クライアント１０と他のエンティティとの間の電子通信から情報を抽出し得、フローインジケータなどのそのような情報を、データアグリゲータ１７にエクスポートし得る。
【００２８】
[0040]図５〜図６は、本発明のいくつかの実施形態による、データアグリゲータ１７の例示的な動作を詳述するステップの例示的なシーケンスを示す。アグリゲータ１７によって実行される特定の前処理動作は、クライアント１０ａ〜１０ｅおよび／またはフローエクスポータ１５から受信されたネットワークフローのタグ付けを備え得る。本明細書におけるタグ付けは、フローインジケータ２０および／またはイベントインジケータ２２（図２参照）のような着信データから追加情報（たとえば、メタデータ）を決定し、たとえば、ネットワークフローを表すテーブル行における追加の列として、それぞれの着信データの表現にそれぞれの追加情報を追加することを指す。タグ付けフロー要素は、標準フロー要素（すなわち、ＮｅｔＦｌｏｗまたはＩＰＦＩＸのような規格に従って定式化されたフロー要素）の任意の組合せに従って決定され得るか、または、オプションで、そのような標準フロー要素と、場合によっては他の外部および／または非フロー情報とに従って導出され得る。
【００２９】
[0041]タグ付け要素の非限定的な例は、地理的場所のルックアップテーブルの助けを借りて、ターゲットネットワークフローのＩＰアドレスから導出された地理的場所のタグ付け要素である。ルックアップテーブルは、ＩＰアドレスを地理的場所（たとえば、国、都市、郵便番号、地域など）と照合し、これはその後、それぞれのフローの新しいタグ付け要素になる。タグ付け要素の別の非限定的な例は、時間経過または持続時間であり、これは、オプションで、フローの「フロー開始時間」および「フロー終了時間」タイムスタンプに従って計算され得る。タグ付け要素の別の例は、特定のＩＰアドレスから受信した要求の頻度を示すインジケータである。さらに別の例示的なタグ付け要素は、特定のＩＰアドレス、または特定のＩＰアドレスに位置するデバイスの特定のポートとの間で送受信されるデータの量から導出されるトラフィック比である。さらに別の例示的なタグ付け要素は、ネットワークフローの送信元ＩＰアドレスおよび宛先ポートに従って導出されるポート／ＩＰアドレス要素である。
【００３０】
[0042]タグ付け要素の特定のカテゴリは、他のタグ付け要素に従って、およびオプションで他のデータに従って決定される複合タグ付け要素を備える。複合タグ付け要素は、複数のタグ付け要素の組合せを備え得る。複合タグ付け要素の非限定的な例は、時間経過要素および地理的場所のタグ付け要素に従って決定される。別の非限定的な例は、特定の地理的場所へのトラフィックの量（たとえば、頻度、バイト、またはそれらの組合せ）を判定することによって計算される。次に、複合タグ付け要素を使用して、他のより複雑なタグ付け要素を決定することができる。
【００３１】
[0043]図５は、本発明のいくつかの実施形態による、フロータグ付けを実行するために実行されるステップの例示的なシーケンスを示す。分析のためのネットワークフローを受信することに応じて、ステップ１０４は、タグ付けの順序を決定し得る。いくつかの実施形態では、タグ付けは、分析されているデータのタイプに応じて同時にまたは順次に実行され得る一連のタグ付けモジュールによって実行される。たとえば、各タグ付けモジュールは、別個のタグ付け要素を計算し得る。最適化された並列計算構成では、別個のタグ付けモジュールが、アグリゲータ１７の別個の物理プロセッサ上で実行し得る。ステップ１０４は、たとえば、分析されたネットワークフローの特性に従って、そのようなモジュールが実行する順序を決定し得る。一例では、タグ付けモジュールＡの実行は、タグ付けモジュールＢによって計算される特定のタグ付け要素の存在を必要とする。その後、例示的なスケジューリングは、モジュールＢがモジュールＡの前に実行することを保証し得る。スケジューリングにより、循環依存および／または無限ループを防ぐこともできる。代替実施形態では、データアグリゲータ１７は、分析されたネットワークフローの特殊性に従って様々なタグ付けモジュールの実行を自動的にトリガする有限状態マシンを備える。たとえば、各タグ付けモジュールは、特定の種類のフロー要素の可用性によってトリガされ得る。
【００３２】
[0044]ステップ１０６において、タグ付けモジュールは、スケジューリングに従って選択される。さらなるステップ１０８は、それぞれのタグ付けモジュールを実行する（詳細は図６参照）。次に、ステップ１１０は、実行する必要のあるいくつかのタグ付けモジュールがまだあるか否かを判定し、ある場合、データアグリゲータ１７は、ステップ１０６に戻って、実行する別のタグ付けモジュールを選択する。
【００３３】
[0045]図６は、典型的なタグ付けモジュールの実行を詳述するステップのシーケンスを示す。第１に、ステップ１２２は、それぞれのタグ付け要素を導出するために必要なすべてのデータが利用可能であるか否か、たとえば、すべての必須のフロー要素が既に指定されているか否かをチェックする。そうではない場合、それぞれのタグ付けモジュールの実行が終了し得る。いくつかの実施形態では、それぞれのモジュールは、必須のデータが利用可能になったときに後で再実行され得る。
【００３４】
[0046]必要なすべてのデータが利用可能である場合、それぞれのタグ付けモジュールは、それぞれのネットワークフローを表すテーブルの各行について、ループ内のステップのシーケンスを実行し得る。各行について、ステップ１２６は、一連のフロー要素を読み取れる一方、ステップ１２８は、それぞれのフロー要素に従って、およびオプションで他のデータに従って、タグ付け要素を決定し得る。タグ付け要素を受信するために新しい列を作成しなければならない場合、それぞれの列はステップ１３２で作成される。さらなるステップ１３４は、実際に、タグ付け要素を、ネットワークフローを表すテーブルに書き込む。ステップ１３４は、既存のタグ付け要素を上書きすることを備え得る。
【００３５】
[0047]図７−Ａ〜図７−Ｂは、本発明のいくつかの実施形態による、例示的なインクリメンタルフロータグ付け処理を示す。フローインジケータ２０は、複数のフローを備え、各フローは、たとえば、送信元および宛先のＩＰアドレス、パケットサイズなどを表す複数の列／標準要素を有するテーブル行として表される。フローインジケータ２０は、フローエクスポータ１５から受信され得る（図２および上記の関連する説明を参照）。例示される例では、第１のタグ付けモジュールが、各フローの「宛先ＩＰアドレス」要素に従って地理的場所を決定する。新しく計算されたタグ付け要素が、新しい列に書き込まれる。第２のモジュールは「宛先ＩＰアドレス」要素／列を再度使用するが、ＩＰアドレスが訪問された頻度の追跡を保持する内部データベースも使用する。そして、内部データベースにおける値をインクリメントし、その値をデータベースに格納して、ここで「頻度」とラベル付けされた新しい列にコピーする。第３のタグ付けモジュールは、「送信バイト数」列と「受信バイト数」列とを使用して、たとえば送信／受信などのトラフィック比を決定し、新しく計算された値を、「トラフィック比」とラベル付けされた新しい列に書き込む。第４のタグ付けモジュールは、各フローの「送信元ＩＰアドレス」および「宛先ポート」の標準要素と、内部データベースとを使用して、それぞれの値のタプルが、その送信元ＩＰアドレスに記録された以前のアクティビティからの異常値を表す範囲を決定する。その新しいタグ付け要素は、「異常測定値１」と見なされる新しい列に書き込まれる。
【００３６】
[0048]複合タグ付けの例では、第５のタグ付けモジュール（図７−Ｂ）は、第３のタグ付けモジュールによって以前に決定された「宛先ポート」列および「トラフィック比」列を使用して、第４のタグ付けモジュールによって決定された列「異常測定値１」に既に存在する値を変更する。その結果は、既存の列「異常測定値１」、またはオプションで、ここで「異常測定値２」とラベル付けされた新しい列で更新される。
【００３７】
[0049]図８は、本発明のいくつかの実施形態による、セキュリティサーバ１６の例示的なコンポーネントおよび動作を示す。コンポーネントは、アラートマネージャ６６に接続されたフォレンジックアナライザ６４と、フォレンジックアナライザ６４および／またはアラートマネージャ６６に接続されたシナリオディスパッチャ６２とを備え得る。当業者は、ディスパッチャ６２、アナライザ６４、およびアラートマネージャ６６が、別個のエンティティ（たとえば、場合によっては別個の物理プロセッサ上で実行する別個の処理）またはサーバ１６上で実行する単一のソフトウェアエンティティの別個のコンポーネント（たとえば、ライブラリ）であり得ることを理解する。同様に、本明細書で説明される「シグナリング」は、別個の実行エンティティ／マシン間のデータの実際の送信、または単一の実行エンティティの別個のモジュール間の値の受け渡しを表し得ることを理解されたい。代替実施形態では、いくつかのコンポーネントは、ハードウェアおよび／またはファームウェアで実施され得る。
【００３８】
[0050]属性（ｐｒｅｄｉｃａｔｅ）という用語は、本明細書では、その変数の値に応じて、可変である真の度合を有するステートメントを示すために使用される。属性の評価は、それぞれの属性の真の値を決定することを備える。例示的な属性には、とりわけ、「クライアントＸが攻撃を受けています」、「クライアントＸはプリンタです」、および「アップロードされたデータのサイズが１Ｇｂを超えています」を含む。一部の属性は厳密にブール値（真／偽）であるが、他の属性の真の値は数値であり得、それぞれの属性が真である可能性を示す（たとえば、クライアントＸが攻撃を受けている確率ｐがあり、ｐは５０％、６５％、９０％などであり得る）。いくつかの実施形態では、以下により詳細に示されるように、いくつかの属性値は、アラートを選択的にトリガする。たとえば、クライアントＸが攻撃を受けていると判定すると、アラートをトリガする場合があるが、クライアントＸがプリンタであると判定すると、トリガされない場合がある。別の例では、それぞれの属性が、計算された真の値を有する可能性が、事前決定されたしきい値を超えると（たとえば、攻撃の可能性＞７５％）、アラートがトリガされる。
【００３９】
[0051]シナリオという用語は、本明細書では、属性を評価するための一連の規則、プロトコル、またはアルゴリズムを示すために使用される。１つの例示的なシナリオは、入ってくる一連のフローおよび／またはイベントデータによって満たされるとき、それぞれの属性が真であることを示す一連の条件を備える。シナリオは、ＡＮＤ、ＯＲ、および／またはＮＯＴで接続された一連の属性を備える任意の論理命題、たとえば（ｐ∧ｑ）∨（ｒ∧ｓ∧¬ｔ）→ｕという関係を含めることができ、ここで、ｐ，ｑ，ｒ，ｓ，ｔは前提であり、ｕは結論である。そのような一例では、ｕはそれぞれのシナリオ（たとえば、「クライアントＸは攻撃を受けている」）に関連付けられた主な属性である。それぞれのシナリオの実行には、他の複数のサブ属性ｐ，ｑ，．．．ｔの評価を備える。属性ｐは「クライアントＡは、プリンタです」と読み取れ、属性ｑは「クライアントＸは、疑わしいＩＰアドレスにデータをアップロードしました」と読み取れ、属性ｔは「営業時間中にアクティビティが発生しました」と読み取れる。属性ｑを評価するには、いくつかのサブ属性を評価する必要があり得る（たとえば、それぞれのアドレスがブラックリストまたはグレーリストにあるか否かをチェックし、それぞれのＩＰアドレスが特定の地域または国に地理的に配置されているか否かをチェックする）。他の例示的なシナリオは、マルウェア検出ヒューリスティックおよび決定木を含む。典型的に、属性とシナリオとの間には一対多の関係があり、すなわち、単一の属性を評価する多数の手法が存在し得る。
【００４０】
[0052]いくつかの実施形態は、コンピュータセキュリティ脅威を検出するために複数の（たとえば、数百の）シナリオを使用する。そのようないくつかのシナリオは、並列的に実行され得る。シナリオは、ソフトウェアルーチン、すなわち、それぞれのシナリオに固有のコンピュータ命令のシーケンスとして実施され得る。シナリオは、実行可能コード、ＸＭＬ、バイトコード、Ｐｒｏｌｏｇなどのコンピュータ可読形式でシナリオリポジトリ１９に格納され得る。その後、受信したフローおよび／またはイベントインジケータの機能に従って、シナリオは選択的に検索、アクセス、または呼び出され得る。シナリオの選択的トリガを可能にするために、シナリオリポジトリのいくつかの実施形態は、属性と、それぞれの属性を評価するために使用されるシナリオとの間の関連付けを示すインジケータをさらに備える。
【００４１】
[0053]いくつかの実施形態では、シナリオディスパッチャ６２は、収集されたデータの属性および／または様々な機能に従って、一連のシナリオを選択し、その選択を、フォレンジックアナライザ６４および／またはアラートマネージャ６６に通信するように構成される。一部のシナリオの実行は、特定のトリガイベントおよび／または収集されたフローの特定の要素のトリガ値によってトリガされ得る。そのような一例では、シナリオディスパッチャ６２および／またはフォレンジックアナライザ６４は、入力されたフォレンジックインジケータの特定の値によってトリガされる有限状態マシンを備え得る。
【００４２】
[0054]フォレンジックアナライザ６４は、一連のシナリオに従って、クライアントシステム１０ａ〜１０ｅおよび／またはフローエクスポータ１５から収集されたデータを分析するように構成される。分析されたデータは、データアグリゲータ１７および／またはフローエクスポータ１５による前処理の結果を含み得る。いくつかの実施形態では、そのような前処理は、フォレンジックアナライザ６４による分析を容易にするために、タグ付け、すなわち、クライアントから受信したデータに追加のメタデータを追加することを含み得る。
【００４３】
[0055]図９は、本発明のいくつかの実施形態によるフォレンジックアナライザ６４の動作を例示する。評価を必要とする各属性について、アナライザ６４は、少なくとも１つのシナリオを選択的に検索し、それぞれのシナリオを実行して、それぞれの属性を評価し得る。属性評価はさらに、データリポジトリ１８からの情報の検索／アクセスを備え得る。そのような情報は、デバイス構成設定、デバイス識別データ（たとえば、ＭＡＣアドレスを製造業者またはデバイスタイプに関連付けるテーブルなど）、および／または履歴データ（たとえば、イベントまたはネットワークログなど）を備え得る。属性の評価が、他のサブ属性の評価を備え得、そのような各サブ属性が、別個のシナリオに従って評価され得ることを考慮すると、いくつかの実施形態は、すべてのそれぞれの属性およびサブ属性が評価されるまで、ステップ２０２〜２１２を再帰的に実行する。
【００４４】
[0056]いくつかの実施形態では、ステップ２０９は、属性評価が成功したか否かをチェックし得る。しばしば、必須のデータが不足しているために、一部の属性を評価できない場合がある。いくつかのケースでは、それぞれの属性を評価する別の試みが、後で行われ得る。それぞれの属性が成功裡に評価されたとき、ステップ２１０において、フォレンジックアナライザ６４は、現在の属性を評価した結果をアラートマネージャ６６に送信する。それに応じて、マネージャ６６は、アナライザ６４から受信したそのような結果に従って、アラートのテキスト部分を定式化し得る（詳細は以下を参照）。属性評価が完了すると、ステップ２１４は、計算された属性値が、アラート条件を満たす（たとえば、攻撃の確率＞７５％）か否かを検証し得る。満たす場合、アナライザ６４は、送信のためにセキュリティアラート２６を準備するようにアラートマネージャ６６にシグナルし得る。
【００４５】
[0057]いくつかの実施形態では、アラートマネージャ６６は、セキュリティアラート２６を定式化し、管理デバイス１３に配信する（図２参照）。アラートは、自然言語で定式化されたテキスト部分を備える。それぞれのテキスト部分は、フォレンジックアナライザ６４によるシナリオ実行中に評価される様々な値（たとえば、属性値）を組み込み得る。アラートマネージャ６６は、一連の事前決定されたアラートテンプレートに従って、アラートメッセージを定式化し得る。いくつかの実施形態では、各アラートテンプレートは、シナリオに関連付けられており、フォレンジックアナライザ６４によって実行されるシナリオに従って、それぞれのテンプレートの選択的な検索を可能にする。例示的なアラートテンプレートは、自然言語で定式化されたテキストと、それぞれのシナリオの一部として評価された属性の値の一連のプレースホルダとを備え得る。いくつかの例示的なテンプレートが以下に示される。
【００４６】
・Ｔ１：侵入の可能性は［％ｖａｌ＿１］です。ターゲットＩＰアドレスは［％ｖａｌ＿２］です。デバイスタイプ、アップロードされたデータの量、および宛先ＩＰに基づく評価は、以下の通りです。
【００４７】
・Ｔ２：クライアントデバイスは［％ｖａｌ＿３］です。
【００４８】
・Ｔ３：［％ｖａｌ＿４］で、クライアントは、約［％ｖａｌ＿５］のデータを、疑わしいＩＰにアップロードしました。
【００４９】
・Ｔ４：クライアントデバイスは、ＭＡＣアドレスおよび公開された通信インターフェースに従うプリンタです。
【００５０】
・Ｔ５：ＩＰアドレスは［％ｖａｌ＿６］に地理的に配置されているため、疑わしいと見なされました。
【００５１】
・Ｔ６：ＩＰアドレスが、ブラックリストに登録されたアイテムと一致しました。
ここで、［％ｖａｌ＿ｉ］は、ＩＰアドレス、日付、ファイルサイズなどを含むアイテムのプレースホルダを示す。アラートテンプレートは、専用のテンプレートリポジトリ２９に格納され得るか、あるいはシナリオリポジトリ１９に含まれ得る。一例では、アラートテンプレートは、たとえば、それぞれのシナリオのＸＭＬ、バイトコード、またはＰｒｏｌｏｇエンコーディングの一部として、関連するシナリオとともにコード化され得る。
【００５２】
[0058]図１０は、本発明のいくつかの実施形態による、アラートマネージャ６６によって実行されるステップの例示的なシーケンスを示す。例示されるアラートマネージャは、シナリオディスパッチャ６２および／またはフォレンジックアナライザ６４から受信したシグナルをリッスンする。その後、アラートメッセージが、個々のシナリオ固有のテンプレートと、フォレンジックアナライザ６４から受信した評価結果とに基づいて段階的に構築される。受信したシグナルが、シナリオインジケータ６３（図８）を備える場合、アラートマネージャ６６は、テンプレートリポジトリ２９からそれぞれのシナリオに関連付けられたアラートテンプレートを選択的に検索し得る。様々なシナリオ属性が評価されるとき、ステップ２３２は、計算された値を含めるように現在のアラートメッセージを編集し得る。いくつかの実施形態では、ステップ２３２は、評価された属性値でそれぞれのテンプレートを単純にインスタンス化し得る（上記の例では、プレースホルダ［％ｖａｌ＿３］を「プリンタ」に置き換え、プレースホルダ［％ｖａｌ＿４］をタイムスタンプに置き換える）。
【００５３】
[0059]属性を評価することが、一連のサブ属性を評価することを備える場合、アラートマネージャ６４は、それぞれのサブ属性を評価するためのシナリオに従って、テンプレートを再帰的に検索し得る。そのような状況では、ステップ２３２は、メインシナリオ／属性のアラートテンプレートに従って、さらにそれぞれのサブ属性に関連付けられた個々のテンプレートに従って、現在のアラートメッセージを再定式化することを備え得る。いくつかの実施形態では、そのような再定式化は、メインアラートテンプレートを、それぞれのサブ属性のテンプレートと連結することを単に備え得る。上記に例示される例示的なテンプレートを使用すると、連結により、「Ｔ１Ｔ２Ｔ３」と読み取れるアラートテンプレートとなり得る。代替実施形態では、連結は、たとえば、ユーザがそれぞれのセキュリティ状況に関連する様々なレベルの情報にアクセスできるようにする階層テンプレートを生成するために、より洗練された処理に置き換えられ得る。テンプレートのそのような例示的な再定式化は、ハイパーリンク、図解、アイテム化されたリストなどの導入を含む。
【００５４】
[0060]アラートマネージャ２３４が、ユーザ／管理者にアラートを発するための一連の条件の充足を示すアラートインジケータを、アナライザ６４から受信すると、アラートマネージャ６６は、ステップ２２６〜２３２で構築されたテキストメッセージを含むセキュリティアラート２６を集め、管理デバイス１３に送信するためのアラート２６を出力し得る。
【００５５】
[0061]上記で説明される例示的なシステムおよび方法は、高性能コンピューティングアプリケーションおよび高速ネットワークにおいてでさえ、コンピュータセキュリティ脅威の効率的な検出および通信を可能にする。いくつかの実施形態は、分散エージェントを使用して、クライアントからセキュリティ関連データを収集する。そのようなデータは、たとえば、ネットワークトラフィックダイジェスト、および／または、保護されたクライアントデバイス上でのソフトウェアの実行中の特定のイベントの発生に関する情報を含み得る。収集された情報は、その後、収集されたデータが、悪意のあるソフトウェアおよび／またはネットワークへの侵入のように、コンピュータセキュリティ脅威を示しているか否かを判定するように構成されたフォレンジックアナライザに送られる前に、一元化および前処理される。前処理は、たとえば、追加のセキュリティ指標情報（たとえば、それぞれのフローの様々な態様および／または非フローデータに従って導出されたメタデータ）でネットワークフローデータにタグ付けすることを含み得る。そのような前処理は、フォレンジックアナライザから、検出に関連付けられた計算負荷の一部を軽減することにより、検出を大幅に容易にし得る。セキュリティシステムのコンポーネント間でのそのような計算コストの分散は、データの量が従来の集中型コンピュータセキュリティシステムを圧倒する可能性がある高速で高性能なコンピューティングアプリケーションにおいて特に重要になる可能性がある。
【００５６】
[0062]本発明のいくつかの実施形態は、現代の電子通信ネットワークを循環するデータの速度および莫大な量が、コンピュータセキュリティ担当者を容易に圧倒する可能性があるという観察に依存している。したがって、セキュリティ関連の情報を分析および視覚化する、堅牢でスケーラブルな方法を開発する強いインセンティブがある。いくつかの実施形態は、セキュリティイベントの検出に応じて、関連する詳細の直感的な提示を可能にし、その結果、平均的な熟練度のコンピュータオペレータでさえ、何が起こったか、および各状況にどのように対応するかを理解することができる。
【００５７】
[0063]いくつかの実施形態は、その検出に至った推論の説明を含む、セキュリティイベントの様々な態様を詳述する自然言語（たとえば、英語、中国語）で定式化されたアラートメッセージを表示する。そのようなアラートメッセージは、セキュリティイベントの理解を大幅に容易にし、人間のオペレータが、マシンによって提供される判断（ｖｅｒｄｉｃｔ）の正確さを知力で検証できるようになり、さらに、技術者以外の担当者（たとえば、マネージャ、親など）にそれぞれのイベントを報告できるようになる。そのようなメッセージの中には、法廷でフォレンジック的証拠として使用されるものもある。
【００５８】
[0064]いくつかの実施形態は、マシンが検出アルゴリズムをトラバースするときにメッセージフラグメントを集めることによって、アラートメッセージを漸進的かつ動的に構築する。そのような一例では、条件が評価されるか、または特定の変数が計算されるたびに、メッセージフラグメントが追加され得る。したがって、アラートメッセージは、「Ｘが発生しました」から、「ＹによりＸが発生しました」へ、さらに「ＹおよびＺによりＸが発生し、Ｚ１およびＺ２に基づいてＺが判定されました」までに進展し得る。
【００５９】
[0065]そのような動的メッセージ構築の１つの利点は、すべての検出シナリオ、起こり得る結果、およびパラメータの可能な組合せについての事前の知識を必要としないことである。アラートメッセージを各セキュリティ状況（たとえば、フォレンジック分析の各結果）に合わせて調整する代わりに、いくつかの実施形態は、アラートメッセージテンプレートを、各検出シナリオに、および／または、セキュリティ関連量を評価する（たとえば、デバイスタイプを判定する、通信相手の評判を判定するなどの）ための各ルーチンに添付する。その後、完全なアラートメッセージは、それぞれのイベントが実際にどのように検出されたかに従って選択された個々のテンプレートによって生成されたメッセージフラグメントから、動的に構築される。各リーフが条件の一意の組合せに対応する決定木の例を挙げると、いくつかの実施形態は、事前決定されたアラートメッセージを個々のリーフに添付する代わりに、メッセージフラグメントを、決定木の中間分岐およびサブ分岐に添付する。次に、実際のアラートメッセージは、決定木をトラバースする特定の方式に従って構築される。
【００６０】
[0066]そのような一例が、図１１に例示される。検出ルーチンは、決定木を備え、ノードは様々な属性を表し、分岐は、対応する属性の個別の値を表す。たとえば、属性Ｐ１は、「クライアントはプリンタです」と読み取れ、属性Ｐ２は、「クライアントが大きなファイルをアップロードしました」などと読み取れる。例示される例では、決定木を通る２つの異なるパスが、同じ判断Ｖ、たとえば、「クライアントは攻撃を受けています」に到達する。しかしながら、いくつかの実施形態では、一方の検出パスを通ることによって生成されるアラートメッセージは、他方の検出パスによって生成されるアラートメッセージとは異なるであろう。例示される例では、アラートテンプレートＴ１，．．．，Ｔ４は、それぞれ属性Ｐ１，．．．，Ｐ４に関連付けられる。そのような各テンプレートは、それぞれメッセージフラグメントＭ１，．．．，Ｍ４を生成し得る。メッセージフラグメントが連結されて、完全なアラートメッセージを形成する例示的な実施形態では、左側のパスはアラートメッセージＭ１＋Ｍ４を生成し、右側のパスはアラートメッセージＭ１＋Ｍ２＋Ｍ３を生成するが、判断は同じである。対照的に、事前決定されたアラートメッセージが、判断Ｖに関連付けられているシステムは、左側と右側との両方の検出パスに対して同じアラートメッセージを生成する。
【００６１】
[0067]おそらく並列コンピューティング構成において、セキュリティ関連データが高速で生成および処理される場合、特定の属性を評価するために必要ないくつかの情報が、特定のシナリオが呼び出された時点で利用できない状況が発生する可能性がある。しかしながら、それぞれの情報は、後で入手できる場合がある。そのため、クライアントマシンおよびネットワークから収集されたデータが、同じ検出シナリオをトリガした場合でさえも、これらシナリオの一部は、実際には毎回実行されない可能性があるため、実際に実行されるセキュリティ分析は、時として異なる場合がある。別の言い方をすれば、現代のコンピュータおよびネットワークによって生成される莫大な量の情報を処理するためにしばしば必要とされる動きの速い非同期計算構成では、属性評価のラインまたは推論／正確なシーケンスは事前に知られていない。本発明のいくつかの実施形態のように、動的に生成されるアラートシステムは、オペレータが、毎回どの推論のラインが使用されたか、および、なぜ２つの同様の状況が、矛盾するセキュリティ判断をしばしば生成するのかを、正確に理解することを可能にし得る。
【００６２】
[0068]さらに、絶えず変化するコンピュータセキュリティの世界では、セキュリティ脅威を検出する複数の手法、および様々なセキュリティパラメータを計算する複数の手法があり得る。新しい分析ツール、アルゴリズム、および攻撃シナリオは常に開発されている。人工知能の最近の進歩により、一連の利用可能なツールからマシンを柔軟に選択できるようにすることへの関心が高まっている。本発明のいくつかの実施形態によって提供されるアラートメッセージの動的生成は、そのような柔軟な意思決定に対応することができる。
【００６３】
[0069]図１２に例示されるそのような一例では、検出ルーチンは、３つの別個の属性Ｐ１，Ｐ２，およびＰ３を評価することを備える。しかしながら、各属性は、個別のシナリオＳ１，．．．，Ｓ８によって例示される複数の独立した手法で評価され得る。そのようなシナリオの例は、たとえば、入力データの個別の態様の分析など、個別の分析ヒューリスティックを含む。２つの異なるデータセット（フォレンジックインジケータ２４ａ〜２４ｂ）は、関連する属性を評価するための異なるシナリオをトリガし得る。たとえば、フォレンジックインジケータ２４ａはシナリオＳ１，Ｓ４およびＳ７をトリガし得る一方、インジケータ２４ｂは、シナリオＳ１，Ｓ５，およびＳ６をトリガし得る。例示される実施形態では、各シナリオは、関連するアラートテンプレートを備える。それぞれのテンプレートは、一連のメッセージフラグメントＭ１，Ｍ４，Ｍ７およびＭ１，Ｍ５，Ｍ６をそれぞれ生成し、これらは、アラートマネージャ６６によって、例示されるアラートメッセージに集められる。この例は、どちらの場合も、判断が同じであっても、アラートメッセージが異なる可能性があることを示す。個別のアラートメッセージ（Ｍ１＋Ｍ４＋Ｍ７と、Ｍ１＋Ｍ５＋Ｍ６）は、判断に到達した個別の方式を示す。シナリオの左右のシーケンスが矛盾する判断をもたらす状況では、アラートメッセージは、そのような不一致の理由に関してアナリストに実質的な洞察を提供し得る。
【００６４】
[0070]図１２を使用して例示され得る別の例示的な実施形態は、各属性を評価するすべての代替方式を試み得る。たとえば、フォレンジックアナライザ６４は、３つのシナリオＳ１，Ｓ２，およびＳ３すべてを使用して属性Ｐ１を評価し、シナリオＳ４とＳ５との両方を使用して属性Ｐ２を評価し得る。シナリオは、たとえば、別個のプロセッサまたはマシン上で並列的に実行し得る。各シナリオは、たとえば、検出率および／または誤検出率などのパフォーマンス測定に反映される固有の信頼性を有し得る。したがって、そのようなシステムは、複数の判断を生成することができ、各判断は、シナリオの別個の組合せに対応し、各組合せは、それぞれのアラートメッセージで説明され得る独自の信頼性の度合を有する。したがって、各判断に使用されるシナリオの特定の組合せを示す複合アラートメッセージは、アナリストが、競合する判断、そして最終的にはどの判断を信頼するのかを理解するのに役立ち得る。
【００６５】
[0071]図１１および図１２に例示される例に関して、判断Ｖは、たとえば、「クライアントは攻撃を受けています」のような主なセキュリティ属性、または、「クライアントはプリンタです」、「ＩＰアドレスは疑わしいです」、「ノードＸに異常なネットワークトラフィックがあります」、「ノードＸにおけるトラフィックが予想量を超えています」などのセキュリティシナリオの一部として評価される任意のサブ属性などの、様々なタイプの属性を表し得る。
【００６６】
[0072]セキュリティアラートを動的に構築することの追加の利点は、セキュリティシステムの様々なコンポーネントを分離することを可能にすることである。特に、互いに独立して検出シナリオを開発できる。言い換えると、残りの検出コンポーネント（たとえば、アラートマネージャ６６）を変更する必要なく、新しい検出シナリオを開発して既存のツールセットに追加することができる。新しいシナリオごとに、アラートメッセージフラグメントを生成するための独自のテンプレートが提供され得る。セキュリティシステムのこの分離されたアーキテクチャは、開発、テスト、および展開を大幅に促進し、市場投入までの時間とメンテナンスのコストを全体的に低減し得る。
【００６７】
[0073]上記の実施形態は、本発明の範囲から逸脱することなく、多くの手法で変更され得ることが当業者に明らかであろう。したがって、本発明の範囲は、以下の特許請求の範囲およびそれらの法的同等物によって判定されるべきである。
【図１】
2021530807.tif 000003
【図２】
2021530807.tif 000004
【図３】
2021530807.tif 000005
【図４】
2021530807.tif 000006
【図５】
2021530807.tif 000007
【図６】
2021530807.tif 000008
【図７−Ａ】
2021530807.tif 000009
【図７−Ｂ】
2021530807.tif 000010
【図８】
2021530807.tif 000011
【図９】
2021530807.tif 000012
【図１０】
2021530807.tif 000013
【図１１】
2021530807.tif 000014
【図１２】
2021530807.tif 000015
【国際調査報告】
2021530807.tif 000016
2021530807.tif 000017
2021530807.tif 000018