JP6317434B2 - 評判インジケータを使用してマルウェアスキャニングを容易にするためのシステムおよび方法 - Google Patents

評判インジケータを使用してマルウェアスキャニングを容易にするためのシステムおよび方法 Download PDF

Info

Publication number
JP6317434B2
JP6317434B2 JP2016517435A JP2016517435A JP6317434B2 JP 6317434 B2 JP6317434 B2 JP 6317434B2 JP 2016517435 A JP2016517435 A JP 2016517435A JP 2016517435 A JP2016517435 A JP 2016517435A JP 6317434 B2 JP6317434 B2 JP 6317434B2
Authority
JP
Japan
Prior art keywords
module
client system
target process
reputation
malicious
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.)
Active
Application number
JP2016517435A
Other languages
English (en)
Other versions
JP2016538614A (ja
JP2016538614A5 (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 JP2016538614A publication Critical patent/JP2016538614A/ja
Publication of JP2016538614A5 publication Critical patent/JP2016538614A5/ja
Application granted granted Critical
Publication of JP6317434B2 publication Critical patent/JP6317434B2/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
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security

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)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Computing Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)

Description

[0001]本発明は、コンピュータシステムをマルウェアから保護するためのシステムおよび方法に関する。
[0002]マルウェアとしても知られている、悪意のあるソフトウェアは、世界中で多数のコンピュータシステムに影響を及ぼす。コンピュータウィルス、ワーム、ルートキット、および、スパイウェアなどのその多くの形式で、マルウェアは、深刻な危険を何百万ものコンピュータユーザに生じさせ、そのことによってそれらのユーザは、中でも、データおよび機密情報の損失、個人情報の盗難(identity theft)、ならびに、生産性の損失に対して脆弱になる。
[0003]セキュリティソフトウェアは、ユーザのコンピュータシステムを汚染するマルウェアを検出するために、および加えて、そのようなマルウェアを除去する、または、そのようなマルウェアの実行(execution)を停止するために使用され得る。いくつものマルウェア検出技法が、当技術分野で知られている。一部は、マルウェアエージェントのコードの断片を、マルウェアを指し示すシグネチャのライブラリとマッチングすることに依拠する。他の従来の方法は、マルウェアエージェントのマルウェアを指し示す挙動の集合を検出する。
[0004]セキュリティソフトウェアは、相当量の計算負担をユーザのコンピュータシステムにかける場合がある。マルウェアエージェントの急増によって、マルウェア検出ルーチン、シグネチャデータベース、および、挙動ヒューリスティックの複雑度が着実に増大し、そのことによって、アンチマルウェア動作がさらに減速する場合がある。計算コストを低下させるために、セキュリティソフトウェアは、様々な最適化プロシージャを組み込む場合があるが、各々のそのようなプロシージャは、典型的には、マルウェアの特定の事例またはカテゴリに対処するものであり、新しく発見されるマルウェアに対して良好に変形しない場合がある。
[0005]脅威の急速に変化する集合に遅れずについてゆくために、高速の、ロバストな、および、スケーラブルなアンチマルウェアソリューションを開発することへの強い関心が存在する。
[0006]1つの態様によれば、クライアントシステムは、対象プロセスを実行する(execute)ように構成される少なくとも1つのプロセッサを備え、対象プロセスは、メイン実行可能モジュールのインスタンスと、共有ライブラリのインスタンスとを含み、少なくとも1つのプロセッサは、サーバから、メイン実行可能モジュールの第1のモジュール評判インジケータ、および、共有ライブラリの第2のモジュール評判インジケータを受信することであって、第1のモジュール評判インジケータが、メイン実行可能モジュールの別のインスタンスの挙動によって決定される、受信することを行うようにさらに構成される。サーバは、アンチマルウェアトランザクションを、そのクライアントシステムを含む複数のクライアントシステムと実行する(perform)ように構成される。少なくとも1つのプロセッサは、第1および第2のモジュール評判インジケータを受信することに応じて、対象プロセスのプロセス評判インジケータを第1および第2のモジュール評判インジケータによって決定することであって、プロセス評判インジケータが、対象プロセスが悪意のあるものである公算が大きいか否かを指示する、決定することを行うようにさらに構成される。少なくとも1つのプロセッサは、対象プロセスのプロセス評判インジケータを決定することに応じて、アンチマルウェアスキャンをプロセス評判インジケータによって構成することであって、アンチマルウェアスキャンが、クライアントシステムにより、対象プロセスが悪意のあるものであるかどうかを判定するために実行される、構成することを行うようにさらに構成される。
[0007]別の態様によれば、サーバは、メイン実行可能モジュールの第1のモジュール評判インジケータ、および、共有ライブラリの第2のモジュール評判インジケータを決定することであって、第1のモジュール評判インジケータが、メイン実行可能モジュールのインスタンスの挙動によって決定される、決定することを行うように構成される少なくとも1つのプロセッサを備える。少なくとも1つのプロセッサは、第1および第2のモジュール評判インジケータを決定することに応じて、第1および第2のモジュール評判インジケータを、アンチマルウェアトランザクションをサーバと実行するように構成される、複数のクライアントシステムのクライアントシステムに送信するようにさらに構成される。クライアントシステムは、対象プロセスを実行するように構成され、対象プロセスは、第1の共有ライブラリの別のインスタンスと、第2の共有ライブラリのインスタンスとを含む。クライアントシステムは、対象プロセスのプロセス評判インジケータを第1および第2のモジュール評判インジケータによって決定することであって、プロセス評判インジケータが、対象プロセスが悪意のあるものである公算が大きいか否かを指示する、決定することを行うようにさらに構成される。クライアントシステムは、プロセス評判インジケータを決定することに応じて、アンチマルウェアスキャンをプロセス評判インジケータによって構成することであって、アンチマルウェアスキャンが、クライアントシステムにより、対象プロセスが悪意のあるものであるかどうかを判定するために実行される、構成することを行うようにさらに構成される。
[0008]別の態様によれば、非一時的コンピュータ可読媒体は、命令を記憶し、それらの命令は、実行されるとき、対象プロセスを実行するクライアントシステムの少なくとも1つのプロセッサであって、対象プロセスが、メイン実行可能モジュールのインスタンスと、共有ライブラリのインスタンスとを含む、少なくとも1つのプロセッサを、サーバから、メイン実行可能モジュールの第1のモジュール評判インジケータ、および、共有ライブラリの第2のモジュール評判インジケータを受信することであって、第1のモジュール評判インジケータが、メイン実行可能モジュールの別のインスタンスの挙動によって決定される、受信することを行うように構成する。サーバは、アンチマルウェアトランザクションを、そのクライアントシステムを含む複数のクライアントシステムと実行するように構成される。少なくとも1つのプロセッサは、第1および第2のモジュール評判インジケータを受信することに応じて、対象プロセスのプロセス評判インジケータを第1および第2のモジュール評判インジケータによって決定することであって、プロセス評判インジケータが、対象プロセスが悪意のあるものである公算が大きいかどうかを指示する、決定することを行うようにさらに構成される。少なくとも1つのプロセッサは、対象プロセスのプロセス評判インジケータを決定することに応じて、アンチマルウェアスキャンをプロセス評判インジケータによって構成することであって、アンチマルウェアスキャンが、クライアントシステムにより、対象プロセスが悪意のあるものであるかどうかを判定するために実行される、構成することを行うようにさらに構成される。
[0009]別の態様によれば、クライアントシステムは、対象プロセスを実行するように構成される少なくとも1つのプロセッサを備え、対象プロセスは、第1の実行可能モジュールのインスタンスと、第2の実行可能モジュールのインスタンスとを含む。少なくとも1つのプロセッサは、サーバから、第1の実行可能モジュールの第1のモジュール評判インジケータ、および、第2の実行可能モジュールの第2のモジュール評判インジケータを受信することであって、第1のモジュール評判インジケータが、第1の実行可能モジュールの別のインスタンスの挙動によって決定される、受信することを行うようにさらに構成される。サーバは、アンチマルウェアトランザクションを、そのクライアントシステムを含む複数のクライアントシステムと実行するように構成される。少なくとも1つのプロセッサは、第1および第2のモジュール評判インジケータを受信することに応じて、対象プロセスのプロセス評判インジケータを第1および第2のモジュール評判インジケータによって決定することであって、プロセス評判インジケータが、対象プロセスが悪意のあるものである公算が大きいか否かを指示する、決定することを行うようにさらに構成される。少なくとも1つのプロセッサは、対象プロセスのプロセス評判インジケータを決定することに応じて、アンチマルウェアスキャンをプロセス評判インジケータによって構成することであって、アンチマルウェアスキャンが、クライアントシステムにより、対象プロセスが悪意のあるものであるかどうかを判定するために実行される、構成することを行うようにさらに構成される。
[0010]別の態様によれば、サーバは、アンチマルウェアトランザクションを複数のクライアントシステムと実行するように構成される少なくとも1つのプロセッサを備え、それらの複数のクライアントシステムは、クライアントシステムを含む。そのクライアントシステムは、対象プロセスを実行するように構成され、対象プロセスは、第1の実行可能モジュールのインスタンスと、第2の実行可能モジュールのインスタンスとを含む。少なくとも1つのプロセッサは、第1の実行可能モジュールの第1のモジュール評判インジケータ、および、第2の実行可能モジュールの第2のモジュール評判インジケータを決定することであって、第1のモジュール評判インジケータが、第1の実行可能モジュールの別のインスタンスの挙動によって決定される、決定することと、第1および第2のモジュール評判インジケータを決定することに応じて、第1および第2のモジュール評判インジケータをクライアントシステムに送信することとを行うようにさらに構成される。クライアントシステムは、対象プロセスのプロセス評判インジケータを第1および第2のモジュール評判インジケータによって決定することであって、プロセス評判インジケータが、対象プロセスが悪意のあるものである公算が大きいか否かを指示する、決定することを行うようにさらに構成される。クライアントシステムは、プロセス評判インジケータを決定することに応じて、アンチマルウェアスキャンをプロセス評判インジケータによって構成することであって、アンチマルウェアスキャンが、クライアントシステムにより、対象プロセスが悪意のあるものであるかどうかを判定するために実行される、構成することを行うようにさらに構成される。
[0011]本発明の前述の態様および利点は、以下の詳述される説明を読むことで、および、図面を参照することで、より良好に理解されることになろう。
[0012]本発明の一部の実施形態による、複数のクライアントシステム、および、評判サーバを備える、例示的なアンチマルウェアシステムを示す図である。 [0013]本発明の一部の実施形態による、マルウェアから保護される、企業イントラネットなどの例示的な隔離環境を示す図である。 [0014]図3−Aは、本発明の一部の実施形態による、クライアントシステムの例示的なハードウェア構成を例証する図である。[0015]図3−Bは、本発明の一部の実施形態による、評判サーバの例示的なハードウェア構成を示す図である。 [0016]本発明の一部の実施形態による、クライアントシステムをマルウェアから保護するセキュリティアプリケーションを含む、ソフトウェアオブジェクトの例示的な集合を示す図である。 [0017]本発明の一部の実施形態による、クライアントシステム上で実行するソフトウェアオブジェクトの例示的な集合を示す図であり、オブジェクトはプロセッサ特権レベルの観点から表される。 [0018]本発明の一部の実施形態による、評判マネージャおよびアンチマルウェアエンジンを含む例示的なセキュリティアプリケーションの線図を示す図である。 [0019]本発明の一部の実施形態による、図6の評判マネージャとアンチマルウェアエンジンとの間の例示的なデータ交換を示す図である。 [0020]本発明の一部の実施形態による、データを評判キャッシュおよび評判サーバから受信する例示的な評判マネージャを例証する図である。 [0021]各々のプロセスが複数の実行可能モジュールを含む、クライアントシステム上で実行する2つのプロセスを示し、本発明の一部の実施形態による、各々のプロセスに対して決定されるプロセス評判インジケータ、および、各々の実行可能モジュールに対して決定されるモジュール評判インジケータをさらに示す図である。 [0022]図10−Aは、本発明の一部の実施形態による、例示的なクラウド評判インジケータを例証する図である。[0023]図10−Bは、本発明の一部の実施形態による、例示的なモジュール評判インジケータを示す図である。[0024]図10−Cは、本発明の一部の実施形態による、例示的なプロセス評判インジケータを示す図である。 [0025]本発明の一部の実施形態による、図7〜8のアクティビティモニタにより実行されるステップの例示的なシーケンスを示す図である。 [0026]本発明の一部の実施形態による、図7〜8の判断ユニットにより実行されるステップの例示的なシーケンスを示す図である。 [0027]本発明の一部の実施形態による、プロセス起動を指示する通知を受信する際に判断ユニットにより実行されるステップの例示的なシーケンスを示す図である。 [0028]本発明の一部の実施形態による、ローカル評判サーバにより実行されるステップの例示的なシーケンスを示す図である。 [0029]本発明の一部の実施形態による、セキュリティ通知を受信する際に判断ユニット(図7〜8)により実行されるステップの例示的なシーケンスを例証する図である。 [0030]本発明の一部の実施形態による、アンチマルウェアエンジン(図6〜7)により実行されるステップの例示的なシーケンスを示す図である。 [0031]本発明の一部の実施形態による、図1の評判更新システムの例示的な構成を示す図である。 [0032]本発明の一部の実施形態による、評判更新システムにより実行されるステップの例示的なシーケンスを例証する図である。
[0033]以下の説明では、構造間のすべての記載される接続は、直接的な動作可能接続、または、中間構造を介した間接的な動作可能接続であり得るということが理解される。要素の集合は、1つまたは複数の要素を含む。要素のいかなる記載も、少なくとも1つの要素を指すと理解される。複数の要素は、少なくとも2つの要素を含む。別段に要されない限り、いかなる説明される方法ステップも、必ずしも特定の例証される順序で実行される必要はない。第2の要素から導出される第1の要素(例えば、データ)は、第2の要素に等しい第1の要素、ならびに、第2の要素、および随意には他のデータを処理することにより生成される第1の要素を包含する。決定または判断をパラメータによって行うことは、決定または判断を、パラメータによって、および随意には他のデータによって行うことを包含する。別段に指定されない限り、何らかの量/データのインジケータは、量/データ自体、または、量/データ自体とは異なるインジケータであり得る。別段に指定されない限り、プロセスは、コンピュータプログラムのインスタンスを表し、コンピュータプログラムは、指定されるタスクをコンピュータシステムが実行するように決定する命令のシーケンスである。別段に指定されない限り、ハッシュはハッシュ関数の出力である。別段に指定されない限り、ハッシュ関数は、シンボル(例えば、文字、ビット)の可変長シーケンスを、数字またはビットストリングなどの固定長データに対応付けする数学的変換である。コンピュータ可読媒体は、磁気、光学、および、半導体記憶媒体(例えば、ハードドライブ、光学ディスク、フラッシュメモリ、DRAM)などの非一時的媒体、ならびに、導電性ケーブルおよび光学ファイバリンクなどの通信リンクを包含する。一部の実施形態によれば、本発明は特に、本明細書で説明される方法を実行するようにプログラムされるハードウェア(例えば、1つまたは複数のプロセッサ)を備えるコンピュータシステム、ならびに、本明細書で説明される方法を実行するための命令を符号化するコンピュータ可読媒体を提供する。
[0034]以下の説明は、本発明の実施形態を、例としてであって、必ずしも限定としてではなく例証するものである。
[0035]図1は、本発明の一部の実施形態による、例示的なアンチマルウェアシステム5を示す。システム5は、通信ネットワーク20によって接続される、クライアントシステム10a〜cの集合、および、中央評判サーバ14を備える。中央評判サーバは、中央評判データベース16に、および、評判更新システム18にさらに接続され得る。一部の実施形態ではシステム5は、ネットワーク20に接続される、隔離環境12a〜b(実例として、企業イントラネット)の集合をさらに備え得る。ネットワーク20は、インターネットなどのワイドエリアネットワークであり得るものであり、一方でネットワーク20の部分は、さらにはローカルエリアネットワーク(LAN)を含み得る。
[0036]クライアントシステム10a〜cは、各々がプロセッサ、メモリ、および、記憶装置を有し、Windows(登録商標)、MacOS(登録商標)、または、Linux(登録商標)などのオペレーティングシステムを走らせる、エンドユーザコンピュータを含み得る。一部のクライアントコンピュータシステム10a〜cは、タブレットPC、移動電話、携帯情報端末(PDA)、ウェアラブルコンピューティングデバイスなどの、移動コンピューティングおよび/もしくは電気通信デバイス、TVもしくは音楽プレーヤなどの家庭用デバイス、または、プロセッサおよびメモリユニットを含み、マルウェア保護を要する、任意の他の電子デバイスであり得る。一部の実施形態では、クライアントシステム10a〜cは個々の顧客を表す場合があり、または、いくつものクライアントシステムが同じ顧客に属する場合がある。
[0037]一部の実施形態では中央評判サーバ14は、クライアントシステム10a〜cの要求で評判データをハンドリングするように構成される。評判データベース16は、下記で詳細に説明されるように、複数の実行可能モジュールに対して決定されるモジュール評判インジケータなどの評判データのリポジトリを備え得る。例示的な実施形態ではサーバ14は、評判データをオンデマンドで中央評判データベース16から検索し得るものであり、そのような評判データをクライアントシステム10a〜cに送信し得る。一部の実施形態では評判更新システム18は、下記でさらに説明されるように、評判データベース16に対する評判データを保存および/または更新するように構成される。
[0038]図2は、ネットワーク20に接続される、企業イントラネットなどの隔離環境12を例証する。環境12は、すべてがローカルネットワーク120に接続される、クライアントシステム10d〜eの集合、および、ローカル評判サーバ114を備える。ネットワーク120は、実例としてローカルエリアネットワークを表し得る。一部の実施形態では隔離環境12は、ローカルネットワーク120に接続される、サーバ評判キャッシュ22、および、環境固有の評判データベース24をさらに備え得る。ローカル評判サーバ114は、クライアントシステム10d〜eの要求で評判データをハンドリングして、実例として、評判データを評判キャッシュ22および/または環境固有の評判データベース24から検索することと、そのようなデータを、要求するクライアントシステム10d〜eに送信することとを行うように構成され得る。キャッシュ22およびデータベース24は、下記で示されるように、モジュール評判インジケータなどの評判データを記憶するように構成され得る。一部の実施形態ではローカル評判サーバ114は、中央評判サーバ14と通信して、実例として、評判データをサーバ14から検索することと、そのようなデータを、キャッシュ22および/またはローカル評判データベース114内に記憶することとを行うようにさらに構成され得る。
[0039]図3−Aは、本発明の一部の実施形態による、アンチマルウェア動作を実行する、図1〜2のクライアントシステム10a〜eなどのクライアントシステム10の例示的なハードウェア構成を示す。クライアントシステム10は、中でも、エンタープライズサーバなどの企業コンピューティングデバイス、または、パーソナルコンピュータもしくはスマートフォンなどのエンドユーザデバイスを表し得る。図3は、コンピュータシステムを例証の目的で示すが、移動電話またはタブレットなどの他のクライアントシステムは、異なる構成を有し得る。一部の実施形態ではシステム10は、すべてがバス44の集合により接続される、プロセッサ32、メモリユニット34、入力デバイス36の集合、出力デバイス38の集合、記憶デバイス40の集合、および、ネットワークアダプタ42の集合を含む、物理デバイスの集合を備える。
[0040]一部の実施形態ではプロセッサ32は、信号および/またはデータの集合によって、計算演算および/または論理演算を実行するように構成される物理デバイス(例えば、マルチコア集積回路)を備える。一部の実施形態では、そのような論理演算は、プロセッサ32に、プロセッサ命令のシーケンス(例えば、機械コード、または、他のタイプのソフトウェア)の形式で引き渡される。メモリユニット34は、命令を実行する(carrying out)過程でプロセッサ32によりアクセスまたは生成されるデータ/信号を記憶する、非一時的コンピュータ可読媒体(例えば、RAM)を備え得る。入力デバイス36は、ユーザがデータおよび/または命令をクライアントシステム10内に導入することを可能とする、それぞれのハードウェアインターフェイスおよび/またはアダプタを含む、中でも、コンピュータキーボード、マウス、および、マイクロホンを含み得る。出力デバイス38は、システム10がデータをユーザに伝達することを可能とする、中でも表示スクリーンおよびスピーカ、ならびに、グラフィックカードなどのハードウェアインターフェイス/アダプタを含み得る。一部の実施形態では入力デバイス36および出力デバイス38は、タッチスクリーンデバイスの事例でのように、共通のひとまとまりのハードウェアを共有する場合がある。記憶デバイス40は、ソフトウェア命令および/またはデータの、非一時的記憶、読み出し、および、書き込みを可能にするコンピュータ可読媒体を含む。例示的な記憶デバイス40は、磁気および光学のディスクおよびフラッシュメモリデバイス、ならびに、CDおよび/またはDVDのディスクなどのリムーバブル媒体およびドライブを含む。ネットワークアダプタ42の集合は、クライアントシステム10が、コンピュータネットワーク、例えばネットワーク20、120に、および/または、他のデバイス/コンピュータシステムに接続することを可能にする。バス44は、クライアントシステム10のデバイス32〜42の相互通信を可能にする、複数のシステム、周辺装置、および、チップセットバス、ならびに/または、すべての他の回路網を集団的に表す。例えばバス44は、中でも、プロセッサ32をメモリ34に接続するノースブリッジ、および/または、プロセッサ32をデバイス36〜42に接続するサウスブリッジを備え得る。
[0041]図3−Bは、図1での中央評判サーバ14、または、図2でのローカル評判サーバ114などの、評判サーバの例示的なハードウェア構成を示す。サーバ14は、すべてがバス144の集合により接続される、サーバプロセッサ132、サーバメモリ134、サーバ記憶デバイス140の集合、および、ネットワークアダプタ142の集合を備える。デバイス132、134、140、および、142の動作は、上記で説明されたデバイス32、34、40、および、42の動作とよく似たものであり得る。実例としてサーバプロセッサ132は、信号および/またはデータの集合によって、計算演算および/または論理演算を実行するように構成される物理デバイスを備え得る。サーバメモリ134は、計算を実行する過程でプロセッサ132によりアクセスまたは生成されるデータ/信号を記憶する、非一時的コンピュータ可読媒体(例えば、RAM)を備え得る。ネットワークアダプタ142は、サーバ14が、ネットワーク20、120などのコンピュータネットワークに接続することを可能にする。
[0042]図4は、本発明の一部の実施形態による、クライアントシステム10上で実行するソフトウェアオブジェクトの例示的な集合を示す。ゲストオペレーティングシステム(OS)46は、クライアントシステム10のハードウェアに対するインターフェイスを提供するソフトウェアを含み、ソフトウェアアプリケーション52a〜cおよび54の集合に対するホストとして働く。OS46は、中でも、Windows(登録商標)、MacOS(登録商標)、Linux(登録商標)、iOS(登録商標)、または、Android(商標)などの任意の広く利用可能なオペレーティングシステムを含み得る。アプリケーション52a〜cは、中でも、ワード処理、画像処理、データベース、ブラウザ、および、電子通信アプリケーションを含み得る。一部の実施形態ではセキュリティアプリケーション54は、下記で詳述されるようなアンチマルウェア動作を実行して、クライアントシステム10をマルウェアから保護するように構成される。セキュリティアプリケーション54は、スタンドアロンプログラムであり得るものであり、または、中でも、アンチマルウェア、アンチスパム、および、アンチスパイウェアコンポーネントを含む、ソフトウェアスイートの部分を形成し得る。
[0043]図5は、当技術分野ではレイヤまたは保護リングとしても知られている、プロセッサ特権レベルの観点から表される、クライアントシステム10上で実行するソフトウェアオブジェクトの集合を例証する。一部の実施形態では、各々のそのようなレイヤまたは保護リングは、それぞれのプロセッサ特権レベルで実行するソフトウェアオブジェクトが実行することを可能とされる、命令の集合により特徴付けられる。ソフトウェアオブジェクトが、それぞれの特権レベルの内部で可能とされない命令を実行することを試行するとき、その試行は、例外または障害などのプロセッサイベントをトリガし得る。オペレーティングシステム46の大部分のコンポーネントは、当技術分野ではカーネルレベルまたはカーネルモードとして知られているプロセッサ特権レベル(例えば、Intelプラットフォーム上のリング0)で実行する。アプリケーション52は、OS46より劣るプロセッサ特権(例えば、リング3またはユーザモード)で実行する。
[0044]一部の実施形態では、セキュリティアプリケーション54の部分は、ユーザレベルプロセッサ特権、すなわち、アプリケーション52と同じレベルで実行し得る。実例としてそのような部分は、グラフィカルユーザインターフェイスを含み得るものであり、そのグラフィカルユーザインターフェイスは、ユーザに、それぞれのVM上で検出される何らかのマルウェアまたはセキュリティ脅威を知らせ、例えば、アプリケーション54に対する所望される構成オプションを指示するユーザからの入力を受信するものである。アプリケーション54の他の部分は、カーネル特権レベルで実行し得る。実例としてアプリケーション54は、アンチマルウェアドライバ55をインストールし得るものであり、そのアンチマルウェアドライバ55は、例えば、マルウェアシグネチャに対してメモリをスキャンするための、ならびに/または、OS46上で実行するプロセスおよび/もしくは他のソフトウェアオブジェクトの、マルウェアを指し示す挙動を検出するための、アンチマルウェアアプリケーション54に対するカーネルレベル機能性を提供するものである。一部の実施形態では、セキュリティアプリケーション54は評判マネージャ58をさらに含み、その評判マネージャ58の部分は、カーネルモードで実行し得る。
[0045]図6は、本発明の一部の実施形態による、例示的なセキュリティアプリケーション54の線図を示す。アプリケーション54は、両方が評判マネージャ58に接続される、アンチマルウェアエンジン56およびクライアント評判キャッシュ122を含む。一部の実施形態ではクライアント評判キャッシュ122は、モジュール評判インジケータなどの評判データを一時的に記憶することと、そのようなデータを評判マネージャ58に送信することとを行うように構成される。一部の実施形態では評判マネージャ58は、アプリケーション、プロセス、および、実行可能モジュールを含む種々のソフトウェアオブジェクトに対して決定される評判データを決定することと、キャッシュ122からのそのようなデータを記憶および/または検索することと、そのようなデータをアンチマルウェアエンジン56に送信することとを行うように構成される。
[0046]一部の実施形態ではエンジン56は、マルウェアに対して、図4でのアプリケーション52a〜cなどの、クライアントシステム10上で実行するソフトウェアオブジェクトをスキャンするように構成される。そのようなマルウェアスキャニングは、対象ソフトウェアオブジェクトが、悪意のあるコードを内包するかどうかを判定し、さらに、それぞれのコードを除去すること、または、それぞれのコードが実行することを防止することを含み得る。一部の実施形態では、ひとまとまりのコードは、それが、悪意のあるアクションの集合のいずれかを実行するように構成されるならば、悪意のあるものであるとみなされる。そのような悪意のあるアクションは、ユーザの部分に関する、プライバシーの損失、個人もしくは機密データの損失、または、生産性の損失につながる任意のアクションを含み得る。一部の例は、ユーザの了知または認可なしに、データを修正または消去すること、および、クライアントシステム10上で実行する正当なプログラムの実行を改変することを含む。悪意のあるアクションの他の例は、中でも、パスワード、ログイン詳細、クレジットカードもしくは銀行口座データ、または、秘密文書などの、ユーザの個人または機密データを抽出することを含む。悪意のあるアクションの他の例は、第三者とのユーザの会話および/またはデータ交換に関する、認可されない捕捉、または、他の形で盗聴することを含む。他の例は、クライアントシステム10を用いて、非請求通信(スパム)を送出すること、および、クライアントシステム10を用いて、サービス拒否攻撃でのように、悪意のあるデータ要求をリモートコンピュータシステムに送出することを含む。
[0047]一部の実施形態では、エンジン56によりスキャンされる対象オブジェクトは、ユーザモードアプリケーション、プロセス、および、実行可能モジュールを含む。別段に指定されない限り、プロセスは、アプリケーション、または、オペレーティングシステム46の部分などの、コンピュータプログラムのインスタンスであり、少なくとも実行スレッド、および、オペレーティングシステムによりそれに割り当てられる仮想メモリのセクションを有することにより特徴付けられ、それぞれのメモリセクションは、実行可能コードを含む。別段に指定されない限り、実行可能モジュールは、プロセスのコンポーネントまたはビルディングブロックであり、各々のそのようなモジュールは、実行可能コードを含む。例示的な実行可能モジュールは、中でも、プロセスのメイン実行可能ファイル(Windows(登録商標)でのEXEファイルなど)、および、共有ライブラリ(動的リンクされるライブラリ − DLLなど)を含む。一部の実施形態では、プロセスのメイン実行可能モジュールは、それぞれのプロセスが起動されるときに実行される第1の機械命令を含む。ライブラリは、プログラムの様々な機能態様を実装するコードの自己完結型セクションである。共有ライブラリは、2つ以上のプログラムにより独立して使用され得る。同様の種類の実行可能モジュールは、Linux(登録商標)またはMacOS(登録商標)などのオペレーティングシステムを実行するクライアントシステム10で識別され得る。実行可能モジュールは、それぞれのプロセスの起動および/または実行の間に、メモリに/から、ロードおよび/またはアンロードされ得る。マルウェアスキャニングを実行するために、エンジン56は、中でも、シグネチャマッチング、および、挙動のスキャニングなどの、当技術分野で知られている任意のアンチマルウェア方法を用い得る。
[0048]一部の実施形態では評判マネージャ58は、アンチマルウェアエンジン56と協働して、マルウェア検出を容易にする。実例として評判マネージャ58は、プロセスまたは実行可能モジュールなどの、ある決まったソフトウェアオブジェクトの評判のインジケータを、アンチマルウェアエンジン56に伝達し得る。一部の実施形態では、ソフトウェアオブジェクトの評判は、それぞれのオブジェクトが悪意のあるものでないという信頼のレベルを指示する。例えば評判インジケータは、それぞれのオブジェクトが、信頼される、信頼されない、または、不明であるということを指示し得る。応じてアンチマルウェアエンジン56は、優遇措置を信頼されるオブジェクトに与え得る。実例としてエンジン56は、緩和されたセキュリティプロトコルを使用して、信頼されるオブジェクトをスキャンし、厳格なセキュリティプロトコルを使用して、不明である、または、信頼されないオブジェクトをスキャンし得るものであり、緩和されたセキュリティプロトコルは、厳格なセキュリティプロトコルより計算量が大きくない(計算的に不経済でない;less computationally expensive)。1つのそのような例では、緩和されたセキュリティプロトコルは、エンジン56に、マルウェア検出方法の部分集合のみを、および/または、マルウェアを識別するヒューリスティックの部分集合のみを用いて、信頼されるオブジェクトをスキャンするように命令し得るものであり、一方で、厳格なセキュリティプロトコルは、エンジン56に利用可能な方法および/またはヒューリスティックの全集合を使用し得る。一部の実施形態では、緩和されたセキュリティプロトコルは、下記で詳細に示されるように、各々のプロセスまたは実行可能モジュールに固有に修整され得る。実例として評判マネージャ58は、スキャンパラメータ値のプロセス固有の集合をエンジン56に送信することにより、プロセス固有のプロトコルを使用するようにエンジン56を構成し得るものであり、スキャンパラメータ値は、それぞれのプロセスをスキャン/監視するとき、エンジン56の構成パラメータの集合をインスタンス化するために使用される。したがってスキャニング/監視プロトコルは、信頼されるオブジェクトと信頼されないオブジェクトとの間で、ただしさらには、1つの信頼されるオブジェクトと、別の信頼されるオブジェクトとの間で異なり得る。
[0049]一部の実施形態では、対象ソフトウェアオブジェクトの評判は、それぞれのオブジェクトのビルディングブロックの集合の評判によって決定され得る。ビルディングブロックの評判は、ローカルリポジトリ(例えば、キャッシュ22、122)および/またはリモートリポジトリ(例えば、中央評判データベース16)に記憶され、それぞれのビルディングブロックのあらゆる発生に対して再使用され得る。対照的に、対象オブジェクト自体の評判は、動的に決定され得るものであり、すなわち、評判マネージャ58により、対象オブジェクトのセキュリティイベントに、および/または、ある決まったライフサイクルイベントに応じて、繰り返し計算され得る。そのような手法は、記憶される評判データの好まれるスケール/粒度を定義する。ビルディングブロックのサイズおよびタイプは、実施形態ごとに変動し得る。一部の実施形態ではビルディングブロックは、実行可能モジュール(例えば、メイン実行可能ファイルおよび共有ライブラリ)であり、簡単のために、以下の論考はそのような実装形態を説明するのみとする。ビルディングブロックの他の例は、中でも、それぞれのプロセスにより呼び出される実行可能スクリプト(例えば、Perl、Visual Basic、および、Pythonスクリプト)、および、解釈されるファイル(例えば、Java(登録商標)JARファイル)を含む。当業者であれば、ここで説明されるシステムおよび方法は、他の種類のビルディングブロック、および、他のレベルの粒度に変形され得るということを認識するであろう。
[0050]図7は、本発明の一部の実施形態での、評判マネージャ58およびアンチマルウェアエンジン56のさらなる詳細、ならびに、コンポーネント56と58との間の例示的なデータ交換を示す。アンチマルウェアエンジン56は、複数のセキュリティ機能76a〜dを含み得る。一部の実施形態では機能76a〜dは、互いに独立して実行し得るエンジン56のコンポーネントである。例示的なセキュリティ機能は、各々が別個の方法を実装する個々のアンチマルウェアコンポーネント:中でも、ファイアウォール、挙動のスキャナ、および、シグネチャマッチングエンジンを含む。一部の実施形態ではファイアウォールは、クライアントシステム10上で実行するソフトウェアオブジェクトに関係付けられる、インバウンドおよび/またはアウトバウンドネットワークトラフィックを捕捉し、そのようなトラフィックの通過または内容を、ユーザにより指示される規則、および/または、内部的ヒューリスティックによって、受容、拒否、または、修正し得る。一部の実施形態では、挙動のスキャナは、クライアントシステム10上で実行するソフトウェアオブジェクトの挙動を監視する(例えば、ディスクファイルに書き込むこと、または、OSレジストリキーを編集することなどのアクションを検出する)。シグネチャマッチングエンジンは、クライアントシステム10上で実行するソフトウェアオブジェクトのコードのシーケンスを、シグネチャとして知られているコードの、マルウェアを指し示すシーケンスのリストに対してマッチングすることを試行し得るものであり、マッチは、それぞれのオブジェクトがマルウェアを含むということを指示し得る。別の例示的なセキュリティ機能は、場合によっては複数のアンチマルウェア方法/コンポーネントを組み合わせるセキュリティプロシージャ、実例として、「方法Aを適用する;成果1であるならば、方法Bを適用する;等」である。セキュリティプロシージャの他の例は、オンデマンドおよびオンアクセススキャニングを含む。さらに別の例示的なセキュリティ機能は、マルウェアを識別するヒューリスティックの集合である。
[0051]一部の実施形態ではセキュリティ機能76a〜dは、スキャンパラメータの集合を使用して構成され得るものであり、スキャンパラメータの値を変化させることが、それぞれの機能の動作を改変し得る。1つの例示的なスキャンパラメータは、マルウェアを指し示す評点に対して比較するために使用されるしきい値であり、評点がそれぞれのしきい値の値を上回るとき、プロセス/モジュールは、悪意のあるものであるとみなされ得る。スキャンパラメータの別の例は、挙動スキャナにより、プロセス/モジュールが悪意のあるものであるかどうかを判断するために使用されるヒューリスティックの集合である。スキャンパラメータの別の例は、良性のオブジェクトと、悪意のあるオブジェクトとの間で区別するようにニューラルネットワーク分類器を較正するために使用されるニューロンの重みの集合である。一部の実施形態では評判マネージャ58は、下記で詳細に示されるように、そのようなスキャンパラメータの値の集合をエンジン56に送信することにより、アンチマルウェアエンジン56の動作を効果的に構成し得る。
[0052]一部の実施形態では評判マネージャ58(図7)は、判断ユニット72と、判断ユニット72に接続されるアクティビティモニタ74と、両方が判断ユニット72に接続されるクラウドマネージャ68およびキャッシュマネージャ70とを含む。評判マネージャ58は、評判要求60および/またはセキュリティイベント通知64をアンチマルウェアエンジン56から受信することと、プロセス評判インジケータ82および/またはセキュリティアラート66をアンチマルウェアエンジン56に送信することとを行うように構成され得る。そのようなデータ交換の詳細が、下記で与えられる。
[0053]一部の実施形態ではアクティビティモニタ74は、クライアントシステム10の内部で実行するアプリケーションおよびプロセスなどのソフトウェアオブジェクトのライフサイクルイベントを検出することと、そのような監視されるオブジェクトのリストを維持することと、そのようなイベントを判断モジュール72に伝達することとを行うように構成される。モニタ74は、実例として、アプリケーション、プロセス、および/または、スレッドの、起動および/または終結を検出し得る。モニタ74により捕捉される他の例示的なイベントは、DLLなどの実行可能モジュールを、そのメモリ空間内に/から、ロードおよび/またはアンロードするプロセスを含む。アクティビティモニタ74は、どのプロセスがどの実行可能モジュールをロードしたかなどの、オブジェクト間関係性をさらに決定し得る。他のそのような関係性は、派生、例えば、親子関係性を含む。一部の実施形態ではモニタ74は、選択されるオブジェクトが、コードを別のオブジェクト内に注入したかどうか、または、選択されるオブジェクトが、別のソフトウェアオブジェクトによるそのような注入の対象であるかどうかをさらに判定し得る。子オブジェクトは、親オブジェクトと呼ばれる別のオブジェクトにより生み出される実行可能エンティティであり、子オブジェクトは、親オブジェクトから独立して実行する。例示的な子オブジェクトは、実例として、Windows(登録商標)OSのCreateProcess関数によって、または、Linux(登録商標)でのフォーク機構によって生み出される、子プロセスである。コード注入は、動的リンクライブラリ(DLL)などのコードのシーケンスを現存するプロセスのメモリ空間内に導入して、それぞれのプロセスの元の機能性を改変する方法の一群を指示するために、当技術分野で使用される総称用語である。プロセスの起動を検出すること、および/または、コード注入を検出することなどのタスクを実行するために、モニタ74は、ある決まったOS関数を呼び出すこと、またはフックすることなどの、当技術分野で知られている任意の方法を用い得る。実例として、Windows(登録商標)OSを走らせるシステムでは、モニタ74は、LoadLibrary関数への、または、CreateFileMapping関数への呼び出しを捕捉して、実行可能モジュールのローディングを検出し得る。別の例ではモニタ74は、PsSetCreateProcessNotifyRoutineコールバックを登録して、新しいプロセスの起動を検出し得るものであり、かつ/または、CreateRemoteThread関数をフックして、注入されるコードの実行を検出し得る。
[0054]一部の実施形態では判断ユニット72は、対象プロセスのライフサイクルイベント、実例として対象プロセスの起動の発生を指示する、アクティビティモニタ74からのデータを受信するように構成される。判断ユニット72は、対象プロセスの実行可能モジュール(例えば、対象プロセスによりロードされるメイン実行可能ファイルまたは共有ライブラリ)の評判を指し示すデータを、キャッシュマネージャ70および/またはクラウドマネージャ68に要求するようにさらに構成され得る。ユニット72は、対象プロセスの評判をそれぞれの実行可能モジュールの評判によって決定することと、対象プロセスの評判を指し示すインジケータ82をアンチマルウェアエンジン56に送信することとを行うようにさらに構成され得る。
[0055]一部の実施形態では判断ユニット72は、セキュリティイベント通知64をアンチマルウェアエンジン56から受信するように構成され得るものであり、通知64は、対象プロセスまたはモジュールの、実行によりトリガされる、または、実行の間に発生する、セキュリティイベントを指し示すものである。そのようなセキュリティイベントは、アンチマルウェアエンジン56により検出され、一部の例は、ファイルをインターネットからダウンロードすること、または、OS46のレジストリキーを修正することなどの、ある決まったアクションを実行する対象プロセス/モジュールを含む。対象プロセス/モジュールにより実行されるそのようなアクションは、それら自体がマルウェアを指し示し得るものであり、または、対象プロセス/モジュールにより、もしくは、対象プロセスに関係付けられるプロセスにより(例えば、対象プロセスの子プロセスにより)実行される他のアクションと連関して発生するときにマルウェアを指し示し得る。判断ユニット72は、通知64を受信することに応じて、それぞれの対象プロセスのプロセス評判インジケータ82を通知64によって(再)計算し、インジケータ82をアンチマルウェアエンジン56に送信するようにさらに構成され得る。
[0056]一部の実施形態では判断ユニット72は、通知64を分析することと、通知64により指示されるセキュリティイベントのある決まったタイプに対して、セキュリティアラート66をアンチマルウェアエンジン56に送出することとを行うように構成され得る。セキュリティアラート66は、アンチマルウェアエンジン56に、それぞれのクライアントシステム10がマルウェア感染を疑われるということを指示し得るものであり、エンジン56を、パラノイドモード(paranoid mode)と呼称されることになる厳格なセキュリティプロトコルを実行するように構成し得る。判断ユニット72の動作のより詳述される説明が、下記で与えられる。
[0057]キャッシュマネージャ70およびクラウドマネージャ68は、評判データを、それぞれ評判キャッシュ222および評判サーバ214から、判断モジュール72の要求で検索するように構成され得る。キャッシュ222は、実例としてクライアント評判キャッシュ122(図6)を表し得る。評判サーバ214は、実装形態に依存して、中央評判サーバ14(図1)またはローカル評判サーバ114(図2)を表し得る。図8は、本発明の一部の実施形態による、モジュール評判インジケータ80をキャッシュ222から受信するキャッシュマネージャ70、および、クラウド評判インジケータ78を評判サーバ214から受信するクラウドマネージャ68を例証する。キャッシュマネージャ70は、クラウドマネージャ68により受信される評判データを、キャッシュ222に、可変の、ただし限られた分量の時間の間記憶するようにさらに構成され得るものであり、評判データのキャッシュ存続時間は、クラウドインジケータ78によって決定され得る。
[0058]図9は、本発明の一部の実施形態による、2つの例示的なプロセス84a〜b、および、複数の評判インジケータを示す。プロセス84aは、実行可能モジュール86a〜c、例えば、メイン実行可能ファイル86a、および、2つの動的リンクされるライブラリ86b〜cを含む。プロセス84bは、メイン実行可能ファイル86d、および、3つのDLLを含み、それらのDLLの2つは、プロセス84aのライブラリ86b〜cのインスタンスである。モジュール評判インジケータ80a〜eの集合が、それぞれモジュール86a〜eに対して決定され、プロセス評判インジケータ82a〜bの集合が、それぞれプロセス84a〜bに対して決定される。
[0059]一部の実施形態ではモジュール評判インジケータ80a〜eは、評判キャッシュ222および/もしくは評判サーバ214(図8)に記憶される、かつ/または、それらの評判キャッシュ222および/もしくは評判サーバ214から検索される静的なデータ項目である。2つ以上のプロセスが、図9でのように、同じモジュール、例えば共有ライブラリのインスタンスをロードするとき、すべてのそのようなインスタンスのモジュール評判インジケータは同一であり得る。プロセス評判インジケータ82aは、モジュール評判インジケータ86a〜cによって決定され、一方でプロセスインジケータ82bは、モジュール評判インジケータ86b〜eによって決定される。モジュール評判インジケータと対照的に、プロセス評判インジケータ82a〜bは、評判マネージャ58により、それぞれ、クライアントシステム10で発生するセキュリティイベントに応じて、および/または、プロセス84a〜bのライフサイクルイベントに応じて、繰り返し再計算されて、動的に可変であり得る。
[0060]クラウド、モジュール、および、プロセス評判インジケータの一部の例示的なフォーマットが、それぞれ図10−A〜Cで例証される。クラウド評判インジケータ78は、中でも、クラウドスキャンパラメータ値79aの集合、および、キャッシュ期限切れインジケータ79bを含む。キャッシュ期限切れインジケータ79bは、クラウド評判インジケータ78の存続時間、すなわち、その時間の間はそれぞれの評判データがキャッシュ222に記憶されるべきである時間の長さを指示する。そのような存続時間は、実行可能モジュールの間で変動し得る。限られた存続時間をキャッシュ評判データに対して指定することにより、一部の実施形態は、そのようなデータを評判サーバ214からの最新のものにすることを効果的に押し進め、したがって、それぞれのモジュールの、可能性のある感染の広がりを食い止める。
[0061]一部の実施形態ではクラウドスキャンパラメータ値79aは、それぞれの実行可能モジュールをスキャン/監視するとき、アンチマルウェアエンジン56のセキュリティ機能76a〜d(図7)を構成するために使用されることになるパラメータ値の集合を含む。1つのそのような例では、セキュリティ機能Fは挙動のスキャナであり、Fに対するスキャンパラメータ値は、タプル{v,v,…}を含み、パラメータ値vは、「挙動のスキャン技術Xをアクティブにする」を指示し、パラメータ値vは、「ヒューリスティック集合Yを不能にする」を指示する、等である。それぞれの実行可能モジュールを監視するとき、エンジン56のこの例示的な挙動のスキャナ機能は、技術Xを使用するように命令され、一方で、ヒューリスティック集合Yを不能にする。
[0062]モジュール評判インジケータ80の一部の実施形態(図10−B)は、中でも、モジュールスキャンパラメータ値81aの集合、キャッシュ期限切れインジケータ81b、および、モジュール評価インジケータ81cを含む。モジュールスキャンパラメータ値81aは、アンチマルウェアエンジン56を、それぞれのモジュールを監視および/またはスキャンするように構成するパラメータの値を指示する。キャッシュ期限切れインジケータ81bは、それぞれの評判データの存続時間を指示する。一部の実施形態ではキャッシュ期限切れインジケータ81bは、それぞれのモジュールのキャッシュ期限切れインジケータ79bと同一である。モジュールスキャンパラメータ値81aは、それぞれのモジュールのクラウドスキャンパラメータ値79aと同一であり得るものであり、または、マルウェアを指し示すアクションを実行するそれぞれのモジュールなど、セキュリティイベントの後では、パラメータ値79aとは異なる場合がある(下記を確認されたい)。
[0063]モジュール評価インジケータ81cは、それぞれのモジュールに現在与えられる信頼のレベルの推定を提供する。一部の実施形態ではモジュール評価インジケータ81cは、それぞれのモジュールを、現在の情報によって、信頼される、信頼されない、または、不明である、とラベル付けする。信頼される、のラベルは、それぞれのモジュールが悪意のあるものである公算が大きくないということを指示し得る。信頼されない、のラベルは、それぞれのモジュールが、(実例として、それぞれのモジュールが、コードを別のモジュールまたはプロセス内に注入することなどの、マルウェアを指し示すアクションを実行したとき)悪意を疑われるということを指示し得る。不明である、のラベルは、キャッシュ222および/またはサーバ214が、それぞれのモジュールの評判データを保持しないということを指示し得る。
[0064]一部の実施形態ではプロセス評判インジケータ82(図10−C)は、中でも、プロセススキャンパラメータ値83aの集合、および、プロセス評価インジケータ83cを含む。プロセス評価インジケータ83cは、それぞれのプロセスに現在与えられる信頼のレベルを指し示す。インジケータ83cの例示的な値は、肯定的、否定的、および、中性を含む。肯定的ラベルは、それぞれのプロセスが悪意のあるものである公算が大きくないということを指示し得るものであり、アンチマルウェアエンジン56に、スキャンパラメータ値83aを使用して、それぞれのプロセスをスキャンおよび/または監視するように命令し得る。否定的ラベルは、悪意の疑いを指示し得るものであり、マルウェアエンジン56に、あらかじめ決定された厳格なセキュリティプロトコルを使用して、それぞれのプロセスを分析するように命令する。中性ラベルは、それぞれのプロセスが、完全に信頼されるということでも、悪意のあるものであるということでもないということを指示し得るものであり、エンジン56に、あらかじめ決定されたデフォルトセキュリティプロトコルを使用して、それぞれのプロセスを分析するように命令し得る。一部の実施形態では、対象プロセスが実行可能モジュールの集合を含むとき、対象プロセスのインジケータ83aは、下記で説明されるように、対象プロセスの実行可能モジュールの集合の各々のインジケータ81aによって決定される。さらに、対象プロセスのプロセス評価インジケータ83cは、下記で示されるように、対象プロセスの実行可能モジュールの集合のモジュール評価インジケータ81cによって決定され得る。
[0065]図11は、本発明の一部の実施形態による、アクティビティモニタ74(図7)により実行されるステップの例示的なシーケンスを示す。ステップ302〜304のシーケンスでモニタ74は、クライアントシステム10の内部でのトリガイベントの発生に対して待機する。例示的なトリガイベントは、プロセスの起動または終結などの、クライアントシステム10上で実行するプロセスのライフサイクルイベントを含む。他の例は、DLLなどの実行可能モジュールをロードまたはアンロードするプロセスを含む。さらに別の例示的なトリガイベントは、親プロセスが子プロセスの集合を産することである。そのようなトリガイベントの発生を検出するために、アクティビティモニタ74は、ある決まったOS関数、例えば、プロセスを実行状態に起動するためにOS46により使用される関数を、呼び出すこと、またはフックすることなどの、当技術分野で知られている任意の方法を使用し得る。
[0066]ステップ306でアクティビティモニタ74は、イベントのタイプ、実例として、実行状態への新しいプロセスの起動を識別し得る。トリガイベントが実際に発生したとき、ステップ308は、それぞれのトリガイベントを引き起こすか、トリガイベントにより影響を及ぼされているかのいずれかであるプロセスを識別し得る。一部の実施形態ではモニタ74は、そのようなプロセスの識別情報を、現在実行状態にある各々のプロセスを表すためにOS46により使用されるデータ構造から決定し得る。実例としてWindowsでは、各々のプロセスはエグゼクティブプロセスブロック(EPROCESS)として表され、そのブロックは、中でも、それぞれのプロセスのスレッドの各々に対するハンドル、および、OS46が、それぞれのプロセスを複数の実行するプロセスから識別することを可能とする、一意的なプロセスIDを含む。同様のプロセス表現が、Linux(登録商標)などの他のOSに対して利用可能である。2つ以上のプロセスがトリガイベントにより影響を及ぼされるとき、ステップ308は、それぞれのプロセス間の関係性を決定することをさらに含み得る。実例として、親プロセスが子プロセスを起動するとき、モニタ74は、子および親の識別情報、ならびに、それらの関係性のタイプ(派生)をレコード化し得る。次にステップ310でアクティビティモニタ74は、トリガイベントに関する通知を判断ユニット72に送信し得る。
[0067]図12は、本発明の一部の実施形態による、判断ユニット72により実行されるステップの例示的なシーケンスを示す。ステップ312〜314のシーケンスで判断ユニット72は、通知の受信に対して待機する。そのような通知は、アクティビティモニタ74によって(上記を確認されたい)、または、アンチマルウェアエンジン56によって(例えば、図7でのセキュリティイベント通知64を確認されたい)のいずれかで伝達され得る。通知が受信されるとき、ステップ316は、通知が、アンチマルウェアエンジン56から受信されるセキュリティイベント通知であるかどうかを判定し、はい(YES)であるとき、ステップ320で判断ユニット72は、受信されるタイプまたはセキュリティイベント通知によって進行する(さらに多くの詳細は下記に)。いいえ(NO)であるとき、ステップ318は、通知が、アクティビティモニタ74から受信されるトリガイベント通知であるかどうかを判定し、はいであるとき、ステップ322で判断ユニット72は、通知によって伝達されるトリガイベントのタイプによって進行する。
[0068]図13は、トリガイベントがプロセスの起動を含むとき、ステップ322(図12)の内部で判断ユニット72により実行されるステップの例示的なシーケンスを示す。ステップ324で判断ユニット72は、それぞれのプロセスによりロードされる実行可能モジュールの集合を決定し得る。ステップ324を実行するために、判断ユニット72は、当技術分野で知られている任意の方法を用い得る。実例として、Windows(登録商標)OSを走らせるクライアントシステムでは、プロセスを起動する際にOS46は、それぞれのプロセスに関連付けられるリソースを管理するためにOS46により使用されるデータを含む、プロセス環境ブロック(PEB:process environment block)として知られているプロセス固有のデータ構造をセットアップする。そのようなデータは、ロードされるモジュールの仮想メモリアドレスを含む。判断ユニット72はしたがって、ロードされるモジュールを、それぞれのプロセスのPEBによって識別し得る。
[0069]次に判断ユニット72は、ステップ326〜342のシーケンスをループで、対象とされるプロセスによりロードされる各々のモジュールに対して実行し得る。ステップ326は、ロードされるモジュールを選択する。ステップ328で判断モジュールは、選択されるモジュールの識別インジケータを計算するものであり、識別インジケータは、キャッシュ222および/またはサーバ214が、選択されるモジュールをあいまいさなしに識別することを可能とするものである。一部の実施形態では識別情報インジケータは、中でも、選択されるモジュールのコードセクションのハッシュ、または、選択されるモジュールのコードセクションを含む。ハッシュを計算するために使用される例示的なハッシュ関数は、セキュアハッシュ(SHA)およびメッセージダイジェスト(MD)アルゴリズムを含む。一部の実施形態ではキャッシュマネージャ70は、識別するハッシュを、キャッシュ222へのルックアップキーとして使用し得る。他の例示的な識別情報インジケータは、中でも、選択されるモジュールのファイル名、サイズ、バージョン、および、タイムスタンプなどの、それぞれのモジュールのメタデータを含み得る。
[0070]ステップ330は、キャッシュマネージャ70に、選択されるモジュールのモジュール評判データをキャッシュ222から検索するように命令する。ステップ330は、選択されるモジュールの識別情報インジケータをキャッシュマネージャ70に送出し、選択されるモジュールのモジュール評判インジケータ80をキャッシュマネージャ70から受信することを含み得る。ステップ332は、キャッシュルックアップが成功したかどうか、すなわち、選択されるモジュールの評判データがキャッシュ222で見出されたかどうかを判定し、はいであるとき、判断ユニットは、下記で説明されるステップ342に進む。キャッシュ222が現在、要求される評判データを保持しないとき(実例として、要求される評判データがキャッシュ222から期限切れになったとき)、ステップ334で判断ユニット72は、クラウドマネージャ68に、評判データを評判サーバ214から検索するように命令し得る。ステップ334は、選択されるモジュールの識別情報インジケータ(例えば、ハッシュ識別子)を含む評判要求をサーバ214に送出し、それぞれのモジュールのクラウド評判インジケータ78をサーバ214から受信することを含み得る。インジケータ78を検索するために、サーバ214の一部の実施形態は、選択されるモジュールの識別するハッシュを、中央評判データベース16、および/または、環境固有の評判データベース24へのルックアップキーとして使用し得る。そのようなデータベースルックアップが失敗するとき、すなわち、選択されるモジュールに対する評判データが評判データベースで見出されなかったとき、サーバ214は失敗のインジケータを戻し得る。
[0071]ステップ336〜338のシーケンスで判断ユニット72は、選択されるモジュールのモジュール評判インジケータ80を、選択されるモジュールのクラウド評判インジケータ78によって明確化(formulate)し得る。一部の実施形態では、モジュールスキャンパラメータ値81aおよびキャッシュ期限切れインジケータ81bを決定することは、クラウド評判インジケータ78からのそれぞれの値(それぞれ、項目79aおよび79b、図10−A〜Bを確認されたい)をコピーすることを含む。一部の実施形態では、ステップ338で判断ユニット72は、モジュール評価インジケータ81cを、信頼される、信頼されない、または、不明である、のいずれかとして決定し得る。1つの例では、選択されるモジュールは、データベースルックアップが成功したとき、すなわち、ステップ334が、選択されるモジュールに対するクラウド評判インジケータを戻したとき、信頼される、と宣言される。選択されるモジュールに対する評判データが評判データベースで見出されなかったとき、選択されるモジュールは、不明である(中性)の評価を受け得る。一部の実施形態では、判断ユニット72が、選択されるモジュール(または、選択されるモジュールの別個のインスタンス)が悪意を疑われるということを指示する、アンチマルウェアエンジン56からのセキュリティ通知を受信したとき、選択されるモジュールは、ステップ334が、選択されるモジュールに対するクラウド評判インジケータを戻したか否かに関わらず、信頼されない、の評価を受け得る。
[0072]ステップ340で判断ユニット72は、キャッシュマネージャ70に、選択されるモジュールの評判データ(インジケータ80など)をキャッシュ222に記憶するように命令する。一部の実施形態ではキャッシュマネージャは、それぞれのモジュールが悪意を疑われるとき、キャッシュ期限切れインジケータ81bの値を改変し得る。実例として、判断ユニットが、それぞれのモジュールに関するセキュリティ通知を受信したとき、インジケータ81bは、永続的レコード(期限切れ時間なし)を指示するように修正され得る。
[0073]ステップ342が次いで、処理するために残されている何らかのさらに多くの実行可能モジュールが存在するかどうかを判定し、はいであるならば、実行は、上記で説明されたステップ326に戻る。対象プロセスの最後の実行可能モジュールが処理されたとき、ステップ344〜346のシーケンスが、対象プロセスのプロセス評判インジケータ82を、対象プロセスの構成要素となる実行可能モジュールのモジュール評判インジケータ80によって決定する。プロセス評判インジケータ82を決定するための例示的な判断表が、表1で与えられる。
Figure 0006317434
[0074]ステップ346で判断ユニット72は、対象プロセスのスキャンパラメータ値83aを、対象プロセスの構成要素である実行可能モジュールのスキャンパラメータ値81aによって決定する。一部の実施形態では、各々のセキュリティ機能76a〜d(図7)に対して、プロセススキャンパラメータ値83aのそれぞれの集合が、対象プロセスの編成要素である実行可能モジュールのモジュールスキャンパラメータ値集合81aに適用される集合演算によって決定されるものであり、パラメータ値集合81aは、それぞれの機能に対応するものである。プロセススキャンパラメータ値83aを決定するために使用される例示的な集合演算は、中でも、和集合および共通集合を含む。あるいは、モジュールスキャンパラメータ集合81aがバイナリ値を含むとき、集合演算は、論理ANDおよびOR演算子を含み得る。プロセススキャンパラメータ値83aのそのような決定の例が、下記で、図9のプロセス84bに対して与えられる。表2は、プロセス84bの構成要素である各々のモジュールの例示的なモジュールスキャンパラメータ値81a、および、プロセス84bの、結果として生じるプロセススキャンパラメータ値83aを示す。
Figure 0006317434
[0075]表2の例では、第3および第5の列は、共通集合/AND演算子を使用して処理されるパラメータ値集合を列挙し、一方で、第4および第6の列は、和集合/OR演算子を使用して処理されるパラメータ値集合を列挙する。機能Fはリアルタイム保護プロシージャであり得るものであり、機能Fは挙動のスキャナであり得る。スキャンパラメータ値は、以下の例示的な意味を有し得る。
:アンチウィルス技術Tをアクティブにする
:ディスクファイルを読み出すための試行を監視しない
:ディスクファイルに書き込むための試行を監視しない
:実行可能ファイルのみをスキャンする
:ヒューリスティック集合Hを不能にする
:ヒューリスティック集合Hを不能にする
:挙動のスキャン技術Tをアクティブにする
一部の実施形態では判断ユニット72は、集合{a,a}、{a}、{a,a}、および、{a,a,a}の共通集合をとって{a}を生出し、集合{a}および{N/A}の和集合をとって{a}を生出し得る。判断ユニット72はさらに、2つの結果として生じる集合{a}および{a}の和集合をとって、{a,a}を、セキュリティ機能Fに対応する、プロセスBのプロセススキャンパラメータ値83aの集合として生出し得る。
同様にセキュリティ機能Fに対して、判断ユニット72は、集合{b}、{b}、{b}、および、{b,b}の共通集合をとって{b}を生出し、集合{b}および{N/A}の和集合をとって{b}を生出し得る。結果として生じる集合{b}および{b}の和集合として決定される集合{b,b}は、したがって、セキュリティ機能Fに対応する、プロセスBのプロセススキャンパラメータ値83aの集合を表し得る。様々なパラメータの上記で列挙された意味を使用すると、プロセススキャンパラメータ値83aは、プロセスBをスキャンする際に、リアルタイム保護コンポーネントは、実行可能オブジェクトをスキャンするのみであるべきであり、アンチウィルス技術T1をアクティブにすべきであり、一方で挙動のスキャナコンポーネントは、ヒューリスティック集合Hを不能にし、挙動のスキャン技術Tをアクティブにすべきであるというように、アンチマルウェアエンジン56に命令する。
[0076]プロセススキャンパラメータ値83aおよびプロセス評価インジケータ83cを計算した後、判断ユニットは、対象プロセスのプロセス評判インジケータ82を集成し、ステップ348で、インジケータ82をアンチマルウェアエンジン56に送信し得る。
[0077]図14は、図1での環境12a〜bなどの隔離環境での評判要求の例示的な処理を例証する。図7〜8で例証される例示的なシステムと比較されると、図14のシステムは、中央評判サーバ14とエンドクライアント10との間の、追加的なレベルのキャッシングおよびサーバルックアップを導入する。そのような構成は、サーバ14とエンドクライアントシステム10との間のデータトラフィックを低下させることにより、アンチマルウェア動作を促進し得る。
[0078]図2および14で図示されるものに類する構成は、さらには、評判データをハンドリングすることの環境固有の様式を可能にし得る。一部の実施形態では環境固有の評判データベース24は、それぞれの隔離環境12に固有に修整される、クラウドおよび/またはモジュール評判インジケータの集合を含む。1つのそのような例では、企業イントラネットのクライアントシステム10d〜e(図2)は、Microsoft Office(登録商標)などの広く使用されるソフトウェアアプリケーションXを走らせる。アプリケーションXは、それぞれのクライアントシステムがインターネットに接続される限りはマルウェアに対して脆弱である、実行可能モジュールYをロードする。クライアントシステム10d〜eを接続するローカルネットワーク120がインターネットに直接接続されないとき、実例として、ネットワーク120がファイアウォールにより保護されるとき、アプリケーションXはもはや、インターネット接続性に関連付けられる脆弱性によって損害を受けない。したがって、アプリケーションXをそのような脆弱性に対して監視することは、システム10d〜e上では(すなわち、隔離環境12の内部では)必要でない場合があり、一方でそのような監視は、インターネットに直接接続されるシステムでは重要であり得る。一部の実施形態では、アンチマルウェアエンジン56を構成するスキャンパラメータは、エンジン56を走らせるそれぞれのクライアントシステムが、隔離環境12の内部で動作したか、または隔離環境12の外側で動作したかによって、異なる値にセットされ得る。エンジン56はしたがって、環境12の内部で実行するモジュールYのインスタンスを、環境12の外側で実行するモジュールYのインスタンスとは別個の様式でスキャン/監視するように構成され得る。
[0079]環境固有性の別の例では、エンタープライズは、隔離環境12の外側の他のクライアントシステムにより使用されない、占有的なソフトウェアアプリケーションXを使用する。アプリケーションXの実行可能モジュールYに関わる評判データは、したがって、他のクライアントシステムにより使用される公算が大きくない。一部の実施形態ではそのような評判データは、環境固有の評判データベース24に保存されるのみであり、中央評判データベース16には保存されない。そのような構成によって、隔離環境12の外側で動作するクライアントに対する、ならびに、環境12の内側で動作するクライアントに対する、データベースルックアップの効率は増大し得る。
[0080]一部の実施形態では、図14で図示される実行フローは、図13でのステップ328〜340の実行と同時進行する。ローカル評判サーバ114は、サーバキャッシュマネージャ170、ローカル環境マネージャ88、および、サーバクラウドマネージャ168を含み得る。サーバキャッシュマネージャ170およびサーバクラウドマネージャ168の動作は、それぞれ、図7〜8および図13に関係して上記で説明された、キャッシュマネージャ70およびクラウドマネージャ68の動作とよく似たものであり得る。一部の実施形態では、クライアントシステム10の評判マネージャ58が対象実行可能モジュールの評判データを要するとき、マネージャ58は、対象モジュールの識別情報インジケータ(例えば、ハッシュ識別子)を含む評判要求160を明確化し得るものであり、要求160をローカル評判サーバ114に、ローカルネットワーク120を介して送信し得る。ステップ352でサーバキャッシュマネージャ170は、それぞれのモジュールに対する評判データをサーバ評判キャッシュ22でルックアップする。そのようなデータがキャッシュ22に現存するとき、実行は、下記で説明されるステップ362に進む。評判データがキャッシュされないとき、ステップ354でローカル環境マネージャ88は、評判データを環境固有の評判データベース24でルックアップする。評判データがデータベース24で見出されるとき、実行はステップ362に進む。評判データがデータベース24で見出されないとき、ステップ358でサーバクラウドマネージャ168は、評判データを中央評判サーバ14に要求し得る。次いでステップ360でサーバクラウドマネージャ168は、サーバ14から受信される応答によって、中央評判サーバ14が、要求されるデータを検索したかどうかを判定する。クラウドマネージャ168が、それぞれのモジュールのクラウド評判インジケータ78などの評判データを受信するとき、ローカル評判サーバ114は、それぞれのモジュールのモジュール評判インジケータ80を計算し(例えば、図13でのステップ336〜338の説明を確認されたい)、ステップ364でサーバキャッシュマネージャは、インジケータ80をサーバ評判キャッシュ22に保存する。ステップ362でローカル評判サーバ114は、評判要求160への応答を、要求するクライアント10に送出し得る。一部の実施形態ではステップ362は、プロセス評判インジケータ82を計算することをさらに含み得る(例えば、図13でのステップ344〜346の説明を確認されたい)。
[0081]ステップ322(図12)の実行の別の例では、トリガイベントは、DLLなどの実行可能モジュールをロードする対象プロセスを含む。一部の実施形態では、新しいモジュールをロードすることが、対象プロセスの評判インジケータ82を変化させる場合がある。実例として、信頼されないモジュールをロードすることが、プロセスの評判を、肯定的/信頼される、から、中性/不明である、に、または、否定的/信頼されない、にまでも落とす場合がある。インジケータ82を再計算することは、実例として、ステップ328から340(図13)まで通して実行することであって、選択されるモジュールが、新しくロードされる実行可能モジュールである、実行することを行って、それぞれのモジュールのモジュール評判インジケータ80を決定することを含み得る。次いで判断ユニット72は、インジケータ82を、ステップ344〜346に関係して上記で説明されたものと同様の様式で決定し得る。実例としてプロセス評価インジケータ83cは、判断表(例えば、表1を確認されたい)によって決定され得るものであり、プロセススキャンパラメータ値83aは、現在の値83aを、新しくロードされるモジュールのモジュールスキャンパラメータ値81aと、和集合/ORおよび共通集合/ANDなどの演算子を使用して組み合わせることにより更新され得る。
[0082]ステップ322(図12)の実行の別の例では、トリガイベントは、DLLなどの実行可能モジュールをアンロードする対象プロセスを含む。そのような事例では判断ユニット72は、対象プロセスのプロセス評判インジケータ82を、対象プロセスの新しいモジュール編成を反映するように再算出し得る。インジケータ82を再算出するために、一部の実施形態は、図13で例証されるステップのシーケンスを実行し得る。一部の実施形態では判断ユニット72は、プロセス評判インジケータ82を、対象プロセスの現在のプロセス評価インジケータ83cによって再算出すべきかどうかを判断し得る。実例として、対象プロセスが現在、否定的/信頼されない、と評価されるとき、判断ユニットは、インジケータ82を再算出することなく、対象プロセスの存続時間の間、否定的/信頼されない評価を維持し得る。
[0083]図15は、セキュリティイベント通知を受信する際に判断ユニット72により実行されるステップ(図12でのステップ320)の例示的なシーケンスを示す。一部の実施形態ではセキュリティイベント通知64(図7)は、疑わしいプロセス、および/または、疑わしいモジュールのインジケータ、ならびに、それぞれの通知をトリガするセキュリティイベントのタイプのインジケータを含む。実例として通知64は、プロセスYのモジュールXがコードをプロセスZ内に注入したということを指示し得るものであり、この例では、Xは疑わしいモジュールであり得るものであり、Yは疑わしいプロセスであり得るものであり、コード注入はトリガセキュリティイベントであり得る。ステップ372は、セキュリティ通知64を調べて、実例として、セキュリティイベントのタイプを抽出することと、疑わしいプロセス、および/または、疑わしいモジュールを識別することとを行う。ステップ374で判断ユニット72は、ステップ372で識別されるセキュリティイベントが、アンチマルウェアエンジン56に、パラノイドモードと呼称される動作の特定のモードを始めるように命令することを正当化するものであるかどうかを判定し得る。はいであるとき、ステップ376で判断ユニット72は、セキュリティアラート66(図6)をアンチマルウェアエンジン56に送信し得る。
[0084]一部の実施形態では、パラノイドモードをアクティブにすることは、現在実行状態のすべてのプロセスのプロセス評価インジケータ83cを、否定的/信頼されない、に、パラノイドモード時間帯と呼称されることになる、数分などの時間のあらかじめ決定された期間の間、一時的に変化させることをさらに含み得る。パラノイドモード時間帯が経過した後、すべてのプロセスの評判インジケータは、セキュリティアラート66より前の値に復帰させられ得る。一部の実施形態では、パラノイドモード時間帯はイベント固有であり、一部のセキュリティイベントは、他のセキュリティイベントより長い時間の間パラノイドモードをアクティブにすることが当然ある。2つ以上のセキュリティイベントがおおよそ同じ時間に発生するとき、一部の実施形態は、パラノイドモード時間帯を、少なくとも、すべての個々のセキュリティイベントの最も長いパラノイドモード時間帯と同じ大きさの値でセットする。いくつものセキュリティイベントがシーケンスで発生するとき、パラノイドモード時間帯は、累積的であり得るものであり、または、シーケンス内の最後のイベントのパラノイドモード時間帯に同期して期限切れになるように決定され得る。パラノイドモードに関するさらに多くの詳細が、下記で与えられる。
[0085]パラノイドモードを起こすことが正当化されないとき、ステップ378で判断ユニット72は、疑わしいモジュールのモジュール評価インジケータ81cを、ステップ372で識別されるセキュリティイベントのタイプによって更新し得る。モジュール評価インジケータを更新することは、実例として、疑わしいモジュールを、信頼される、から、中性、または、信頼されない、に、セキュリティイベントの重大度に依存して格下げすることを指示し得る。ステップ380で判断ユニット72は、キャッシュマネージャ70に、疑わしいモジュールの更新される評判データをキャッシュ222に保存するように命令し得る。ステップ380は、システム18に、更新物を中央評判データベース16に含めるように命令する、データベース更新システム18への評判フィードバックを送出することをさらに含み得る(詳細に関しては、下記を確認されたい)。
[0086]判断ユニット72は次いで、疑わしいモジュールのインスタンスを現在使用するプロセスの集合を識別し得る。そのようなプロセスを識別することは、アクティビティモニタ74により管理および提供される情報によって進行し得る。次に判断ユニットは、ステップ384〜390のシーケンスをループで、それぞれの集合内の各々のプロセスに対して実行して、そのようなプロセスの評判インジケータ82を更新し得る。そのような更新することは、疑わしいモジュールに関わる新しいセキュリティデータを、クライアントシステム10の全体に効果的に伝搬させ得る。ステップ384は、プロセスをプロセスの集合から選択するものであり、それらのプロセスは、それらのプロセスのメモリ空間内にロードされる疑わしいモジュールのインスタンスを現在有するものである。ステップ386は、選択されるプロセスのプロセス評判インジケータ82を、実例として、図13に関係して上記で説明されたステップのシーケンスを使用して再算出し得る。ステップ386の結果として、一部のプロセスの評判は、肯定的/信頼される、から、中性/不明である、に、または、否定的/信頼されない、に格下げされ得るものであり、同様に一部のプロセスは、中性/不明である、から、否定的/信頼されない、に格下げされ得る。ステップ388は、選択されるプロセスの更新されるプロセス評判インジケータ82をアンチマルウェアエンジン56に送信し得る。ステップ390で判断ユニット72は、まだ更新されない何らかのさらに多くのプロセスが存在するかどうかをチェックし、はいであるとき、ステップ384に戻る。
[0087]図16は、本発明の一部の実施形態による、アンチマルウェアエンジン56により実行されるステップの例示的なシーケンスを例証する。エンジン56は、評判マネージャ58と同時的に実行し得るものであり、上記で説明されたように、マネージャ58と通知および/または評判データを交換し得る。ステップ394〜396のシーケンスでアンチマルウェアエンジン56は、イベントの発生に対して待機するように構成され、一方で、マルウェアを検出および/または除去することなどのアンチマルウェア動作を実行する。マルウェア検出は、クライアントシステム10上で現在実行するプロセスおよび/または実行可能モジュールの集合を監視することと、実例として、それぞれのプロセスおよび/またはモジュールにより実行される、ある決まったアクションを捕捉し、そのようなアクションが、悪意のあるものである、または、マルウェアを指し示すかどうかを判定することとを含み得る。一部の実施形態では、エンジン56のセキュリティ機能76a〜dは、機能固有のスキャンパラメータを調整することにより、互いに独立して構成され得る。そのようなスキャンパラメータの値を調整することにより、エンジン56は、動作の複数の別個のモードおよび/またはプロトコルの各々で動作するように構成され得る。一部の実施形態では、そのようなスキャンパラメータは、各々のプロセスおよび/または実行可能モジュールに対して独立してセットされ得るものであり、そのことによってエンジン56は、可能性として別個のプロトコルを使用して、各々のそのようなプロセスまたはモジュールをスキャン/監視し得る。プロセス固有のスキャンパラメータ値の例は、上記で示されたような、評判マネージャ58によりエンジン56に送信されるプロセス評判インジケータ82のスキャンパラメータ値83aである。
[0088]ステップ396は、イベントが発生したかどうかを判定し、いいえであるとき、実行をステップ394に戻す。そのようなイベントは、クライアントシステム10の内部で発生するセキュリティイベント、ならびに、セキュリティアラート64およびプロセス評判インジケータ82を評判マネージャ58から受信することを含む。イベントが発生したとき、ステップ398でエンジン56は、イベントが、セキュリティアラートを受信することを含んでいたかどうかを判定し得るものであり、いいえであるとき、エンジン56はステップ400に進行し得る。一部の実施形態ではセキュリティアラート66は、エンジン56に、パラノイドモードを始める、または、終わらせるように命令する。パラノイドモードを始めるために、ステップ404でエンジン56は、セキュリティ機能76a〜dのスキャンパラメータを、厳格なセキュリティプロトコルに対応する、値のあらかじめ決定された集合にリセットし得るものであり、したがって、評判マネージャ58から受信されるいずれのプロセス固有の値も無効にする。一部の実施形態では、パラノイドモードの内部でアクティブにされる厳格なセキュリティプロトコルは、他の場合では計算リソースを節約するために休止状態であり得るセキュリティ機能をアクティブにすることを含む。そのような機能は、それぞれのセキュリティアラートをトリガした脅威のタイプを固有に対象とされる、検出ルーチンおよび/またはプロシージャを含み得る。パラノイドモードは、中でも、検出ヒューリスティックの追加的な集合をアクティブにすること、および、アンチマルウェア動作をスピードアップするために使用される最適化の集合を不能にすることをさらに含み得る。一部の実施形態ではパラノイドモードは、セキュリティアラート66で指示される時間の限られた期間の間アクティブにされ得るものであり、パラノイドモードは、指示される期間の後で自動的に期限切れになり得るものであり、または、エンジン56にパラノイドモードを終わらせるように明示的に命令するセキュリティアラート66を受信することに応じてオフにされ得る。一部の実施形態では、パラノイドモードを終わらせることは、スキャンパラメータを、パラノイドモードのアクティブ化に先行してレコード化された、プロセス固有の、および/または、モジュール固有の値にリセットすることを含む。
[0089]ステップ400でアンチマルウェアエンジン56は、イベントが、プロセス評判インジケータを評判マネージャ58から受信することを含むかどうかを判定し、いいえであるとき、エンジン56はステップ402に進行する。評判インジケータが受信されたとき、ステップ406でアンチマルウェアエンジンは、スキャンパラメータ値を、受信された評判インジケータにより指示される新しい値に更新し得る。
[0090]ステップ402でエンジン56は、イベントがセキュリティイベント(実例として、プロセスがライブラリを別のプロセス内に注入した)であるかどうかを判定し、いいえであるとき、エンジン56はステップ394に戻る。セキュリティイベントが実際に検出されたとき、ステップ408は、それぞれのセキュリティイベントをトリガする疑わしいモジュール、および/または、疑わしいプロセスを識別し、ステップ410でエンジン56は、疑わしいモジュールの識別情報、および、セキュリティイベントのタイプを指示するセキュリティイベント通知64を評判マネージャ58に送信する。
[0091]図17は、本発明の一部の実施形態による、評判更新システム18(例えば、図1を確認されたい)の例示的な構成を示す。システム18は、それぞれのモジュールに関わる評判フィードバック90をクライアントシステム10a〜eから受信することに応じて、馴染みのあるモジュールの現在の評判データを変化させることにより、および/または、中央評判データベース16に、評判フィードバック90で識別される、馴染みのないモジュールに対して決定される評判データを追加することにより、中央データベース16に記憶される評判データを最新に保つように構成され得る。一部の実施形態では、馴染みのあるモジュールは、データベース16がすでに評判データをそれらに対して内包するソフトウェアオブジェクトを表し、一方で、馴染みのないモジュールは、フィードバック90が受信されるとき、データベース16に、それらに対して利用可能である評判データがないオブジェクトを表す。馴染みのないモジュールに関する情報は、クライアントシステム10a〜eから、および/または、新しい製品もしくは製品更新物をリリースするソフトウェアベンダから受信され得る。
[0092]一部の実施形態では評判更新システム18は、フィードバック分析器92と、フィードバック分析器92に接続されるモジュール分析エンジン94と、分析器92およびエンジン94に接続されるデータベース更新ユニット96とを含む。モジュール分析エンジン94は、馴染みのないモジュールの評判を評価することと、そのようなモジュールに対するクラウド評判インジケータ78を明確化することとを行うように構成され得る。一部の実施形態ではエンジン94は、各々のモジュールのアクションおよび/または挙動のレコードを収集するように構成され、レコードは、オペレータおよび/または機械が、それぞれの馴染みのないモジュールに対する最適なスキャンパラメータ値を導出することを可能とするものである。スキャンパラメータ値のそのような導出および/または最適化は、当技術分野で知られている任意の方法により実行され得る。レコードを収集するために、エンジン94はイベント検出コンポーネントを用い得るものであり、それらのコンポーネントは、それぞれの馴染みのないモジュールによる、子オブジェクトの起動、または、コードの注入などのランタイムイベントを捕捉するように構成され得る。一部の実施形態ではモジュール分析エンジン94は、それぞれの馴染みのないモジュールに対する、クラウドスキャンパラメータ値79aおよび/またはキャッシュ期限切れインジケータ79bを決定するようにさらに構成され得る。そのような決定は、エンジン94のコンポーネントにより実行されて、全体的に自動的であり得るものであり、または、人間オペレータにより監督され得る。
[0093]図18は、評判フィードバック90をクライアントシステム10から受信する際に更新システム18により実行されるステップの例示的なシーケンスを例証する。一部の実施形態では評判フィードバック90は、それぞれのモジュールをフィードバック90の主題として指示する、実行可能モジュールの識別情報インジケータ(例えば、ハッシュ識別子)を含む。それぞれのモジュールが馴染みのあるものであるとき、評判フィードバック90は、それぞれのモジュールの評判の変化のインジケータをさらに含み得る。一部の実施形態では評判は、実例として、それぞれのモジュールが肯定的、中性、または、否定的評判を有するということを指示する、モジュール評価インジケータ(例えば、図10−Bでの項目81cを確認されたい)により説明される。評判の変化は、クライアントシステム10でセキュリティイベントを引き起こすそれぞれのモジュールによりトリガされ得る(さらには、図16でのステップ402、408、および、410に関係付けられる上記の論考を確認されたい)。実例として、モジュールが、マルウェアを指し示すアクションを実行するとき、その評判は、肯定的/信頼される、から、中性/不明である、または、否定的/信頼されない、にまでも格下げされ得る。そのような事例では評判フィードバック90は、それぞれのモジュールにより引き起こされるセキュリティイベントのタイプ(例えば、コード注入)を指し示すインジケータをさらに含み得る。評判フィードバック90が、馴染みのないモジュールを指すとき、フィードバック90は、コードのセクション、実例として、それぞれのモジュールのすべての実行可能コード、ならびに/または、中でも、それぞれのモジュールのモジュールファイル名、バイトサイズ、タイムスタンプ、および、パスなどのメタデータを含み得る。
[0094]ステップ412〜414のシーケンスでフィードバック分析器92は、評判フィードバック90により指示されるフィードバックのタイプ(例えば、評判更新)を決定し、フィードバック90が、馴染みのある実行可能モジュールを指すか、または、馴染みのない実行可能モジュールを指すかを決定する。それぞれのモジュールが、馴染みのあるものであるとき、ステップ416でシステム18は、データベース更新ユニット96を用いて、それぞれのモジュールに関して中央評判データベース16で現在保持される評判データを、フィードバック90により指示される評判の変化を反映するように更新する。一部の実施形態では、それぞれのモジュールの評判が、肯定的/信頼される、から、中性/不明である、に、または、否定的/信頼されない、に格下げされるとき、データベース更新ユニット96は、それぞれのモジュールの評判レコードを中央評判データベース16から削除し得る。そのような実施形態ではデータベース16は、肯定的/信頼される、と現在格付けされる実行可能モジュールのレコードのみを効果的に記憶し得る。
[0095]フィードバック90が、馴染みのないモジュールを指示するとき、ステップ418で評判更新システム18は、それぞれのモジュールのデータを、分析のためにモジュール分析エンジン94に送出する。ステップ418でエンジン94は、それぞれのモジュールが悪意のあるものである公算が大きいかどうかを、それぞれのモジュールのコードのセクションを分析することにより判定し得る。エンジン94は、それぞれのモジュールが、アクションのあらかじめ決定された集合(例えば、ファイルをネットワークからダウンロードする、ファイルをディスクに書き込む、コードを注入する等)のいずれかを実行するかどうかを判定するなど、馴染みのないモジュールの機能の集合をさらに決定し得る。一部の実施形態では、ステップ418はさらには、馴染みのないモジュールを、実行可能モジュールの複数のクラスまたはカテゴリ(例えば、メイン実行可能ファイル、共有ライブラリ等)の1つに分類することを含み得る。
[0096]ステップ420でモジュール分析エンジン94は、クライアントアンチマルウェアエンジン56を構成するために使用されるスキャンパラメータ値の集合を含む、それぞれのモジュールに対するクラウド評判インジケータを決定し得る。次にステップ422で評判更新システム18は、データベース更新ユニットを用いて、馴染みのないモジュールに対して決定されるクラウド評判インジケータ78を中央評判データベース16に保存し得る。一部の実施形態ではステップ422は、肯定的/信頼される評判評価をエンジン94から受けた、馴染みのないモジュールに対してのみ実行される。
[0097]上記で説明された例示的なシステムおよび方法によって、コンピュータシステムなどのクライアントシステムを、ウィルス、トロイの木馬、および、スパイウェアなどのマルウェアから保護することが可能となる。一部の実施形態では評判マネージャは、アンチマルウェアエンジンと同時的に実行する。アンチマルウェアエンジンは、それぞれのクライアントシステム上で実行するマルウェアを検出すること、および/または、そのようなマルウェアを除去する、もしくは、無能力にすることなどの動作を実行する。クライアントシステム上で実行する各々のプロセスに対して、評判マネージャは、評判インジケータをアンチマルウェアエンジンに送信し得るものであり、評判インジケータは、それぞれのプロセスが悪意のあるものでないという信頼のレベルを指し示すものである。
[0098]従来のアンチマルウェアシステムでは、ソフトウェアオブジェクトは、それらの評判に関わらずスキャンされる。対照的に、本発明の一部の実施形態では、アンチマルウェアエンジンは、優遇措置を信頼されるオブジェクトに与え得る。実例としてアンチマルウェアエンジンは、それが、使用して、不明であるオブジェクトをスキャンすることになるものと比較されると、計算的により不経済でないプロトコルを使用して、信頼されるオブジェクトをスキャンし得る。1つのそのような例では、アンチマルウェアエンジンの機能の部分集合は、信頼されるオブジェクトをスキャンするときに不能にされ得る。そのような手法は、信頼されるオブジェクトをスキャンすることに関連付けられる計算負担を低減することにより、アンチマルウェア性能を実質的に改善し得る。
[0099]一部の実施形態ではアンチマルウェアエンジンは、スキャンパラメータの集合を調整することにより、複数の別個のモードで動作するように構成され得る。プロセス固有の様式でスキャンパラメータの値を調整することによって、アンチマルウェアエンジンは、各々のプロセスを、プロセス固有の方法またはプロトコルを使用してスキャンすることが可能になる。一部の実施形態ではスキャンパラメータ値は、それぞれのオブジェクトの評判によって選定され、ゆえに、アンチマルウェア方法またはプロトコルは、スキャンされるオブジェクトの評判によって変動し得る。
[0100]一部の従来のアンチマルウェアシステムは、最適化の集合をアンチマルウェアルーチンに適用することにより、スキャニングの計算負担を低減することを試行する。そのような最適化は、対象オブジェクトがオブジェクトの特定のカテゴリに属するかどうかを、それぞれのオブジェクトの機能の集合によって判定し、優遇措置を、それぞれのカテゴリに属するオブジェクトに与えることを含み得る。そのような最適化は、マルウェアのタイプごとに効率的に変形しない場合があり、それぞれのカテゴリに適合することにより検出を逃れるように固有に設計されるマルウェアエージェントにより付け込まれる場合がある。対照的に、本発明の一部の実施形態ではオブジェクトは、それぞれのオブジェクトが悪意のないものであるという信頼のレベルを指し示す評判によってであって、それぞれのオブジェクトの機能によってではなく、優遇措置を与えられる。そのような手法は、新興の脅威を含む、マルウェアのタイプまたはカテゴリごとに容易に変形し得る。さらに、評判マネージャはアンチマルウェアエンジンから独立して動作するので、アンチマルウェアエンジンは、評判マネージャの動作に影響を及ぼすことなく、新しいスキャニング方法およびプロシージャを組み込むようにアップグレードされ得る。
[0101]本発明の一部の実施形態では、対象ソフトウェアオブジェクトの評判は、それぞれのオブジェクトのビルディングブロックの集合の評判によって決定され得る。そのようなビルディングブロックの例は、中でも、プロセスのメイン実行可能ファイル、および、それぞれのプロセスによりロードされる共有ライブラリを含む。各々のビルディングブロックの評判は静的であり得るものであり、そのような評判のインジケータは、ローカルリポジトリ(例えば、ローカルキャッシュ)および/またはリモートリポジトリ(例えば、中央評判データベース)に記憶され、それぞれのビルディングブロックのあらゆるインスタンスに対して再使用され得る。対照的に、対象オブジェクト自体の評判は、評判マネージャにより、対象オブジェクトのセキュリティイベントおよび/またはライフサイクルイベントに応じて、繰り返し計算されて、動的に可変であり得る。
[0102]共有ライブラリなどのビルディングブロックの評判は、それぞれのビルディングブロックが悪意のあるものでないという信頼のレベルを指示し得る。個々のビルディングブロックのそのような評判は、中央評判サーバにリモートで接続される複数のクライアントシステムにわたって分散される、そのようなビルディングブロックの複数の別個のインスタンスの挙動によって決定され得る。本発明の一部の実施形態では、ビルディングブロックの記憶される評判データは、それぞれのビルディングブロックのインスタンスを必然的に含むセキュリティイベントに応じて更新され得る。1つのそのような例では、共有ライブラリが、マルウェアを指し示すアクションを実行するとき、それぞれのライブラリの評判は、信頼される、から、不明である、に、または、信頼されない、に格下げされ得る。評判の更新されるインジケータは、ローカルキャッシュに保存され得る、かつ/または、中央評判データベースに送信され得る。そのような構成によって、評判の何らかの変化が、それぞれの共有ライブラリのインスタンスを使用する他のローカルプロセスに、およびさらに、評判サーバに接続される他のクライアントシステムに、迅速に伝搬することが可能となる。
[0103]一部の実施形態では、ビルディングブロックの記憶される評判データは、それぞれのビルディングブロック、および/または、それぞれのビルディングブロックのインスタンスを含むプロセスを監視するようにアンチマルウェアエンジンを構成するために使用される、スキャンパラメータ値の集合を含む。実例として、何のヒューリスティックを使用してそれぞれのオブジェクトの挙動を監視すべきかを指示する、そのようなパラメータ値は、人間オペレータにより、または、自動的に機械により決定され得る。最適なスキャンパラメータ値は、実例として、制御される環境でのそれぞれの実行可能モジュールの実行を監視し、モジュールの挙動の、および/または、静的な機能の集合を決定することにより決定され得る。スキャンパラメータ値は、マルウェアエージェントの新しく発見されるタイプおよび変種に対処するために効率的に更新され得る。上記で説明されたサーバおよび/またはキャッシュ評判ルックアップの機構によって、そのような更新物は次いで、評判サーバに接続されるすべてのクライアントシステムに伝搬し得る。
[0104]上記の実施形態が、本発明の範囲から逸脱することなく多くの方途で改変され得るということは、当業者には明らかであろう。したがって本発明の範囲は、以下の特許請求の範囲、および、それらの法的均等物により決定されるべきである。

Claims (29)

  1. メモリと、
    該メモリに接続され、アンチマルウェアエンジンを実行するように構成された少なくとも1つのハードウェアプロセッサと
    を含むクライアントシステムであって、前記アンチマルウェアエンジンは、対象プロセスの悪意あるアクティビティを監視するように構成され、前記対象プロセスは、前記クライアントシステム上で実行され、前記対象プロセスは、メイン実行可能モジュールのインスタンスと、共有ライブラリのインスタンスとを含み、前記少なくとも1つのハードウェアプロセッサは、
    サーバから、前記メイン実行可能モジュールの第1のモジュール評判インジケータ、および、前記共有ライブラリの第2のモジュール評判インジケータを受信することであって、前記第1のモジュール評判インジケータは、前記メイン実行可能モジュールの別のインスタンスの挙動に従って求められ、前記サーバは、アンチマルウェアトランザクションを、前記クライアントシステムを含む複数のクライアントシステムと共に実行するように構成され、前記第1のモジュール評判インジケータは、監視規則の第1の集合のインジケータを含み、前記第2のモジュール評判インジケータは、監視規則の第2の集合のインジケータを含む、受信することと、
    前記の第1および第2のモジュール評判インジケータを受信することに応じて、前記対象プロセスが悪意あるものでありそうかを、前記の第1および第2のモジュール評判インジケータに従って判定することと、
    前記対象プロセスが悪意あるものでありそうかを判定することに応じて、前記対象プロセスが悪意あるものでありそうでないときに、
    監視規則の前記の第1および第2の集合を、監視規則の組み合わされた集合へと組み合わせ、
    前記アンチマルウェアエンジンを、監視規則の前記組み合わされた集合に従って前記対象プロセスを監視するように構成する
    ことと
    を行うようにさらに構成された、クライアントシステム。
  2. 請求項1に記載のクライアントシステムであって、前記少なくとも1つのハードウェアプロセッサは、監視規則の前記組み合わされた集合を、監視規則の前記の第1および第2の集合の和集合に従って求めるように構成された、クライアントシステム。
  3. 請求項1に記載のクライアントシステムであって、前記少なくとも1つのハードウェアプロセッサは、監視規則の前記組み合わされた集合を、監視規則の前記の第1および第2の集合の共通集合に従って求めるように構成された、クライアントシステム。
  4. 請求項1に記載のクライアントシステムであって、監視規則の前記第1の集合のうちの選択された規則は、前記対象プロセスが悪意あるものであるかを判定するために用いられる、選択されたヒューリスティックを含む、クライアントシステム。
  5. 請求項1に記載のクライアントシステムであって、監視規則の前記第1の集合のうちの選択された規則は、前記アンチマルウェアエンジンに、前記対象プロセスが選択されたアクションを実行するかを判定するように命令する、クライアントシステム。
  6. 請求項1に記載のクライアントシステムであって、前記メイン実行可能モジュールの前記別のインスタンスは、前記複数のクライアントシステムのうちの第2のクライアントシステム上で実行される、クライアントシステム。
  7. 請求項1に記載のクライアントシステムであって、前記少なくとも1つのハードウェアプロセッサは、前記アンチマルウェアエンジンを構成することに応じて、
    前記対象プロセスが実行するアクションを検出することであって、前記アクションは、別の実行可能モジュールを前記対象プロセス内にロードすることを含み、前記別の実行可能モジュールは、前記メイン実行可能モジュールおよび前記共有ライブラリとは別個である、検出することと、
    前記アクションを検出することに応じて、前記対象プロセスを再度調べて、前記対象プロセスが悪意あるものでありそうかを、前記別の実行可能モジュールの第3のモジュール評判インジケータであって、前記サーバから受信した前記第3のモジュール評判インジケータに従って判定することと、
    前記アンチマルウェアエンジンを、前記第3のモジュール評判インジケータが示す監視規則の第3の集合に従って再構成することと
    を行うようにさらに構成された、クライアントシステム。
  8. 請求項1に記載のクライアントシステムであって、前記対象プロセスが悪意あるものでありそうかを判定することは、
    前記対象プロセスによりロードされるすべての実行可能モジュールを識別することと、
    前記すべての実行可能モジュールの各モジュールが悪意あるものでありそうかを、前記各モジュールのインスタンスに対して求められるモジュール評判インジケータに従って判定することと、
    前記すべての実行可能モジュールの各モジュールが悪意あるものでありそうでないときに、前記対象プロセスは悪意あるものでありそうにないと判定することと
    を含む、クライアントシステム。
  9. 請求項8に記載のクライアントシステムであって、前記対象プロセスが悪意あるものでありそうかを判定することは、各モジュールが悪意あるものでありそうかを判定することに応じて、前記すべての実行可能モジュールのうちの少なくとも1つのモジュールが悪意あるものでありそうなときに、前記対象プロセスは悪意あるものでありそうと判定することをさらに含む、クライアントシステム。
  10. 請求項1に記載のクライアントシステムであって、前記少なくとも1つのハードウェアプロセッサは、前記アンチマルウェアエンジンを構成することに応じて、
    前記対象プロセスがマルウェアを示すアクションを実行するかを判定することと、
    前記対象プロセスが前記マルウェアを示すアクションを実行するときに、
    前記マルウェアを示すアクションを実行する、前記対象プロセスの疑わしいモジュールを識別することと、
    前記疑わしいモジュールのモジュール評判インジケータを、前記疑わしいモジュールは悪意のあるものでありそうと示すように更新することと、
    前記疑わしいモジュールの前記モジュール評判インジケータを更新することに応じて、前記アンチマルウェアエンジンを、厳格なセキュリティプロトコルに従って前記対象プロセスを監視するように再構成することであって、前記厳格なセキュリティプロトコルは、監視規則の前記組み合わされた集合より計算量が大きい、再構成することと
    を行うように構成された、クライアントシステム。
  11. 請求項10に記載のクライアントシステムであって、前記少なくとも1つのハードウェアプロセッサは、前記疑わしいモジュールの前記モジュール評判インジケータを更新することに応じて、前記疑わしいモジュールの更新された前記モジュール評判インジケータを前記サーバに送信するようにさらに構成された、クライアントシステム。
  12. 請求項10に記載のクライアントシステムであって、前記少なくとも1つのハードウェアプロセッサは、前記疑わしいモジュールの前記モジュール評判インジケータを更新することに応じて、
    前記クライアントシステム上で実行される、前記疑わしいモジュールのインスタンスを含む第2のプロセスを識別することと、
    前記第2のプロセスを識別することに応じて、前記アンチマルウェアエンジンを、前記厳格なセキュリティプロトコルに従って前記第2のプロセスを監視するように構成することと
    を行うようにさらに構成された、クライアントシステム。
  13. 請求項1に記載のクライアントシステムであって、前記少なくとも1つのハードウェアプロセッサは、前記アンチマルウェアエンジンを構成することに応じて、
    前記対象プロセスがマルウェアを示すアクションを実行するかを判定することと、
    前記対象プロセスが前記マルウェアを示すアクションを実行するときに、前記アンチマルウェアエンジンを、厳格なセキュリティプロトコルを用いて、前記クライアントシステム上で実行される第2のプロセスを、該第2のプロセスが悪意あるものでありそうかどうかに関わらず監視するように構成することと
    を行うようにさらに構成された、クライアントシステム。
  14. メモリと、
    該メモリに接続された少なくとも1つのハードウェアプロセッサと
    を含むサーバであって、前記少なくとも1つのハードウェアプロセッサは、
    メイン実行可能モジュールの第1のモジュール評判インジケータ、および、共有ライブラリの第2のモジュール評判インジケータを求めることであって、前記第1のモジュール評判インジケータは、前記メイン実行可能モジュールのインスタンスの挙動に従って求められ、前記第1のモジュール評判インジケータは、監視規則の第1の集合のインジケータを含み、前記第2のモジュール評判インジケータは、監視規則の第2の集合のインジケータを含む、求めることと、
    前記の第1および第2のモジュール評判インジケータを求めることに応じて、前記の第1および第2のモジュール評判インジケータを、アンチマルウェアトランザクションを前記サーバと共に実行するように構成された複数のクライアントシステムのうちのクライアントシステムに送信すること
    を行うように構成され、前記クライアントシステムは、対象プロセスの悪意あるアクティビティを監視するように構成されたアンチマルウェアエンジンを実行するように構成され、前記対象プロセスは、前記メイン実行可能モジュールの別のインスタンスと、前記共有ライブラリのインスタンスとを含み、前記クライアントシステムは、
    前記対象プロセスが悪意あるものでありそうかを、前記の第1および第2のモジュール評判インジケータに従って判定することと、
    前記対象プロセスが悪意あるものでありそうかを判定することに応じて、前記対象プロセスが悪意あるものでありそうでないときに、
    監視規則の前記の第1および第2の集合を、監視規則の組み合わされた集合へと組み合わせ、
    前記アンチマルウェアエンジンを、監視規則の前記組み合わされた集合に従って前記対象プロセスを監視するように構成する
    ことと
    を行うようにさらに構成された、サーバ。
  15. 請求項14に記載のサーバであって、前記クライアントシステムは、監視規則の前記組み合わされた集合を、監視規則の前記の第1および第2の集合の和集合に従って求めるように構成された、サーバ。
  16. 請求項14に記載のサーバあって、前記クライアントシステムは、監視規則の前記組み合わされた集合を、監視規則の前記の第1および第2の集合の共通集合に従って求めるように構成された、サーバ。
  17. 請求項14に記載のサーバであって、監視規則の前記第1の集合のうちの選択された規則は、前記対象プロセスが悪意あるものであるかを判定するために用いられる、選択されたヒューリスティックを含む、サーバ。
  18. 請求項14に記載のサーバであって、監視規則の前記第1の集合のうちの選択された規則は、前記クライアントシステムに、前記対象プロセスが選択されたアクションを実行するかを判定するように命令する、サーバ。
  19. 請求項14に記載のサーバであって、前記メイン実行可能モジュールの前記インスタンスは、前記複数のクライアントシステムのうちの第2のクライアントシステム上で実行される、サーバ。
  20. 請求項14に記載のサーバであって、前記クライアントシステムは、前記アンチマルウェアエンジンを構成することに応じて、
    前記対象プロセスのアクションを検出することであって、前記アクションは、別の実行可能モジュールを前記対象プロセス内にロードすることを含み、前記別の実行可能モジュールは、前記メイン実行可能モジュールおよび前記共有ライブラリとは別個である、検出することと、
    前記アクションを検出することに応じて、前記対象プロセスを再度調べて、前記対象プロセスが悪意あるものでありそうかを、前記別の実行可能モジュールの第3のモジュール評判インジケータであって、前記サーバから受信した前記第3のモジュール評判インジケータに従って判定することと、
    前記アンチマルウェアエンジンを、前記第3のモジュール評判インジケータが示す監視規則の第3の集合に従って再構成することと
    を行うようにさらに構成された、サーバ。
  21. 請求項14に記載のサーバであって、前記対象プロセスが悪意あるものでありそうかを判定することは、
    前記対象プロセスによりロードされるすべての実行可能モジュールを識別することと、
    前記すべての実行可能モジュールの各モジュールが悪意あるものでありそうかを、前記各モジュールのインスタンスに対して求められるモジュール評判インジケータに従って判定することと、
    前記すべての実行可能モジュールの各モジュールが悪意あるものでありそうでないときに、前記対象プロセスは悪意あるものでありそうにないと判定することと
    を含む、サーバ。
  22. 請求項21に記載のサーバであって、前記対象プロセスが悪意あるものでありそうかを判定することは、各モジュールが悪意あるものでありそうかを判定することに応じて、前記すべての実行可能モジュールのうちの少なくとも1つのモジュールが悪意あるものでありそうなときに、前記対象プロセスは悪意あるものでありそうと判定することをさらに含む、サーバ。
  23. 請求項14に記載のサーバであって、前記クライアントシステムは、前記アンチマルウェアエンジンを構成することに応じて、
    前記対象プロセスがマルウェアを示すアクションを実行するかを判定することと、
    前記対象プロセスが前記マルウェアを示すアクションを実行するときに、
    前記マルウェアを示すアクションを実行する、前記対象プロセスの疑わしいモジュールを識別することと、
    前記疑わしいモジュールのモジュール評判インジケータを、前記疑わしいモジュールは悪意のあるものでありそうと示すように更新することと、
    前記疑わしいモジュールの前記モジュール評判インジケータを更新することに応じて、前記アンチマルウェアエンジンを、厳格なセキュリティプロトコルに従って前記対象プロセスを監視するように再構成することであって、前記厳格なセキュリティプロトコルは、監視規則の前記組み合わされた集合より計算量が大きい、再構成することと
    を行うようにさらに構成された、サーバ。
  24. 請求項23に記載のサーバであって、前記疑わしいモジュールの更新された前記モジュール評判インジケータを前記クライアントシステムから受信するようにさらに構成されたサーバ。
  25. 請求項23に記載のサーバであって、前記クライアントシステムは、前記疑わしいモジュールの前記モジュール評判インジケータを更新することに応じて、
    前記クライアントシステム上で実行される、前記疑わしいモジュールのインスタンスを含む第2のプロセスを識別することと、
    前記第2のプロセスを識別することに応じて、前記アンチマルウェアエンジンを、前記厳格なセキュリティプロトコルに従って前記第2のプロセスを監視するように構成することと
    を行うようにさらに構成された、サーバ。
  26. 請求項14に記載のサーバであって、前記クライアントシステムは、前記アンチマルウェアエンジンを構成することに応じて、
    前記対象プロセスがマルウェアを示すアクションを実行するかを判定することと、
    前記対象プロセスが前記マルウェアを示すアクションを実行するときに、前記アンチマルウェアエンジンを、厳格なセキュリティプロトコルを用いて、前記クライアントシステム上で実行される第2のプロセスを、該第2のプロセスが悪意あるものでありそうかどうかに関わらず監視するように構成することと
    を行うようにさらに構成された、サーバ。
  27. 命令を記憶するコンピュータ可読記憶媒体であって、前記命令は、クライアントシステムの少なくとも1つのプロセッサにより実行されると、メイン実行可能モジュールのインスタンスと、共有ライブラリのインスタンスとを含む対象プロセスを実行する前記クライアントシステムを、
    サーバから、前記メイン実行可能モジュールの第1のモジュール評判インジケータ、および、前記共有ライブラリの第2のモジュール評判インジケータを受信することであって、前記第1のモジュール評判インジケータは、前記メイン実行可能モジュールの別のインスタンスの挙動に従って求められ、前記サーバは、アンチマルウェアトランザクションを、前記クライアントシステムを含む複数のクライアントシステムと共に実行するように構成され、前記第1のモジュール評判インジケータは、監視規則の第1の集合のインジケータを含み、前記第2のモジュール評判インジケータは、監視規則の第2の集合のインジケータを含む、受信することと、
    前記の第1および第2のモジュール評判インジケータを受信することに応じて、前記対象プロセスが悪意あるものでありそうかを、前記の第1および第2のモジュール評判インジケータに従って判定することと、
    前記対象プロセスが悪意あるものでありそうかを判定することに応じて、前記対象プロセスが悪意あるものでありそうでないときに、
    監視規則の前記の第1および第2の集合を、監視規則の組み合わされた集合へと組み合わせ、
    前記クライアントシステム上で実行されるアンチマルウェアエンジンを、監視規則の前記組み合わされた集合に従って前記対象プロセスを監視するように構成する
    ことと
    を行うように構成する、コンピュータ可読記憶媒体。
  28. 請求項1に記載のクライアントシステムであって、前記少なくとも1つのハードウェアプロセッサは、前記対象プロセスが悪意あるものでありそうかを判定することに応じて、前記対象プロセスが悪意あるものでありそうなときに、前記アンチマルウェアエンジンを、前記対象プロセスを厳格なセキュリティプロトコルに従って監視するように構成することであって、前記厳格なセキュリティプロトコルは、監視規則の前記組み合わされた集合より計算量が大きい、構成することを行うようにさらに構成された、クライアントシステム。
  29. 請求項14に記載のサーバであって、前記クライアントシステムは、前記対象プロセスが悪意あるものでありそうかを判定することに応じて、前記対象プロセスが悪意あるものでありそうなときに、前記アンチマルウェアエンジンを、前記対象プロセスを厳格なセキュリティプロトコルに従って監視するように構成することであって、前記厳格なセキュリティプロトコルは、監視規則の前記組み合わされた集合より計算量が大きい、構成することを行うようにさらに構成された、サーバ。
JP2016517435A 2013-09-27 2014-09-25 評判インジケータを使用してマルウェアスキャニングを容易にするためのシステムおよび方法 Active JP6317434B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/040,430 US9117077B2 (en) 2013-09-27 2013-09-27 Systems and methods for using a reputation indicator to facilitate malware scanning
US14/040,430 2013-09-27
PCT/RO2014/000028 WO2015171007A1 (en) 2013-09-27 2014-09-25 Systems and methods for using a reputation indicator to facilitate malware scanning

Publications (3)

Publication Number Publication Date
JP2016538614A JP2016538614A (ja) 2016-12-08
JP2016538614A5 JP2016538614A5 (ja) 2017-06-15
JP6317434B2 true JP6317434B2 (ja) 2018-04-25

Family

ID=52741557

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016517435A Active JP6317434B2 (ja) 2013-09-27 2014-09-25 評判インジケータを使用してマルウェアスキャニングを容易にするためのシステムおよび方法

Country Status (13)

Country Link
US (1) US9117077B2 (ja)
EP (1) EP3049984B1 (ja)
JP (1) JP6317434B2 (ja)
KR (1) KR101928908B1 (ja)
CN (1) CN105580022B (ja)
AU (1) AU2014393471B2 (ja)
CA (1) CA2915806C (ja)
ES (1) ES2869400T3 (ja)
HK (1) HK1219790A1 (ja)
IL (1) IL243431B (ja)
RU (1) RU2646352C2 (ja)
SG (1) SG11201600064PA (ja)
WO (1) WO2015171007A1 (ja)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8935792B1 (en) * 2010-10-05 2015-01-13 Mcafee, Inc. System, method, and computer program product for conditionally performing an action based on an attribute
US10515214B1 (en) * 2013-09-30 2019-12-24 Fireeye, Inc. System and method for classifying malware within content created during analysis of a specimen
US9262635B2 (en) * 2014-02-05 2016-02-16 Fireeye, Inc. Detection efficacy of virtual machine-based analysis with application specific events
US9223972B1 (en) 2014-03-31 2015-12-29 Fireeye, Inc. Dynamically remote tuning of a malware content detection system
US10735550B2 (en) * 2014-04-30 2020-08-04 Webroot Inc. Smart caching based on reputation information
US9386031B2 (en) * 2014-09-12 2016-07-05 AO Kaspersky Lab System and method for detection of targeted attacks
FR3027130B1 (fr) * 2014-10-14 2016-12-30 Airbus Operations Sas Integration automatique de donnees relatives a une operation de maintenance
US10083295B2 (en) * 2014-12-23 2018-09-25 Mcafee, Llc System and method to combine multiple reputations
US10834109B2 (en) * 2014-12-23 2020-11-10 Mcafee, Llc Determining a reputation for a process
US9948649B1 (en) * 2014-12-30 2018-04-17 Juniper Networks, Inc. Internet address filtering based on a local database
DE102015215362A1 (de) * 2015-08-12 2017-02-16 Robert Bosch Gmbh Verfahren zum Einstellen mindestens eines Parameters einer Handwerkzeugmaschine
GB2546984B (en) * 2016-02-02 2020-09-23 F Secure Corp Preventing clean files being used by malware
US10713360B2 (en) * 2016-02-19 2020-07-14 Secureworks Corp. System and method for detecting and monitoring network communication
TWI599905B (zh) * 2016-05-23 2017-09-21 緯創資通股份有限公司 惡意碼的防護方法、系統及監控裝置
US10282546B1 (en) * 2016-06-21 2019-05-07 Symatec Corporation Systems and methods for detecting malware based on event dependencies
US10073968B1 (en) * 2016-06-24 2018-09-11 Symantec Corporation Systems and methods for classifying files
KR20180024524A (ko) * 2016-08-30 2018-03-08 주식회사 윈스 네트워크 트래픽 분석에 의한 평판 기반 차단 장치 및 방법
US11074494B2 (en) * 2016-09-09 2021-07-27 Cylance Inc. Machine learning model for analysis of instruction sequences
US10922604B2 (en) * 2016-09-09 2021-02-16 Cylance Inc. Training a machine learning model for analysis of instruction sequences
US10476900B2 (en) 2016-09-30 2019-11-12 McAFEE, LLC. Safe sharing of sensitive data
US10237293B2 (en) * 2016-10-27 2019-03-19 Bitdefender IPR Management Ltd. Dynamic reputation indicator for optimizing computer security operations
US10223536B2 (en) * 2016-12-29 2019-03-05 Paypal, Inc. Device monitoring policy
CN108804914B (zh) * 2017-05-03 2021-07-16 腾讯科技(深圳)有限公司 一种异常数据检测的方法及装置
US10873589B2 (en) 2017-08-08 2020-12-22 Sonicwall Inc. Real-time prevention of malicious content via dynamic analysis
US10929539B2 (en) * 2017-08-11 2021-02-23 Nec Corporation Automated software safeness categorization with installation lineage and hybrid information sources
CN107682315B (zh) * 2017-09-05 2020-11-06 杭州迪普科技股份有限公司 一种sql注入攻击检测模式设置方法及装置
US11151252B2 (en) 2017-10-13 2021-10-19 Sonicwall Inc. Just in time memory analysis for malware detection
US11086985B2 (en) * 2017-12-04 2021-08-10 Microsoft Technology Licensing, Llc Binary authorization based on both file and package attributes
US10685110B2 (en) 2017-12-29 2020-06-16 Sonicwall Inc. Detection of exploitative program code
US10902122B2 (en) * 2018-01-31 2021-01-26 Sonicwall Inc. Just in time memory analysis for malware detection
US11232201B2 (en) 2018-05-14 2022-01-25 Sonicwall Inc. Cloud based just in time memory analysis for malware detection
US11374977B2 (en) * 2018-09-20 2022-06-28 Forcepoint Llc Endpoint risk-based network protection
US11636198B1 (en) * 2019-03-30 2023-04-25 Fireeye Security Holdings Us Llc System and method for cybersecurity analyzer update and concurrent management system
US11481482B2 (en) * 2019-09-09 2022-10-25 Mcafee, Llc Securing an application framework from shared library sideload vulnerabilities
US11675901B2 (en) * 2020-12-22 2023-06-13 Mcafee, Llc Malware detection from operating system event tracing
US11647002B2 (en) * 2021-08-09 2023-05-09 Oversec, Uab Providing a notification system in a virtual private network
KR102560431B1 (ko) * 2022-09-21 2023-07-27 시큐레터 주식회사 자식 프로세스의 악성 행위를 검사하기 위한 방법 및 이를 위한 장치

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6931540B1 (en) 2000-05-31 2005-08-16 Networks Associates Technology, Inc. System, method and computer program product for selecting virus detection actions based on a process by which files are being accessed
US7260847B2 (en) * 2002-10-24 2007-08-21 Symantec Corporation Antivirus scanning in a hard-linked environment
US7991902B2 (en) * 2006-12-08 2011-08-02 Microsoft Corporation Reputation-based authorization decisions
US8302196B2 (en) * 2007-03-20 2012-10-30 Microsoft Corporation Combining assessment models and client targeting to identify network security vulnerabilities
US7392544B1 (en) * 2007-12-18 2008-06-24 Kaspersky Lab, Zao Method and system for anti-malware scanning with variable scan settings
US8225406B1 (en) * 2009-03-31 2012-07-17 Symantec Corporation Systems and methods for using reputation data to detect shared-object-based security threats
US8001606B1 (en) 2009-06-30 2011-08-16 Symantec Corporation Malware detection using a white list
US8955131B2 (en) * 2010-01-27 2015-02-10 Mcafee Inc. Method and system for proactive detection of malicious shared libraries via a remote reputation system
US8495705B1 (en) * 2010-04-20 2013-07-23 Symantec Corporation Systems and methods for reputation-based application of data-loss prevention policies
US9147071B2 (en) 2010-07-20 2015-09-29 Mcafee, Inc. System and method for proactive detection of malware device drivers via kernel forensic behavioral monitoring and a back-end reputation system
US8863291B2 (en) * 2011-01-20 2014-10-14 Microsoft Corporation Reputation checking of executable programs
JP5961638B2 (ja) 2011-02-17 2016-08-02 ターセーラ, インコーポレイテッド アプリケーション証明のためのシステムおよび方法
US9262624B2 (en) 2011-09-16 2016-02-16 Mcafee, Inc. Device-tailored whitelists
RU2011138462A (ru) * 2011-09-20 2013-04-10 Закрытое акционерное общество "Лаборатория Касперского" Использование решений пользователей для обнаружения неизвестных компьютерных угроз
US20130254880A1 (en) * 2012-03-21 2013-09-26 Mcafee, Inc. System and method for crowdsourcing of mobile application reputations

Also Published As

Publication number Publication date
IL243431B (en) 2018-11-29
ES2869400T3 (es) 2021-10-25
WO2015171007A1 (en) 2015-11-12
US9117077B2 (en) 2015-08-25
AU2014393471A1 (en) 2016-02-04
RU2646352C2 (ru) 2018-03-02
EP3049984B1 (en) 2021-03-10
AU2014393471B2 (en) 2019-06-27
CA2915806C (en) 2020-08-18
KR20160055826A (ko) 2016-05-18
RU2016115859A (ru) 2017-10-30
JP2016538614A (ja) 2016-12-08
CN105580022B (zh) 2019-06-21
HK1219790A1 (zh) 2017-04-13
US20150096018A1 (en) 2015-04-02
EP3049984A1 (en) 2016-08-03
KR101928908B1 (ko) 2018-12-13
CA2915806A1 (en) 2015-11-12
CN105580022A (zh) 2016-05-11
SG11201600064PA (en) 2016-02-26

Similar Documents

Publication Publication Date Title
JP6317434B2 (ja) 評判インジケータを使用してマルウェアスキャニングを容易にするためのシステムおよび方法
US10657277B2 (en) Behavioral-based control of access to encrypted content by a process
US10291634B2 (en) System and method for determining summary events of an attack
EP3430557B1 (en) System and method for reverse command shell detection
EP3430556B1 (en) System and method for process hollowing detection
US10650154B2 (en) Process-level control of encrypted content
US8918878B2 (en) Restoration of file damage caused by malware
KR102116573B1 (ko) 컴퓨터 보안 작동을 최적화하기 위한 동적 명성 표시자
US7665139B1 (en) Method and apparatus to detect and prevent malicious changes to tokens
US20140337918A1 (en) Context based switching to a secure operating system environment
WO2022208045A1 (en) Encrypted cache protection

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170421

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170421

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180216

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: 20180228

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180329

R150 Certificate of patent or registration of utility model

Ref document number: 6317434

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250