JP2016536667A - Complex scoring for malware detection - Google Patents
Complex scoring for malware detection Download PDFInfo
- Publication number
- JP2016536667A JP2016536667A JP2016520024A JP2016520024A JP2016536667A JP 2016536667 A JP2016536667 A JP 2016536667A JP 2016520024 A JP2016520024 A JP 2016520024A JP 2016520024 A JP2016520024 A JP 2016520024A JP 2016536667 A JP2016536667 A JP 2016536667A
- Authority
- JP
- Japan
- Prior art keywords
- entity
- score
- software
- host system
- evaluation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000001514 detection method Methods 0.000 title description 13
- 238000011156 evaluation Methods 0.000 claims abstract description 108
- 238000000034 method Methods 0.000 claims abstract description 85
- 230000004044 response Effects 0.000 claims description 23
- 230000008569 process Effects 0.000 abstract description 61
- 230000009471 action Effects 0.000 abstract description 25
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 abstract description 4
- 241000700605 Viruses Species 0.000 abstract description 3
- 238000002347 injection Methods 0.000 description 16
- 239000007924 injection Substances 0.000 description 16
- 230000006870 function Effects 0.000 description 13
- 230000006399 behavior Effects 0.000 description 12
- 239000003795 chemical substances by application Substances 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 239000008186 active pharmaceutical agent Substances 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000003542 behavioural effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 208000035217 Ring chromosome 1 syndrome Diseases 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003014 reinforcing effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2145—Inheriting rights or properties, e.g., propagation of permissions or restrictions within a hierarchy
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
- Debugging And Monitoring (AREA)
Abstract
説明されるシステムおよび方法によって、コンピュータシステムを、ウィルス、トロイの木馬、およびスパイウェアなどのマルウェアから保護することが可能となる。複数の実行可能エンティティ(コンピュータシステム上で実行するプロセスおよびスレッドなど)の各々に対して、スコアリングエンジンは、複数の評価スコアを記録し、各々のスコアは、別個の評価基準によって決定される。エンティティが、評価基準を満たす(例えば、アクションを実施する)たびに、エンティティのそれぞれのスコアが更新される。エンティティのスコアを更新することが、それぞれのエンティティに関係付けられるエンティティのスコア更新をトリガすることを、関係付けられるエンティティが終了したものである、すなわち、もはやアクティブではないときにも行い得る。関係付けられるエンティティは、とりわけ、それぞれのエンティティの親、および/または、コードをそれぞれのエンティティ内に注入するエンティティを含む。スコアリングエンジンは、エンティティが悪意あるものであるかどうかを、それぞれのエンティティの複数の評価スコアによって決定する。The described systems and methods allow computer systems to be protected from malware such as viruses, Trojan horses, and spyware. For each of a plurality of executable entities (such as processes and threads executing on a computer system), the scoring engine records a plurality of evaluation scores, each score being determined by a separate evaluation criterion. Each time an entity meets the evaluation criteria (eg, performs an action), the respective score of the entity is updated. Updating an entity's score may trigger an update of the score of an entity associated with the respective entity even when the associated entity is terminated, ie, no longer active. Related entities include, among other things, the parent of each entity and / or the entity that injects code into each entity. The scoring engine determines whether an entity is malicious or not by a plurality of evaluation scores for each entity.
Description
[0001]本発明は、コンピュータシステムをマルウェアから保護するためのシステムおよび方法に関係する。 [0001] The present invention relates to systems and methods for protecting computer systems from malware.
[0002]マルウェアとしても知られている、悪意あるソフトウェアは、世界中の多数のコンピュータシステムに影響を及ぼす。コンピュータウィルス、ワーム、ルートキット、およびスパイウェアなどのその多くの形態で、マルウェアは、深刻な危険を何百万ものコンピュータユーザにもたらし、ユーザを、とりわけ、データおよび機密情報の損失、個人情報の盗難(identity theft)、ならびに、生産性の損失に対して脆弱にする。 [0002] Malicious software, also known as malware, affects many computer systems around the world. In its many forms, such as computer viruses, worms, rootkits, and spyware, malware poses a serious danger to millions of computer users, especially for the loss of data and sensitive information, theft of personal information (Identity theft), as well as making it vulnerable to loss of productivity.
[0003]セキュリティソフトウェアは、ユーザのコンピュータシステムを汚染するマルウェアを検出するために、および加えて、そのようなマルウェアを除去する、または、そのようなマルウェアの実行を停止するために使用され得る。いくつかのマルウェア検出技法が、当技術分野で知られている。一部のものは、マルウェアエージェントのコードの断片を、マルウェアを示すシグネチャのライブラリとマッチングすることに依拠する。他の従来の方法は、マルウェアエージェントのマルウェアを示す挙動の集合を検出する。 [0003] Security software may be used to detect malware that contaminates a user's computer system and in addition to remove such malware or stop the execution of such malware. Several malware detection techniques are known in the art. Some rely on matching a piece of malware agent code with a library of signatures representing malware. Other conventional methods detect a set of behaviors indicative of malware of the malware agent.
[0004]検出を逃れる、および/または、セキュリティソフトウェアの動作を弱体化させるために、一部のマルウェアエージェントは、それらのコードを暗号化すること、または、わずかに異なるコードバージョンを各々の汚染されたコンピュータシステム上で使用すること(多形性)など、難読化技法を用いる。他の例示的な検出回避方法は、悪意ある活動をいくつかのアクションに分割し、各々のアクションは、別々のエージェントにより、場合によっては時間遅延を伴って実施される。他の例ではマルウェアは、例えば、特権昇格を使用することにより、および/または、セキュリティソフトウェアのコードを上書きすることにより、セキュリティソフトウェアをアクティブに攻撃し、不能にすることを試み得る。 [0004] In order to evade detection and / or weaken the operation of security software, some malware agents either encrypt their code or taint slightly different code versions. Use obfuscation techniques such as use on a computer system (polymorphism). Other exemplary detection avoidance methods divide malicious activity into several actions, each action being performed by a separate agent, possibly with a time delay. In other examples, malware may attempt to actively attack and disable security software, for example, by using privilege escalation and / or by overwriting security software code.
[0005]マルウェア脅威の急速に変化する集合に遅れずについてゆくために、ロバストかつスケーラブルなアンチマルウェア解決策を開発することへの強い関心が存在する。 [0005] There is a strong interest in developing robust and scalable anti-malware solutions to keep up with the rapidly changing set of malware threats.
[0006]1つの態様によれば、ホストシステムは、エンティティ管理モジュールと、エンティティ評価器と、スコアリングエンジンとを実行するように構成された少なくとも1つのプロセッサを備える。エンティティ管理モジュールは、評価されるソフトウェアエンティティのコレクションを管理するように構成され、コレクションを管理することが、コレクションの第1のエンティティの子孫エンティティの集合を識別することと、第1のエンティティが終了したものであるかどうかを決定することと、それに応じて、第1のエンティティが終了したものであるときに、子孫エンティティの集合のすべてのメンバが終了したものであるかどうかを決定することと、それに応じて、子孫エンティティの集合のすべてのメンバが終了したものであるときに、第1のエンティティをコレクションから除去することとを含む。エンティティ評価器は、第1のエンティティを評価基準によって評価することと、それに応じて、第1のエンティティが評価基準を満たすときに、評価インジケータをスコアリングエンジンに送信することとを行うように構成される。スコアリングエンジンは、第1のエンティティに対して決定される第1のスコア、および、コレクションの第2のエンティティに対して決定される第2のスコアを記録することであって、第1および第2のスコアが評価基準によって決定される、記録することと、第1および第2のスコアを記録することに応じて、ならびに、評価インジケータを受信することに応じて、第2のスコアを評価インジケータによって更新することと、それに応じて、第2のエンティティが悪意あるものであるかどうかを、更新された第2のスコアによって決定することとを行うように構成される。 [0006] According to one aspect, a host system comprises at least one processor configured to execute an entity management module, an entity evaluator, and a scoring engine. The entity management module is configured to manage a collection of software entities to be evaluated, wherein managing the collection identifies a set of descendent entities of the first entity of the collection and the first entity is terminated. And, accordingly, determining whether all members of the set of descendent entities are terminated when the first entity is terminated, and And removing the first entity from the collection when all members of the set of descendent entities are terminated. The entity evaluator is configured to evaluate the first entity according to the evaluation criteria and correspondingly send an evaluation indicator to the scoring engine when the first entity meets the evaluation criteria. Is done. The scoring engine is to record a first score determined for the first entity and a second score determined for the second entity of the collection, the first and first A score of 2 is determined by the evaluation criteria, in response to recording and recording the first and second scores, and in response to receiving the evaluation indicator, the second score is an evaluation indicator And, accordingly, determining whether the second entity is malicious is determined by the updated second score.
[0007]別の態様によれば、非一時的コンピュータ可読媒体は、命令を記憶し、それらの命令は、実行されるとき、ホストシステムの少なくとも1つのプロセッサを、評価されるソフトウェアエンティティのコレクションを管理することであって、コレクションの第1のエンティティの子孫エンティティの集合を識別することと、第1のエンティティが終了したものであるかどうかを決定することと、それに応じて、第1のエンティティが終了したものであるときに、子孫エンティティの集合のすべてのメンバが終了したものであるかどうかを決定することと、それに応じて、子孫エンティティの集合のすべてのメンバが終了したものであるときに、選択されるエンティティをコレクションから除去することとを含む、管理することを行うように構成する。命令は、少なくとも1つのプロセッサを、第1のエンティティに対して決定される第1のスコア、および、コレクションの第2のエンティティに対して決定される第2のスコアを記録することであって、第1および第2のスコアが評価基準によって決定される、記録することを行うようにさらに構成する。命令は、少なくとも1つのプロセッサを、第1および第2のスコアを記録することに応じて、第1のエンティティを評価基準によって評価することを行うようにさらに構成する。命令は、少なくとも1つのプロセッサを、第1のエンティティを評価することに応じて、第1のエンティティが評価基準を満たすときに、第2のスコアを更新することと、第2のスコアを更新することに応じて、第2のエンティティが悪意あるものであるかどうかを、更新された第2のスコアによって決定することとを行うようにさらに構成する。 [0007] According to another aspect, a non-transitory computer readable medium stores instructions that, when executed, cause at least one processor of the host system to receive a collection of software entities to be evaluated. Identifying a set of descendant entities of the first entity of the collection, determining whether the first entity is terminated, and accordingly the first entity Determines whether all members of the set of descendent entities are terminated, and, accordingly, all members of the set of descendent entities are terminated To manage, including removing selected entities from the collection It is formed. The instructions are to record at least one processor with a first score determined for the first entity and a second score determined for the second entity of the collection, The first and second scores are further determined to be recorded as determined by the evaluation criteria. The instructions further configure the at least one processor to evaluate the first entity according to the evaluation criteria in response to recording the first and second scores. The instructions update the second score and update the second score when the first entity meets the evaluation criteria in response to evaluating the first entity with the at least one processor. In response, the second entity is further configured to determine whether the second entity is malicious by the updated second score.
[0008]別の態様によれば、ホストシステムは、エンティティ評価器と、スコアリングエンジンとを実行するように構成された少なくとも1つのプロセッサを備える。エンティティ評価器は、第1のソフトウェアエンティティを評価基準によって評価することであって、第1のソフトウェアエンティティがクライアントシステム上で実行する、評価することと、それに応じて、第1のソフトウェアエンティティが評価基準を満たすときに、評価インジケータをスコアリングエンジンに送信することとを行うように構成される。スコアリングエンジンは、評価インジケータを受信することに応じて、スコアを評価インジケータによって更新することであって、スコアが、前にホストシステム上で実行する第2のソフトウェアエンティティに対して決定され、第2のソフトウェアエンティティが、スコアを更新するときには、終了したものである、更新することを行うように構成される。スコアリングエンジンは、第2のスコアを更新することに応じて、第2のソフトウェアエンティティが悪意あるものであるかどうかを、更新された第2のスコアによって決定することを行うようにさらに構成される。 [0008] According to another aspect, a host system comprises at least one processor configured to execute an entity evaluator and a scoring engine. An entity evaluator is to evaluate a first software entity according to an evaluation criterion, wherein the first software entity performs on the client system, and accordingly the first software entity evaluates When the criteria are met, an evaluation indicator is configured to be sent to the scoring engine. The scoring engine is to update the score with the evaluation indicator in response to receiving the evaluation indicator, the score being determined for a second software entity previously executing on the host system, When the second software entity updates the score, it is configured to do the updating, which is finished. The scoring engine is further configured to perform, in response to updating the second score, determining by the updated second score whether the second software entity is malicious. The
[0009]別の態様によれば、方法は、ホストシステムの少なくとも1つのプロセッサを用いて、ホストシステム上で実行する第1のソフトウェアエンティティが評価基準を満たすかどうかを決定するステップを含む。方法は、第1のソフトウェアエンティティが評価基準を満たすときに、少なくとも1つのプロセッサを用いて、前にホストシステム上で実行する第2のソフトウェアエンティティに対して決定されるスコアを更新するステップであって、第2のソフトウェアエンティティが、スコアを更新するときには、終了しており、スコアが評価基準によって決定される、更新するステップをさらに含む。方法は、第2のスコアを更新するステップに応じて、少なくとも1つのプロセッサを用いて、第2のソフトウェアエンティティが悪意あるものであるかどうかを、更新された第2のスコアによって決定するステップをさらに含む。 [0009] According to another aspect, a method includes using at least one processor of a host system to determine whether a first software entity executing on the host system meets an evaluation criterion. The method is the step of updating a score previously determined for a second software entity executing on the host system with at least one processor when the first software entity meets the evaluation criteria. Thus, the second software entity is finished when updating the score, and further includes the updating step, wherein the score is determined by the evaluation criteria. The method includes, in response to updating the second score, using at least one processor to determine whether the second software entity is malicious by the updated second score. In addition.
[0010]本発明の前述の態様および利点は、以下の詳述される説明を読むことで、および、図面を参照することで、より良好に理解されることになろう。 [0010] The foregoing aspects and advantages of the present invention will become better understood upon reading the following detailed description and upon reference to the drawings in which:
[0024]以下の説明では、構造間のすべての記載される接続は、直接的な動作可能接続、または、中間構造を介した間接的な動作可能接続であり得ることが理解されたい。要素の集合は、1つまたは複数の要素を含む。要素のいかなる記載も、少なくとも1つの要素を指すと理解されたい。複数の要素は、少なくとも2つの要素を含む。別段必要とされない限り、いかなる説明される方法ステップも、必ずしも特定の例示される順序で実施される必要はない。第2の要素から導出される第1の要素(例えば、データ)は、第2の要素に等しい第1の要素、ならびに、第2の要素、および任意選択で他のデータを処理することにより生成される第1の要素を包含する。決定または判断をパラメータによって行うことは、決定または判断を、パラメータによって、および任意選択で他のデータによって行うことを包含する。別段指定されない限り、何らかの量/データのインジケータは、量/データ自体、または、量/データ自体とは異なるインジケータであり得る。別段指定されない限り、プロセスは、コンピュータプログラムのインスタンスを表し、コンピュータプログラムは、指定されるタスクをコンピュータシステムが実施するように決定する命令のシーケンスである。コンピュータ可読媒体は、磁気、光学、および半導体記憶媒体(例えば、ハードドライブ、光学ディスク、フラッシュメモリ、DRAM)などの非一時的媒体、ならびに、導電性ケーブルおよび光学ファイバリンクなどの通信リンクを包含する。一部の実施形態によれば、本発明は特に、本明細書で説明される方法を実施するようにプログラムされるハードウェア(例えば、1つまたは複数のプロセッサ)を備えるコンピュータシステム、および、本明細書で説明される方法を実施するための命令を符号化するコンピュータ可読媒体を提供する。 [0024] In the following description, it should be understood that all described connections between structures can be direct operable connections or indirectly operable connections through an intermediate structure. A set of elements includes one or more elements. Any description of an element should be understood to refer to at least one element. The plurality of elements includes at least two elements. Unless otherwise required, any described method steps need not necessarily be performed in a particular illustrated order. A first element (eg, data) derived from the second element is generated by processing the first element equal to the second element, and the second element and optionally other data. The first element to be included. Making a determination or judgment by parameter includes making a determination or judgment by parameter and optionally other data. Unless otherwise specified, some amount / data indicator may be the amount / data itself or a different indicator than the amount / data itself. Unless otherwise specified, a process represents an instance of a computer program, which is a sequence of instructions that determines that a computer system performs a specified task. Computer-readable media includes non-transitory media such as magnetic, optical, and semiconductor storage media (eg, hard drives, optical disks, flash memory, DRAM), and communication links such as conductive cables and optical fiber links. . According to some embodiments, the present invention particularly relates to a computer system comprising hardware (eg, one or more processors) programmed to perform the methods described herein, and the book A computer readable medium encoding instructions for performing the methods described herein is provided.
[0025]以下の説明は、本発明の実施形態を、例としてのものであって、必ずしも制限するものとしてではなく例示するものである。
[0026]図1は、本発明の一部の実施形態による、アンチマルウェア動作を実施するホストシステム10の例示的なハードウェア構成を示す。ホストシステム10は、とりわけ、エンタープライズサーバなどの企業コンピューティングデバイス、または、パーソナルコンピュータもしくはスマートフォンなどのエンドユーザデバイスを表し得る。他のホストシステムは、TVおよびゲームコンソールなどの娯楽デバイス、または、仮想化をサポートし、マルウェア保護を要する、メモリおよびプロセッサを有する任意の他のデバイスを含む。図1は、コンピュータシステムを例示の目的で示すが、移動電話またはタブレットなどの他のクライアントデバイスは、異なる構成を有し得る。一部の実施形態ではシステム10は、すべてがバス24の集合により接続される、プロセッサ12、メモリユニット14、入力デバイス16の集合、出力デバイス18の集合、記憶デバイス20の集合、および、ネットワークアダプタ22の集合を含む、物理デバイスの集合を備える。
[0025] The following description illustrates embodiments of the invention by way of example and not necessarily limitation.
[0026] FIG. 1 illustrates an exemplary hardware configuration of a
[0027]一部の実施形態ではプロセッサ12は、計算演算および/または論理演算を、信号および/またはデータの集合によって実行するように構成された物理デバイス(例えば、マルチコア集積回路)を備える。一部の実施形態では、そのような論理演算は、プロセッサ12に、プロセッサ命令のシーケンス(例えば、マシンコード、または、他のタイプのソフトウェア)の形態で給送される。メモリユニット14は、命令を実施する過程でプロセッサ12によりアクセスまたは生成されるデータ/信号を記憶する、揮発性コンピュータ可読媒体(例えば、RAM)を備え得る。入力デバイス16は、ユーザがデータおよび/または命令をシステム10内に導入することを可能とする、それぞれのハードウェアインターフェイスおよび/またはアダプタを含む、とりわけ、コンピュータキーボード、マウス、およびマイクロホンを含み得る。出力デバイス18は、システム10がデータをユーザに伝達することを可能とする、とりわけモニタおよびスピーカなどのディスプレイデバイス、ならびに、グラフィックカードなどのハードウェアインターフェイス/アダプタを含み得る。一部の実施形態では、入力デバイス16および出力デバイス18は、タッチスクリーンデバイスの事例でのように、共通のひとまとまりのハードウェアを共有する場合がある。記憶デバイス20は、ソフトウェア命令および/またはデータの、不揮発性記憶、読み出し、および書き込みを可能にするコンピュータ可読媒体を含む。例示的な記憶デバイス20は、磁気および光学のディスクとフラッシュメモリデバイスとを、ならびに、CDおよび/またはDVDのディスクおよびドライブなどのリムーバブル媒体を含む。ネットワークアダプタ22の集合は、システム10が、コンピュータネットワークに、および/または、他のデバイス/コンピュータシステムに接続することを可能にする。バス24は、ホストシステム10のデバイス12〜22の相互通信を可能にする、複数のシステム、周辺装置、およびチップセットバス、ならびに/または、すべての他の回路網を集団的に表す。例えばバス24は、とりわけ、プロセッサ12をメモリ14に接続するノースブリッジ、および/または、プロセッサ12をデバイス16〜22に接続するサウスブリッジを備え得る。
[0027] In some embodiments, the
[0028]図2−Aは、ハードウェア仮想化を用いない構成での、ホストシステム10上で実行するソフトウェアオブジェクトの例示的な集合を示す。一部の実施形態ではゲストオペレーティングシステム(OS)34は、ホストシステム10のハードウェアに対するインターフェイスを提供するソフトウェアを含み、ソフトウェアアプリケーション42a〜cおよび44の集合に対するホストとして働く。OS34は、とりわけ、Windows(登録商標)、MacOS(登録商標)、Linux(登録商標)、iOS(登録商標)、またはAndroid(商標)などの任意の広く利用可能なオペレーティングシステムを含み得る。アプリケーション42a〜cは、とりわけ、ワード処理、画像処理、データベース、ブラウザ、および電子通信アプリケーションを含み得る。
[0028] FIG. 2-A illustrates an exemplary set of software objects executing on the
[0029]図2−Bは、ハードウェア仮想化を使用する実施形態での、ホストシステム10上で実行するソフトウェアオブジェクトの例示的な集合を示す。ゲスト仮想マシン32a〜bの集合が、ハイパーバイザ30によりエクスポーズされる。仮想マシン(VM)は、各々がそれ自体のオペレーティングシステムおよびソフトウェアを他のVMから独立して走らせる能力がある、実際の物理マシン/コンピュータシステムのソフトウェアエミュレーションとして、当技術分野で普通に知られている。ハイパーバイザ30は、多重の仮想マシンによる、プロセッサ動作、メモリ、記憶装置、入出力、およびネットワーキングデバイスなどの、ホストシステム10のハードウェアリソースの多重化(共有)を可能とするソフトウェアを含む。一部の実施形態ではハイパーバイザ30によって、多重の仮想マシンおよび/またはオペレーティングシステム(OS)が、同時にホストシステム10上で、様々な程度の隔離によって走ることが可能になる。そのような構成を可能にするために、ハイパーバイザ30の部分を形成するソフトウェアは、複数の仮想化される、すなわち、ソフトウェアエミュレーションされるデバイスを創出し得るものであり、各々の仮想化されるデバイスは、とりわけプロセッサ12およびメモリ14などの、システム10の物理ハードウェアデバイスをエミュレーションする。ハイパーバイザ30は、仮想デバイスの集合を、ホストシステム10上で動作する各々のVMにさらに割り当て得る。したがって各々のVM32a〜bは、そのVMが物理デバイスのそのVM自体の集合を所有するかのように、すなわち、程度の差はあれ完全形のコンピュータシステムとして動作する。仮想デバイスの、仮想マシンに対しての創出および割り当ては、それぞれのVMをエクスポーズすることとして、当技術分野で普通に知られている。普及しているハイパーバイザの例は、とりわけ、VMware Inc.製のVMware vSphere(商標)、および、オープンソースのXenハイパーバイザを含む。
[0029] FIG. 2-B illustrates an exemplary set of software objects executing on the
[0030]一部の実施形態ではハイパーバイザ30は、下記でさらに説明されるようなアンチマルウェア動作を実施するように構成されたメモリイントロスペクション(introspection)エンジン40を含む。エンジン40は、ハイパーバイザ30内に組み込まれ得るものであり、または、ハイパーバイザ30とは別個で独立した、ただし、ハイパーバイザ30と実質的に同様のプロセッサ特権レベルで実行する、ソフトウェアコンポーネントとして給送され得る。単一のエンジン40が、ホストシステム10上で実行する多重のVMをマルウェア保護するように構成され得る。
[0030] In some embodiments, the
[0031]図2−Bは、2つだけのVM32a〜bを簡単のために示すが、ホストシステム10は、多数の、例えば何百ものVMを同時に動作させ得るものであり、そのようなVMの数は、ホストシステム10の動作の間に変化し得る。一部の実施形態では各々のVM32a〜bは、ゲストオペレーティングシステム34a〜b、ならびに/または、ソフトウェアアプリケーション42d〜eおよび42fの集合を、それぞれ、同時に、および、ホストシステム10上で走る他のVMから独立して実行する。各々のOS34a〜bは、それぞれのVM32a〜bの(仮想化される)ハードウェアに対するインターフェイスを提供するソフトウェアを含み、それぞれのOS上で実行するコンピューティングアプリケーションに対するホストとして働く。
[0031] Although FIG. 2-B shows only two
[0032]一部の実施形態ではセキュリティアプリケーション44は、下記で詳述されるようなアンチマルウェア動作を実施して、ホストシステム10をマルウェアから保護するように構成される。図2−Bの例では、アプリケーション44のインスタンスが、各々のVM32a〜b上で実行し得るものであり、各々のそのようなインスタンスは、それぞれの仮想マシンを保護するように構成される。セキュリティアプリケーション44は、スタンドアロンプログラムであり得るものであり、または、とりわけ、アンチマルウェア、アンチスパム、およびアンチスパイウェアのコンポーネントを含む、ソフトウェアスイートの部分を形成し得る。
[0032] In some embodiments, the
[0033]図3は、本発明の一部の実施形態による、ホストシステム10上で実行するソフトウェアオブジェクトの階層を例示する。図3は、仮想化環境で実行するように構成された例示的な実施形態を示すが、例示される実施形態が、VM32の内部の代わりにホストシステム10上で直接実行するように修正され得ることは、当業者には明らかであり得る。図3は、当技術分野ではレイヤまたは保護リングとしても知られている、プロセッサ特権レベルの観点から表される。一部の実施形態では、各々のそのようなレイヤまたは保護リングは、それぞれのプロセッサ特権レベルで実行するソフトウェアオブジェクトが実行することを可能とされる、命令の集合により特徴付けられる。ソフトウェアオブジェクトが、それぞれの特権レベルの内部で可能とされない命令を実行しようと試みるとき、その試みは、例外、障害、または仮想マシン終了(exit)イベントなどのプロセッサイベントをトリガし得る。一部の実施形態では、特権レベル間の切り替えが、専用化された命令の集合によって実現され得る。そのような例示的な命令は、ユーザレベルからカーネルレベルに切り替えるSYSCALL/SYSENTER、カーネルレベルからユーザレベルに切り替えるSYSRET/SYSEXIT、ユーザレベルまたはカーネルレベルのいずれかからルートレベルに切り替えるVMCALL、および、ルートレベルからカーネルレベルまたはユーザレベルのいずれかに切り替えるVMRESUMEを含む。
[0033] FIG. 3 illustrates a hierarchy of software objects executing on the
[0034]オペレーティングシステム34の大部分のコンポーネントは、当技術分野ではカーネルレベルまたはカーネルモードとして知られているプロセッサ特権レベル(例えば、Intelプラットフォーム上のリング0)で実行する。アプリケーション42gは、OS34より劣るプロセッサ特権(例えば、リング3またはユーザモード)で実行する。仮想化をサポートする実施形態では、ハイパーバイザ30は、ルートレベルまたはルートモードとも知られている、最も特権を与えられるレベル(例えば、Intel(登録商標)プラットフォーム上のリング−1またはVMXroot)でプロセッサ12の制御を行って、仮想マシン32を、OS34、および、アプリケーション42gなどの他のソフトウェアオブジェクトにエクスポーズする。
[0034] Most components of the
[0035]一部の実施形態では、セキュリティアプリケーション44の部分は、ユーザレベルプロセッサ特権、すなわち、アプリケーション42gと同じレベルで実行し得る。例えばそのような部分は、グラフィカルユーザインターフェイスを含み得るものであり、そのグラフィカルユーザインターフェイスは、ユーザに、それぞれのVM上で検出される何らかのマルウェアまたはセキュリティ脅威を知らせ、例えば、アプリケーション44に対する所望される構成オプションを示す、ユーザからの入力を受信するものである。ユーザレベルで実行するコンポーネントの別の例は、下記で詳述されるように動作するユーザレベルエンティティ評価器50aである。一部の実施形態では、ユーザレベルエンティティ評価器50aの部分は、セキュリティアプリケーション44の内部で動作し得るものであり、一方で別の部分(フッキングモジュールなど)は、アプリケーション42gなどの評価されるアプリケーションの内部で動作し得る。アプリケーション44の他の部分は、カーネル特権レベルで実行し得る。例えばアプリケーション44は、すべてがカーネルモードで動作する、アンチマルウェアドライバ36、エンティティ管理モジュール37、およびスコアリングエンジン38をインストールし得る。ドライバ36は、例えば、メモリをマルウェアシグネチャに対してスキャンするための、ならびに/または、OS34上で実行するプロセスおよび/もしくは他のソフトウェアオブジェクトの、マルウェアを示す挙動を検出するための、アンチマルウェアアプリケーション44に対する機能性を提供する。一部の実施形態ではアンチマルウェアドライバ36は、下記で詳述されるように動作するカーネルレベルエンティティ評価器50bを含む。
[0035] In some embodiments, portions of
[0036]一部の実施形態ではエンティティ管理モジュール37は、ホストシステム10(またはVM32)の内部で実行するソフトウェアエンティティのコレクションを管理する。一部の実施形態ではコレクションは、マルウェアに対して、55a〜bなどのエンティティ評価モジュールにより評価されているすべてのエンティティを含む。コレクションを管理するために、モジュール37は、下記のモード詳細で示されるようなエンティティ起動および/または終了イベントなどのライフサイクルイベントの発生を検出することに応じて、コレクションのエンティティを追加および/または除去し得る。モジュール37は、親エンティティの子エンティティ(例えば、子プロセス)を決定する、および/または、選択されるエンティティが、ライブラリなどのソフトウェアオブジェクトを別のエンティティ内に注入したかどうか、もしくは、選択されるエンティティが、別のソフトウェアエンティティによる注入の対象であるかどうかを決定するなど、エンティティ間の関係性をさらに決定し得る。子エンティティは、親エンティティと呼ばれる別の実行可能エンティティにより創出される実行可能エンティティであり、子エンティティは、親エンティティから独立して実行する。例示的な子エンティティは、例えば、Windows(登録商標)OSのCreateProcess関数によって、または、Linux(登録商標)でのフォーク機構によって創出される、子プロセスである。コード注入は、動的リンクライブラリ(DLL)などのコードのシーケンスを現存するプロセスのメモリ空間内に導入して、それぞれのプロセスの元の機能性を改変する方法の一群を示すために、当技術分野で使用される総称用語である。プロセスの起動を検出すること、および/または、コード注入を検出することなどのタスクを実施するために、モジュール37は、ある決まったOS関数を呼び出すこと、またはフックすることなどの、当技術分野で知られている任意の方法を用い得る。例えば、Windows(登録商標)OSを走らせるシステムでは、モジュール37は、PsSetCreateProcessNotifyRoutineコールバックを登録して、新しいプロセスの起動を検出し、および/または、CreateRemoteThread関数をフックして、注入されるコードの実行を検出し得る。
[0036] In some embodiments, the
[0037]図4は、本発明の一部の実施形態による、エンティティ管理モジュール37により実施されるステップの例示的なシーケンスを示す。ステップ250〜252のシーケンスでモジュール37は、例えば、上記で説明された方法を使用して、エンティティライフサイクルイベントをインターセプトする。そのようなイベントが発生したとき、ステップ254は、それぞれのイベントをトリガするエンティティを識別する。ステップ258は、それぞれのエンティティの一意的なエンティティ識別インジケータ(EID)を決定するステップを含み得るものであり、そのようなインジケータは、下記でさらに示されるように、それぞれのエンティティをスコアリングする際に使用され得る。ステップ256は、イベントが、新しいエンティティ(例えば、新しいプロセス)の起動を含むかどうかを決定し、いいえ(NO)であるとき、モジュール37はステップ260に進む。イベントが起動を含むとき、ステップ258でモジュール37は、トリガするエンティティを、評価されるエンティティのコレクションに追加し得る。ステップ260は、イベントが、子エンティティを生み出す親エンティティを含むかどうかを決定するステップを含み、いいえであるとき、モジュール37はステップ264に進み得る。はい(YES)であるとき、ステップ262でモジュール37は、それぞれの子エンティティを、評価されるエンティティのコレクションに追加し得る。ステップ262は、子エンティティのEIDを決定し、トリガするエンティティと子エンティティとの間の関係を、派生(親−子)関係として登録するステップをさらに含み得る。
[0037] FIG. 4 illustrates an exemplary sequence of steps performed by the
[0038]一部の実施形態ではステップ264は、イベントがコードの注入を含むかどうかを決定し、いいえであるとき、モジュール37はステップ268に進み得る。はいであるとき、モジュール37は、コード注入の発生源エンティティおよび対象エンティティを識別し得るものであり、発生源エンティティは、コードを対象エンティティ内に注入するものである。ステップ266でモジュール37は、発生源エンティティと対象エンティティとの間のコード注入タイプの関係を登録し得る。
[0038] In some embodiments,
[0039]ステップ268でエンティティ管理モジュール37は、イベントが、トリガするエンティティの終了を含むかどうかを決定し、いいえであるとき、モジュール37はステップ250に戻る。一部の実施形態ではエンティティは、それぞれのエンティティのすべてのコンポーネントが実行を終えたときに、終了させられたとみなされる。例えばプロセスは、それぞれのプロセスのすべてのスレッドが実行を終えたときに、終了する。イベントが、トリガするエンティティの終了を含んでいたとき、ステップ270でモジュール37は、トリガするエンティティの子孫エンティティの集合を決定し得る。一部の実施形態では、トリガするエンティティの子孫エンティティは、それぞれのエンティティの子エンティティ、および、それらの子エンティティの子エンティティを、多重の世代にわたって含む。一部の実施形態では子孫エンティティは、トリガするエンティティにより注入されるコードを含む対象エンティティ、および、対象にされるエンティティにより対象にされるエンティティを再帰的に含み得る。ステップ272でモジュール37は、子孫エンティティの集合のすべてのエンティティが終了したものであるかどうかを決定し得るものであり、いいえであるとき、実行はステップ250に戻る。すべての子孫が終了したものであるとき、ステップ274でエンティティ管理モジュール37は、トリガするエンティティを、評価されるエンティティのコレクションから除去し得る。
[0039] At
[0040]一部の実施形態ではスコアリングエンジン38は、データを、評価器50a〜bなどの複数のエンティティ評価器モジュールから受信することであって、データが、評価されるソフトウェアエンティティに対して決定される、受信することと、それぞれのエンティティが悪意あるものであるかどうかを、それぞれのデータによって決定することとを行うように構成される。一部の実施形態では、スコアリングエンジン38により分析されるソフトウェアエンティティは、とりわけ、プロセスおよび実行スレッドなどの実行可能オブジェクトを含む。プロセスは、アプリケーション、または、オペレーティングシステムの部分などの、コンピュータプログラムのインスタンスであり、少なくとも実行スレッド、および、オペレーティングシステムによりそれに割り当てられる仮想メモリのセクションを有することにより特徴付けられ、それぞれのセクションは実行可能コードを含む。一部の実施形態では、評価されるソフトウェアエンティティは、実質的に範囲および複雑度において、例えば、オペレーティングシステムおよび/または仮想マシンの、個々のスレッドから、個々のアプリケーションまで、全体のインスタンスまで変動し得る。
[0040] In some embodiments, scoring
[0041]図5は、複数の評価インジケータ52a〜dを受信する、例示的なスコアリングエンジン38を示すものであり、各々のインジケータ52a〜dはエンティティ評価器により決定される。図5においてそのような評価器は、とりわけ、ユーザレベルエンティティ評価器50a、カーネルレベルエンティティ評価器50b、およびシステムコール評価器50cを含む。各々のそのような評価器モジュールは、他の評価器から独立して実行し得るものであり、各々は、評価されるソフトウェアエンティティの複数の別個のエンティティ評価インジケータを決定し得る。ハードウェア仮想化を実装するシステムでは、図5でのインジケータ52a〜cなどの一部の評価インジケータは、VM32の内部で実行するコンポーネントにより決定され、一方で、52dなどの他の評価インジケータは、(例えば、メモリイントロスペクションエンジン40により)VM32の外側で実行するコンポーネントにより決定される。一部の実施形態では、各々の評価インジケータ52a〜dはエンティティ識別インジケータを含み、そのエンティティ識別インジケータによってエンジン38は、それぞれの評価インジケータを、その評価インジケータが決定された対象であるソフトウェアエンティティに一意的に関連付けることが可能となる。
[0041] FIG. 5 illustrates an
[0042]一部の評価インジケータは、マルウェアを示すものであり得るものであり、すなわち、評価されるエンティティが悪意あるものであることを示し得る。一部の評価インジケータは、それら自体はマルウェアを示すものでない場合があるが、他の評価インジケータと組み合わされるときに、悪意あることを示す場合がある。各々の評価インジケータ52a〜dは、別個の方法および/または基準によって決定され得る。例示的な評価基準は、評価されるエンティティが、ディスクファイルに書き込むこと、VM32のシステム登録キーを編集すること、または、保護されるソフトウェアオブジェクトに属するメモリページに書き込むことなどの、ある決まったアクションを実施するかどうかを決定することなどの挙動基準を含む。別の例示的な基準は、評価されるエンティティに属するメモリのセクションが、マルウェアを示すシグネチャを内包するかどうかを決定することを含み得る。
[0042] Some evaluation indicators may be indicative of malware, that is, may indicate that the entity being evaluated is malicious. Some rating indicators may not themselves indicate malware, but may indicate malicious when combined with other rating indicators. Each
[0043]エンティティ評価器50a〜cの動作を例示するために、図6は、本発明の一部の実施形態による、ソフトウェアエンティティ70a〜bの集合の例示的な実行フローを示す。簡単のために、選定されるエンティティ70a〜bは、Windows(登録商標)OSのインスタンスで実行するプロセスであるが、同様の線図が、例えばLinuxなどの他のオペレーティングシステムに対して描写され得る。実線矢印は、エンティティ評価器が存しないときの(例えば、セキュリティアプリケーション44が存しないときの)実行フローを表す。破線矢印は、本発明の一部の実施形態によって実行する、エンティティ評価器50a〜cが存することに起因する、フローに対する修正を表す。
[0043] To illustrate the operation of
[0044]プロセス70aは、複数の動的リンクされるライブラリ(DLL)72a〜cをロードし、図6の例ではDLL72cは、プロセス70a内に(場合によっては悪意ある)プロセス70bにより注入される。プロセス70a(または、そのロードされるDLLの1つ)が、何らかのシステム機能性を呼び出す命令を実行して、例えば、何かをディスクファイルに書き込む、または、レジストリキーを編集するとき、それぞれの命令は、KERNEL32.DLLまたはNTDLL.DLLなどのユーザモードAPIを呼び出す。図6の例では、それぞれのユーザモードAPIコールは、ユーザレベル挙動フィルタ50aによりインターセプトおよび分析される。そのようなインターセプトは、とりわけ、DLL注入またはフッキングなどの方法により実現され得る。フッキングは、ソフトウェアコンポーネント間で渡される、関数コール、またはメッセージ、またはイベントをインターセプトする方法に対する、当技術分野で使用される総称用語である。1つの例示的なフッキング方法は、対象関数のエントリポイントを、実行を第2の関数にリダイレクトする命令を挿入することにより改変するステップを含む。そのようなフッキングの後に続いて、第2の関数が、対象関数の代わりに、またはその対象関数の前に実行され得る。図6の例ではアンチマルウェアドライバ36は、KERNEL32.DLLまたはNTDLL.DLLのある決まった関数内にフックして、それぞれの関数に、実行をフィルタ50aにリダイレクトするように命令し得る。したがってフィルタ50aは、プロセス70aが、フックされる関数によって識別される、ある決まった挙動を実施しようと試みていることを検出し得る。フィルタ50aがそのような挙動を検出するとき、フィルタ50は、評価インジケータ52aを定型化(formulate)し、インジケータ52aをスコアリングエンジン38に送信し得る(例えば、図5を確認されたい)。
[0044]
[0045]実行の典型的なフローでは、エンティティ70aにより呼び出されるユーザモードAPI関数は、サービスをオペレーティングシステムのカーネルに要求し得る。一部の実施形態ではそのような動作は、x86プラットフォーム上のSYSCALLおよびSYSENTERなどのシステムコールを発行することにより実施される。図6の例ではそのようなシステムコールは、システムコール評価器50cによりインターセプトされる。一部の実施形態ではそのようなインターセプトは、例えば、システムコールハンドラルーチンを、プロセッサ12のモデル固有レジスタ(MSR)に記憶される値を変化させることにより修正することを含み、そのことは、実行をフィルタ50cに効果的にリダイレクトする。そのような技法は、MSRフッキングとして当技術分野で知られており、そのような技法によって、システムコール評価器50cは、評価されるプロセスが、ある決まったシステムコールを実施しようと試みていることを検出することが可能となり得る。そのようなシステムコールがインターセプトされるとき、システムコールフィルタ50cは、エンティティ評価インジケータ52cを定型化し、インジケータ52cをスコアリングエンジン38に送信し得る。
[0045] In a typical flow of execution, a user mode API function called by
[0046]システムコールの後に続いて、プロセッサの制御が、典型的には、OS34のカーネルに引き継がれる。一部の実施形態では、カーネルレベルエンティティ評価器50bは、OSカーネルの、ある決まった動作をインターセプトし、したがって、評価されるプロセスが、悪意あるものであり得る、ある決まった動作を実施しようと試みていることを決定するように構成される。そのような動作をインターセプトするために、一部の実施形態は、OS34内に構築され、OS34によりエクスポーズされる、フィルタリング機構の集合を用い得る。例えばWindows OSでは、FltRegisterFilterが、ファイルを創出すること、ファイルを開くこと、ファイルに書き込むこと、および、ファイルを削除することのような動作をインターセプトするために使用され得る。別の例では評価器50bは、ObRegisterCallbackを使用して、オブジェクトハンドルを創出もしくは複製する動作をインターセプトし、または、PsSetCreateProcessNotifyRoutineを使用して、新しいプロセスの創出をインターセプトし得る。さらに別の例では、レジストリキー/値を創出および設定することなどのWindowsレジストリ動作が、CmRegisterCallbackExを使用してインターセプトされ得る。同様のフィルタリング機構が、当技術分野で、Linux(登録商標)などの他のオペレーティングシステムに対して知られている。カーネルモードエンティティ評価器50bがそのような動作をインターセプトするとき、評価器50bは、エンティティ評価インジケータ52bを定型化し、インジケータ52bをスコアリングエンジン38に送信し得る。
[0046] Following the system call, control of the processor is typically taken over to the
[0047]エンティティ評価インジケータ52a〜cなどのデータを、評価器50a〜cからスコアリングエンジン38に送信するために、当業者であれば、任意のプロセス間通信方法を用い得る。例えば、ユーザモードコンポーネントとカーネルモードコンポーネントとの間で通信するために、評価器50a〜cおよびエンジン38は、メモリの共有されるセクションを使用するように構成され得る。データ交換が、VM32の内部で実行するコンポーネントと、それぞれのVMの外側で実行するコンポーネントとの間で必要とされるとき、そのような通信が、仮想化の当技術分野で知られている任意の方法を使用して実施され得る。例えば、評価インジケータ52dを、メモリイントロスペクションエンジン40からスコアリングエンジン38に送信するために、一部の実施形態は、中断注入機構を使用して、エンジン38に、データがそれぞれのVMの外側から送信されていることをシグナリングする。実際のデータは、例えば、上記で説明された共有されるメモリセクションによって転送され得る。
[0047] Any interprocess communication method may be used by those skilled in the art to transmit data, such as
[0048]図7は、本発明の一部の実施形態による、図4〜5での評価器50a〜cおよび/またはメモリイントロスペクションエンジン40などの、エンティティ評価器により実施されるステップの例示的なシーケンスを示す。ステップ302〜304のシーケンスでエンティティ評価器は、ホストシステム10および/または仮想マシン32の内部でのトリガイベントの発生に対して待機する。例示的なトリガイベントは、とりわけ、特定のプロセッサ命令を発行すること、記憶デバイス20もしくはネットワークアダプタ22などの特定のひとまとまりのハードウェアを使用しようと試みること、または、保護されるメモリページに書き込もうと試みることなど、ある決まった挙動を実施するソフトウェアエンティティを含む。例えば、評価器50cに対するトリガイベントは、システムコール(例えば、SYSENTER)を発行するソフトウェアエンティティを含み得る。評価器50dに対するトリガイベントの別の例は、UrlDownloadToFile APIの関数を呼び出すアプリケーションを含み得る。トリガイベントの発生を検出するために、それぞれのエンティティ評価器は、とりわけ、コード注入およびMSRフッキングなどの、当技術分野で知られている任意の方法を使用し得る。トリガイベントインターセプトの一部の例は、図6に関係して上記で説明されている。
[0048] FIG. 7 is an illustration of steps performed by an entity evaluator, such as
[0049]トリガイベントが検出されるとき、ステップ306でエンティティ評価器は、それぞれのトリガイベントを引き起こすソフトウェアエンティティ(例えば、プロセス)を識別し得る。一部の実施形態ではエンティティ評価器は、ソフトウェアエンティティの識別情報を、OS34により、現在実行中の各々のプロセスおよび/またはスレッドを表すために使用される、データ構造から決定し得る。例えばWindowsでは、各々のプロセスはエグゼクティブプロセスブロック(EPROCESS)として表され、そのブロックは、とりわけ、それぞれのプロセスのスレッドの各々に対するハンドル、および、OS34が、それぞれのプロセスを複数の実行するプロセスから識別することを可能とする、一意的なプロセスIDを含む。同様のプロセス/スレッド表現が、Linuxなどの他のOSに対して利用可能である。
[0049] When trigger events are detected, at
[0050]ステップ308でエンティティ評価器は、評価インジケータを定型化し得るものであり、その評価インジケータは、それぞれのソフトウェアエンティティの識別子(例えば、プロセスID)、および、それぞれのソフトウェアエンティティにより実施され、ステップ302〜304でインターセプトされるアクション/イベントの種類のインジケータを含む。一部の実施形態ではエンティティ評価器は、それぞれのソフトウェアエンティティのアクションおよび/または挙動のタイプを、インターセプトされるトリガイベントのパラメータから決定し得る。動作の例では、プロセスが、ファイルをインターネットからダウンロードしようと試みるとき、ユーザレベルエンティティ評価器50aは、その試みをインターセプトし得る。どのプロセスがアクションを実施しているかを識別することに加えて、評価器50aはさらには、とりわけ、アクション(ファイルをダウンロードすること)のタイプ、ファイルがダウンロードされるIPアドレス、および、ダウンロードされるファイルのディスク位置を決定し得る。そのようなデータが評価インジケータ内に選択的に組み込まれ得るものであり、そのことによって、スコアリングエンジン38は、エンティティXがアクションYをパラメータZによって実施したことを決定することが可能となる。ステップ310でエンティティ評価器は、評価インジケータをスコアリングエンジン38に送信する。
[0050] In
[0051]一部の実施形態では、スコアリングエンジン38および/またはエンティティ管理モジュール37は、ホストシステム10(または、VM32)上で実行するプロセスおよびスレッドなどの、評価されるソフトウェアエンティティの集中型の知識ベースを維持する。図8は、各々がそれぞれ例示的なエンティティ・スコアリング・オブジェクト(ESO)74a〜cとして表される、評価されるエンティティ70c〜eの集合を示す。各々のESOは複数のデータフィールドを含み、それらのデータフィールドの一部が、図8で例示される。そのようなフィールドは、一意的なエンティティ識別子(EID)76a、複数の評価スコア76b、および集計スコア76dを含み得る。一部の実施形態では評価スコア76bは、エンジン38により、個々のエンティティ評価器から受信される評価インジケータ52a〜dによって決定される。各々のそのようなスコアは、インジケータ76cにより識別される評価基準によって決定され得る。一部の実施形態では評価スコア76bは、各々のスコアがそれぞれの基準によるものと考えられるように、評価基準76cとの1対1対応を有する。例えば、特定の基準Ckは、評価されるエンティティが、ファイルをインターネットなどのコンピュータネットワークからダウンロードするかどうかを決定することを含み得る。1つのそのような例では、それぞれのスコアSkが、評価されるエンティティがダウンロードを試みる場合にのみ付与され得る。
[0051] In some embodiments, the
[0052]一部の実施形態ではESO74aは、フラグ76eの集合をさらに含み得る。一部のフラグ76eは、バイナリインジケータ(例えば、0/1、はい/いいえ)であり得る。1つのそのような例ではフラグは、それぞれの評価されるエンティティE1が、特定の評価基準を満たすかどうか(例えば、E1が、インターネットからダウンロードされた実行可能ファイルであるかどうか、E1が、コマンドラインモードで走るかどうか、その他)を示す。別の例示的なフラグは、エンティティE1の分類を示すものであり、例えば、E1が、トロイの木馬マルウェア、ブラウザオブジェクト、PDFリーダアプリケーション、その他などの、オブジェクトの特定のカテゴリに属することのインジケータである。フラグの例示的な使用は、エンティティE1の評価スコアSiの更新が、E1の別の評価スコアSjの更新をトリガする状況を含む(下記で確認されたい)。フラグは、そのような共同更新(co−update)機構をオンおよびオフにするために使用され得る。例えば、E1が評価基準Ciを満たすとき(例えば、エンティティが特定のアクションを実施する場合)、エンティティE1はさらには、基準Cjを満たす公算が大きいことが知られている場合がある。したがって、スコアSiが更新されるときにスコアSjの更新をトリガする、接続<Ci,Cj>を示すフラグF1が、エンティティE1に対して設定され得る。
[0052] In some embodiments, the
[0053]ESO74aは、それぞれのエンティティが、現在アクティブであるか、それとも、終了したものであるかを示す、終了インジケータ76fをさらに含み得る。そのような終了インジケータによって、スコアリングエンジン38は、終了したものであるエンティティの記録を保つこと、および/または、それらのエンティティのスコアを更新することが可能となり得る。ESO74aは、それぞれのエンティティE1に関係付けられるソフトウェアエンティティの識別子の集合をさらに含み得る。そのような関係付けられるソフトウェアエンティティの例は、識別子76gにより表象されるE1の親エンティティ、および、識別子76hにより表象されるE1の子エンティティの集合を含み得る。ESO74aは、内にE1がコードを注入したソフトウェアエンティティを識別する、注入対象エンティティのインジケータの集合(項目76j)をさらに、および、コードをE1内に注入したソフトウェアエンティティを識別する、注入発生源エンティティのインジケータの集合(項目76k)をさらに含み得る。
[0053] The
[0054]一部の実施形態では、評価されるソフトウェアエンティティのスコアリングは、スコア値の集合によって、およびさらには、追加的なパラメータによって進行する。図9は、そのようなデータを例示するものであり、スコア値の集合は、項目80により表象される。スコア値は、それらの対応する評価基準C1、…Cnによりインデックス付けされる。各々のそのような値は、例えば、評価されるエンティティが、そのエンティティがそれぞれの評価基準を満たす場合(例えば、そのエンティティがファイルをインターネットからダウンロードする場合、そのエンティティがMS Word(登録商標)文書に書き込む場合、その他)に受け取る、あらかじめ決定された数のポイントを表し得る。 [0054] In some embodiments, scoring of the evaluated software entity proceeds with a set of score values, and even with additional parameters. FIG. 9 illustrates such data, and a set of score values is represented by item 80. The score values are indexed by their corresponding evaluation criteria C 1 ,... C n . Each such value may be, for example, if the entity being evaluated meets the respective evaluation criteria (for example, if the entity downloads a file from the Internet, the entity will receive the MS Word® document). ) May represent a predetermined number of points received in others).
[0055]スコアリングを制御する例示的なパラメータは、初期化重み82aの集合、伝搬重み82bの集合、新しいインスタンス重み82cの集合、例外重み82dの集合、および、フラグ誘導される(flag−induced)重み82eの集合を含む。重み82a〜eは、評価基準C1、…Cnによりインデックス付けされる。一部のタイプの重みは、1つの重み値wiが各々のCiに対して存在するように、評価基準との1対1対応である。他のタイプの重みは、評価基準との1対多対応である。1つのそのような例は、図9での例外重み82dであり、特定の評価基準Ciに対応する複数の重みwijが存在し得る。重みは、図9の例により例示されるように、エンティティのクラスまたはカテゴリによりグループ化され得るものであり、例えば、ワード処理アプリケーション(例えば、MS Word(登録商標))に適用可能な第1の重み値、ウェブブラウザ(例えば、Firefox(登録商標)およびMS Internet Expolrer(登録商標))に適用可能な(場合によっては、第1のものとは別個の)第2の重み値、および、ファイルマネージャアプリケーション(例えば、Windows Explorer(登録商標))に適用可能な第3の重み値が存在し得る。エンティティの異なるカテゴリの間で区別することは有用であり得るものであり、その理由は、一部の評価基準は、エンティティの1つのカテゴリに対して、他のものに対してよりマルウェアを示し得るからというものである。より一般的には、各々のスコアリング重みは、タプル<Ci,Ek,…>によりインデックス付けされ得るものであり、Ciは、特定の評価基準を表象し、Ekは、特定の評価されるエンティティを表象する。スコアリング重み82a〜eを記憶する、および、それらの重みにアクセスするための実際のデータフォーマットは、実施形態の間で変動し得る。重み82a〜eは、とりわけ、行列、リスト、リレーショナルデータベース(RDB)、または、拡張可能マークアップ言語(XML)構造として記憶され得る。スコアリングに対する重みの例示的な使用が、下記で論考されることになる。
[0055] Exemplary parameters that control scoring include a set of
[0056]スコア値80および/または重み82a〜eは、例えば、人間のオペレータによりあらかじめ決定される。一部の実施形態ではそのような値は、時間的に変化し得るものであり、マルウェア検出を最適化するように調整され得る。更新されるスコア値および/または重み値は、ホストシステム10に、周期的な、および/またはオンデマンドのソフトウェア更新として、セキュリティサーバから給送され得る(図10〜11に関係する下記を確認されたい)。
[0056] The score value 80 and / or
[0057]図10は、本発明の一部の実施形態による、スコアリングエンジン38により実行されるステップの例示的なシーケンスを示す。ステップ302でエンジン38は、エンティティ評価インジケータを、エンティティ評価器、例えば、図5での評価器50a〜cの1つから受信する。ハードウェア仮想化を実装する一部の実施形態では、エンジン38は、それぞれのエンティティ評価インジケータを、それぞれの仮想マシンの外側で実行するコンポーネント(例えば、図5でのメモリイントロスペクションエンジン40)から受信し得る。ステップ304でエンジン38は、それぞれのエンティティ評価インジケータが決定された対象であるソフトウェアエンティティを、例えば、それぞれの評価インジケータに埋め込まれるエンティティIDによって識別し得る(図7に関係する上記を確認されたい)。
[0057] FIG. 10 illustrates an exemplary sequence of steps performed by the
[0058]次にスコアリングエンジン38は、ステップ304で識別されるエンティティEに対して、および、Eに関係付けられる他のエンティティに対して、ステップ318〜332のブロックを実施する。そのような関係付けられるエンティティは、とりわけ、Eの親および子のエンティティ、内にEがコードを注入した注入対象エンティティ、ならびに、コードをE内に注入した注入発生源エンティティを含み得る。この様式では、エンジン38が評価インジケータ(例えば、エンティティEが特定のアクションを実施したことを示す)を受信するごとに、ブロック318〜332は、エンティティEの評価スコアのみでなく、Eに関係付けられるエンティティの評価スコアもまた更新して、いくつかの回数、実行し得る。一部の実施形態ではブロック318〜332は、Eに対して1回、および、Eに関係付けられる各々のエンティティE*に対して1回実行される。代替的実施形態ではブロック318〜332は、何らかの収束基準が満たされるまで再帰的に実行される。例示的な収束基準は、Eおよび/またはE*の評価スコアが、ブロック318〜332の連続する実行間で変化するかどうかを検証し、そのような変化が存在しないときに終了すること(exiting)を含む。図10の例示的なアルゴリズムでは、変数Xが、スコア更新を現在受けるエンティティを示すために使用される。ステップ316でXは、ステップ304で識別されるエンティティEに設定される。
[0058] Next, scoring
[0059]ステップ318でエンジン38は、エンティティXの評価スコア(例えば、図8でのエンティティ76b)を更新する。一部の実施形態では、評価スコアを更新することは、それぞれの評価スコアの記録される値を新しい値で置換することを含む。
[0059] At
Sk (X)→Sk (X)+ΔSk [1]
ただしSk (X)は、エンティティXに対して、評価基準Ckによって決定される評価スコアを表象し、ΔSkは、正または負であり得る増加量を表象する(一部の実施形態では評価スコアは、更新の際に減少し得る)。
S k (X) → S k (X) + ΔS k [1]
Where S k (X) represents, for entity X, an evaluation score determined by the evaluation criterion C k , and ΔS k represents an increase that can be positive or negative (in some embodiments). The rating score can be reduced upon update).
[0060]一部の実施形態ではスコア増加量ΔSkは、スコアリングエンジン38により、ステップ312で受信される評価インジケータによって決定される。それぞれのインジケータは、スコアを含み得るものであり、および/または、それぞれのインジケータを決定する際に使用される評価基準を示し得る。一部の実施形態ではスコアリングエンジン38は、例えば次式のように、スコア増加量ΔSkを、それぞれの評価基準Ckに対応するスコア値80(図9を確認されたい)によって決定する。
[0060] In some embodiments, the score increment ΔS k is determined by the
ΔSk=Vk [2]
ただしVkは、基準Ckに割り当てられるスコア値80を表象する。基準Ckが、エンティティXがオブジェクトをネットワークからダウンロードするかどうかを決定することを含み、Vk=20である、1つのそのような例では、評価スコアSk (X)は、エンティティXがダウンロードを実施するたびに、20ポイントだけ増大されることになる。一部の実施形態では、ΔSk=εVkであり、ただしεは、スコアSkが、評価されるエンティティの部分集合に対してのみ更新されることを強制する、バイナリ例外重み(例えば、図9での項目82dを確認されたい)である。そのような例外重みは、例えば、評価されるエンティティの様々なタイプ間で区別するのに有用である。例えばブラウザは、マルウェアの疑いを高めることなく、制限されない数のIPアドレスにアクセスすることを可能とされるべきであり、インターネットアクセスを検出することを含む評価基準は、ブラウザタイプのエンティティに対して例外重みを0に設定し、一方で、他のタイプのエンティティに対してその例外重みをアクティブに保つ(ε=1)ことにより、ブラウザオブジェクトに対して効果的にオフに切り替えられ得る。
ΔS k = V k [2]
However, V k represents the score value 80 assigned to the reference C k . In one such example where the criterion C k includes determining whether the entity X downloads the object from the network and V k = 20, the evaluation score S k (X) Each download will be increased by 20 points. In some embodiments, ΔS k = εV k , where ε is a binary exception weight that enforces that the score S k is updated only for a subset of the evaluated entities (eg, FIG. 9) (See item 82d in FIG. 9). Such exception weights are useful, for example, to distinguish between various types of entities being evaluated. For example, browsers should be allowed to access an unlimited number of IP addresses without raising the suspicion of malware, and the criteria including detecting Internet access can be used against browser-type entities. By setting the exception weight to 0 while keeping the exception weight active for other types of entities (ε = 1), it can be effectively switched off for the browser object.
[0061]一部の実施形態では、エンティティXの評価スコアを更新する際に使用されるスコア増加量ΔSkは、Xに関係付けられるエンティティX*に対して決定される評価スコアによって決定されるものであり、すなわちスコアは、子から親に、または、注入対象から注入の発生源になど、1つのエンティティから、関係付けられるエンティティに伝搬し得る。1つのそのような例では、子プロセスにより実施されるアクションは、アクションを実施するエンティティ(子プロセス)のスコアの更新のみでなく、それぞれの子プロセスの親プロセスのスコアの更新もまたトリガし得る。そのようなスコア更新は、次式によってスコア増加量を計算することを含み得る。 [0061] In some embodiments, the score increment ΔS k used in updating the evaluation score of entity X is determined by the evaluation score determined for entity X * related to X. That is, the score may propagate from one entity to the related entity, such as from child to parent or from the injection subject to the source of the injection. In one such example, an action performed by a child process may trigger not only an update of the score of the entity (child process) that performs the action, but also an update of the score of the parent process of each child process. . Such a score update may include calculating a score increase according to:
ΔSk=wkSk (X*) [3]
ただしwkは、エンティティX*のスコアがエンティティXのスコアに影響を及ぼすときに伴う強さを示す、数値的な基準固有の重みを表象する。重みwkは、伝搬重み82b(図9)を含み得る。一部の実施形態は、種々のそのような伝搬重みの間で区別するものであり、例えば、スコアを子エンティティから親エンティティに伝搬させるために使用される重みは、スコアを親エンティティから子エンティティに伝搬させるために使用される重みとは、値において異なり得る。同様に、スコアを子エンティティから親エンティティに伝搬させるために使用される重みは、スコアを、コード注入に対して対象とされるエンティティから、コード注入を実施するエンティティに伝搬させるために使用される重みとは、値において異なり得る。一部の実施形態ではスコアは、アクティブなエンティティから、終了したものであるエンティティに伝搬し得る。例えば、子プロセスのアクションは、親プロセスが終了したものであるときでも、親プロセスのスコアを増加させ得る。
ΔS k = w k S k (X *) [3]
Where w k represents a numerical criterion-specific weight that indicates the strength with which the score of entity X * affects the score of entity X. The weight w k may include a propagation weight 82b (FIG. 9). Some embodiments distinguish between various such propagation weights, e.g., the weight used to propagate the score from the child entity to the parent entity, the score from the parent entity to the child entity The weight used to propagate to may vary in value. Similarly, the weight used to propagate the score from the child entity to the parent entity is used to propagate the score from the entity targeted for code injection to the entity performing code injection. Weights can differ in value. In some embodiments, the score may propagate from an active entity to an entity that has ended. For example, a child process action may increase the score of the parent process even when the parent process is terminated.
[0062]一部の実施形態では、式[3]でのエンティティX*は、エンティティXの別のインスタンスである。例えばXおよびX*は、同時に実行する同じプロセスまたはスレッドのコピーであり得る。そのような事例では重みwkは、新しいインスタンス重み(例えば、図9での項目82c)、または初期化重み(例えば、項目82a)であり得る。一部の実施形態では、エンティティXの新しいインスタンスX’が起動されるとき、エンジン38は、現存するエンティティXの一部またはすべての評価スコアを、新しいインスタンス重みwkを使用して更新して、スコアをXからX’に伝搬させ得る。同様に、X’が起動されるとき、エンジン38は、X’の一部またはすべての評価スコアを、初期化重みwkを使用して更新して、スコアを、すでに実行するエンティティXから新しいエンティティX’に伝搬させ得る。
[0062] In some embodiments, entity X * in equation [3] is another instance of entity X. For example, X and X * can be copies of the same process or thread executing simultaneously. In such cases, the weight w k may be a new instance weight (eg,
[0063]一部の実施形態では、評価スコアSkを更新することが、それぞれのエンティティの別個の評価スコアSmの更新をトリガし得る。例えば、次式となる。
Sk (X)→Sk (X)+Vkが、Sm (X)→Sm (X)+F(X)fkmVmをトリガする [4]
ただしF(X)は、エンティティXに対して設定されるフラグ(例えば、図8での項目76eを確認されたい)であり、フラグは、評価基準CkとCmとの間の接続を示すものであり、fkmは、Skの更新がエンティティXのSmの更新に影響力を及ぼすときに伴う強さを示す、フラグ誘導される重み(例えば、図9での項目82eを確認されたい)である。
[0063] In some embodiments, updating the evaluation score S k may trigger an update of a separate evaluation score S m for each entity. For example, the following equation is obtained.
S k (X) → S k (X) + V k triggers S m (X) → S m (X) + F (X) f km V m [4]
However, F (X) is a flag set for the entity X (for example, check the
[0064]ステップ320でスコアリングエンジン38は、エンティティXのフラグ(図8に関係する上記のフラグに関する論考を確認されたい)を、ステップ312で受信される評価インジケータによって更新し得る。フラグは、式[4]に関係して上記で説明されたものなどのスコア共同更新機構を、アクティブ化および/または非アクティブ化するために設定され得る。1つのそのような例では、評価されるエンティティは、評価インジケータ(ステップ312)によってウェブブラウザアプリケーションであると識別され得るものであり、そのような識別は、スコアリングエンジン38に、インターネットからの将来のダウンロードに対してそれぞれのエンティティをスコアリングしないように示すべきものである。このことは、特別なフラグFの値を0に、それぞれのエンティティに対して設定することにより実現され得るものであり、フラグFは、スコアリングエンジン38に、エンティティがオブジェクトをインターネットからダウンロードするときに、それぞれのエンティティの評価スコアを更新するように示すものである。
[0064] At
[0065]ステップ322でスコアリングエンジン38は、例えば次式の合計として、それぞれのプロセスに対して決定される個々の評価スコアを組み合わせることにより、エンティティXの集計スコアを決定し得る。
[0065] In
[0066]ステップ324でエンジン38は、集計スコアを、あらかじめ決定されたしきい値と比較し得る。集計スコアがしきい値を上回らないとき、スコアリングエンジン38は、下記で説明されるステップ326に進行し得る。一部の実施形態ではしきい値は、ユーザ入力によって決定される値に設定され得る。そのようなしきい値の値は、それぞれのユーザのセキュリティ選好を反映し得る。例えば、ユーザが、厳格なセキュリティを選ぶとき、しきい値は、比較的低い値に設定され得るものであり、ユーザが、より寛容なセキュリティ設定を選好するとき、しきい値は、比較的高い値に設定され得る。一部の実施形態ではしきい値の値は、図10〜11に関係して下記で説明されるように、リモートセキュリティサーバから受信され得る。
[0066] At
[0067]一部の実施形態では、ステップ322〜324でスコアリングエンジン38は、複数の集計スコアを決定し、各々の集計スコアを(場合によっては別個の)しきい値と比較し得る。各々のそのような集計スコアは、評価スコアの別個の部分集合によって決定され得る。例示的な実施形態では、スコアの各々のそのような部分集合、および、評価基準のそれらのスコアの対応する部分集合は、マルウェアの特定のクラスまたはタイプ(例えば、トロイの木馬、ルートキット、その他)を表し得る。このことによってエンジン38は、検出されるマルウェアの分類を実施することが可能となり得る。別の実施形態ではスコアリングエンジン38は、悪意あることの様々な程度(例えば、クリーン、疑わしい、危険、および、危機的)によって実行エンティティを分類するために、複数のしきい値の値を用いる。
[0067] In some embodiments, the
[0068]集計スコアがしきい値を上回るとき、ステップ326でエンジン38は、評価されるプロセスが悪意あるものであると判断し得るものであり、アンチマルウェアアクションをとり得る。一部の実施形態では、そのようなアンチマルウェアアクションは、とりわけ、評価されるプロセスを終了させること、評価されるプロセスを検疫すること、および、評価されるプロセスのリソース(ファイル、または、メモリのセクションなど)を除去する、または不能にすることを含み得る。一部の実施形態ではアンチマルウェアアクションは、例えば、メッセージをシステムアドミニストレータに、ネットワークアダプタ22によってホストシステム10に接続されるコンピュータネットワークを介して送出することにより、ホストシステム10のユーザに警告すること、および/または、システムアドミニストレータに警告することをさらに含み得る。一部の実施形態ではアンチマルウェアアクションは、図10〜11に関係して下記で説明されるように、セキュリティ報告をリモートセキュリティサーバに送出することもまた含み得る。
[0068] When the aggregate score is above the threshold, at
[0069]ステップ328〜330のシーケンスでエンジン38は、Xに関係付けられるエンティティX*を識別し得るものであり、その場合X*のスコアは、Xの現在のスコア更新の後に続いて更新することを必要とする。例えばX*は、Xの親または子のエンティティであり得る。一部の実施形態ではエンティティX*は、エンティティXのESOのフィールド76g〜k(例えば、図8を確認されたい)によって識別され得る。そのようなエンティティX*が現存しないとき、または、すべてのそのようなエンティティX*がすでにスコア更新に対して考慮されているとき、エンジン38はステップ312に戻る。少なくともエンティティX*が存在するとき、ステップ332でスコアリングエンジンは、X*を現在のエンティティとし、ステップ318に戻る。
[0069] In the sequence of steps 328-330, the
[0070]図3〜4で図示される例示的なスコアリングエンジン38は、VM32の内部で、OSプロセッサ特権レベル(例えば、カーネルモード)で動作する。代替的実施形態ではスコアリングエンジン38は、VM32の内部で、ユーザモードで、または、VM32の外側で、ハイパーバイザ30のプロセッサ特権レベルでも実行し得る。
[0070] The
[0071]一部の実施形態ではイントロスペクションエンジン40は、実質的にハイパーバイザ30と同じ特権レベルで実行し、VM32(図3)などの仮想マシンのイントロスペクションを実施するように構成される。VMの、または、それぞれのVM上で実行するソフトウェアエンティティのイントロスペクションは、とりわけ、ソフトウェアエンティティの挙動を分析すること、そのようなエンティティのメモリアドレスを決定し、および/または、それらのメモリアドレスにアクセスすること、ある決まったプロセスのアクセスを、そのようなアドレスに配置されるメモリのコンテンツに制約すること、そのようなコンテンツを分析すること、ならびに、それぞれのエンティティの評価インジケータ(例えば、図5でのインジケータ52d)を決定することを含み得る。
[0071] In some embodiments, the
[0072]一部の実施形態ではホストシステム10は、マルウェア検出イベントに関する詳細などのセキュリティ情報を、リモートセキュリティサーバと交換するように構成され得る。図11は、そのような例示的な構成を例示するものであり、その構成では、上記で論考されたシステム10などの複数のホストシステム10a〜cが、セキュリティサーバ110にコンピュータネットワーク26を介して接続される。例示的な実施形態ではホストシステム10a〜cは、企業の従業員により使用される個々のコンピュータであり、一方でセキュリティサーバ110は、それぞれの企業のネットワークアドミニストレータにより、システム10a〜c上で発生する、マルウェア脅威またはセキュリティイベントを監視するように構成されたコンピュータシステムを備え得る。別の実施形態では、例えば、各々のホストシステム10a〜cが、何十または何百もの仮想マシンをホストするサーバである、サービスとしてのインフラストラクチャ(IAAS:Infrastructure−as−a−service)システムでは、セキュリティサーバ110は、すべてのそのようなVMに対するアンチマルウェア動作を中央位置から管理するように構成されたコンピュータシステムを備え得る。さらに別の実施形態ではセキュリティサーバ110は、アンチマルウェアソフトウェアのプロバイダ(例えば、とりわけ、セキュリティアプリケーション44のプロバイダ)により、ネットワーク26の周囲の様々なシステム上で検出されるマルウェアに関する統計および/または挙動データを受信するように構成されたコンピュータシステムを備え得る。ネットワーク26は、インターネットなどのワイドエリアネットワークを含み得るものであり、一方で、ネットワーク26の部分は、ローカルエリアネットワーク(LAN)を含み得る。
[0072] In some embodiments, the
[0073]図12は、図11で示されるような実施形態での、ホストシステム10とセキュリティサーバ110との間の例示的なデータ交換を示す。ホストシステム10は、セキュリティ報告80をサーバ110に送出し、セキュリティ設定82の集合をサーバ110から受信するように構成され得る。一部の実施形態ではセキュリティ報告80は、とりわけ、ホストシステム10上で実行するエンティティ評価器50a〜cおよび/もしくは40により決定される、エンティティ評価インジケータ52a〜dおよび/もしくはスコア、ならびに/または、スコアリングエンジン38により決定される集計スコアを含む。セキュリティ報告80は、それぞれのシステム10および評価されるエンティティを識別するデータ(例えば、エンティティID、名前、パス、ハッシュ、または、他の種類のエンティティ識別子)、ならびに、エンティティ評価インジケータ/スコアを、そのインジケータ/スコアが決定された対象であるホストシステムおよびエンティティに関連付けるインジケータもまた含み得る。一部の実施形態では報告80は、ホストシステム10上で実行するエンティティに関する統計および/または挙動データをさらに含み得る。システム10は、報告80を、マルウェアの検出を基にして、および/または、予定によって(例えば、数分ごと、1時間ごと、その他)送出するように構成され得る。
[0073] FIG. 12 illustrates an exemplary data exchange between the
[0074]一部の実施形態ではセキュリティ設定82は、エンティティ評価器の動作パラメータ(例えば、図5でのフィルタ50a〜cのパラメータ)、および/または、スコアリングエンジン38のパラメータを含み得る。エンジン38の例示的なパラメータは、とりわけ、評価されるプロセスが悪意あるものであるかどうかを判断するためのしきい値、ならびに、スコア値80および重み82a〜eを含む。
[0074] In some embodiments,
[0075]一部の実施形態ではサーバ110は、最適化アルゴリズムを走らせて、そのようなパラメータを動的に調整して、マルウェア検出性能を最大にし、例えば検出率を増大し、一方で偽陽性を最小にする。最適化アルゴリズムは、様々なエンティティ評価器によりスコアリングエンジン38に報告されるエンティティ評価インジケータ/スコアを含む、複数のホストシステム10a〜c上で実行する様々なエンティティに関する統計および/または挙動データを受信し、パラメータに対する最適な値を決定し得る。次いで値は、それぞれのホストシステムにネットワーク26を介して送信される。
[0075] In some embodiments, the
[0076]最適化の1つのそのような例では、スコア値80を変化させることによって、それぞれの評価基準の関連性が、互いに対して効果的に変化し得る。マルウェア脅威は、典型的には次々と発生し、世界中の多数のコンピュータシステムが、同じマルウェアエージェントにより、短い時間間隔で影響を及ぼされる。セキュリティ報告80をリアルタイムで複数のホストシステムから受信することにより、セキュリティサーバ110は、現在のマルウェア脅威に、現在までのところで遅れずについてゆくようにされ得るものであり、最適なセキュリティ設定82を、それぞれのホストシステムに迅速に給送し得るものであり、設定82は例えば、現在のマルウェア脅威を検出するために最適化されるスコア値80の集合を含む。
[0076] In one such example of optimization, changing the score value 80 may effectively change the relevance of the respective metrics relative to each other. Malware threats typically occur one after another, and many computer systems around the world are affected by the same malware agent in a short time interval. By receiving security reports 80 from multiple host systems in real time, the
[0077]上記で説明された例示的なシステムおよび方法によって、コンピュータシステムなどのホストシステムを、ウィルス、トロイの木馬、およびスパイウェアなどのマルウェアから保護することが可能となる。ホストシステム上で現在実行するプロセスおよびスレッドなどの複数の実行可能エンティティの各々に対して、スコアリングエンジンは、複数の評価スコアを記録し、各々のスコアは、別個の評価基準によって決定される。一部の実施形態では、評価されるソフトウェアエンティティは、実質的に範囲および複雑度において、例えば、オペレーティングシステムおよび/または仮想マシンの、個々の実行スレッドから、個々のアプリケーションまで、全体のインスタンスまで変動し得る。 [0077] The exemplary systems and methods described above allow host systems, such as computer systems, to be protected from malware, such as viruses, Trojan horses, and spyware. For each of a plurality of executable entities such as processes and threads currently executing on the host system, the scoring engine records a plurality of evaluation scores, each score being determined by a separate evaluation criterion. In some embodiments, the evaluated software entity varies substantially in scope and complexity, for example, from individual execution threads to individual applications, to entire instances of an operating system and / or virtual machine. Can do.
[0078]監視されるエンティティが、評価基準を満たす(例えば、アクションを実施する)たびに、エンティティのそれぞれのスコアが更新される。対象エンティティのスコアを更新することが、対象エンティティに関係付けられる他のエンティティのスコア更新をトリガし得る。そのような関係付けられるエンティティは、とりわけ、対象エンティティの子、対象エンティティの親、内に対象エンティティがコードを注入したエンティティ、および、コードを対象エンティティ内に注入したエンティティを含む。 [0078] Each time a monitored entity meets the evaluation criteria (eg, performs an action), the respective score of the entity is updated. Updating the score of the target entity may trigger a score update for other entities associated with the target entity. Such related entities include, among other things, the child of the target entity, the parent of the target entity, the entity into which the target entity injected code, and the entity that injected the code into the target entity.
[0079]従来のアンチマルウェアシステムは、典型的には、各々のエンティティを、他のエンティティとは別々にスコアリングする。一部のマルウェアは、悪意ある活動を、悪意あるプロセスの子プロセスなどの、いくつかの別個のエージェントの間で分割し、そのことによって、個々のエージェントのどれも、検出されるのに充分なマルウェアを示す活動を実施しないようにすることにより、検出を逃れることを試み得る。対照的に本発明の一部の実施形態は、スコアを1つのエンティティから、他の関係付けられるエンティティに伝搬させ、したがって、マルウェアを示すデータを、関係付けられるエンティティにわたって補強する。スコア伝搬によって、悪意ある活動に関与させられるエージェントの少なくとも1つが検出されることが確実になり得る。 [0079] Conventional anti-malware systems typically score each entity separately from other entities. Some malware divides the malicious activity among several separate agents, such as child processes of the malicious process, which is sufficient to detect any individual agent. By not performing any activities that indicate malware, one may attempt to escape detection. In contrast, some embodiments of the present invention propagate scores from one entity to other related entities, thus reinforcing data indicative of malware across the related entities. Score propagation may ensure that at least one agent involved in malicious activity is detected.
[0080]1つの例示的な逃れ戦略では、マルウェアエージェントは、複数の子プロセスを生み出し、閉止する場合がある。悪意ある活動は、子プロセスの間で分割され得るものであり、そのことによって、いかなる個々の子のアクションも、それらのアクション単独ではマルウェア警報をトリガしない場合がある。本発明の一部の実施形態ではスコアは、1つのエンティティから別のものに、後者が終了したものであるときでも伝搬し得る。そのような構成は、それが子プロセスの悪意あることを検出することに失敗し得る場合でも、親プロセスを悪意あるものとして検出し得る。一部の実施形態は、現在評価中のエンティティのリストを維持し、リストは、アクティブなエンティティ、および、終了したものであるエンティティの両方を含み得る。エンティティは、それぞれのエンティティのすべての子孫が終了したものであるときにのみ、リストから取り除かれ得る。 [0080] In one exemplary escape strategy, a malware agent may spawn and close multiple child processes. Malicious activity can be split between child processes, so that any individual child action may not trigger a malware alert by those actions alone. In some embodiments of the invention, the score may propagate from one entity to another, even when the latter is finished. Such a configuration may detect the parent process as malicious even if it may fail to detect that the child process is malicious. Some embodiments maintain a list of entities that are currently being evaluated, and the list may include both active entities and entities that have ended. Entities can be removed from the list only when all descendants of each entity are terminated.
[0081]従来のアンチマルウェアシステムでは、ただ1つのスコアが典型的には、各々のエンティティに対して記録される。各々がその別個の基準によって計算される、複数のエンティティごとのスコアを保つことにより、本発明の一部の実施形態によって、スコアは、関係付けられるエンティティの間で、基準ごとを基礎として伝搬させられることが可能となる。そのようなスコアは、伝搬を基にして増大するか、さもなければ減少し得るものであり、そのことによって、各々のエンティティのライフサイクルの全体を通しての、悪意あることのより精密な評定が、偽陽性検出がより少ない状態で可能となる。一部の実施形態では、1つのエンティティのスコアが、関係付けられるエンティティのスコアに影響を及ぼす度合いは、数値的な伝搬重みによって調整可能である。そのような重みは、エンティティによって、および/または、評価基準によって異なり得るものであり、そのことによって、スコア伝搬の柔軟および精密な調整作業が可能となる。重み値は、人間のオペレータにより決定され得るものであり、および/または、マルウェア検出性能を改善することに向けられた、自動化された最適化に左右される場合がある。 [0081] In conventional anti-malware systems, only one score is typically recorded for each entity. By keeping a score for each of a plurality of entities, each calculated by its separate criteria, according to some embodiments of the invention, the scores are propagated between the related entities on a per criteria basis. It becomes possible to be done. Such a score can increase or otherwise decrease based on propagation, thereby providing a more precise assessment of maliciousness throughout the life cycle of each entity, This is possible with fewer false positive detections. In some embodiments, the degree to which a single entity's score affects the associated entity's score can be adjusted by numerical propagation weights. Such weights may vary from entity to entity and / or from evaluation criteria, which allows for flexible and precise adjustment of score propagation. The weight value may be determined by a human operator and / or may depend on an automated optimization aimed at improving malware detection performance.
[0082]一部の従来のアンチマルウェアシステムは、評価されるエンティティが悪意あるものであるかどうかを決定することを、それぞれのエンティティが、マルウェアを示す挙動を実施するかどうか、および/または、エンティティが、コードのマルウェアを示すシーケンスなどの、マルウェアを示す特徴を有するかどうかを決定することにより行う。対照的に本発明の一部の実施形態では、エンティティ評価基準は、必ずしもそれらの基準単独ではマルウェアを示すものではない。例えば一部の基準は、エンティティが、ファイルを開くこと、または、IPアドレスにアクセスすることなどの良性のアクションを実施するかどうかを決定することを含む。それでもそのようなアクションは、他のアクションと組み合わされるときに悪意あるものになり得るものであり、それらの他のアクション自体は、それら単独ではマルウェアを示すものではない場合があるものである。多種多様のエンティティ挙動および/または特徴を監視し、多数の(場合によっては何百もの)評価スコアを記録し、そのようなスコアをエンティティごとの方式で集計することにより、本発明の一部の実施形態は、検出率を増大し、一方で偽陽性を最小にし得る。 [0082] Some conventional anti-malware systems determine whether an entity being evaluated is malicious, whether each entity performs a behavior indicative of malware, and / or This is done by determining whether the entity has characteristics indicative of malware, such as a sequence indicative of malware in the code. In contrast, in some embodiments of the present invention, entity metrics do not necessarily indicate malware by themselves. For example, some criteria include determining whether an entity performs a benign action such as opening a file or accessing an IP address. Nevertheless, such actions can be malicious when combined with other actions, and these other actions themselves may not be indicative of malware by themselves. By monitoring a wide variety of entity behaviors and / or features, recording a large number (sometimes hundreds) of evaluation scores, and summing up such scores in a per-entity manner, Embodiments can increase detection rates while minimizing false positives.
[0083]本発明の一部の実施形態は、仮想化される環境を保護し得る。仮想化をサポートするように構成された実施形態では、本発明の一部のコンポーネントは、仮想マシンの内部で実行し得るものであり、一方で他のものは、それぞれの仮想マシンの外側で、例えば、それぞれの仮想マシンをエクスポーズするハイパーバイザのレベルで実行し得る。ハイパーバイザレベルで実行するそのようなコンポーネントは、アンチマルウェア動作を、それぞれのホストシステム上で同時に実行する複数の仮想マシンに対して実施するように構成され得る。 [0083] Some embodiments of the present invention may protect a virtualized environment. In embodiments configured to support virtualization, some components of the present invention may be executed inside a virtual machine, while others are outside each virtual machine, For example, it can be executed at the level of a hypervisor that exposes each virtual machine. Such a component executing at the hypervisor level may be configured to perform anti-malware operations on multiple virtual machines executing simultaneously on each host system.
[0084]上記の実施形態が、多くの方途で、本発明の範囲から逸脱することなく改変され得ることは、当業者には明らかであろう。したがって本発明の範囲は、以下の特許請求の範囲、および、それらの法的均等物により決定されるべきである。 [0084] It will be apparent to those skilled in the art that the above embodiments can be modified in many ways without departing from the scope of the invention. Accordingly, the scope of the invention should be determined by the following claims and their legal equivalents.
Claims (22)
前記エンティティ管理モジュールは、評価されるソフトウェアエンティティのコレクションを管理するように構成され、前記コレクションを管理することは、
前記コレクションの第1のエンティティの子孫エンティティの集合を識別することと、
前記第1のエンティティが終了したものであるかどうかを判定することと、
それに応じて、前記第1のエンティティが終了したものであるときに、子孫エンティティの前記集合のすべてのメンバが終了したものであるかどうかを判定することと、
それに応じて、子孫エンティティの前記集合のすべてのメンバが終了したものであるときに、前記第1のエンティティを前記コレクションから除去することと
を含み、
前記エンティティ評価器は、
前記第1のエンティティを評価基準によって評価することと、
それに応じて、前記第1のエンティティが前記評価基準を満たすときに、評価インジケータを前記スコアリングエンジンに送信することと
を行うように構成され、
前記スコアリングエンジンは、
前記第1のエンティティに対して決定された第1のスコア、および、前記コレクションの第2のエンティティに対して決定された第2のスコアを記録することであって、前記の第1および第2のスコアは前記評価基準によって決定される、記録することと、
前記の第1および第2のスコアを記録することに応じて、ならびに、前記評価インジケータを受信することに応じて、前記第2のスコアを前記評価インジケータによって更新することと、
それに応じて、前記第2のエンティティが悪意あるものであるかどうかを、更新された前記第2のスコアによって判定することと
を行うように構成された、
ホストシステム。 A host system including at least one processor configured to execute an entity management module, an entity evaluator, and a scoring engine,
The entity management module is configured to manage a collection of software entities to be evaluated, and managing the collection includes
Identifying a set of descendant entities of the first entity of the collection;
Determining whether the first entity is terminated;
Accordingly, determining whether all members of the set of descendent entities are terminated when the first entity is terminated;
In response, when all members of the set of descendent entities are terminated, removing the first entity from the collection;
The entity evaluator is
Evaluating the first entity according to an evaluation criterion;
Accordingly, the first entity is configured to send an evaluation indicator to the scoring engine when the first entity meets the evaluation criteria,
The scoring engine
Recording a first score determined for the first entity and a second score determined for a second entity of the collection, wherein the first and second The score of is determined by the evaluation criteria, recording;
In response to recording the first and second scores, and in response to receiving the evaluation indicator, updating the second score with the evaluation indicator;
In response, the second entity is configured to determine whether the second entity is malicious by determining the updated second score;
Host system.
前記評価インジケータを受信することに応じて、前記第1のスコアを前記評価インジケータによって更新することと、
それに応じて、前記第1のエンティティが悪意あるものであるかどうかを、更新された前記第1のスコアによって判定することと
を行うようにさらに構成された、ホストシステム。 The host system according to claim 1, wherein the scoring engine is
Responsive to receiving the rating indicator, updating the first score with the rating indicator;
In response, the host system further configured to determine whether the first entity is malicious by determining the updated first score.
新しいソフトウェアエンティティの起動をインターセプトすることと、
それに応じて、前記新しいソフトウェアエンティティを前記コレクションに追加することと
をさらに含む、ホストシステム。 The host system of claim 1, wherein managing the collection of software entities to be evaluated comprises
Intercepting the launch of a new software entity;
In response, the host system further comprising adding the new software entity to the collection.
評価されるソフトウェアエンティティのコレクションを管理することであって、
前記コレクションの第1のエンティティの子孫エンティティの集合を識別することと、
前記第1のエンティティが終了したものであるかどうかを判定することと、
それに応じて、前記第1のエンティティが終了したものであるときに、子孫エンティティの前記集合のすべてのメンバが終了したものであるかどうかを判定することと、
それに応じて、子孫エンティティの前記集合のすべてのメンバが終了したものであるときに、選択された前記エンティティを前記コレクションから除去することと
を含む、管理することと、
前記第1のエンティティに対して決定された第1のスコア、および、前記コレクションの第2のエンティティに対して決定された第2のスコアを記録することであって、前記の第1および第2のスコアは評価基準によって決定された、記録することと、
前記の第1および第2のスコアを記録することに応じて、前記第1のエンティティを前記評価基準によって評価することと、
前記第1のエンティティを評価することに応じて、前記第1のエンティティが前記評価基準を満たすときに、前記第2のスコアを更新することと、
前記第2のスコアを更新することに応じて、前記第2のエンティティが悪意あるものであるかどうかを、更新された前記第2のスコアによって決定することと
を行うように構成する、非一時的コンピュータ可読媒体。 A non-transitory computer readable medium for storing instructions that, when executed, cause at least one processor of a host system to
Managing a collection of evaluated software entities,
Identifying a set of descendant entities of the first entity of the collection;
Determining whether the first entity is terminated;
Accordingly, determining whether all members of the set of descendent entities are terminated when the first entity is terminated;
Accordingly, managing when all members of the set of descendant entities are terminated, removing the selected entity from the collection;
Recording a first score determined for the first entity and a second score determined for a second entity of the collection, wherein the first and second The score of is determined by the evaluation criteria,
In response to recording the first and second scores, evaluating the first entity according to the evaluation criteria;
In response to evaluating the first entity, updating the second score when the first entity meets the evaluation criteria;
Non-temporarily configured to determine whether the second entity is malicious in response to updating the second score, according to the updated second score. Computer-readable medium.
前記第1のエンティティを評価することに応じて、前記第1のエンティティが前記評価基準を満たすときに、前記第1のスコアを更新することと、
それに応じて、前記第1の実行可能エンティティが悪意あるものであるかどうかを、更新された前記第1のスコアによって判定することと
を行うようにさらに構成された、コンピュータ可読媒体。 The computer-readable medium of claim 9, wherein the at least one processor is
Responsive to evaluating the first entity, updating the first score when the first entity meets the evaluation criteria;
In response, the computer-readable medium further configured to determine whether the first executable entity is malicious by determining the updated first score.
新しいソフトウェアエンティティの起動をインターセプトすることと、
それに応じて、前記新しいソフトウェアエンティティを前記コレクションに追加することと
をさらに含む、コンピュータ可読媒体。 The computer-readable medium of claim 9, wherein managing the collection of software entities to be evaluated is
Intercepting the launch of a new software entity;
In response, the computer-readable medium further comprising adding the new software entity to the collection.
前記エンティティ評価器は、
前記第1のソフトウェアエンティティを評価基準によって評価することであって、前記第1のソフトウェアエンティティはクライアントシステム上で実行された、評価することと、
それに応じて、前記第1のソフトウェアエンティティが前記評価基準を満たすときに、評価インジケータを前記スコアリングエンジンに送信することと
を行うように構成され、
前記スコアリングエンジンは、
前記評価インジケータを受信することに応じて、スコアを前記評価インジケータによって更新することであって、前記スコアは、前に前記ホストシステム上で実行された第2のソフトウェアエンティティに対して決定され、前記第2のソフトウェアエンティティは、前記スコアを更新するときには終了したものである、更新することと、
それに応じて、前記第2のソフトウェアエンティティが悪意あるものであるかどうかを、更新された前記第2のスコアによって判定することと
を行うように構成された、
ホストシステム。 A host system including at least one processor configured to execute an entity evaluator and a scoring engine,
The entity evaluator is
Evaluating the first software entity according to an evaluation criterion, wherein the first software entity is executed on a client system;
In response, the first software entity is configured to send an evaluation indicator to the scoring engine when the first software entity meets the evaluation criteria;
The scoring engine
Responsive to receiving the evaluation indicator, updating a score with the evaluation indicator, the score being determined for a second software entity previously executed on the host system; The second software entity is finished when updating the score, updating;
In response thereto, the second software entity is configured to determine whether the second software entity is malicious by determining the updated second score;
Host system.
それに応じて、前記第1のソフトウェアエンティティが前記評価基準を満たすときに、前記少なくとも1つのプロセッサを用いて、前に前記ホストシステム上で実行された第2のソフトウェアエンティティに対して決定されたスコアを更新するステップであって、前記第2のソフトウェアエンティティは、前記スコアを更新するときには終了したものであり、前記スコアは前記評価基準によって決定された、更新するステップと、
前記第2のスコアを更新するステップに応じて、前記少なくとも1つのプロセッサを用いて、前記第2のソフトウェアエンティティが悪意あるものであるかどうかを、更新された前記第2のスコアによって決定するステップと
を含む、方法。 Determining, using at least one processor of the host system, whether a first software entity executed on the host system meets the evaluation criteria;
Accordingly, a score previously determined for a second software entity previously executed on the host system using the at least one processor when the first software entity meets the evaluation criteria. Updating the second software entity when the score is updated, the score being determined by the evaluation criteria; and
In response to updating the second score, using the at least one processor to determine whether the second software entity is malicious according to the updated second score. Including a method.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/046,728 | 2013-10-04 | ||
US14/046,728 US9323931B2 (en) | 2013-10-04 | 2013-10-04 | Complex scoring for malware detection |
PCT/RO2014/000027 WO2015050469A1 (en) | 2013-10-04 | 2014-09-25 | Complex scoring for malware detection |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2016536667A true JP2016536667A (en) | 2016-11-24 |
JP2016536667A5 JP2016536667A5 (en) | 2017-06-15 |
JP6317435B2 JP6317435B2 (en) | 2018-04-25 |
Family
ID=52001042
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016520024A Active JP6317435B2 (en) | 2013-10-04 | 2014-09-25 | Complex scoring for malware detection |
Country Status (12)
Country | Link |
---|---|
US (1) | US9323931B2 (en) |
EP (1) | EP3053087A1 (en) |
JP (1) | JP6317435B2 (en) |
KR (1) | KR101948711B1 (en) |
CN (1) | CN105593870B (en) |
AU (1) | AU2014330136B2 (en) |
CA (1) | CA2931325C (en) |
HK (1) | HK1220523A1 (en) |
IL (1) | IL244861B (en) |
RU (1) | RU2645268C2 (en) |
SG (1) | SG11201602586SA (en) |
WO (1) | WO2015050469A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020502638A (en) * | 2016-12-19 | 2020-01-23 | ビットディフェンダー アイピーアール マネジメント リミテッド | Event filtering for virtual machine security applications |
JP2020509511A (en) * | 2017-02-14 | 2020-03-26 | シマンテック コーポレーションSymantec Corporation | System and method for detecting malicious computing events |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10078752B2 (en) | 2014-03-27 | 2018-09-18 | Barkly Protects, Inc. | Continuous malicious software identification through responsive machine learning |
US9977895B2 (en) * | 2014-03-27 | 2018-05-22 | Barkly Protects, Inc. | Malicious software identification integrating behavioral analytics and hardware events |
US9733976B2 (en) * | 2014-03-27 | 2017-08-15 | Barkly Protects, Inc. | Method and apparatus for SYSRET monitoring of system interactions |
JP6370098B2 (en) * | 2014-05-16 | 2018-08-08 | 杉中 順子 | Information processing apparatus, information processing monitoring method, program, and recording medium |
US9779239B2 (en) * | 2015-03-15 | 2017-10-03 | Fujitsu Limited | Detection of malicious software behavior using signature-based static analysis |
US10116688B1 (en) | 2015-03-24 | 2018-10-30 | Symantec Corporation | Systems and methods for detecting potentially malicious files |
US9646159B2 (en) * | 2015-03-31 | 2017-05-09 | Juniper Networks, Inc. | Multi-file malware analysis |
US9798878B1 (en) | 2015-03-31 | 2017-10-24 | Symantec Corporation | Systems and methods for detecting text display manipulation attacks |
WO2016193831A1 (en) * | 2015-06-04 | 2016-12-08 | Accenture Global Services Limited | Process categorization for computer security |
US9703961B2 (en) | 2015-06-05 | 2017-07-11 | Accenture Global Services Limited | Process risk classification |
US9798877B2 (en) | 2015-06-04 | 2017-10-24 | Accenture Global Services Limited | Security risk-based resource allocation |
US9767285B2 (en) | 2015-06-04 | 2017-09-19 | Accenture Global Services Limited | Process categorization using crowdsourcing |
US10176438B2 (en) | 2015-06-19 | 2019-01-08 | Arizona Board Of Regents On Behalf Of Arizona State University | Systems and methods for data driven malware task identification |
US9942248B1 (en) * | 2015-06-24 | 2018-04-10 | Symantec Corporation | Systems and methods for adjusting behavioral detection heuristics |
RU2618947C2 (en) * | 2015-06-30 | 2017-05-11 | Закрытое акционерное общество "Лаборатория Касперского" | Method of preventing program operation comprising functional undesirable for user |
US9852295B2 (en) | 2015-07-14 | 2017-12-26 | Bitdefender IPR Management Ltd. | Computer security systems and methods using asynchronous introspection exceptions |
US10089465B2 (en) * | 2015-07-24 | 2018-10-02 | Bitdefender IPR Management Ltd. | Systems and methods for tracking malicious behavior across multiple software entities |
WO2017040957A1 (en) * | 2015-09-02 | 2017-03-09 | Nehemiah Security | Process launch, monitoring and execution control |
RU2634175C2 (en) * | 2015-12-18 | 2017-10-24 | Акционерное общество "Лаборатория Касперского" | Method for implementation of anti-virus checks |
US10210331B2 (en) * | 2015-12-24 | 2019-02-19 | Mcafee, Llc | Executing full logical paths for malware detection |
US9965313B2 (en) * | 2016-01-05 | 2018-05-08 | Bitdefender IPR Management Ltd. | Systems and methods for auditing a virtual machine |
US20210026950A1 (en) * | 2016-03-07 | 2021-01-28 | Crowdstrike, Inc. | Hypervisor-based redirection of system calls and interrupt-based task offloading |
US10140448B2 (en) | 2016-07-01 | 2018-11-27 | Bitdefender IPR Management Ltd. | Systems and methods of asynchronous analysis of event notifications for computer security applications |
US9734337B1 (en) * | 2017-01-24 | 2017-08-15 | Malwarebytes Inc. | Behavior-based ransomware detection |
US10592664B2 (en) * | 2017-02-02 | 2020-03-17 | Cisco Technology, Inc. | Container application security and protection |
US10061921B1 (en) * | 2017-02-13 | 2018-08-28 | Trend Micro Incorporated | Methods and systems for detecting computer security threats |
US10735468B1 (en) | 2017-02-14 | 2020-08-04 | Ca, Inc. | Systems and methods for evaluating security services |
US10990678B2 (en) * | 2017-07-26 | 2021-04-27 | Comodo Security Solutions, Inc. | Method to protect application running in a hostile environment |
US10467552B2 (en) * | 2017-07-31 | 2019-11-05 | Pearson Education, Inc. | System and method for automatic content provisioning |
RU2708356C1 (en) * | 2018-06-29 | 2019-12-05 | Акционерное общество "Лаборатория Касперского" | System and method for two-stage classification of files |
US11017083B2 (en) | 2018-10-17 | 2021-05-25 | International Business Machines Corporation | Multiple phase graph partitioning for malware entity detection |
KR102023746B1 (en) * | 2019-03-26 | 2019-09-20 | 넷마블 주식회사 | Method and apparatus for detecting malicious codes |
RU2739833C1 (en) * | 2019-06-28 | 2020-12-28 | Акционерное общество "Лаборатория Касперского" | System and method for reducing load on malware detection service |
CN111191226B (en) * | 2019-07-04 | 2023-12-01 | 腾讯科技(深圳)有限公司 | Method, device, equipment and storage medium for determining program by utilizing right-raising loopholes |
US11238154B2 (en) * | 2019-07-05 | 2022-02-01 | Mcafee, Llc | Multi-lateral process trees for malware remediation |
CN110598410B (en) * | 2019-09-16 | 2021-11-16 | 腾讯科技(深圳)有限公司 | Malicious process determination method and device, electronic device and storage medium |
US10754506B1 (en) * | 2019-10-07 | 2020-08-25 | Cyberark Software Ltd. | Monitoring and controlling risk compliance in network environments |
CN111224942B (en) * | 2019-11-20 | 2021-11-16 | 重庆邮电大学 | Malicious software propagation control method and device based on ternary association diagram detection |
WO2021106172A1 (en) * | 2019-11-28 | 2021-06-03 | 日本電信電話株式会社 | Rule generation device and rule generation program |
RU2752241C2 (en) * | 2019-12-25 | 2021-07-23 | Общество С Ограниченной Ответственностью «Яндекс» | Method and system for identifying malicious activity of predetermined type in local network |
CA3201355A1 (en) | 2020-12-17 | 2022-06-23 | Satya V. Gupta | Runtime memory protection (rmp) engine |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5193186A (en) * | 1990-02-05 | 1993-03-09 | Hitachi, Ltd. | Processor system for executing processes in parallel under multitask, control method of waiting for event of process |
JP2002215256A (en) * | 2000-11-14 | 2002-07-31 | Lucent Technol Inc | Method, system and medium to prevent unauthorized use of software program |
JP2003186687A (en) * | 2001-12-17 | 2003-07-04 | Kanazawa Inst Of Technology | Method and apparatus for virus detection |
JP2006526193A (en) * | 2003-05-17 | 2006-11-16 | マイクロソフト コーポレーション | Mechanism for assessing security risks |
US20090165131A1 (en) * | 2007-12-20 | 2009-06-25 | Treadwell William S | Detection and prevention of malicious code execution using risk scoring |
US8042186B1 (en) * | 2011-04-28 | 2011-10-18 | Kaspersky Lab Zao | System and method for detection of complex malware |
JP2011233126A (en) * | 2010-04-28 | 2011-11-17 | Electronics And Telecommunications Research Institute | Device, system and method for detecting malignant code which is disguised as normal and inserted to normal process |
JP2012501028A (en) * | 2008-08-28 | 2012-01-12 | エーブイジー テクノロジーズ シーゼット、エス.アール.オー. | Heuristics for code analysis |
JP2012008777A (en) * | 2010-06-24 | 2012-01-12 | Kddi Corp | Application determination system and program |
JP2013016000A (en) * | 2011-07-04 | 2013-01-24 | Hitachi Ltd | Multiplex controller system and operating method therefor |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7748039B2 (en) | 2002-08-30 | 2010-06-29 | Symantec Corporation | Method and apparatus for detecting malicious code in an information handling system |
US7870612B2 (en) | 2006-09-11 | 2011-01-11 | Fujian Eastern Micropoint Info-Tech Co., Ltd | Antivirus protection system and method for computers |
US7908660B2 (en) | 2007-02-06 | 2011-03-15 | Microsoft Corporation | Dynamic risk management |
US7620992B2 (en) | 2007-10-02 | 2009-11-17 | Kaspersky Lab Zao | System and method for detecting multi-component malware |
CN101350052B (en) | 2007-10-15 | 2010-11-03 | 北京瑞星信息技术有限公司 | Method and apparatus for discovering malignancy of computer program |
US8037536B2 (en) | 2007-11-14 | 2011-10-11 | Bank Of America Corporation | Risk scoring system for the prevention of malware |
US8615805B1 (en) * | 2008-09-03 | 2013-12-24 | Symantec Corporation | Systems and methods for determining if a process is a malicious process |
US20120101970A1 (en) * | 2009-06-22 | 2012-04-26 | United Parents Online Ltd. | Method and system of monitoring a network based communication among users |
KR101057432B1 (en) | 2010-02-23 | 2011-08-22 | 주식회사 이세정보 | System, method, program and recording medium for detection and blocking the harmful program in a real-time throught behavior analysis of the process |
US8578345B1 (en) * | 2010-04-15 | 2013-11-05 | Symantec Corporation | Malware detection efficacy by identifying installation and uninstallation scenarios |
RU2454714C1 (en) * | 2010-12-30 | 2012-06-27 | Закрытое акционерное общество "Лаборатория Касперского" | System and method of increasing efficiency of detecting unknown harmful objects |
AU2012236739A1 (en) * | 2011-03-28 | 2013-10-03 | Mcafee, Inc. | System and method for virtual machine monitor based anti-malware security |
US9323928B2 (en) | 2011-06-01 | 2016-04-26 | Mcafee, Inc. | System and method for non-signature based detection of malicious processes |
US9081959B2 (en) * | 2011-12-02 | 2015-07-14 | Invincea, Inc. | Methods and apparatus for control and detection of malicious content using a sandbox environment |
WO2015035559A1 (en) * | 2013-09-10 | 2015-03-19 | Symantec Corporation | Systems and methods for using event-correlation graphs to detect attacks on computing systems |
-
2013
- 2013-10-04 US US14/046,728 patent/US9323931B2/en active Active
-
2014
- 2014-09-25 CN CN201480054678.6A patent/CN105593870B/en active Active
- 2014-09-25 RU RU2016114944A patent/RU2645268C2/en active
- 2014-09-25 KR KR1020167008888A patent/KR101948711B1/en active IP Right Grant
- 2014-09-25 CA CA2931325A patent/CA2931325C/en active Active
- 2014-09-25 AU AU2014330136A patent/AU2014330136B2/en active Active
- 2014-09-25 JP JP2016520024A patent/JP6317435B2/en active Active
- 2014-09-25 WO PCT/RO2014/000027 patent/WO2015050469A1/en active Application Filing
- 2014-09-25 EP EP14805695.5A patent/EP3053087A1/en not_active Withdrawn
- 2014-09-25 SG SG11201602586SA patent/SG11201602586SA/en unknown
-
2016
- 2016-04-03 IL IL244861A patent/IL244861B/en active IP Right Grant
- 2016-07-15 HK HK16108400.9A patent/HK1220523A1/en unknown
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5193186A (en) * | 1990-02-05 | 1993-03-09 | Hitachi, Ltd. | Processor system for executing processes in parallel under multitask, control method of waiting for event of process |
JP2002215256A (en) * | 2000-11-14 | 2002-07-31 | Lucent Technol Inc | Method, system and medium to prevent unauthorized use of software program |
JP2003186687A (en) * | 2001-12-17 | 2003-07-04 | Kanazawa Inst Of Technology | Method and apparatus for virus detection |
JP2006526193A (en) * | 2003-05-17 | 2006-11-16 | マイクロソフト コーポレーション | Mechanism for assessing security risks |
US20090165131A1 (en) * | 2007-12-20 | 2009-06-25 | Treadwell William S | Detection and prevention of malicious code execution using risk scoring |
JP2012501028A (en) * | 2008-08-28 | 2012-01-12 | エーブイジー テクノロジーズ シーゼット、エス.アール.オー. | Heuristics for code analysis |
JP2011233126A (en) * | 2010-04-28 | 2011-11-17 | Electronics And Telecommunications Research Institute | Device, system and method for detecting malignant code which is disguised as normal and inserted to normal process |
JP2012008777A (en) * | 2010-06-24 | 2012-01-12 | Kddi Corp | Application determination system and program |
US8042186B1 (en) * | 2011-04-28 | 2011-10-18 | Kaspersky Lab Zao | System and method for detection of complex malware |
JP2013016000A (en) * | 2011-07-04 | 2013-01-24 | Hitachi Ltd | Multiplex controller system and operating method therefor |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020502638A (en) * | 2016-12-19 | 2020-01-23 | ビットディフェンダー アイピーアール マネジメント リミテッド | Event filtering for virtual machine security applications |
JP7036821B2 (en) | 2016-12-19 | 2022-03-15 | ビットディフェンダー アイピーアール マネジメント リミテッド | Event filtering for virtual machine security application examples |
JP2020509511A (en) * | 2017-02-14 | 2020-03-26 | シマンテック コーポレーションSymantec Corporation | System and method for detecting malicious computing events |
Also Published As
Publication number | Publication date |
---|---|
WO2015050469A1 (en) | 2015-04-09 |
CA2931325C (en) | 2020-10-06 |
US20150101049A1 (en) | 2015-04-09 |
SG11201602586SA (en) | 2016-05-30 |
CN105593870B (en) | 2019-01-29 |
IL244861A0 (en) | 2016-05-31 |
EP3053087A1 (en) | 2016-08-10 |
RU2645268C2 (en) | 2018-02-19 |
JP6317435B2 (en) | 2018-04-25 |
CA2931325A1 (en) | 2015-04-09 |
US9323931B2 (en) | 2016-04-26 |
RU2016114944A (en) | 2017-11-13 |
KR101948711B1 (en) | 2019-02-15 |
HK1220523A1 (en) | 2017-05-05 |
IL244861B (en) | 2019-02-28 |
AU2014330136B2 (en) | 2019-12-12 |
KR20160065852A (en) | 2016-06-09 |
CN105593870A (en) | 2016-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6317435B2 (en) | Complex scoring for malware detection | |
AU2014330136A1 (en) | Complex scoring for malware detection | |
KR102301721B1 (en) | Dual memory introspection to protect multiple network endpoints | |
KR101946982B1 (en) | Process Evaluation for Malware Detection in Virtual Machines | |
JP6706273B2 (en) | Behavioral Malware Detection Using Interpreted Virtual Machines | |
JP6829718B2 (en) | Systems and methods for tracking malicious behavior across multiple software entities | |
US9251343B1 (en) | Detecting bootkits resident on compromised computers | |
JP2017527931A (en) | Malware detection method and system | |
KR101086203B1 (en) | A proactive system against malicious processes by investigating the process behaviors and the method thereof | |
CN102799817A (en) | System and method for malware protection using virtualization |
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: 20180222 |
|
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: 6317435 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 |