JP6188704B2 - ファジーホワイトリスト化アンチマルウェアシステムおよび方法 - Google Patents

ファジーホワイトリスト化アンチマルウェアシステムおよび方法 Download PDF

Info

Publication number
JP6188704B2
JP6188704B2 JP2014539903A JP2014539903A JP6188704B2 JP 6188704 B2 JP6188704 B2 JP 6188704B2 JP 2014539903 A JP2014539903 A JP 2014539903A JP 2014539903 A JP2014539903 A JP 2014539903A JP 6188704 B2 JP6188704 B2 JP 6188704B2
Authority
JP
Japan
Prior art keywords
target
hashes
hash
target object
computer system
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
JP2014539903A
Other languages
English (en)
Other versions
JP2014534531A (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 JP2014534531A publication Critical patent/JP2014534531A/ja
Application granted granted Critical
Publication of JP6188704B2 publication Critical patent/JP6188704B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • 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/562Static detection
    • G06F21/563Static detection by source code analysis
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Description

[0001]本出願は、2011年2月11日に出願された米国仮特許出願第61/554,859号の出願日の利益を主張し、その米国仮特許出願は、ここに参照によりその全体が組込まれる。
[0002]本発明は、悪意のあるソフトウェアからユーザを保護するためのシステムおよび方法に関し、特に、ソフトウェアホワイトリスト化に関する。
[0003]マルウェアとしても知られる悪意のあるソフトウェアは、世界中で多数のコンピュータシステムに影響を及ぼす。コンピュータウイルス、ワーム、トロイの木馬、およびルートキットなどのその多くの形態で、マルウェアは、何百万のコンピュータユーザに深刻なリスクを呈し、とりわけ、データの喪失、アイデンティティ窃盗、および生産性損失に対してそれらのユーザを脆弱にさせる。
[0004]マルウェアスキャニングに専用のコンピュータプログラムは、ユーザコンピュータシステムからマルウェアを検出し削除する種々の方法を使用する。こうした方法は、挙動ベース技法およびコンテンツベース技法を含む。挙動ベース方法は、疑わしいプログラムが隔離された仮想環境で実行されることを可能にすること、悪意のある挙動を識別すること、および、問題のあるプログラムの実行を阻止することを含むことができる。コンテンツベース方法では、疑わしいファイルのコンテンツは、一般に、知られているマルウェア識別シグネチャと比較される。知られているマルウェアシグネチャが疑わしいファイル内で見出される場合、ファイルは、悪意があるとしてラベル付けされる。
[0005]マルウェアを除去しようと努める他の方法は、アプリケーションホワイトリスト化を使用し、アプリケーションホワイトリスト化は、ユーザのコンピュータシステム上で許可されるソフトウェアおよび挙動のリストを維持すること、および、全ての他のアプリケーションが実行されることを阻止することを含むことができる。こうした方法は、多相性マルウェアに対して特に効果的であり、多相性マルウェアは、そのマルウェア識別シグネチャをランダムに改変することができ、従来のコンテンツベース方法を無効にする。
[0006]いくつかのホワイトリスト化アプリケーションは、ハッシュ値を使用して、ホワイトリスト化済みソフトウェアを識別し、ホワイトリスト化済みソフトウェアの完全性を確保する。暗号学的ハッシュが、ホワイトリスト化済みアプリケーションと提携されるファイルまたはファイルのグループのために生成され、参照のために記憶されることができる。それぞれのアプリケーションは、その後、記憶されたハッシュを、ランタイムで生成される新しいハッシュと比較することによって認証される。
[0007]アンチマルウェアホワイトリスト化方法の性能は、効率的かつ柔軟にホワイトリストデータベースを維持し更新する能力に依存しうる。
[0008]一態様によれば、方法は、クライアントコンピュータシステムにおいて、クライアントコンピュータシステムの複数のターゲットオブジェクトの初期マルウェアスキャンを実施すること、ターゲットオブジェクトが、悪意があることが疑われるという、初期マルウェアスキャンによる仮の判定に応答して、クライアントコンピュータシステムにおいて、ターゲットオブジェクトの複数のターゲットハッシュを生成することであって、それぞれのターゲットハッシュはターゲットオブジェクトの別個のコードブロックを示し、それぞれの別個のコードブロックはターゲットオブジェクトのプロセッサ命令のシーケンスからなる、生成すること、ワイドエリアネットワークを通じてクライアントコンピュータシステムからクライアントコンピュータシステムに接続されるサーバコンピュータシステムへ複数のターゲットハッシュを送信すること、および、クライアントコンピュータシステムにおいてサーバコンピュータシステムからターゲットオブジェクトが、悪意があるかどうかについてのサーバサイド指示子を受信することを含む。サーバサイド指示子は、サーバコンピュータシステムによって、複数のターゲットハッシュの少なくとも1つのターゲットハッシュについて、ターゲットハッシュに従ってホワイトリスト化済みオブジェクトのセットから選択される参照オブジェクトの複数の参照ハッシュを取出し、複数のターゲットハッシュが複数の参照ハッシュと同一でないとき、複数のターゲットハッシュと複数の参照ハッシュの両方に共通するハッシュの計数に従って類似性スコアを決定すること、および、類似性スコアが所定の閾値を超えるとき、ターゲットオブジェクトを悪意がないとして指定することによって生成される。
[0009]別の態様によれば、方法は、サーバコンピュータシステムにおいて、ワイドエリアネットワークを通じて、サーバコンピュータシステムに接続されるクライアントコンピュータシステムのターゲットオブジェクトの複数のターゲットハッシュを受信すること、サーバコンピュータシステムにおいて、ターゲットオブジェクトが悪意があるかどうかについてのサーバサイド指示子を生成すること、および、ターゲットオブジェクトが悪意があるかどうかについてのサーバサイド指示子をクライアントコンピュータシステムに送信することを含む。複数のターゲットハッシュは、ターゲットオブジェクトが悪意があることが疑われるというクライアントコンピュータシステムによる仮の判定に応答してクライアントコンピュータシステムにおいて生成され、仮の判定は、クライアントコンピュータシステムの複数のターゲットオブジェクトの初期マルウェアスキャンから得られる。サーバコンピュータシステムにおいてターゲットオブジェクトが悪意があるかどうかについてのサーバサイド指示子を生成することは、複数のターゲットハッシュの少なくとも1つのターゲットハッシュについて、ターゲットハッシュに従ってホワイトリスト化済みオブジェクトのセットから選択される参照オブジェクトの複数の参照ハッシュを取出し、複数のターゲットハッシュが複数の参照ハッシュと同一でないとき、複数のターゲットハッシュと複数の参照ハッシュの両方に共通するハッシュの計数に従って類似性スコアを決定すること、および、類似性スコアが所定の閾値を超えるとき、ターゲットオブジェクトを悪意がないとして指定することを含む。
[0010]別の態様によれば、方法は、サーバコンピュータシステムにおいて、ターゲットオブジェクトの複数のターゲットハッシュを受信することであって、それぞれのターゲットハッシュはターゲットオブジェクトの別個のコードブロックを示し、それぞれの別個のコードブロックはターゲットオブジェクトのプロセッサ命令のシーケンスからなる、受信すること、複数のターゲットハッシュの少なくとも1つのターゲットハッシュについて、サーバコンピュータシステムを使用することであって、それにより、ターゲットハッシュに従ってホワイトリスト化済みオブジェクトのセットから選択される参照オブジェクトの複数の参照ハッシュを取出し、複数のターゲットハッシュが複数の参照ハッシュと同一でないとき、複数のターゲットハッシュと複数の参照ハッシュの両方に共通するハッシュの計数に従って類似性スコアを決定する、使用すること、および、類似性スコアが所定の閾値を超えるとき、サーバコンピュータシステムを使用することであって、それにより、ターゲットオブジェクトを悪意がないとしてラベル付けする、使用することを含む。
[0011]別の態様によれば、少なくとも1つのプロセッサを備えるコンピュータシステムであって、少なくとも1つのプロセッサは、複数のターゲットハッシュであって、それぞれのターゲットハッシュはターゲットオブジェクトの別個のコードブロックを示し、それぞれの別個のコードブロックはターゲットオブジェクトのプロセッサ命令のシーケンスからなる、複数のターゲットハッシュを受信し、複数のターゲットハッシュの少なくとも1つのターゲットハッシュについて、ターゲットハッシュに従ってホワイトリスト化済みオブジェクトのセットから選択される参照オブジェクトの複数の参照ハッシュを取出し、複数のターゲットハッシュが複数の参照ハッシュと同一でないとき、複数のターゲットハッシュと複数の参照ハッシュの両方に共通するハッシュの計数に従って類似性スコアを決定し、類似性スコアが所定の閾値を超えるとき、ターゲットオブジェクトを悪意がないとしてラベル付けするようにプログラムされる。
[0012]別の態様によれば、非一時的なコンピュータ可読記憶媒体であって、命令をエンコードし、その命令は、プロセッサ上で実行されると、プロセッサに、複数のターゲットハッシュであって、それぞれのターゲットハッシュはターゲットオブジェクトの別個のコードブロックを示し、それぞれの別個のコードブロックはターゲットオブジェクトのプロセッサ命令のシーケンスからなる、複数のターゲットハッシュを受信するステップと、複数のターゲットハッシュの少なくとも1つのターゲットハッシュについて、ターゲットハッシュに従ってホワイトリスト化済みオブジェクトのセットから選択される参照オブジェクトの複数の参照ハッシュを取出すステップと、複数のターゲットハッシュが複数の参照ハッシュと同一でないとき、複数のターゲットハッシュと複数の参照ハッシュの両方に共通するハッシュの計数に従って類似性スコアを決定するステップとを実施させる。類似性スコアが所定の閾値を超えるとき、ターゲットオブジェクトは悪意がない。
[0013]別の態様によれば、コンピュータシステムは、複数のターゲットハッシュであって、それぞれのターゲットハッシュはターゲットオブジェクトの別個のコードブロックを示し、それぞれの別個のコードブロックはターゲットオブジェクトのプロセッサ命令のシーケンスからなる、複数のターゲットハッシュを受信する手段と、複数のターゲットハッシュの選択されたターゲットハッシュに従ってホワイトリスト化済みオブジェクトのセットから選択される参照オブジェクトの複数の参照ハッシュを取出す手段と、複数のターゲットハッシュと複数の参照ハッシュの両方に共通するハッシュの計数に従って類似性スコアを決定する手段と、類似性スコアに従って、ターゲットオブジェクトを悪意がないとしてラベル付けする手段とを備える。
[0014]別の態様によれば、方法は、サーバコンピュータシステムにおいて、複数のターゲットハッシュを受信するステップであって、それぞれのターゲットハッシュは、ターゲットオブジェクトの別個のデータブロックを示し、それぞれの別個のコードブロックはターゲットオブジェクトのプロセッサ命令のシーケンスからなる、受信すること、ホワイトリスト化済みデータオブジェクトを示す複数の参照ハッシュを取出すこと、複数のターゲットハッシュが複数の参照ハッシュと同一でないときで、かつ、複数のターゲットハッシュおよび複数の参照ハッシュが大多数のアイテムを共有するとき、ターゲットオブジェクトを悪意がないとしてラベル付けすることを含む。
[0015]本発明の先の態様および利点は、以下の詳細な説明を読み、図面を参照するとよりよく理解されるであろう。
[0016]本発明のいくつかの実施形態による例示的なアンチマルウェアシステムを示す図である。 [0017]本発明のいくつかの実施形態によるクライアントコンピュータシステムの例示的なハードウェア構成を示す図である。 [0018]本発明のいくつかの実施形態によるアンチマルウェアサーバシステムの例示的なハードウェア構成を示す図である。 [0019]本発明のいくつかの実施形態によるクライアントコンピュータシステム上で実行される例示的なアンチマルウェアアプリケーションの図である。 [0020]本発明のいくつかの実施形態によるアンチマルウェアサーバシステム上で実行される例示的なアプリケーションを示す図である。 [0021]本発明のいくつかの実施形態による図4のクライアントアンチマルウェアアプリケーションによって実施される例示的なステップのシーケンスを示す図である。 [0022]本発明のいくつかの実施形態によるコード正規化の例を示す図である。 [0023]本発明のいくつかの実施形態による例示的なプロセッサ命令のメモリ表現を示す図である。 [0024]本発明のいくつかの実施形態による例示的なコードブロックおよびコードブロックに対応する例示的なオペコードパターンを示す図である。 [0025]本発明のいくつかの実施形態による、複数のコードブロックを含む例示的なコードのフラグメントおよびコードのフラグメントに対応する例示的なオブジェクトデータ指示子(ODI)を示す図である。 [0026]本発明のいくつかの実施形態による図5のサーバアンチマルウェアアプリケーションによって実施される例示的なステップのシーケンスを示す図である。
[0027]以下の説明では、構造間の全ての挙げられる構造が、中間構造を通して直接的動作可能接続または間接的動作可能接続でありうることが理解される。要素のセットは1つまたは複数の要素を含む。要素のいずれの列挙も、少なくとも1つの要素を参照すると理解される。複数の要素は少なくとも2つの要素を含む。別途必要されない限り、述べられるどの方法ステップも、必ずしも示す特定の順序で実施される必要はない。第2の要素から導出される第1の要素(たとえば、データ)は、第2の要素と同じ第1の要素、ならびに、第2の要素および任意選択で他のデータを処理することによって生成される第1の要素を包含する。パラメータに従って判定または決定を行うことは、パラメータに従ってまた任意選択で他のデータに従って判定または決定を行うことを包含する。別途指定されない限り、何らかの量/データの指示子は、その量/データ自体またはその量/データ自体と異なる指示子であるとすることができる。本発明の幾つかの実施形態で述べるコンピュータプログラムは、他のコンピュータプログラムのスタンドアローンソフトウェアエンティティまたはサブエンティティ(たとえば、サブルーチン、コードオブジェクト)であるとすることができる。別途指定しない限り、ターゲットオブジェクトは、クライアントコンピュータシステム上に存在するファイルまたはプロセスである。ターゲットオブジェクトの識別子は、単にクライアントコンピュータシステムのメモリ全体などの、より大きなデータ構造の一部としてではなく、ターゲットオブジェクト自体の選択的な識別および取出しを可能にするデータを含む。別途指定されない限り、ターゲットオブジェクトのオブジェクトデータ指示子(object data indicator)(ODI)は、ターゲットオブジェクトが、悪意がある、たとえばマルウェアに感染しているかどうかを判定するのに助けになるターゲットオブジェクトデータ(たとえば、コードブロック、オペコードパターン、ハッシュ)の特徴を含む。別途指定されない限り、ハッシュはハッシュ関数の出力である。ハッシュ関数は、シンボル(たとえば、文字、ビット)のシーケンスを数またはビットストリングのより短いシーケンスにマッピングする数学的変換である。ターゲットハッシュは、ターゲットオブジェクトのデータに関して計算されたハッシュである。別途指定されない限り、ホワイトリスト化済みという用語は、クリーンであると信頼される、すなわち、マルウェアを含んでいないことを意味すると理解される。第1のセットは、第1のセットの全ての要素が第2のセットに含まれ、かつ、第2のセットの全ての要素が第1のセットに含まれるときに第2のセットと同一である。コンピュータ可読媒体は、磁気記憶媒体、光記憶媒体、および半導体記憶媒体(たとえば、ハードドライブ、光ディスク、フラッシュメモリ、DRAM)、ならびに、導電性ケーブルおよび光ファイバリンクなどの通信リンクを包含する。いくつかの実施形態によれば、本発明は、特に、本明細書で述べる方法を実施するようにプログラムされるハードウェア(たとえば、1つまたは複数のプロセッサ)を備えるコンピュータシステム、ならびに、本明細書で述べる方法を実施する命令をエンコードするコンピュータ可読媒体を提供する。
[0028]以下の説明は、本発明の実施形態を例として示し、必ずしも制限として示すわけではない。
[0029]図1は、本発明のいくつかの実施形態による例示的なマルウェア検出システム10を示す。システム10は、アンチマルウェア(AM)サーバシステム20a〜20cのセットおよびクライアントコンピュータシステム30a〜30bのセットを備える。クライアントコンピュータシステム30a〜30bは、エンドユーザコンピュータを示すことができ、それぞれが、プロセッサ、メモリ、およびストレージを有し、また、Windows(登録商標)、MacOS(登録商標)、またはLinux(登録商標)などのオペレーティングシステムを実行する。いくつかのクライアントコンピュータシステム30a〜30bは、タブレットPCおよび携帯電話などのモバイルコンピューティングデバイスおよび/または電気通信デバイスを示すことができる。いくつかの実施形態では、クライアントコンピュータシステム30a〜30bは、個々の顧客を示すことができる、または、いつかのクライアントコンピュータシステムは、同じ顧客に属することができる。いくつかの実施形態では、システム30a〜30bの一方は、メールサーバなどのサーバコンピュータであるとすることができ、その場合、マルウェア検出サービスが、使用されて、複数のクライアントに送信された電子メールまたは他のメッセージ内に存在するマルウェアを識別し、そのメッセージがクライアントに送出される前に適切な処置をとる(たとえば、マルウェアに感染したアイテムを除去または隔離する)ことができる。ネットワーク12は、クライアントコンピュータシステム30a〜30cとアンチマルウェアサーバシステム20a〜20cを接続する。ネットワーク12は、インターネットなどのワイドエリアネットワークであるとすることができる。ネットワーク12の一部、たとえばクライアントコンピュータシステム30a〜30bに相互接続するネットワーク12の一部はまた、ローカルエリアネットワーク(LAN)を含むことができる。
[0030]図2は、クライアントコンピュータシステム30の例示的なハードウェア構成を示す。いくつかの実施形態では、システム30は、プロセッサ24、メモリユニット26、入力デバイス28のセット、出力デバイス32のセット、記憶デバイス34のセット、および通信インタフェースコントローラ36を備え、全てがバス38のセットによって接続される。
[0031]いくつかの実施形態では、プロセッサ24は、信号および/またはデータに関する計算オペレーションおよび/または論理オペレーションを実行するように構成される物理デバイス(たとえば、マルチコア集積回路)を備える。いくつかの実施形態では、こうした論理オペレーションは、プロセッサ命令(たとえば、マシンコードまたは他のタイプのソフトウェア)のシーケンスの形態でプロセッサ24に送出される。メモリユニット26は、命令を実施する過程でプロセッサ24によってアクセスまたは生成されるデータ/信号を記憶する揮発性コンピュータ可読媒体(たとえば、RAM)を備えることができる。入力デバイス28は、ユーザがシステム30にデータおよび/または命令を導入することを可能にする、とりわけ、コンピュータキーボードおよびマウスを含むことができる。出力デバイス32は、モニタなどのディスプレイデバイスを含むことができる。いくつかの実施形態では、入力デバイス28および出力デバイス32は、タッチスクリーンデバイスの場合と同様に、ハードウェアの共通部品を共有することができる。記憶デバイス34は、ソフトウェア命令および/またはデータの不揮発性記憶、読出し、および書込みを可能にするコンピュータ可読媒体を含む。例示的な記憶デバイス34は、磁気ディスクおよび光ディスクおよびフラッシュメモリ、ならびに、CDおよび/またはDVDディスクおよびドライブなどの取外し可能媒体を含む。通信インタフェースコントローラ36は、システム30がコンピュータネットワークおよび/または他のマシン/コンピュータシステムに接続することを可能にする。典型的な通信インタフェースコントローラ36は、ネットワークアダプタを含む。バス38は、複数のシステムバス、周辺バス、およびチップセットバス、および/または、コンピュータシステム30のデバイス24〜36の相互通信を可能にする全ての他の回路要素を全体的に示す。たとえば、バス38は、とりわけ、プロセッサ24をメモリ26に接続するノースブリッジバスおよび/またはプロセッサ24をデバイス28〜36に接続するサウスブリッジバスを備えることができる。
[0032]図3は、本発明のいくつかの実施形態によるシステム20a〜20cの例示的なAMサーバシステム20のハードウェア構成を示す。AMサーバシステム20は、全てがサーババス138のセットによって互いに接続される、サーバプロセッサ124、サーバメモリ126、サーバ記憶デバイス134のセット、およびサーバ通信インタフェースコントローラ136を備えるコンピュータシステムであるとすることができる。ハードウェア構成のいくつかの詳細は、サーバシステム20とクライアントコンピュータシステム30との間で異なる場合がありうるが、デバイス124、126、134、136、および138の範囲は、上述したデバイス24、26、34、36、および38の範囲と同様であるとすることができる。
[0033]クライアントコンピュータシステム30は、図4に示すように、クライアントアンチマルウェア(AM)アプリケーション40およびクライアントサイドキャッシュ56を含むことができる。いくつかの実施形態では、クライアントAMアプリケーション40は、スタンドアロンアプリケーションであるとすることができる、または、アンチウイルス、ファイヤウォール、アンチスパムを有するセキュリティスイートのアンチマルウェアモジュール、および他のモジュールであるとすることができる。クライアントAMアプリケーションは、アクティブAMスキャナ42、スタティックAMスキャナ44、スタティックAMスキャナ44に接続されるエミュレータ46、スキャナ42および44に接続されるコード正規化エンジン48、クライアントAM通信マネージャ52、ならびに、通信マネージャ52およびコード正規化エンジン48に接続されるハッシュ法(hashing)エンジン54を備えることができる。
[0034]いくつかの実施形態では、クライアントAMアプリケーション40は、クライアントコンピュータシステム30の一部を形成するコンピュータ可読媒体(たとえば、メモリ、ハードドライブ)上に、または、システム30に接続されるコンピュータ可読媒体(たとえば、メモリスティック、外部ハードドライブネットワークドライブなど)上に記憶されるマルウェアを検出するために、クライアント−サーバ協調スキャンのクライアントサイド部分を実施するように構成される。クライアント−サーバ協調スキャンの一部として、クライアントAMアプリケーション40は、ターゲットオブジェクトデータ指示子(ODI)100をAMサーバシステム20a〜20cに送信し、システム20a〜20cからスキャンレポート50を受信するように構成される。
[0035]AMアプリケーション40によってスキャンされるターゲットオブジェクトは、コンピュータファイルおよびプロセスを含む。それぞれのプロセスは、ロードされるメモリモジュール(ターゲット実行可能ファイルのロードされるイメージおよびその参照されるダイナミックリンク式ライブラリ)のセット、ならびに、ロードされるメモリモジュールに対応する任意のさらなるファイルを含むことができる。ターゲットオブジェクトは、少なくとも悪意のあるソフトウェアエンティティ(たとえば、ウイルス、ワーム、トロイの木馬)の一部を含む場合、マルウェアであると考えられることができる。
[0036]いくつかの実施形態では、ODI100は、複数のコードブロック指示子を含み、それぞれのコードブロック指示子は、ターゲットブロックの別個のコードブロックを示す。ODI100の例示的なコンテンツおよびフォーマットは、図7〜9に関して詳細に論じられることになる。
[0037]いくつかの実施形態では、スキャンレポート50は、ターゲットオブジェクトの識別子(たとえば、タグ、ファイルID)、ターゲットオブジェクトのマルウェアステータス指示子(たとえば、感染済み、クリーン、未知)、ならびに/または、個々のマルウェアエージェントの名前(たとえば、Win32.Worm.Downadup.Gen)、マルウェアクラス指示子(ウイルス、ルートキットなど)、またはマルウェア知識ベース内のそれぞれのエージェントに対するポインタなどの、ターゲットオブジェクトに感染するマルウェアエージェントの識別子のセットを含む。いくつかの実施形態では、単一のスキャンレポートは、ターゲットオブジェクトのバッチについてコンパイルされることができる。
[0038]いくつかの実施形態では、サーバ通信マネージャ52は、サーバAMシステム20a〜20bとの通信を管理するように構成される。たとえば、ネットワーク12を通じた接続を確立し、AMサーバ20a〜20cへ/からデータを送信/受信し、進行中のスキャントランザクションのリストを維持し、ターゲットODI100を、サーバサイドスキャニングを実施するAMサーバに関連付けることができる。
[0039]アクティブAMスキャナ42およびスタティックAMスキャナ44は、以下でより詳細に示すように、クライアントAMアプリケーション40が、ターゲットオブジェクトの予備アンチマルウェアスキャンを実行することを可能にする。予備スキャンが、悪意のあるコンテンツを検出する場合、問題のあるターゲットオブジェクトは、クライアントーサーバスキャニングを経験する必要なく、ユーザに直接レポートされ、したがって、時間およびコンピュータ資源を節約する。いくつかの実施形態では、ファイルターゲットオブジェクトは、スタティックAMスキャナ44によって処理され、一方、プロセスターゲットオブジェクトは、アクティブAMスキャナ42によって処理される。いくつかの実施形態では、スタティックAMスキャナ44は、エミュレータ46を使用して、ファイルをアンパック(unpack)し、それを、主メモリ以外の保護された環境で実行することができる。スキャナ42、44は、挙動ベース方法、種々のヒューリスティック、コンテンツベース方法(たとえば、シグネチャ照合)、またはその組合せを使用して、ターゲットオブジェクトがマルウェアであるかどうかを判定することができる。ターゲットオブジェクトが、悪意があるかどうかを判定するためのヒューリスティック基準の例は、とりわけ、ターゲットオブジェクトのポータブル実行可能(portable executable)(PE)ファイル内の種々のセクションの相対的サイズ、それぞれのセクション内の情報密度、PEヘッダ内の特定のフラグおよびフラググループの存在、(もしあれば)パッカ/プロテクタに関する情報、ならびに、実行可能ファイル(executable)の内部における一定のテキストパターンの存在を含む。
[0040]クライアントAMアプリケーション40は、コード正規化エンジン48およびハッシュ法エンジン54を使用して、ターゲットODI100を生成することができる。コード正規化エンジン48のオペレーションは、図7に関して以下で論じられることになる。ハッシュ法エンジン54は、図8〜9に示すように、オペコードパターンを受信し、それぞれのオペコードパターンのハッシュを生成するように構成される。いくつかの実施形態では、ハッシュは、ハッシュ関数、シンボル(たとえば、文字、ビット)のシーケンスを数またはビットストリングのシーケンスにマッピングする数学的変換の出力である。ハッシュ法エンジン54によって使用される例示的なハッシュ関数は、とりわけ、循環冗長検査(cyclic redundancy check)(CRC)、メッセージダイジェスト(message digest)(MD)、またはセキュアハッシュ法(secure hashing)(SHA)を含む。例示的なハッシュは、4バイトCRC32である。
[0041]クライアントサイドキャッシュ56のいくつかの実施形態は、任意の所与の時間に、それぞれのクライアントシステム30上に存在するターゲットオブジェクトに対応するODIのレポジトリを備え、オブジェクトはマルウェアについて既にスキャンされている。いくつかの実施形態では、キャッシュ56は、ターゲットオブジェクトODIのハッシュのセットを備えることができ、クライアントシステム30から受信されるそれぞれのODIはハッシュ処理されることができ、二重のハッシュは除去され、結果得られるハッシュは、それぞれのODIの一意の指示子として記憶される。キャッシュ56は、マルウェアスキャニングの迅速化を可能にする。それぞれのターゲットオブジェクトが少なくとも1回既にスキャンされていることを示すターゲットオブジェクトのODIまたはそのハッシュがクライアントキャッシュ56において見出される場合、ターゲットオブジェクトのマルウェアステータスが、キャッシュ56から直接取出され、ユーザにレポートされることができ、プロセスは、ターゲットオブジェクトの新しいスキャンを実行するよりかなり速い。全てのODIについて、キャッシュ56のいくつかの実施形態は、オブジェクト識別子(たとえば、タグ、ファイルID)およびそれぞれのターゲットオブジェクトのマルウェアステータスの指示子を含むことができる。
[0042]図5は、本発明のいくつかの実施形態によるAMサーバシステム20上で実行される例示的なアプリケーションを示す。いくつかの実施形態では、システム20は、サーバAMアプリケーション60、サーバサイドキャッシュ68、ホワイトリストデータベース65、マルウェアデータベース66、およびアウトブレークデータベース67bを備え、全てがAMサーバアプリケーション60に接続される。
[0043]いくつかの実施形態では、AMサーバアプリケーション60は、クライアントコンピュータシステム30a〜30bによって複数のマルウェア検出トランザクションを実施するように構成される。それぞれのこうしたトランザクションについて、サーバAMアプリケーション60は、以下で詳細に述べるように、それぞれのクライアントコンピュータシステム上に存在するマルウェアを検出するために協調スキャンのサーバサイド部分を実施するように構成される。クライアント−サーバトランザクションの一部として、アプリケーション60は、ターゲットODI100をクライアントコンピュータシステムから受信し、スキャンレポート50をそれぞれのクライアントコンピュータシステムに送信する。サーバAMアプリケーション60は、サーバAM通信マネージャ62および通信マネージャ62に接続されるコード比較器64を備えることができる。
[0044]いくつかの実施形態では、サーバ通信マネージャ62は、クライアントコンピュータシステム30a〜30bとの通信を管理するように構成される。たとえば、マネージャ62は、ネットワーク12を通じた接続を確立し、クライアントへ/からデータを送信/受信し、進行中のスキャントランザクションのリストを維持し、ターゲットODI100を、発信元のクライアントコンピュータシステム30a〜30bに関連付けることができる。コード比較器64は、以下で詳細に述べるように、ターゲットオブジェクトと、データベース65〜67に記憶される参照オブジェクトのセットとの間の類似性の程度を示す類似性スコアを計算するように構成される。
[0045]いくつかの実施形態では、サーバサイドキャッシュ68は、マルウェアについて既にスキャンされているターゲットオブジェクトのODIのリポジトリを含み、ODIは、以前のクライアントーサーバ協調スキャンの過程で種々のクライアントコンピュータシステム30a〜30bから受信される。以下でさらに論じるように、ターゲットオブジェクトのODIがサーバキャッシュ68において見出され、それぞれのターゲットオブジェクトが少なくとも1回既にスキャンされていることを示す場合、ターゲットオブジェクトのマルウェアステータス(たとえば、クリーン、感染済みなど)が、ターゲットオブジェクトの新しいスキャンなしでキャッシュ68から取出されることができる。ターゲットODIと共に、サーバキャッシュ68のいくつかの実施形態は、それぞれのターゲットオブジェクトのマルウェアステータス(たとえば、クリーン、感染済み)を記憶することができる。
[0046]データベース65〜67は、現在のマルウェア関連知識のリポジトリとして維持される。いくつかの実施形態では、それぞれのデータベース65〜67は、知られているマルウェアステータスの参照オブジェクト(ファイルおよびプロセス)の集合に対応するデータ指示子のセットを含む。いくつかの実施形態では、データベース65〜67は、オペコードパターンハッシュ(図7〜10に関して以下でさらに述べる)の形態でデータを記憶する。ホワイトリストデータベース65は、クリーンであると信頼されるオブジェクト(すなわち、ホワイトリスト化アイテム)から取出されるハッシュのセットを含む。マルウェアデータベース66は、マルウェアとして知られているオブジェクトから取出されるマルウェア識別ハッシュを含む。いくつかの実施形態では、アウトブレークデータベース67は、未知のマルウェアステータスである(マルウェアかまたはクリーンであるとしてまだ認識されていない)オブジェクトについて計算されるハッシュを含む。
[0047]いくつかの実施形態では、データベース65〜67に記憶される全てのオペコードパターンハッシュは同じサイズ(たとえば、4バイト)を有する。それらのハッシュは、サーバシステム20a〜20cのメモリおよび/またはコンピュータ可読媒体に順次記憶される。いくつかの実施形態では、オブジェクト識別子(たとえば、ファイルIDもまた、4バイトの数として示される)を含む第2のデータ構造は、参照ハッシュのセットと共に記憶される。それぞれのAMサーバのメモリに記憶される双方向マッピングが使用されて、それぞれのハッシュを、そのハッシュが取出されたオブジェクトのファイルIDに関連付ける。これは、サーバAMアプリケーションが、参照ハッシュを選択的に取出し、クライアントコンピュータシステムから受信されるターゲットオブジェクトが、データベース65〜67に記憶される任意の参照オブジェクトと類似であるかどうか判定することを可能にする。データベース65〜67は、以下でさらに述べるように、クライアントコンピュータシステム30a〜30bから受信されるターゲットオブジェクトを追加することによって最新に維持され続ける。
[0048]図6は、本発明のいくつかの実施形態によるクライアントAMアプリケーション40によって実施される例示的なステップのシーケンスを示す。ステップ202にて、アプリケーション40はターゲットオブジェクトを選択して、マルウェアについてスキャンする。いくつかの実施形態では、ターゲットオブジェクトは、ユーザによって直接的または間接的に指定されることができる(オンデマンドスキャニング)。たとえば、ユーザは、AMアプリケーション40に、あるファイルか、あるファイルのコンテンツか、または、あるコンピュータ可読媒体(たとえば、CDROM、フラッシュメモリデバイス)上に記憶されたコンテンツをスキャンするよう指示することができる。他の例示的なターゲットオブジェクトは、オンアクセススキャニング中に選択され、アプリケーション40は、あるタイプのファイルまたはプロセスを、それらを読出し/ロードし/起動する前にスキャンするように構成される。いくつかの実施形態では、ターゲットオブジェクトのセットは、アプリケーション40を実行するクライアントコンピュータシステムのスケジュールされたスキャンのためにコンパイルされることができる。Microsoft Windows(登録商標)を実行するクライアントシステム上に存在するこうした例示的なターゲットオブジェクトのセットは、とりわけ、WINDIRフォルダ、WINDIR/システム32フォルダからの実行可能ファイル、現在実行しているプロセスの実行可能ファイル、現在実行しているプロセスによってインポートされるダイナミックリンクライブラリ(dynamic link library)(DLL)、およびインストール済み全てのシステムサービスの実行可能ファイルを含むことができる。いくつかの実施形態では、ターゲットオブジェクトはまた、関心のマルウェアプログラム、たとえば、それぞれのマルウェアスキャンの始動時に最もよく知られかつアクティブであると考えられるマルウェアプログラムによって標的にされるファイル/プロセスを含むことができる。
[0049]いくつかの実施形態では、識別子(たとえば、ファイルID)は、それぞれのターゲットオブジェクトを一意にタグ付けするために使用される。識別子は、たとえばそれぞれのクライアントコンピュータシステムのメモリ全体などの、より大きな構造の一部としてではなく、ターゲットオブジェクト自体(たとえば、ファイルまたはプロセス)の選択的な識別を可能にするデータを含み、たとえばそれぞれのクライアントコンピュータシステムのメモリ全体などの、より大きな構造の一部としてデータを含まない。例示的なターゲットオブジェクト識別子は、とりわけ、ファイルパスおよびメモリアドレスを含む。識別子はまた、クライアントAMアプリケーション40がターゲットオブジェクトを選択的に取出して、ターゲットODI100を計算すると共に複数のターゲットオブジェクトに関してクライアントーサーバスキャントランザクションを明白に実施することを可能にする。
[0050]ステップ204(図6)にて、クライアントAMアプリケーション40は、ターゲットオブジェクトの予備アンチマルウェアスキャンを実行することができる。いくつかの実施形態では、ファイルターゲットオブジェクトはスタティックAMスキャナ44によって処理され、一方、プロセスターゲットオブジェクトはアクティブAMスキャナ42によって処理される。スキャナ42、44は、挙動方法(たとえば、エミュレーション)、種々のヒューリスティック(たとえば、ターゲットオブジェクトのポータブル実行可能ヘッダのジオメトリ)、コンテンツベース方法(たとえば、シグネチャ照合)、またはその組合せを使用して、ターゲットオブジェクトがマルウェアであるかどうかを判定することができる。いくつかの実施形態では、スキャナ42、44は、ターゲットオブジェクトのマルウェアステータスの指示子を生成することができる。例示的なステータス指示子は、とりわけ、悪意がある、悪意があることが疑われる、およびクリーンである、を含む。
[0051]いくつかの実施形態では、ターゲットオブジェクトは、知られている悪意のあるオブジェクトと共通しているが、マルウェアであると考えるのに十分ではないいくつかの特徴を有するときに、悪意があることが疑われる場合がある。例示的な疑わしい特徴は、とりわけ、ある値/ある対のターゲットオブジェクトのPEヘッダ内での存在、あるコードシーケンス(ターゲットオブジェクトが仮想環境内で実行されているかどうかをチェックするコード)のターゲットオブジェクト内での存在、ならびに、アンチマルウェアソフトウェアの共通のパスワードおよび名前および/またはパス指示子などのマルウェア識別テキストパターン(シグネチャ)の存在を含む。他の疑わしい特徴は、ターゲットオブジェクトの、あるマルウェア識別挙動パターンを備える場合がある。
[0052]いくつかの実施形態では、スキャナ42、44は、それぞれのターゲットオブジェクトについてマルウェアスコアを計算し、それぞれのマルウェア識別特徴が、特定の重みを与えられることができる。マルウェアスコアが第1の閾値を超えると、それぞれのターゲットオブジェクトは、悪意があることを疑われる場合があり、スコアが第2のより高い閾値を超えると、ターゲットオブジェクトが、マルウェアとしてラベル付けされることができる。IRCプロトコルに固有のストリング、アンチウイルスプログラムの名前、共通のWindows(登録商標)パスワード、および開発に固有のコードシーケンスを含む例示的なターゲットオブジェクトは、かなり高いマルウェアスコアを受信し、したがって、マルウェアであるとラベル付けされることができ、一方、いくつかのアンチマルウェアアプリケーションの名前を含むだけである別の例示的なターゲットオブジェクトは、比較的低いスコアを受信するが、悪意があることを依然として疑われる場合がある。
[0053]ステップ206にて、アプリケーション40は、ターゲットオブジェクトが、予備マルウェアスキャンに従って悪意があるかどうかを判定する。いいえの場合、アプリケーション40のオペレーションは、以下に述べるステップ210に進む。はいの場合、ステップ208にてAMアプリケーション40は、ターゲットオブジェクトをマルウェアとしてラベル付けし、ステップ230にて、クライアントサイドキャッシュ56を相応して更新する。次に、クライアントAMアプリケーション40は、ステップ232にて、マルウェアスキャンの結果を出力する。
[0054]いくつかの実施形態では、ステップ232は、それぞれのクライアントコンピュータシステムが感染する可能性があることをユーザに知らせる警報(たとえば、ポップアップウィンドウ)を発することを含むことができる。代替的に、アプリケーション40は、システムログ内でマルウェアスキャンを文書化することができる。AMアプリケーション40のいくつかの実施形態は、スキャンレポートをユーザに表示することができ、レポートは、とりわけ、ターゲットオブジェクトの名前(またはオブジェクト識別子)、検出されたマルウェアのタイプの指示子、およびそれぞれのマルウェアに関するさらなる情報(たとえば、考えられるクリーンアップ方法)を含む。
[0055]ステップ210にて、クライアントAMアプリケーション40は、ターゲットオブジェクトが、予備スキャン(上記ステップ204参照)の結果に従って悪意があることを疑われるかどうかを判定することができる。はいの場合、オペレーションは、以下で論じるステップ212に進む。いいえの場合、ステップ228にて、アプリケーション40は、ターゲットオブジェクトを悪意がない(クリーンである)としてラベル付けし、ステップ230に進むことができる。
[0056]ステップ212にて、ターゲットオブジェクトがファイルである場合、アプリケーション40は、エミュレータ46によって提供される保護済み環境内にターゲットファイルをロードして、ターゲットオブジェクトのコードを保護するパッキングおよび/または暗号化の任意の層を除去することができる。ターゲットオブジェクトがプロセスである場合、アプリケーション40のオペレーションは、ターゲットオブジェクトがシステムメモリ内に既にロードされていることになるため、ステップ212をスキップすることができる。
[0057]ステップ214にて、コード正規化エンジン48は、ターゲットオブジェクトのコード正規化を実施する。コンパイラは、特にコード最適化によって、使用されるコンパイルパラメータに応じて、ソースコードの同じブロックから異なるマシンコードを生成しうる。さらなるコード変形が、プロテクタ/多相性マルウェアによって導入されることができる。いくつかの実施形態では、コード正規化は、コンパイルおよび/または他の多相性によって導入されるコンピュータコードの変形を除去するために、ターゲットオブジェクトを形成するプロセッサ命令のセットをプロセッサ命令の標準化セットに変換することを含む。例示的なコード正規化オペレーションは、以下のように進むことができる。
[0058]1. ターゲットオブジェクトを構築するために使用されるコンパイラは、ターゲットオブジェクトのある特徴に従って検出される。コンパイラがわかっているとき、ターゲットオブジェクトのメモリイメージの内部のオブジェクト固有のコードのロケーションが決定される。コンパイラを確定することができないとき、コード抽出のためのターゲットエリアが、できる限り多くの考えられるオブジェクト固有のコードロケーション(たとえば、エントリ点、第1のセクションの始め、全てのセクションの始めなど)をカバーするように選択される。
[0059]2. コード逆アセンブルは、前のステップで見出されたロケーションで始まる。いくつかの実施形態では、コード逆アセンブルは、コード分岐(たとえば、x86コードにおけるJMP/Jxx/CALL)に従う。逆アセンブルされる命令は、シーケンスで処理される。正規化プロセスの一部として、いくつかの命令は、不変のままにされ、他の命令は変更される。例示的な変更は、
a. レジスタIDが、レジスタIDが関数ブロックの内部で現れる順序に基づいて置換される;
b. 一定値およびオフセットが削除される;
c. PUSHとそれに続くPOPシーケンスは、MOV命令で置換される;
d. 変数/レジスタ/メモリアドレスの値を0にセットするシーケンス(たとえば、XOR<アイテム>,<アイテム>)は、MOV<アイテム>,0で置換される;
e. 1または2の加算/減算は、1つまたは2つのINC/DEC命令で、それぞれ置換される;
f. JZ/JNZ命令は、JE/JNE命令で、それぞれ置換される;
g. 関数プロローグおよびエピローグが除去される;
h. 命令クラスCMP、MOV、およびTESTが除去される;
i. 非オペレーション(0とのADDおよびSUB;NOPなど)が除去される
を含む。
[0060]図7は、本発明のいくつかの実施形態によるコード正規化の例を示す。例示的なターゲットオブジェクトから逆アセンブルされるコードのフラグメントは、関数ブロック70を含む。いくつかの実施形態では、関数ブロックは、PUSH EBP;MOV EBP,ESP命令シーケンスで始まり、POP EBで終わる。関数ブロック70からのコード(プロセッサ命令)のそれぞれのラインは、右に挙げる指示に従って修正されて、対応する正規化済み関数ブロック72を生成する。
[0061]ステップ216(図6)にて、クライアントAMアプリケーション40は、ターゲットオブジェクトのオブジェクトデータ指示子(ODI)を計算する。いくつかの実施形態では、ODIは、複数のコードブロック指示子を含み、それぞれのコードブロック指示子は、ターゲットオブジェクトの別個のコードブロックを示す。例示的なコードブロック指示子は、それぞれのコードブロックのオペコードパターンを含む。
[0062]いくつかの実施形態では、コードブロックは、連続的なプロセッサ命令のシーケンスを含み、シーケンスは、ターゲットオブジェクトの正規化コードから抽出される。いくつかの実施形態では、コードブロックは、コードに無関係の所定の数の命令を含む。代替的に、コードブロック内の命令の計数は、所定の範囲内で変動する。例示的なコードブロックは、5と50との間の連続的な命令を含む。いくつかの実施形態では、コードブロックのサイズ(たとえば、命令の数)は、関数ブロックが2つ以上のコードブロックを含むように、関数ブロックのサイズより実質的に小さい。いくつかの実施形態では、コードブロックは、関数ブロックの開始時にまたはCALL命令で開始する。例示的なコードブロック74は図7に示される。
[0063]いくつかの実施形態では、ステップ216は、ターゲットオブジェクトをコードブロックに分離すること、および、こうしたそれぞれのコードブロックからオペコード指示子のセットを抽出することを含む。図8は、プロセッサ命令80の例示的な2値メモリ表現を示す(Intel(登録商標)x86、プロセッサの32ビットファミリについて示す)。いくつかの実施形態では、それぞれのプロセッサ命令は、バイトのシーケンスとしてメモリに記憶され、そのシーケンスは、Prefixフィールド82a、Opcode(オペコード)フィールド82b〜82cのカップル、Mod/Reg/R/Mフィールド82d、およびDisplacement/Dataフィールド82eなどの命令フィールドのセットを含む。いくつかの実施形態では、Opcodeフィールド82b〜82cは、命令のタイプ(たとえば、MOV、PUSHなど)をエンコードし、一方、フィールド82a、82d〜82eは、種々の命令パラメータ(たとえば、レジスタ名、メモリアドレスなど)をエンコードする。x86フォーマットなどのいくつかの実施形態では、命令フィールドのバイトサイズおよびコンテンツは、命令依存性があり、したがって、x86アーキテクチャ用の命令は、いろいろな長さである。図8に示す命令(XOR CL,12H)は、第1のOpcodeバイト(XORについて10000000)、Mod/Reg/R/Mバイト(レジスタCLについて11110001)、およびDisplacement/Dataバイト(00010010は、12Hについて2値である)だけを含み、一方、他の命令は、両方のOpcodeフィールド、あるいは、Prefix、Opcode、Mod、Reg、および/またはDataフィールドの他の組合せを含むことができる。
[0064]図9は、コードブロック74に対応する例示的なオペコードパターン90を示す。いくつかの実施形態では、オペコードパターン90は、オペコード指示子92のセットを含むデータ構造(たとえば、バイトシーケンス、リストなど)であり、それぞれのオペコード指示子は正規化コードブロック74のプロセッサ命令に対応する。例示的なオペコード指示子92は、それぞれのプロセッサ命令のOpcodeフィールドのコンテンツを含み、その場合、オペコードパターン90は、それぞれのコードブロックを構成する命令タイプのシーケンスを含む。図9に示す実施形態では、それぞれのオペコード指示子92は、オペコードバイトおよびパラメータバイトの組合せを含む(たとえば、命令PUSH EDXについてのオペコード指示子は、16進数で52である)。
[0065]図10は、本発明のいくつかの実施形態による、正規化コードのフラグメントおよびフラグメントの例示的なODI100を示す。ODI100は、複数のコードブロック指示子104a〜104cを含み、それぞれのコードブロック指示子はそれぞれのコードブロック74a〜74cのダイジェスト(たとえば、指紋、シグネチャ)を提供する。例示的なコードブロック指示子104a〜104cはそれぞれのオペコードパターン90a〜90cを含む。いくつかの実施形態では、コードブロック指示子104a〜104cは、図10に示すように、オペコードパターン90a〜90cのハッシュを含む。コードブロック指示子104a〜104c以外に、ODI100のいくつかの実施形態は、それぞれのターゲットオブジェクトをタグ付けするオブジェクト識別子(たとえば、ファイルID)および/またはターゲットオブジェクトのオブジェクト特徴指示子106のセットを含むことができる。例示的なオブジェクト特徴指示子は、とりわけ、ファイルサイズ(たとえば、130kB)、ファイルタイプ(たとえば、ファイルが、実行可能ファイルであるかどうか、DLLであるかどうかなど)の指示子、ターゲットオブジェクのメモリアドレス、および、アンチマルウェアヒューリスティック試験のセットの結果(たとえば、ターゲットオブジェクトが、あるマルウェア固有の挙動またはコンテンツを表示するかどうか)を示す数のセットを含む。いくつかの実施形態では、オブジェクト特徴指示子106は、たとえばターゲットオブジェクトの予備スキャン(ステップ202)中にAMスキャナ42〜44によって計算される。
[0066]簡単にするために、本明細書の残りは、コードブロック指示子104a〜104cがオペコードパターン90a〜90cのハッシュを含むと仮定することになる。ステップ216(図6)の実行は、その後、以下のように進む。クライアントAMアプリケーション40は、ターゲットオブジェクトを別個のコードブロック(図10においてコードブロック74a〜74cで示す)に分離することができる。それぞれのコードブロック74a〜74cについて、アプリケーション40は、図9に示すように、それぞれ、引き続きオペコードパターン90a〜90cを計算することができる。アプリケーション40は、その後、ハッシュ法(hashing)エンジン54を呼出して、オペコードパターン90a〜90cのハッシュを計算し、それにより、それぞれのコードブロック指示子(たとえば、ターゲットハッシュ)104a〜104cを生成することができる。ハッシュ法エンジン54は、とりわけ、循環冗長検査(CRC)、メッセージダイジェスト(MD)、またはセキュアハッシュ法(SHA)などのハッシュ法アルゴリズムを使用することができる。
[0067]ターゲットODI100を計算した後、ステップ218(図6)にて、クライアントAMアプリケーション40は、クライアントサイドキャッシュ56内でODIの探索を実施する。ODIがキャッシュレコード(キャッシュヒット)に一致し、それぞれのターゲットオブジェクトがマルウェアについて少なくとも1回、既にスキャンされていることを示す場合、アプリケーション40は、ステップ220に進んで、キャッシュレコード(たとえば、クリーンまたはマルウェア)に従ってターゲットオブジェクトをラベル付けし、先に論じたステップ232に進む。
[0068]ターゲットODI100がクライアントサイドキャッシュ56内で照合されない場合、ステップ222にて、アプリケーション40は、クライアントーサーバスキャニングトランザクションを始動するためにクライアントAM通信マネージャ52を呼出すことができる。通信マネージャ52は、ターゲットODI100をAMサーバ20a〜20cに送信し、ステップ224にて、サーバ20a〜20cからスキャンレポート50を受信する。いくつかの実施形態ではそれぞれのODIが、別個のクライアントーサーバスキャニングトランザクションの一部を形成することができる、または、複数のODIが、同じトランザクション(バッチ処理)内で同時に送信されることができる。
[0069]ステップ226にて、アプリケーション40は、スキャンレポート50に従ってターゲットオブジェクトがホワイトリスト化済み(クリーン)であるかどうかを判定する。はいの場合、ターゲットオブジェクトは、悪意がないとしてラベル付けされる(ステップ228)。ターゲットオブジェクトが、スキャンレポート50に従って悪意がある場合、アプリケーション40は、ターゲットオブジェクトをマルウェアとしてラベル付けする(ステップ208)。
[0070]図11は、本発明のいくつかの実施形態によるサーバAMアプリケーション60(図5)によって実施される例示的なステップのシーケンスを示す。ステップ302にて、サーバAM通信マネージャ62は、ターゲットODI100をクライアントコンピュータシステム30から受信する。ステップ304にて、アプリケーション60は、サーバサイドキャッシュ68内でODI100の探索を実施する。ODIがキャッシュレコード(キャッシュヒット)に一致し、それぞれのターゲットオブジェクトがマルウェアについて少なくとも1回、既にスキャンされていることを示す場合、アプリケーション60は、ステップ306に進んで、キャッシュレコード(たとえば、クリーンまたはマルウェア)に従ってターゲットオブジェクトをラベル付けする。ステップ308にて、通信マネージャ62は、スキャンレポート50をコンパイルし、レポート50をそれぞれのクライアントコンピュータシステム30に送信する。
[0071]ODI100のレコードがサーバサイドキャッシュ68内で見出されない場合、ステップ310にて、サーバAMアプリケーション60は、ODI100のハッシュをフィルタリングして、関連するハッシュのサブセットを生成する。いくつかの実施形態では、オブジェクト固有でないオペコードパターンのハッシュは、ODI100から廃棄されて、マルウェアスキャニングの性能を改善することができる。こうした非固有のオペコードパターンは、たとえばアンパッカコード(たとえば、インストーラ、セルフエクストラクタ)および/またはライブラリコードに対応するかまたはクリーンオブジェクトとマルウェアオブジェクトの両方の中に存在する。
[0072]ステップ312にて、ODI100のそれぞれのハッシュについて、サーバAMアプリケーション60は、ホワイトリストデータベース65に照会して、それぞれのハッシュを含むホワイトリスト化参照オブジェクトのセットを取出すことができる。いくつかの実施形態では、ヒープベースアルゴリズムが使用されて、取出された参照オブジェクトを、ターゲットオブジェクトとのそれらの類似性に従ってランク付けする。
[0073]ステップ314にて、サーバAMアプリケーション60は、ステップ312にて取出したそれぞれのホワイトリスト化参照オブジェクトにターゲットオブジェクトがどれほど類似しているかを特徴付ける類似性スコアを計算するためにコード比較器64を呼出す。いくつかの実施形態では、類似性スコアは、公式
S=100*C/max(N ,N ) [1]
に従って計算される。ここで、Cは、ターゲットオブジェクトとそれぞれの参照オブジェクトの両方に共通するハッシュの数(計数)を示し、Nは、上記ステップ310で論じたようにフィルタリングされたターゲットODIのハッシュの数(計数)を示し、Nは、参照オブジェクトのハッシュの数(計数)を示す。
[0074]代替の実施形態は、
S=200*C/(N+N) [2]
または
S=50*(C/N+C/N) [3]
などの公式に従って類似性スコアを計算することができる。
[0075]ステップ316にて、アプリケーション60は、類似性スコア(たとえば、公式[1])を所定の閾値と比較する。類似性スコアが閾値を超え、ターゲットオブジェクトが少なくとも1つのホワイトリスト化オブジュエクトと類似であることを示すとき、サーバAMアプリケーション60のいくつかの実施形態は、ステップ318にて、ターゲットオブジェクトを悪意がない(クリーンである)としてラベル付けすることができる。ホワイトリスト化閾値の例示的な値は50であり、ターゲットオブジェクトがホワイトリスト化済みオブジェクトとそのオペコードパターンの50%より多くを共有するとき、ターゲットオブジェクトがホワイトリスト化されていることを示す。
[0076]次に、ステップ320は、ホワイトリストデータベース65を現在のターゲットオブジェクトによって更新し、ステップ322は、サーバサイドキャッシュ68を、ターゲットオブジェクトのレコードおよびスキャン結果(たとえば、クリーン)の指示子によって更新する。
[0077]ホワイトリスト化類似性スコア(ステップ318)が閾値を超えず、ターゲットオブジェクトが、知られている任意のホワイトリスト化済みオブジェクトに十分に類似しないことを示すとき、サーバAMアプリケーションは、引き続きステップ324に移動し、ターゲットODI100が、マルウェアオブジェクトのレコードのセットと比較される。いくつかの実施形態では、ODI100のハッシュのセットがさらにフィルタリングされて、ホワイトリストデータベース65からのレコード(上記ステップ312参照)に一致した全てのハッシュを除去し、したがって、知られている任意のホワイトリスト化済みオブジェクト内で見出されないハッシュのサブセットを保持する。ターゲットオブジェクトの認識されないそれぞれのこうしたハッシュについて、コード比較器64は、マルウェアおよび/またはアウトブレークデータベース66〜67に照会して、それぞれのハッシュを含むマルウェアオブジェクトのセットを取出すことができる。ステップ326にて、コード比較器64は、その後、それぞれのこうしたマルウェアオブジェクトにターゲットオブジェクトがどれほど類似しているかを示すマルウェア類似性スコアを引き続き計算することができる。いくつかの実施形態では、コード比較器64は、上述した公式[1〜3]の任意の公式を使用して、マルウェア類似性スコアを計算する。
[0078]ステップ328は、マルウェア類似性スコアをプリセット閾値と比較する。マルウェア類似性スコアが閾値を超え、ターゲットオブジェクトが、データベース、66〜67に記憶された少なくとも1つのマルウェアオブジェクトと類似であることを示すとき、ステップ330にて、ターゲットオブジェクトはマルウェアとしてラベル付けされる。マルウェアとしての分類のための例示的な値は70である(すなわち、ターゲットオブジェクトは、知られているマルウェアブジェクトとオペコードパターンの70%より多くを共有する)。次に、マルウェアおよび/またはアウトブレークデータベース66〜67は、ターゲットオブジェクトのレコードを含むように更新される。サーバサイドキャッシュ68は、ターゲットオブジェクトのレコードおよびそのマルウェアステータス(たとえば、感染済み)の指示子を含むように更新され、スキャンレポートは、コンパイルされ、クライアントコンピュータシステムに送信される(ステップ308)。
[0079]マルウェア類似性スコアが閾値を超えず、ターゲットオブジェクトが、知られているマルウェアオブジェクトに類似しないことを示すとき、サーバAMアプリケーションのいくつかの実施形態は、ターゲットオブジェクトをホワイトリスト化済み/悪意がないとしてラベル付けし(ステップ318)、ホワイトリスト化データベース65を相応して更新することができる。
[0080]ターゲットODI100はまた、アルウェアアウトブレーク警報をトリガすることができる。いくつかの実施形態では、サーバAMアプリケーション60は、アウトブレークデータベース67からの参照オブジェクトを計数し、オブジェクトは、ターゲットオブジェクトに類似であり、また、所定の時間枠(たとえば、最新の6時間)内でAMサーバシステム20a〜20cによって受信されている。その計数が閾値(たとえば、10)を超えるとき、マルウェアアウトブレークが仮定され、ターゲットオブジェクトならびにそれと類似である全ての参照オブジェクトが、感染済みであるとしてマーキングされる。マルウェアおよび/またはアウトブレークデータベース66〜67は、その後、相応して更新される。
[0081]上述した例示的なシステムおよび方法は、アンチマルウェアシステムが、柔軟性のあるホワイトリストデータベースを維持し、ホワイトリストデータベースを使用して、マルウェア検出性能を改善することを可能にする。
[0082]従来のホワイトリスト化アプリケーションでは、ターゲットオブジェクト(コンピュータファイルまたはプロセス)のハッシュは、ホワイトリスト化済みオブジェクト(クリーンであると信頼されるオブジェクト)に対応するハッシュのセットと比較される。ターゲットオブジェクトのハッシュがホワイトリスト化ハッシュに一致し、ターゲットオブジェクトが、ホワイトリスト化済みオブジェクトの少なくとも1つのホワイトリスト化済みオブジェクトと同一であることを示すとき、ターゲットオブジェクトは、トラステッドであり、たとえば、実行することを許可される。ハッシュ関数の数学的なある特性のために、従来のホワイトリスト化は、ホワイトリスト化済みオブジェクトのコードの変動を可能にしない。すなわち、2つのオブジェクトが、わずか1ビットだけ異なる場合、2つのオブジェクトのハッシュはもはや一致しない。一方、正当なコンピュータファイルおよびプロセスは、たとえば、コンパイラ間のまたは同じソフトウェアの連続するバージョン間の差によって、かなりの変動を表示することができる。
[0083]上述したシステムおよび方法のいくつかの実施形態は、アンチマルウェアシステムが、コンパイラおよび他の多相性によって導入される差などのデータオブジェクト間の良性の差(benign difference)を反映することを可能にする。ターゲットオブジェクトは複数のコードブロックに分離され、それぞれのコードブロックについてハッシュが計算される。得られるターゲットハッシュのセットは、その後、ホワイトリスト化済みオブジェクトから抽出されるコードブロックに対応するハッシュのデータベースと比較される。ターゲットオブジェクトは、ホワイトリスト化済みオブジェクトと共通にかなりの数のハッシュを有する場合、ホワイトリスト化済み(トラステッドである)としてラベル付けされることができる。知られているホワイトリスト化済みオブジェクトとわずかに異なるオブジェクトは、ホワイトリスト化ステータスを依然として受信することができる。別個のオブジェクトのハッシュのセット間に、ある程度の不一致を許可することによって、本発明のいくつかの実施形態は、データ安全性を許容できないほどに減少させることなく、ホワイトリスト化の効率を増加させる。
[0084]コードブロックのサイズは、いくつかの基準に従って決定されることができる。小さなコードブロックは(たとえば、少数のプロセッサ命令はそれぞれ)、ターゲットオブジェクトについて多数のハッシュをもたらす場合があり、それが、アンチマルウェアサーバの記憶および処理負荷を増加させ、スキャニングを減速させる場合がある。一方、小さなコードブロックは、かなりの程度の柔軟性を提供する。すなわち、2つのオブジェクトがほんのわずかに異なる場合、その差は、ハッシュのごく一部によって取上げられ、高い類似性スコアを生成することになる。大きなコードブロック(たとえば、数百のプロセッサ命令)は、平均して、ターゲットオブジェクトについて少数の(たとえば、いくつかの)ハッシュを生成し、したがって、記憶および処理の観点から有利である。しかし、大きなコードブロックは、従来のハッシュ処理と同じ欠点にさらされる。すなわち、2つのオブジェクト間の小さな差は、ハッシュの大部分によって取上げられ、低い類似性スコアを生成する場合がある。試験が明らかにしたところによれば、いくつかの実施形態では、最適なコードブロックサイズは、5と50との間のプロセッサ命令、特に約5〜15(たとえば、約10)の命令であるということである。
[0085]上述した例示的なシステムおよび方法は、アンチマルウェアシステムが、協調的クライアントーサーバスキャニングトランザクションを実施し、ターゲットオブジェクトのサーバサイドスキャンの結果に従ってターゲットオブジェクトのマルウェアステータスにアクセスすることを可能にする。リモートアンチマルウェアサーバ上でマルウェアスキャンの一部を実施することは、クライアントコンピュータシステム上でのターゲットオブジェクトのローカルスキャニングに優るいくつかの利点を有する。
[0086]マルウェアエージェントおよびソフトウェアの急増は、一般に、ホワイトリストおよびマルウェアハッシュデータベースのサイズの着実な増加に寄与してきており、それは、数メガバイトから数ギガバイトのデータになる。上述した例示的な方法およびシステムは、アンチマルウェアサーバ上にハッシュデータベースを記憶することを可能にし、したがって、コーポレートサーバから多数の顧客への、データが重いソフトウェアの定期的ベースでの更新の送出を回避する。
[0087]マルウェアスキャニングのかなりの部分を主にサーバ上で実施することによって、上述したシステムおよび方法は、新たに検出されたマルウェアおよび新しい正当なソフトウェアについてのハッシュの時宜を得た組込みを可能にする。対照的に、スキャニングがクライアントコンピュータシステムに主に分配される従来のマルウェア検出では、新しいセキュリティ脅威および新しいホワイトリスト化済みソフトウェアに関する情報収集は、アンチマルウェアソフトウェア製作者に達するのにかなり長い時間かかる間接的な方法を含む場合がある。
[0088]上述したクライアントシステムとアンチマルウェアサーバシステムとの間で交換されるファイルのサイズは最小に維持される。サーバサイドスキャニングのために、クライアントからサーバにターゲットオブジェクト全体を送信する代わりに、上述した例示的な方法およびシステムは、ターゲットオブジェクトについて数バイトから数キロバイトになる場合があるハッシュを交換するように構成され、したがって、ネットワークトラフィックを大幅に低減する。
[0089]上記実施形態が、本発明の範囲から逸脱することなく多くの方法で変更されることができることが当業者に明らかになる。したがって、本発明の範囲は、添付特許請求の範囲およびそれらの法的な均等物によって決定されるべきである。

Claims (29)

  1. クライアントコンピュータシステムにおいて、前記クライアントコンピュータシステムの複数のターゲットオブジェクトの初期マルウェアスキャンを実施するステップと、
    前記ターゲットオブジェクトは悪意があると疑われるという、前記初期マルウェアスキャンによる仮の判定に応答するステップであって、
    前記クライアントコンピュータシステムにおいて、前記ターゲットオブジェクトの複数のターゲットハッシュを生成するステップであって、それぞれのターゲットハッシュは前記ターゲットオブジェクトに含まれる別個のコードブロックから計算され、それぞれの別個のコードブロックは前記ターゲットオブジェクトのプロセッサ命令のシーケンスを含む、生成するステップと、
    ワイドエリアネットワークを通じて前記クライアントコンピュータシステムから前記クライアントコンピュータシステムに接続されるサーバコンピュータシステムへ前記複数のターゲットハッシュを送信するステップと、
    前記クライアントコンピュータシステムにおいて前記サーバコンピュータシステムから前記ターゲットオブジェクトは悪意があるかどうかについてのサーバサイド指示子を受信するステップと
    を含むステップと
    を含む方法であって、前記サーバサイド指示子は、前記サーバコンピュータシステムによって生成され、該生成は、
    前記複数のターゲットハッシュの少なくとも1つのターゲットハッシュについて、該ターゲットハッシュに従って、ホワイトリスト化済みオブジェクトのセットから選択される参照オブジェクトの複数の参照ハッシュを取出し、前記複数のターゲットハッシュが前記複数の参照ハッシュと同一でないとき、前記複数のターゲットハッシュと前記複数の参照ハッシュの両方に共通するハッシュの計数に従って類似性スコアを求めること、および、
    前記類似性スコアが所定の閾値を超えるとき、前記ターゲットオブジェクトを悪意がないとして指定すること
    により、前記サーバコンピュータシステムによる前記サーバサイド指示子の生成は、
    前記類似性スコアが前記所定の閾値を超えないときに、前記ターゲットオブジェクトの前記複数のターゲットハッシュからのクリーンハッシュのデータベースに現れる全てのターゲットハッシュをフィルタリングすることによって前記ターゲットオブジェクトのターゲットハッシュのフィルタリング済みセットを生成するステップと、
    ターゲットハッシュの前記フィルタリング済みセットを、マルウェア固有のマルウェア識別ハッシュのデータベースと比較するステップと
    を含む、方法。
  2. クライアントコンピュータシステムにおいて、前記クライアントコンピュータシステムの複数のターゲットオブジェクトの初期マルウェアスキャンを実施するステップと、
    前記ターゲットオブジェクトは悪意があると疑われるという、前記初期マルウェアスキャンによる仮の判定に応答するステップであって、
    前記クライアントコンピュータシステムにおいて、前記ターゲットオブジェクトの複数のターゲットハッシュを生成するステップであって、それぞれのターゲットハッシュは前記ターゲットオブジェクトに含まれる別個のコードブロックから計算され、それぞれの別個のコードブロックは前記ターゲットオブジェクトのプロセッサ命令のシーケンスを含む、生成するステップと、
    ワイドエリアネットワークを通じて前記クライアントコンピュータシステムから前記クライアントコンピュータシステムに接続されるサーバコンピュータシステムへ前記複数のターゲットハッシュを送信するステップと、
    前記クライアントコンピュータシステムにおいて前記サーバコンピュータシステムから前記ターゲットオブジェクトは悪意があるかどうかについてのサーバサイド指示子を受信するステップと
    を含むステップと
    を含む方法であって、前記サーバサイド指示子は、前記サーバコンピュータシステムによって生成され、該生成は、
    前記複数のターゲットハッシュの少なくとも1つのターゲットハッシュについて、該ターゲットハッシュに従って、ホワイトリスト化済みオブジェクトのセットから選択される参照オブジェクトの複数の参照ハッシュを取出し、前記複数のターゲットハッシュが前記複数の参照ハッシュと同一でないとき、前記複数のターゲットハッシュと前記複数の参照ハッシュの両方に共通するハッシュの計数に従って類似性スコアを求めること、および、
    前記類似性スコアが所定の閾値を超えるとき、前記ターゲットオブジェクトを悪意がないとして指定すること
    により、前記サーバコンピュータシステムによる前記サーバサイド指示子の生成は、
    前記類似性スコアが前記所定の閾値を超えないときに、前記ターゲットオブジェクトの前記複数のターゲットハッシュからのクリーンハッシュのデータベースに現れる全てのターゲットハッシュをフィルタリングすることによって前記ターゲットオブジェクトのターゲットハッシュのフィルタリング済みセットを生成するステップと、
    前記サーバコンピュータシステムに接続される複数の別個のクライアントコンピュータシステムによって、ターゲットハッシュの前記フィルタリング済みセットを、所定の最近の期間内にレポートされる未知オブジェクトに固有のアウトブレーク検出ハッシュのデータベースと比較するステップと
    を含む、方法。
  3. サーバコンピュータシステムにおいて、複数の別個のコードブロックからそれぞれ計算された複数のターゲットハッシュを受信するステップであって、前記複数の別個のコードブロックは、ワイドエリアネットワークを通じて前記サーバコンピュータシステムに接続されるクライアントコンピュータシステムのターゲットオブジェクトに含まれ、前記複数のターゲットハッシュは、前記ターゲットオブジェクトは悪意があると疑われるという、前記クライアントコンピュータシステムによる仮の判定に応答して、前記クライアントコンピュータシステムにおいて生成され、前記仮の判定は、前記クライアントコンピュータシステムの複数のターゲットオブジェクトの初期マルウェアスキャンから得られる、受信するステップと、
    前記サーバコンピュータシステムにおいて前記ターゲットオブジェクトは悪意があるかどうかについてのサーバサイド指示子を生成するステップであって、該生成は、
    前記複数のターゲットハッシュの少なくとも1つのターゲットハッシュについて、該ターゲットハッシュに従ってホワイトリスト化済みオブジェクトのセットから選択される参照オブジェクトの複数の参照ハッシュを取出し、前記複数のターゲットハッシュが前記複数の参照ハッシュと同一でないとき、前記複数のターゲットハッシュと前記複数の参照ハッシュの両方に共通するハッシュの計数に従って類似性スコアを求めること、および、
    前記類似性スコアが所定の閾値を超えるとき、前記ターゲットオブジェクトを悪意がないとして指定すること
    による、生成するステップと、
    前記ターゲットオブジェクトは悪意があるかどうかについての前記サーバサイド指示子を前記クライアントコンピュータシステムに送信するステップと
    を含み、前記サーバコンピュータシステムによる前記サーバサイド指示子の生成は、
    前記類似性スコアが前記所定の閾値を超えないときに、前記ターゲットオブジェクトの前記複数のターゲットハッシュからのクリーンハッシュのデータベースに現れる全てのターゲットハッシュをフィルタリングすることによって前記ターゲットオブジェクトのターゲットハッシュのフィルタリング済みセットを生成するステップと、
    ターゲットハッシュの前記フィルタリング済みセットを、マルウェア固有のマルウェア識別ハッシュのデータベースと比較するステップと
    を含む、方法。
  4. サーバコンピュータシステムにおいて、複数の別個のコードブロックからそれぞれ計算された複数のターゲットハッシュを受信するステップであって、前記複数の別個のコードブロックは、ワイドエリアネットワークを通じて前記サーバコンピュータシステムに接続されるクライアントコンピュータシステムのターゲットオブジェクトに含まれ、前記複数のターゲットハッシュは、前記ターゲットオブジェクトは悪意があると疑われるという、前記クライアントコンピュータシステムによる仮の判定に応答して、前記クライアントコンピュータシステムにおいて生成され、前記仮の判定は、前記クライアントコンピュータシステムの複数のターゲットオブジェクトの初期マルウェアスキャンから得られる、受信するステップと、
    前記サーバコンピュータシステムにおいて前記ターゲットオブジェクトは悪意があるかどうかについてのサーバサイド指示子を生成するステップであって、該生成は、
    前記複数のターゲットハッシュの少なくとも1つのターゲットハッシュについて、該ターゲットハッシュに従ってホワイトリスト化済みオブジェクトのセットから選択される参照オブジェクトの複数の参照ハッシュを取出し、前記複数のターゲットハッシュが前記複数の参照ハッシュと同一でないとき、前記複数のターゲットハッシュと前記複数の参照ハッシュの両方に共通するハッシュの計数に従って類似性スコアを求めること、および、
    前記類似性スコアが所定の閾値を超えるとき、前記ターゲットオブジェクトを悪意がないとして指定すること
    による、生成するステップと、
    前記ターゲットオブジェクトは悪意があるかどうかについての前記サーバサイド指示子を前記クライアントコンピュータシステムに送信するステップと
    を含み、前記サーバコンピュータシステムによる前記サーバサイド指示子の生成は、
    前記類似性スコアが前記所定の閾値を超えないときに、前記ターゲットオブジェクトの前記複数のターゲットハッシュからのクリーンハッシュのデータベースに現れる全てのターゲットハッシュをフィルタリングすることによって前記ターゲットオブジェクトのターゲットハッシュのフィルタリング済みセットを生成するステップと、
    前記サーバコンピュータシステムに接続される複数の別個のクライアントコンピュータシステムによって、ターゲットハッシュの前記フィルタリング済みセットを、所定の最近の期間内にレポートされる未知オブジェクトに固有のアウトブレーク検出ハッシュのデータベースと比較するステップと
    を含む、方法。
  5. サーバコンピュータシステムにおいて、ターゲットオブジェクトの複数のターゲットハッシュを受信するステップであって、それぞれのターゲットハッシュは前記ターゲットオブジェクトに含まれる別個のコードブロックから計算され、それぞれの別個のコードブロックは前記ターゲットオブジェクトのプロセッサ命令のシーケンスを含む、受信するステップと、
    前記複数のターゲットハッシュの少なくとも1つのターゲットハッシュについて、前記サーバコンピュータシステムを用いて、
    前記ターゲットハッシュに従って、ホワイトリスト化済みオブジェクトのセットから選択される参照オブジェクトの複数の参照ハッシュを取出し、
    前記複数のターゲットハッシュが前記複数の参照ハッシュと同一でないとき、前記複数のターゲットハッシュのフィルタリング済みセットにおけるハッシュと前記複数の参照ハッシュの両方に共通するハッシュの計数に従って類似性スコアを求め
    ステップであって、前記フィルタリング済みセットは、前記ターゲットオブジェクトに固有でないターゲットハッシュを廃棄することにより得られた、ステップと、
    前記類似性スコアが所定の閾値を超えるとき、前記サーバコンピュータシステムを用いて前記ターゲットオブジェクトを悪意がないとしてラベル付けするステップと
    を含む方法。
  6. 請求項に記載の方法であって、前記ターゲットハッシュは、オペコードパターンのハッシュを含み、前記オペコードパターンは、命令指示子のシーケンスを含み、それぞれの命令指示子は、前記別個のコードブロックのプロセッサ命令を示す、方法。
  7. 請求項に記載の方法であって、前記プロセッサ命令のシーケンスは、5と50との間の連続的なプロセッサ命令を含む、方法。
  8. 請求項に記載の方法であって、前記プロセッサ命令のシーケンスは、5と15との間の連続的なプロセッサ命令を含む、方法。
  9. 請求項に記載の方法であって、前記プロセッサ命令のシーケンスは、CALL命令で開始する、方法。
  10. 請求項に記載の方法であって、
    正規化されたターゲットオブジェクトを生成するために、前記ターゲットオブジェクトに関してコード正規化プロシージャを実施するステップであって、それぞれの別個のコードブロックは、前記正規化されたターゲットオブジェクトのコンピュータ命令のシーケンスを含む、実施するステップと、
    前記ターゲットハッシュを生成するために、前記別個のコードブロックにハッシュ関数を適用するステップと
    をさらに含む方法。
  11. 請求項に記載の方法であって、前記類似性スコアは、
    C/max(N,N
    の関数として求められ、
    Cは、前記複数のターゲットハッシュと前記複数の参照ハッシュの両方に共通するハッシュの計数を示し、NおよびNは、前記複数のターゲットハッシュの前記フィルタリング済みセットにおけるハッシュの計数および前記複数の参照ハッシュの計数をそれぞれ示す、方法。
  12. 請求項に記載の方法であって、前記類似性スコアは、
    C/(N+N
    の関数として求められ、
    Cは、前記複数のターゲットハッシュと前記複数の参照ハッシュの両方に共通するハッシュの計数を示し、NおよびNは、前記複数のターゲットハッシュの前記フィルタリング済みセットにおけるハッシュの計数および前記複数の参照ハッシュの計数をそれぞれ示す、方法。
  13. 請求項に記載の方法であって、前記類似性スコアは、
    C/N+C/N
    の関数として求められ、
    Cは、前記複数のターゲットハッシュと前記複数の参照ハッシュの両方に共通するハッシュの計数を示し、NおよびNは、前記複数のターゲットハッシュの前記フィルタリング済みセットにおけるハッシュの計数および前記複数の参照ハッシュの計数をそれぞれ示す、方法。
  14. 請求項に記載の方法であって、前記ターゲットオブジェクトはコンピュータファイルを含む、方法。
  15. 請求項に記載の方法であって、前記ターゲットオブジェクトはコンピュータプロセスを含む、方法。
  16. 少なくとも1つのプロセッサを備えるコンピュータシステムであって、前記少なくとも1つのプロセッサは、
    複数のターゲットハッシュであって、それぞれのターゲットハッシュはターゲットオブジェクトに含まれる別個のコードブロックから計算され、それぞれの別個のコードブロックは前記ターゲットオブジェクトのプロセッサ命令のシーケンスを含む、複数のターゲットハッシュを受信するステップと、
    前記複数のターゲットハッシュの少なくとも1つのターゲットハッシュについて、
    該ターゲットハッシュに従って、ホワイトリスト化済みオブジェクトのセットから選択される参照オブジェクトの複数の参照ハッシュを取出し、
    前記複数のターゲットハッシュが前記複数の参照ハッシュと同一でないとき、前記複数のターゲットハッシュのフィルタリング済みセットにおけるハッシュと前記複数の参照ハッシュの両方に共通するハッシュの計数に従って類似性スコアを求め
    ステップであって、前記フィルタリング済みセットは、前記ターゲットオブジェクトに固有でないターゲットハッシュを廃棄することにより得られた、ステップと、
    前記類似性スコアが所定の閾値を超えるとき、前記ターゲットオブジェクトを悪意がないとしてラベル付けするステップと
    を実施するようにプログラムされる、システム。
  17. 請求項16に記載のシステムであって、前記ターゲットハッシュは、オペコードパターンのハッシュを含み、前記オペコードパターンは、命令指示子のシーケンスを含み、それぞれの命令指示子は、前記別個のコードブロックのプロセッサ命令を示す、システム。
  18. 請求項16に記載のシステムであって、前記プロセッサ命令のシーケンスは、5と50との間の連続的なプロセッサ命令を含む、システム。
  19. 請求項18に記載のシステムであって、前記プロセッサ命令のシーケンスは、5と15との間の連続的なプロセッサ命令を含む、システム。
  20. 請求項16に記載のシステムであって、前記プロセッサ命令のシーケンスは、CALL命令で開始する、システム。
  21. 請求項16に記載のシステムであって、前記プロセッサは、
    正規化されたターゲットオブジェクトを生成するために、前記ターゲットオブジェクトに関してコード正規化プロシージャを実施し、それぞれの別個のコードブロックは、前記正規化されたターゲットオブジェクトのコンピュータ命令のシーケンスを含み、
    ターゲットハッシュを生成するために、前記別個のコードブロックにハッシュ関数を適用する
    ようにさらにプログラムされる、システム。
  22. 請求項16に記載のシステムであって、前記類似性スコアは、
    C/max(N,N
    の関数として求められ、
    Cは、前記複数のターゲットハッシュと前記複数の参照ハッシュの両方に共通するハッシュの計数を示し、NおよびNは、前記複数のターゲットハッシュの前記フィルタリング済みセットにおけるハッシュの計数および前記複数の参照ハッシュの計数をそれぞれ示す、システム。
  23. 請求項16に記載のシステムであって、前記類似性スコアは、
    C/(N+N
    の関数として求められ、
    Cは、前記複数のターゲットハッシュと前記複数の参照ハッシュの両方に共通するハッシュの計数を示し、一方、NおよびNは、前記複数のターゲットハッシュの前記フィルタリング済みセットにおけるハッシュの計数および前記複数の参照ハッシュの計数をそれぞれ示す、システム。
  24. 請求項16に記載のシステムであって、前記類似性スコアは、
    C/N+C/N
    の関数として求められ、
    Cは、前記複数のターゲットハッシュと前記複数の参照ハッシュの両方に共通するハッシュの計数を示し、NおよびNは、前記複数のターゲットハッシュの前記フィルタリング済みセットにおけるハッシュの計数および前記複数の参照ハッシュの計数をそれぞれ示す、システム。
  25. 請求項16に記載のシステムであって、前記ターゲットオブジェクトはコンピュータファイルを含む、システム。
  26. 請求項16に記載のシステムであって、前記ターゲットオブジェクトはコンピュータプロセスを含む、システム。
  27. 複数のターゲットハッシュであって、それぞれのターゲットハッシュはターゲットオブジェクトに含まれる別個のコードブロックから計算され、それぞれの別個のコードブロックは前記ターゲットオブジェクトのプロセッサ命令のシーケンスを含む、複数のターゲットハッシュを受信する手段と、
    前記複数のターゲットハッシュの選択されたターゲットハッシュに従って、ホワイトリスト化済みオブジェクトのセットから選択され参照オブジェクトの複数の参照ハッシュを取出す手段と、
    前記複数のターゲットハッシュのフィルタリング済みセットにおけるハッシュと前記複数の参照ハッシュの両方に共通するハッシュの計数に従って類似性スコアを求める手段であって、前記フィルタリング済みセットは、前記ターゲットオブジェクトに固有でないターゲットハッシュを廃棄することにより得られた、手段と、
    前記類似性スコアに従って、前記ターゲットオブジェクトを悪意がないとしてラベル付けする手段と
    を備えるコンピュータシステム。
  28. 命令を含むコンピュータ可読記憶媒体であって、前記命令は、プロセッサ上で実行されると、前記プロセッサに、
    複数のターゲットハッシュであって、それぞれのターゲットハッシュはターゲットオブジェクトに含まれる別個のコードブロックから計算され、それぞれの別個のコードブロックは前記ターゲットオブジェクトのプロセッサ命令のシーケンスを含む、複数のターゲットハッシュを受信するステップと、
    前記複数のターゲットハッシュの少なくとも1つのターゲットハッシュについて、
    該ターゲットハッシュに従って、ホワイトリスト化済みオブジェクトのセットから選択され参照オブジェクトの複数の参照ハッシュを取出し、
    前記複数のターゲットハッシュが前記複数の参照ハッシュと同一でないとき、前記複数のターゲットハッシュのフィルタリング済みセットにおけるハッシュと前記複数の参照ハッシュの両方に共通するハッシュの計数に従って類似性スコアを求める
    ステップであって、前記フィルタリング済みセットは、前記ターゲットオブジェクトに固有でないターゲットハッシュを廃棄することにより得られた、ステップと、
    前記類似性スコアが所定の閾値を超えるとき、前記ターゲットオブジェクトを悪意がないとしてラベル付けするステップと
    を実施させる、記憶媒体。
  29. サーバコンピュータシステムにおいて、複数のターゲットハッシュを受信するステップであって、それぞれのターゲットハッシュは、前記サーバコンピュータシステムに接続されるクライアントコンピュータシステムのターゲットオブジェクトに含まれる別個のコードブロックから計算され、それぞれの別個のコードブロックは前記ターゲットオブジェクトのプロセッサ命令のシーケンスを含む、受信するステップと、
    前記複数のターゲットハッシュを受信することに応答して、前記サーバコンピュータシステムを用いてホワイトリスト化済みデータオブジェクトの複数の参照ハッシュを取出すステップと、
    前記複数のターゲットハッシュが前記複数の参照ハッシュと同一でないと判定すること、および、前記複数のターゲットハッシュのフィルタリング済みセットにおけるハッシュのうちの所定の割合より多くのハッシュを、前記複数の参照ハッシュが含むと判定することに応答して、前記ターゲットオブジェクトを悪意がないとしてラベル付けするステップであって、前記フィルタリング済みセットは、前記ターゲットオブジェクトに固有でないターゲットハッシュを廃棄することにより得られた、ステップ
    を含む方法。
JP2014539903A 2011-11-02 2012-09-05 ファジーホワイトリスト化アンチマルウェアシステムおよび方法 Active JP6188704B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161554859P 2011-11-02 2011-11-02
US61/554,859 2011-11-02
US13/312,686 US8584235B2 (en) 2011-11-02 2011-12-06 Fuzzy whitelisting anti-malware systems and methods
US13/312,686 2011-12-06
PCT/RO2012/000020 WO2013089576A1 (en) 2011-11-02 2012-09-05 Fuzzy whitelisting anti-malware systems and methods

Publications (2)

Publication Number Publication Date
JP2014534531A JP2014534531A (ja) 2014-12-18
JP6188704B2 true JP6188704B2 (ja) 2017-08-30

Family

ID=48173895

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014539903A Active JP6188704B2 (ja) 2011-11-02 2012-09-05 ファジーホワイトリスト化アンチマルウェアシステムおよび方法

Country Status (12)

Country Link
US (3) US8584235B2 (ja)
EP (1) EP2774076B8 (ja)
JP (1) JP6188704B2 (ja)
KR (1) KR101693370B1 (ja)
CN (1) CN104025107B (ja)
AU (1) AU2012353035B2 (ja)
CA (1) CA2854433C (ja)
ES (1) ES2685662T3 (ja)
IL (1) IL232437A (ja)
RU (1) RU2607231C2 (ja)
SG (1) SG11201401975PA (ja)
WO (1) WO2013089576A1 (ja)

Families Citing this family (97)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8732825B2 (en) * 2008-05-28 2014-05-20 Symantec Corporation Intelligent hashes for centralized malware detection
US9955352B2 (en) 2009-02-17 2018-04-24 Lookout, Inc. Methods and systems for addressing mobile communications devices that are lost or stolen but not yet reported as such
US8640245B2 (en) * 2010-12-24 2014-01-28 Kaspersky Lab, Zao Optimization of anti-malware processing by automated correction of detection rules
CA2840992C (en) * 2011-07-08 2017-03-14 Brad WARDMAN Syntactical fingerprinting
US20150020203A1 (en) * 2011-09-19 2015-01-15 Beijing Qihoo Technology Company Limited Method and device for processing computer viruses
WO2013063474A1 (en) 2011-10-28 2013-05-02 Scargo, Inc. Security policy deployment and enforcement system for the detection and control of polymorphic and targeted malware
US8584235B2 (en) * 2011-11-02 2013-11-12 Bitdefender IPR Management Ltd. Fuzzy whitelisting anti-malware systems and methods
KR101908944B1 (ko) * 2011-12-13 2018-10-18 삼성전자주식회사 데이터 분석 시스템에서 맬웨어를 분석하기 위한 장치 및 방법
US8997230B1 (en) * 2012-06-15 2015-03-31 Square, Inc. Hierarchical data security measures for a mobile device
US9146767B2 (en) * 2012-06-19 2015-09-29 Raytheon Company Secure cloud hypervisor monitor
US9792436B1 (en) * 2013-04-29 2017-10-17 Symantec Corporation Techniques for remediating an infected file
US9270467B1 (en) * 2013-05-16 2016-02-23 Symantec Corporation Systems and methods for trust propagation of signed files across devices
US9075989B2 (en) 2013-07-11 2015-07-07 Symantec Corporation Identifying misuse of legitimate objects
EP3049983B1 (en) * 2013-09-24 2018-07-25 McAfee, LLC Adaptive and recursive filtering for sample submission
WO2015045043A1 (ja) * 2013-09-25 2015-04-02 三菱電機株式会社 プロセス検査装置、プロセス検査プログラムおよびプロセス検査方法
WO2015047432A1 (en) * 2013-09-27 2015-04-02 Mcafee, Inc. Digital protection that travels with data
US9294501B2 (en) * 2013-09-30 2016-03-22 Fireeye, Inc. Fuzzy hash of behavioral results
US10122747B2 (en) 2013-12-06 2018-11-06 Lookout, Inc. Response generation after distributed monitoring and evaluation of multiple devices
US9753796B2 (en) * 2013-12-06 2017-09-05 Lookout, Inc. Distributed monitoring, evaluation, and response for multiple devices
US9756074B2 (en) 2013-12-26 2017-09-05 Fireeye, Inc. System and method for IPS and VM-based detection of suspicious objects
US20150186649A1 (en) * 2013-12-31 2015-07-02 Cincinnati Bell, Inc. Function Fingerprinting
US20150220850A1 (en) * 2014-02-06 2015-08-06 SparkCognition, Inc. System and Method for Generation of a Heuristic
US10242185B1 (en) 2014-03-21 2019-03-26 Fireeye, Inc. Dynamic guest image creation and rollback
US9578053B2 (en) 2014-04-10 2017-02-21 SparkCognition, Inc. Systems and methods for using cognitive fingerprints
US10084813B2 (en) 2014-06-24 2018-09-25 Fireeye, Inc. Intrusion prevention and remedy system
KR101649909B1 (ko) * 2014-09-25 2016-08-22 한국전자통신연구원 가상 머신 취약점 점검과 복구 방법 및 장치
US9361458B1 (en) * 2014-10-08 2016-06-07 Trend Micro Incorporated Locality-sensitive hash-based detection of malicious codes
US9805099B2 (en) * 2014-10-30 2017-10-31 The Johns Hopkins University Apparatus and method for efficient identification of code similarity
US9519780B1 (en) * 2014-12-15 2016-12-13 Symantec Corporation Systems and methods for identifying malware
US9838418B1 (en) * 2015-03-16 2017-12-05 Synack, Inc. Detecting malware in mixed content files
US10387652B2 (en) 2015-04-17 2019-08-20 Hewlett Packard Enterprise Development Lp Firmware map data
US9639715B2 (en) 2015-04-27 2017-05-02 Microsoft Technology Licensing, Llc Protecting user identifiable information in the transfer of telemetry data
US10733594B1 (en) 2015-05-11 2020-08-04 Square, Inc. Data security measures for mobile devices
US20160335432A1 (en) * 2015-05-17 2016-11-17 Bitdefender IPR Management Ltd. Cascading Classifiers For Computer Security Applications
RU2622626C2 (ru) * 2015-09-30 2017-06-16 Акционерное общество "Лаборатория Касперского" Система и способ обнаружения фишинговых сценариев
RU2606564C1 (ru) * 2015-09-30 2017-01-10 Акционерное общество "Лаборатория Касперского" Система и способ блокировки выполнения сценариев
US9858410B2 (en) * 2015-10-26 2018-01-02 Symantec Corporation Techniques for automated application analysis
US10680893B2 (en) * 2015-10-27 2020-06-09 Alaxala Networks Corporation Communication device, system, and method
US10963565B1 (en) 2015-10-29 2021-03-30 Palo Alto Networks, Inc. Integrated application analysis and endpoint protection
JP6772270B2 (ja) * 2015-12-19 2020-10-21 ビットディフェンダー アイピーアール マネジメント リミテッド 複数のネットワークエンドポイントをセキュアにするためのデュアルメモリイントロスペクション
WO2017147236A1 (en) 2016-02-23 2017-08-31 Carbon Black, Inc. Cybersecurity systems and techniques
US10289843B2 (en) * 2016-04-06 2019-05-14 Nec Corporation Extraction and comparison of hybrid program binary features
EP3432184B1 (en) * 2016-04-26 2020-04-15 Mitsubishi Electric Corporation Intrusion detection device, intrusion detection method, and intrusion detection program
US10373167B2 (en) 2016-06-30 2019-08-06 Square, Inc. Logical validation of devices against fraud
US10546302B2 (en) * 2016-06-30 2020-01-28 Square, Inc. Logical validation of devices against fraud and tampering
RU2634211C1 (ru) 2016-07-06 2017-10-24 Общество с ограниченной ответственностью "Траст" Способ и система анализа протоколов взаимодействия вредоносных программ с центрами управления и выявления компьютерных атак
US10356113B2 (en) * 2016-07-11 2019-07-16 Korea Electric Power Corporation Apparatus and method for detecting abnormal behavior
RU2649793C2 (ru) 2016-08-03 2018-04-04 ООО "Группа АйБи" Способ и система выявления удаленного подключения при работе на страницах веб-ресурса
US10162967B1 (en) * 2016-08-17 2018-12-25 Trend Micro Incorporated Methods and systems for identifying legitimate computer files
US10372909B2 (en) * 2016-08-19 2019-08-06 Hewlett Packard Enterprise Development Lp Determining whether process is infected with malware
RU2634209C1 (ru) 2016-09-19 2017-10-24 Общество с ограниченной ответственностью "Группа АйБи ТДС" Система и способ автогенерации решающих правил для систем обнаружения вторжений с обратной связью
US10491627B1 (en) * 2016-09-29 2019-11-26 Fireeye, Inc. Advanced malware detection using similarity analysis
GB2555859B (en) * 2016-11-15 2020-08-05 F Secure Corp Remote malware scanning
US10721212B2 (en) * 2016-12-19 2020-07-21 General Electric Company Network policy update with operational technology
RU2671991C2 (ru) 2016-12-29 2018-11-08 Общество с ограниченной ответственностью "Траст" Система и способ сбора информации для обнаружения фишинга
RU2637477C1 (ru) 2016-12-29 2017-12-04 Общество с ограниченной ответственностью "Траст" Система и способ обнаружения фишинговых веб-страниц
US10783246B2 (en) 2017-01-31 2020-09-22 Hewlett Packard Enterprise Development Lp Comparing structural information of a snapshot of system memory
US10496993B1 (en) 2017-02-15 2019-12-03 Square, Inc. DNS-based device geolocation
CN107341169B (zh) * 2017-02-17 2020-02-11 武汉大学 一种基于信息检索的大规模软件信息站标签推荐方法
RU2662391C1 (ru) * 2017-05-05 2018-07-25 Илья Самуилович Рабинович Система и способ проверки веб-ресурсов на наличие вредоносных вставок
RU2651196C1 (ru) * 2017-06-16 2018-04-18 Акционерное общество "Лаборатория Касперского" Способ обнаружения аномальных событий по популярности свертки события
US10552308B1 (en) 2017-06-23 2020-02-04 Square, Inc. Analyzing attributes of memory mappings to identify processes running on a device
US10902124B2 (en) * 2017-09-15 2021-01-26 Webroot Inc. Real-time JavaScript classifier
RU2689816C2 (ru) 2017-11-21 2019-05-29 ООО "Группа АйБи" Способ для классифицирования последовательности действий пользователя (варианты)
US20200374112A1 (en) * 2017-12-01 2020-11-26 Huawei Technologies Co., Ltd. Secure Provisioning of Data to Client Device
US10715536B2 (en) 2017-12-29 2020-07-14 Square, Inc. Logical validation of devices against fraud and tampering
RU2677361C1 (ru) 2018-01-17 2019-01-16 Общество с ограниченной ответственностью "Траст" Способ и система децентрализованной идентификации вредоносных программ
RU2680736C1 (ru) 2018-01-17 2019-02-26 Общество с ограниченной ответственностью "Группа АйБи ТДС" Сервер и способ для определения вредоносных файлов в сетевом трафике
RU2676247C1 (ru) 2018-01-17 2018-12-26 Общество С Ограниченной Ответственностью "Группа Айби" Способ и компьютерное устройство для кластеризации веб-ресурсов
RU2668710C1 (ru) 2018-01-17 2018-10-02 Общество с ограниченной ответственностью "Группа АйБи ТДС" Вычислительное устройство и способ для обнаружения вредоносных доменных имен в сетевом трафике
RU2677368C1 (ru) 2018-01-17 2019-01-16 Общество С Ограниченной Ответственностью "Группа Айби" Способ и система для автоматического определения нечетких дубликатов видеоконтента
RU2681699C1 (ru) 2018-02-13 2019-03-12 Общество с ограниченной ответственностью "Траст" Способ и сервер для поиска связанных сетевых ресурсов
RU2708356C1 (ru) * 2018-06-29 2019-12-05 Акционерное общество "Лаборатория Касперского" Система и способ двухэтапной классификации файлов
RU2701842C1 (ru) * 2018-06-29 2019-10-01 Акционерное общество "Лаборатория Касперского" Способ формирования запроса информации о файле для осуществления антивирусной проверки и система для реализации способа (варианты)
CN112868042B (zh) * 2018-09-11 2024-01-23 维萨国际服务协会 使用共享散列图进行欺诈管理的系统、方法和计算机程序产品
US11494762B1 (en) 2018-09-26 2022-11-08 Block, Inc. Device driver for contactless payments
US11507958B1 (en) 2018-09-26 2022-11-22 Block, Inc. Trust-based security for transaction payments
RU2708508C1 (ru) 2018-12-17 2019-12-09 Общество с ограниченной ответственностью "Траст" Способ и вычислительное устройство для выявления подозрительных пользователей в системах обмена сообщениями
RU2739865C2 (ru) * 2018-12-28 2020-12-29 Акционерное общество "Лаборатория Касперского" Система и способ обнаружения вредоносного файла
RU2701040C1 (ru) 2018-12-28 2019-09-24 Общество с ограниченной ответственностью "Траст" Способ и вычислительное устройство для информирования о вредоносных веб-ресурсах
SG11202101624WA (en) 2019-02-27 2021-03-30 Group Ib Ltd Method and system for user identification by keystroke dynamics
US10992703B2 (en) * 2019-03-04 2021-04-27 Malwarebytes Inc. Facet whitelisting in anomaly detection
CN110311930B (zh) * 2019-08-01 2021-09-28 杭州安恒信息技术股份有限公司 远控回连行为的识别方法、装置及电子设备
WO2021038705A1 (ja) * 2019-08-27 2021-03-04 日本電気株式会社 バックドア検査装置、バックドア検査方法、及び非一時的なコンピュータ可読媒体
US11588646B2 (en) * 2019-09-05 2023-02-21 Cisco Technology, Inc. Identity-based application and file verification
RU2728498C1 (ru) 2019-12-05 2020-07-29 Общество с ограниченной ответственностью "Группа АйБи ТДС" Способ и система определения принадлежности программного обеспечения по его исходному коду
RU2728497C1 (ru) 2019-12-05 2020-07-29 Общество с ограниченной ответственностью "Группа АйБи ТДС" Способ и система определения принадлежности программного обеспечения по его машинному коду
RU2743974C1 (ru) 2019-12-19 2021-03-01 Общество с ограниченной ответственностью "Группа АйБи ТДС" Система и способ сканирования защищенности элементов сетевой архитектуры
SG10202001963TA (en) 2020-03-04 2021-10-28 Group Ib Global Private Ltd System and method for brand protection based on the search results
US11487876B1 (en) * 2020-04-06 2022-11-01 Trend Micro Inc. Robust whitelisting of legitimate files using similarity score and suspiciousness score
US11475090B2 (en) 2020-07-15 2022-10-18 Group-Ib Global Private Limited Method and system for identifying clusters of affiliated web resources
RU2743619C1 (ru) 2020-08-06 2021-02-20 Общество с ограниченной ответственностью "Группа АйБи ТДС" Способ и система генерации списка индикаторов компрометации
US20220129417A1 (en) * 2020-10-22 2022-04-28 Google Llc Code Similarity Search
US11720674B2 (en) * 2021-01-28 2023-08-08 Northrop Grumman Systems Corporation Systems and methods for malware detection
US11947572B2 (en) 2021-03-29 2024-04-02 Group IB TDS, Ltd Method and system for clustering executable files
NL2030861B1 (en) 2021-06-01 2023-03-14 Trust Ltd System and method for external monitoring a cyberattack surface
US11531675B1 (en) * 2021-07-19 2022-12-20 Oracle International Corporation Techniques for linking data to provide improved searching capabilities

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5832208A (en) * 1996-09-05 1998-11-03 Cheyenne Software International Sales Corp. Anti-virus agent for use with databases and mail servers
US7367056B1 (en) 2002-06-04 2008-04-29 Symantec Corporation Countering malicious code infections to computer files that have been infected more than once
US7478431B1 (en) 2002-08-02 2009-01-13 Symantec Corporation Heuristic detection of computer viruses
JP4297345B2 (ja) * 2004-01-14 2009-07-15 Kddi株式会社 マスメイル検出方式およびメイルサーバ
US7478429B2 (en) * 2004-10-01 2009-01-13 Prolexic Technologies, Inc. Network overload detection and mitigation system and method
US10043008B2 (en) * 2004-10-29 2018-08-07 Microsoft Technology Licensing, Llc Efficient white listing of user-modifiable files
WO2006101549A2 (en) * 2004-12-03 2006-09-28 Whitecell Software, Inc. Secure system for allowing the execution of authorized computer program code
US7613701B2 (en) * 2004-12-22 2009-11-03 International Business Machines Corporation Matching of complex nested objects by multilevel hashing
US7577848B2 (en) 2005-01-18 2009-08-18 Microsoft Corporation Systems and methods for validating executable file integrity using partial image hashes
US7873947B1 (en) 2005-03-17 2011-01-18 Arun Lakhotia Phylogeny generation
US8392996B2 (en) 2006-08-08 2013-03-05 Symantec Corporation Malicious software detection
CN101641675B (zh) * 2006-10-31 2014-06-25 Tti发明有限责任公司 使用密码散列法的病毒定位
US9021590B2 (en) 2007-02-28 2015-04-28 Microsoft Technology Licensing, Llc Spyware detection mechanism
US8312546B2 (en) 2007-04-23 2012-11-13 Mcafee, Inc. Systems, apparatus, and methods for detecting malware
US7854002B2 (en) 2007-04-30 2010-12-14 Microsoft Corporation Pattern matching for spyware detection
US8214895B2 (en) * 2007-09-26 2012-07-03 Microsoft Corporation Whitelist and blacklist identification data
US8353041B2 (en) * 2008-05-16 2013-01-08 Symantec Corporation Secure application streaming
US8732825B2 (en) * 2008-05-28 2014-05-20 Symantec Corporation Intelligent hashes for centralized malware detection
US8364123B2 (en) * 2009-02-25 2013-01-29 Apple Inc. Managing notification messages
CN101350822B (zh) * 2008-09-08 2011-06-15 南开大学 一种Internet恶意代码的发现和追踪方法
US20100088745A1 (en) 2008-10-06 2010-04-08 Fujitsu Limited Method for checking the integrity of large data items rapidly
US8401309B2 (en) * 2008-12-30 2013-03-19 International Business Machines Corporation Security screening image analysis simplification through object pattern identification
JP2010217950A (ja) * 2009-03-13 2010-09-30 Nec Corp 開発支援システム、開発支援方法及び開発支援プログラム
CN102598007B (zh) * 2009-05-26 2017-03-01 韦伯森斯公司 有效检测采指纹数据和信息的系统和方法
US7640589B1 (en) * 2009-06-19 2009-12-29 Kaspersky Lab, Zao Detection and minimization of false positives in anti-malware processing
US8484152B2 (en) 2009-06-26 2013-07-09 Hbgary, Inc. Fuzzy hash algorithm
GB2471716A (en) * 2009-07-10 2011-01-12 F Secure Oyj Anti-virus scan management using intermediate results
US8566943B2 (en) * 2009-10-01 2013-10-22 Kaspersky Lab, Zao Asynchronous processing of events for malware detection
US8751808B2 (en) * 2009-11-12 2014-06-10 Roy Gelbard Method and system for sharing trusted contact information
US9104872B2 (en) * 2010-01-28 2015-08-11 Bank Of America Corporation Memory whitelisting
CN103078864B (zh) * 2010-08-18 2015-11-25 北京奇虎科技有限公司 一种基于云安全的主动防御文件修复方法
US8584235B2 (en) * 2011-11-02 2013-11-12 Bitdefender IPR Management Ltd. Fuzzy whitelisting anti-malware systems and methods

Also Published As

Publication number Publication date
SG11201401975PA (en) 2014-09-26
US9118703B2 (en) 2015-08-25
IL232437A0 (en) 2014-06-30
CN104025107A (zh) 2014-09-03
EP2774076A1 (en) 2014-09-10
EP2774076B1 (en) 2018-06-20
CA2854433C (en) 2018-10-09
CA2854433A1 (en) 2013-06-20
AU2012353035B2 (en) 2017-06-01
US20140068772A1 (en) 2014-03-06
US20150326585A1 (en) 2015-11-12
KR20140089567A (ko) 2014-07-15
JP2014534531A (ja) 2014-12-18
RU2607231C2 (ru) 2017-01-10
WO2013089576A1 (en) 2013-06-20
US20130111591A1 (en) 2013-05-02
EP2774076B8 (en) 2018-08-29
US8584235B2 (en) 2013-11-12
RU2014121249A (ru) 2015-12-10
CN104025107B (zh) 2017-02-22
US9479520B2 (en) 2016-10-25
IL232437A (en) 2016-12-29
ES2685662T3 (es) 2018-10-10
KR101693370B1 (ko) 2017-01-17
AU2012353035A1 (en) 2014-05-29

Similar Documents

Publication Publication Date Title
JP6188704B2 (ja) ファジーホワイトリスト化アンチマルウェアシステムおよび方法
CN109684832B (zh) 检测恶意文件的系统和方法
JP7084778B2 (ja) 標的型攻撃をクラウド型検出、探索および除去するシステムおよび方法
US7640589B1 (en) Detection and minimization of false positives in anti-malware processing
Bayer et al. Scalable, behavior-based malware clustering.
US8819835B2 (en) Silent-mode signature testing in anti-malware processing
US8813222B1 (en) Collaborative malware scanning
JP5511097B2 (ja) 中央集中的にマルウェアを検出するための知的ハッシュ
EP2486507B1 (en) Malware detection by application monitoring
US9135443B2 (en) Identifying malicious threads
US10216934B2 (en) Inferential exploit attempt detection
US8621625B1 (en) Methods and systems for detecting infected files
CN107066883A (zh) 用于阻断脚本执行的系统和方法
WO2015007224A1 (zh) 基于云安全的恶意程序查杀的方法、装置和服务器
WO2014082599A1 (zh) 用于恶意程序查杀的扫描设备、云端管理设备及方法和系统
US20200218809A1 (en) Logical and Physical Security Device
GB2510701A (en) Detecting malware code injection by determining whether return address on stack thread points to suspicious memory area
US20220027471A1 (en) Advanced ransomware detection
Sahoo et al. Signature based malware detection for unstructured data in Hadoop
KR20110087826A (ko) 가상머신을 이용한 악성소프트웨어 탐지 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150311

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160325

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160623

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160729

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20161028

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161215

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170801

R150 Certificate of patent or registration of utility model

Ref document number: 6188704

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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