Multistage system and method for analyzing obfuscated content for malware

Information

  • Patent Grant
  • 9690936
  • Patent Number
    9,690,936
  • Date Filed
    Tuesday, July 1, 2014
    10 years ago
  • Date Issued
    Tuesday, June 27, 2017
    7 years ago
  • CPC
  • Field of Search
    • CPC
    • H04L63/1416
    • H04L63/0227
    • H04L63/1441
    • H04L63/0428
    • H04L63/1408
    • H04L63/0263
    • G06F21/53
    • G06F21/566
    • G06F21/563
    • G06F2221/2107
    • G06F21/00
  • International Classifications
    • G06F21/56
Abstract
A malware detection system configured to detect suspiciousness in obfuscated content. A multi-stage static detection logic is utilized to detect obfuscation, make the obfuscated content accessible, identify suspiciousness in the accessible content and filter non-suspicious non-obfuscated content from further analysis. The system is configured to identify obfuscated content, de-obfuscate obfuscated content, identify suspicious characteristics in the de-obfuscated content, execute a virtual machine to process the suspicious network content and detect malicious network content while removing from further analysis non-suspicious network content.
Description
FIELD OF INVENTION

The present invention relates generally to computing systems, and more particularly to systems and methods of detecting and classifying malicious content.


GENERAL BACKGROUND

Over the last decade, malicious software (malware) has become a pervasive problem for Internet users. In some situations, malware is an exploit, in the form of a program or other object, which is embedded within downloadable content and designed to adversely influence or attack normal operations of a computer. Examples of different types of exploits may include bots, computer viruses, worms, Trojan horses, spyware, adware, or any other programming that operates within an electronic device (e.g. computer, tablet, smartphone, server, router, wearable technology, or other types of electronics with data processing and network capability) without permission by the user or an administrator. In some situations, malware is obfuscated to hide the purpose of the malware, while in other situations, non-malicious software is obfuscated. For instance, software may be obfuscated for non-malicious purposes including reducing the size through compression or protecting against unauthorized access through encryption.


Obfuscation of malicious objects may increase false negatives when a malware detection system analyzes the objects. For instance, exploits that are located in an obfuscated object may be hidden from detection by the malware detection system. As an illustrative example, an exploit may be placed within an executable object whose contents have been obfuscated, and carried into an electronic device undetected by conventional malware detection software, such as antivirus programs (e.g. an exploit inserted into an object's JavaScript and the contents obfuscated to hide malicious code patterns).


Known malware detection systems employing anti-virus scanning approaches are adequate for detecting malware in un-obfuscated content but often fail to detect malware in obfuscated content. This results in a high level of false negatives. Other known malware detection systems detect malicious objects in either obfuscated or not obfuscated content by executing the content in runtime environments often established by virtualization technology and isolated from production environments for security purposes, an approach which often avoids high levels of false negatives. Unfortunately, such systems typically require substantial computing resources to establish run-time (virtual) environments required to safely process the content for an adequate period of time to observe malicious behavior. Hence, it would be desirable to provide a malware analysis scheme capable of efficiently detecting malware in obfuscated content, while avoiding high levels of false positives and high computing resource demands.





BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the disclosure are illustrated by way of example and not by way of limitation to the figures of the accompanying drawings. Like references in the figures indicate similar elements:



FIG. 1 is an exemplary block diagram illustrating a communication system implementing a plurality of malware detection (MCD) systems each having a multi-stage static analysis system in accordance with one embodiment.



FIG. 2 is an exemplary block diagram of logic associated with one of the multi-stage static analysis systems of FIG. 1 in accordance with one embodiment.



FIG. 3A is an exemplary block diagram of the preprocessor of FIG. 1 in accordance with one embodiment.



FIG. 3B is an exemplary block diagram of the post-processor of FIG. 1 in accordance with one embodiment.



FIG. 4 is an exemplary block diagram of a flowchart illustrating a method of operation of a multi-stage static analysis system in accordance with one embodiment.





DETAILED EMBODIMENT

Various embodiments of the disclosure provide a multistage malware analysis scheme that takes into account whether content is obfuscated in automatically analyzing that content for malware. Embodiments of the analysis scheme attempt to de-obfuscate such content using an emulator, and then statically analyze the de-obfuscated content for suspiciousness prior to processing only that content found to be suspicious in a dynamic analyzer. The dynamic analyzer processes the suspicious content in a virtual runtime environment (e.g., using one or more virtual machines configured with a software profile suitable for the type of content). In this way, embodiments of the invention provide efficient detection of malware embedded in obfuscated content, while avoiding high levels of false positives and high computing resource demands (e.g. CPU processing time, temporary memory space, network bandwidth, etc.).


In one embodiment, the multistage malware analysis scheme initially determines whether content is either suspicious or obfuscated using a preprocessor that statically analyzes the content. If determined to be suspicious and not obfuscated, the content is next analyzed using a dynamic analyzer. If determined to be obfuscated by the preprocessor, the content is de-obfuscated by an emulator into a form that may be statically analyzed using a post-processor. If the post-processor determines that the de-obfuscated content from the emulator is suspicious, the corresponding original obfuscated content whose de-obfuscated form was found to be suspicious is next analyzed using a dynamic analyzer. If the de-obfuscated form from the emulator is determined to be not suspicious by the post-processor, the content is filtered from further analysis and not analyzed by the dynamic analyzer.


In embodiments of the disclosure, a multistage malware detection system may include a preprocessor, an emulator, and one or more post-processors. The preprocessor receives content for static analysis, for example, from a network interface, and may include an obfuscation detector and suspiciousness determining logic. The obfuscation detector determines whether any objects in the content are obfuscated. The suspiciousness determining logic determines whether any objects in the content are suspicious in that they have one or more characteristics (e.g., attributes) associated with malware. In the emulator, the content provided by the obfuscation detector is emulated to produce a de-obfuscated form. The de-obfuscated content is further processed by one or more post-processors which determine the suspiciousness of the de-obfuscated content. Each post-processor includes suspiciousness determining logic. If suspiciousness as determined by the preprocessor or post-processor is below a threshold of suspiciousness, the content may be, in one embodiment, deemed benign and filtered from further analysis and not provided to the dynamic analyzer. If the suspiciousness from the post-processor is above the threshold, the content is scheduled for dynamic analysis.


In various embodiments, the suspiciousness determining logic of the preprocessor and post-processor may include one or more of (depending on the embodiment) an indicator match engine, a protocol anomaly checker, or heuristics engine (e.g. a rules checker, etc.). The preprocessor and post-processor may have the same component checkers and engines or different components. More specifically, the indicator match engine of the preprocessor determines suspiciousness based on matches of the content with a first set of indicators of suspiciousness stored in memory. The post-processor may have a second set of indicators of suspiciousness that is distinct from the first set malicious indicators used by the preprocessor or may utilize identical indicators. The protocol anomaly checker checks the content against applicable protocols (e.g., communication protocols) or industry standards (e.g. industry protocols) to determination suspiciousness based on deviations from the protocol(s). The heuristics engine performs a statistical analysis on the content to assess whether the content has (or characteristics of objects therein have) a statistical correlation with known malware. The rules checker determines whether detected characteristics of the content violate one or more rules such as, for example, access control rules or rules with respect to blacklisted or whitelisted addresses. The rules in some embodiments may be defined by a network or security administrator and entered via a suitable user interface. The rules are developed from past experience with detected malware and malware families.


In some embodiments, the preprocessor and post-processor can be combined into a single component which receives content from both the network interface and the emulator, and statically analyzes the content. In other embodiments, these components may be implemented as separate components, and even as separate electronic devices each including processing units which, for example, may be located within a single data center or may be located geographically distant from one another and connected by a communication link or a network (cloud).


In embodiments of the invention, processing and analysis of the suspicious content in the dynamic analyzer can be prioritized based on level of suspiciousness. The level of suspiciousness, depending on the embodiment, can be expressed as a score or weighting associated with a confidence level (e.g., probability) that the content is malicious. Accordingly, content queued for dynamic analysis and associated with a higher weight or score may be processed by the dynamic analyzer ahead of queued content with a lower weight or score. In some embodiments, both the preprocessor and post-processor include score generation logic for associating a score with each object constituting the original, un-obfuscated content analyzed by the preprocessor and with each object in the de-obfuscated form of the originally obfuscated content analyzed by the post-processor, respectively. In other embodiments, score generation logic can be interposed between the post-processor and the dynamic analyzer or within a dynamic analysis scheduler so as to generate a single weighting or score for all output from the preprocessor and post-processor.


More specifically, an embodiment of a preprocessor determines suspiciousness of content based on indicators of suspiciousness. The preprocessor conducts static analysis operations to identify characteristics of the content that may indicate malware by matching or finding a high correlation (above a threshold) with patterns of indicators associated with malware or families of malware. In some embodiments, the indicators of malware may be abstracted patterns of known malicious or benign content identifiers correlated to maliciousness (e.g. whitelist or blacklist of patterns). Herein, the static analysis operations are generally referred to as “malware checks”. Content may be classified as “suspicious” by the preprocessor when one or more characteristics associated with malware are identified during static analysis operations conducted on the content indicate a probability that the content includes malware above a select threshold. This determination may be stored as a first suspiciousness score. Obfuscation (e.g. compression, encryption, etc.) of the content may itself be an indicator of suspiciousness. If the suspiciousness assigned to the content after preprocessing is below the threshold, the content will be filtered from further analysis and not presented for dynamic analysis. If the suspiciousness content after preprocessing is above the threshold, the content will be further processed. Obfuscated content will be provided by the preprocessor to the emulator, and un-obfuscated content will be provided by the preprocessor to the dynamic analyzer.


An embodiment of an emulator will process (e.g., simulate execution of) the obfuscated content provided by the preprocessor to produce a de-obfuscated representation of the obfuscated content. The emulator is configured to emulate the operations associated with the processing of the content in the context of an emulated computer application. As an optional feature, emulation logic may process a pre-determined list of functions of an application, which, in some embodiments, can be selectively modified by an IT or security administrator. In particular, the emulator intercepts (or “hooks”) function calls, events and messages (e.g., API calls via specific application specific interfaces) and, in response sends values appropriate to the content and context of the emulation as inputs to the emulator (e.g. timing events, keyboard events, etc.). The de-obfuscated representation of the network content produced by the emulation logic will be processed by the post-processor. The information exchanged during the “hooking” operations as well as output data from the content under analysis are provided to the post-processor where they are statically analyzed for malware characteristics or indicators.


In an embodiment of the post-processor, the de-obfuscated representation produced by the emulator is processed and suspiciousness is determined, as noted above, based on a second set of indicators of suspiciousness. The second set of indicators of suspiciousness may be identical to the first set of indicators of suspiciousness or may have indicators peculiar to the de-obfuscated representation of the content. The second suspiciousness determination may lead to and may be stored as a second suspiciousness score. In an embodiment of the disclosure, if the suspiciousness determined for the de-obfuscated representation of the content by the post-processor is below a threshold of suspiciousness, the content may be filtered from further analysis. In an embodiment of the disclosure, the second threshold for suspiciousness may be identical to the first threshold for suspiciousness. In an alternative embodiment of the disclosure the second threshold for suspiciousness may be different from the first threshold for suspiciousness. If the suspiciousness determined for the de-obfuscated content is above the threshold of suspiciousness, the content is scheduled, in a scheduler, to be analyzed by a dynamic analyzer.


In an embodiment of the scheduler, the suspiciousness score(s) generated in the preprocessor and post-processor is used to determine a level of priority associated with corresponding content for use in scheduling the content for analysis by the dynamic analyzer. The scheduler may use for these purposes, depending on the embodiment, the first suspiciousness score assigned to the obfuscated content, the second suspiciousness score assigned to the de-obfuscated content, both suspiciousness scores, the individual indicators of suspiciousness used by the preprocessor and post-processor to determine the priority, or a combination of one or more of the foregoing. The level of priority is determined in the scheduler by assigning a higher priority to content that is more suspicious.


According to yet another embodiment of the disclosure, a forensic malware detection method or system may receive content for analysis that has been identified in advance as having a high level of probability of containing malware, and may implement a multistage malware detection scheme in accordance with any of the above embodiments to confirm or verify the existence of malware in the content under analysis.


I. General Architecture


Referring to FIG. 1, an exemplary block diagram of a communication system 100 deploying a plurality of malware content detection (MCD) systems 1101-110N (N>1, e.g. N=3) communicatively coupled to a management system 120 via a network 125 is shown. In general, management system 120 is adapted to manage MCD systems 1101-110N. For instance, management system 120 may be adapted to cause one or more malware identifiers, each of which being information representative of prior detected malware, to be shared among some or all of the MCD systems 1101-110N for use in malware checks. Such sharing may be conducted automatically or manually uploaded by an administrator. Also, such sharing may be conducted freely among the MCD systems 1101-110N or subject to a subscription basis.


Herein, according to the embodiment illustrated in FIG. 1, a first MCD system 1101 is an electronic device that is adapted to analyze information associated with network traffic routed over a communication network 130 between at least one server device 140 and at least one client device 150. More specifically, the first MCD system 1101 is configured to conduct static analysis of information (e.g., an object that is part of message(s) transmitted via the network traffic) received via communication network 130 and, where applicable, classify the object with different “malicious” scores. An object may be classified with a first level (e.g. “suspicious”—assigned a score less than or equal to a first threshold) when at least one characteristic (or pattern of characteristics) identified during static analysis operations conducted on the object indicates a certain level of probability that the object includes malware. Similarly, the object may be classified with a second level (e.g. “malicious”—assigned a score greater than or equal to a second threshold greater than the first threshold) when at least one characteristic observed during static analysis operations conducted on the object indicates a certain greater level of probability that the object includes malware.


In an embodiment, static analysis is conducted by static analysis engine 170 within the first MCD system 1101. The static analysis engine 170 is configured to conduct a first static analysis operation on an object extracted from the network traffic to determine whether the object is suspicious in that it has a certain probability of being malicious. As part of that analysis the static analysis engine 170 determines whether the object contains obfuscated content. The static analysis engine 170 may determine that the object is obfuscated based on detecting, in the content, indicia signaling that the content has been compressed, encrypted or otherwise encoded. A determination that the content has been obfuscated can be used to increase the probability that it is suspicious and support a classification of maliciousness. If the object is found to not be suspicious (e.g. benign), no further analysis need be performed on the object. On the other hand if the object is found to be suspicious the static analysis engine 170 will provide the object to an emulator 260 to render the obfuscated code to de-obfuscated format. The emulator processes the obfuscated content into de-obfuscated form by “hooking” to the Application Programming Interfaces (APIs) calls from the content processed in an emulated application and substituting the appropriate values when functions are called during the processing of the content. The de-obfuscated content obtained after emulation is analyzed to determine if the content correlates with one or more malware characteristics. The level of correlation (e.g., exact pattern match, or for example, matching a majority of the pattern) may be “factory set” or may be adjustably set (e.g. by an administrator). In some embodiments an object of network content may have one or more embedded objects (e.g. sub-objects). The malware checks are conducted by the static analysis engine 170 on the one or more embedded objects within the object in order to potentially classify the overall object as “malicious,” depending on whether any embedded object within the object is determined to have at least one characteristic associated with malware or whether the suspiciousness of the embedded objects in the aggregate is sufficient to determine whether the overall object requires further analysis.


The communication network 130 may include a public network such as the Internet, in which case an optional firewall 155 (represented by dashed lines) may be interposed between communication network 130 and client device 150. Alternatively, the communication network 130 may be a private computer network such as a wireless telecommunication network, wide area network, or local area network, or a combination of networks.


The first MCD system 1101 is shown as being coupled with the communication network 130 (behind the firewall 155) via a network interface 160. The network interface 160 operates as a data capturing device (referred to as a “tap” or “network tap”) that is configured to receive data traffic propagating to/from the client device 150 and provide content from the data traffic to the first MCD system 1101.


In an embodiment, the network interface 160 receives and duplicates the content that is received from and provided to client device 150 normally without an appreciable decline in performance in the server device 140, the client device 150, or the communication network 130. The network interface 160 may duplicate any portion of the content, for example, one or more objects that are part of a data flow or part of the payload contained within certain data packets, or the like.


In some embodiments, the network interface 160 may capture metadata from network traffic intended for client device 150. This metadata may be used, at least in part, to de-obfuscate a corresponding file. For instance, the metadata may include one or more keys that can be used to de-obfuscate the file. The metadata may be advantageously used by the scheduler 180 to retrieve and configure a virtual machine (VM) to correspond to the pertinent features of the client device 150.


It is contemplated that, for any embodiments where the first MCD system 1101 is implemented as a dedicated appliance or a dedicated computer system, the network interface 160 may include an assembly integrated into the appliance or computer system that includes network ports, network interface card and related logic (not shown) for connecting to the communication network 130 to non-disruptively “tap” data traffic propagating through firewall 155 and provide a copy of the data traffic to the static analysis engine 170. In other embodiments, the network interface 160 can be integrated into an intermediary device in the communication path (e.g., firewall 155, router, switch or other network device) or can be a standalone component, such as an appropriate commercially available network tap. In virtual environments, a virtual tap (vTAP) can be used to duplicate objects from virtual networks.


Referring still to FIG. 1, first MCD system 1101 may include a static analysis engine 170, a database 175, a scheduler 180, a storage device 185, and a dynamic analyzer 190. In some embodiments, the network interface 160 may be contained within the first MCD system 1101. Also, static analysis engine 170, scheduler 180 and/or dynamic analyzer 190 may be software modules executed by one or more processors 200 that receive one or more objects within the content and perform a multi-stage static analysis on the objects, which may involve accessing one or more non-transitory storage mediums operating as database 175, storage device 185 and/or reporting module 195. In some embodiments, the static analysis engine 170 may be one or more software modules forming a static framework 172, where such software modules are executed by a processor 200. The scheduler 180 and the dynamic analyzer 190 may be one or more software modules executed by the same or a different processor, where these different processors are possibly located at geographically remote locations, located within the same processor package (e.g. different processor cores) and/or communicatively coupled for example via a network.


In general, the static analysis engine 170 performs static analysis on an object to determine whether it may include exploits, vulnerable functions, and/or malicious patterns. More specifically, as illustrated in FIG. 1, the static analysis engine 170 receives a duplicate copy of one or more objects associated with network traffic received from the network interface 160 and statically scans the content of the object(s) for malware identifiers. In other words, the static analysis engine 170 performs a first static analysis by comparing the contents of each object with known characteristics of malware, which may include finding correlations with characteristics associated with malware, to determine the existence of malware. Characteristics associated with malware may include exploit patterns, names of vulnerable functions, heap spray patterns, etc. Alternatively, in in-line deployments, the network interface 160 may provide the original (rather than a duplicate) of the portion of content to the static analysis engine 170 for malware analysis. While the balance of this specification may refer to the duplicate, this alternative embodiment may serve to implement the concepts later described herein.


If the comparison reveals a correlation between the contents of the object and one or more malware identifiers (hereinafter referred to as a “match”), which denotes a malicious event, the static analysis engine 170 determines whether the corresponding object is “suspicious” and assigns a score to the object. The malware checks applied by the static analysis engine 170 may be based on data and/or rules stored in the heuristics database 175.


Upon detecting a match, the score generation logic 174 may assign a score (e.g., an indicator of the likelihood of the analyzed object including malware) to the object analyzed with the static analysis engine 170. The score generation logic 174 will determine a score for the analyzed content using the results of the preprocessor 250 or post-processor 270. This may be performed in some embodiments by assigning a score to individual objects found in the content, and then mathematically combining the object-level scores to obtain an overall score for the content. Thereafter, the content and score are routed from the scanning engine to the dynamic analyzer 190 for use in further analysis to confirm the presence of malware within the content. The content may be scheduled for analysis in the dynamic analyzer 190 by a scheduler 180.


The static analysis engine 170 conducts emulation operations in an emulator 260, where the processing of an object is emulated and an output associated with such processing may be statically scanned to determine if portions of the output match any of the pre-stored malware identifiers. The emulator may be, for example, a “light weight” run-time environment. The run-time environment is described as “light weight” because it does not actually run applications that normally are used in processing objects. The run-time environment may be provided by an emulated application. For example, a JavaScript™ object may expect a browser application, and therefore, for emulation, the MCD system 1101 relies on an emulator to present certain simulated or virtualized features and system responses associated with that application as expected by the object being analyzed. The MCD system 1101 then monitors characteristics of the object within the emulator, for example, by intercepting or “hooking” function calls and comparing the hooked calls with those expected of similar objects when processed. Any unexpected function calls are regarded as anomalies that may indicate the object is malicious. The object is then assigned a score based on the presence or absence of such anomalies, and, in some embodiments, the type of the call or other characteristics of the observed anomalies.


After static analysis, the content may be presented to the dynamic analyzer 190 for more in-depth dynamic analysis using virtual machine technology for processing of the object in a more complete run-time environment in which one or more applications are executed (not just emulated). The ensuing processing may be conducted for a period of time that is either fixed or variable, and may be set manually by an administrator or automatically by the MCD system 1101, for example, based on the type of object, queue length of objects to be analyzed or other analysis parameters. For this purpose, the static analysis engine 170 communicates with the scheduler 180.


The scheduler 180 may retrieve and configure a virtual machine (VM) with appropriate computer software (e.g. operating system and applications) and features to correspond to the pertinent characteristics of a client device. In one example, the scheduler 180 may be adapted to configure the characteristics of the VM to correspond only to those features of the client device 150 that are affected by the data traffic copied by the network interface 160. The scheduler 180 may determine the features of the client device 150 that are affected by the content by receiving and analyzing the network traffic from the network interface 160. Such features of the client device 150 may include ports that are to receive the content, certain device drivers that are to respond to the content, and other devices coupled to or contained within the client device 150 that can respond to the content. In another embodiment of the disclosure, where the network content is processed forensically, the scheduler 180 will configure the VM to correspond to the features indicated by analyzing content received by the network interface 160. Content received by the network interface 160 may include metadata which may be analyzed to determine protocols, application types and other information that may be used to retrieve and configure the VM by the scheduler 180.


In another embodiment of the disclosure, the static analysis engine 170 may determine the features of the client device 150 that are affected by the network traffic by receiving and analyzing the content from the network interface 160. The static analysis engine 170 may then transmit the features of the client device to the scheduler 180 or dynamic analyzer 190.


The dynamic analyzer 190 is adapted to execute one or more VMs to simulate the receipt and/or execution of different “malicious” objects within content under analysis (analyzed content) within a run-time environment as expected by the type of object, as noted above. The run-time environment may be one selected to correspond to one that is appropriate to the content, or that is prevalently provided by client devices, or, in alternative embodiments, one that can be provided by the client device 150 in particular. Furthermore, the dynamic analyzer 190 analyzes the effects of such content upon the run-time environment, such as the client device 150. Such effects may include unusual network transmissions, unusual changes in performance, and the like. This detection process is referred to as dynamic malicious content detection.


The dynamic analyzer 190 may flag the malicious content as malware according to the observed behavior of the VM. The reporting module 195 may issue alerts indicating the presence of malware, and using pointers and other reference information to identify which content may contain malware. Additionally, the server device 140 may be added to a list of malicious network content providers, and future network transmissions originating from the server device 140 may be blocked from reaching their intended destinations, e.g., by firewall 155.


In an alternative embodiment of the disclosure the static framework 172, includes a controller, a deconstruction engine, and a post-processor. The controller receives the content to be analyzed and detects the type of the content. The controller determines, based on whether the controller can access the native code of the content, an analysis technique to be used by the deconstruction engine. The deconstruction engine may perform a variety of techniques to analyze the content received from the controller. If the controller determines that the content cannot access the native code of the content, the deconstruction engine will select an analysis technique that implements a de-compiler to access the native code of the content. The deconstruction process returns the native code (e.g. plain-text, etc.) as a deconstructed representation of the content. The deconstructed representation is processed in the post-processor 270 which receives the de-constructed content from the de-constructor. The post-processor determines if the de-constructed content matches any known malware characteristics. The malware characteristics may include malicious obfuscation such as, for example, functional obfuscation, using the frequency, n-gram, length of strings or numbers and size of decompiled files. Matches to the malware characteristics are indicators of suspiciousness and may amount to maliciousness. If these values exceed a certain threshold, the file is classified as malicious. Each component of the static framework 172 may be stored in persistent storage 230 and executed by the processors 200.


Of course, in lieu of or in addition to static analysis operations being conducted by MCD systems 1101-110N, it is contemplated that cloud computing services 135 may be implemented to perform such static analysis: de-obfuscate content for static analysis, perform emulation of obfuscated content to render de-obfuscated content, and conduct static scans on one or more objects within the de-obfuscated content as described herein. In accordance with this embodiment, MCD system 1101 may be adapted to establish secured communications with cloud computing services 135 for exchanging information. The dynamic analysis may also be conducted in the cloud.


Referring now to FIG. 2, a block flow diagram of logic associated with MCD system 1101 is shown. MCD system 1101 includes one or more processors 200 that are coupled to communication interface logic 210 via a first transmission medium 215. Communication interface logic 110 enables communications with other MCD systems 1102-110N and management system 120 of FIG. 1. According to one embodiment of the disclosure, communication interface logic 210 may be implemented as a physical interface including one or more ports for wired connectors. Additionally, or in the alternative, communication interface logic 210 may be implemented with one or more radio units for supporting wireless communications with other electronic devices.


Processor 200 is further coupled to persistent storage 230 via transmission medium 225. According to one embodiment of the disclosure, persistent storage 230 may include static analysis engine 170, which includes a preprocessing malware check logic 250, an emulation logic 260, and a post-processing malware check logic 270. Of course, when implemented as hardware, logic 250, 260 and/or 270 would be implemented separately from persistent storage 230.


Preprocessing malware check logic 250 includes one or more software modules to conduct static analysis of content within an object to determine whether such content includes characteristics of malware, such as information associated with known malware exploits. The preprocessing malware check logic 250 may conduct, in some embodiments, a malware signature matching operation. The term “signature” designates an indicator of a set of characteristics and/or behaviors exhibited by one or more exploits that may not be unique to those exploit(s). Thus, a match of the signature may indicate to some level of probability, often well less than 100%, that an object constitutes an exploit. In some contexts, those of skill in the art have used the term “signature” as a unique identifier or “fingerprint,” for example, of a specific virus or virus family (or other exploit), which is generated for instance as a hash of its machine code, and that is a special sub-case for purposes of this disclosure. As an example, malware check logic 250 may be initially invoked to conduct static analysis of content in the object, which includes conducting pattern comparison operations (e.g. bitwise comparison, byte-wise comparison, etc.) between accessible object content and malware identifiers associated with known exploit patterns (e.g. heap spray, shell code, etc.) and vulnerable functions obtained from data store 290. Accessible object content is content that is not obfuscated; obfuscation is detected by the obfuscation detection logic 320. The data store 290 may store patterns correlated with characteristics and patterns of characteristics of known malicious content. The patterns stored in data store 290 may be generated in a signature generator 295. The patterns stored in data store 290 may be modified by an administrator remotely or locally. The correlation engine 310 may access the data store 290 for malware identifiers associated with known exploit patterns. When the preprocessing malware check logic 250 fails to have code-level access for a targeted object as a result of obfuscation within the object, it is processed by the emulation logic 260.


Emulation logic 260 (emulator) includes one or more software modules that are invoked when the preprocessing malware check logic 250 (preprocessor) fails to have code-level access for a targeted object within the analyzed object. Emulation logic 260 is configured to emulate operations of the object and, perhaps in combination with preprocessing malware check logic 250, monitor for anomalous characteristics. The monitoring may be accomplished by “hooking” certain functions associated with that object (e.g., application programing interface (API) function calls, etc.) as described above, and controlling what data is specifically returned in response to corresponding function calls (e.g., substituting function input values). After receipt of the returned data, operations by the object are monitored by the static analysis engine. For instance, the output from the object may be monitored and analyzed by the post-processing malware check logic 270 (post-processor) to determine if a portion of the output matches any malware characteristics. In some embodiments, the emulation logic 260 or the post-processing malware check logic 270 may access data store 290 for purposes of retrieving, from an API call repository, expected API calls typical of the type of content being processed, and may store “hooked” API calls therein for later reference.


Subsequently, after failing to detect any suspicious characteristics and emulating the object as described herein, the post-processing malware check logic 270 may conduct a secondary static analysis in which content within objects associated with the de-obfuscated object (e.g., code associated with one or more embedded objects within the object that is accessible after emulating the object) is compared to the malware identifiers.


Referring to FIG. 3A, the preprocessing malware detection logic 250 (preprocessor) may include a suspiciousness determining logic 350. The suspiciousness determining logic 350 may further include a heuristics engine 351, a rules checker 352, and a protocol anomaly detector 353. The heuristics engine 351 identifies patterns correlating with malware in the content being analyzed. The correlations of the heuristics engine 351 are the result of statistical analyses and experiential knowledge pertaining to previously detected malware and malware families. The statistical analyses for the heuristics engine 351 may be conducted in the same preprocessor 250 or post-processor 270. The rules checker 352 would identify suspiciousness by associating compliance of the content analyzed with access control rules (e.g. blacklists, whitelists, etc.), that are defined by an administrator locally or defined by a remote malware-related service provider and downloaded for use. The protocol anomaly detector 353 associates suspiciousness with non-compliance with applicable protocols or applicable standards. Analyzed content's deviation from the corresponding protocol may be a characteristic associated with maliciousness. The obfuscation detection logic 320 determines if content is obfuscated through analysis of the content. Analysis in the obfuscation detection logic 320 may include extracting features at various representation levels (i.e. source code, lexical token, etc.).


Referring to FIG. 3B, the post-processing malware detection logic 270 (post-processor) includes a suspiciousness determining logic 370. The post-processing suspiciousness determining logic 370 components may be identical (as described above) preprocessing suspiciousness determining logic 350.


Referring to FIG. 4, an exemplary diagram of a flowchart illustrating a multi-stage static analysis of content (e.g., analyzed object) is shown. Herein, a first static analysis is conducted to determine if objects within analyzed content has a correlation with (generally referred to as “matches”) known malware exploit patterns, vulnerable function calls, or malicious patterns (block 400). If a suspicious identifier is matched, it is contemplated that a score that identifies the likelihood of the presence of malware within the analyzed object may be produced and in some embodiments, provided for use in subsequent VM-based analysis of the object (blocks 480 and 490).


In the event that no suspicious characteristic is detected in the first stage, an analysis will be conducted to determine if the content is obfuscated (block 420). If the content analyzed is determined not to be obfuscated (block 430) the content is filtered from further analysis. In the event that the content is determined to be obfuscated (block 430), a second stage static analysis (block 445) is conducted after emulated processing of the object within the context of simulated operations associated with a targeted application (block 440). For example, the emulation simulates operations that may occur if a browser application were actually, or virtually, being executed. One reason for such emulation is to detect malware exploits that are executed only upon detecting a certain targeted application. If an identifier associated with malware is detected, a score that identifies the likelihood of the presence of malware within the analyzed object may be produced and provided for subsequent VM-based analysis of the content (blocks 450, 480 and 490) and in some embodiments, in classifying the content following such VM based analysis.


If the suspicious characteristic is detected and the object is not obfuscated, a determination is made as to whether further analysis is to be conducted within the VM-based dynamic analyzer (block 490). If no further static analysis is to be conducted and a determination is made to analyze the object in the VM-based analyzer, the analyzed object (or at least a portion of the analyzed object) is provided to dynamic analyzer 190 of FIG. 1 for VM-based analysis.


In the event the static analysis does not find a suspicious characteristic and the object is not obfuscated, the analysis will end. In an alternative embodiment the endpoint 495 is a virtual endpoint simulating a destination during a forensic analysis. A forensic analysis is one that analyzes content that is suspected to have caused malicious behavior on a device.


In general, one embodiment is directed to a multi-stage static analysis that filters non-suspicious objects from further analysis and emulates processing of the analyzed object with results of the same being provided to the dynamic analyzer 190 for subsequent VM-based analysis. This multi-stage static analysis is configured to improve accuracy and efficiency in malware analysis. As alternative embodiments, it is contemplated that any or all of the above-described static analyses may be conducted concurrently.


In some embodiments, based on a combination of the respective scores resulting from the static scans exceeding a threshold, the analyzed object may be classified as malicious, non-malicious, or, possibly, in need of further analysis, e.g., in VM-based analysis before classification may be made. It can be understood that, even if classified as a result of the static analysis, the object may be subjected to VM-based analysis to further identify characteristics and behaviors for use in later deterministic checks, for identifier comparison, for blocking, for remediation or for confirmation of static analysis results.


In the foregoing description, the invention is described with reference to specific exemplary embodiments thereof. It will, however, be evident that various modifications and changes may be made without departing from the broader scope of the invention as set forth in the claims.

Claims
  • 1. A method for detecting malicious content conducted by a preprocessor and a post-processor being software executed by a hardware processor, the method comprising: receiving an object including content over a network;determining, in the preprocessor, whether the content of the object is suspicious and whether the content is obfuscated by at least determining whether there is a high correlation between a portion of the content of the object and a first set of indicators of suspiciousness;responsive to determining that the content is suspicious and is not obfuscated, transmitting the suspicious content to a dynamic analyzer, the dynamic analyzer including one or more virtual machines that processes at least the content and monitors for anomalous behaviors occurring during the processing of the content;responsive to determining that the content of the object is obfuscated, transmitting the obfuscated content to an emulator that is different than the dynamic analyzer, the emulator being configured to produce a de-obfuscated representation of the content that is different from the non-obfuscated content and send the de-obfuscated representation of the content to the post-processor,determining, in the post-processor, whether the de-obfuscated representation of the content from the emulator is suspicious by at least determining whether there is a high correlation between a portion of the de-obfuscated representation of the content and a second set of indicators of suspiciousness that differs from the first set of indicators of suspiciousness, andproviding the de-obfuscated representation of the content for further analysis by the dynamic analyzer; andremoving non-suspicious content from further analysis.
  • 2. The method of claim 1, wherein the content of the object is determined to be suspicious based on a correlation of characteristics of the content with a first set of indicators of suspiciousness as detected by the preprocessor and a correlation of characteristics of the content with a second set of indicators of suspiciousness as detected by the post-processor.
  • 3. The method of claim 1, further comprising sending content removed from further analysis to a destination device.
  • 4. The method of claim 1, wherein the determining whether the content of the object is obfuscated occurs when the preprocessor fails to have code-level access for at least a portion of the content.
  • 5. The method of claim 1, further comprising transmitting the suspicious content to the dynamic analyzer in a remote network to determine if the suspicious content is malicious.
  • 6. The method of claim 1 wherein the suspicious content is prioritized for analysis in the dynamic analyzer.
  • 7. The method of claim 2, wherein the first set of indicators of suspiciousness are modifiable.
  • 8. The method of claim 2, wherein the content of the object is determined to be malicious when the correlation of characteristics of the content with the first set of indicators of suspiciousness exceeds a threshold of maliciousness.
  • 9. The method of claim 2, wherein the first set of indicators of suspiciousness in the preprocessor are identical to the second set of indicators of suspiciousness in the post-processor.
  • 10. The method of claim 2, further comprising combining result of the correlation of characteristics of the content with the first set of indicators of suspiciousness from the preprocessor and the correlation of characteristics of the content with the second set of indicators of suspiciousness from the post-processor to determine if the content of the object is malicious.
  • 11. The method of claim 9, wherein the combination of result of the correlation of characteristics of the content with the first set of indicators of suspiciousness and the correlation of characteristics of the content with the second set of indicators of suspiciousness are weighted based on the set of indicators of suspiciousness the correlation is based.
  • 12. The method of claim 9, wherein the determining whether the de-obfuscated content is suspicious includes intercepting one or more function calls associated with the de-obfuscated representation of the content and controlling a return of data in response to the one or more function calls.
  • 13. A system to detect when an object including content is malicious, comprising: a preprocessor that is configured, upon execution by a hardware processor, to determine (i) whether content of an object under analysis is suspicious and not obfuscated by at least determining whether there is a high correlation between a portion of the content of the object and a first set of indicators of suspiciousness, (ii) whether the content is obfuscated, or (iii) whether the content is to be removed from further analysis when non-suspicious and not obfuscated, the preprocessor to provide the suspicious content to a dynamic analyzer for determining whether the suspicious content is malicious when the content is suspicious and not obfuscated;an emulator communicatively coupled to the preprocessor, the emulator is configured, upon execution by the hardware processor, to receive the content, in response to the preprocessor determining that the content is obfuscated, and process the content to produce a de-obfuscated representation of the content that is different than the content that is not obfuscated; anda post-processor that is configured, upon execution by a hardware processor, to a receive the de-obfuscated representation of the content from the emulator, (ii) determine if the de-obfuscated representation of the content is suspicious by at least determining whether there is a high correlation between a portion of the de-obfuscated representation of the content and a second set of indicators of suspiciousness that differs from the first set of indicators of suspiciousness, and (iii) provide the de-obfuscated representation of the content to the dynamic analyzer if the de-obfuscated representation of the content is suspicious or remove the de-obfuscated representation of the content from further analysis if the de-obfuscated representation of the content is non-suspicious.
  • 14. The system of claim 13, wherein the preprocessor is configured to determine the suspiciousness of the content by establishing a correlation with a first set of indicators of suspiciousness.
  • 15. The system of claim 13, wherein the post-processor is configured to determine the suspiciousness of the de-obfuscated representation of the content by establishing a correlation with a second set of indicators of suspiciousness.
  • 16. The system of claim 13 further comprising a scheduler that is configured to receive the suspicious content from the preprocessor or the suspicious, de-obfuscated representation of the content from the post-processor to schedule for analysis in the dynamic analyzer that determines if the suspicious content is malicious.
  • 17. The system of claim 13 further comprising a reporting module configured to combine the correlations, with indicators of suspiciousness from the preprocessor and post-processor and indicators of maliciousness from the dynamic analyzer, to indicate maliciousness.
  • 18. The system of claim 15, wherein the second set of indicators of suspiciousness used by the post-processor is identical to the first set of indicators of suspiciousness used by the preprocessor.
  • 19. The system of claim 16, wherein a scheduler is configured to prioritize content for analysis in the dynamic analyzer based on the correlation of the content with maliciousness.
  • 20. The system of claim 16, wherein the dynamic analyzer is located in a remote network to determine if the content is malicious.
  • 21. The system of claim 17, wherein the preprocessor determines whether the content of the object is obfuscated when the preprocessor fails to have code-level access for at least a portion of the specimen of content.
CROSS REFERENCE TO RELATED APPLICATION

This application is a continuation-in-part of application Ser. No. 14/042,505, filed 30 Sep. 2013. The disclosure therein is incorporated by reference.

US Referenced Citations (497)
Number Name Date Kind
4292580 Ott et al. Sep 1981 A
5175732 Hendel et al. Dec 1992 A
5440723 Arnold et al. Aug 1995 A
5490249 Miller Feb 1996 A
5657473 Killean et al. Aug 1997 A
5842002 Schnurer et al. Nov 1998 A
5978917 Chi Nov 1999 A
6088803 Tso et al. Jul 2000 A
6094677 Capek et al. Jul 2000 A
6108799 Boulay et al. Aug 2000 A
6118382 Hibbs et al. Sep 2000 A
6269330 Cidon et al. Jul 2001 B1
6272641 Ji Aug 2001 B1
6279113 Vaidya Aug 2001 B1
6298445 Shostack et al. Oct 2001 B1
6357008 Nachenberg Mar 2002 B1
6417774 Hibbs et al. Jul 2002 B1
6424627 Sørhaug et al. Jul 2002 B1
6442696 Wray et al. Aug 2002 B1
6484315 Ziese Nov 2002 B1
6487666 Shanklin et al. Nov 2002 B1
6493756 O'Brien et al. Dec 2002 B1
6550012 Villa et al. Apr 2003 B1
6700497 Hibbs et al. Mar 2004 B2
6775657 Baker Aug 2004 B1
6831893 Ben Nun et al. Dec 2004 B1
6832367 Choi et al. Dec 2004 B1
6895550 Kanchirayappa et al. May 2005 B2
6898632 Gordy et al. May 2005 B2
6907396 Muttik et al. Jun 2005 B1
6941348 Petry et al. Sep 2005 B2
6971097 Wallman Nov 2005 B1
6981279 Arnold et al. Dec 2005 B1
6995665 Appelt et al. Feb 2006 B2
7007107 Ivchenko et al. Feb 2006 B1
7028179 Anderson et al. Apr 2006 B2
7043757 Hoefelmeyer et al. May 2006 B2
7069316 Gryaznov Jun 2006 B1
7080407 Zhao et al. Jul 2006 B1
7080408 Pak et al. Jul 2006 B1
7093239 van der Made Aug 2006 B1
7096498 Judge Aug 2006 B2
7100201 Izatt Aug 2006 B2
7107617 Hursey et al. Sep 2006 B2
7159149 Spiegel et al. Jan 2007 B2
7213260 Judge May 2007 B2
7231667 Jordan Jun 2007 B2
7240364 Branscomb et al. Jul 2007 B1
7240368 Roesch et al. Jul 2007 B1
7243371 Kasper et al. Jul 2007 B1
7249175 Donaldson Jul 2007 B1
7287278 Liang Oct 2007 B2
7308716 Danford et al. Dec 2007 B2
7328453 Merkle, Jr. et al. Feb 2008 B2
7346486 Ivancic et al. Mar 2008 B2
7356736 Natvig Apr 2008 B2
7386888 Liang et al. Jun 2008 B2
7392542 Bucher Jun 2008 B2
7418729 Szor Aug 2008 B2
7428300 Drew et al. Sep 2008 B1
7441272 Durham et al. Oct 2008 B2
7448084 Apap et al. Nov 2008 B1
7458098 Judge et al. Nov 2008 B2
7464404 Carpenter et al. Dec 2008 B2
7464407 Nakae et al. Dec 2008 B2
7467408 O'Toole, Jr. Dec 2008 B1
7475427 Palliyil et al. Jan 2009 B2
7478428 Thomlinson Jan 2009 B1
7480773 Reed Jan 2009 B1
7487543 Arnold et al. Feb 2009 B2
7496960 Chen et al. Feb 2009 B1
7496961 Zimmer et al. Feb 2009 B2
7519990 Xie Apr 2009 B1
7523493 Liang et al. Apr 2009 B2
7530104 Thrower et al. May 2009 B1
7540025 Tzadikario May 2009 B2
7565550 Liang et al. Jul 2009 B2
7568233 Szor et al. Jul 2009 B1
7584455 Ball Sep 2009 B2
7603715 Costa et al. Oct 2009 B2
7607171 Marsden et al. Oct 2009 B1
7639714 Stolfo et al. Dec 2009 B2
7644441 Schmid et al. Jan 2010 B2
7657419 van der Made Feb 2010 B2
7676841 Sobchuk et al. Mar 2010 B2
7698548 Shelest et al. Apr 2010 B2
7707633 Danford et al. Apr 2010 B2
7712136 Sprosts et al. May 2010 B2
7730011 Deninger et al. Jun 2010 B1
7739740 Nachenberg et al. Jun 2010 B1
7779463 Stolfo et al. Aug 2010 B2
7784097 Stolfo et al. Aug 2010 B1
7836502 Zhao et al. Nov 2010 B1
7849506 Dansey et al. Dec 2010 B1
7854007 Sprosts et al. Dec 2010 B2
7869073 Oshima Jan 2011 B2
7877803 Enstone et al. Jan 2011 B2
7904959 Sidiroglou et al. Mar 2011 B2
7908660 Bahl Mar 2011 B2
7930738 Petersen Apr 2011 B1
7937761 Bennett May 2011 B1
7949849 Lowe et al. May 2011 B2
7996556 Raghavan et al. Aug 2011 B2
7996836 McCorkendale et al. Aug 2011 B1
7996904 Chiueh et al. Aug 2011 B1
7996905 Arnold et al. Aug 2011 B2
8006305 Aziz Aug 2011 B2
8010667 Zhang et al. Aug 2011 B2
8020206 Hubbard et al. Sep 2011 B2
8028338 Schneider et al. Sep 2011 B1
8042184 Batenin Oct 2011 B1
8045094 Teragawa Oct 2011 B2
8045458 Alperovitch et al. Oct 2011 B2
8069484 McMillan et al. Nov 2011 B2
8087086 Lai et al. Dec 2011 B1
8171553 Aziz et al. May 2012 B2
8176049 Deninger et al. May 2012 B2
8176480 Spertus May 2012 B1
8201245 Dewey Jun 2012 B2
8204984 Aziz et al. Jun 2012 B1
8214905 Doukhvalov et al. Jul 2012 B1
8220055 Kennedy Jul 2012 B1
8225373 Kraemer Jul 2012 B2
8233882 Rogel Jul 2012 B2
8234640 Fitzgerald et al. Jul 2012 B1
8234709 Viljoen et al. Jul 2012 B2
8239944 Nachenberg et al. Aug 2012 B1
8260914 Ranjan Sep 2012 B1
8266091 Gubin et al. Sep 2012 B1
8286251 Eker et al. Oct 2012 B2
8291499 Aziz et al. Oct 2012 B2
8307435 Mann et al. Nov 2012 B1
8307443 Wang et al. Nov 2012 B2
8312545 Tuvell et al. Nov 2012 B2
8321936 Green et al. Nov 2012 B1
8321941 Tuvell et al. Nov 2012 B2
8332571 Edwards, Sr. Dec 2012 B1
8365286 Poston Jan 2013 B2
8365297 Parshin et al. Jan 2013 B1
8370938 Daswani et al. Feb 2013 B1
8370939 Zaitsev et al. Feb 2013 B2
8375444 Aziz et al. Feb 2013 B2
8381299 Stolfo et al. Feb 2013 B2
8402529 Green et al. Mar 2013 B1
8464340 Ahn et al. Jun 2013 B2
8479174 Chiriac Jul 2013 B2
8479276 Vaystikh et al. Jul 2013 B1
8479291 Bodke Jul 2013 B1
8510827 Leake et al. Aug 2013 B1
8510828 Guo et al. Aug 2013 B1
8510842 Amit et al. Aug 2013 B2
8516478 Edwards et al. Aug 2013 B1
8516590 Ranadive Aug 2013 B1
8516593 Aziz Aug 2013 B2
8522348 Chen et al. Aug 2013 B2
8528086 Aziz Sep 2013 B1
8533824 Hutton et al. Sep 2013 B2
8539582 Aziz et al. Sep 2013 B1
8549638 Aziz Oct 2013 B2
8555391 Demir et al. Oct 2013 B1
8561177 Aziz et al. Oct 2013 B1
8566946 Aziz et al. Oct 2013 B1
8584094 Dadhia et al. Nov 2013 B2
8584234 Sobel et al. Nov 2013 B1
8584239 Aziz et al. Nov 2013 B2
8595834 Xie et al. Nov 2013 B2
8627476 Satish et al. Jan 2014 B1
8635696 Aziz Jan 2014 B1
8682054 Xue et al. Mar 2014 B2
8682812 Ranjan Mar 2014 B1
8689333 Aziz Apr 2014 B2
8695096 Zhang Apr 2014 B1
8713631 Pavlyushchik Apr 2014 B1
8713681 Silberman et al. Apr 2014 B2
8726392 McCorkendale et al. May 2014 B1
8739280 Chess et al. May 2014 B2
8763103 Locasto Jun 2014 B2
8763125 Feng Jun 2014 B1
8776229 Aziz Jul 2014 B1
8782792 Bodke Jul 2014 B1
8789172 Stolfo et al. Jul 2014 B2
8789178 Kejriwal et al. Jul 2014 B2
8793787 Ismael et al. Jul 2014 B2
8805947 Kuzkin et al. Aug 2014 B1
8806647 Daswani et al. Aug 2014 B1
8832829 Manni et al. Sep 2014 B2
8832836 Thomas Sep 2014 B2
8850570 Ramzan Sep 2014 B1
8850571 Staniford et al. Sep 2014 B2
8881234 Narasimhan et al. Nov 2014 B2
8881278 Kaplan Nov 2014 B2
8881282 Aziz et al. Nov 2014 B1
8898788 Aziz et al. Nov 2014 B1
8935779 Manni et al. Jan 2015 B2
8984638 Aziz et al. Mar 2015 B1
8990939 Staniford et al. Mar 2015 B2
8990944 Singh et al. Mar 2015 B1
8997219 Staniford et al. Mar 2015 B2
9009822 Ismael et al. Apr 2015 B1
9009823 Ismael et al. Apr 2015 B1
9027125 Kumar May 2015 B2
9027135 Aziz May 2015 B1
9071638 Aziz et al. Jun 2015 B1
9104867 Thioux et al. Aug 2015 B1
9106694 Aziz et al. Aug 2015 B2
9118715 Staniford et al. Aug 2015 B2
20010005889 Albrecht Jun 2001 A1
20010047326 Broadbent et al. Nov 2001 A1
20020018903 Kokubo et al. Feb 2002 A1
20020038430 Edwards et al. Mar 2002 A1
20020091819 Melchione et al. Jul 2002 A1
20020095607 Lin-Hendel Jul 2002 A1
20020116627 Tarbotton et al. Aug 2002 A1
20020144156 Copeland Oct 2002 A1
20020162015 Tang Oct 2002 A1
20020166063 Lachman et al. Nov 2002 A1
20020169952 DiSanto et al. Nov 2002 A1
20020184528 Shevenell et al. Dec 2002 A1
20020188887 Largman et al. Dec 2002 A1
20020194490 Halperin et al. Dec 2002 A1
20030074578 Ford et al. Apr 2003 A1
20030084318 Schertz May 2003 A1
20030101381 Mateev et al. May 2003 A1
20030115483 Liang Jun 2003 A1
20030188190 Aaron et al. Oct 2003 A1
20030191957 Hypponen et al. Oct 2003 A1
20030200460 Morota et al. Oct 2003 A1
20030212902 van der Made Nov 2003 A1
20030229801 Kouznetsov et al. Dec 2003 A1
20030237000 Denton et al. Dec 2003 A1
20040003323 Bennett et al. Jan 2004 A1
20040015712 Szor Jan 2004 A1
20040019832 Arnold et al. Jan 2004 A1
20040047356 Bauer Mar 2004 A1
20040083408 Spiegel et al. Apr 2004 A1
20040088581 Brawn et al. May 2004 A1
20040093513 Cantrell et al. May 2004 A1
20040111531 Staniford et al. Jun 2004 A1
20040117478 Triulzi et al. Jun 2004 A1
20040117624 Brandt et al. Jun 2004 A1
20040128355 Chao et al. Jul 2004 A1
20040165588 Pandya Aug 2004 A1
20040236963 Danford et al. Nov 2004 A1
20040243349 Greifeneder et al. Dec 2004 A1
20040249911 Alkhatib et al. Dec 2004 A1
20040255161 Cavanaugh Dec 2004 A1
20040268147 Wiederin et al. Dec 2004 A1
20050005159 Oliphant Jan 2005 A1
20050021740 Bar et al. Jan 2005 A1
20050033960 Vialen et al. Feb 2005 A1
20050033989 Poletto et al. Feb 2005 A1
20050050148 Mohammadioun et al. Mar 2005 A1
20050086523 Zimmer et al. Apr 2005 A1
20050091513 Mitomo et al. Apr 2005 A1
20050091533 Omote et al. Apr 2005 A1
20050091652 Ross et al. Apr 2005 A1
20050108562 Khazan et al. May 2005 A1
20050114663 Cornell et al. May 2005 A1
20050125195 Brendel Jun 2005 A1
20050149726 Joshi et al. Jul 2005 A1
20050157662 Bingham et al. Jul 2005 A1
20050183143 Anderholm et al. Aug 2005 A1
20050201297 Peikari Sep 2005 A1
20050210533 Copeland et al. Sep 2005 A1
20050238005 Chen et al. Oct 2005 A1
20050240781 Gassoway Oct 2005 A1
20050262562 Gassoway Nov 2005 A1
20050265331 Stolfo Dec 2005 A1
20050283839 Cowburn Dec 2005 A1
20060010495 Cohen et al. Jan 2006 A1
20060015416 Hoffman et al. Jan 2006 A1
20060015715 Anderson Jan 2006 A1
20060015747 Van de Ven Jan 2006 A1
20060021029 Brickell et al. Jan 2006 A1
20060021054 Costa et al. Jan 2006 A1
20060031476 Mathes et al. Feb 2006 A1
20060047665 Neil Mar 2006 A1
20060070130 Costea et al. Mar 2006 A1
20060075496 Carpenter et al. Apr 2006 A1
20060095968 Portolani et al. May 2006 A1
20060101516 Sudaharan et al. May 2006 A1
20060101517 Banzhof et al. May 2006 A1
20060117385 Mester et al. Jun 2006 A1
20060123477 Raghavan et al. Jun 2006 A1
20060143709 Brooks et al. Jun 2006 A1
20060150249 Gassen et al. Jul 2006 A1
20060161983 Cothrell et al. Jul 2006 A1
20060161987 Levy-Yurista Jul 2006 A1
20060161989 Reshef et al. Jul 2006 A1
20060164199 Gilde et al. Jul 2006 A1
20060173992 Weber et al. Aug 2006 A1
20060179147 Tran et al. Aug 2006 A1
20060184632 Marino et al. Aug 2006 A1
20060191010 Benjamin Aug 2006 A1
20060221956 Narayan et al. Oct 2006 A1
20060236393 Kramer et al. Oct 2006 A1
20060242709 Seinfeld et al. Oct 2006 A1
20060248519 Jaeger et al. Nov 2006 A1
20060248582 Panjwani et al. Nov 2006 A1
20060251104 Koga Nov 2006 A1
20060288417 Bookbinder et al. Dec 2006 A1
20070006288 Mayfield et al. Jan 2007 A1
20070006313 Porras et al. Jan 2007 A1
20070011174 Takaragi et al. Jan 2007 A1
20070016951 Piccard et al. Jan 2007 A1
20070033645 Jones Feb 2007 A1
20070038943 FitzGerald et al. Feb 2007 A1
20070064689 Shin et al. Mar 2007 A1
20070074169 Chess et al. Mar 2007 A1
20070094730 Bhikkaji et al. Apr 2007 A1
20070101435 Konanka et al. May 2007 A1
20070128855 Cho et al. Jun 2007 A1
20070142030 Sinha et al. Jun 2007 A1
20070143827 Nicodemus et al. Jun 2007 A1
20070156895 Vuong Jul 2007 A1
20070157180 Tillmann et al. Jul 2007 A1
20070157306 Elrod et al. Jul 2007 A1
20070168988 Eisner et al. Jul 2007 A1
20070171824 Ruello et al. Jul 2007 A1
20070174915 Gribble et al. Jul 2007 A1
20070192500 Lum Aug 2007 A1
20070192858 Lum Aug 2007 A1
20070198275 Malden et al. Aug 2007 A1
20070208822 Wang et al. Sep 2007 A1
20070220607 Sprosts et al. Sep 2007 A1
20070240218 Tuvell et al. Oct 2007 A1
20070240219 Tuvell et al. Oct 2007 A1
20070240220 Tuvell et al. Oct 2007 A1
20070240222 Tuvell et al. Oct 2007 A1
20070250930 Aziz et al. Oct 2007 A1
20070256132 Oliphant Nov 2007 A2
20070271446 Nakamura Nov 2007 A1
20080005782 Aziz Jan 2008 A1
20080022407 Repasi Jan 2008 A1
20080028463 Dagon et al. Jan 2008 A1
20080032556 Schreier Feb 2008 A1
20080040710 Chiriac Feb 2008 A1
20080046781 Childs et al. Feb 2008 A1
20080066179 Liu Mar 2008 A1
20080072326 Danford et al. Mar 2008 A1
20080077793 Tan et al. Mar 2008 A1
20080080518 Hoeflin et al. Apr 2008 A1
20080086720 Lekel Apr 2008 A1
20080098476 Syversen Apr 2008 A1
20080120722 Sima et al. May 2008 A1
20080134178 Fitzgerald et al. Jun 2008 A1
20080134334 Kim et al. Jun 2008 A1
20080141376 Clausen et al. Jun 2008 A1
20080181227 Todd Jul 2008 A1
20080184373 Traut et al. Jul 2008 A1
20080189787 Arnold et al. Aug 2008 A1
20080201778 Guo et al. Aug 2008 A1
20080209557 Herley et al. Aug 2008 A1
20080215742 Goldszmidt et al. Sep 2008 A1
20080222729 Chen et al. Sep 2008 A1
20080263665 Ma et al. Oct 2008 A1
20080295172 Bohacek Nov 2008 A1
20080301810 Lehane et al. Dec 2008 A1
20080307524 Singh et al. Dec 2008 A1
20080313738 Enderby Dec 2008 A1
20080320594 Jiang Dec 2008 A1
20090003317 Kasralikar et al. Jan 2009 A1
20090007100 Field et al. Jan 2009 A1
20090013408 Schipka Jan 2009 A1
20090031423 Liu et al. Jan 2009 A1
20090036111 Danford et al. Feb 2009 A1
20090037835 Goldman Feb 2009 A1
20090044024 Oberheide et al. Feb 2009 A1
20090044274 Budko et al. Feb 2009 A1
20090064332 Porras et al. Mar 2009 A1
20090077666 Chen et al. Mar 2009 A1
20090083369 Marmor Mar 2009 A1
20090083855 Apap et al. Mar 2009 A1
20090089879 Wang et al. Apr 2009 A1
20090094697 Provos et al. Apr 2009 A1
20090113425 Ports et al. Apr 2009 A1
20090125976 Wassermann et al. May 2009 A1
20090126015 Monastyrsky et al. May 2009 A1
20090126016 Sobko et al. May 2009 A1
20090133125 Choi et al. May 2009 A1
20090144823 Lamastra et al. Jun 2009 A1
20090158430 Borders Jun 2009 A1
20090172815 Gu et al. Jul 2009 A1
20090187992 Poston Jul 2009 A1
20090193293 Stolfo et al. Jul 2009 A1
20090199296 Xie et al. Aug 2009 A1
20090228233 Anderson et al. Sep 2009 A1
20090241187 Troyansky Sep 2009 A1
20090241190 Todd et al. Sep 2009 A1
20090265692 Godefroid et al. Oct 2009 A1
20090271867 Zhang Oct 2009 A1
20090300415 Zhang et al. Dec 2009 A1
20090300761 Park et al. Dec 2009 A1
20090328185 Berg et al. Dec 2009 A1
20090328221 Blumfield et al. Dec 2009 A1
20100005146 Drako et al. Jan 2010 A1
20100011205 McKenna Jan 2010 A1
20100017546 Poo et al. Jan 2010 A1
20100031353 Thomas Feb 2010 A1
20100037314 Perdisci et al. Feb 2010 A1
20100054278 Stolfo et al. Mar 2010 A1
20100115621 Staniford et al. May 2010 A1
20100180344 Malyshev et al. Jul 2010 A1
20100192223 Ismael et al. Jul 2010 A1
20100220863 Dupaquis et al. Sep 2010 A1
20100235831 Dittmer Sep 2010 A1
20100281541 Stolfo et al. Nov 2010 A1
20100281542 Stolfo et al. Nov 2010 A1
20100299754 Amit et al. Nov 2010 A1
20100306173 Frank Dec 2010 A1
20110004737 Greenebaum Jan 2011 A1
20110055907 Narasimhan et al. Mar 2011 A1
20110078794 Manni et al. Mar 2011 A1
20110093951 Aziz Apr 2011 A1
20110099620 Stavrou et al. Apr 2011 A1
20110099633 Aziz Apr 2011 A1
20110113231 Kaminsky May 2011 A1
20110145918 Jung et al. Jun 2011 A1
20110145920 Mahaffey et al. Jun 2011 A1
20110145934 Abramovici et al. Jun 2011 A1
20110167493 Song et al. Jul 2011 A1
20110167494 Bowen et al. Jul 2011 A1
20110173460 Ito et al. Jul 2011 A1
20110219449 St. Neitzel et al. Sep 2011 A1
20110219450 McDougal et al. Sep 2011 A1
20110225624 Sawhney et al. Sep 2011 A1
20110225655 Niemel et al. Sep 2011 A1
20110247072 Staniford et al. Oct 2011 A1
20110265182 Peinado et al. Oct 2011 A1
20110289582 Kejriwal et al. Nov 2011 A1
20110302587 Nishikawa et al. Dec 2011 A1
20110307954 Melnik et al. Dec 2011 A1
20110307955 Kaplan et al. Dec 2011 A1
20110307956 Yermakov et al. Dec 2011 A1
20110314546 Aziz et al. Dec 2011 A1
20120023593 Puder et al. Jan 2012 A1
20120054869 Yen et al. Mar 2012 A1
20120066698 Yanoo Mar 2012 A1
20120079596 Thomas et al. Mar 2012 A1
20120084859 Radinsky et al. Apr 2012 A1
20120110174 Wootton May 2012 A1
20120110667 Zubrilin et al. May 2012 A1
20120117652 Manni et al. May 2012 A1
20120121154 Xue et al. May 2012 A1
20120124426 Maybee et al. May 2012 A1
20120174186 Aziz et al. Jul 2012 A1
20120174196 Bhogavilli et al. Jul 2012 A1
20120174218 McCoy et al. Jul 2012 A1
20120198279 Schroeder Aug 2012 A1
20120210423 Friedrichs et al. Aug 2012 A1
20120222121 Staniford et al. Aug 2012 A1
20120255015 Sahita et al. Oct 2012 A1
20120255017 Sallam Oct 2012 A1
20120260342 Dube et al. Oct 2012 A1
20120266244 Green Oct 2012 A1
20120278886 Luna Nov 2012 A1
20120290848 Wang Nov 2012 A1
20120297489 Dequevy Nov 2012 A1
20120304244 Xie Nov 2012 A1
20120330801 McDougal et al. Dec 2012 A1
20130014259 Gribble et al. Jan 2013 A1
20130036472 Aziz Feb 2013 A1
20130047257 Aziz Feb 2013 A1
20130074185 McDougal et al. Mar 2013 A1
20130086684 Mohler Apr 2013 A1
20130097699 Balupari et al. Apr 2013 A1
20130097706 Titonis Apr 2013 A1
20130111587 Goel et al. May 2013 A1
20130117852 Stute May 2013 A1
20130117855 Kim et al. May 2013 A1
20130139264 Brinkley et al. May 2013 A1
20130160125 Likhachev et al. Jun 2013 A1
20130160127 Jeong Jun 2013 A1
20130160130 Mendelev et al. Jun 2013 A1
20130160131 Madou et al. Jun 2013 A1
20130167236 Sick Jun 2013 A1
20130174214 Duncan Jul 2013 A1
20130185789 Hagiwara et al. Jul 2013 A1
20130185795 Winn et al. Jul 2013 A1
20130185798 Saunders et al. Jul 2013 A1
20130191915 Antonakakis et al. Jul 2013 A1
20130196649 Paddon et al. Aug 2013 A1
20130227691 Aziz et al. Aug 2013 A1
20130246370 Bartram et al. Sep 2013 A1
20130263260 Mahaffey et al. Oct 2013 A1
20130291109 Staniford et al. Oct 2013 A1
20130298243 Kumar et al. Nov 2013 A1
20140053260 Gupta et al. Feb 2014 A1
20140053261 Gupta et al. Feb 2014 A1
20140130158 Wang et al. May 2014 A1
20140137180 Lukacs et al. May 2014 A1
20140169762 Ryu Jun 2014 A1
20140179360 Jackson et al. Jun 2014 A1
20140328204 Klotsche et al. Nov 2014 A1
20140337836 Ismael Nov 2014 A1
20140351935 Shao et al. Nov 2014 A1
20150096025 Ismael Apr 2015 A1
Foreign Referenced Citations (10)
Number Date Country
2439806 Jan 2008 GB
2490431 Oct 2012 GB
0206928 Jan 2002 WO
0223805 Mar 2002 WO
2007117636 Oct 2007 WO
2008041950 Apr 2008 WO
2011084431 Jul 2011 WO
2011112348 Sep 2011 WO
2012075336 Jun 2012 WO
2013067505 May 2013 WO
Non-Patent Literature Citations (77)
Entry
“Network Security: NetDetector—Network Intrusion Forensic System (NIFS) Whitepaper”, (“NetDetector Whitepaper”), (2003).
“Packet”, Microsoft Computer Dictionary, Microsoft Press, (Mar. 2002), 1 page.
“When Virtual is Better Than Real”, IEEEXplore Digital Library, available at, http://ieeexplore.ieee.org/xpl/articleDetails.jsp?reload=true&arnumbe- r=990073, (Dec. 7, 2013).
Abdullah, et al., Visualizing Network Data for Intrusion Detection, 2005 IEEE Workshop on Information Assurance and Security, pp. 100-108.
Adetoye, Adedayo , et al., “Network Intrusion Detection & Response System”, (“Adetoye”), (Sep. 2003).
Adobe Systems Incorporated, “PDF 32000-1:2008, Document management—Portable document format—Part1:PDF 1.7”, First Edition, Jul. 1, 2008, 756 pages.
AltaVista Advanced Search Results. “attack vector identifier”. Http://www.altavista.com/web/results?ltag=ody&pg=aq&aqmode=aqa=Event+Orch- estrator . . . , (Accessed on Sep. 15, 2009).
AltaVista Advanced Search Results. “Event Orchestrator”. Http://www.altavista.com/web/results?ltag=ody&pg=aq&aqmode=aqa=Event+Orch- esrator . . . , (Accessed on Sep. 3, 2009).
Apostolopoulos, George; hassapis, Constantinos; “V-eM: A cluster of Virtual Machines for Robust, Detailed, and High-Performance Network Emulation”, 14th IEEE International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems, Sep. 11-14, 2006, pp. 117-126.
Aura, Tuomas, “Scanning electronic documents for personally identifiable information”, Proceedings of the 5th ACM workshop on Privacy in electronic society. ACM, 2006.
Baecher, “The Nepenthes Platform: An Efficient Approach to collect Malware”, Springer-verlag Berlin Heidelberg, (2006), pp. 165-184.
Baldi, Mario; Risso, Fulvio; “A Framework for Rapid Development and Portable Execution of Packet-Handling Applications”, 5th IEEE International Symposium Processing and Information Technology, Dec. 21, 2005, pp. 233-238.
Bayer, et al., “Dynamic Analysis of Malicious Code”, J Comput Virol, Springer-Verlag, France., (2006), pp. 67-77.
Boubalos, Chris , “extracting syslog data out of raw pcap dumps, seclists.org, Honeypots mailing list archives”, available at http://seclists.org/honeypots/2003/q2/319 (“Boubalos”), (Jun. 5, 2003).
Chaudet, C. , et al., “Optimal Positioning of Active and Passive Monitoring Devices”, International Conference on Emerging Networking Experiments and Technologies, Proceedings of the 2005 ACM Conference on Emerging Network Experiment and Technology, CoNEXT '05, Toulousse, France, (Oct. 2005), pp. 71-82.
Chen, P. M. and Noble, B. D., “When Virtual is Better Than Real, Department of Electrical Engineering and Computer Science”, University of Michigan (“Chen”).
Cisco “Intrusion Prevention for the Cisco ASA 5500-x Series” Data Sheet (2012).
Cisco, Configuring the Catalyst Switched Port Analyzer (SPAN) (“Cisco”), (1992-2003).
Clark, John, Sylvian Leblanc,and Scott Knight. “Risks associated with usb hardware trojan devices used by insiders.” Systems Conference (SysCon), 2011 IEEE International. IEEE, 2011.
Cohen, M.I. , “PyFlag—An advanced network forensic framework”, Digital investigation 5, Elsevier, (2008), pp. S112-S120.
Costa, M. , et al., “Vigilante: End-to-End Containment of Internet Worms”, SOSP '05, Association for Computing Machinery, Inc., Brighton U.K., (Oct. 23-26, 2005).
Crandall, J.R. , et al., “Minos:Control Data Attack Prevention Orthogonal to Memory Model”, 37th International Symposium on Microarchitecture, Portland, Oregon, (Dec. 2004).
Deutsch, P. , “Zlib compressed data format specification version 3.3” RFC 1950, (1996).
Distler, “Malware Analysis: An Introduction”, SANS Institute InfoSec Reading Room, SANS Institute, (2007).
Dunlap, George W. , et al., “ReVirt: Enabling Intrusion Analysis through Virtual-Machine Logging and Replay”, Proceeding of the 5th Symposium on Operating Systems Design and Implementation, USENIX Association, (“Dunlap”), (Dec. 9, 2002).
Excerpt regarding First Printing Date for Merike Kaeo, Designing Network Security (“Kaeo”), (2005).
Filiol, Eric , et al., “Combinatorial Optimisation of Worm Propagation on an Unknown Network”, International Journal of Computer Science 2.2 (2007).
FireEye Malware Analysis & Exchange Network, Malware Protection System, FireEye Inc., 2010.
FireEye Malware Analysis, Modern Malware Forensics, FireEye Inc., 2010.
FireEye v.6.0 Security Target, pp. 1-35, Version 1.1, FireEye Inc., May 2011.
Gibler, Clint, et al. AndroidLeaks: automatically detecting potential privacy leaks in android applications on a large scale. Springer Berlin Heidelberg, 2012.
Goel, et al., Reconstructing System State for Intrusion Analysis, Apr. 2008 SIGOPS Operating Systems Review, vol. 42 Issue 3, pp. 21-28.
Gregg Keizer: “Microsoft's HoneyMonkeys Show Patching Windows Works”, Aug. 8, 2005, XP055143386, Retrieved from the Internet: URL:https://web.archive.org/web/20121022220617/http://www.informationweek- .com/microsofts-honeymonkeys-show-patching-wi/167600716 [retrieved on Sep. 29, 2014].
Heng Yin et al, Panorama: Capturing System-Wide Information Flow for Malware Detection and Analysis, Research Showcase @ CMU, Carnegie Mellon University, 2007.
Hjelmvik, Erik , “Passive Network Security Analysis with NetworkMiner”, (IN)Secure, Issue 18, (Oct. 2008), pp. 1-100.
Idika et al., A-Survey-of-Malware-Detection-Techniques, Feb. 2, 2007, Department of Computer Science, Purdue University.
IEEE Xplore Digital Library Sear Results for “detection of unknown computer worms”. Http//ieeexplore.ieee.org/searchresult.jsp?SortField=Score&SortOrder=desc- &ResultC . . . , (Accessed on Aug. 28, 2009).
Isohara, Takamasa, Keisuke Takemori, and Ayumu Kubota. “Kernel-based behavior analysis for android malware detection.” Computational intelligence and Security (CIS), 2011 Seventh International Conference on. IEEE, 2011.
Kaeo, Merike , “Designing Network Security”, (“Kaeo”), (Nov. 2003).
Kevin A Roundy et al: “Hybrid Analysis and Control of Malware”, Sep. 15, 2010, Recent Advances in Intrusion Detection, Springer Berlin Heidelberg, Berlin, Heidelberg, pp. 317-338, XP019150454 ISBN:978-3-642-15511-6.
Kim, H. , et al., “Autograph: Toward Automated, Distributed Worm Signature Detection”, Proceedings of the 13th Usenix Security Symposium (Security 2004), San Diego, (Aug. 2004), pp. 271-286.
King, Samuel T., et al., “Operating System Support for Virtual Machines”, (“King”).
Krasnyansky, Max , et al., Universal TUN/TAP driver, available at https://www.kernel.org/doc/Documentation/networking/tuntap.txt (2002) (“Krasnyansky”).
Kreibich, C. , et al., “Honeycomb-Creating Intrusion Detection Signatures Using Honeypots”, 2nd Workshop on Hot Topics in Networks (HotNets-11), Boston, USA, (2003).
Kristoff, J. , “Botnets, Detection and Mitigation: DNS-Based Techniques”, NU Security Day, (2005), 23 pages.
Leading Colleges Select FireEye to Stop Malware-Related Data Breaches, FireEye Inc., 2009.
Li et al., A VMM-Based System Call Interposition Framework for Program Monitoring, Dec. 2010, IEEE 16th International Conference on Parallel and Distributed Systems, pp. 706-711.
Liljenstam, Michael , et al., “Simulating Realistic Network Traffic for Worm Warning System Design and Testing”, Institute for Security Technology studies, Dartmouth College (“Liljenstam”), (Oct. 27, 2003).
Lindorfer, Martina, Clemens Kolbitsch, and Paolo Milani Comparetti. “Detecting environment-sensitive malware.” Recent Advances in Intrusion Detection. Springer Berlin Heidelberg, 2011.
Lok Kwong et al: “DroidScope: Seamlessly Reconstructing the OS and Dalvik Semantic Views for Dynamic Android Malware Analysis”, Aug. 10, 2012, XP055158513, Retrieved from the Internet: URL:https://www.usenix.org/system/files/conference/usenixsecurity12/sec12- -final107.pdf [retrieved on Dec. 15, 2014].
Marchette, David J., “Computer Intrusion Detection and Network Monitoring: A Statistical Viewpoint”, (“Marchette”), (2001).
Margolis, P.E. , “Random House Webster's ‘Computer & Internet Dictionary 3rd Edition’”, ISBN 0375703519, (Dec. 1998).
Moore, D , et al., “Internet Quarantine: Requirements for Containing Self-Propagating Code”, INFOCOM, vol. 3, (Mar. 30-Apr. 3, 2003), pp. 1901-1910.
Morales, Jose A., et al., ““Analyzing and exploiting network behaviors of malware.””, Security and Privacy in Communication Networks. Springer Berlin Heidelberg, 2010. 20-34.
Mori, Detecting Unknown Computer Viruses, 2004, Springer-Verlag Berlin Heidelberg.
Natvig, Kurt , “SandBoxII: Internet”, Virus Bulletin Conference, (“Natvig”), (Sep. 2002).
NetBIOS Working Group. Protocol Standard for a NetBIOS Service on a TCP/UDP transport: Concepts and Methods. STD 19, RFC 1001, Mar. 1987.
Newsome, J. , et al., “Dynamic Taint Analysis for Automatic Detection, Analysis, and Signature Generation of Exploits on Commodity Software”, In Proceedings of the 12th Annual Network and Distributed System Security, Symposium (NDSS '05), (Feb. 2005).
Newsome, J. , et al., “Polygraph: Automatically Generating Signatures for Polymorphic Worms”, In Proceedings of the IEEE Symposium on Security and Privacy, (May 2005).
Nojiri, D. , et al., “Cooperation Response Strategies for Large Scale Attack Mitigation”, DARPA Information Survivability Conference and Exposition, vol. 1, (Apr. 22-24, 2003), pp. 293-302.
Oberheide et al., CloudAV.sub.--N-Version Antivirus in the Network Cloud, 17th USENIX Security Symposium USENIX Security '08 Jul. 28-Aug. 1, 2008 San Jose, CA.
Reiner Sailer, Enriquillo Valdez, Trent Jaeger, Roonald Perez, Leendert van Doom, John Linwood Griffin, Stefan Berger., sHype: Secure Hypervisor Appraoch to Trusted Virtualized Systems (Feb. 2, 2005) (“Sailer”).
Silicon Defense, “Worm Containment in the Internal Network”, (Mar. 2003), pp. 1-25.
Singh, S. , et al., “Automated Worm Fingerprinting”, Proceedings of the ACM/USENIX Symposium on Operating System Design and Implementation, San Francisco, California, (Dec. 2004).
Spitzner, Lance , “Honeypots: Tracking Hackers”, (“Spizner”), (Sep. 17, 2002).
The Sniffers's Guide to Raw Traffic available at: yuba.stanford.edu/.about.casado/pcap/section1.html, (Jan. 6, 2014).
Thomas H. Ptacek, and Timothy N. Newsham , “Insertion, Evasion, and Denial of Service: Eluding Network Intrusion Detection”, Secure Networks, (“Ptacek”), (Jan. 1998).
U.S. Pat. No. 8,171,553 filed Apr. 20, 2006, Inter Parties Review Decision dated Jul. 10, 2015.
U.S. Pat. No. 8,291,499 filed Mar. 16, 2012, Inter Parties Review Decision dated Jul. 10, 2015.
Venezia, Paul , “NetDetector Captures Intrusions”, InfoWorld Issue 27, (“Venezia”), (Jul. 14, 2003).
Wahid et al., Characterising the Evolution in Scanning Activity of Suspicious Hosts, Oct. 2009, Third International Conference on Network and System Security, pp. 344-350.
Whyte, et al., “DNS-Based Detection of Scanning Works in an Enterprise Network”, Proceedings of the 12th Annual Network and Distributed System Security Symposium, (Feb. 2005), 15 pages.
Williamson, Matthew M., “Throttling Viruses: Restricting Propagation to Defeat Malicious Mobile Code”, ACSAC Conference, Las Vegas, NV, USA, (Dec. 2002), pp. 1-9.
Yuhei Kawakoya et al: “Memory behavior-based automatic malware unpacking in stealth debugging environment”, Malicious and Unwanted Software (Malware), 2010 5th International Conference on, IEEE, Piscataway, NJ, USA, Oct. 19, 2010, pp. 39-46, XP031833827, ISBN:978-1-4244-8-9353-1.
Zhang et al., The Effects of Threading, Infection Time, and Multiple-Attacker Collaboration on Malware Propagation, Sep. 2009, IEEE 28th International Symposium on Reliable Distributed Systems, pp. 73-82.
U.S. Appl. No. 14/042,505, filed Sep. 30, 2013 Final Office Action dated Jul. 31, 2015.
U.S. Appl. No. 14/042,505, filed Sep. 30, 2013 Non-Final Office Action dated Feb. 24, 2015.
Continuation in Parts (1)
Number Date Country
Parent 14042505 Sep 2013 US
Child 14321636 US