US8042186B1 - System and method for detection of complex malware - Google Patents

System and method for detection of complex malware Download PDF

Info

Publication number
US8042186B1
US8042186B1 US13/096,227 US201113096227A US8042186B1 US 8042186 B1 US8042186 B1 US 8042186B1 US 201113096227 A US201113096227 A US 201113096227A US 8042186 B1 US8042186 B1 US 8042186B1
Authority
US
United States
Prior art keywords
trusted
objects
context
threads
processes
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
US13/096,227
Inventor
Alexey A. Polyakov
Vladislav V. Martynenko
Yuri G. Slobodyanuk
Denis A. Nazarov
Mikhail A. Pavlyushchik
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kaspersky Lab AO
Original Assignee
Kaspersky Lab AO
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 Kaspersky Lab AO filed Critical Kaspersky Lab AO
Priority to US13/096,227 priority Critical patent/US8042186B1/en
Assigned to KASPERSKY LAB ZAO reassignment KASPERSKY LAB ZAO ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MARTYNENKO, VLADISLAV V, NAZAROV, DENIS A, PAVLYUSHCHIK, MIKHAIL A, POLYAKOV, ALEXEY A, SLOBODYANUK, YURI G
Application granted granted Critical
Publication of US8042186B1 publication Critical patent/US8042186B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

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

Definitions

  • the present invention relates to the field of computer security and, in particular, to systems and methods for computer protection from malware with complex infection patterns.
  • Computer malware such as viruses, worms and Trojan horses
  • viruses such as viruses, worms and Trojan horses
  • not all malware detection methods are effective in protecting computers against malware; especially when the malware is specifically designed to bypass these detection methods.
  • a malware can be a single component or object, for example an executable file that, if launched, performs actions that can cause damage to the computer.
  • Common malware detection techniques such as signature or heuristic analysis, will typically detect single component malware.
  • more complex malware consists of multiple components, with each component performing certain actions; for example, one component may perform actions with files, the second component may modify system registry, and the third component may perform networking functions.
  • each component by itself may not perform malicious actions, but if their actions are combined, they can cause damage to the computer.
  • the common malware detection methods may not be effective in detecting of such multi-component malware with complex infection pattern.
  • the method comprises monitoring by a malware detection system execution of processes or threads of one or more software objects on a computer.
  • the system determines if the one or more objects are trusted objects by computing digital signatures of the objects and checking if the digital signatures are associated with trusted objects. If the objects are trusted, the system discontinues monitoring of one or more processes or threads of the trusted object. If the one or more objects are not trusted, the system stores in a plurality of separate object contexts events of execution of the monitored processes or threads of each non-trusted object. The system then separately analyzes events of the execution of the monitored process or thread stored in each object context using malware behavior rules to identify malicious objects.
  • the system determines if the monitored processes or threads are related to each other and merges contexts of related processes or threads into a common context. The system then analyzes the events stored in the common context using malware behavior rules to identify malicious objects having complex behavior.
  • FIG. 1 illustrates a schematic diagram of a malware detection system according to one example embodiment.
  • FIG. 2 illustrates an example of context merging for related processes implemented by the malware detection system according to one example embodiment.
  • FIGS. 3A-B illustrate the algorithm of operation of the malware detection system according to one example embodiment.
  • FIG. 4 illustrates a schematic diagram of a computer system according to one example embodiment.
  • Example embodiments of the present invention are described herein in the context of systems, methods and computer program products for detection of computer malware. Those of ordinary skill in the art will realize that the following description is illustrative only and is not intended to be in any way limiting. Other embodiments will readily suggest themselves to those skilled in the art having the benefit of this disclosure. Reference will now be made in detail to implementations of the example embodiments of the invention as illustrated in the accompanying drawings. The same reference indicators will be used to the extent possible throughout the drawings and the following description to refer to the same or like items.
  • FIG. 1 illustrates one example embodiment of a malware detection system.
  • the system may be implemented on a personal computer, server, network router, mobile phone or other electronic device that need protection from computer malware (commonly referred herein as a computer).
  • the system 100 monitors execution of processes and threads launched on the computer by various software objects 101 , such as programs, files, scripts, dynamic link libraries, etc., in order to detect malicious objects.
  • the monitored object 101 may include an executable file containing command code that is located in the computer storage space, such as hard disk drive or random access memory of the computer.
  • a process is a container in which the command code of the object 101 (e.g., executable file) is executed.
  • the process has virtual address space where its runtime data is stored and where related dynamic libraries DLL (dynamic-link library) are mapped.
  • a process may have multiple threads of execution.
  • the object's code is executed within the process threads.
  • Each process may be associated to one or more objects 101 . This means that if a process or a thread performs malicious actions on the computer, then the process-launching object 101 is also malicious.
  • the malware detection system 100 includes an analysis tool 102 , which, when a new process is launched on a computer, checks the parameters of the object 101 , from which the given process was launched, by using the available operating system tools and/or a digital signature of the process-launching object 101 .
  • a parameter of the object 101 for example, the checksum of the process-launching object 101 or the code checksum of the executable file in the virtual memory can be taken.
  • the analysis tool 102 compares the parameters of inspected object 101 with the parameters of the trusted objects located in a local storage of trusted objects 109 .
  • the analysis tool 102 may check the digital signature of object 101 .
  • Digital signature is an electronic security mark which is provided by certification authority and added to the file.
  • the analysis tool 102 establishes the trustability of the process-launching object 101 by using trusted object parameters, including the parameters of digitally signed objects stored in local storage 109 .
  • the local storage 109 can contain parameters of the most common objects only.
  • the analysis tool 102 may send a query to a remote antivirus server (not shown) via a network 110 , such as the Internet.
  • the antivirus server may maintain a full set of parameters of known malicious and trusted objects and can provide that information to the analysis tool 102 .
  • a trusted object is an object that is known to be harmless to the computer and, therefore, it is not necessary to perform any additional malware detection actions on the trusted object as well as the processes and threads launched from that object. If however the object is not trusted, i.e. the analysis tool 102 has not found the inspected object 101 in the list of trusted objects, there is a possibility that both the object and the process it launches are harmful or malicious. Therefore, non-trusted objects 101 (also referred herein as suspicious or potentially malicious objects) are continued to be monitored by the system 100 in order to prevent malicious actions of the processes launched from these objects.
  • the analysis tool 102 sends the inspected object data 101 to the context compilation tool 103 , which compiles a context for this object.
  • the context is a log of events initiated by the processes (or threads) launched by the inspected object 101 .
  • the context compilation tool 103 may generate a separate context for each monitored, non-trusted object 101 .
  • the context compilation tool 103 may store generated context in a context storage 104 , which may be implemented in a random access memory or permanent memory of the computer.
  • the events added by the context compilation tool 103 to the object contexts may include, but are not limited to new object creation event, modification of existing object event, process launch event, alteration of system register parameters event, establishment of network connection event, and other types of events.
  • the analytical tool 102 may send a notification to the context compilation tool 103 .
  • This notification contains at least the identifier of the process-launching object, such as object checksum. It also contains the event type, such as an object modification, and the identifier of the object, to which the event is referred, such as the checksum of the modified object.
  • the context compilation tool 103 may save this information in the context of the analyzed object 101 in the context storage 104 .
  • the context compilation tool 103 uses a context merging mechanism illustrated in FIG. 2 .
  • the context merging mechanism i.e. the mechanism creating a common context for multiple non-trusted objects whose individual behavior does not appear malicious, is used in the case when the relation between several objects or their processes is identified in the process of their execution.
  • the relation between multiple processes launched from different objects arises in the case when one process is initiated from another (i.e., parent-child relationship), it creates a new object from which a new process is initiated, or it embeds a thread into the initiated process.
  • the processes are related, and not only the actions that have arisen at the execution of certain processes are analyzed, but also the cumulative actions of the related processes launched from different objects. Similar situation arises, for example, when the multi-component malware or other malware with complex infection pattern infects the computer.
  • a process-launching object 101 may create and launch another object.
  • the context compilation tool 103 upon appearance in the system of the first process 201 that is not related to the trusted object, the context compilation tool 103 generates the context 203 in the context storage 104 .
  • This context 203 contains data about the events initiated (Event 1 . 1 -Event 1 . 3 ) during execution of process 201 .
  • an event may be generated that creates and launches a new object and this event initiates a new process 202 .
  • the context compilation tool 103 When a new process 202 is launched, the context compilation tool 103 generates a separate context 204 for recording of events generated by the process 202 .
  • the context compilation tool 103 may determinate if the new process 202 relates to any other monitored process, such as process 201 .
  • the context compilation tool 103 may generate a new separate, common context 205 which will contain all events arising during the execution of the first process 201 and the second process 202 . Hence, upon the appearance of potentially harmful events, they will come to the common context 205 as well as to the individual contexts 203 or 204 of the process-launching object(s) 101 that has resulted in potentially harmful events during its execution.
  • the context compilation tool 103 updates the context of the new object and the common context 205 with the events generated during execution of the process launched from the new object.
  • the context compilation tool 103 may create large number of different contexts for various related objects and store these contexts in context storage 104 .
  • a context analysis tool 105 is configured to independently analyze each context in context storage 104 for presence of malware.
  • the context analysis tool 105 analyzes whether object is harmful or not based on the object's behavior during the execution of its process(s), which are recorded as events in the object context(s) in storage 104 . More specifically, the analysis is performed on the basis of the behavior rules stored in rule storage 107 .
  • the behavior rules identify behaviors of various known types of malware, such as viruses, worms, Trojans, spam, bots, spoofers, etc.
  • the object behavior implies a set of actions taken during the execution of the process launched from the inspected object 101 .
  • the context analysis tool 105 comes to a conclusion regarding the harmfulness of the inspected object 101 based on its context(s).
  • the analysis of object contexts is repeated at every appearance of a new event in the contexts or in the case when after a new event has appeared the context analysis tool 105 detects harmfulness of the object; then the context analysis tool sends the information about this object to the antivirus tool 106 .
  • the antivirus tool 106 may take appropriate remedial actions, such as terminating the process(s) initiated from the malicious object, and quarantining or deleting the object that had launched the malicious process(s).
  • context 203 and context 204 may fail to identify malicious objects because events of each context may appear harmless or not malicious by themselves; however, analysis of the merged context 205 , which includes combined set of events generated by the related processes 201 and 202 will reveal malicious behavior of these processes.
  • the malware uses a complex infection pattern, i.e. it acts by using several processes, and each process itself is not threatening or non-malicious, but their cumulative activity may be harmful to the computer.
  • the antivirus tool 106 may disable the executions of the detected processes and delete all objects related to them.
  • one process 203 may perform the sequence of operations that initiates a new process or activates an existing one by, for example, embedding a thread into the existing process 202 ; after that the process 201 may terminate, but process 202 will continue executing.
  • process 201 terminated and its individual context 203 may have been deleted from the storage 104
  • the combined context 205 containing the events of the terminated process 201 and events of the running process 202 remains in the storage 104 and is subject to the analysis by the context analysis tool 105 .
  • This means that the saved sequence of actions of the terminated process 201 can be used in the analysis of the related process 202 to determine its harmfulness and identify all malicious objects even after the termination of their processes.
  • a malware initiates threads in a system process in order to hide its activity, because the system processes are typically considered trusted, they are not checked by antivirus application.
  • the system process can be a process launched from a system file during system operation. Examples of system processes are Svchost.exe (responsible for DLL usage), Winlogon.exe (controls users log in and log out of the system), Services.exe (responsible for start and stop of system services as well as for their interaction), etc.
  • the context compilation tool 103 may register this event; in addition, a separate context containing data of the system process actions and the common context for the related processes is generated by the context compilation tool 103 . From here on, the context analysis tool 105 may monitor the activity of the system process. In case of malicious activity, the context analysis tool 105 can easily detect the way of initiation of malicious thread in the system process and delete the malicious object performing that activity.
  • the context analysis tool 105 is connected to a remote antivirus server (not shown) via network 110 .
  • the tool 105 sends to the antivirus server the identified malware contexts and the related contexts found during analysis of objects 101 .
  • the antivirus server can send on its part a query to the context analysis tool 105 , containing the checksum of the object used for requesting the context.
  • the context analysis tool searches for the object with the received checksum and then forwards this context, along with all related contexts, to the antivirus server.
  • the capability for interaction with the antivirus server is useful, since it allows the antivirus server to perform a comprehensive analysis of different objects contexts obtained from different systems 100 in order to analyze behavior of new kinds of malware and generate new malware behavior rules for use by analysis tools 105 .
  • the system 100 includes an update tool 108 that updates the rules in storage 107 and the trusted object list in storage 109 .
  • the update tool 108 uses computer networks 110 to obtain updates from the antivirus server (not shown).
  • the system 100 implements additional mechanisms that improve its malware detection effectiveness. For example, in some situations system 100 cannot conclusively determine if a non-trusted object 101 is malicious or not based on the current version of malware behavior rules stored in storage 107 in which case, the object 101 may be quarantined by the antivirus tool 106 for a period of time, such as a week or a month, or until a new rule has not been provided by the antivirus server that will enable conclusive determination whether the quarantined object is malicious or not. In addition, the system 100 may store the context of the quarantined object in context storage 104 . It is possible that after a period of time, a new rule may be created by the antivirus server that will allow conclusive identification of the quarantined object as malicious or not.
  • the tool 108 may send the updated rules information to the context analysis tool 105 .
  • the context analysis tool 105 may analyze the previously saved contexts in the context storage 104 . Such a repeated check by using new behavior rules permits to detect new malicious objects that were previously undetectable using old behavior rules. If the context of the quarantined object 101 was identified as malicious based on the new behavior rules, then the context analysis tool 105 may inform the antivirus tool 106 that quarantined object is a malicious, so that appropriate remedial actions can be taken with respect to that object.
  • FIGS. 3A and B illustrate an example algorithm of malware detection.
  • the system 100 may update a list of signatures of trusted object in storage 109 .
  • update tool 108 checks if there are any available rule updates, and updates storage 107 with new malware behavior rules at step 303 . Once rules are updated, the update tool 108 informs the context analysis tool 105 about availability of new rules.
  • the context analysis tool 105 analyzes the contexts previously compiled and stored in the storage 104 using updated rules. If the context storage 104 does not have any previously saved contexts to check, then analysis is not performed.
  • the context analysis tool 105 detects a malicious behavior pattern of a stored context, then the tool 105 sends information about this malicious context to the antivirus tool 106 , which holds a suspicious object in quarantine.
  • the antivirus tool 106 will perform appropriate remedial actions at step 306 .
  • the context analysis tool 105 may send parameters of the identified malicious object, such as object's checksum, to the antivirus server at step 307 .
  • the analysis tool 102 may begin monitoring execution of various processes on the computer at step 308 . As soon as the new process starts, the analysis tool 102 checks the trustability of the process-launching object 101 at step 309 , by for example comparing object's signature with a list of signatures of trusted objects contained in storage 109 . If it is determined at step 310 that the object is trusted, then the system 100 does not collect further information about the object and allows the process initiated by the given object to run on the computer without further inspection. In this case, the system discontinues its operations with respect to this object and its processes.
  • the analysis tool 102 collects the object parameters in step 311 and sends them to the context compilation tool 103 which compiles the context for this object at step 313 .
  • the compiled context is saved in the context storage 104 .
  • the context compilation tool 103 monitors the emerging of suspicious events in the process launched from the inspected object 101 ; for example, such events can be related to the creation and deletion of objects or modifications of the system registry, etc., and may terminate the process if it is conclusively determined to be malicious.
  • the system determines if the monitored process has any related process of threads, by for example identifying events that show a relation between the monitored process and another executed process or thread. Then, at step 315 , the context compilation tool 103 merges the contexts of related objects. A new common context that contains the events of several related processes is stored in the context storage 104 .
  • the context analysis tool 105 Upon adding a new event to the context(s), the context analysis tool 105 analyzes the context at step 316 using malware behavior rules from storage 107 . If at step 317 the context analysis tool 105 does not detect malicious activity of the process, then this process is allowed to continue to run on the computer and the collection and analysis of events of this process continue too at step 314 . If malicious activity is detected at step 317 , the antivirus system 106 terminates that process and all processes related to it at step 318 . Then, as step 319 , the related malware objects are deleted, repairs or quarantined at step 319 . In addition, at step 320 , the context analysis tool 105 sends the malicious object parameters to the antivirus server.
  • FIG. 4 depicts an example embodiment of a computer 5 on which the malware detection system 100 may be implemented.
  • Computer 5 may include one or more processors 15 , memory 20 , one or more hard disk drive(s) 30 , optical drive(s) 35 , serial port(s) 40 , graphics card 45 , audio card 50 and network card(s) 55 connected by system bus 10 .
  • System bus 10 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus and a local bus using any of a variety of known bus architectures.
  • Processor 15 may include one or more Intel® Core 2 Quad 2.33 GHz processors or other type of microprocessor.
  • System memory 20 may include a read-only memory (ROM) 21 and random access memory (RAM) 23 .
  • Memory 20 may be implemented as in DRAM (dynamic RAM), EPROM, EEPROM, Flash or other type of memory architecture.
  • ROM 21 stores a basic input/output system 22 (BIOS), containing the basic routines that help to transfer information between the components of computer system 5 , such as during start-up.
  • BIOS basic input/output system
  • RAM 23 stores operating system 24 (OS), such as Windows® XP Professional or other type of operating system, that is responsible for management and coordination of processes and allocation and sharing of hardware resources in computer system 5 .
  • System memory 20 also stores applications and programs 25 , such as services 306 .
  • System memory 20 also stores various runtime data 26 used by programs 25 .
  • Computer system 5 may further include hard disk drive(s) 30 , such as SATA magnetic hard disk drive (HDD), and optical disk drive(s) 35 for reading from or writing to a removable optical disk, such as a CD-ROM, DVD-ROM or other optical media.
  • Hard disk drive(s) 30 such as SATA magnetic hard disk drive (HDD)
  • optical disk drive(s) 35 for reading from or writing to a removable optical disk, such as a CD-ROM, DVD-ROM or other optical media.
  • Drives 30 and 35 and their associated computer-readable media provide non-volatile storage of computer readable instructions, data structures, applications and program modules/subroutines that implement algorithms and methods disclosed herein.
  • exemplary computer system 5 employs magnetic and optical disks
  • other types of computer readable media that can store data accessible by a computer system 5 , such as magnetic cassettes, flash memory cards, digital video disks, RAMs, ROMs, EPROMs and other types of memory may also be used in alternative embodiments of the computer system.
  • Computer system 5 further includes a plurality of serial ports 40 , such as Universal Serial Bus (USB), for connecting data input device(s) 75 , such as keyboard, mouse, touch pad and other.
  • Serial ports 40 may be also be used to connect data output device(s) 80 , such as printer, scanner and other, as well as other peripheral device(s) 85 , such as external data storage devices and the like.
  • System 5 may also include graphics card 45 , such as nVidia® GeForce® GT 240M or other video card, for interfacing with a monitor 60 or other video reproduction device.
  • System 5 may also include an audio card 50 for reproducing sound via internal or external speakers 65 .
  • system 5 may include network card(s) 55 , such as Ethernet, WiFi, GSM, Bluetooth or other wired, wireless, or cellular network interface for connecting computer system 5 to network 70 , such as the Internet.
  • the algorithms and methods described herein may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored as one or more instructions or code on a non-transitory computer-readable medium.
  • Computer-readable medium includes both computer storage and communication medium that facilitates transfer of a computer program from one place to another.
  • a storage medium may be any available media that can be accessed by a computer.
  • such computer-readable medium can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer.
  • any connection may be termed a computer-readable medium.
  • a computer-readable medium For example, if software is transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave are included in the definition of medium.
  • DSL digital subscriber line

Abstract

Disclosed are systems, methods and computer program products for detection of malware with complex infection patterns. The system provides enhanced protection against malware by identifying potentially harmful software objects, monitoring execution of various processes and threads of potentially harmful objects, compiling contexts of events of execution of the monitored processes and threads, and merging contexts of related processes and threads. Based on the analysis of the individual and merged object contexts using malware behavior rules, the system allows detection of malicious objects that have simple and complex behavior patterns.

Description

TECHNICAL FIELD
The present invention relates to the field of computer security and, in particular, to systems and methods for computer protection from malware with complex infection patterns.
BACKGROUND
Computer malware, such as viruses, worms and Trojan horses, present significant security threats to computer systems and networks. To combat the ever increasing spread of computer malware, a large number of antivirus detection techniques were developed. However, not all malware detection methods are effective in protecting computers against malware; especially when the malware is specifically designed to bypass these detection methods.
In the simplest case, a malware can be a single component or object, for example an executable file that, if launched, performs actions that can cause damage to the computer. Common malware detection techniques, such as signature or heuristic analysis, will typically detect single component malware. However, more complex malware consists of multiple components, with each component performing certain actions; for example, one component may perform actions with files, the second component may modify system registry, and the third component may perform networking functions. Furthermore, each component by itself may not perform malicious actions, but if their actions are combined, they can cause damage to the computer. The common malware detection methods may not be effective in detecting of such multi-component malware with complex infection pattern.
Accordingly, there is a need for a new technique for detection of malware having complex infection patterns.
SUMMARY
Disclosed are systems, methods and computer program products for detection of computer malware. In one example embodiment, the method comprises monitoring by a malware detection system execution of processes or threads of one or more software objects on a computer. The system than determines if the one or more objects are trusted objects by computing digital signatures of the objects and checking if the digital signatures are associated with trusted objects. If the objects are trusted, the system discontinues monitoring of one or more processes or threads of the trusted object. If the one or more objects are not trusted, the system stores in a plurality of separate object contexts events of execution of the monitored processes or threads of each non-trusted object. The system then separately analyzes events of the execution of the monitored process or thread stored in each object context using malware behavior rules to identify malicious objects. If the events of execution of the monitored process or thread in separate object contexts are not malicious, the system determines if the monitored processes or threads are related to each other and merges contexts of related processes or threads into a common context. The system then analyzes the events stored in the common context using malware behavior rules to identify malicious objects having complex behavior.
The above simplified summary of example embodiments of the invention serves to provide a basic understanding of such embodiments. This summary is not an extensive overview of all contemplated aspects of the invention, and is intended to neither identify key or critical elements of all embodiments nor delineate the scope of any or all embodiments. Its sole purpose is to present some concepts of one or more aspects in a simplified form as a prelude to the more detailed description that follows. To the accomplishment of the foregoing and related ends, the one or more embodiments comprise the features hereinafter fully described and particularly pointed out in the claims. The following description and the annexed drawings set forth in detail certain illustrative features of the one or more embodiments. These features are indicative, however, of but a few of the various ways in which the principles of various aspects of the invention may be employed, and this description is intended to include all such aspects of the invention and their equivalents.
BRIEF DESCRIPTION OF THE DRAWINGS
The accompanying drawings, which are incorporated into and constitute a part of this specification, illustrate one or more example embodiments of the invention and, together with the detailed description serve to explain their principles and implementations.
In the drawings:
FIG. 1 illustrates a schematic diagram of a malware detection system according to one example embodiment.
FIG. 2 illustrates an example of context merging for related processes implemented by the malware detection system according to one example embodiment.
FIGS. 3A-B illustrate the algorithm of operation of the malware detection system according to one example embodiment.
FIG. 4 illustrates a schematic diagram of a computer system according to one example embodiment.
DETAILED DESCRIPTION OF EXAMPLE EMBODIMENTS
Example embodiments of the present invention are described herein in the context of systems, methods and computer program products for detection of computer malware. Those of ordinary skill in the art will realize that the following description is illustrative only and is not intended to be in any way limiting. Other embodiments will readily suggest themselves to those skilled in the art having the benefit of this disclosure. Reference will now be made in detail to implementations of the example embodiments of the invention as illustrated in the accompanying drawings. The same reference indicators will be used to the extent possible throughout the drawings and the following description to refer to the same or like items.
FIG. 1 illustrates one example embodiment of a malware detection system. The system may be implemented on a personal computer, server, network router, mobile phone or other electronic device that need protection from computer malware (commonly referred herein as a computer). In general, the system 100 monitors execution of processes and threads launched on the computer by various software objects 101, such as programs, files, scripts, dynamic link libraries, etc., in order to detect malicious objects. In one example embodiment, the monitored object 101 may include an executable file containing command code that is located in the computer storage space, such as hard disk drive or random access memory of the computer. When the object 101 is launched, it creates a process in system memory. A process is a container in which the command code of the object 101 (e.g., executable file) is executed. The process has virtual address space where its runtime data is stored and where related dynamic libraries DLL (dynamic-link library) are mapped. A process may have multiple threads of execution. The object's code is executed within the process threads. Each process may be associated to one or more objects 101. This means that if a process or a thread performs malicious actions on the computer, then the process-launching object 101 is also malicious.
In one example embodiment, the malware detection system 100 includes an analysis tool 102, which, when a new process is launched on a computer, checks the parameters of the object 101, from which the given process was launched, by using the available operating system tools and/or a digital signature of the process-launching object 101. As a parameter of the object 101, for example, the checksum of the process-launching object 101 or the code checksum of the executable file in the virtual memory can be taken. At the first stage, the analysis tool 102 compares the parameters of inspected object 101 with the parameters of the trusted objects located in a local storage of trusted objects 109. In addition, the analysis tool 102 may check the digital signature of object 101. Digital signature is an electronic security mark which is provided by certification authority and added to the file. Thus, upon the process launch, the analysis tool 102 establishes the trustability of the process-launching object 101 by using trusted object parameters, including the parameters of digitally signed objects stored in local storage 109.
In one example embodiment, the local storage 109 can contain parameters of the most common objects only. In this case, if the analysis tool 102 is unable to find the object parameters in the storage 109, it may send a query to a remote antivirus server (not shown) via a network 110, such as the Internet. The antivirus server may maintain a full set of parameters of known malicious and trusted objects and can provide that information to the analysis tool 102.
In one example embodiment, a trusted object is an object that is known to be harmless to the computer and, therefore, it is not necessary to perform any additional malware detection actions on the trusted object as well as the processes and threads launched from that object. If however the object is not trusted, i.e. the analysis tool 102 has not found the inspected object 101 in the list of trusted objects, there is a possibility that both the object and the process it launches are harmful or malicious. Therefore, non-trusted objects 101 (also referred herein as suspicious or potentially malicious objects) are continued to be monitored by the system 100 in order to prevent malicious actions of the processes launched from these objects.
In particular, if the inspected object 101 is not trusted, then the analysis tool 102 sends the inspected object data 101 to the context compilation tool 103, which compiles a context for this object. In one example embodiment, the context is a log of events initiated by the processes (or threads) launched by the inspected object 101. In particular, the context compilation tool 103 may generate a separate context for each monitored, non-trusted object 101. The context compilation tool 103 may store generated context in a context storage 104, which may be implemented in a random access memory or permanent memory of the computer.
The events added by the context compilation tool 103 to the object contexts may include, but are not limited to new object creation event, modification of existing object event, process launch event, alteration of system register parameters event, establishment of network connection event, and other types of events.
In one example embodiment, in case of detection of potentially harmful events, such as modifications to system registry and attempts to create or modify executable files, such as .exe files, scripts, batch files, and so on, the analytical tool 102 may send a notification to the context compilation tool 103. This notification contains at least the identifier of the process-launching object, such as object checksum. It also contains the event type, such as an object modification, and the identifier of the object, to which the event is referred, such as the checksum of the modified object. Upon receiving the process event notification, the context compilation tool 103 may save this information in the context of the analyzed object 101 in the context storage 104.
The information collected is used further to detect malicious objects on the computer. In one example embodiment, during its operation, the context compilation tool 103 uses a context merging mechanism illustrated in FIG. 2. The context merging mechanism, i.e. the mechanism creating a common context for multiple non-trusted objects whose individual behavior does not appear malicious, is used in the case when the relation between several objects or their processes is identified in the process of their execution. In order to analyze the general security threat for the computer in this case, it may be desirable to analyze the cumulative actions of the processes launched from different, but related, non-trusted objects. For example, the relation between multiple processes launched from different objects arises in the case when one process is initiated from another (i.e., parent-child relationship), it creates a new object from which a new process is initiated, or it embeds a thread into the initiated process. In such situations, the processes are related, and not only the actions that have arisen at the execution of certain processes are analyzed, but also the cumulative actions of the related processes launched from different objects. Similar situation arises, for example, when the multi-component malware or other malware with complex infection pattern infects the computer.
As an example, a process-launching object 101 may create and launch another object. In this case, upon appearance in the system of the first process 201 that is not related to the trusted object, the context compilation tool 103 generates the context 203 in the context storage 104. This context 203 contains data about the events initiated (Event 1.1-Event 1.3) during execution of process 201. At some point during execution of process 201, an event may be generated that creates and launches a new object and this event initiates a new process 202.
When a new process 202 is launched, the context compilation tool 103 generates a separate context 204 for recording of events generated by the process 202. In one example embodiment, the context compilation tool 103 may determinate if the new process 202 relates to any other monitored process, such as process 201. In case processes 201 and 202 are related to each other, the context compilation tool 103 may generate a new separate, common context 205 which will contain all events arising during the execution of the first process 201 and the second process 202. Hence, upon the appearance of potentially harmful events, they will come to the common context 205 as well as to the individual contexts 203 or 204 of the process-launching object(s) 101 that has resulted in potentially harmful events during its execution.
As indicated above, there can be many different relations between objects/processes, and, upon detection of new related objects, the context compilation tool 103 updates the context of the new object and the common context 205 with the events generated during execution of the process launched from the new object. In particular, when a new event is detected, it is recorded in one (in the case of a single object) or several (in the case of related objects) contexts in the context storage 104. In this manner, the context compilation tool 103 may create large number of different contexts for various related objects and store these contexts in context storage 104.
In one example embodiment, a context analysis tool 105 is configured to independently analyze each context in context storage 104 for presence of malware. In particular, the context analysis tool 105 analyzes whether object is harmful or not based on the object's behavior during the execution of its process(s), which are recorded as events in the object context(s) in storage 104. More specifically, the analysis is performed on the basis of the behavior rules stored in rule storage 107. The behavior rules identify behaviors of various known types of malware, such as viruses, worms, Trojans, spam, bots, spoofers, etc. The object behavior implies a set of actions taken during the execution of the process launched from the inspected object 101. As a result of its operation, the context analysis tool 105 comes to a conclusion regarding the harmfulness of the inspected object 101 based on its context(s).
In one example embodiment, the analysis of object contexts is repeated at every appearance of a new event in the contexts or in the case when after a new event has appeared the context analysis tool 105 detects harmfulness of the object; then the context analysis tool sends the information about this object to the antivirus tool 106. The antivirus tool 106 may take appropriate remedial actions, such as terminating the process(s) initiated from the malicious object, and quarantining or deleting the object that had launched the malicious process(s).
It is possible that independent analysis of context 203 and context 204 may fail to identify malicious objects because events of each context may appear harmless or not malicious by themselves; however, analysis of the merged context 205, which includes combined set of events generated by the related processes 201 and 202 will reveal malicious behavior of these processes. This means that the malware uses a complex infection pattern, i.e. it acts by using several processes, and each process itself is not threatening or non-malicious, but their cumulative activity may be harmful to the computer. In this case, the antivirus tool 106 may disable the executions of the detected processes and delete all objects related to them.
In another example, one process 203 may perform the sequence of operations that initiates a new process or activates an existing one by, for example, embedding a thread into the existing process 202; after that the process 201 may terminate, but process 202 will continue executing. Although process 201 terminated and its individual context 203 may have been deleted from the storage 104, the combined context 205 containing the events of the terminated process 201 and events of the running process 202 remains in the storage 104 and is subject to the analysis by the context analysis tool 105. This means that the saved sequence of actions of the terminated process 201 can be used in the analysis of the related process 202 to determine its harmfulness and identify all malicious objects even after the termination of their processes.
Often, a malware initiates threads in a system process in order to hide its activity, because the system processes are typically considered trusted, they are not checked by antivirus application. The system process can be a process launched from a system file during system operation. Examples of system processes are Svchost.exe (responsible for DLL usage), Winlogon.exe (controls users log in and log out of the system), Services.exe (responsible for start and stop of system services as well as for their interaction), etc. However, if a thread is initiated in the system process, then the context compilation tool 103 may register this event; in addition, a separate context containing data of the system process actions and the common context for the related processes is generated by the context compilation tool 103. From here on, the context analysis tool 105 may monitor the activity of the system process. In case of malicious activity, the context analysis tool 105 can easily detect the way of initiation of malicious thread in the system process and delete the malicious object performing that activity.
In one example embodiment, the context analysis tool 105 is connected to a remote antivirus server (not shown) via network 110. The tool 105 sends to the antivirus server the identified malware contexts and the related contexts found during analysis of objects 101. In addition, the antivirus server can send on its part a query to the context analysis tool 105, containing the checksum of the object used for requesting the context. In this case, the context analysis tool searches for the object with the received checksum and then forwards this context, along with all related contexts, to the antivirus server. The capability for interaction with the antivirus server is useful, since it allows the antivirus server to perform a comprehensive analysis of different objects contexts obtained from different systems 100 in order to analyze behavior of new kinds of malware and generate new malware behavior rules for use by analysis tools 105.
In one example embodiment, the system 100 includes an update tool 108 that updates the rules in storage 107 and the trusted object list in storage 109. The update tool 108 uses computer networks 110 to obtain updates from the antivirus server (not shown).
In various embodiments, the system 100 implements additional mechanisms that improve its malware detection effectiveness. For example, in some situations system 100 cannot conclusively determine if a non-trusted object 101 is malicious or not based on the current version of malware behavior rules stored in storage 107 in which case, the object 101 may be quarantined by the antivirus tool 106 for a period of time, such as a week or a month, or until a new rule has not been provided by the antivirus server that will enable conclusive determination whether the quarantined object is malicious or not. In addition, the system 100 may store the context of the quarantined object in context storage 104. It is possible that after a period of time, a new rule may be created by the antivirus server that will allow conclusive identification of the quarantined object as malicious or not. Thus, after the rules storage 107 has been updated by update tool 108, the tool 108 may send the updated rules information to the context analysis tool 105. In turn, the context analysis tool 105 may analyze the previously saved contexts in the context storage 104. Such a repeated check by using new behavior rules permits to detect new malicious objects that were previously undetectable using old behavior rules. If the context of the quarantined object 101 was identified as malicious based on the new behavior rules, then the context analysis tool 105 may inform the antivirus tool 106 that quarantined object is a malicious, so that appropriate remedial actions can be taken with respect to that object.
FIGS. 3A and B illustrate an example algorithm of malware detection. At step 301, the system 100 may update a list of signatures of trusted object in storage 109. At step 302, update tool 108 checks if there are any available rule updates, and updates storage 107 with new malware behavior rules at step 303. Once rules are updated, the update tool 108 informs the context analysis tool 105 about availability of new rules. At step 304, the context analysis tool 105 analyzes the contexts previously compiled and stored in the storage 104 using updated rules. If the context storage 104 does not have any previously saved contexts to check, then analysis is not performed. If at step 305 the context analysis tool 105 detects a malicious behavior pattern of a stored context, then the tool 105 sends information about this malicious context to the antivirus tool 106, which holds a suspicious object in quarantine. The antivirus tool 106 will perform appropriate remedial actions at step 306. In addition, the context analysis tool 105 may send parameters of the identified malicious object, such as object's checksum, to the antivirus server at step 307.
Once the trusted object list and the rule database have been updated at steps 301-307, the analysis tool 102 may begin monitoring execution of various processes on the computer at step 308. As soon as the new process starts, the analysis tool 102 checks the trustability of the process-launching object 101 at step 309, by for example comparing object's signature with a list of signatures of trusted objects contained in storage 109. If it is determined at step 310 that the object is trusted, then the system 100 does not collect further information about the object and allows the process initiated by the given object to run on the computer without further inspection. In this case, the system discontinues its operations with respect to this object and its processes.
If however the object 101 was not found in the trusted object list 109, this means that the inspected object 101 may be malicious. Then, the analysis tool 102 collects the object parameters in step 311 and sends them to the context compilation tool 103 which compiles the context for this object at step 313. The compiled context is saved in the context storage 104. After that, the context compilation tool 103 monitors the emerging of suspicious events in the process launched from the inspected object 101; for example, such events can be related to the creation and deletion of objects or modifications of the system registry, etc., and may terminate the process if it is conclusively determined to be malicious. If however, the process cannot be identified as malicious, at step 314, the system determines if the monitored process has any related process of threads, by for example identifying events that show a relation between the monitored process and another executed process or thread. Then, at step 315, the context compilation tool 103 merges the contexts of related objects. A new common context that contains the events of several related processes is stored in the context storage 104.
Upon adding a new event to the context(s), the context analysis tool 105 analyzes the context at step 316 using malware behavior rules from storage 107. If at step 317 the context analysis tool 105 does not detect malicious activity of the process, then this process is allowed to continue to run on the computer and the collection and analysis of events of this process continue too at step 314. If malicious activity is detected at step 317, the antivirus system 106 terminates that process and all processes related to it at step 318. Then, as step 319, the related malware objects are deleted, repairs or quarantined at step 319. In addition, at step 320, the context analysis tool 105 sends the malicious object parameters to the antivirus server.
FIG. 4 depicts an example embodiment of a computer 5 on which the malware detection system 100 may be implemented. Computer 5 may include one or more processors 15, memory 20, one or more hard disk drive(s) 30, optical drive(s) 35, serial port(s) 40, graphics card 45, audio card 50 and network card(s) 55 connected by system bus 10. System bus 10 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus and a local bus using any of a variety of known bus architectures. Processor 15 may include one or more Intel® Core 2 Quad 2.33 GHz processors or other type of microprocessor.
System memory 20 may include a read-only memory (ROM) 21 and random access memory (RAM) 23. Memory 20 may be implemented as in DRAM (dynamic RAM), EPROM, EEPROM, Flash or other type of memory architecture. ROM 21 stores a basic input/output system 22 (BIOS), containing the basic routines that help to transfer information between the components of computer system 5, such as during start-up. RAM 23 stores operating system 24 (OS), such as Windows® XP Professional or other type of operating system, that is responsible for management and coordination of processes and allocation and sharing of hardware resources in computer system 5. System memory 20 also stores applications and programs 25, such as services 306. System memory 20 also stores various runtime data 26 used by programs 25.
Computer system 5 may further include hard disk drive(s) 30, such as SATA magnetic hard disk drive (HDD), and optical disk drive(s) 35 for reading from or writing to a removable optical disk, such as a CD-ROM, DVD-ROM or other optical media. Drives 30 and 35 and their associated computer-readable media provide non-volatile storage of computer readable instructions, data structures, applications and program modules/subroutines that implement algorithms and methods disclosed herein. Although the exemplary computer system 5 employs magnetic and optical disks, it should be appreciated by those skilled in the art that other types of computer readable media that can store data accessible by a computer system 5, such as magnetic cassettes, flash memory cards, digital video disks, RAMs, ROMs, EPROMs and other types of memory may also be used in alternative embodiments of the computer system.
Computer system 5 further includes a plurality of serial ports 40, such as Universal Serial Bus (USB), for connecting data input device(s) 75, such as keyboard, mouse, touch pad and other. Serial ports 40 may be also be used to connect data output device(s) 80, such as printer, scanner and other, as well as other peripheral device(s) 85, such as external data storage devices and the like. System 5 may also include graphics card 45, such as nVidia® GeForce® GT 240M or other video card, for interfacing with a monitor 60 or other video reproduction device. System 5 may also include an audio card 50 for reproducing sound via internal or external speakers 65. In addition, system 5 may include network card(s) 55, such as Ethernet, WiFi, GSM, Bluetooth or other wired, wireless, or cellular network interface for connecting computer system 5 to network 70, such as the Internet.
In various embodiments, the algorithms and methods described herein may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored as one or more instructions or code on a non-transitory computer-readable medium. Computer-readable medium includes both computer storage and communication medium that facilitates transfer of a computer program from one place to another. A storage medium may be any available media that can be accessed by a computer. By way of example, and not limitation, such computer-readable medium can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer. Also, any connection may be termed a computer-readable medium. For example, if software is transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave are included in the definition of medium.
In the interest of clarity, not all of the routine features of the embodiments are shown and described herein. It will be appreciated that in the development of any such actual implementation, numerous implementation-specific decisions must be made in order to achieve the developer's specific goals, and that these specific goals will vary from one implementation to another and from one developer to another. It will be appreciated that such a development effort might be complex and time-consuming, but would nevertheless be a routine undertaking of engineering for those of ordinary skill in the art having the benefit of this disclosure.
Furthermore, it is to be understood that the phraseology or terminology used herein is for the purpose of description and not of limitation, such that the terminology or phraseology of the present specification is to be interpreted by the skilled in the art in light of the teachings and guidance presented herein, in combination with the knowledge of the skilled in the relevant art(s). Moreover, it is not intended for any term in the specification or claims to be ascribed an uncommon or special meaning unless explicitly set forth as such.
The various embodiments disclosed herein encompass present and future known equivalents to the known components referred to herein by way of illustration. Moreover, while embodiments and applications have been shown and described, it would be apparent to those skilled in the art having the benefit of this disclosure that many more modifications than mentioned above are possible without departing from the inventive concepts disclosed herein.

Claims (20)

1. A method for detection of computer malware, the method comprising:
monitoring execution of processes or threads of one or more software objects;
determining if the one or more objects are trusted objects or non-trusted objects;
storing, in a plurality of separate object contexts, events of execution of the monitored processes or threads of each non-trusted object;
determining if the monitored processes or threads stored in separate object contexts are related to each other;
merging events stored in the object contexts of related processes or threads into a common context; and
analyzing the events of the monitored processes or threads stored both in the common context and in separate object contexts using malware behavior rules to identify malicious objects.
2. The method of claim 1 further comprising:
terminating execution of all processes and threads associated with a malicious object; and
deleting, quarantining or repairing the malicious object.
3. The method of claim 1 further comprising:
determining if the one or more objects are trusted objects by computing digital signatures of the objects and checking if the digital signatures are associated with a trusted object; and
discontinuing monitoring of one or more processes or threads of a trusted object.
4. The method of claim 3, wherein determining if an object is trusted comprises:
comparing the digital signature of the object with a local trusted object storage; and
if the digital signature of the object is not found in the local trusted object storage, sending a query to a remote antivirus server containing a comprehensive database of signatures of known malicious and trusted objects.
5. The method of claim 1, wherein determining if the object is trusted comprises:
computing a checksum of the object; and
querying a remote antivirus server to determine if the checksum associated with a malicious or trusted object.
6. The method of claim 1 further comprising:
transmitting a context of an object to a remote antivirus server; and
receiving from the server new malware behavior rules based on the transmitted context.
7. The method of claim 1 further comprising:
continuing monitoring a trusted object if a process of said trusted objected embedded a thread in a system process; and
storing in a separate object context events of execution of said system process.
8. A system for detection of computer malware, comprising:
a memory being configured to store a list of trusted software objects and malware behavior rules; and
a processor coupled to the memory, the processor being configured to:
monitor execution of processes or threads of one or more software objects;
determine if the one or more objects are trusted objects or non-trusted objects;
store, in a plurality of separate object contexts, events of execution of the monitored processes or threads of each non-trusted object;
determine if the monitored processes or threads stored in separate object contexts are related to each other;
merge events stored in the object contexts of related processes and threads into a common context;
analyze the events of execution of the monitored processes or threads stored both in the common context and in separate object contexts using malware behavior rules to identify malicious objects.
9. The system of claim 8, wherein the processor being further configured to:
terminating execution of all processes and threads associated with a malicious object; and
deleting, quarantining or repairing the malicious object.
10. The system of claim 8, wherein the processor being further configured to:
determine if the one or more objects are trusted objects by computing digital signatures of the objects and comparing the digital signatures with the list of trusted software objects stored in the memory; and
discontinue monitoring of one or more processes or threads of a trusted object.
11. The system of claim 10, wherein if the digital signature of the object is not found in the list of trusted software objects, the processor being further configured to:
send a query to a remote antivirus server containing a comprehensive database of signatures of known malicious and trusted objects.
12. The system of claim 8, wherein to determine if the object is trusted, the computer being further configured to:
compute a checksum of the object; and
query a remote antivirus server to determine if the checksum associated with a malicious or trusted object.
13. The system of claim 8, wherein the processor being further configured to:
transmit a context of an object to a remote antivirus server; and
receive from the server new malware behavior rules based on the transmitted context.
14. The system of claim 8, wherein the processor being further configured to:
continue monitoring a trusted object if a process of said trusted objected embedded a thread in a system process; and
store in a separate object context events of execution of said system process.
15. A computer program product embedded in a non-transitory computer-readable storage medium, the computer-readable storage medium comprising computer-executable instructions for detection of computer malware, the instructions for:
monitoring execution of processes or threads of one or more software objects;
determining if the one or more objects are trusted objects or non-trusted objects;
storing in a plurality of separate object contexts events of execution of the monitored processes or threads of each non-trusted object;
determining if the monitored processes or threads stored in separate object contexts are related to each other;
merging events stored in the object contexts of related processes or threads into a common context; and
analyzing the events of the monitored processes or threads stored both in the common context and in separate object contexts using malware behavior rules to identify malicious objects.
16. The medium of claim 15 further comprising instructions for:
determining if the one or more objects are trusted objects by computing digital signatures of the objects and checking if the digital signatures are associated with a trusted object; and
discontinuing monitoring of one or more processes or threads of a trusted object.
17. The medium of claim 16, wherein instructions for determining if an object is trusted further comprise instructions for:
comparing the digital signature of the object with a local trusted object storage; and
if the digital signature of the object is not found in the local trusted object storage, sending a query to a remote antivirus server containing a comprehensive database of signatures of known malicious and trusted objects.
18. The medium of claim 15, wherein instructions for determining if the object is trusted further comprise instructions for:
computing a checksum of the object; and
querying a remote antivirus server to determine if the checksum associated with a malicious or trusted object.
19. The medium of claim 15 further comprising instructions for:
transmitting a context of an object to a remote antivirus server; and
receiving from the server new malware behavior rules based on the transmitted context.
20. The medium of claim 15 further comprising instructions for:
continuing monitoring a trusted object if a process of said trusted objected embedded a thread in a system process; and
storing in a separate object context events of execution of said system process.
US13/096,227 2011-04-28 2011-04-28 System and method for detection of complex malware Active US8042186B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/096,227 US8042186B1 (en) 2011-04-28 2011-04-28 System and method for detection of complex malware

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/096,227 US8042186B1 (en) 2011-04-28 2011-04-28 System and method for detection of complex malware

Publications (1)

Publication Number Publication Date
US8042186B1 true US8042186B1 (en) 2011-10-18

Family

ID=44773457

Family Applications (1)

Application Number Title Priority Date Filing Date
US13/096,227 Active US8042186B1 (en) 2011-04-28 2011-04-28 System and method for detection of complex malware

Country Status (1)

Country Link
US (1) US8042186B1 (en)

Cited By (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110271343A1 (en) * 2010-04-28 2011-11-03 Electronics And Telecommunications Research Institute Apparatus, system and method for detecting malicious code
US8291500B1 (en) 2012-03-29 2012-10-16 Cyber Engineering Services, Inc. Systems and methods for automated malware artifact retrieval and analysis
CN102768720A (en) * 2012-03-20 2012-11-07 新奥特(北京)视频技术有限公司 Process protection method
CN103294948A (en) * 2012-02-27 2013-09-11 百度在线网络技术(北京)有限公司 Software malicious behavior modeling and judging method and device, and mobile terminal
US20140289851A1 (en) * 2013-03-19 2014-09-25 Trusteer Ltd. Malware Discovery Method and System
US8863288B1 (en) 2011-12-30 2014-10-14 Mantech Advanced Systems International, Inc. Detecting malicious software
WO2014179216A1 (en) * 2013-05-03 2014-11-06 Symantec Corporation Techniques for detecting malicious activity
US9094451B2 (en) 2013-12-05 2015-07-28 Kaspersky Lab Zao System and method for reducing load on an operating system when executing antivirus operations
WO2016024268A1 (en) * 2014-08-11 2016-02-18 Sentinel Labs Israel Ltd. Method of malware detection and system thereof
US9336390B2 (en) 2013-04-26 2016-05-10 AO Kaspersky Lab Selective assessment of maliciousness of software code executed in the address space of a trusted process
US9372989B2 (en) 2013-02-15 2016-06-21 Systems of Information Security 2012 Robust malware detector
JP2016536667A (en) * 2013-10-04 2016-11-24 ビットディフェンダー アイピーアール マネジメント リミテッド Complex scoring for malware detection
US20170185798A1 (en) * 2015-12-28 2017-06-29 Dell Software, Inc. Controlling content modifications by enforcing one or more constraint links
US9813443B1 (en) * 2015-02-13 2017-11-07 Symantec Corporation Systems and methods for remediating the effects of malware
CN107506645A (en) * 2017-08-30 2017-12-22 北京明朝万达科技股份有限公司 A kind of detection method and device for extorting virus
GB2552632A (en) * 2014-09-14 2018-01-31 Sophos Ltd Labeling computing objects for improved threat detection
US9967282B2 (en) 2014-09-14 2018-05-08 Sophos Limited Labeling computing objects for improved threat detection
US9965627B2 (en) 2014-09-14 2018-05-08 Sophos Limited Labeling objects on an endpoint for encryption management
US9967283B2 (en) 2014-09-14 2018-05-08 Sophos Limited Normalized indications of compromise
US9967264B2 (en) 2014-09-14 2018-05-08 Sophos Limited Threat detection using a time-based cache of reputation information on an enterprise endpoint
US9992228B2 (en) 2014-09-14 2018-06-05 Sophos Limited Using indications of compromise for reputation based network security
US10063373B2 (en) 2014-09-14 2018-08-28 Sophos Limited Key management for compromised enterprise endpoints
US10102374B1 (en) 2014-08-11 2018-10-16 Sentinel Labs Israel Ltd. Method of remediating a program and system thereof by undoing operations
US10122687B2 (en) 2014-09-14 2018-11-06 Sophos Limited Firewall techniques for colored objects on endpoints
US10176321B2 (en) 2015-09-22 2019-01-08 Fireeye, Inc. Leveraging behavior-based rules for malware family classification
US10462171B2 (en) 2017-08-08 2019-10-29 Sentinel Labs Israel Ltd. Methods, systems, and devices for dynamically modeling and grouping endpoints for edge networking
US10762200B1 (en) 2019-05-20 2020-09-01 Sentinel Labs Israel Ltd. Systems and methods for executable code detection, automatic feature extraction and position independent code detection
US10965711B2 (en) 2014-09-14 2021-03-30 Sophos Limited Data behavioral tracking
US11507663B2 (en) 2014-08-11 2022-11-22 Sentinel Labs Israel Ltd. Method of remediating operations performed by a program and system thereof
RU2787274C1 (en) * 2022-03-08 2023-01-09 Юрий Иванович Стародубцев Method for ensuring the stable functioning of a complex hardware and software object of a complex functional-dynamic system
US11579857B2 (en) 2020-12-16 2023-02-14 Sentinel Labs Israel Ltd. Systems, methods and devices for device fingerprinting and automatic deployment of software in a computing network using a peer-to-peer approach
US11616812B2 (en) 2016-12-19 2023-03-28 Attivo Networks Inc. Deceiving attackers accessing active directory data
US11695800B2 (en) 2016-12-19 2023-07-04 SentinelOne, Inc. Deceiving attackers accessing network data
US11888897B2 (en) 2018-02-09 2024-01-30 SentinelOne, Inc. Implementing decoys in a network environment
US11899782B1 (en) 2021-07-13 2024-02-13 SentinelOne, Inc. Preserving DLL hooks

Citations (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5440723A (en) 1993-01-19 1995-08-08 International Business Machines Corporation Automatic immune system for computers and computer networks
US20020083334A1 (en) 2000-07-14 2002-06-27 Rogers Antony John Detection of viral code using emulation of operating system functions
US20030233566A1 (en) * 2001-08-01 2003-12-18 Networks Associates Technology, Inc. Malware scanning wireless service agent system and method
US20040025015A1 (en) 2002-01-04 2004-02-05 Internet Security Systems System and method for the managed security control of processes on a computer system
US6775780B1 (en) 2000-03-16 2004-08-10 Networks Associates Technology, Inc. Detecting malicious software by analyzing patterns of system calls generated during emulation
US20050188370A1 (en) * 2000-01-28 2005-08-25 Networks Associates, Inc. System and method for providing application services with controlled access into privileged processes
US6944772B2 (en) 2001-12-26 2005-09-13 D'mitri Dozortsev System and method of enforcing executable code identity verification over the network
US20050240769A1 (en) 2004-04-22 2005-10-27 Gassoway Paul A Methods and systems for computer security
US6973577B1 (en) 2000-05-26 2005-12-06 Mcafee, Inc. System and method for dynamically detecting computer viruses through associative behavioral analysis of runtime state
US20050283838A1 (en) * 2003-02-26 2005-12-22 Secure Ware Inc. Malicious-process-determining method, data processing apparatus and recording medium
US6981279B1 (en) 2000-08-17 2005-12-27 International Business Machines Corporation Method and apparatus for replicating and analyzing worm programs
US20060179484A1 (en) 2005-02-09 2006-08-10 Scrimsher John P Remediating effects of an undesired application
US20070016953A1 (en) * 2005-06-30 2007-01-18 Prevx Limited Methods and apparatus for dealing with malware
US20070067843A1 (en) 2005-09-16 2007-03-22 Sana Security Method and apparatus for removing harmful software
US20070094496A1 (en) * 2005-10-25 2007-04-26 Michael Burtscher System and method for kernel-level pestware management
US20070143843A1 (en) * 2005-12-16 2007-06-21 Eacceleration Corporation Computer virus and malware cleaner
US20070150956A1 (en) 2005-12-28 2007-06-28 Sharma Rajesh K Real time lockdown
US20070199060A1 (en) 2005-12-13 2007-08-23 Shlomo Touboul System and method for providing network security to mobile devices
US20070240221A1 (en) * 2006-04-06 2007-10-11 George Tuvell Non-Signature Malware Detection System and Method for Mobile Platforms
US20070256082A1 (en) * 2006-05-01 2007-11-01 International Business Machines Corporation Monitoring and controlling applications executing in a computing node
US20080016339A1 (en) 2006-06-29 2008-01-17 Jayant Shukla Application Sandbox to Detect, Remove, and Prevent Malware
US20080114957A1 (en) 2005-12-01 2008-05-15 Drive Sentry Inc. System and method to secure a computer system by selective control of write access to a data storage medium
US20080155153A1 (en) * 2006-12-25 2008-06-26 Kenichiro Yoshii Device control apparatus
US20080172563A1 (en) 2007-01-16 2008-07-17 Terry Lee Stokes System and Method for WORM data storage
US7472420B1 (en) * 2008-04-23 2008-12-30 Kaspersky Lab, Zao Method and system for detection of previously unknown malware components
US7472288B1 (en) * 2004-05-14 2008-12-30 Trend Micro Incorporated Protection of processes running in a computer system
US20090037991A1 (en) * 1995-10-25 2009-02-05 Ellis John R Managing transfers of information in a communications network
US7665138B2 (en) 2004-12-27 2010-02-16 Industrial Technology Research Institute Detecting method and architecture thereof for malicious codes
US7698744B2 (en) 2004-12-03 2010-04-13 Whitecell Software Inc. Secure system for allowing the execution of authorized computer program code
US7707620B2 (en) * 2005-05-06 2010-04-27 Cisco Technology, Inc. Method to control and secure setuid/gid executables and processes
US20110023120A1 (en) * 2009-07-23 2011-01-27 Institute For Information Industry Method and system for cleaning malicious software and computer program product and storage medium
US20110083186A1 (en) * 2009-10-07 2011-04-07 F-Secure Oyj Malware detection by application monitoring

Patent Citations (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5440723A (en) 1993-01-19 1995-08-08 International Business Machines Corporation Automatic immune system for computers and computer networks
US20090037991A1 (en) * 1995-10-25 2009-02-05 Ellis John R Managing transfers of information in a communications network
US20050188370A1 (en) * 2000-01-28 2005-08-25 Networks Associates, Inc. System and method for providing application services with controlled access into privileged processes
US6775780B1 (en) 2000-03-16 2004-08-10 Networks Associates Technology, Inc. Detecting malicious software by analyzing patterns of system calls generated during emulation
US6973577B1 (en) 2000-05-26 2005-12-06 Mcafee, Inc. System and method for dynamically detecting computer viruses through associative behavioral analysis of runtime state
US20020083334A1 (en) 2000-07-14 2002-06-27 Rogers Antony John Detection of viral code using emulation of operating system functions
US6981279B1 (en) 2000-08-17 2005-12-27 International Business Machines Corporation Method and apparatus for replicating and analyzing worm programs
US20030233566A1 (en) * 2001-08-01 2003-12-18 Networks Associates Technology, Inc. Malware scanning wireless service agent system and method
US6944772B2 (en) 2001-12-26 2005-09-13 D'mitri Dozortsev System and method of enforcing executable code identity verification over the network
US20040025015A1 (en) 2002-01-04 2004-02-05 Internet Security Systems System and method for the managed security control of processes on a computer system
US20050283838A1 (en) * 2003-02-26 2005-12-22 Secure Ware Inc. Malicious-process-determining method, data processing apparatus and recording medium
US20050240769A1 (en) 2004-04-22 2005-10-27 Gassoway Paul A Methods and systems for computer security
US7472288B1 (en) * 2004-05-14 2008-12-30 Trend Micro Incorporated Protection of processes running in a computer system
US7698744B2 (en) 2004-12-03 2010-04-13 Whitecell Software Inc. Secure system for allowing the execution of authorized computer program code
US7665138B2 (en) 2004-12-27 2010-02-16 Industrial Technology Research Institute Detecting method and architecture thereof for malicious codes
US20060179484A1 (en) 2005-02-09 2006-08-10 Scrimsher John P Remediating effects of an undesired application
US7707620B2 (en) * 2005-05-06 2010-04-27 Cisco Technology, Inc. Method to control and secure setuid/gid executables and processes
US20070016953A1 (en) * 2005-06-30 2007-01-18 Prevx Limited Methods and apparatus for dealing with malware
US20070067843A1 (en) 2005-09-16 2007-03-22 Sana Security Method and apparatus for removing harmful software
US20070094496A1 (en) * 2005-10-25 2007-04-26 Michael Burtscher System and method for kernel-level pestware management
US20080114957A1 (en) 2005-12-01 2008-05-15 Drive Sentry Inc. System and method to secure a computer system by selective control of write access to a data storage medium
US20070199060A1 (en) 2005-12-13 2007-08-23 Shlomo Touboul System and method for providing network security to mobile devices
US7836500B2 (en) * 2005-12-16 2010-11-16 Eacceleration Corporation Computer virus and malware cleaner
US20070143843A1 (en) * 2005-12-16 2007-06-21 Eacceleration Corporation Computer virus and malware cleaner
US20070150956A1 (en) 2005-12-28 2007-06-28 Sharma Rajesh K Real time lockdown
US20070240221A1 (en) * 2006-04-06 2007-10-11 George Tuvell Non-Signature Malware Detection System and Method for Mobile Platforms
US20070256082A1 (en) * 2006-05-01 2007-11-01 International Business Machines Corporation Monitoring and controlling applications executing in a computing node
US20080016339A1 (en) 2006-06-29 2008-01-17 Jayant Shukla Application Sandbox to Detect, Remove, and Prevent Malware
US20080155153A1 (en) * 2006-12-25 2008-06-26 Kenichiro Yoshii Device control apparatus
US20080172563A1 (en) 2007-01-16 2008-07-17 Terry Lee Stokes System and Method for WORM data storage
US7472420B1 (en) * 2008-04-23 2008-12-30 Kaspersky Lab, Zao Method and system for detection of previously unknown malware components
US20110023120A1 (en) * 2009-07-23 2011-01-27 Institute For Information Industry Method and system for cleaning malicious software and computer program product and storage medium
US20110083186A1 (en) * 2009-10-07 2011-04-07 F-Secure Oyj Malware detection by application monitoring

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Koike, R. et al., "Development of System for the Automatic Generation of Unknown Virus Extermination Software", Proceedings of the 2007 International Symposium on Applications and the Internet (SAINT '07), pp. 1-7.

Cited By (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8955124B2 (en) * 2010-04-28 2015-02-10 Electronics And Telecommunications Research Institute Apparatus, system and method for detecting malicious code
US20110271343A1 (en) * 2010-04-28 2011-11-03 Electronics And Telecommunications Research Institute Apparatus, system and method for detecting malicious code
US8863288B1 (en) 2011-12-30 2014-10-14 Mantech Advanced Systems International, Inc. Detecting malicious software
CN103294948A (en) * 2012-02-27 2013-09-11 百度在线网络技术(北京)有限公司 Software malicious behavior modeling and judging method and device, and mobile terminal
CN102768720A (en) * 2012-03-20 2012-11-07 新奥特(北京)视频技术有限公司 Process protection method
US8291500B1 (en) 2012-03-29 2012-10-16 Cyber Engineering Services, Inc. Systems and methods for automated malware artifact retrieval and analysis
US8850585B2 (en) 2012-03-29 2014-09-30 Cyber Engineering Services, Inc. Systems and methods for automated malware artifact retrieval and analysis
US9372989B2 (en) 2013-02-15 2016-06-21 Systems of Information Security 2012 Robust malware detector
US9330259B2 (en) * 2013-03-19 2016-05-03 Trusteer, Ltd. Malware discovery method and system
US20140289851A1 (en) * 2013-03-19 2014-09-25 Trusteer Ltd. Malware Discovery Method and System
US9336390B2 (en) 2013-04-26 2016-05-10 AO Kaspersky Lab Selective assessment of maliciousness of software code executed in the address space of a trusted process
WO2014179216A1 (en) * 2013-05-03 2014-11-06 Symantec Corporation Techniques for detecting malicious activity
US9141795B2 (en) 2013-05-03 2015-09-22 Symantec Corporation Techniques for detecting malicious activity
JP2016536667A (en) * 2013-10-04 2016-11-24 ビットディフェンダー アイピーアール マネジメント リミテッド Complex scoring for malware detection
US9094451B2 (en) 2013-12-05 2015-07-28 Kaspersky Lab Zao System and method for reducing load on an operating system when executing antivirus operations
US9710648B2 (en) 2014-08-11 2017-07-18 Sentinel Labs Israel Ltd. Method of malware detection and system thereof
US11886591B2 (en) 2014-08-11 2024-01-30 Sentinel Labs Israel Ltd. Method of remediating operations performed by a program and system thereof
WO2016024268A1 (en) * 2014-08-11 2016-02-18 Sentinel Labs Israel Ltd. Method of malware detection and system thereof
US10102374B1 (en) 2014-08-11 2018-10-16 Sentinel Labs Israel Ltd. Method of remediating a program and system thereof by undoing operations
US11625485B2 (en) 2014-08-11 2023-04-11 Sentinel Labs Israel Ltd. Method of malware detection and system thereof
US10664596B2 (en) 2014-08-11 2020-05-26 Sentinel Labs Israel Ltd. Method of malware detection and system thereof
US10977370B2 (en) 2014-08-11 2021-04-13 Sentinel Labs Israel Ltd. Method of remediating operations performed by a program and system thereof
US10417424B2 (en) 2014-08-11 2019-09-17 Sentinel Labs Israel Ltd. Method of remediating operations performed by a program and system thereof
US11507663B2 (en) 2014-08-11 2022-11-22 Sentinel Labs Israel Ltd. Method of remediating operations performed by a program and system thereof
GB2552632A (en) * 2014-09-14 2018-01-31 Sophos Ltd Labeling computing objects for improved threat detection
GB2552632B (en) * 2014-09-14 2018-05-09 Sophos Ltd Labeling computing objects for improved threat detection
US9992228B2 (en) 2014-09-14 2018-06-05 Sophos Limited Using indications of compromise for reputation based network security
US10063373B2 (en) 2014-09-14 2018-08-28 Sophos Limited Key management for compromised enterprise endpoints
US20180278649A1 (en) * 2014-09-14 2018-09-27 Sophos Limited Labeling computing objects for improved threat detection
US9967264B2 (en) 2014-09-14 2018-05-08 Sophos Limited Threat detection using a time-based cache of reputation information on an enterprise endpoint
US10122687B2 (en) 2014-09-14 2018-11-06 Sophos Limited Firewall techniques for colored objects on endpoints
US9967283B2 (en) 2014-09-14 2018-05-08 Sophos Limited Normalized indications of compromise
US10225286B2 (en) 2014-09-14 2019-03-05 Sophos Limited Using indications of compromise for reputation based network security
US10382459B2 (en) 2014-09-14 2019-08-13 Sophos Limited Threat detection using a time-based cache of reputation information on an enterprise endpoint
US9965627B2 (en) 2014-09-14 2018-05-08 Sophos Limited Labeling objects on an endpoint for encryption management
US11140130B2 (en) 2014-09-14 2021-10-05 Sophos Limited Firewall techniques for colored objects on endpoints
US10516531B2 (en) 2014-09-14 2019-12-24 Sophos Limited Key management for compromised enterprise endpoints
US10558800B2 (en) 2014-09-14 2020-02-11 Sophos Limited Labeling objects on an endpoint for encryption management
US9967282B2 (en) 2014-09-14 2018-05-08 Sophos Limited Labeling computing objects for improved threat detection
US10841339B2 (en) 2014-09-14 2020-11-17 Sophos Limited Normalized indications of compromise
US10673902B2 (en) * 2014-09-14 2020-06-02 Sophos Limited Labeling computing objects for improved threat detection
US10965711B2 (en) 2014-09-14 2021-03-30 Sophos Limited Data behavioral tracking
US10778725B2 (en) 2014-09-14 2020-09-15 Sophos Limited Using indications of compromise for reputation based network security
US9813443B1 (en) * 2015-02-13 2017-11-07 Symantec Corporation Systems and methods for remediating the effects of malware
US10176321B2 (en) 2015-09-22 2019-01-08 Fireeye, Inc. Leveraging behavior-based rules for malware family classification
US20170185798A1 (en) * 2015-12-28 2017-06-29 Dell Software, Inc. Controlling content modifications by enforcing one or more constraint links
US10628602B2 (en) * 2015-12-28 2020-04-21 Quest Software Inc. Controlling content modifications by enforcing one or more constraint links
US11695800B2 (en) 2016-12-19 2023-07-04 SentinelOne, Inc. Deceiving attackers accessing network data
US11616812B2 (en) 2016-12-19 2023-03-28 Attivo Networks Inc. Deceiving attackers accessing active directory data
US11245715B2 (en) 2017-08-08 2022-02-08 Sentinel Labs Israel Ltd. Methods, systems, and devices for dynamically modeling and grouping endpoints for edge networking
US11876819B2 (en) 2017-08-08 2024-01-16 Sentinel Labs Israel Ltd. Methods, systems, and devices for dynamically modeling and grouping endpoints for edge networking
US10841325B2 (en) 2017-08-08 2020-11-17 Sentinel Labs Israel Ltd. Methods, systems, and devices for dynamically modeling and grouping endpoints for edge networking
US11290478B2 (en) 2017-08-08 2022-03-29 Sentinel Labs Israel Ltd. Methods, systems, and devices for dynamically modeling and grouping endpoints for edge networking
US11212309B1 (en) 2017-08-08 2021-12-28 Sentinel Labs Israel Ltd. Methods, systems, and devices for dynamically modeling and grouping endpoints for edge networking
US11522894B2 (en) 2017-08-08 2022-12-06 Sentinel Labs Israel Ltd. Methods, systems, and devices for dynamically modeling and grouping endpoints for edge networking
US11722506B2 (en) 2017-08-08 2023-08-08 Sentinel Labs Israel Ltd. Methods, systems, and devices for dynamically modeling and grouping endpoints for edge networking
US11245714B2 (en) 2017-08-08 2022-02-08 Sentinel Labs Israel Ltd. Methods, systems, and devices for dynamically modeling and grouping endpoints for edge networking
US11838305B2 (en) 2017-08-08 2023-12-05 Sentinel Labs Israel Ltd. Methods, systems, and devices for dynamically modeling and grouping endpoints for edge networking
US11838306B2 (en) 2017-08-08 2023-12-05 Sentinel Labs Israel Ltd. Methods, systems, and devices for dynamically modeling and grouping endpoints for edge networking
US11716342B2 (en) 2017-08-08 2023-08-01 Sentinel Labs Israel Ltd. Methods, systems, and devices for dynamically modeling and grouping endpoints for edge networking
US10462171B2 (en) 2017-08-08 2019-10-29 Sentinel Labs Israel Ltd. Methods, systems, and devices for dynamically modeling and grouping endpoints for edge networking
US11716341B2 (en) 2017-08-08 2023-08-01 Sentinel Labs Israel Ltd. Methods, systems, and devices for dynamically modeling and grouping endpoints for edge networking
CN107506645A (en) * 2017-08-30 2017-12-22 北京明朝万达科技股份有限公司 A kind of detection method and device for extorting virus
US11888897B2 (en) 2018-02-09 2024-01-30 SentinelOne, Inc. Implementing decoys in a network environment
US11790079B2 (en) 2019-05-20 2023-10-17 Sentinel Labs Israel Ltd. Systems and methods for executable code detection, automatic feature extraction and position independent code detection
US11210392B2 (en) 2019-05-20 2021-12-28 Sentinel Labs Israel Ltd. Systems and methods for executable code detection, automatic feature extraction and position independent code detection
US11580218B2 (en) 2019-05-20 2023-02-14 Sentinel Labs Israel Ltd. Systems and methods for executable code detection, automatic feature extraction and position independent code detection
US10762200B1 (en) 2019-05-20 2020-09-01 Sentinel Labs Israel Ltd. Systems and methods for executable code detection, automatic feature extraction and position independent code detection
US11748083B2 (en) 2020-12-16 2023-09-05 Sentinel Labs Israel Ltd. Systems, methods and devices for device fingerprinting and automatic deployment of software in a computing network using a peer-to-peer approach
US11579857B2 (en) 2020-12-16 2023-02-14 Sentinel Labs Israel Ltd. Systems, methods and devices for device fingerprinting and automatic deployment of software in a computing network using a peer-to-peer approach
US11899782B1 (en) 2021-07-13 2024-02-13 SentinelOne, Inc. Preserving DLL hooks
RU2787274C1 (en) * 2022-03-08 2023-01-09 Юрий Иванович Стародубцев Method for ensuring the stable functioning of a complex hardware and software object of a complex functional-dynamic system

Similar Documents

Publication Publication Date Title
US8042186B1 (en) System and method for detection of complex malware
EP2515250A1 (en) System and method for detection of complex malware
US8099596B1 (en) System and method for malware protection using virtualization
EP3113063B1 (en) System and method for detecting malicious code in random access memory
RU2571723C2 (en) System and method of reducing load on operating system when executing antivirus application
US10055585B2 (en) Hardware and software execution profiling
JP5326062B1 (en) Non-executable file inspection apparatus and method
RU2531861C1 (en) System and method of assessment of harmfullness of code executed in addressing space of confidential process
KR102307534B1 (en) Systems and methods for tracking malicious behavior across multiple software entities
US8181247B1 (en) System and method for protecting a computer system from the activity of malicious objects
US8904537B2 (en) Malware detection
US8918878B2 (en) Restoration of file damage caused by malware
EP2745229B1 (en) System and method for indirect interface monitoring and plumb-lining
US9483642B2 (en) Runtime detection of self-replicating malware
US9165142B1 (en) Malware family identification using profile signatures
EP3462358B1 (en) System and method for detection of malicious code in the address space of processes
US9235706B2 (en) Preventing execution of task scheduled malware
US20150213260A1 (en) Device and method for detecting vulnerability attack in program
GB2545008A (en) Behaviour based malware prevention
US8499351B1 (en) Isolated security monitoring system
JP5326063B1 (en) Malicious shellcode detection apparatus and method using debug events
EP2584484B1 (en) System and method for protecting a computer system from the activity of malicious objects
US11449610B2 (en) Threat detection system
KR102463814B1 (en) Method and apparatus for monitoring server
EP2835757B1 (en) System and method protecting computers from software vulnerabilities

Legal Events

Date Code Title Description
AS Assignment

Owner name: KASPERSKY LAB ZAO, RUSSIAN FEDERATION

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:POLYAKOV, ALEXEY A;MARTYNENKO, VLADISLAV V;SLOBODYANUK, YURI G;AND OTHERS;REEL/FRAME:026193/0658

Effective date: 20110426

STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

SULP Surcharge for late payment
MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 12