System and method for verifying a cyberthreat

Information

  • Patent Grant
  • 10701091
  • Patent Number
    10,701,091
  • Date Filed
    Monday, July 23, 2018
    6 years ago
  • Date Issued
    Tuesday, June 30, 2020
    4 years ago
Abstract
A computerized method to identify potentially malicious code in a network is described. Herein, information associated with a threat is analyzed to yield intelligence that includes instructions or indicators related to the threat. Based on the intelligence, a determination is made as to an endpoint device, which includes an endpoint agent, is to (i) receive at least one of the instructions or the indicators, (ii) conduct an examination of memory of the endpoint device for data corresponding to any of the instructions or the indicators, and (iii) obtain results of the examination. Verification information, including at least a portion of the results of the examination by the endpoint device and an identifier for the endpoint device, is gathered and correlated to determine whether such information corresponds to a verified threat. Thereafter, a notification, including a portion of the verification information, is sent to identify the verified threat.
Description
BACKGROUND
1. Field

The present inventive concept relates to a system and method to detect and contain threatening executable code. More specifically, an embodiment of the present inventive concept relates to a system and method operable to improve identification and containment of threatening software across a plurality of endpoints.


2. Discussion of Related Art

Systems currently exist to detect executable code as it passes over a network. These systems employ a variety of methods of detection, including analyzing traffic at various protocol and application layers as well as analyzing common application artifacts such as email messages. These systems can analyze executable code using a variety of methods to extract information about the code's behavior. Existing systems use the extracted information to classify the code as benign or a potential threat.


While such existing systems may be effective at identifying threats represented by executable code in network traffic, they are not suitable to identify devices or users that may have been exposed to the threat. For example, existing systems and methods cannot conclusively determine if a threat or piece of code has reached a device on which it could be executed or, once such a threat or piece of code has reached such a device, whether or not it has actually executed.


Further, analysis of information and data traffic and application artifacts, and generation of information therefrom, takes time. During the process of analysis, there is a risk that a threatening piece of code may be transmitted to, received by, and potentially executed on a device. Even if a security investigator using existing systems can successfully determine that a threat has landed or executed, intervention against the threat using existing systems and methods must be performed manually or by channels outside the normal network, sometimes requiring physical access to the device, thus further extending the time between initiating analysis and effectively reacting to discovery of a threat. During the time it takes to implement existing systems and methods to detect, control or contain threatening software, such threatening software may be allowed to further its malicious functions.


Thus, there is a need for a system and method that provides improved detection, verification, tracking and reaction to threatening software.


SUMMARY

Embodiments of the present inventive concept described herein remedy the aforementioned problems by providing a unique system and method operable to detect and contain threatening executable code.


Embodiments of the present inventive concept include software installed at an “endpoint”, that is, at a device, such as a computer or mobile device, including a processor that is configured to communicate with a network, that is to be monitored and/or audited according to embodiments of the present inventive concept. Endpoints may illustratively include, e.g., client/server desktop computers, laptop/notebook computers, process controllers, medical devices, data acquisition devices, mobile devices such as smartphones and tablet computers, intermediate network devices and nodes such as network servers, and/or any other intelligent electronic device having network connectivity that may be configured to implement an endpoint agent. The endpoint agent(s) allow gathering of data and information relating to a network and its contents and components by utilizing audit modules to examine endpoints for evidence they have been exposed to a given threat, and to determine whether that threat (most commonly, executable code) has executed or otherwise been realized.


An endpoint agent may be installed locally at an endpoint or elsewhere so long as it is capable of accessing system information and memory of, and of auditing, the endpoint to which it is assigned. Utilizing software configured to monitor, and that is preferably installed on, endpoints means being present and persistent for extended timeframes and providing consistent and persistent monitoring and analysis. This allows embodiments of the system of the present inventive concept to record historical information about system state at endpoints, especially information relevant to common threat mechanisms, such that the information may be used to detect threats after they have landed, executed, and even taken action to hide their presence.


The endpoint agent(s) may then communicate information back to the original detecting and coordinating parts of the system as well as to any other appropriately-configured security software or platforms. The endpoint agent thus may enable a user, or an automated component of the system in certain embodiments, to take action against a threat on the endpoint(s), including by using the endpoint agent(s) to contain the threat. This containment strategy is unique, including because it is in response to a threat verified using present and historical data, and retains the ability to contact, monitor, remediate and ultimately lift containment on the affected endpoint while limiting the threat's ability to communicate.


The system and method of the present inventive concept are a departure from and an improvement over conventional systems in that, among other things, the system and method of the present inventive concept allows an investigator to determine whether a threat has persisted or executed. It allows that information to be communicated back to the detection mechanism (or other system) such that a user (or machine) may make a decision to take further action such as to contain the threat quickly and/or permit the system to do so automatically. All of this may take place in a matter of seconds, minutes, or hours.


These and other goals of the present inventive concept may be achieved by providing a method to identify potentially malicious code at an endpoint, e.g., a first endpoint among one or more endpoints, in a network. The method may include the step of using a threat monitor to monitor network data and extract a set of network data therefrom that includes “threat intelligence” or just “intelligence,” which is any information exchanged or residing within the system network that may have strategic importance for detecting, tracking or analyzing a present or past threat. The threat monitor may employ a network monitor more specifically to monitor the network. That set of network data commonly includes executable code, and is processed to generate a report, which may be in the form of structured data and information. The set of network data may be processed using an analyzer of the threat monitor, for example a static or a dynamic analyzer.


A verifier including an agent coordinator may receive the report, and based thereon issue (i) instructions and/or (ii) indicators to an endpoint agent. Instructions may tell an agent to perform or not to perform certain actions and may comprise executable code or other instructions in a format that may be acted on by the endpoint agent. Indicators are pieces of information, such as logical “if-then” tests, data ranges, and other types of information, that may be used for comparison with information that resides on or is accessible to the endpoint or for configuring an audit to be performed on the endpoint. The endpoint agent may then process the (i) instructions and/or (ii) indicators to generate verification information.


In a preferred embodiment, the endpoint agent process may include one or more additional steps, after it takes in or receives instructions and/or indicators. The instructions and indicators may first pass to an audit controller that may control and configure tasking for an audit module of the endpoint agent. The audit module may retrieve, consolidate, and/or index information residing on or retrievable by the endpoint. It may do so intermittently or continuously pursuant to pre-programmed instructions automatically executed within the system and/or as prompted by additional requests from the audit controller, such as in response to a set of instructions and/or indicators from the verifier. The audit module may also form part of a persistent monitor, which also includes a buffered storage module for controlling storage of audit data created by an audit module.


Once the audit controller has provided instructions and/or indicators to the audit module, the audit module may perform an inspection of data and information residing on or accessible to the endpoint, and may further inspect its own records and audit data stored by the endpoint agent, and create resulting audit data. The audit data may then be passed to the buffered storage module for storage under conditions that may be pre-determined or that may vary with instructions provided by other components of the system or based on computer learning and/or system variances and needs. The audit data may then pass to an indicator matcher, which may or may not have been configured by the audit controller for example based on the instructions and/or indicators which prompted the audit being evaluated, and the indicator matcher may then process the audit data, including any hit candidates, to create recommendations to the audit controller on certain audit data that should be packaged up for transmission as verification information to be exported from the endpoint agent. In simpler embodiments, the audit data itself may be directly passed out of the endpoint agent as the verification information.


Still further, the verification information may be passed from the endpoint agent to the verifier, and processed by the verifier to determine whether the verification information indicates a verified threat. In performing this processing, the verification information may be compared against one or both of data obtained from another endpoint and data obtained from a security information and event management module (SIEM). The verification information, and possibly information regarding whether it represents a verified threat, may also be passed to the SIEM and/or the threat monitor. The method may further include changing the configuration and/or settings of the threat monitor based on the verification information.


Yet still further, the method may include steps for performing a containment action based on the verification information. A “containment action” is an action, for example changing or providing instructions to change endpoint system permissions, settings, communication patterns, execution priorities, memory allocations and similar properties, and is intended to effect the operation or disposition of potentially malicious software and/or information or data related to the potentially malicious software. In a preferred embodiment, after the verifier processes verification information and determines that there is verified threat information from the endpoint, the agent controller of the verifier configures a containment package including instructions for containment actions to be taken and/or executable code for an additional module which may be installed as part of the endpoint agent and which may undertake certain containment actions (a “containment agent”).


Additional aspects, advantages, and utilities of the present inventive concept will be set forth in part in the description which follows and, in part, will be obvious from the description, or may be learned by practice of embodiments of the present inventive concept.


The foregoing is intended to be illustrative and is not meant in a limiting sense. Many features and subcombinations of the present inventive concept may be made and will be readily evident upon a study of the following specification and accompanying drawings comprising a part thereof. These features and subcombinations may be employed without reference to other features and subcombinations.





BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the present inventive concept are described in detail below with reference to the attached drawing figures, wherein:



FIG. 1 is a flowchart, partially in block diagram form, illustrating an example of a system or process of the present inventive concept to identify potentially malicious software at an endpoint;



FIG. 2 is a flowchart, partially in block diagram form, illustrating an example of a system or process of the present inventive concept to identify potentially malicious software at an endpoint;



FIG. 3 is a flowchart, partially in block diagram form, illustrating an example of a system or process of the present inventive concept to perform auditing on an endpoint and produce verification information; and



FIG. 4 is a flowchart, partially in block diagram form, illustrating an example of a system or process of the present inventive concept to perform a containment action.





The drawing figures do not limit the present inventive concept to the specific examples disclosed and described herein. The drawings are not to scale, emphasis instead being placed upon clearly illustrating embodiments of the principles of the present inventive concept.


DETAILED DESCRIPTION

The following detailed description references the accompanying drawings that illustrate the present inventive concept. The illustrations and description are intended to describe aspects of the present inventive concept in sufficient detail to enable those skilled in the art to practice the present inventive concept. Other components can be utilized and changes can be made without departing from the scope of the present inventive concept. The following detailed description is, therefore, not to be taken in a limiting sense. The scope of the present inventive concept is defined only by the appended claims, along with the full scope of equivalents to which such claims are entitled.


In this description, references to “one embodiment,” “an embodiment,” or “embodiments” mean that the feature or features being referred to are included in at least one embodiment of the present inventive concept. Separate references to “one embodiment,” “an embodiment,” or “embodiments” in this description do not always refer to the same embodiment and are also not mutually exclusive unless so stated and/or except as will be readily apparent to those skilled in the art from the description. For example, a feature, structure, act, etc. described in one embodiment may also be included in other embodiments, but may not be included in all embodiments. Thus, the present inventive concept can include a variety of combinations and/or integrations of the embodiments described herein.


An embodiment of the present inventive concept provides a system and method that improves verification, information gathering regarding, and containment of threatening or potentially threatening executable code. Executable code is not limited to native binaries but may also include documents such as Portable Document Format (PDF) or common productivity documents such as those created with software sold under the trademarks EXCEL® and WORD™, or any artifact that may be itself executed, interpreted or otherwise processed, or that may contain code which it may cause to be executed or interpreted. Executable code may be extracted according to an embodiment of the present inventive concept at any level or by content-aware inspection of any application protocol and may use cues provided by other network traffic (such as requests to update existing components), or application-specific information (such as email headers or persistent HTTP session information). A software “module” as used herein shall refer to all or a part of a software program employed to perform a function described herein, and is not intended to imply that such code is or is not capable of independent and/or isolated functioning apart from other code nor that such code was or was not developed independently or in conjunction with other software code, nor that such code physically resides and/or is executed together with or apart from other code.



FIG. 1 illustrates an overview of a system of an embodiment of the present inventive concept with its primary subsystems. The system includes a threat monitor 100 that detects threats such as those represented by executable code, typically by analyzing traffic on a computer network and performing analysis to determine if that traffic contains executable code that may represent a threat. Network “traffic” may include any data transmitted over a network. Network traffic may include text, software, images, audio, or other digital data. Examples of network traffic include e-mail messages, instant messages, web content, or any network data that may be transmitted using a Hypertext Transfer Protocol, Hypertext Markup Language protocol, or may be transmitted in a manner suitable for display on a Web browser software application. The threat monitor 100 may copy any portion of the traffic, for example, any number of data packets from the network traffic, and may also capture metadata from the traffic. When a characteristic of the network traffic, such as a sequence of code, is identified that meets certain conditions such as those derived from intelligence known or accessible to the threat monitor 100, the threat monitor 100 may identify such a portion of the network traffic as a possible threat.


The threat monitor 100 further transmits reports for consumption, interpretation and analysis by a verifier 110. Preferably the reports are in a structured form based on a pre-determined format that may be updated from time to time using updates introduced into the system externally or based on computer learning and/or adaptations to network traffic or verification information collected by the system over time. The verifier 110 verifies reports provided by the threat monitor. It does so in part by supplying endpoint agents 120 installed at, or at least operable to access the memory or operating system of, endpoints (as described in more detail below) with threat indicators and instructions. Each endpoint may be referred to as a “node,” and the endpoint agents 120 enable the evaluation of such indicators and execution of such instructions, relying on information regarding historical system state and information gathered in response to such indicators and instructions to determine if a threat is present and, potentially, whether the threat (often, executable code) has executed or otherwise been realized. The endpoint agents 120 are further operable to communicate threat verification information (including, for example audit data and hit data, and other contextual data and perhaps the indicators and instructions themselves as well) collected and/or generated in connection with the instructions and indicators back to the verifier 110.


“Indicators” include information or functions, such as logical test instructions, which if compared against audit data or relied on to configure or conduct an audit may indicate that an endpoint or other component of a system may be compromised. Examples of indicators include descriptions of files with a specific hash sum or database entries which match a particular regular expression (example: “a file exists named ‘evil.exe’ that was created after 3 p.m. yesterday”). Indicators may relate to any specific type or subset of information regarding system state (including but not limited to: contents of memory, contents of storage, names of files, contents of files including both byte content and the result of any analysis such as hash sums calculated from those bytes, and contents of operating system abstractions such as a system registry). Indicators and instructions, such as logical test instructions, may be stored and transmitted in an interchange format such as XML or JSON, and may describe logical operations and predicates which may be evaluated automatically by an appropriately configured software program. A common format for such an indicator is OpenlOC, but this is not the only format capable of use in accordance with the present inventive concept.


The system of FIG. 1 may include a security information and event manager or SIEM 130 configured to consume information such as, but not limited to, verification information or other information related to one or more endpoints, and correlate the information so that a user or machine may take action based on the information. The SIEM 130 may be embodied in software, hardware, or a combination thereof. The SIEM 130 may be configured to perform one or more security management functions such as, but not limited to, gathering and/or aggregating security-related information from one or more sources. In this manner, the SIEM 130 provides improved analysis and/or control of the information. The SIEM 130 of the present inventive concept is not limited to management of security information and/or events. Indeed, it is foreseen that the SIEM 130 may include additional functionality, e.g., functionality related to identifying, processing, and/or managing security related information and/or events. It is also foreseen that one or more functions of the SIEM 130 may be handled by one or more modules other than the SIEM 130, for instance, by an appropriately-configured verifier 110 if the SIEM 130 is unavailable. It is also foreseen that the present inventive concept may include one or more modules in lieu of or in addition to the SIEM 130. For instance, a security information management (SIM) module, a security event management (SEM) module, and/or the like may be used in lieu of or in addition to the SIEM 130.


The SIEM 130 according to embodiments of the present inventive concept may optionally convey threat verification information back to the threat monitor 100. The SIEM 130 may correlate verification information with intelligence gathered from many sources, including prior intelligence gathered from the endpoint agent 120, intelligence gathered from other endpoint(s), and/or with definitions or against rules or tests stored in memory accessible to the SIEM and optionally updated from time to time via a communication network.


Turning now to FIG. 2, the verifier 210 of an embodiment of the present inventive concept is illustrated in additional detail along with a breakout of components of the threat monitor 200. A threat monitor 200 typically consists of components such as a network monitor 202 and one or more analyzers 204. Those components are illustrated separately in FIG. 2 because they may not always be implemented together in the same subsystem or component. However, they may be integrated in certain embodiments. A network monitor 202 monitors network traffic to identify and extract data such as executable code from the network, typically as it travels across the network. A grouping of such network data may be referred to herein as a “set.” Any means to identify and extract executable code may be used in addition to raw network monitoring. The network monitor 202 sends the executable code it captures to an analyzer 204 for analysis.


The analyzer 204 gathers information about the set of network data through a variety of methods. For example, the analyzer 204 may employ a static analyzer 206 to gather information about executable code without executing it (such as by measuring its size and calculating a hash from the bytes of which it is comprised). The static analyzer 206 then adds information resulting from its analysis to a report. The analyzer 204 may further or alternatively employ or comprise a dynamic analyzer 208 to completely or partially execute the executable code and monitor its behavior, such as in a sandboxed and/or instrumented environment. The dynamic analyzer 208 may then add information resulting from its analysis to a report. A report's information may include what changes executing code attempts to make or makes to the environment where it executes, operations executing code attempts which may not change the environment, such as network connections or DNS lookups, and any other operations or behaviors of executing code that are detectable in the environment. The analyzer 204 packages the reports from its analysis mechanisms, such as the two discussed hereinabove, and uses configuration and other information (such as historical or human intelligence) to attach a designation of the type and degree of threat to a computer or user's security posed by items or network data referenced in the report.


Reports are transmitted to the verifier 210 which may consist of one or more components of software executing on one or more platforms and/or devices. The reports are communicated to a report analyzer 212 of the verifier 210. The report analyzer 212 may accept those reports via a network connection so they may be acted upon in a timely manner after detection and/or analysis. The report analyzer 212 analyzes a report and yields intelligence, including indicators and instructions (as well as associations between those indicators and the respective items in the report(s) giving rise to them, and information added to the instructions and/or indicators that specifies one or more hosts or sets of hosts or endpoints which should specifically be contacted to verify a described threat) and communicates these to an agent coordinator 214 of the verifier 210. The report analyzer 212 may apply selection methodologies based on configuration or other analysis results to refine reports into, or select indicators and instructions that, represent a higher-fidelity representation (high-fidelity indicators) of the threat than would otherwise have been apparent from analysis of all characteristics described in the report. These may provide stronger evidence that a given threat has been received by a device or user such as an endpoint (i.e., the threat “persisted”) and further help determine whether the executable code associated with the threat has been executed or “detonated” on the device.


The agent coordinator 214 interprets the intelligence, including any indicators or instructions, performs any further configuring or selection/generation of indicators and instructions that may be needed before further transmission, selects an endpoint agent(s) 220 to perform processing of the instructions and indicators, then communicates that processing work to such endpoint agent(s) 220. For example, the work for endpoint agent 220 to perform may consist of indicators and instructions on how to test those indicators, including specific configurations for individual methods to acquire relevant endpoint system state information. The agent coordinator 214 may include a system of one or more devices running one or more pieces of software that can track, enroll, uniquely identify, and communicate with endpoint agents 220, as well as assign work and configuration to be executed by specific endpoint agents 220 and retrieve the result of that work. Communications with endpoint agents 220 may occur directly or indirectly, via cryptographically and secure intermediate locations. Results of work or other threat-related information received from endpoint agents 220, or “verification information,” are received as payloads that may be of an arbitrary size, and such data may be stored and forwarded in order to successfully reach an endpoint agent 220 or a component of the agent coordinator 214. If such data is stored, the data may be stored in such a way that an intermediary would not immediately be able to inspect the transmitted data, such as using a cryptographically-sound PKI method.


An endpoint agent 220 tests endpoint system state and examines memory, including by performing audits thereof and/or accessing historical information about the system or endpoint, for example to determine if an indicator it receives is satisfied. The endpoint agent 220 is installed on, or at least operable to access the memory or operating system of, one or more endpoint devices or nodes and is configured with a means to request processing work from a configured agent manager and/or agent coordinator 214, to process the work (i.e., the instructions and indicators), and provide the result of work, including verification information, when the work is in progress and/or is complete.


The endpoint agent 220 audits one or more nodes or endpoints on the network, particularly looking for specific instances of any number of “high-fidelity indicators” in current or recorded system state and memory. It may receive work from the agent coordinator 214 in the form of indicators and instructions via a cryptographically secure channel and mechanism which may entail polling, contacting intermediate devices or any other means. The various components of the endpoint agent 220 may employ one or more methods to continuously sample and record system state information so that the system is capable of “looking back in time”, so to speak, for example to determine if any part of the endpoint's system state matches an indicator and also whether some previous system state matched an indicator and at what point in time it did so. Preferably, the endpoint agent 220 and its components will operate, and more specifically will perform monitoring and recording functions, in a manner that is unlikely to cause immediate loss of forensic viability of the system, such as by pre-allocating storage such that data written to disk does not overwrite disk sectors which may contain information relevant to an investigation. The workflow should be controlled to prevent unintentional operation of features or components which may negatively affect the endpoint.


The endpoint agent 220 may still further receive work in the form of instructions to update itself and/or extend its functionality by installing or uninstalling components or other software, for example instructions to install additional software on the endpoint which can make changes to system state or behavior such that malicious software may continue to operate but may not affect the endpoint and surrounding systems.


This endpoint agent 220 may be configured so that it can post the results of completed work back, including verification information, such that the agent coordinator 214 can retrieve it and utilize it. The result of an endpoint agent's 214 completed work may include hit data including information from indicators and the results of processing same, audit methods, original intelligence sources, audit data, audit results and ambient system state. The endpoint agent 220 may be configured to report back the result of the work via a cryptographically secure channel (as above, which may entail multiple devices or connectivity mechanisms), including data regarding hits or “hit data”. “Hit data” is information that at least partially satisfies an indicator and/or is returned as a result of executing an instruction, i.e., that creates a “hit,” and may include any number of the following: the indicator which hit on the system state or memory, a partial or complete sample of the relevant system state or memory, a time stamp associated with the sample that generated a hit, ambient data not directly associated with the indicator but that helps to identify the system or provide data not directly requested but which is available to the mechanism (for example, the host name, logged-in users, or the current contents of a DNS cache).



FIG. 3 illustrates the endpoint agent 320 in greater detail. Indicators and instructions are communicated to the endpoint agent 320 via a cryptographically secure mechanism. A component of the endpoint agent 320 is an audit controller 322, which receives such indicators and instructions. The audit controller 322 preferably controls audits of system state and memory performed by an audit module 324. In certain embodiments, the audit module 324 forms part of a persistent monitor 326 along with a buffered storage module 328, discussed in more detail below. The audit controller 322 interprets and/or packages the instructions and indicators into suitable configuration and sends to the audit module 324 for performance. The audit controller 322 also preferably controls operation of the persistent monitor 326 more broadly, including by directing its standing operations which in preferred embodiments include continuously recording system state. The audit controller 322 also, in preferred embodiments, uses indicators to configure an indicator matcher 329 component which can perform instantaneous and historical matching on system state and memory using audit data and indicators.


The persistent monitor 326 of the endpoint agent 320 monitors the operating system file system state and memory of the endpoint in preferred embodiments. For example, it may be configured to detect “any file that is created”, and, if one is created, to provide audit data about that operation to the indicator matcher 329 (audit data matching any criteria set, for example a criterion set by the audit controller 322, may also be persisted in the buffered storage module 328 for later, historical matching). The persistent monitor 326 may also be configured to automatically report, directly or by way of the verifier or other system components, certain system events as or after they occur at the endpoint(s) to other components of the system, for example to the threat monitor for incorporation into or interpretation as intelligence or to the verifier or audit controller 322 for further configuration of indicators that may be active at one or more endpoint agents 320. The endpoint agent 320 may also receive indicators and instructions that are used to refine the configuration of the persistent monitor 326 (and it, in turn, may modify operation of individual audit methods), including by limiting the criteria for recording information obtained from audits. For example, further to the example described immediately above, the criteria may be changed to “any file created at or below [a certain path]”, which is a narrower set of events.


The buffered storage module 328 may be configured (manually, automatically, or using an adaptive algorithm) on a per module and/or per system state category basis (such as file system, network connections, DNS lookups, etc.) so that an endpoint system state that changes often (and thus generates more audit data) may be buffered, stored, tuned, and retained differently from states with different rates of change or size of payload.


As endpoint system state changes are detected and persisted, the persistent monitor 326 may communicate hit candidates to the indicator matcher component of the endpoint agent 320. As hit candidates information is matched against configured indicators by the indicator matcher 329, the indicator matcher 329 will communicate hit data to the audit controller 322 for packaging as completed work to be augmented with any relevant system state and data, additional context, sample data and/or time stamped snapshots of the data that matched the indicator. Hit data is then communicated back to the verifier as threat verification information for further analysis and dissemination.


Returning to FIG. 2, the verifier 210 retrieves verification information, including hit data and other intelligence from the endpoint agent 220 and performs further evaluation and correlation if required to determine if such information represents a verified threat. Verification by the verifier 210 may involve contacting and receiving information from other endpoint systems and even other networks, and the verifier may utilize the SIEM 230 to make such contacts and may otherwise communicate verification information to and through the SIEM 230. Verification information may contain a set of host or endpoint identification data, hit data, and other data that might aid a detector or other information system to correlate the endpoints' state and memory with the original threat. The SIEM 230, or similar system for performing such functions, may include syslog, using a format like CEF, or may be an HTTP receiver configured to accept a REST-style payload in a structured format like XML or JSON.


The SIEM 230 or other configured system may then present the verification information to a user or automatic correlation mechanism (such as any component of the threat monitor 200) or may perform further correlations itself, such as against data from other endpoint agent(s) and taking into account the indicators and instructions leading to the verification information, or against information obtained from other threat monitoring systems. The SIEM 230 may also forward the verification information as well as any other configured or received state information on to the original network monitor 202, such that it may correlate hit data and intelligence with its original detection of a threat or potential threat and present that verified threat to the user. The verifier 210 may further send a notification and location (such as a URL) at which a complete hit data set may be retrieved via an appropriately authorized and authenticated channel.


The correlations performed by the SIEM 230, verifier, and/or threat monitor may automatically trigger, for example via the controller discussed below, additional steps of the method of the present inventive concept to verify and/or contain threat(s). For example, the controller may receive the results of such correlations, analyze them to determine the threat level presented thereby, and initiate one or more of the following steps at the endpoint agent 220 and/or other endpoint agents communicatively coupled to the controller via the communication network: (1) further investigation to verify or gather additional information regarding the threat(s), and (2) containment actions regarding the threat(s). One or more of these steps may be performed based on a threshold evaluation that may take into account high-fidelity indicators such as the source of the verification information, the possible impact of execution of the threat(s) at one or more endpoint(s), the number of times the verification information has been detected at the endpoint agent 220, and the number of times the verification information has been reported from other endpoint agents. This weighted threshold analysis may take into account, and assign varying weight to, a number of different factors indicating the threat level and/or reliability of the verification information.


The verifier 210 may further enable a properly authorized user or machine to “contain” a threat, that is to take a containment action to restrict or alter endpoints or their software in a way that affects the threat or its operation, such as by limiting network communication. The verifier 210 may also present contained or otherwise threatened endpoints to a user or machine in a manner which allows users to take action including further investigation, remediation, and optionally release of containment agents.



FIG. 4 illustrates a containment workflow through an embodiment of the system of the present inventive concept. Initially, endpoints having endpoint agents 420 are selected for containment, and authorization of that containment is given or confirmed. A set of hosts or endpoints and a containment configuration information are selected and communicated to an agent coordinator 414. The agent coordinator 414 selects or generates and configures an appropriate containment package, which may contain configuration information, may describe a means to download executable code, may itself contain executable code, or any combination of these. An endpoint agent 420 receives the containment package and performs the steps it describes or instructs, either performing the containment actions itself or ultimately resulting in additional executable code being made available to the endpoint agent 420. If additional executable code is contained or described in the containment package, the endpoint agent 420 installs that executable code, or the “containment agent” 440, on the local host such that it is configured to affect system configuration and state.


The endpoint agent 420 may also configure the containment agent 440 using configuration data extracted from the containment package or otherwise determined or obtained by endpoint agent 420. The containment agent 440 makes changes to the system state and/or configuration, for example so that a threat on that endpoint may be contained, and notifies the endpoint agent 420 when the containment actions and results thereof are complete. The containment agent 440 can be instructed via a cryptographically secure channel and mechanism to perform actions intended to affect the ability of malicious software to function, communicate, send or receive instructions, or affect the system in other ways that “contain” the endpoint threat. It can also perform the above without affecting the endpoint's ability to communicate with the system coordinating its actions. Finally, the containment agent 440 can be instructed in a similar manner to cease the “contain” operation or containment actions in whole or in part, up to and including uninstalling the containment agent 440 itself, or requiring that it be deployed via the mechanism described above in order to perform further containment operations. The endpoint agent 420 communicates containment status and other host context information back to the agent coordinator 414 such that it can communicate information about the containment operation to a user or machine for display or other action.


The previous description of various embodiments of the presently disclosed inventive concept is provided to enable any person skilled in the art to make or use the present inventive concept. Various modifications will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied alternatively without departing from the spirit or scope of the present inventive concept. Thus, the present inventive concept is not intended to be limited to the description herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.


The steps of a method, system, or operation described in connection with embodiments of the present inventive concept disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. Furthermore, the modules, agents, and other units described herein for performing steps of the present inventive concept may be executed by one processor, or by a plurality of processors housed within one computing device or a plurality of devices, communicatively coupled to a communication network. The processor(s) may represent one or more general-purpose processors such as a microprocessor, a central processing unit, or the like. More particularly, the processor may be a complex instruction set computing microprocessor, reduced instruction set computing microprocessor, very long instruction word microprocessor, or processor implementing other instruction sets or processors implementing a combination of instruction sets. The processor(s) may also be one or more special-purpose processors such as an application specific integrated circuit, a field programmable gate array, a digital signal processor, a network processor, a graphics processor, a network processor, a communications processor, a cryptographic processor, a co-processor, an embedded processor, or any other type of logic capable of processing instructions. The processor(s) is configured to execute instructions for performing the operations and steps discussed herein.


The modules, agents and other units described herein for performing steps of the present inventive concept may also be stored in and accessed from one or a plurality of memory locations for storing software program code (including application programs) and data structures associated with the embodiments described herein and that are addressable by the processor(s) and the communication network. The communication network may include a public computer network such as the Internet, in which case an optional firewall may be interposed between the communication network and one or more processors executing the modules, agents, and other units described herein, and/or between the communication network and the endpoints described herein. The communication network may alternatively be a private computer network such as a wireless telecommunication network, wide area network, or local area network, or a combination of networks.


Further, one or more of the modules, agents and other units described herein for performing steps of the present inventive concept may be stored and/or executed at the endpoint(s) of the present inventive concept. For example, the threat monitor may be stored on memory located at the endpoint(s), or be executed on a processor(s) at the endpoint(s), together with the endpoint agent(s) in one embodiment, without deviating from the spirit of the present inventive concept. Such units are communicatively coupled to the endpoint(s) via the communication network. A further example is where one or more of the modules, agents and other units described herein for performing steps of the present inventive concept, such as the threat monitor and the verifier's agent coordinator, are contained within middleware communicatively coupled to the communication network.


One or more of the modules, agents and other units described herein for performing steps of the present inventive concept may be controlled by a controller (data processing circuitry) communicatively coupled to a storage device and configured to manage and/or control one or more of such units. The controller may further provide updates to such units' software programs, and may be incorporated into one or more, or into all, of them, depending on the deployment.


Having now described the features, discoveries and principles of the present inventive aspect of this disclosure, the manner in which the present inventive aspect is constructed and used, the characteristics of the construction, and advantageous, new and useful results obtained; the new and useful structures, devices, elements, arrangements, parts and combinations, are set forth in the appended claims.


It is also to be understood that the following claims are intended to cover all of the generic and specific features of the present inventive aspect herein described, and all statements of the scope of the present inventive aspect which, as a matter of language, might be said to fall there between.

Claims
  • 1. A computerized method to identify potentially malicious code in a network, the method comprising: analyzing information within a report associated with one or more threats resulting from a prior analysis of a portion of network data received over a network to yield intelligence that includes at least one of instructions or indicators related to the identified one or more threats and determining, based on the intelligence yielded from the information within the report, an endpoint device including an endpoint agent that is to (i) receive at least one of the instructions or the indicators, (ii) conduct an examination of memory of the endpoint device for data corresponding to any of the instructions or the indicators, and (iii) obtain results of the examination;gathering and correlating verification information with information gathered from one or more sources to determine whether the verification information corresponds to a verified threat, the verification information includes at least a portion of the results of the examination by the endpoint device and an identifier for the endpoint device; andsending a notification including a portion of the verification information to identify the verified threat.
  • 2. The computerized method according to claim 1, wherein the correlating of the verification information is conducted processed by comparing the verification information to (a) data obtained from another endpoint device different than the endpoint device, or (b) data obtained from a security information and event manager module (SIEM).
  • 3. The computerized method according to claim 1, wherein the endpoint agent is further configured to a system state of the endpoint device for data corresponding to any of the instructions or the indicators, and obtaining results of the test.
  • 4. The computerized method according to claim 1, wherein prior to analyzing information within the report, the method further comprising: analyzing the portion of the network data by at least analyzing an executable by an analyzer of a threat monitor, the analyzer includes a dynamic analyzer that completely or partially executes the executable within an environment where operations of the executable are monitored to identify one or more behaviors or operations associated with the one or more threats.
  • 5. The computerized method according to claim 4, wherein the information resulting from the analyzing of the portion of the network data includes an attempted change of the environment by the executable or one or more attempts to establish a network connection or a Domain Name System (DNS) lookup.
  • 6. The computerized method according to claim 1, wherein the examination of the memory of the endpoint device comprises configuring the endpoint agent to receive the indicators;monitoring a state of the endpoint device and generating audit data in response to a monitored change of the system state; andproviding data, based on the audit data, to the endpoint agent to determine whether the endpoint device is compromised based on a matching of data based on the audit data to any of the indicators.
  • 7. The computerized method according to claim 4, further comprising: changing a configuration of the threat monitor based on the verification information.
  • 8. The computerized method according to claim 1, further comprising: performing a containment action to mitigate effects of the verified threat on the endpoint device via the endpoint agent based on the verification information, wherein, the containment action is taken by a containment agent of the endpoint agent, andthe containment agent is installed on the endpoint device pursuant to instructions contained in a containment package configured by a verifier that is analyzing the information within the report.
  • 9. An endpoint agent for testing endpoint system state and examining memory within the endpoint system, comprising: an indicator matcher component;a persistent monitor communicatively coupled to the indicator matcher component, the persistent monitor to monitor at least system state of an endpoint device and provide audit data reporting an occurrence of a persistent change in the system state of the endpoint device; andan audit controller coupled to the indicator matcher component and the persistent monitor, the audit controller to receive instructions or indicators, configure the indicator matcher component based on at least the received indicators, and control audits of at least the system state of the endpoint device conducted by the persistent monitor,wherein the persistent monitor communicates the audit data associated with a persistent change in the monitored system state of the endpoint device to the indicator matcher component and the indicator matcher component outputs information from the endpoint agent in response to a correlation between the received indicators from the audit controller and the audit data associated with the persistent change in the monitored system state.
  • 10. The endpoint agent according to claim 9, wherein the indicator matcher component outputs the information from the endpoint agent by sending a notification including intelligence to identify the instructions or indicators represent a verified threat.
  • 11. The endpoint agent according to claim 9 being communicatively coupled to a verifier, the verifier including (i) a report analyzer and (ii) an agent coordinator, wherein the report analyzer to analyze the information within the report and yield intelligence including the instructions or indicators to be provided to the agent coordinator, andthe agent coordinator to determine, based on the intelligence provided by the report analyzer, the endpoint agent.
  • 12. The endpoint agent according to claim 10 further comprising: a management component to further gather and correlate the verification information against data from one or more endpoint devices different than the endpoint device to determine that the verification information represents the verified threat.
  • 13. The endpoint agent according to claim 9, wherein the audit controller is configured to control audits of memory performed by an audit module operating within the persistent monitor.
  • 14. The endpoint agent according to claim 9, wherein an indicator of the indicators relating to a specific type or subset of information regarding a state of the endpoint device includes a description of a file or a hash sum of the file or regarding a description of an operation associated with the one or more threats.
  • 15. A computerized method to identify potentially malicious code in a network, the method comprising: analyzing information associated with one or more threats to yield intelligence that includes at least one of instructions or indicators related to the one or more threats and determining, based on the intelligence, an endpoint device including an endpoint agent that is to (i) receive at least one of the instructions or the indicators, (ii) conduct an examination of memory of the endpoint device for data corresponding to any of the instructions or the indicators, and (iii) obtain results of the examination;gathering and correlating verification information to determine whether the verification information corresponds to a verified threat, the verification information includes at least a portion of the results of the examination by the endpoint device and an identifier for the endpoint device; andsending a notification including a portion of the verification information to identify the verified threat.
  • 16. The computerized method according to claim 15, wherein the correlating of the verification information is conducted by comparing the verification information to (a) data obtained from another endpoint device different than the endpoint device, or (b) data obtained from a security information and event manager module (SIEM).
  • 17. The computerized method according to claim 15, further comprising: testing of a system state of the endpoint device for data corresponding to any of the instructions or the indicators, and obtaining results of the test.
  • 18. The computerized method according to claim 15, wherein prior to analyzing information within the report, the method further comprising: analyzing the portion of the network data by at least analyzing an executable by an analyzer of a threat monitor, the analyzer includes a dynamic analyzer that is configured to execute the executable within an environment where operations of the executable are monitored to identify one or more behaviors or operations associated with the one or more threats, andwherein information resulting from the analyzing of the portion of the network data includes an attempted change of the environment by the executable or one or more attempts to establish a network connection or a Domain Name System (DNS) lookup.
  • 19. The computerized method according to claim 15, wherein the examination of the memory of the endpoint device comprises configuring the endpoint agent to receive the indicators;monitoring a state of the endpoint device and generating audit data in response to a monitored change of the system state; andproviding data, based on the audit data, to the endpoint agent to determine whether the endpoint device is compromised based on a matching of data based on the audit data to any of the indicators.
  • 20. The computerized method according to claim 15, further comprising: performing a containment action to mitigate effects of the verified threat on the endpoint device via the endpoint agent based on the verification information, wherein, the containment action is taken by a containment agent of the endpoint agent, andthe containment agent is installed on the endpoint device pursuant to instructions contained in a containment package configured by a verifier that is analyzing the information within the report.
  • 21. The computerized method according to claim 15, wherein the gathering and correlating of the verification information comprises gathering and correlating verification information from multiple sources to determine whether the verification information corresponds to the verified threat.
CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No. 15/226,839 filed Aug. 2, 2016, now U.S. Pat. No. 10,033,748 issued Jul. 24, 2018, which is a continuation of U.S. patent application Ser. No. 14/216,453 filed Mar. 17, 2014, now U.S. Pat. No. 9,413,781 issued Aug. 9, 2016, which claims the benefit priority of U.S. provisional patent application No. 61/800,796 filed Mar. 15, 2013 and entitled “System and Method Employing Structured Intelligence to Verify and Contain Threats at Endpoints”, the entire contents of which is incorporated herein by reference.

US Referenced Citations (729)
Number Name Date Kind
4292580 Ott et al. Sep 1981 A
5175732 Hendel et al. Dec 1992 A
5319776 Hile et al. Jun 1994 A
5440723 Arnold et al. Aug 1995 A
5490249 Miller Feb 1996 A
5657473 Killean et al. Aug 1997 A
5802277 Cowlard Sep 1998 A
5842002 Schnurer et al. Nov 1998 A
5960170 Chen et al. Sep 1999 A
5978917 Chi Nov 1999 A
5983348 Ji Nov 1999 A
6088803 Tso et al. Jul 2000 A
6092194 Touboul Jul 2000 A
6094677 Capek et al. Jul 2000 A
6108799 Boulay et al. Aug 2000 A
6154844 Touboul et al. Nov 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
6424627 Sorhaug 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
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
7007107 Ivchenko et al. Feb 2006 B1
7028179 Anderson et al. Apr 2006 B2
7043757 Hoefelmeyer et al. May 2006 B2
7058822 Edery et al. Jun 2006 B2
7069316 Gryaznov Jun 2006 B1
7080407 Zhao et al. Jul 2006 B1
7080408 Pak et al. Jul 2006 B1
7093002 Wolff et al. Aug 2006 B2
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
7472418 McCorkendale et al. Dec 2008 B1
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
7546638 Anderson et al. Jun 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
7694150 Kirby Apr 2010 B1
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
7832008 Kraemer Nov 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
7886065 Satish et al. Feb 2011 B1
7904959 Sidiroglou et al. Mar 2011 B2
7908660 Bahl Mar 2011 B2
7930738 Petersen Apr 2011 B1
7937387 Frazier et al. May 2011 B2
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
8042182 Milani Comparetti et al. Oct 2011 B2
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
8136149 Freund Mar 2012 B2
8171553 Aziz et al. May 2012 B2
8176049 Deninger et al. May 2012 B2
8176480 Spertus May 2012 B1
8201246 Wu et al. Jun 2012 B1
8204984 Aziz et al. Jun 2012 B1
8214905 Doukhvalov et al. Jul 2012 B1
8220055 Kennedy Jul 2012 B1
8225288 Miller et al. Jul 2012 B2
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 et al. 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
8566476 Shiffer et al. Oct 2013 B2
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
8776229 Aziz Jul 2014 B1
8782792 Bodke Jul 2014 B1
8789172 Stolfo et al. Jul 2014 B2
8789178 Kejriwal et al. Jul 2014 B2
8793278 Frazier et al. Jul 2014 B2
8793787 Ismael et al. Jul 2014 B2
8805947 Kuzkin et al. Aug 2014 B1
8806629 Cherepov et al. Aug 2014 B1
8806647 Daswani et al. Aug 2014 B1
8826424 Lyne Sep 2014 B2
8832829 Manni et al. Sep 2014 B2
8850570 Ramzan Sep 2014 B1
8850571 Staniford et al. Sep 2014 B2
8881234 Narasimhan et al. Nov 2014 B2
8881271 Butler, II Nov 2014 B2
8881282 Aziz et al. Nov 2014 B1
8898788 Aziz et al. Nov 2014 B1
8935779 Manni et al. Jan 2015 B2
8949257 Shiffer et al. Feb 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
9027135 Aziz May 2015 B1
9071638 Aziz et al. Jun 2015 B1
9104867 Thioux et al. Aug 2015 B1
9106630 Frazier et al. Aug 2015 B2
9106694 Aziz et al. Aug 2015 B2
9118715 Staniford et al. Aug 2015 B2
9159035 Ismael et al. Oct 2015 B1
9171160 Vincent et al. Oct 2015 B2
9176843 Ismael et al. Nov 2015 B1
9189627 Islam Nov 2015 B1
9195829 Goradia et al. Nov 2015 B1
9197664 Aziz et al. Nov 2015 B1
9223972 Vincent et al. Dec 2015 B1
9225740 Ismael et al. Dec 2015 B1
9241010 Bennett et al. Jan 2016 B1
9251343 Vincent et al. Feb 2016 B1
9262635 Paithane et al. Feb 2016 B2
9268936 Butler Feb 2016 B2
9275229 LeMasters Mar 2016 B2
9282109 Aziz et al. Mar 2016 B1
9292686 Ismael et al. Mar 2016 B2
9294501 Mesdaq et al. Mar 2016 B2
9300686 Pidathala et al. Mar 2016 B2
9306960 Aziz Apr 2016 B1
9306974 Aziz et al. Apr 2016 B1
9311479 Manni et al. Apr 2016 B1
9355247 Thioux et al. May 2016 B1
9356944 Aziz May 2016 B1
9363280 Rivlin et al. Jun 2016 B1
9367681 Ismael et al. Jun 2016 B1
9398028 Karandikar et al. Jul 2016 B1
9413781 Cunningham et al. Aug 2016 B2
9426071 Caldejon et al. Aug 2016 B1
9430646 Mushtaq et al. Aug 2016 B1
9432389 Khalid et al. Aug 2016 B1
9438613 Paithane et al. Sep 2016 B1
9438622 Staniford et al. Sep 2016 B1
9438623 Thioux et al. Sep 2016 B1
9459901 Jung et al. Oct 2016 B2
9467460 Otvagin et al. Oct 2016 B1
9483644 Paithane et al. Nov 2016 B1
9495180 Ismael Nov 2016 B2
9497213 Thompson et al. Nov 2016 B2
9507935 Ismael et al. Nov 2016 B2
9516057 Aziz Dec 2016 B2
9519782 Aziz et al. Dec 2016 B2
9536091 Paithane et al. Jan 2017 B2
9537972 Edwards et al. Jan 2017 B1
9560059 Islam Jan 2017 B1
9565202 Kindlund et al. Feb 2017 B1
9591015 Amin et al. Mar 2017 B1
9591020 Aziz Mar 2017 B1
9594904 Jain et al. Mar 2017 B1
9594905 Ismael et al. Mar 2017 B1
9594912 Thioux et al. Mar 2017 B1
9609007 Rivlin et al. Mar 2017 B1
9626509 Khalid et al. Apr 2017 B1
9628498 Aziz et al. Apr 2017 B1
9628507 Haq et al. Apr 2017 B2
9633134 Ross Apr 2017 B2
9635039 Islam et al. Apr 2017 B1
9641546 Manni et al. May 2017 B1
9654485 Neumann May 2017 B1
9661009 Karandikar et al. May 2017 B1
9661018 Aziz May 2017 B1
9674298 Edwards et al. Jun 2017 B1
9680862 Ismael et al. Jun 2017 B2
9690606 Ha et al. Jun 2017 B1
9690933 Singh et al. Jun 2017 B1
9690935 Shiffer et al. Jun 2017 B2
9690936 Malik et al. Jun 2017 B1
9736179 Ismael Aug 2017 B2
9740857 Ismael et al. Aug 2017 B2
9747446 Pidathala et al. Aug 2017 B1
9756074 Aziz et al. Sep 2017 B2
9773112 Rathor et al. Sep 2017 B1
9781144 Otvagin et al. Oct 2017 B1
9787700 Amin et al. Oct 2017 B1
9787706 Otvagin et al. Oct 2017 B1
9792196 Ismael et al. Oct 2017 B1
9824209 Ismael et al. Nov 2017 B1
9824211 Wilson Nov 2017 B2
9824216 Khalid et al. Nov 2017 B1
9825976 Gomez et al. Nov 2017 B1
9825989 Mehra et al. Nov 2017 B1
9838408 Karandikar et al. Dec 2017 B1
9838411 Aziz Dec 2017 B1
9838416 Aziz Dec 2017 B1
9838417 Khalid et al. Dec 2017 B1
9846776 Paithane et al. Dec 2017 B1
9876701 Caldejon et al. Jan 2018 B1
9888016 Amin et al. Feb 2018 B1
9888019 Pidathala et al. Feb 2018 B1
9910988 Vincent et al. Mar 2018 B1
9912644 Cunningham Mar 2018 B2
9912681 Ismael et al. Mar 2018 B1
9912684 Aziz et al. Mar 2018 B1
9912691 Mesdaq et al. Mar 2018 B2
9912698 Thioux et al. Mar 2018 B1
9916440 Paithane et al. Mar 2018 B1
9921978 Chan et al. Mar 2018 B1
9934376 Ismael Apr 2018 B1
9934381 Kindlund et al. Apr 2018 B1
9946568 Ismael et al. Apr 2018 B1
9954890 Staniford et al. Apr 2018 B1
9973531 Thioux May 2018 B1
10002252 Ismael et al. Jun 2018 B2
10019338 Goradia et al. Jul 2018 B1
10019573 Silberman et al. Jul 2018 B2
10025691 Ismael et al. Jul 2018 B1
10025927 Khalid et al. Jul 2018 B1
10027689 Rathor et al. Jul 2018 B1
10027690 Aziz et al. Jul 2018 B2
10027696 Rivlin et al. Jul 2018 B1
10033747 Paithane et al. Jul 2018 B1
10033748 Cunningham et al. Jul 2018 B1
10033753 Islam et al. Jul 2018 B1
10033759 Kabra et al. Jul 2018 B1
10050998 Singh Aug 2018 B1
10068091 Aziz et al. Sep 2018 B1
10075455 Zafar et al. Sep 2018 B2
10083302 Paithane et al. Sep 2018 B1
10084813 Eyada Sep 2018 B2
10089461 Ha et al. Oct 2018 B1
10097573 Aziz Oct 2018 B1
10104102 Neumann Oct 2018 B1
10108446 Steinberg et al. Oct 2018 B1
10121000 Rivlin et al. Nov 2018 B1
10122746 Manni et al. Nov 2018 B1
10133863 Bu et al. Nov 2018 B2
10133866 Kumar et al. Nov 2018 B1
10146810 Shiffer et al. Dec 2018 B2
10148693 Singh et al. Dec 2018 B2
10165000 Aziz et al. Dec 2018 B1
10169585 Pilipenko et al. Jan 2019 B1
10176321 Abbasi et al. Jan 2019 B2
10181029 Ismael et al. Jan 2019 B1
10191861 Steinberg et al. Jan 2019 B1
10192052 Singh et al. Jan 2019 B1
10198574 Thioux et al. Feb 2019 B1
10200384 Mushtaq et al. Feb 2019 B1
10210329 Malik et al. Feb 2019 B1
10216927 Steinberg Feb 2019 B1
10218740 Mesdaq et al. Feb 2019 B1
10242185 Goradia Mar 2019 B1
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
20030021728 Sharpe et al. Jan 2003 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
20040006473 Mills 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
20070019286 Kikuchi 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
20070123214 Mock 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
20080018122 Zierler et al. Jan 2008 A1
20080028463 Dagon et al. Jan 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
20080184367 McMillan et al. 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
20090165135 Lomont et al. Jun 2009 A1
20090172815 Gu et al. Jul 2009 A1
20090187992 Poston Jul 2009 A1
20090193293 Stolfo et al. Jul 2009 A1
20090198651 Shiffer et al. Aug 2009 A1
20090198670 Shiffer et al. Aug 2009 A1
20090198689 Frazier et al. Aug 2009 A1
20090199274 Frazier et al. Aug 2009 A1
20090199296 Xie et al. Aug 2009 A1
20090199297 Jarrett 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
20100030996 Butler, II Feb 2010 A1
20100031353 Thomas et al. Feb 2010 A1
20100037314 Perdisci et al. Feb 2010 A1
20100043073 Kuwamura Feb 2010 A1
20100054278 Stolfo et al. Mar 2010 A1
20100058474 Hicks Mar 2010 A1
20100064044 Nonoyama Mar 2010 A1
20100077481 Polyakov et al. Mar 2010 A1
20100083376 Pereira et al. Apr 2010 A1
20100115621 Staniford et al. May 2010 A1
20100132038 Zaitsev May 2010 A1
20100154056 Smith et al. Jun 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
20100251104 Massand Sep 2010 A1
20100281102 Chinta et al. Nov 2010 A1
20100281541 Stolfo et al. Nov 2010 A1
20100281542 Stolfo et al. Nov 2010 A1
20100287260 Peterson et al. Nov 2010 A1
20100299754 Amit et al. Nov 2010 A1
20100306173 Frank Dec 2010 A1
20110004737 Greenebaum Jan 2011 A1
20110025504 Lyon et al. Feb 2011 A1
20110041179 St Hlberg Feb 2011 A1
20110047594 Mahaffey et al. Feb 2011 A1
20110047620 Mahaffey et al. Feb 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
20110099635 Silberman et al. 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
20110173213 Frazier et al. Jul 2011 A1
20110173460 Ito et al. Jul 2011 A1
20110173699 Figlin 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 Niemela 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
20120096553 Srivastava et al. Apr 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
20120185936 Lakshminarayanan Jul 2012 A1
20120198279 Schroeder Aug 2012 A1
20120210423 Friedrichs et al. Aug 2012 A1
20120222121 Staniford et al. Aug 2012 A1
20120233696 Zeng et al. Sep 2012 A1
20120255015 Sahita et al. Oct 2012 A1
20120255017 Sallam Oct 2012 A1
20120260342 Dube et al. Oct 2012 A1
20120266244 Green et al. Oct 2012 A1
20120278886 Luna Nov 2012 A1
20120278890 Maatta et al. Nov 2012 A1
20120297489 Dequevy Nov 2012 A1
20120330801 McDougal et al. Dec 2012 A1
20120331553 Aziz 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 et al. 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 et al. 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
20130232576 Kamikis et al. Sep 2013 A1
20130246370 Bartram et al. Sep 2013 A1
20130247186 LeMasters Sep 2013 A1
20130263260 Mahaffey et al. Oct 2013 A1
20130291109 Staniford et al. Oct 2013 A1
20130298243 Kumar et al. Nov 2013 A1
20130318038 Shiffer et al. Nov 2013 A1
20130318073 Shiffer et al. Nov 2013 A1
20130325791 Shiffer et al. Dec 2013 A1
20130325792 Shiffer et al. Dec 2013 A1
20130325871 Shiffer et al. Dec 2013 A1
20130325872 Shiffer et al. Dec 2013 A1
20130333040 Diehl et al. Dec 2013 A1
20140032875 Butler Jan 2014 A1
20140053260 Gupta et al. Feb 2014 A1
20140053261 Gupta et al. Feb 2014 A1
20140059668 Holloway 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
20140181131 Ross Jun 2014 A1
20140189687 Jung et al. Jul 2014 A1
20140189866 Shiffer et al. Jul 2014 A1
20140189882 Jung et al. Jul 2014 A1
20140237600 Silberman et al. Aug 2014 A1
20140280245 Wilson Sep 2014 A1
20140283037 Sikorski et al. Sep 2014 A1
20140283063 Thompson et al. Sep 2014 A1
20140328204 Klotsche et al. Nov 2014 A1
20140337836 Ismael Nov 2014 A1
20140344926 Cunningham et al. Nov 2014 A1
20140351935 Shao et al. Nov 2014 A1
20140380473 Bu et al. Dec 2014 A1
20140380474 Paithane et al. Dec 2014 A1
20150007312 Pidathala et al. Jan 2015 A1
20150096022 Vincent et al. Apr 2015 A1
20150096023 Mesdaq et al. Apr 2015 A1
20150096024 Haq et al. Apr 2015 A1
20150096025 Ismael Apr 2015 A1
20150180886 Staniford et al. Jun 2015 A1
20150186645 Aziz et al. Jul 2015 A1
20150199513 Ismael et al. Jul 2015 A1
20150199531 Ismael et al. Jul 2015 A1
20150199532 Ismael et al. Jul 2015 A1
20150220735 Paithane et al. Aug 2015 A1
20150372980 Eyada Dec 2015 A1
20160004869 Ismael et al. Jan 2016 A1
20160006756 Ismael et al. Jan 2016 A1
20160044000 Cunningham Feb 2016 A1
20160127393 Aziz et al. May 2016 A1
20160191547 Zafar et al. Jun 2016 A1
20160191550 Ismael et al. Jun 2016 A1
20160261612 Mesdaq et al. Sep 2016 A1
20160285914 Singh et al. Sep 2016 A1
20160301703 Aziz Oct 2016 A1
20160335110 Paithane et al. Nov 2016 A1
20170083703 Abbasi et al. Mar 2017 A1
20170244754 Kinder Aug 2017 A1
20180013770 Ismael Jan 2018 A1
20180048660 Paithane et al. Feb 2018 A1
20180121316 Ismael et al. May 2018 A1
20180288077 Siddiqui et al. Oct 2018 A1
20190073224 Tian Mar 2019 A1
Foreign Referenced Citations (13)
Number Date Country
2439806 Jan 2008 GB
2490431 Oct 2012 GB
2011-053893 Mar 2011 JP
10-1132197 Apr 2012 KR
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
2012145066 Oct 2012 WO
2013067505 May 2013 WO
Non-Patent Literature Citations (64)
Entry
“Mining Specification of Malicious Behavior”—Jha et al, UCSB, Sep. 2007 https://www.cs.ucsb.edu/.about.chris/research/doc/esec07.sub.--mining.pdf-.
“Network Security: NetDetector—Network Intrusion Forensic System (NIFS) Whitepaper”, (“NetDetector Whitepaper”), (2003).
“When Virtual is Better Than Real”, IEEEXplore Digital Library, available at, http://ieeexplore.ieee.org/xpl/articleDetails.isp?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).
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.
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”) (2001).
Cisco “Intrusion Prevention for the Cisco ASA 5500-x Series” Data Sheet (2012).
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).
Didier Stevens, “Malicious PDF Documents Explained”, Security & Privacy, IEEE, IEEE Service Center, Los Alamitos, CA, US, vol. 9, No. 1, Jan. 1, 2011, pp. 80-82, XP011329453, ISSN: 1540-7993, DOI: 10.1109/MSP.2011.14.
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).
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.
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:http://www.informationweek.com/microsofts-honeymonkeys-show-patching-windows-works/d/d-id/1035069? [retrieved on Jun. 1, 2016].
Heng Yin et al, Panorama: Capturing System-Wide Information Flow for Malware Detection and Analysis, Research Showcase @ CMU, Carnegie Mellon University, 2007.
Hiroshi Shinotsuka, Malware Authors Using New Techniques to Evade Automated Threat Analysis Systems, Oct. 26, 2012, http://www.symantec.com/connect/blogs/, pp. 1-4.
Idika et al., A-Survey-of-Malware-Detection-Techniques, Feb. 2, 2007, Department of Computer Science, Purdue University.
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”), (2003).
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.
Lastline Labs, The Threat of Evasive Malware, Feb. 25, 2013, Lastline Labs, pp. 1-8.
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.
Lindorfer, Martina, Clemens Kolbitsch, and Paolo Milani Comparetti. “Detecting environment-sensitive malware.” Recent Advances in Intrusion Detection. Springer Berlin Heidelberg, 2011.
Marchette, David J., “Computer Intrusion Detection and Network Monitoring: A Statistical Viewpoint”, (“Marchette”), (2001).
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).
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.
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).
Thomas H. Ptacek, and Timothy N. Newsham , “Insertion, Evasion, and Denial of Service: Eluding Network Intrusion Detection”, Secure Networks, (“Ptacek”), (Jan. 1998).
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.
EP 14762444.9 filed Oct. 15, 2015 Supplementary European Search Report dated Oct. 13, 2016.
Khaled Salah et al: “Using Cloud Computing to Implement a Security Overlay Network”, Security & Privacy, IEEE, IEEE Service Center, Los Alamitos, CA, US, vol. 11, No. 1, Jan. 1, 2013 (Jan. 1, 2013).
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.
PCT/US2014/030633 filed Mar. 17, 2014 International Search Report dated Aug. 5, 2014.
U.S. Appl. No. 14/216,453, filed Mar. 17, 2014 Non-Final Rejection dated Aug. 20, 2015.
U.S. Appl. No. 14/216,453, filed Mar. 17, 2014 Notice of Allowance dated Feb. 12, 2016.
U.S. Appl. No. 15/226,839, filed Aug. 2, 2016 Non-Final Office Action dated Jul. 3, 2017.
U.S. Appl. No. 15/226,839, filed Aug. 2, 2016 Notice of Allowance dated Apr. 12, 2018.
Vladimir Getov: “Security as a Service in Smart Clouds—Opportunities and Concerns”, Computer Software and Applications Conference (COMPSAC), 2012 IEEE 36th Annual, IEEE, Jul. 16, 2012 (Jul. 16, 2012).
EP 14762444.9 filed Oct. 15, 2015 Office Action dated Feb. 25, 2019.
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.
Provisional Applications (1)
Number Date Country
61800796 Mar 2013 US
Continuations (2)
Number Date Country
Parent 15226839 Aug 2016 US
Child 16043004 US
Parent 14216453 Mar 2014 US
Child 15226839 US