JP2018524756A - 複数のソフトウェアエンティティにわたって悪意あるビヘイビアを追跡するためのシステムおよび方法 - Google Patents

複数のソフトウェアエンティティにわたって悪意あるビヘイビアを追跡するためのシステムおよび方法 Download PDF

Info

Publication number
JP2018524756A
JP2018524756A JP2018522851A JP2018522851A JP2018524756A JP 2018524756 A JP2018524756 A JP 2018524756A JP 2018522851 A JP2018522851 A JP 2018522851A JP 2018522851 A JP2018522851 A JP 2018522851A JP 2018524756 A JP2018524756 A JP 2018524756A
Authority
JP
Japan
Prior art keywords
entity
group
host system
child
category
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2018522851A
Other languages
English (en)
Other versions
JP6829718B2 (ja
Inventor
ハジマサン,ゲオルゲ−フローリン
ポルタセ,ラドゥ−マリアン
Original Assignee
ビットディフェンダー アイピーアール マネジメント リミテッド
ビットディフェンダー アイピーアール マネジメント リミテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ビットディフェンダー アイピーアール マネジメント リミテッド, ビットディフェンダー アイピーアール マネジメント リミテッド filed Critical ビットディフェンダー アイピーアール マネジメント リミテッド
Publication of JP2018524756A publication Critical patent/JP2018524756A/ja
Application granted granted Critical
Publication of JP6829718B2 publication Critical patent/JP6829718B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

説明されるシステムおよび方法は、コンピュータシステムを悪意あるソフトウェアから保護することを可能にする。いくつかの実施形態において、セキュリティアプリケーションは、監視される実行可能なエンティティ(例えば、プロセス)のセットを複数のグループに分割し、グループのすべてのメンバは、親子関係またはコードインジェクションによって関係付けられる。セキュリティアプリケーションは、スコアのセットをそれぞれのエンティティグループとさらに関連付けてよい。このようなグループスコアは、個々のグループのメンバが一定のアクションを実施するときに増やされてよい。このように、個別のメンバによって実施されるアクションが、それ自体はマルウェアを示さないにも関わらず、グループスコアは、集合的な悪意あるビヘイビアを捕え、マルウェア検出をトリガすることができる。いくつかの実施形態において、グループのメンバシップルールは、エンティティが、一定のOSのプロセス、ブラウザ、およびファイルマネージャを含む、エンティティの選択されたサブセットの一部であるかどうかに従って変化する。エンティティが悪意あるものと判定されるとき、アンチマルウェア措置は、関連したエンティティの全グループに対して行われてよい。

Description

[0001]本発明は、コンピュータシステムを悪意あるソフトウェアから保護するためのシステムおよび方法に関する。
[0002]マルウェアとしても知られる悪意あるソフトウェアは、世界中の非常に多くのコンピュータシステムに影響を及ぼす。コンピュータウイルス、ワーム、ルートキット、未承諾のアドウェア、ランサムウェア、およびスパイウェアなどの多くの形式で、マルウェアは、何百万ものコンピュータユーザに深刻なリスクをもたらし、コンピュータユーザを、中でも、データおよび機密情報の喪失、個人情報の盗難、ならびに生産性の喪失に対して脆弱にする。マルウェアはさらに、ユーザによっては、わいせつである、過度に攻撃的である、迷惑である、または他の理由で不快であるとみなされる素材を表示することがある。
[0003]セキュリティソフトウェアは、ユーザのコンピュータシステムに感染するマルウェアを検出するため、および追加として、このようなマルウェアを除去するか、またはこのようなマルウェアの実行を防ぐために使用されることがある。いくつかのマルウェア検出技法が当技術分野で知られる。ある技法は、マルウェアエージェントのコード片を、マルウェアを示す署名のライブラリにマッチさせることに依存する。他の従来の方法は、マルウェアエージェントによって実施されるアクションのセットなどの、マルウェアを示すビヘイビア(behavior;振る舞い、挙動、行動)を検出する。
[0004]悪意あるソフトウェアは、様々な方策に依存して検出を逃れる。1つのこのような方策は、難読化技法、例えば、悪意あるコードを暗号化すること、またはそれぞれの感染されたコンピュータに対してわずかに異なるコードのバージョンを使用すること(通常、ポリモルフィズムとして知られる特性)を伴う。別の例示的な検出回避方法は、複数のエージェント間に悪意ある活動を分割し、それぞれのエージェントは、他のエージェントによって実施されるアクションから孤立して行われる場合にはマルウェアを示すとみなされることがない別々のセットのアクションを実施する。
[0005]このような先進的なマルウェアを検出するシステムおよび方法を開発することに強い関心がある。
[0006]1つの態様によれば、ホストシステムは、少なくとも1つのハードウェアプロセッサおよびメモリユニットを備え、少なくとも1つのハードウェアプロセッサは、エンティティマネージャおよびヒューリスティック(heuristic;発見法)エンジンを実行するように構成される。エンティティマネージャは、監視される実行可能なエンティティの集まりを複数のエンティティグループに編成するように構成され、集まりを編成することは、集まりの第1のエンティティが子エンティティをスポーンした(spawned;作った、産んだ)ことを検出するのに応答して、第1のエンティティがエンティティのグループ作成者のカテゴリに属するかどうかを判定することを含む。集まりを編成することは、第1のエンティティがグループ作成者のカテゴリに属するかどうかを判定するのに応答して、第1のエンティティがグループ作成者のカテゴリに属するとき、新しいエンティティグループを複数のエンティティグループに追加すること、および子エンティティを新しいエンティティグループに割り当てることをさらに含む。集まりを編成することは、第1のエンティティがグループ作成者のカテゴリに属するかどうかを判定するのに応答して、第1のエンティティがグループ作成者のカテゴリに属さないとき、第1のエンティティが第1のエンティティグループのメンバになるように、第1のエンティティグループを複数のエンティティグループから選択すること、および子エンティティを第1のエンティティグループに割り当てることをさらに含む。ヒューリスティックエンジンは、子エンティティによって実施される第1のアクションに応答して、子エンティティが第2のエンティティグループのメンバになるように、第2のエンティティグループを複数のエンティティグループから選択し、第2のエンティティグループを選択するのに応答して、第1のアクションがマルウェア攻撃を示すかどうかを、第2のエンティティグループの別のメンバによって実施される第2のアクションに従って判定するように構成される。
[0007]別の態様によれば、方法は、ホストシステムの少なくとも1つのハードウェアプロセッサを用いて、監視される実行可能なエンティティの集まりを複数のエンティティグループに編成することを含む。集まりを編成することは、集まりの第1のエンティティが子エンティティをスポーンしたことを検出するのに応答して、第1のエンティティがエンティティのグループ作成者のカテゴリに属するかどうかを判定することを含む。集まりを編成することは、第1のエンティティがグループ作成者のカテゴリに属するかどうかを判定するのに応答して、第1のエンティティがグループ作成者のカテゴリに属するとき、新しいエンティティグループを複数のエンティティグループに追加すること、および子エンティティを新しいエンティティグループに割り当てることをさらに含む。集まりを編成することは、第1のエンティティがグループ作成者のカテゴリに属するかどうかを判定するのに応答して、第1のエンティティがグループ作成者のカテゴリに属さないとき、第1のエンティティが第1のエンティティグループのメンバになるように、第1のエンティティグループを複数のエンティティグループから選択すること、および子エンティティを第1のエンティティグループに割り当てることをさらに含む。方法は、子エンティティによって実施される第1のアクションに応答して、子エンティティが第2のエンティティグループのメンバになるように、ホストシステムの少なくとも1つのハードウェアプロセッサを用いて、第2のエンティティグループを複数のエンティティグループから選択することをさらに含む。方法は、第2のエンティティグループを選択するのに応答して、ホストシステムの少なくとも1つのハードウェアプロセッサを用いて、第1のアクションがマルウェア攻撃を示すかどうかを、第2のエンティティグループの別のメンバによって実施される第2のアクションに従って判定することをさらに含む。
[0008]別の態様によれば、非一時的コンピュータ可読媒体は、ホストシステムの少なくとも1つのハードウェアプロセッサによって実行されるとき、ホストシステムに、エンティティマネージャおよびヒューリスティックエンジンを形成させる命令を格納する。エンティティマネージャは、監視される実行可能なエンティティの集まりを複数のエンティティグループに編成するように構成され、集まりを編成することは、集まりの第1のエンティティが子エンティティをスポーンしたことを検出するのに応答して、第1のエンティティがエンティティのグループ作成者のカテゴリに属するかどうかを判定することを含む。集まりを編成することは、第1のエンティティがグループ作成者のカテゴリに属するかどうかを判定するのに応答して、第1のエンティティがグループ作成者のカテゴリに属するとき、新しいエンティティグループを複数のエンティティグループに追加すること、および子エンティティを新しいエンティティグループに割り当てることをさらに含む。集まりを編成することは、第1のエンティティがグループ作成者のカテゴリに属するかどうかを判定するのに応答して、第1のエンティティがグループ作成者のカテゴリに属さないとき、第1のエンティティが、第1のエンティティグループのメンバになるように、第1のエンティティグループを複数のエンティティグループから選択すること、および子エンティティを第1のエンティティグループに割り当てることをさらに含む。ヒューリスティックエンジンは、子エンティティによって実施される第1のアクションに応答して、子エンティティが第2のエンティティグループのメンバになるように、第2のエンティティグループを複数のエンティティグループから選択し、第2のエンティティグループを選択するのに応答して、第1のアクションがマルウェア攻撃を示すかどうかを、第2のエンティティグループの別のメンバによって実施される第2のアクションに従って判定するように構成される。
[0009]別の態様によれば、ホストシステムは、少なくとも1つのハードウェアプロセッサおよびメモリユニットを備え、少なくとも1つのハードウェアプロセッサは、エンティティマネージャおよびヒューリスティックエンジンを実行するように構成される。エンティティマネージャは、エンティティ間の関係のセットに従って、監視される実行可能なエンティティの集まりを複数のエンティティグループに編成するように構成され、その結果、集まりのうち少なくとも1つのエンティティが、同時に複数のエンティティグループに属し、エンティティ間の関係のセットは、親子関係の関係およびコードインジェクション(injection;投入、注入)の関係からなる関係のグループから選択される。ヒューリスティックエンジンは、少なくとも1つのエンティティによって実施される第1のアクションに応答して、少なくとも1つのエンティティがエンティティグループのメンバになるように、エンティティグループを複数のエンティティグループから選択し、エンティティグループを選択するのに応答して、第1のアクションがマルウェア攻撃を示すかどうかを、エンティティグループの別のメンバによって実施される第2のアクションに従って判定するように構成される。
[0010]本発明の前述の態様および利点は、以下の詳細な説明を読み、図面を参照すると、よりよく理解されるようになろう。
[0011]本発明のいくつかの実施形態による、クライアントシステム上で実行するセキュリティアプリケーションを含むソフトウェアオブジェクトの例示的なセットを示す図である。 [0012]本発明のいくつかの実施形態による、クライアントコンピュータシステムの例示的なハードウェア構成を示す図である。 [0013]本発明のいくつかの実施形態による、セキュリティアプリケーションの例示的な構造を示す図である。 [0014]Windows(登録商標)環境におけるプロセスのセットの例示的な実行フローを示す図である。実線矢印は、セキュリティアプリケーションがない典型的なフローを指示する。破線矢印は、実行フローに対する変更を指示し、変更は、本発明のいくつかの実施形態に従って動作する複数のイベントインターセプタによって導入される。 [0015]図5−Aは、本発明のいくつかの実施形態による、悪意あるビヘイビアがないか監視される実行可能なエンティティを含む、エンティティグループのセットを示す図である。実線矢印はエンティティ作成を表し、破線矢印はコードインジェクションを表す。 [0016]図5−Bは、本発明のいくつかの実施形態による、エンティティグループの別のセットを示す図である。 [0017]本発明のいくつかの実施形態による、エンティティマネージャ(図3)によって実施される例示的な一連のステップを示す図である。 [0018]本発明のいくつかの実施形態による、逃避的なマルウェアによって実施される例示的な時系列のアクション、および例示的なビヘイビアの(behavioral)署名を示す図である。 [0019]図8−Aは、本発明のいくつかの実施形態による、別の例示的なビヘイビアの署名を示す図である。 [0020]図8−Bは、本発明のいくつかの実施形態による、さらに別の例示的なビヘイビアの署名を示す図である。 [0021]本発明のいくつかの実施形態による、ヒューリスティックエンジン(図3)によって実施される例示的な一連のステップを示す図である。 [0022]複数の例示的なエンティティ・スコアリング・オブジェクト(ESO)であって、それぞれのESOは、本発明のいくつかの実施形態による、個々の実行可能なエンティティに対して決定されることを示す図である。 [0023]複数の例示的なグループ・スコアリング・オブジェクト(GSO)であって、それぞれのGSOは、本発明のいくつかの実施形態による、実行可能なエンティティの個々のグループに対して決定されることを示す図である。 [0024]図11−Aは、本発明のいくつかの実施形態による、エンティティスコア値および関連付けられたエンティティスコア増加量の例示的なセットを示す図である。 [0025]図11−Bは、本発明のいくつかの実施形態による、グループスコア値および関連付けられたグループスコア増加量の例示的なセットを示す図である。 [0026]本発明のいくつかの実施形態による、スコアリングエンジン(図3)によって実施される例示的な一連のステップを示す図である。 [0027]本発明のいくつかの実施形態による、スコアリングエンジンによって実施される代替の一連のステップを示す図である。 [0028]本発明のいくつかの実施形態による、スコアリングエンジンによって実施されるさらに別の代替の一連のステップを示す図である。 [0029]本発明のいくつかの実施形態による、クリーンアップモジュール(図3)によって実施される例示的な一連のステップを示す図である。
[0030]以下の説明において、構造間のすべての列挙された接続は、直接の動作的な接続、または中間体構造を通じた間接の動作的な接続であってよいことが理解される。要素のセットは、1つまたは複数の要素を含む。要素の任意の列挙は、少なくとも1つの要素を指すと理解される。複数の要素は、少なくとも2つの要素を含む。別段の要求がない限り、任意の説明された方法ステップは、必ずしも特定の示された順序で実施される必要はない。第2の要素から導き出された第1の要素(例えば、データ)は、第2の要素に等しい第1の要素、ならびに第2の要素および任意選択で他のデータを処理することによって生成された第1の要素を包含する。パラメータに従って決定または判定することは、パラメータに従って、および任意選択で他のデータに従って決定または判定することを包含する。別段の定めがない限り、いくつかの量/データの指標は、量/データ自体、または量/データ自体とは異なる指標であってよい。コンピュータセキュリティは、データおよび/またはハードウェアへの非意図的なまたは不正なアクセスに対して、データおよび/またはハードウェアの非意図的なまたは不正な修正に対して、ならびにデータおよび/またはハードウェアの破壊に対して、ユーザおよび機器を保護すること包含する。コンピュータプログラムは、タスクを行う一連のプロセッサ命令である。本発明のいくつかの実施形態において説明されるコンピュータプログラムは、他のコンピュータプログラムのスタンドアロンのソフトウェアエンティティまたはサブエンティティ(例えば、サブルーチン、ライブラリ)であってよい。別段の定めがない限り、プロセスは、アプリケーション、またはオペレーティングシステムの一部などのコンピュータプログラムのインスタンスであり、少なくとも実行スレッドおよび実行スレッドに割り当てられた仮想メモリ空間を有することによって特徴付けられ、個々の仮想メモリ空間の内容は、実行可能なコードを含む。別段の定めがない限り、ヒューリスティックは、イベントのセットの発生が、コンピュータセキュリティの脅威を示すかどうかを判定するために実行される手順である。コンピュータ可読媒体は、磁気、光、および半導体の記憶媒体などの非一時的媒体(例えば、ハードドライブ、光ディスク、フラッシュメモリ、DRAM)、ならびに導電性ケーブルおよび光ファイバリンクなどの通信リンクを包含する。いくつかの実施形態によれば、本発明は、とりわけ、本明細書で説明される方法を実施するためにプログラムされたハードウェア(例えば、1つまたは複数のマイクロプロセッサ)、ならびに本明細書で説明される方法を実施するために、命令をエンコードするコンピュータ可読媒体を備えるコンピュータシステムを提供する。
[0031]以下の説明は、本発明の実施形態を例として示し、必ずしも限定のために示すものではない。
[0032]図1は、本発明のいくつかの実施形態による、コンピュータセキュリティの脅威から保護されたクライアントシステム10上で実行するソフトウェアオブジェクトの例示的なセットを示す。クライアントシステム10は、コンピュータシステム(例えば、エンドユーザコンピュータ、企業のサーバ、他)を表してよい。他の例示的なクライアントシステム10は、モバイルコンピューティングデバイス(例えば、ラップトップ、タブレットPC)、テレコミュニケーションデバイス(例えば、スマートフォン)、デジタルエンターテイメント用品(テレビ、ゲーム機、他)、ウェアラブルコンピューティングデバイス(例えば、スマートウォッチ)、またはプロセッサおよびメモリを有し、コンピュータセキュリティ保護を要する任意の他の電子デバイスを含む。
[0033]いくつかの実施形態において、オペレーティングシステム(OS)30は、クライアントシステム10のハードウェアにインターフェースを提供し、ソフトウェアアプリケーション32a〜32c、および36のセットに対してホストとしてふるまうソフトウェアを含む。OS30は、中でも、Windows(登録商標)、MacOS(登録商標)、Linux(登録商標)、iOS(登録商標)、またはAndroid(登録商標)などの、広く利用可能な任意のオペレーティングシステムを含んでよい。アプリケーション32a〜32cは、例えば、中でも、文書処理、画像処理、データベース、ブラウザ、および電子通信アプリケーションを含むことがある、ユーザソフトウェアを総称的に表す。いくつかの実施形態において、セキュリティアプリケーション36は、アプリケーション32a〜32cと並行して実行され、クライアントシステム10上で実行する(アプリケーション32a〜32cおよびOS30を含む)任意のソフトウェアがコンピュータセキュリティの脅威をもたらすかどうかを判定するように構成される。例えば、アプリケーション36は、マルウェアおよび/またはスパイウェアを検出することがある。アプリケーション36は、このような悪意あるソフトウェアを消去するかまたはそれ以外の方法で無能力化し、クライアントシステム10のユーザまたはシステムアドミニストレータに警告するようにさらに構成されることがある。セキュリティアプリケーション36は、スタンドアロンのプログラムであってよく、または、中でも、アンチマルウェア、アンチスパム、および反不正行為のコンポーネントを含むソフトウェアスイートの一部を形成してもよい。セキュリティアプリケーション36の動作は、以下で詳細に説明される。
[0034]図2は、クライアントシステム10の例示的なハードウェア構成を示し、クライアントシステム10は、コンピュータシステムである。当業者は、タブレットPC、携帯電話、スマートウォッチ、他などの、他のデバイスのハードウェア構成は、図示された構成と相違することがあるが、本説明は、このようなデバイスに適応されてよいことを理解するであろう。クライアントシステム10は、ハードウェアプロセッサ12、メモリユニット14、入力デバイス16のセット、出力デバイス18のセット、ストレージデバイス20のセット、およびネットワークアダプタ22のセットを含む物理デバイスのセットを備え、すべてが、コントローラハブ24によって相互接続される。
[0035]いくつかの実施形態において、プロセッサ12は、計算的および/または論理的演算を信号および/またはデータのセットで実行するように構成された物理デバイス(例えば、マイクロプロセッサ、半導体基板上に形成されたマルチコアの集積回路)を備える。いくつかの実施形態において、このような論理的演算は、メモリユニット14からプロセッサ12に、一連のプロセッサ命令(例えば、機械語または他のタイプのソフトウェア)の形で送信される。メモリユニット14は、命令を行う過程でプロセッサ12によって、アクセスまたは生成されるデータ/信号を格納する揮発性のコンピュータ可読媒体(例えば、RAM)を備えることがある。入力デバイス16は、ユーザがデータおよび/または命令をクライアントシステム10に導入することを可能にする、個々のハードウェアのインターフェースおよび/またはアダプタを含む、中でも、コンピュータキーボード、マウス、およびマイクロフォンを含むことがある。出力デバイス18は、中でも、モニタなどのディスプレイデバイスおよびスピーカ、ならびにクライアントシステム10がデータをユーザに通信することを可能にする、グラフィックカードなどのハードウェアインターフェース/アダプタを含むことがある。いくつかの実施形態において、入力デバイス16および出力デバイス18は、タッチスクリーンデバイスのケースでそうであるように、共通の1つのハードウェアを共有することがある。ストレージデバイス20は、プロセッサ命令および/またはデータの不揮発性の保存、読取り、および書込みをできるようにするコンピュータ可読媒体を含む。例示的なストレージデバイス20は、磁気ディスクおよび光ディスクとフラッシュメモリデバイス、ならびにCDおよび/またはDVDのディスクおよびドライブなどのリムーバブルメディアを含む。ネットワークアダプタ22のセットは、クライアントシステム10が、ネットワーク(例えば、ローカルエリアネットワーク、ワイヤレスネットワーク、他)に、および/または他のデバイス/コンピュータシステムに接続できるようにする。コントローラハブ24は、複数のシステム、周辺機器、および/もしくはチップセットバス、ならびに/またはプロセッサ12と、デバイス14、16、18、20、および22との間の通信をできるようにするすべての他の回路機器を総称的に表す。例えば、コントローラハブ24は、プロセッサ12をメモリ14に接続するノースブリッジ、ならびに/またはプロセッサ12を、デバイス16、18、20、および22に接続するサウスブリッジを備えることがある。
[0036]図3は、本発明のいくつかの実施形態による、セキュリティアプリケーション36の例示的なコンポーネントを示す。セキュリティアプリケーション36は、スコアリングエンジン48およびクリーンアップモジュール56を含み、両方はビヘイビアマネージャ42に接続される。ビヘイビアマネージャ42は、ヒューリスティックエンジン46に連結されたエンティティマネージャ44をさらに含む。
[0037]いくつかの実施形態において、ビヘイビアマネージャ42は、クライアントシステム10上で実行する様々なソフトウェアオブジェクトの内部にインストールされたイベントインターセプタ28a〜28cのセットからイベント通知40のセットを受け取る。イベント通知40は、このように、ソフトウェアの実行中の様々なイベントの発生についてビヘイビアマネージャ42に通告することがある。例示的な通知されたイベントは、中でも、プロセスまたはスレッドの作成、コードインジェクション、システムコール、新しいディスクファイルを作成する試み、既存のディスクファイルに書き込む試み、システムのレジスタキーを編集する試み、および特定のメモリ区画に書き込む試みを含んでよい。通知されたイベントのうちのいくつかは、マルウェアを示すことがある。他のイベントは、それ自身がセキュリティ脅威を示すことはないが、他のイベントと一緒に発生するときに潜在的な脅威の兆候を示すことがある。通知40を受け取るのに応答して、ビヘイビアマネージャ42のいくつかの実施形態は、ヒューリスティックデータベース26にアクセスし、通知40の詳細に従って検出ルーチンを選択してよく、選択されたルーチンは特定のヒューリスティックを実装する。ビヘイビアマネージャ42は、個々の検出ルーチンを実行のためにヒューリスティックエンジン46にさらに送ってよい。個々のルーチンの実行は、スコアリングアラート50をスコアリングエンジン48に供給してよい。エンジン48は、複数のこのような評価指標(例えば、スコア)を維持してよく、少なくとも1つのこのような指標がコンピュータセキュリティの脅威を指示するときにアラートを発してよい。コンポーネント44、46、48、および56の動作は、以下で詳細に説明される。
[0038]イベントインターセプタ28a〜28cの動作を示すために、図4は、本発明のいくつかの実施形態による、ソフトウェアエンティティ60a〜60bのセットの例示的な実行フローを示す。簡潔さのために、選ばれたエンティティ60a〜60bは、Windows(登録商標)OSのインスタンスにおいて実行するプロセスであり、類似の図が、例えばLinuxなどの他のオペレーティングシステムに関して描画されてよい。実線矢印は、イベントインターセプタがない実行フローを表す。破線矢印は、本発明のいくつかの実施形態に従って実行するイベントインターセプタ28a〜28cが存在することによる、フローに対する変更を表す。
[0039]例示的なプロセス60aは、複数のダイナミックリンクライブラリ(DLL)62a〜62cをロードし、図4の例において、DLL62cは、(場合によっては悪意ある)プロセス60bによってプロセス60aにインジェクトされる(injected;投入される、注入される)。プロセス60a(または、プロセス60aのロードされたDLLのうちの1つ)が、いくつかのシステムの機能性、例えば、何かをディスクファイルに書き込むこと、またはレジストリのキーを編集することをコールする命令を実行するとき、個々の命令は、KERNEL32.DLLまたはNTDLL.DLLなどの、ユーザモードのアプリケーションプログラミングインターフェース(API)をコールする。図4の例において、個々のユーザモードのAPIコールは、ユーザレベルのイベントインターセプタ28aによってインターセプトされる。このようなインターセプトは、中でも、DLLインジェクションまたはフッキングなどの方法によって実現されることがある。フッキングは、ソフトウェアコンポーネント間で受け渡されるファンクションコール、メッセージ、またはイベントをインターセプトする方法に対して当技術分野で使用される総称である。1つの例示的なフッキング方法は、実行を第2の機能にリダイレクトする命令(このケースにおいては、イベントインターセプタ28a)を挿入することによって対象機能のエントリポイントを変えることを含む。このようなフッキングに続いて、第2の機能は、対象機能の代わりに、または対象機能の前に実行されてよい。図4の例において、セキュリティアプリケーション36は、KERNEL32.DLLおよび/またはNTDLL.DLLライブラリの一定の機能の中にフックして、個々の機能に、実行をアプリケーション36のコンポーネントにリダイレクトすることを命令してよい。このように、アプリケーション36は、プロセス60aが特定のアクションを実施することを試みているときはいつでも通知され、フックされた機能に従って識別されてよい。
[0040]実行の典型的なフローにおいて、エンティティ60aによってコールされるユーザモードのAPIファンクションは、オペレーティングシステムのカーネルからのサービスをリクエストしてよい。いくつかの実施形態において、このような動作は、x86プラットフォーム上のSYSCALLおよびSYSENTERなどのシステムコールを発行することによって行われる。図4の例において、このようなシステムコールは、イベントインターセプタ28bによってインターセプトされる。いくつかの実施形態において、このようなインターセプトは、例えば、プロセッサ12のモデル固有レジスタ(MSR:model−specific register)内に格納された値を変更することによって、システムコールのハンドラルーチンを修正することを含み、これは、個々のハンドラルーチンの実行をインターセプタ28bに、または直接的にアプリケーション36のコンポーネントに効果的にリダイレクトする。このような技法は、MSRのフッキングとして当技術分野で知られ、ソフトウェアエンティティが一定のシステムコールを実施することを試みているときはいつでも、セキュリティアプリケーション36が通知されることを可能にすることができる。
[0041]システムコールに続いて、プロセッサの制御は、典型的にはOS30のカーネルに引き渡される。いくつかの実施形態において、カーネルレベルのイベントインターセプタ28cは、OSカーネルの一定のアクションをインターセプトし、したがって、査定されたプロセスが、マルウェアを示すことがある一定の動作を実施することを試みていることを判定するように構成される。このようなアクションをインターセプトするために、いくつかの実施形態は、OS30に内蔵され、OS30によって公開されるフィルタリングメカニズムのセットを用いてよい。例えば、Windows(登録商標)OSにおいて、FltRegisterFilterは、ファイルを作成すること、ファイルを開くこと、ファイルに書き込むこと、およびファイルを削除することのような動作をインターセプトするために使用されてよい。別の例において、イベントインターセプタ28cは、ObRegisterCallbackを使用して、オブジェクトを扱う動作の作成もしくは複製をインターセプトするか、またはPsSetCreateProcessNotifyRoutineを使用して、新しいプロセスの作成をインターセプトしてよい。さらに別の例において、レジストリのキー/値を作成すること、およびセットすることなどのWindowsのレジストリ動作は、CmRegisterCallbackExを使用してインターセプトされてよい。類似のイベントフィルタリングメカニズムは、Linux(登録商標)などの他のオペレーティングシステムに対する当技術分野で知られる。特定のイベント/アクションの発生を検出するのに応答して、イベントインターセプタ28は、通知40をセキュリティアプリケーション36に送信してよい。
[0042]いくつかの実施形態において、セキュリティアプリケーション36は、複数のソフトウェアエンティティを、悪意あるビヘイビアがないか監視する。監視されるソフトウェアエンティティは、個別の実行スレッドから、プロセス、全アプリケーション、フレームワーク、および仮想マシンへと、複雑さが変化することがある。簡潔さのために、以下の説明では、監視されるエンティティがプロセスであると仮定するが、この仮定は、本発明の範囲を限定すべきではない。当業者は、説明されるシステムおよび方法は、個別のプロセスと同等に、実行可能なエンティティの他のタイプに拡大されてよいことを理解するであろう。
[0043]本発明のいくつかの実施形態は、悪意あるビヘイビアを監視する観点から、実行可能なエンティティ(例えば、プロセス)をいくつかの別個のカテゴリに分割する。このようなカテゴリは、中でも、グループ作成者、グループ継承者、および監視されないエンティティを含んでよい。いくつかの実施形態において、グループ作成者は、Windows(登録商標)におけるWinlogonおよびService Host(svchost.exe)などの、オペレーティングシステムの一定のプロセス、コンポーネント、およびサービスを含む。他のグループ作成者エンティティは、中でも、ファイルマネージャのプロセスおよび/もしくはコンポーネント(例えば、Windows Explorer(登録商標)、File Explorer(登録商標)、Total Commander(登録商標)、他)、ならびに、またはブラウザのプロセスおよびコンポーネント(例えば、Internet Explorer(登録商標)、Firefox(登録商標)、Chrome(登録商標)、他)を含んでよい。グループ継承者のカテゴリは、大多数のユーザプロセス、ならびに未知のエンティティ、またはグループ作成者として識別されることがないエンティティを含んでよい。さらなるカテゴリは、監視から免除されたエンティティを表してよい。このような非監視のエンティティは、例えば、オペレーティングシステム(例えば、Windows(登録商標)プラットフォーム上のcsrss.exeおよびsmss.exe)、ならびにセキュリティアプリケーション36の一部を形成するエンティティによって保護される一定のプロセスを含んでよい。いくつかの実施形態において、エンティティのカテゴリは、その存続期間中に変更してよい。例えば、グループ作成者エンティティは、以下に示すようにグループ継承者になってよい。
[0044]セキュリティアプリケーション36のいくつかの実施形態は、どのカテゴリにそれぞれのエンティティが属するかを、パス、ファイル名、リソースのセット(例えば、立ち上げ時にロードされるライブラリ)、OSのレジストリのエントリ、デジタル署名、および個々のエンティティの記憶域などの、個々のエンティティの一定の特性に従って判定してよい。エンティティが特定のカテゴリに属するかどうかを示す他のデータは、個々のエンティティが一定のハードウェアデバイス(例えば、ネットワークアダプタ22)を使用するかどうかの指標を含む。例示的な実施形態において、セキュリティアプリケーションは、クライアントシステム10の、および/またはOS30の検査を実施し、OSサービス、ブラウザ、およびファイルマネージャなどの、グループ作成者エンティティに関連付けられたリソースのセットを配置し、このような情報を後で使用して、実行エンティティがなんらかのカテゴリに属するかどうかを判定してよい。セキュリティアプリケーション36は、エンティティをさらに識別し、個々のエンティティのハッシュのセットを既知のエンティティのハッシュのデータベースと比較することによって、そのカテゴリを確立してよい。
[0045]いくつかの実施形態において、エンティティマネージャ44は、クライアントシステム10上で実行するエンティティのデータ構造(例えば、リスト)を維持し、個々のデータ構造を動的に更新し、(例えば、プロセスの作成に応答して)新しいエンティティの追加を、および(例えば、プロセスの終了に応答して)他のエンティティの除去を反映する。簡潔さのために、実行エンティティのリスト上に現在あるエンティティは、以下で、現在のエンティティとみなされる。いくつかの実施形態において、現在のエンティティのリスト上のそれぞれのエンティティは、実行可能なオブジェクトの別個のインスタンスを表す。現在のエンティティのリストは、したがって、同じ実行可能なオブジェクトの複数のインスタンスを含んでよい。ウェブブラウザアプリケーションがそれぞれのブラウザのタブを別々のプロセスとして実行するこのような1つの例において、それぞれのこのようなプロセスは、別々の監視されるエンティティであってよい。
[0046]エンティティマネージャ44は、現在のエンティティを複数のグループにさらに分割し、それぞれのグループは、相互に関連したエンティティだけを含み、例えば、どのエンティティがどのグループの一部であるかを指示する関連付けのセットを維持する。エンティティ同士は、中でも親子関係および/またはコードインジェクションを介して関係付けられてよい。親子関係は、本明細書で、別のエンティティの子または親であるグループの1つのエンティティを指す。子プロセスは、例えば、(Windows(登録商標)における)スポーニング(spawning)、または(Unixから派生したOSにおける)フォーキング(forking)を介して作成されてよい。いくつかの実施形態において、同じエンティティは、同時に複数の別個のグループに属してよい。このような1つの例において、エンティティは、エンティティが第1のグループの別のメンバの子または親のどちらかであるので、第1のグループの一部であり、同時に、第2のグループの別のメンバがコードをエンティティにインジェクトしたため、第2のグループの一部である。
[0047]図5−A〜図5−Bは、本発明のいくつかの実施形態による、エンティティマネージャ44によって維持される様々な例示的なエンティティグループを示す。例証は、三角形を使用してグループ作成者エンティティを表し、円を使用してグループ継承者エンティティを表し、正方形を使用して非監視のエンティティを表す。実線矢印は親子関係を指示するのに対して、破線矢印はコードインジェクションを指示する。それぞれの矢印の方向は、個々の接続されたエンティティ間の関連性の方向を指示してよい。例えば、図5−Aにおいて、エンティティEはエンティティEの子であるが、エンティティEは、コードをエンティティE14にインジェクトした。
[0048]グループ作成者は、グループに属してもよく、属さなくてもよい。いくつかの実施形態は、別個のグループを、それぞれのグループ作成者エンティティ(例えば、図5−AにおけるGおよびGのようなグループ)に割り当てる。このようなグループは、1つのメンバ、すなわち、個々のグループ作成者エンティティだけを有してよい。いくつかの実施形態において、グループ作成者は、グループ作成者が新しいエンティティをスポーンする(spawn;作る、産む)とき、新しいグループを作成する。図5−Aの例において、グループ作成者Eは、グループ作成者Eが子エンティティEをスポーンするとき、グループGを作成する。いくつかの実施形態において、グループ継承者エンティティが別のエンティティをスポーンするか、またはコードを別のエンティティにインジェクトするとき、他のエンティティは、グループ継承者エンティティと同じグループに含められる。図5−Aの例において、エンティティEは、エンティティEの親エンティティEと同じグループに含められる。同様に、エンティティE14は、インジェクトされたコードをEから受け取るのに応答して、エンティティEと同じグループに含められる。
[0049]いくつかの実施形態において、エンティティのカテゴリは、一定のイベントに応答して、および/またはグループの一部になるのに応答して変更してよい。図5−Aの例において、エンティティE14は、初めはグループ作成者エンティティであった(グループG11参照)。後に、インジェクトされたコードをグループGのメンバから受け取るのに応答して、エンティティE14は、グループGの一部になり、グループ継承者として再びマークされた。同じ処置を、図5−BにおけるエンティティEに適用してよい。
[0050]エンティティは、同時に複数のグループに属してよい。図5−Bの例において、エンティティE(グループ継承者)は、同時にグループG、G、およびGのメンバである。Eは、エンティティEからのインジェクトされたコードの受け手であるので、Gの一部である。同様に、Eは、インジェクトされたコードをEから受け取ったので、EはGの一部である。エンティティEは、グループ作成者Eによってスポーンされた(spawned;作られた、産まれた)ので、エンティティEは、グループGのさらなる一部である。エンティティEが子エンティティEをスポーンするとき、Eは、グループGとG両方のメンバになる。同様に、図5−Aにおいて、エンティティE14(今はグループ継承者、上記の議論を参照)が新しいエンティティE15をスポーンするとき、エンティティE15は、グループGとG11両方に含まれてよい。
[0051]図6は、本発明のいくつかの実施形態による、現在のエンティティのリストを管理するために、エンティティマネージャ44(図3)によって実施される例示的な一連のステップを示す。一連のステップ150〜152において、エンティティマネージャ44は、エンティティのライフサイクルイベントをインターセプトし、このようなイベントが発生したとき、一連のステップ154〜155は、イベントおよび影響を受けたエンティティのタイプを識別する。いくつかの実施形態において、ライフサイクルイベントは、中でも、プロセス作成、コードインジェクション、およびプロセスの終了を含む。このようなイベントを検出することは、妥当なイベントインターセプタ、例えば、図4におけるインターセプタ28cからイベント通知40を受け取ることを含んでよい。エンティティマネージャ44は、OS30によって使用されるデータ構造を解析することによって、現在のライフサイクルイベント(例えば、スポーニングするケースにおける親および子プロセス)の影響を受けるエンティティを識別して、現在実行中のプロセスを管理する。Windows(登録商標)OSでは、それぞれのプロセスは、エグゼクティブプロセスブロック(EPROCESS)として表わされ、これは、中でも、個々のプロセスのスレッドのそれぞれに対するハンドル、およびOS30が、個々のプロセスを複数の実行プロセスから識別することを可能にする一意のプロセスIDを含む。類似のプロセス/スレッド表現が、Linuxなどの他のOSに利用可能である。
[0052]ステップ156は、イベントが新しいエンティティ(例えば、新しいプロセス)の作成を含むかどうかを判定し、いいえのとき、エンティティマネージャ44は、以下で説明されるステップ170に進む。イベントがエンティティ作成を含むとき、ステップ158において、マネージャ44は、親エンティティがグループ継承者であるかどうかを判定し、いいえのとき、マネージャ44は、ステップ164に進む。はいのとき、一連のステップ160〜162において、マネージャ44は、子エンティティを親エンティティグループに追加し、子エンティティをグループ継承者としてマークしてよい。ステップ164において、マネージャ44は、親エンティティがグループ作成者であるかどうかを判定する。はいのとき、一連のステップ166〜168において、マネージャ44は、新しいグループを作成し、子エンティティを新たに作成されたグループに追加してよい。
[0053]いくつかの実施形態において、ステップ170は、検出されたライフサイクルイベントがコードのインジェクションを含むかどうかを判定し、いいえのとき、マネージャ44は、ステップ174に進んでよい。一般的なルールとして、セキュリティアプリケーション36は、疑わしい、場合によっては悪意ある活動を指示するものとして、それぞれのコードインジェクションイベントを解釈してよい。しかし、OSのいくつかのエンティティは、非常に特殊な状況においては、コードを他のエンティティに合法的にインジェクトする。このような状況は通常、セキュリティコミュニティにおいて例外として知られ、偽陽性検出を偶発的に発生させないように、通例はアンチマルウェア処理から免除される。いくつかの実施形態において、ステップ171は、インジェクションが合法的であると信頼されてよいかどうかを、例えば、個々のインジェクションイベントの詳細を例外のリストにマッチさせることを試みることによってチェックする。個々のコードインジェクションが既知の種類の合法的なインジェクションとして認識されないとき、ステップ172において、マネージャ44は、インジェクトされたコードを受け取るエンティティを、コードインジェクションを実施するエンティティのグループに追加してよい。いくつかの実施形態において、さらなるステップ173は、受け手のエンティティをグループ継承者としてマークする。
[0054]ステップ174において、マネージャ44は、イベントがエンティティの終了を含むかどうかを判定し、いいえのとき、マネージャ44は、ステップ150に戻る。例えば、プロセスは、個々のプロセスのスレッドすべてが実行を終えたときに終了する。いくつかの実施形態は、終了したエンティティをグループの一部として、例えば、終了したエンティティの子エンティティすべてが終了するまで、または個々のグループのすべてのメンバが終了するまで保持してよい。このような実施形態において、終了したエンティティは、機能停止したものとしてマークされてよい(ステップ176)。この方策は、逃避的なマルウェアの効果、例えば、悪意ある子をスポーンし、その後終了(quits)するエンティティの効果を、クライアントシステム10から駆除すること(cleaning;抹消すること、きれいにすること)を可能にすることがある。他の実施形態において、検出されたライフサイクルイベントがエンティティ終了を含むとき、マネージャ44は、終了したエンティティをすべてのグループから除去してよい。
[0055]いくつかの実施形態において、ヒューリスティックエンジン46(図3)は、本明細書で総称的にヒューリスティックと呼ばれるテストまたは手順のセットを実施して、クライアントシステム10の内部のイベントのセットの発生がセキュリティ脅威を示すかどうか、例えば、マルウェアを示すかどうかを判定する。個々のヒューリスティックが、イベントのセットがマルウェアを示すと結論したとき、エンジン46は、スコアリングアラート50をスコアリングエンジン48に送信してよく、エンジン46は、クライアントシステム10がマルウェアを含むかどうかをさらに判定してよい。ヒューリスティックエンジン46は、イベントインターセプタ28a〜28cによって、イベントの発生について通知される。
[0056]いくつかのヒューリスティックは、イベントの発生が個別のエンティティが悪意あるものであることを示すかどうかをヒューリスティックが判定するという意味で、エンティティ関連であってよい。このようなヒューリスティックは、本明細書でエンティティヒューリスティックと呼ばれる。他のヒューリスティックは、イベントの発生が、全エンティティグループが悪意あるものであることを示すかどうかを、他のヒューリスティックが判定するという意味で、グループ関連であってよい(本明細書ではグループヒューリスティックと呼ばれる)。
[0057]それぞれのヒューリスティックは、別個のマルウェア検出方法を取り入れることがある。いくつかの実施形態において、それぞれのヒューリスティックは、悪意あるエージェントの特定のカテゴリ、ファミリ、タイプ、または変形物の存在を検出するように構成されることがある。いくつかの別個のヒューリスティックは、悪意あるエージェントの単一のカテゴリ、ファミリ、タイプ、または変形物を共同して検出することがある。いくつかの実施形態において、単一のヒューリスティックは、マルウェアのいくつかのカテゴリ、タイプ、ファミリ、または変形物を検出することに関与することがある。ヒューリスティックの特定の例は、クライアントシステム10上の特定の一連のイベント(ビヘイビアの署名)の発生がないかチェックする。一連のすべてのイベントが、同じエンティティによって引き起こされる必要があるわけではない。しかし、このような一連のイベントの発生は、マルウェアを示すことがある。図7に示されたこのような1つの例において、悪意ある活動は、エンティティE〜Eのグループ間に分割され、グループのそれぞれのメンバは、悪意ある活動のわずかな部分を行う。特定の一連のアクションA〜Aは、特定のマルウェアの攻撃を識別するビヘイビアの署名68に達する。
[0058]図7は、ランサムウェアの攻撃と関連付けられた例示的なビヘイビアの署名を示す。ランサムウェアは、特定タイプのマルウェアであり、ユーザのコンピュータ上のファイルのセットを暗号化し、次に、個々のファイルを回復させるために、ユーザに支払いを求める。エンティティ作成は、ジグザグの矢印として図示される。それぞれの実線の垂直線は、それぞれのエンティティの存在履歴(life history)を示す。例えば、エンティティEは、エンティティEをスポーンした後に機能停止する。エンティティEは、インジェクトされたコードをEから受け取るのに応答して、図示されたグループの一部になる。個々のエンティティのアクションには、署名68の一部でないものもある。例えば、エンティティEの、エンティティEのスポーニングは、署名68に含まれない。
[0059]図8A〜図8Bは、このような例示的なビヘイビアの署名を示す。署名68aは、アクションA〜Aが正確な指示された順序で行われることを要求する。対照的に、例示的な署名68bは、いくつかのアクション(A、A、およびA)がAとAとの間に起こる限り、いくつかのアクション(A、A、およびA)が任意の順序で実施されることを可能にする。68bなどの署名によって提供される柔軟性は、悪意あるエージェントの様々なバージョン、変形物、または全ファミリを検出することを可能にすることがある。いくつかの実施形態において、特定のビヘイビアの署名を使用するヒューリスティックは、個々のビヘイビアの署名によって指示される特定の一連のイベント(またはアクション)の発生を検出するように構成される。個々のヒューリスティックは、アクションを実施するエンティティの間の関連性をさらに照合してよい(例えば、すべての関与するエンティティが同じグループの一部であることを照合してよい)。いくつかの実施形態において、このような照合は暗黙的である。例えば、特定のビヘイビアの署名を実装するように構成されるグループのヒューリスティックは、選択されたエンティティグループに対して一度初期化されてよい。そして、個々のグループのヒューリスティックは、個々のグループのメンバがアクションを実施するときだけにトリガされてよい。グループのヒューリスティックのさらなる議論および例は、以下で与えられる。
[0060]いくつかの実施形態において、ヒューリスティックエンジン46は、ヒューリスティックデータベース26とインターフェースし、クライアントシステム10のストレージデバイス20上、またはクライアントシステム10に通信連結されたコンピュータ可読媒体上に常駐してよい。データベース26は、利用可能なヒューリスティックの集まり、およびヒューリスティックと、個々のヒューリスティックの使用をトリガするイベントのタイプとの間の関連付けの指標を含んでよい。このような関連付けは、特定のタイプのイベントの発生について通知されるのに応答して、ヒューリスティックエンジン46がヒューリスティックを選択的に取り出すことを可能にする。データベース26の例示的な実施形態は、ソフトウェアライブラリ、例えば、DLLである。
[0061]いくつかの実施形態において、ヒューリスティックは、バイトコード(クロスプラットフォームの命令セット)にコード化される。バイトコードの例は、Java(登録商標)およびLua(登録商標)プログラミング言語を含む。それぞれのヒューリスティックは、コード化され、別々のバイトコードルーチンとして配信されてよい。このような実施形態において、ヒューリスティックエンジン46は、バイトコードを一連のネイティブなプロセッサ命令に翻訳し、個々のシーケンスを実行する、バイトコード翻訳仮想マシン(例えば、インタープリタまたはジャストインタイムコンパイラ)を含んでよい。このような実施形態は、開発を容易にし、セキュリティアプリケーション36の市場投入までの時間をかなり短くすることがある。
[0062]図9は、本発明のいくつかの実施形態による、ヒューリスティックエンジン46によって実施される例示的な一連のステップを示す。一連のステップ200〜202は、インターセプタ28a〜28cからのイベント通知を(がないか)リッスンする。イベント通知40を受け取るのに応答して、ステップ204は、個々の通知されたイベントのイベントパラメータのタイプおよびセットを決定する。例示的なイベントタイプは、中でも、コードインジェクション、特定のシステムコール、ディスクファイルの作成、およびHTTPリクエストを含む。イベントパラメータは、通知されたイベントのそれぞれのタイプに固有であってよい。いくつかの例示的なイベントパラメータは、中でも、通知されたアクションを実施するプロセスまたはスレッドの識別子(例えば、プロセスID)、ファイル名、パス、メモリアドレス、およびプロセッサ命令のオペランドを含む。イベントパラメータは、インターセプタ28a〜28cによって決定され、イベント通知40に含まれてよく、または通知40を受け取るのに応答して、ヒューリスティックエンジン46によって決定されてよい。通知されたイベントが、新しいディスクファイルを作成する試みである1つの例において、イベントパラメータは、ファイルの名前が作成されることを含んでよい。個々のファイル名は、イベントインターセプタによって決定され、ヒューリスティックエンジン46に通知40の一部として送信されてよい。いくつかの実施形態において、イベントパラメータは、個々のイベントが発生したか、または検出された瞬間を指示するタイムスタンプを含む。タイムスタンプは、ヒューリスティックエンジン46によってさらに使用され、一定のイベントが順番に発生するかどうかを判定してよい(例えば、ビヘイビアの署名に関連する上記の説明を参照)。
[0063]一連のステップ206〜208において、エンジン46は、ヒューリスティックデータベース26にアクセスし、通知されたイベントのタイプおよびパラメータに従って、ヒューリスティックのセットを選択的に取り出してよい。さらなるステップ209は、選択されたヒューリスティックを適用し、通知されたイベントがマルウェアを示すかどうかを判定する。個々のヒューリスティックが悪意の疑いを指示するとき、ステップ212において、エンジン46は、スコアリングアラート50をスコアリングエンジン48に送る。スコアリングアラート50は、個々のヒューリスティックの識別子を含んでよく、疑わしいエンティティおよび/またはグループの識別子をさらに含んでよい。
[0064]ヒューリスティックエンジン46のいくつかの実施形態は、中でも、LOCAL、STATIC、ENTITY、GROUP、およびGLOBALなどの、いくつかの別個のタイプ変数で動作する。LOCALタイプ変数は、ヒューリスティックのそれぞれのインスタンスに対して一意であってよい。STATICタイプ変数は、変数の値が同じヒューリスティックの複数のインスタンスにわたって共有されてよいという意味で、それぞれのヒューリスティックに固有であってよい。GLOBALタイプ変数は、すべてのヒューリスティックおよびすべてのヒューリスティックのインスタンスにわたって共有されてよい。ENTITYタイプ変数は、<ヒューリスティック、エンティティ>のタプルに一意に付加され、同じヒューリスティックの複数のインスタンスにわたって共有されてよいが、エンティティごとに相違する。ENTITYタイプ変数は、あらゆる監視されるエンティティに対して一度初期化され、個々のエンティティの終了時に消去されてよい。GROUPタイプ変数は、<ヒューリスティック、グループ>のタプルに一意に付加され、同じヒューリスティックの複数のインスタンスにわたって共有されてよいが、エンティティグループごとに相違する。GROUPタイプ変数は、エンティティのあらゆるグループに対して一度初期化されてよい。このような実施形態は、一定のヒューリスティックが、例えば、悪意ある活動が複数のエンティティにわたって分散される複雑なビヘイビアの署名がないかチェックすることを可能にする。
[0065]いくつかの実施形態において、スコアリングエンジン48は、クライアントシステム10上で実行する複数の監視されるエンティティおよび/またはエンティティのグループに対して決定された複数の悪意度のスコアを維持し、更新する。スコアリングエンジン48は、クライアントシステム10が悪意あるソフトウェアを含むかどうかを、個々のスコアに従ってさらに判定してよい。いくつかの実施形態において、スコアリングエンジン48は、特定のイベントの発生が悪意を示すことをエンジン46が判定すると、ヒューリスティックエンジン46からスコアリングアラート50を受け取る。マルウェアを検出するのに応答して、スコアリングエンジン48は、悪意指標58をクリーンアップモジュール56にさらに送ってよい。
[0066]図10−Aは、複数の例示的なエンティティ・スコアリング・オブジェクト(ESO)74a〜74cを示し、それぞれのESOは、本発明のいくつかの実施形態による、個々のソフトウェアエンティティ70a〜70cに対してスコアリングエンジン48によって決定される。それぞれのESOは、複数のデータフィールドを含んでよく、複数のデータフィールドのうちのいくつかが図10−Aに示される。このようなフィールドは、一意のエンティティ識別子EID76a、複数の現在のエンティティ査定スコア76b、および現在のエンティティ総計スコア76dを含む。いくつかの実施形態において、エンティティ査定スコア76bは、ヒューリスティックエンジン46から受け取られたスコアリングアラート50に従って、エンジン48によって決定される。それぞれのスコア76bは、別個の尺度に従って決定されてよい。例えば、スコア76bは、ヒューリスティックのセット76cと1対1の対応関係を有してよく、その結果、それぞれのエンティティ査定スコアは、個々のヒューリスティックに起因すると考えられる。このような1つの例では、特定のヒューリスティックHは、監視されるエンティティがインターネットなどのコンピュータネットワークからファイルをダウンロードするかどうかを判定することを含む。そして、個々のスコアSは、個々の査定されたエンティティがダウンロードを試みるときだけ付与されるか、または増加される。いくつかの実施形態において、エンティティ総計スコア76dは、現在のエンティティ査定スコア76bの合計として計算される(以下のさらなる詳細を参照)。
[0067]いくつかの実施形態において、それぞれのESOは、個々のエンティティと、個々のエンティティが属するグループとの間の関連付けの指標をさらに含んでよい。例えば、図10−Aの例において、項目76fは、エンティティグループのこのようなリストを示す。代替実施形態において、スコアリングエンジン48は、メンバとして一定のエンティティを有するグループのリストを、エンティティマネージャ44から動的に取り出してよい。
[0068]スコアリングエンジン48のいくつかの実施形態は、それぞれのエンティティグループと関連付けられたスコアのセットをさらに維持する。図10−Bは、複数の例示的なグループ・スコアリング・オブジェクト(GSO)75a〜75cを示し、それぞれのGSOは、ソフトウェアエンティティの別個のグループに対して決定される。それぞれの図示されたGSOは、一意のグループ識別子GID77a、複数の現在のグループ査定スコア77b、および現在のグループ総計スコア77dを含む(上付き文字Gは、個々の項目が、単一のエンティティではなくエンティティのグループと関連付けられることを指示する)。いくつかの実施形態において、それぞれのグループ査定スコアは、別個の尺度(例えば、別個のヒューリスティック)に従って付与され、および/または増やされる。グループ査定スコアをセットし、および/または増やす例示的なヒューリスティックは、図7に示されるようなビヘイビアの署名を実装する。この例を使用して、エンティティE、E、およびEを含むグループに対応するグループ査定スコアは、エンティティE、E、およびEがアクションA〜Aを図示された順序で実施するときに増やされてよい。それぞれのグループ査定スコアに対応するグループのヒューリスティックは、項目77cとして図10−Bに示される。
[0069]いくつかの実施形態において、それぞれのGSOは、個々のグループとそのメンバのエンティティとの間の関連付けの指標をさらに含んでよい。図10−Bの例において、エンティティE (G1)、E (G1)、他は、グループGのメンバである。代替として、スコアリングエンジン48は、エンティティマネージャ44にグループのメンバシップデータをいつでもリクエストしてよい。いくつかの実施形態において、グループ総計スコア77dは、以下にさらに詳しく述べるように、グループ査定スコア77bを合計することによって計算される。
[0070]スコアリングエンジン48のいくつかの実施形態は、個々のスコアに対応するヒューリスティックに固有の量だけ、それぞれのエンティティおよび/またはグループ査定スコアを増加させる。図11−A〜図11−Bは、このようなスコア増加量を示し、エンティティスコアおよびグループスコアにそれぞれ対応する。スコアリングエンジン48が、特定のヒューリスティックを実行するのに応答して生成されたスコアリングアラート50を受け取るとき、個々のヒューリスティックに対応するエンティティおよび/またはグループ査定スコアは、個々の増加量の値だけ増加されてよい。いくつかのエンティティのヒューリスティックは、グループのヒューリスティックであってもよく、例えば、ヒューリスティックHは、グループのヒューリスティックH (G)と一致してよい。いくつかの実施形態において、このようなヒューリスティックによって生成されたスコアリングアラートは、個々のエンティティのエンティティ査定スコアおよび/または個々のエンティティをメンバとして有するグループのグループ査定スコアを更新する結果になってよい。
[0071]図12−Aは、本発明のいくつかの実施形態による、スコアリングエンジン48(図3)によって実施される例示的な一連のステップを示す。一連のステップ300〜302は、ヒューリスティックエンジン46からのスコアリングアラートをリッスンする。いくつかの実施形態において、スコアリングアラート50は、個々のアラートを生成したヒューリスティックの指標、ならびに個々のアラートが生成されたエンティティおよび/またはエンティティのグループの指標を含む。スコアリングアラート50を受け取るのに応答して、ステップ304は、アラート50がエンティティのヒューリスティックによって生成されたかどうかを判定する(すなわち、ヒューリスティックは、イベントが、個別のエンティティが悪意あるものであることを示すかどうかを判定するように構成される)。いいえのとき、スコアリングエンジン48はステップ310に進む。はいのとき、ステップ306において、スコアリングエンジン48は、アラート50に従って個々のエンティティを識別し、アラートを生成したヒューリスティックに従って個々のエンティティの査定スコアを更新する。例えば、アラート50がヒューリスティックHによって生成されたとき、スコアリングエンジン48は、ヒューリスティックHに対応するスコアSを妥当な増加量だけ増加させてよい(例えば、図11−Aを参照)。さらなるステップ308は、個々のエンティティの総計スコアを、例えば、個々のエンティティのすべてのエンティティ査定スコアを合計することによって計算する。
[0072]ステップ310は、スコアリングアラート50がグループのヒューリスティックによって生成されたかどうかを判定する(すなわち、ヒューリスティックは、イベントが、エンティティのグループが悪意あるものであることを示すかどうかを判定するように構成される)。いいえのとき、スコアリングエンジン48はステップ316に進む。はいのとき、ステップ312において、スコアリングエンジン48は、アラート50に従ってグループのセットを識別し、アラートを生成したヒューリスティックに従って個々のグループのグループ査定スコアを更新する。ステップ314において、エンジン48は、個々のグループの総計スコアを、例えば、グループ査定スコアの合計として計算する。
[0073]ステップ316において、スコアリングエンジン48は、個々のエンティティおよび/またはグループの総計スコアが所定の閾値を超過するかどうかを判定する。いいえのとき、エンジン48はステップ300に戻る。はいのとき、エンジン48は、悪意指標58をクリーンアップモジュール56に送る。
[0074]図12−Bは、スコアリングエンジン48によって実施される代替の一連のステップを示す。アラート50を受け取るのに応答して、ステップ326は、エンティティおよび個々のアラートを生成するヒューリスティックを識別する。次に、査定および総計スコアは、アラート50に従って個々のエンティティに対して決定される。ステップ332において、スコアリングエンジン48は、個々のエンティティをメンバとして有する少なくとも1つのグループを識別する。ステップ336は、次に、個々のグループの総計スコアを増やす。エンティティまたはグループのどちらか(または両方)の総計スコアが所定の閾値を超過するとき、ステップ340は、悪意指標58をクリーンアップモジュール56に送る。図12−Bに示された例示的な実施形態は、個々のグループのメンバがマルウェアを示すアクションを実施するたびに、グループスコアを増やしてよい。したがって、悪意ある活動がグループのいくつかのメンバの間で分割されるとき、およびそれぞれの個別のメンバに対応する総計スコアが悪意を指示するのに十分でないときでさえ、グループ全体のスコアは、マルウェア検出の閾値を超過することがある。
[0075]図12−Cは、本発明のいくつかの実施形態による、スコアリングエンジン48によって実施されるさらに別の例示的な代替の一連のステップを示す。図12−A〜図12−Bと対比して、図12−Cは、グループスコアを計算せず、その代わり排他的にエンティティスコアに依存する実施形態の動作を説明することがある。しかし、このような実施形態は、グループのヒューリスティックを使用することによって逃避的なマルウェアをさらに検出することがある。図7におけるビヘイビアの署名68の例を使用して、一連のイベントA〜Aの発生を検出するヒューリスティックは、エンティティEがアクションAを実施したことを検出するのに応答して、スコアリングアラート50を生成してよく、したがってビヘイビアの署名68によって指示されるマルウェアを示す一連のアクションを完了させる。このようなアラートを受け取るのに応答して、ステップ348は、エンティティEのエンティティ査定スコアを増やしてよく、スコアは、個々のヒューリスティックに対応する。個々のヒューリスティックに関連付けられた増加量が十分大きくなるように選ばれる場合、個々のエンティティ査定スコアの増加は、エンティティEに対して計算された総計スコアがマルウェア検出の閾値を超過するように、十分大きくてよい。
[0076]図13は、本発明のいくつかの実施形態による、クリーンアップモジュール56(図3)によって実施される例示的な一連のステップを示す。ステップ402において、モジュール56は、悪意指標58をスコアリングエンジン48から受け取る。いくつかの実施形態において、悪意指標58は、疑わしいエンティティの指標、および/または疑わしいエンティティグループの指標、例えば、総計スコアがマルウェア検出の閾値を超過したエンティティおよび/またはグループの指標を含む(上記を参照)。ステップ404において、モジュール56は、スコアリングエンジン48が悪意指標58を送ることをトリガした疑わしいエンティティを識別する。
[0077]いくつかの実施形態において、ステップ406は、個々の疑わしいエンティティが単一のグループのメンバであるかどうかをチェックする。いいえのとき、モジュール56は、ステップ410に進む。はいのとき、ステップ408において、クリーンアップモジュール56は、疑わしいエンティティのグループ全体を駆除する。いくつかの実施形態において、エンティティグループを駆除することは、個々のグループのあらゆるメンバのエンティティを駆除することを含む。クリーンアップは、コンピュータセキュリティの当技術分野で知られた任意の方法を伴ってよい。いくつかの実施形態において、エンティティを駆除することは、個々のエンティティの実行を一時中断することまたは終了すること含む。エンティティを駆除することは、個々のエンティティのコードを含むディスクファイルを削除することをさらに含んでよい。エンティティを駆除することは、個々のエンティティの存続期間中に個々のエンティティによって実施された変更のセットを元に戻すことまたはロールバックすることをさらに含んでよい(このような変更は、OSのレジストリへの変更、ファイルシステムへの変更、他を含んでよい)。エンティティを駆除することは、追加の、別々のマルウェアスキャナを使用して個々のエンティティを分析することを含んでよい。いくつかの実施形態において、クリーンアップは、クライアントシステム10のユーザおよび/またはシステムアドミニストレータに警告することをさらに含む。
[0078]駆除の1つの例において、悪意ある活動がコードインジェクションイベントに至るまで追跡されたとき、クリーンアップモジュール56は、受け手のエンティティを終了し、個々のインジェクションイベントの後で発生したメモリおよび/またはファイルシステムへのすべての変更をロールバックする。可能であれば、クリーンアップモジュール56は、個々のインジェクションイベントの結果として生み出された変更だけをロールバックしてよい。駆除の別の例において、悪意あるエンティティがクリーンなエンティティ(cmd.exe、regedit.exe、合法的なブラウザのプロセス、他など)を使用して悪意ある攻撃の一部を行うとき、クリーンアップモジュール56は、個々のクリーンなエンティティを終了するが、そのエンティティの実行可能ファイルは削除しなくてよい。
[0079]いくつかの実施形態において、疑わしいエンティティが複数のエンティティグループに属するとき、ステップ410は、個々のグループのどれが悪意あるものであり得るかを識別することを試みる。ステップ410は、どのように疑わしいエンティティが、(例えば、コードインジェクションに対するエンティティ作成に応答して)それぞれの個々のグループのメンバになったかを判定することを含んでよい。ステップ410は、スコアリングエンジンに、クライアントシステム10が攻撃されていたという結論を出させたスコアリングアラートを、ヒューリスティックがトリガすることをさらに決定してよい。マルウェア検出をトリガするヒューリスティックを識別することは、個々のスコアリングアラートをトリガした、疑わしいエンティティが実施していたアクションを決定することを可能にすることがある。ステップ410を行うために、クリーンアップモジュール58は、個々のスコアリングアラートがトリガされたときに、疑わしいエンティティのどのコンポーネントが実行していたかをさらに判定してよい。
[0080]1つの例示的なシナリオにおいて、疑わしいエンティティは、エンティティ作成を介して第1のグループのメンバになり、コードインジェクションを介して第2のグループのメンバになった。ステップ410は、疑わしいエンティティの主な実行可能なモジュールからのコードが実行されていた間に、マルウェア検出を引き起こすスコアリングアラートがトリガされたことを判定した。その場合、クリーンアップモジュール58は、第1のグループが悪意あるものであるという結論を出してよい。対照的に、スコアリングアラートがトリガされたそのときに、疑わしいエンティティがインジェクトされたコードを実行していた場合には、クリーンアップモジュール58は、第2のグループが悪意あるものであるという結論を出した可能性がある。
[0081]ステップ412において、モジュール56は、悪意あるグループの識別が成功だったかどうかを判定する。はいのとき、ステップ414において、モジュール56は、識別された悪意あるグループを駆除する。ステップ410が、悪意あるエンティティのグループを識別できなかったとき、ステップ416において、モジュール56は、疑わしいエンティティだけを駆除する。ステップ416は、このように、ユーザにとってデータ喪失につながることがある、誤った陽性のマルウェアの識別、すなわち、良性のエンティティを悪意のあるものとして誤って識別することを防ぐことがある。
[0082]上記で説明された例示的なシステムおよび方法は、ウイルス、トロイの木馬、およびスパイウェアなどの悪意あるソフトウェアからコンピュータシステムを保護することを可能にする。本発明のいくつかの実施形態において、セキュリティアプリケーションは、クライアントシステム上で現在実行するエンティティ(例えば、プロセス)のセットのビヘイビアを監視する。セキュリティアプリケーションは、イベントインターセプタのセットによって、クライアントシステムの内部の様々なイベントの発生について通知される。このような例示的なイベントは、中でも、プロセスまたはスレッドの作成、コードインジェクション、システムコール、新しいディスクファイルを作成する試み、既存のディスクファイルへ書き込む試み、OSのレジストリのキーを編集する試み、および特定のメモリ区画に書き込む試みを含んでよい。通知されたイベントのうちのいくつかはマルウェアを示すことがあり、他のイベントは、それ自体はセキュリティ脅威を示さないが、他のイベントと一緒に発生するときに潜在的な脅威の兆候を示すことがある。
[0083]イベント通知を受け取るのに応答して、セキュリティアプリケーションは、検出手順のセット(例えば、ヒューリスティック)を実行して、個々のイベントがマルウェアを示すかどうかを判定してよい。イベントがマルウェアを示すことを判定するのに応答して、ヒューリスティックは、マルウェアを示すスコアを増大させてよい。スコアリングエンジンは、クライアントシステムが攻撃されているかどうかを、増やされたマルウェアを示すスコアに従ってさらに判定してよい。クリーンアップモジュールは、悪意があるとみなされるエンティティまたはエンティティのグループに対して、アンチマルウェアアクションをさらにとってよい。
[0084]従来のアンチマルウェアシステムは、典型的には、スコアをそれぞれの個別のエンティティに関連付け、個々のエンティティがマルウェアを示すような形で振る舞う(behave)ときはいつでもこのようなスコアを増やす。このような従来のシステムは、典型的には、複数のエンティティ間で悪意ある活動を分割する逃避的なマルウェアを検出することに失敗する。単独で見たときにそれぞれの関与するエンティティのビヘイビアがマルウェアを示さない場合、このようなビヘイビアは、個別のスコアに基づいた検出につながることはない。対照的に、本発明のいくつかの実施形態は、複数の関連したエンティティにわたってビヘイビアを相関させることによって、逃避的なマルウェアに明示的に対処する。
[0085]いくつかの実施形態において、セキュリティアプリケーションは、監視されるエンティティを複数のエンティティグループに分割し、グループのすべてのメンバは、親子関係またはコードインジェクションによって関係付けられる。エンティティは、同時に複数のエンティティグループに属してよい。セキュリティアプリケーションは、スコアのセットをそれぞれのエンティティグループとさらに関連付けてよい。このようなグループスコアは、個々のグループのメンバが一定のアクションを実施するとき、増やされてよい。このように、個別のメンバによって実施されるアクションが、それ自体はマルウェアを示さないにも関わらず、グループスコアは、集合的な悪意あるビヘイビアを捕え、検出をトリガすることができる。
[0086]本発明のいくつかの実施形態において、実行可能なエンティティは、少なくとも2つの主要なカテゴリ、すなわち、グループ作成者およびグループ継承者に分割される。グループ作成者のカテゴリは、オペレーティングシステムのプロセス、ファイルマネージャ、およびブラウザなどのエンティティを含んでよく、これらは、しばしば、合法的な手法でエンティティ作成などの活動を実施することがある。いくつかの実施形態において、グループ作成者エンティティが子エンティティをスポーンするとき、グループ作成者エンティティは、新しいグループを作成する。グループ継承者のカテゴリは、ユーザプロセスおよび未知のプロセスを含んでよい。グループ継承者エンティティは、グループ継承者エンティティの親エンティティのグループのメンバになることがあり、またはグループ継承者エンティティの親エンティティがグループ作成者であるとき、グループの第1のエンティティであってよい。グループ作成者および継承者エンティティに対する別個のグループのメンバシップルールを有することは、本発明のいくつかの実施形態が、別個のマルウェア検出の方策を使用して、2つのカテゴリのエンティティを監視することを可能にする。
[0087]本発明のいくつかの実施形態による、逃避的なマルウェアに対処する別の手法は、個別のエンティティによって実施される孤立したアクションとは対照的に、関連したエンティティのグループによって実施される、アクションの特定のシーケンスまたは組合せを検出するマルウェア検出のヒューリスティックを使用すること含む。個々のヒューリスティックは、個々のシーケンスまたは組合せのすべてのアクションが実施されたときだけ、スコアの増加をトリガしてよい。
[0088]従来のコンピュータセキュリティシステムは、個別の悪意あるエンティティを検出することがあり、他のエンティティから孤立して、それぞれのこのようなエンティティに対してアンチマルウェアアクションをとることがある。検出された悪意あるエンティティが、悪意あるエンティティの協調されたネットワークのわずかな部分であるとき、単一のエンティティを無能力化することは、さらに、クライアントシステムをマルウェアに対して脆弱な状態に、またはマルウェアで感染された状態にさえすることがある。対照的に、悪意あるエンティティのグループを検出するのに応答して、本発明のいくつかの実施形態は、悪意あるエンティティの全グループをクリーンアップするか、またはその他の形で無能力化してよい。疑わしいエンティティが複数のエンティティグループの一部であるが、セキュリティアプリケーションが、個々のグループのどれが悪意ある活動を行っているかを判定できないとき、本発明のいくつかの実施形態は、個々の疑わしいエンティティに対してのみ、アンチマルウェアアクションをとり、偽陽性のマルウェアの識別を防ぐ。
[0089]上記の実施形態は、本発明の範囲を逸脱することなく、多くの方式で変えられてよいことが当業者には明らかであろう。それに応じて、本発明の範囲は、以下の特許請求の範囲およびこれらの法的均等物によって決定されるべきである。

Claims (30)

  1. 少なくとも1つのハードウェアプロセッサおよびメモリユニットを備えるホストシステムであって、前記少なくとも1つのハードウェアプロセッサは、エンティティマネージャおよびヒューリスティックエンジンを実行するように構成され、
    前記エンティティマネージャは、監視される実行可能なエンティティの集まりを複数のエンティティグループに編成するように構成され、前記集まりを編成することは、
    前記集まりの第1のエンティティが子エンティティをスポーンしたことを検出するのに応答して、前記第1のエンティティがエンティティのグループ作成者のカテゴリに属するかどうかを判定することと、
    前記第1のエンティティが前記グループ作成者のカテゴリに属するかどうかを判定するのに応答して、前記第1のエンティティが前記グループ作成者のカテゴリに属するときに、
    新しいエンティティグループを前記複数のエンティティグループに追加し、
    前記子エンティティを前記新しいエンティティグループに割り当てる
    ことと、
    前記第1のエンティティが前記グループ作成者のカテゴリに属するかどうかを判定するのに応答して、前記第1のエンティティが前記グループ作成者のカテゴリに属さないときに、
    前記第1のエンティティが第1のエンティティグループのメンバになるように、前記第1のエンティティグループを前記複数のエンティティグループから選択し、
    前記子エンティティを前記第1のエンティティグループに割り当てる
    ことと
    を含み、
    前記ヒューリスティックエンジンは、前記子エンティティによって実施される第1のアクションに応答して、
    前記子エンティティが第2のエンティティグループのメンバになるように、前記第2のエンティティグループを前記複数のエンティティグループから選択し、
    前記第2のエンティティグループを選択するのに応答して、前記第1のアクションがマルウェア攻撃を示すかどうかを、前記第2のエンティティグループの別のメンバによって実施される第2のアクションに従って判定する
    ように構成される、
    ホストシステム。
  2. 請求項1に記載のホストシステムであって、前記集まりを編成することは、前記第1のエンティティが前記グループ作成者のカテゴリに属するかどうかを判定するのに応答して、前記第1のエンティティが前記グループ作成者のカテゴリに属さないときに、
    前記第1のエンティティが第3のエンティティグループのメンバになるように、前記第3のエンティティグループを前記複数のエンティティグループから選択することと、
    前記子エンティティを前記第3のエンティティグループに割り当てることと
    をさらに含む、ホストシステム。
  3. 請求項1に記載のホストシステムであって、前記集まりを編成することは、前記子エンティティが前記集まりの第3のエンティティにコードをインジェクトしたことを検出するのに応答して、
    前記子エンティティが第3のエンティティグループのメンバになるように、前記第3のエンティティグループを前記複数のエンティティグループから選択することと、
    それに応じて、前記第3のエンティティを前記第3のエンティティグループに割り当てることと
    をさらに含む、ホストシステム。
  4. 請求項1に記載のホストシステムであって、前記集まりを編成することは、前記第1のエンティティが前記子エンティティをスポーンしたことを検出するのに応答して、
    前記子エンティティが前記グループ作成者のカテゴリに属するかどうかを判定することと、
    それに応じて、前記子エンティティが前記グループ作成者のカテゴリに属するときに、前記子エンティティを前記グループ作成者のカテゴリから除去することと
    をさらに含む、ホストシステム。
  5. 請求項1に記載のホストシステムであって、前記第1のエンティティが前記グループ作成者のカテゴリに属するかどうかを判定することは、前記第1のエンティティが、前記ホストシステム上で実行されるウェブブラウザのコンポーネントであるかどうかを判定することを含む、ホストシステム。
  6. 請求項1に記載のホストシステムであって、前記第1のエンティティが前記グループ作成者のカテゴリに属するかどうかを判定することは、前記第1のエンティティが、前記ホストシステム上で実行されるオペレーティングシステムのコンポーネントであるかどうかを判定することを含む、ホストシステム。
  7. 請求項1に記載のホストシステムであって、前記第1のアクションが前記マルウェア攻撃を示すかどうかを判定することは、前記第1のアクションが前記第2のアクションの前に発生したかどうかを判定することを含む、ホストシステム。
  8. 請求項1に記載のホストシステムであって、前記ヒューリスティックエンジンは、前記第1のアクションが前記マルウェア攻撃を示すかどうかを、前記第2のエンティティグループの第3のエンティティによって実施される第3のアクションにさらに従って判定するように構成される、ホストシステム。
  9. 請求項1に記載のホストシステムであって、前記第1のアクションが前記マルウェア攻撃を示すかどうかを判定することは、前記第1のアクションが、マルウェアを示すアクションのセットの一部であるかどうかを判定することを含み、前記マルウェアを示すアクションのセットのすべてのアクションは、前記第2のエンティティグループのメンバによって実施される、ホストシステム。
  10. 請求項9に記載のホストシステムであって、前記第1のアクションが、前記マルウェアを示すアクションのセットの一部であるかどうかを判定することは、前記マルウェアを示すアクションのセットのサブセットが特定の順序で発生したかどうかを判定することを含む、ホストシステム。
  11. 請求項1に記載のホストシステムであって、前記少なくとも1つのハードウェアプロセッサは、前記第1のアクションがマルウェア攻撃を示すという判定に応答して、前記第2のエンティティグループの複数のメンバを終了するように構成されたクリーンアップモジュールを実行するようにさらに構成される、ホストシステム。
  12. 請求項11に記載のホストシステムであって、前記複数のメンバは、前記第2のエンティティグループのすべてのメンバを含む、ホストシステム。
  13. 請求項11に記載のホストシステムであって、前記クリーンアップモジュールは、前記複数のメンバを終了することに備えて、
    前記第2のエンティティグループが、前記子エンティティをメンバとして有する唯一のエンティティグループであるかどうかを判定し、
    それに応じて、前記第2のエンティティグループが、前記子エンティティをメンバとして有する唯一のエンティティグループであるときに、前記複数のメンバを終了する
    ように構成される、ホストシステム。
  14. 請求項1に記載のホストシステムであって、前記少なくとも1つのハードウェアプロセッサは、前記第1のアクションがマルウェア攻撃を示すという判定に応答して、前記第2のエンティティグループのメンバの実行によって前記ホストシステムに対して引き起こされた変更のセットを元に戻すように構成されたクリーンアップモジュールを実行するようにさらに構成される、ホストシステム。
  15. ホストシステムの少なくとも1つのハードウェアプロセッサを用いて、監視される実行可能なエンティティの集まりを複数のエンティティグループに編成するステップであって、前記集まりを編成するステップは、
    前記集まりの第1のエンティティが子エンティティをスポーンしたことを検出するのに応答して、前記第1のエンティティがエンティティのグループ作成者のカテゴリに属するかどうかを判定するステップと、
    前記第1のエンティティが前記グループ作成者のカテゴリに属するかどうかを判定するのに応答して、前記第1のエンティティが前記グループ作成者のカテゴリに属するときに、
    新しいエンティティグループを前記複数のエンティティグループに追加し、
    前記子エンティティを前記新しいエンティティグループに割り当てる
    ステップと、
    前記第1のエンティティが前記グループ作成者のカテゴリに属するかどうかを判定するのに応答して、前記第1のエンティティが前記グループ作成者のカテゴリに属さないときに、
    前記第1のエンティティが第1のエンティティグループのメンバになるように、前記第1のエンティティグループを前記複数のエンティティグループから選択し、
    前記子エンティティを前記第1のエンティティグループに割り当てる
    ステップと
    を含むステップと、
    前記子エンティティによって実施される第1のアクションに応答して、前記子エンティティが第2のエンティティグループのメンバになるように、前記ホストシステムの少なくとも1つのハードウェアプロセッサを用いて、前記第2のエンティティグループを前記複数のエンティティグループから選択するステップと、
    前記第2のエンティティグループを選択するのに応答して、前記ホストシステムの少なくとも1つのハードウェアプロセッサを用いて、前記第1のアクションがマルウェア攻撃を示すかどうかを、前記第2のエンティティグループの別のメンバによって実施される第2のアクションに従って判定するステップと
    を含む方法。
  16. 請求項15に記載の方法であって、前記集まりを編成するステップは、前記第1のエンティティが前記グループ作成者のカテゴリに属するかどうかを判定するのに応答して、前記第1のエンティティが前記グループ作成者のカテゴリに属さないときに、
    前記第1のエンティティが第3のエンティティグループのメンバになるように、前記第3のエンティティグループを前記複数のエンティティグループから選択するステップと、
    前記子エンティティを前記第3のエンティティグループに割り当てるステップと
    をさらに含む、方法。
  17. 請求項15に記載の方法であって、前記集まりを編成するステップは、前記子エンティティが前記集まりの第3のエンティティにコードをインジェクトしたことを検出するのに応答して、
    前記子エンティティが第3のエンティティグループのメンバになるように、前記第3のエンティティグループを前記複数のエンティティグループから選択するステップと、
    それに応じて、前記第3のエンティティを前記第3のエンティティグループに割り当てるステップと
    をさらに含む、方法。
  18. 請求項15に記載の方法であって、前記集まりを編成するステップは、前記第1のエンティティが前記子エンティティをスポーンしたことを検出するのに応答して、
    前記子エンティティが前記グループ作成者のカテゴリに属するかどうかを判定するステップと、
    それに応じて、前記子エンティティが前記グループ作成者のカテゴリに属するときに、前記子エンティティを前記グループ作成者のカテゴリから除去するステップと
    をさらに含む、方法。
  19. 請求項15に記載の方法であって、前記第1のエンティティが前記グループ作成者のカテゴリに属するかどうかを判定するステップは、前記第1のエンティティが、前記ホストシステム上で実行されるウェブブラウザのコンポーネントであるかどうかを判定するステップを含む、方法。
  20. 請求項15に記載の方法であって、前記第1のエンティティが前記グループ作成者のカテゴリに属するかどうかを判定するステップは、前記第1のエンティティが、前記ホストシステム上で実行されるオペレーティングシステムのコンポーネントであるかどうかを判定するステップを含む、方法。
  21. 請求項15に記載の方法であって、前記第1のアクションが前記マルウェア攻撃を示すかどうかを判定するステップは、前記第1のアクションが前記第2のアクションの前に発生したかどうかを判定するステップを含む、方法。
  22. 請求項15に記載の方法であって、前記第1のアクションが前記マルウェア攻撃を示すかどうかを、前記第2のエンティティグループの第3のエンティティによって実施される第3のアクションに従って判定するステップをさらに含む、方法。
  23. 請求項15に記載の方法であって、前記第1のアクションが前記マルウェア攻撃を示すかどうかを判定するステップは、前記第1のアクションが、マルウェアを示すアクションのセットの一部であるかどうかを判定するステップを含み、前記マルウェアを示すアクションのセットのすべてのアクションは、前記第2のエンティティグループのメンバによって実施される、方法。
  24. 請求項23に記載の方法であって、前記第1のアクションが、前記マルウェアを示すアクションのセットの一部であるかどうかを判定するステップは、前記マルウェアを示すアクションのセットのサブセットが、特定の順序で発生したかどうかを判定するステップを含む、方法。
  25. 請求項15に記載の方法であって、前記第1のアクションがマルウェア攻撃を示すという判定に応答して、前記ホストシステムの少なくとも1つのハードウェアプロセッサを用いて、前記第2のエンティティグループの複数のメンバを終了するステップをさらに含む方法。
  26. 請求項25に記載の方法であって、前記複数のメンバは、前記第2のエンティティグループのすべてのメンバを含む、方法。
  27. 請求項25に記載の方法であって、
    前記ホストシステムの少なくとも1つのハードウェアプロセッサを用いて、前記第2のエンティティグループが、前記子エンティティをメンバとして有する唯一のエンティティグループであるかどうかを判定するステップと、
    それに応じて、前記第2のエンティティグループが、前記子エンティティをメンバとして有する唯一のエンティティグループであるときに、前記複数のメンバを終了するステップと
    をさらに含む方法。
  28. 請求項15に記載の方法であって、前記第1のアクションがマルウェア攻撃を示すという判定に応答して、前記ホストシステムの少なくとも1つのハードウェアプロセッサを用いて、前記第2のエンティティグループのメンバの実行によって前記ホストシステムに対して引き起こされた変更のセットを元に戻すステップをさらに含む方法。
  29. ホストシステムの少なくとも1つのハードウェアプロセッサによって実行されるときに、前記ホストシステムにエンティティマネージャおよびヒューリスティックエンジンを形成させる命令を格納した非一時的コンピュータ可読媒体であって、
    前記エンティティマネージャは、監視される実行可能なエンティティの集まりを複数のエンティティグループに編成するように構成され、前記集まりを編成することは、
    前記集まりの第1のエンティティが子エンティティをスポーンしたことを検出するのに応答して、前記第1のエンティティがエンティティのグループ作成者のカテゴリに属するかどうかを判定することと、
    前記第1のエンティティが前記グループ作成者のカテゴリに属するかどうかを判定するのに応答して、前記第1のエンティティが前記グループ作成者のカテゴリに属するときに、
    新しいエンティティグループを前記複数のエンティティグループに追加し、
    前記子エンティティを前記新しいエンティティグループに割り当てる
    ことと、
    前記第1のエンティティが前記グループ作成者のカテゴリに属するかどうかを判定するのに応答して、前記第1のエンティティが前記グループ作成者のカテゴリに属さないときに、
    前記第1のエンティティが第1のエンティティグループのメンバになるように、前記第1のエンティティグループを前記複数のエンティティグループから選択し、
    前記子エンティティを前記第1のエンティティグループに割り当てる
    ことと
    を含み、
    前記ヒューリスティックエンジンは、前記子エンティティによって実施される第1のアクションに応答して、
    前記子エンティティが第2のエンティティグループのメンバになるように、前記第2のエンティティグループを前記複数のエンティティグループから選択し、
    前記第2のエンティティグループを選択するのに応答して、前記第1のアクションがマルウェア攻撃を示すかどうかを、前記第2のエンティティグループの別のメンバによって実施される第2のアクションに従って判定する
    ように構成される、非一時的コンピュータ可読媒体。
  30. 少なくとも1つのハードウェアプロセッサおよびメモリユニットを備えるホストシステムであって、前記少なくとも1つのハードウェアプロセッサは、エンティティマネージャおよびヒューリスティックエンジンを実行するように構成され、
    前記エンティティマネージャは、エンティティ間の関係のセットに従って、監視される実行可能なエンティティの集まりを複数のエンティティグループに、前記集まりのうち少なくとも1つのエンティティが、同時に複数のエンティティグループに属するように編成するように構成され、エンティティ間の関係の前記セットは、親子の関係およびコードインジェクションの関係を含む関係のグループから選択され、
    前記ヒューリスティックエンジンは、前記少なくとも1つのエンティティによって実施される第1のアクションに応答して、
    前記少なくとも1つのエンティティが前記エンティティグループのメンバになるように、エンティティグループを前記複数のエンティティグループから選択し、
    前記エンティティグループを選択するのに応答して、前記第1のアクションがマルウェア攻撃を示すかどうかを、前記エンティティグループの別のメンバによって実施される第2のアクションに従って判定する
    ように構成される、
    ホストシステム。
JP2018522851A 2015-07-24 2016-07-04 複数のソフトウェアエンティティにわたって悪意あるビヘイビアを追跡するためのシステムおよび方法 Active JP6829718B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/808,173 US10089465B2 (en) 2015-07-24 2015-07-24 Systems and methods for tracking malicious behavior across multiple software entities
US14/808,173 2015-07-24
PCT/EP2016/065737 WO2017016814A1 (en) 2015-07-24 2016-07-04 Systems and methods for tracking malicious behavior across multiple software entities

Publications (2)

Publication Number Publication Date
JP2018524756A true JP2018524756A (ja) 2018-08-30
JP6829718B2 JP6829718B2 (ja) 2021-02-10

Family

ID=56511548

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018522851A Active JP6829718B2 (ja) 2015-07-24 2016-07-04 複数のソフトウェアエンティティにわたって悪意あるビヘイビアを追跡するためのシステムおよび方法

Country Status (12)

Country Link
US (2) US10089465B2 (ja)
EP (1) EP3326100B1 (ja)
JP (1) JP6829718B2 (ja)
KR (1) KR102307534B1 (ja)
CN (1) CN107851155B (ja)
AU (1) AU2016299175B2 (ja)
CA (1) CA2990313C (ja)
ES (1) ES2794624T3 (ja)
HK (1) HK1247296A1 (ja)
IL (1) IL256598B (ja)
RU (1) RU2683152C1 (ja)
WO (1) WO2017016814A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023506101A (ja) * 2020-11-12 2023-02-15 シキューブ カンパニー,リミテッド マルチプロセスクラスタリングに基づくランサムウェア攻撃検知装置、方法、およびその方法を実現するためのプログラムを記録した記録媒体

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10492181B2 (en) * 2016-01-20 2019-11-26 Qualcomm Incorporated Communication of uplink control information
US10181035B1 (en) * 2016-06-16 2019-01-15 Symantec Corporation System and method for .Net PE file malware detection
US10534910B1 (en) * 2016-10-04 2020-01-14 Hewlett-Packard Development Company, L.P. Using threat model to monitor host execution
US11200314B2 (en) * 2016-12-15 2021-12-14 Hewlett-Packard Development Company, L.P. Ransomware attack monitoring
US9734337B1 (en) * 2017-01-24 2017-08-15 Malwarebytes Inc. Behavior-based ransomware detection
US11003775B2 (en) 2017-09-11 2021-05-11 Carbon Black, Inc. Methods for behavioral detection and prevention of cyberattacks, and related apparatus and techniques
CN108595327B (zh) * 2018-04-16 2023-06-06 深圳市腾讯网络信息技术有限公司 应用执行脚本的方法、应用测试方法、装置和计算机设备
EP3614286A1 (en) * 2018-08-22 2020-02-26 Gemalto Sa Method for securing a computer system
US11657387B2 (en) * 2018-04-19 2023-05-23 Thales Dis France Sas Method for securing a computer system
US11138313B2 (en) * 2018-08-13 2021-10-05 Juniper Networks, Inc. Malware detection based on user interactions
US11093715B2 (en) * 2019-03-29 2021-08-17 Samsung Electronics Co., Ltd. Method and system for learning and enabling commands via user demonstration
US11468881B2 (en) 2019-03-29 2022-10-11 Samsung Electronics Co., Ltd. Method and system for semantic intelligent task learning and adaptive execution
US11238154B2 (en) 2019-07-05 2022-02-01 Mcafee, Llc Multi-lateral process trees for malware remediation
EP3825884A1 (en) * 2019-11-22 2021-05-26 Traced Ltd. Computer-implemented method of determining system access operation risk on a mobile device
US11689560B2 (en) * 2019-11-25 2023-06-27 Cisco Technology, Inc. Network-wide malware mapping
US11941104B2 (en) * 2020-12-03 2024-03-26 Red Hat, Inc. Utilizing extended file attributes for working directory
US20230229761A1 (en) * 2021-04-20 2023-07-20 Assured Information Security, Inc. Prevention and remediation of malware based on selective presentation of files to processes
CN114006775B (zh) * 2021-12-31 2022-04-12 北京微步在线科技有限公司 一种入侵事件的检测方法及装置
US20230267197A1 (en) * 2022-02-18 2023-08-24 Halcyon Tech, Inc. Ransomware Countermeasures
US20240070268A1 (en) * 2022-08-23 2024-02-29 Bitdefender IPR Management Ltd. Aggregate Event Profiles for Detecting Malicious Mobile Applications

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090077664A1 (en) * 2006-04-27 2009-03-19 Stephen Dao Hui Hsu Methods for combating malicious software
JP2010146457A (ja) * 2008-12-22 2010-07-01 Kddi Corp 情報処理システムおよびプログラム
JP2010182020A (ja) * 2009-02-04 2010-08-19 Kddi Corp 不正検知装置およびプログラム
JP2011501279A (ja) * 2007-10-15 2011-01-06 ベイジン ライジング インフォメーション テクノロジー カンパニー、リミテッド コンピュータプログラムの悪意ある行為を見つける方法及び装置
JP2014531647A (ja) * 2011-09-09 2014-11-27 ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. 基準ベースラインに基づき、イベントシーケンス中の時間的位置に従ってイベントを評価するシステム及び方法
US20150101049A1 (en) * 2013-10-04 2015-04-09 Bitdefender IPR Management Ltd. Complex Scoring for Malware Detection

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7203962B1 (en) 1999-08-30 2007-04-10 Symantec Corporation System and method for using timestamps to detect attacks
US7748039B2 (en) 2002-08-30 2010-06-29 Symantec Corporation Method and apparatus for detecting malicious code in an information handling system
WO2004107647A1 (en) 2003-05-17 2004-12-09 Microsoft Corporation Mechanism for evaluating security risks
US20060015940A1 (en) * 2004-07-14 2006-01-19 Shay Zamir Method for detecting unwanted executables
US7546601B2 (en) 2004-08-10 2009-06-09 International Business Machines Corporation Apparatus, system, and method for automatically discovering and grouping resources used by a business process
US7870612B2 (en) 2006-09-11 2011-01-11 Fujian Eastern Micropoint Info-Tech Co., Ltd Antivirus protection system and method for computers
US7908660B2 (en) 2007-02-06 2011-03-15 Microsoft Corporation Dynamic risk management
KR100897849B1 (ko) 2007-09-07 2009-05-15 한국전자통신연구원 비정상 프로세스 탐지 방법 및 장치
US7559086B2 (en) 2007-10-02 2009-07-07 Kaspersky Lab, Zao System and method for detecting multi-component malware
US8037536B2 (en) 2007-11-14 2011-10-11 Bank Of America Corporation Risk scoring system for the prevention of malware
US8904536B2 (en) 2008-08-28 2014-12-02 AVG Netherlands B.V. Heuristic method of code analysis
US8701192B1 (en) 2009-06-30 2014-04-15 Symantec Corporation Behavior based signatures
US8590045B2 (en) 2009-10-07 2013-11-19 F-Secure Oyj Malware detection by application monitoring
CN102054149B (zh) * 2009-11-06 2013-02-13 中国科学院研究生院 一种恶意代码行为特征提取方法
US8850579B1 (en) 2009-11-13 2014-09-30 SNS Soft LLC Application of nested behavioral rules for anti-malware processing
KR101057432B1 (ko) 2010-02-23 2011-08-22 주식회사 이세정보 프로세스의 행위 분석을 통한 유해 프로그램을 실시간으로 탐지하고 차단하는 시스템, 방법, 프로그램 및 기록매체
CN101944167B (zh) * 2010-09-29 2011-12-21 中国科学院计算技术研究所 识别恶意程序的方法及系统
US8555385B1 (en) 2011-03-14 2013-10-08 Symantec Corporation Techniques for behavior based malware analysis
WO2012135192A2 (en) * 2011-03-28 2012-10-04 Mcafee, Inc. System and method for virtual machine monitor based anti-malware security
US9323928B2 (en) 2011-06-01 2016-04-26 Mcafee, Inc. System and method for non-signature based detection of malicious processes
CN102222194A (zh) * 2011-07-14 2011-10-19 哈尔滨工业大学 Linux主机计算环境安全保护的模块及方法
CN102750475B (zh) * 2012-06-07 2017-08-15 中国电子科技集团公司第三十研究所 基于虚拟机内外视图交叉比对恶意代码行为检测方法及系统
CN103634264A (zh) * 2012-08-20 2014-03-12 江苏中科慧创信息安全技术有限公司 一种基于行为分析的主动诱捕方法
US8850581B2 (en) 2012-11-07 2014-09-30 Microsoft Corporation Identification of malware detection signature candidate code
CN102984140B (zh) * 2012-11-21 2015-06-17 中国人民解放军国防科学技术大学 基于行为片段共享的恶意软件特征融合分析方法及系统
US20140201208A1 (en) 2013-01-15 2014-07-17 Corporation Symantec Classifying Samples Using Clustering
CN103164649B (zh) * 2013-02-18 2016-08-17 北京神州绿盟信息安全科技股份有限公司 进程行为分析方法及系统
RU2531861C1 (ru) * 2013-04-26 2014-10-27 Закрытое акционерное общество "Лаборатория Касперского" Система и способ оценки вредоносности кода, исполняемого в адресном пространстве доверенного процесса
EP3044718A4 (en) 2013-09-10 2017-05-17 Symantec Corporation Systems and methods for using event-correlation graphs to detect attacks on computing systems

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090077664A1 (en) * 2006-04-27 2009-03-19 Stephen Dao Hui Hsu Methods for combating malicious software
JP2011501279A (ja) * 2007-10-15 2011-01-06 ベイジン ライジング インフォメーション テクノロジー カンパニー、リミテッド コンピュータプログラムの悪意ある行為を見つける方法及び装置
JP2010146457A (ja) * 2008-12-22 2010-07-01 Kddi Corp 情報処理システムおよびプログラム
JP2010182020A (ja) * 2009-02-04 2010-08-19 Kddi Corp 不正検知装置およびプログラム
JP2014531647A (ja) * 2011-09-09 2014-11-27 ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. 基準ベースラインに基づき、イベントシーケンス中の時間的位置に従ってイベントを評価するシステム及び方法
US20150101049A1 (en) * 2013-10-04 2015-04-09 Bitdefender IPR Management Ltd. Complex Scoring for Malware Detection

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023506101A (ja) * 2020-11-12 2023-02-15 シキューブ カンパニー,リミテッド マルチプロセスクラスタリングに基づくランサムウェア攻撃検知装置、方法、およびその方法を実現するためのプログラムを記録した記録媒体
JP7315180B2 (ja) 2020-11-12 2023-07-26 シキューブ カンパニー,リミテッド マルチプロセスクラスタリングに基づくランサムウェア攻撃検知装置、方法、およびその方法を実現するためのプログラムを記録した記録媒体

Also Published As

Publication number Publication date
AU2016299175A1 (en) 2018-01-18
ES2794624T3 (es) 2020-11-18
AU2016299175B2 (en) 2021-07-15
IL256598B (en) 2020-01-30
KR102307534B1 (ko) 2021-10-05
CA2990313A1 (en) 2017-02-02
WO2017016814A1 (en) 2017-02-02
CA2990313C (en) 2021-10-12
IL256598A (en) 2018-02-28
US20170024561A1 (en) 2017-01-26
RU2683152C1 (ru) 2019-03-26
JP6829718B2 (ja) 2021-02-10
US20190034634A1 (en) 2019-01-31
US10089465B2 (en) 2018-10-02
US10706151B2 (en) 2020-07-07
HK1247296A1 (zh) 2018-09-21
EP3326100A1 (en) 2018-05-30
CN107851155A (zh) 2018-03-27
CN107851155B (zh) 2021-02-26
EP3326100B1 (en) 2020-03-25
KR20180032566A (ko) 2018-03-30

Similar Documents

Publication Publication Date Title
US10706151B2 (en) Systems and methods for tracking malicious behavior across multiple software entities
JP6706273B2 (ja) インタープリタ仮想マシンを用いた挙動マルウェア検出
US9323931B2 (en) Complex scoring for malware detection
EP3039608B1 (en) Hardware and software execution profiling
US8904537B2 (en) Malware detection
US8707434B2 (en) System and method for indirect interface monitoring and plumb-lining
JP2017527931A (ja) マルウェア検出の方法及びそのシステム
WO2015113052A1 (en) Detecting and preventing execution of software exploits
AU2014330136A1 (en) Complex scoring for malware detection
KR102116573B1 (ko) 컴퓨터 보안 작동을 최적화하기 위한 동적 명성 표시자
Eresheim et al. The evolution of process hiding techniques in malware-current threats and possible countermeasures
Mahapatra et al. An online cross view difference and behavior based kernel rootkit detector
Kirmani et al. Analyzing detection avoidance of malware by process hiding
Zaheri et al. Preventing reflective dll injection on uwp apps

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190124

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191029

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191129

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20200226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200319

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200821

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20201120

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201201

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201225

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210122

R150 Certificate of patent or registration of utility model

Ref document number: 6829718

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250