Patent Publication Number: US-10326778-B2

Title: System and method for detecting lateral movement and data exfiltration

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This is a continuation-in-part of U.S. patent application Ser. No. 14/629,444, filed on Feb. 23, 2015, which claims priority from U.S. Provisional Patent Application No. 61/944,006, filed on Feb. 24, 2014, each are hereby incorporated by reference in their entirety. 
    
    
     FIELD 
     Embodiments of the invention relate to protecting computers and networks from malicious software and activities. In particular, embodiments of the invention relate to a system and method for detection of lateral movement and data exfiltration. 
     BACKGROUND 
     As computer networks grow and the amount of data stored on computers and databases interconnected by those networks grows, so have attempts to gain unauthorized access to these computers and databases. Such attempts to gain unauthorized access to computers and databases may include methodical reconnaissance of potential victims to identify traffic patterns and existing defenses. A technique used to gain unauthorized access to computers and databases includes loading malicious software or malware onto a computer. Such malware is designed to disrupt computer operation, gather sensitive information, or to grant access to the computer to unauthorized individuals. 
     As the awareness of malware increases, the techniques used to load malware onto computers (also called a malware infection) has grown more sophisticated. As a result, legacy security solutions that use a structured process (e.g., signature and heuristics matching) or analyze agent behavior in an isolated context fail to detect threat activities including, but not limited to, loading malware, lateral movement, data exfiltration, fraudulent transactions, and inside attacks. 
     The failure to detect these types of threat activities on a computer or network can result in loss of high value data, down time or destruction of infected computers and/or the networks, lost productivity, and a high cost to recover and repair the infected computers and/or networks. Further, current security solutions that are focused on detecting the threat acts of infecting or penetrating a target system fail to detect the increasingly sophisticated malware on the complex business applications and network technologies used in current systems, because complex applications and protocols allow threat acts to hide more easily to evade detection. Further, the current security solutions fail to detect data exfiltration by the malware, which prevents an enterprise from properly assessing and controlling any damage that occurs from malware infecting a system. These types of detection security solutions fail to detect social-engineering attacks on employees and infection of malware caused by rogue or disgruntled employees. 
     SUMMARY 
     A system configured to detect a threat activity on a network. The system including a digital device configured to detect one or more first order indicators of compromise on a network, detect one or more second order indicators of compromise on the network, generate a risk score based on correlating said first order indicator of compromise on the network with the second order indicator of compromise on said network, and generate at least one incident alert based on comparing the risk score to a threshold. 
     Other features and advantages of embodiments will be apparent from the accompanying drawings and from the detailed description that follows. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Embodiments are illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like references indicate similar elements and in which: 
         FIG. 1  illustrates a block diagram of a network environment that includes a system configured to detect threat activities according to an embodiment; 
         FIG. 2  illustrates a flow diagram of a method to detect threat activities on a network according to an embodiment; 
         FIG. 3  illustrates a block diagram of a method to detect one or more second order indicators of compromise according to an embodiment; 
         FIG. 4  illustrates an embodiment of a client, an end-user device, or a digital device according to an embodiment; and 
         FIG. 5  illustrates an embodiment of a system for detecting threat activities according to an embodiment. 
     
    
    
     DETAILED DESCRIPTION 
     Embodiments of a system to detect threat activities are configured to detect one or more threat activities at advanced stages of a threat kill chain, including lateral movement of malware objects inside networks and enterprises, data gathering and exfiltration, and compromised or fraudulent business transactions. The system is configured to extend protection coverage to the complete kill chain. 
     A system, according to an embodiment, is configured to monitor simultaneously north-south traffic and east-west traffic. Such a system configured with multiple collectors for monitoring north-south traffic and east-west traffic. North-south traffic monitoring will detect threat activity between internal (e.g., corporate network or LAN) devices and external (e.g., extranet or Internet) devices, including but not limited to web servers. East-west traffic monitoring will detect threat activities among internal devices, including those in a demilitarized zone (“DMZ”) otherwise known as a perimeter network. East-west traffic can contain the same set of network protocols seen on north-south boundaries, as well as network protocols meant for internal access and data sharing. Examples of east-west protocols include, but are not limited to, reliable user datagram protocol (“RDP”) for remote access to windows computers, active directory services, and server message block (“SMB”) for file sharing. Embodiments of the system that deploy collectors to monitor both north-south and east-west traffic, and analyze them through first order and second order indicators extraction, and correlate them in a centralized location and interface, that is a single pane of glass, provide the benefit of detecting threats regardless of which stage they are at in the kill chain, or if the threat is an external or an inside attack, or if the threat is the lateral movement of an infiltration. 
       FIG. 1  illustrates a block diagram of a network environment  100  that includes a system configured to detect threat activities according to an embodiment. Systems and methods embodied in the network environment  100  may detect threat activity, malicious activity, identify malware, identify exploits, take preventive action, generate signatures, generate reports, determine malicious behavior, determine targeted information, recommend steps to prevent attack, and/or provide recommendations to improve security. The network environment  100  comprises a data center network  102  and a production network  104  that communicate over a communication network  106 . The data center network  102  comprises a security server  108 . The production network  104  comprises a plurality of end-user devices  110 . The security server  108  and the end-user devices  110  may include digital devices. A digital device is any device with one or more a processing units and memory.  FIGS. 4 and 5  illustrate embodiments of a digital device. 
     The security server  108  is a digital device configured to detect threat activities. For an embodiment, the security server  108  receives suspicious data from one or more data collectors. The data collectors may be resident within or in communication with network devices such as Intrusion Prevention System (“IPS”) collectors  112   a  and  112   b , firewalls  114   a  and  114   b , ICAP/WCCP collectors  116 , milter mail plug-in collectors  118 , switch collectors  120 , and/or access points  124 . Those skilled in the art will appreciate that a collector and a network device may be two separate digital devices (e.g., see F/W collector and IDS collector). 
     For an embodiment, data collectors may be at one or more points within the communication network  106 . A data collector, which may include a tap or span port (e.g., span port IDS collector at switch  120 ) for example, is configured to intercept network data from a network. The data collector may be configured to detect suspicious data. Suspicious data is any data collected by the data collector that has been flagged as suspicious by the data collector and/or any data that is to be further processed within the virtualization environment. 
     The data collectors may filter the data before flagging the data as suspicious and/or providing the collected data to the security server  108 . For example, the data collectors may filter out plain text but collect executables or batch files. Further, according to an embodiment, the data collectors may perform intelligent collecting. For example, data may be hashed and compared to a whitelist. The whitelist may identify data that is safe. In one example, the whitelist may identify digitally signed data by trusted entities or data received from a known trusted source as safe. Further, the whitelist may identify previously received information that has been determined to be safe. If data has been previously received, tested within the environments, and determined to be sufficiently trustworthy, the data collector may allow the data to continue through the network. Those skilled in the art will appreciate that the data collectors (or agents associated with the data collectors) may be updated by the security server  108  to help the data collectors recognize sufficiently trustworthy data and to take corrective action (e.g., quarantine and alert an administrator) if untrustworthy data is recognized. For an embodiment, if data is not identified as safe, the data collectors may flag the data as suspicious for further assessment. 
     Those skilled in the art will appreciate that one or more agents or other modules may monitor network traffic for common behaviors and may configure a data collector to collect data when data is directed in a manner that falls outside normal parameters. For example, the agent may determine or be configured to detect that a computer has been deactivated, a particular computer does not typically receive any data, data received by a particular computer typically comes from a limited number of sources, or a particular computer typically does not send data of a given pattern to certain destinations. If data is directed to a digital device in a manner that is not typical, the data collector may flag such data as suspicious and provide the suspicious data to the security server  108 . 
     Network devices include any device configured to receive and provide data over a network. Examples of network devices include, but are not limited to, routers, bridges, security appliances, firewalls, web servers, mail servers, wireless access points (e.g., hotspots), and switches. For some embodiments, network devices include IPS collectors  112   a  and  112   b , firewalls  114   a  and  114   b , Internet content adaptation protocol (“ICAP”)/web cache communication protocol (“WCCP”) servers  116 , devices including milter mail plug-ins  118 , switches  120 , and/or access points  124 . The IPS collectors  112   a  and  112   b  may include any anti-malware device including IPS systems, intrusion detection and prevention systems (“IDPS”), or any other kind of network security appliances. The firewalls  114   a  and  114   b  may include software and/or hardware firewalls. For an embodiment, the firewalls  114   a  and  114   b  may be embodied within routers, access points, servers (e.g., web servers), mail filters, or appliances. 
     ICAP/WCCP servers  116  include any web server or web proxy server configured to allow access to a network and/or the Internet. Network devices including milter mail plug-ins  118  may include any mail server or device that provides mail and/or filtering functions and may include digital devices that implement milter, mail transfer agents (“MTAs”), sendmail, and postfix, for example. Switches  120  include any switch or router. In some examples, the data collector may be implemented as a TAP, SPAN port, and/or intrusion detection system (“IDS”). Access points  124  include any device configured to provide wireless connectivity with one or more other digital devices. 
     The production network  104  is any network that allows one or more end-user devices  110  to communicate over the communication network  106 . The communication network  106  is any network that may carry data (encoded, compressed, and/or otherwise) from one digital device to another. In some examples, the communication network  106  may comprise a LAN and/or WAN. Further, the communication network  106  may comprise any number of networks. For some embodiments, the communication network  106  is the Internet. 
       FIG. 1  is exemplary and does not limit systems and methods described herein to the use of only those technologies depicted. For example, data collectors may be implemented in any web or web proxy server and is not limited to only the servers that implement Internet content adaption protocol (“ICAP”) and/or web cache communication protocol (“WCCP”). Similarly, data collectors may be implemented in any mail server and is not limited to mail servers that implement milter. Data collectors may be implemented at any point in one or more networks. 
     Those skilled in the art will appreciate that although  FIG. 1  depicts a limited number of digital devices, collectors, routers, access points, and firewalls, there may be any kind and number of devices. For example, there may be any number of security servers  108 , end-user devices  110 , intrusion prevention system (“IPS”) collectors  112   a  and  112   b , firewalls  114   a  and  114   b , ICAP/WCCP collectors  116 , milter mail plug-ins  118 , switches  120 , and/or access points  124 . Further, there may be any number of data center networks  102  and/or production networks  104 . The data collectors can take the form of a hardware appliance, pure software running on a native operating system (“OS”), or virtual appliance for virtualized platforms like Amazon Web Services (“AWS”) and VMWare. 
       FIG. 2  illustrates a block diagram of a method to detect threat activities on a network according to an embodiment. The method includes detecting one or more first order indicators of compromise ( 202 ). For an embodiment one or more data collectors are configured to intercept network data between network devices. For example, a data collector is configured to detect network traffic and to determine traffic patterns across the protocol stack between network devices. A data collector, for an embodiment, is configured to determine traffic patterns between network devices on one or more of protocol stack layers including, but not limited to, layers  2 - 7 . For example, the data collector may be configured to detect and to determine traffic patterns for address resolution protocol (“ARP”) traffic, dynamic host configuration protocol (“DHCP”) traffic, Internet control message protocol (“ICMP”) traffic between media access control (“MAC”) or Internet protocol (“IP”) addresses, transmission control protocol (“TCP”)/IP and user datagram protocol (“UDP”)/IP traffic between IP and port number pairs, up the stack to hypertext transfer protocol (“HTTP”), secure shell (“SSH”), server message block (“SMB”) application protocols, patterns between application clients and servers, and industry-specific applications like wire transfer transaction processing, and patterns between bank accounts. The data collector is configured to extract file objects transferred along with their meta information such as HTTP headers, URLs, source and destination IP addresses, and to transmit the file objects to a security server. 
     Further, the method optionally includes detecting one or more indicators of a compromised entity ( 204 ). A compromised entity includes, but is not limited to, a digital device, an application, and a rogue user on a network. For an embodiment, a system includes one or more data collectors configured to operate as a honey-host used to attract the interest of any one of malicious software, a rogue user, a digital device performing threat activities. An indicator of a compromised entity includes, but is not limited to, an attempt to prove a honey-host for open ports (that is, test the honey-host for open ports) to gain access to the honey-host, and an attempt to examine or move data on a honey-host. For example, a data collector is configured to have one or more of an interesting domain name and IP address (that is, a domain name and/or an IP address that a compromised entity would attempt to access); it is given an owner/user with interesting corporate roles, relevant data files, documents, and user activity traces. Further, a data collector, for an embodiment, is configured to log any probing, login, and access activities against this honey-host. The logged data will, e.g., identify which device, application, and user(s) have attempted any activities, at what time, along with the details of the activity. For example, if files are copied from the honey-host, a data collector is configured to log information including the file name, hash, and where the file is moved to. 
     Further, the method includes detecting one or more second order indicators of compromise ( 206 ). Second order indicators of compromise include, but are not limited to, behavior patterns of a network device observed from the network device and behavior patterns of an end-user device. For example, a data collector is configured to generate an event log and/or a transaction log for the network device. Further, a data collector, for an embodiment, is configured to detect behavior patterns of an end-user device, endpoint device, and/or other client peers on a network, for example as used by a user, based on network traffic, from a business activity level. An example of detecting behavior patterns of an end-user device in a software engineering environment includes detecting that an individual developer&#39;s workstation started to pull down a large amount of source code from one or more repositories while at the same time, very little push (updating to the repositories) is taking place. This kind of suspicious conditions is detected by continuous monitoring and building typical pattern profiles. In such an example, the system is configured to generate an alert when the observed behavior patterns deviate from the typical profiles. Another example of detecting behavior patterns of an end-user device includes in a bank environment which well-known interaction patterns among the desktop computers of different functional departments are established from the business workflow using techniques including those described herein. In such an environment, a human resource manager&#39;s machine will not generally communicate with a wire-transfer processing server; any direct network connectivity outside an information technology (“IT”) maintenance window will generate an alert for a second order suspicious indicator. Thus, the detection a data collector is configured to detect these types of behavior patterns using techniques including those described herein. 
     The method also includes generating a risk score based on correlating the one or more first order indicators of compromise with the one or more second order indicators of compromise ( 208 ). For an embodiment, the risk score is generated based on an asset value assigned to a network device or end-user device and the current security posture of the network device or end-user device. For example, if the network device is assigned a high asset value the generated risk score would be higher for the same correlation result than a network device assigned a lower asset value. In addition, a device having a security posture above a normal or a defined average level (e.g., more sensitive to attacks) would result in the generated risk score being higher than a correlation result of a network device having a security posture at or below normal. For an embodiment, a generated risk score based on a security posture is more dynamic than a generated risk score based on an asset value. For example, based on the threat intelligence in the wild (that is, threat intelligence gain through monitoring other networks), a security server is configured to determine that some group of devices or users may be subject to a targeted attack and warrant special monitoring. In such an example, the security posture can be increased for the devices or users for the given period of time (e.g., a high security posture) so that the risk score for any threat against these devices or users will be applied an escalation factor in order to prioritize the response. 
     For an embodiment, a data collector is configured to correlate one or more first order indicators of compromise with the one or more second order indicators of compromise based on network patterns/data received from one or more data collectors using techniques including those described herein. Further, the data collector is configured to generate a risk score based on the correlation result using techniques including those described herein. For another embodiment, a security server is configured to correlate one or more first order indicators of compromise with the one or more second order indicators of compromise based on network patterns/data received from one or more data collectors using techniques including those described herein. Further, the security server is configured to generate a risk score based on the correlation result using techniques including those described herein. Using many data collectors communicating with a security server, a hierarchy of data aggregation and abstraction can be created to scale the coverage to larger networks and to support filtered sharing of threat intelligence data. For example, a single collector may cover the network of a single department at a given site having many departments. The data from multiple collectors of corresponding departments at the site can be aggregated to represent the entire site. 
     Further, the method includes generating at least one incident alert based on comparing the risk score to a threshold ( 210 ). The incident alert includes lateral movement and data exfiltration incident alerts. For an embodiment, multiple alerts will aggregate in time when multiple events of the same type happen within a short period of time to the same target device. The aggregation is achieved by representing the number of occurrences of the same events within the given interval by one single alert as an incident. This will result in a more meaningful alert to the end user, without loss of important information, while avoiding generating many events to the user. 
     In addition, an alert may be generated based on a security policy. For example, a security policy may include, but is not limited to, a watch-list of one or more critical internal IP addresses and a red-list, which includes known malicious addresses, of one or more external IP addresses. In such an example, an incident alert would be generated when a network device or end-user device communicates with an IP address on the watch-list and/or on the red-list. For an embodiment, a data collector is configured to generate at least one incident alert based on comparing the risk score to a threshold using the techniques describe herein. For another embodiment, a security server is configured to generating at least one incident alert based on comparing the risk score to a threshold using the techniques describe herein. Between the data collectors and security server, a hierarchy of data aggregation and abstraction can be created to scale the coverage to larger networks and to support filtered sharing of threat intelligence data. For example, a single data collector may cover the network of a single department at a given site; data from multiple collectors of corresponding departments can be aggregated to represent the given site as a whole. 
       FIG. 3  illustrates a block diagram of a method to detect one or more second order indicators of compromise according to an embodiment. The method includes generating a behavior profile for at least one network device or end-user device ( 302 ). For example, a behavior profile is generated at multiple levels of activities across the protocol stack using heuristics or supervised or unsupervised machine learning. An example of a behavior profile for an end-user device includes, but is not limited to, a network user&#39;s role in a network and authorization to use the end-user device on the network, one or more activities a network user performs on the end-user device, a list of one or more IP addresses that this device connects to on a weekly basis, a distribution of the time duration for one or more connections, a total amount of data exchanged, a breakdown of the amount of data in each direction, and a characterization of variances in any of the above information over a period of time. The detection mechanism, such as a data collector, maintains a behavior profile on a rolling basis (a long-term behavior profile). At the same time, according to an embodiment, the detection mechanism is configured to build a real-time behavior profile; e.g., based on normalized daily stats. For an embodiment, the difference between a long-term behavior and a real-time behavior profile will raise an alert for a threat activity. 
     According to an embodiment, the behavior profiles are generated for each of the monitored network devices and end-user devices during a training phase. For an embodiment, a security server is configured to generate one or more behavior profiles based on one or more of network traffic patterns, behavior patterns of a network device, and behavior patterns of an end-user device. For another embodiment, a data collector is configured to generate one or more behavior profiles based on one or more of network traffic patterns, behavior patterns of a network device, and behavior patterns of an end-user device. 
     The method also includes detecting one or more real-time observations ( 304 ). These real-time observations are represented as real-time behavior profiles. Detecting one or more real-time observations, according to an embodiment, is part of a production phase. For an embodiment, a data collector is configured to intercept network data and analyze network traffic patterns across the protocol stack in real time to generate real-time observations using techniques including those described herein. For another embodiment, a data collector is configured to intercept network data and transmit the network data to security server using techniques including those described herein. The security server is configured to receive the network data and analyze the network traffic patterns across the protocol stack in real time to generate real-time observations. 
     Moreover, the method includes comparing the one or more real-time observations to at least one behavior profile ( 306 ), i.e., a long-term behavior profile. For example, real-time observations are compared against one or more generated behavior profiles. Comparing the one or more real-time observations to at least one behavior profile, according to an embodiment, is part of a production phase. For an embodiment, a data collector is configured to compare the real-time observations of a network device and/or an end-user device to at least one behavior profile generated for the network device or the end-user device using techniques including those described herein. For another embodiment, a security server is configured to compare the real-time observations of a network device or an end-user device to at least one behavior profile generated for the network device or the end-user device based on information received from one or more data collectors using techniques including those described herein. 
     Further, the method includes generating one or more anomalies based on a comparison of the real-time observations to the behavior profile ( 308 ). Generating one or more anomalies based on a comparison of the real-time observations to the behavior profile, according to an embodiment, is part of a production phase. The anomalies generated include, but are not limited to, network anomalies, device anomalies and user anomalies. A network anomaly includes the real-time networking traffic pattern observations that differ from the one or more behavior profiles. A device anomaly includes the real-time device behavior observations that differ from the one or more behavior profiles of the network device or the end-user device. A user anomaly includes the real-time observations of behavior of an end-user device under the control of a network user that differs from the one or more behavior profiles of the end-user device under control of the user. In addition to comparing the real-time observations against the one or more behavior profiles, the real-time observations may be compared against one or more of a network anomaly, a device anomaly, and a user anomaly. For an embodiment, a security server is configured to generate one or more anomalies based on data received from one or more data collectors including the data described herein. Further the anomalies, according to an embodiment, are correlated with the first order indicators of compromise based on one or more of a security policy, an IP address, a device finger print, a business application, and a user identity. For another embodiment, a data collector is configured to generate one or more anomalies using techniques including those described herein. 
     Further, one or more indicators of a compromised entity detected by one or more honey-hosts are correlated with both one or more first order indicators and one or more second order indicators, to identify any of a network device, an application that may have been compromised, and to identify a user, such as a rogue user, on an end-user device initiating suspicious activities on the network. Some examples of suspicious activities include probing for high-value assets or gathering sensitive information from the honey-hosts. An exemplary implementation includes a system configured to detect sensitive data using expression matching using techniques including those described herein. For example, sensitive data includes social security numbers, credit card numbers, and documents including keywords. The system according to an embodiment is configured to detect suspicious outbound data movement using techniques including those described herein. For an embodiment, the system is configured to detect suspicious outbound data movement using heuristics rule watching for an HTTP POST request where the headers claim to be a plaintext body but the body content of the request shows a high entropy value, which suggests compression or encryption. Further, the system is configured to detect abnormal network transactions based on one or more anomalies using techniques including those described herein. For example, the system is configured to detect transactions falling outside of a determined behavior pattern such as a large amount of encrypted file transfers to a host for the first time. The system is also configured to detect and record all malware infections and command-and-control (“CNC”) activities in a network using the techniques including those described herein. 
     Moreover, the system is configured to support a general policy framework. For example, a security policy is used to define the type of traffic patterns and/or behaviors that are detected and the alerts generated for a given security posture. For example, a security posture may include a range from DefCon1 to DefCon5. In such an example, DefCon5 is the highest security posture indicating a high awareness or sensitivity to anomalies or other detections and DefCon3 may be considered a normal posture indicating an average level of awareness or sensitivity to anomalies or other detections. And, the security posture levels under DefCon3 would indicate a lower level of awareness or sensitivity to anomalies than DefCon3. 
     For a system configured to use a security posture as described above, under a DefCon3, anomaly events such as detecting sensitive data movement, suspicious outbound data movement, or abnormal network transactions will be correlated with detected events such as detected malware infections and control-and-command activities. The system will generate an incident alert if an IP address of an anomaly event matches with an IP address related to the detected events or an IP address included in a security policy. In the case when the security posture is DefCon5, the system is configured to generate an incident alert upon a based on any anomaly event, without the requirement for an IP address to be included in the security policy or the detection of one or more detected events. 
       FIG. 4  illustrates an embodiment of a client, an end-user device, or a digital device that includes one or more processing units (CPUs)  402 , one or more network or other communications interfaces  404 , memory  414 , and one or more communication buses  406  for interconnecting these components. The client may include a user interface  408  comprising a display device  410 , a keyboard  412 , a touchscreen  413  and/or other input/output device. Memory  414  may include high speed random access memory and may also include non-volatile memory, such as one or more magnetic or optical storage disks. The memory  414  may include mass storage that is remotely located from CPUs  402 . Moreover, memory  414 , or alternatively one or more storage devices (e.g., one or more nonvolatile storage devices) within memory  414 , includes a computer readable storage medium. The memory  414  may store the following elements, or a subset or superset of such elements:
         an operating system  416  that includes procedures for handling various basic system services and for performing hardware dependent tasks;   a network communication module  418  (or instructions) that is used for connecting the client to other computers, clients, servers, systems or devices via the one or more communications network interfaces  404  and one or more communications networks, such as the Internet, other wide area networks, local area networks, metropolitan area networks, and other type of networks; and   a client application  420  including, but not limited to, a web browser, a document viewer and other applications; and   a webpage  422  including one generated by the client application  420  configured to receive a user input to communicate across a network with other computers or devices.       

     According to an embodiment, the client may be any device that includes, but is not limited to, a mobile phone, a computer, a tablet computer, a personal digital assistant (PDA) or other mobile device. 
       FIG. 5  illustrates an embodiment of a server or a network device, such as a system that implements the methods described herein. The system, according to an embodiment, includes one or more processing units (CPUs)  504 , one or more communication interface  506 , memory  508 , and one or more communication buses  510  for interconnecting these components. The system  502  may optionally include a user interface  526  comprising a display device  528 , a keyboard  530 , a touchscreen  532 , and/or other input/output devices. Memory  508  may include high-speed random access memory and may also include non-volatile memory, such as one or more magnetic or optical storage disks. The memory  508  may include mass storage that is remotely located from CPUs  504 . Moreover, memory  508 , or alternatively one or more storage devices (e.g., one or more nonvolatile storage devices) within memory  508 , includes a computer readable storage medium. The memory  508  may store the following elements, or a subset or superset of such elements: an operating system  512 , a network communication module  514 , a collection module  516 , a data flagging module  518 , a virtualization module  520 , an emulation module  522 , a control module  524 , a reporting module  526 , a signature module  528 , and a quarantine module  530 . An operating system  512  that includes procedures for handling various basic system services and for performing hardware dependent tasks. A network communication module  514  (or instructions) that is used for connecting the system to other computers, clients, peers, systems or devices via the one or more communication network interfaces  506  and one or more communication networks, such as the Internet, other wide area networks, local area networks, metropolitan area networks, and other type of networks. 
     A collection module  516  (or instructions) for detecting one or more of any of network traffic patterns, real-time observations, first order indicators, second order indicators, indicator of a compromised entity, and other suspicious data using techniques including those described herein. Further, the collection module  516  is configured to receive network data (e.g., potentially suspicious data) from one or more sources. Network data is data or network traffic that is provided on a network from one digital device to another. The collection module, for an embodiment, is configured to generate one or more behavior profiles for a network device using techniques including those describe herein. The collection module  516  may flag the network data as suspicious data based on, for example, whitelists, blacklists, heuristic analysis, statistical analysis, rules, atypical behavior, triggers in a honey-host, or other determinations using techniques including those described herein. In some embodiments, the sources comprise data collectors configured to receive network data. For example, firewalls, IPS, servers, routers, switches, access points and the like may, either individually or collectively, function as or include a data collector. The data collector may forward network data to the collection module  516 . 
     For an embodiment, the data collectors filter the data before providing the data to the collection module  516 . For example, the data collector may be configured to collect or intercept data using techniques including those described herein. In some embodiments, the data collector may be configured to follow configured rules. For example, if data is directed between two known and trustworthy sources (e.g., the data is communicated between two devices on a whitelist), the data collector may not collect the data. In various embodiments, a rule may be configured to intercept a class of data (e.g., all MS Word documents that may include macros or data that may comprise a script). In some embodiments, rules may be configured to target a class of attack or payload based on the type of malware attacks on the target network in the past. In some embodiments, the system may make recommendations (e.g., via the reporting module  526 ) and/or configure rules for the collection module  516  and/or the data collectors. Those skilled in the art will appreciate that the data collectors may include any number of rules regarding when data is collected or what data is collected. 
     For an embodiment, the data collectors located at various positions in the network may not perform any assessment or determination regarding whether the collected data is suspicious or trustworthy. For example, the data collector may collect all or a portion of the network traffic/data and provide the collected network traffic/data to the collection module  516  which may perform analysis and/or filtering using techniques including those described herein. 
     A data flagging module  518  (or instructions) may analyze the data and/or perform one or more assessments to the collected data received by the collection module  516  and/or the data collector to determine if the intercepted network data is suspicious using techniques including those describe herein. The data flagging module  518  may apply rules, compare real-time observations with one or more behavior profiles, generate one or more anomalies based on a comparison of real-time observations with at least one behavior profile, and/or correlate one or more first order indicators of compromise with one or more second order indicators of compromise to generate a risk score as discussed herein to determine if the collected data should be flagged as suspicious. 
     For an embodiment, collected network traffic/data may be initially identified as suspicious until determined otherwise (e.g., associated with a whitelist) or heuristics find no reason that the network data should be flagged as suspicious. The data flagging module  518  may perform packet analysis to look for suspicious characteristics in the header, footer, destination IP, origin IP, payload, and the like using techniques including those described herein. Those skilled in the art will appreciate that the data flagging module  518  may perform a heuristic analysis, a statistical analysis, and/or signature identification (e.g., signature-based detection involves searching for known patterns of suspicious data within the collected data&#39;s code) to determine if the collected network data is suspicious. A machine-learning based classification model may also be applied for the determination. 
     The data flagging module  518  may be resident at the data collector, at the system, partially at the data collector, partially at a security server  108 , or on a network device. For example, a router may comprise a data collector and a data flagging module  518  configured to perform one or more heuristic assessments on the collected network data. A software-defined networking (“SDN”) switch is an example of a network device configured to implement data-flagging and filtering functions. If the collected network data is determined to be suspicious, the router may direct the collected data to the security server  108 . 
     For an embodiment, the data flagging module  518  may be updated. In one example, the security server  108  may provide new entries for a whitelist, entries for a blacklist, heuristic algorithms, statistical algorithms, updated rules, and/or new signatures to assist the data flagging module  518  to determine if network data is suspicious. The whitelists, entries for whitelists, blacklists, entries for blacklists, heuristic algorithms, statistical algorithms, and/or new signatures may be generated by one or more security servers  108  (e.g., via the reporting module  526 ). 
     The virtualization module  520  and emulation module  522  may analyze suspicious data for untrusted behavior (e.g., malware or distributed attacks). The virtualization module  520  is configured to instantiate one or more virtualization environments to process and monitor suspicious data. Within the virtualization environment, the suspicious data may operate as if within a target digital device. The virtualization module  520  may monitor the operations of the suspicious data within the virtualization environment to determine that the suspicious data is probably trustworthy, malware, or requiring further action (e.g., further monitoring in one or more other virtualization environments and/or monitoring within one or more emulation environments). 
     For an embodiment, the virtualization module  520  may determine that suspicious data is malware but continue to process the suspicious data to generate a full picture of the malware, identify the vector of attack, determine the type, extent, and scope of the malware&#39;s payload, determine the target of the attack, and detect if the malware is to work with any other malware. In this way, the security server  108  may extend predictive analysis to actual applications for complete validation. A report may be generated (e.g., by the reporting module  526 ) describing the malware, identify vulnerabilities, generate or update signatures for the malware, generate or update heuristics or statistics for malware detection, generate a report identifying the targeted information (e.g., credit card numbers, passwords, or personal information) and/or generate an incident alert as described herein. 
     For an embodiment, the virtualization module  520  may flag suspicious data as requiring further emulation and analytics in the back end if the data has suspicious behavior such as, but not limited to, preparing an executable that is not executed, performing functions without result, processing that suddenly terminates, loading data into memory that is not accessed or otherwise executed, scanning ports, or checking in specific portions of memory when those locations in memory may be empty. The virtualization module  520  may monitor the operations performed by or for the suspicious data and perform a variety of checks to determine if the suspicious data is behaving in a suspicious manner. Further, a virtualization module is configured to instantiate a browser cooking environment such as those described herein. 
     The emulation module  522  is configured to process suspicious data in an emulated environment. Those skilled in the art will appreciate that malware may require resources that are not available or may detect a virtualization environment. When malware requires unavailable resources, the malware may “go benign” or act in a non-harmful manner. In another example, malware may detect a virtualization environment by scanning for specific files and/or memory necessary for hypervisor, kernel, or other virtualization data to execute. If malware scans portions of its environment and determines that a virtualization environment may be running, the malware may “go benign” and either terminate or perform nonthreatening functions. 
     For an embodiment, the emulation module  522  processes data flagged as behaving suspiciously by the virtualization environment. The emulation module  522  may process the suspicious data in a bare metal environment (i.e., a pure hardware sandbox) where the suspicious data may have direct memory access. The behavior of the suspicious data as well as the behavior of the emulation environment may be monitored and/or logged to track the suspicious data&#39;s operations. For example, the emulation module  522  may track what resources (e.g., applications and/or operating system files) are called in processing the suspicious data. 
     For an embodiment, the emulation module  522  records responses to the suspicious data in the emulation environment. If a divergence in the operations of the suspicious data between the virtualization environment and the emulation environment is detected, the virtualization environment may be reconfigured based on behavior seen from the emulation environment. The new configuration may include removing one or more tracing instrumentation against the suspicious data. The suspicious data may receive the expected response within the new virtualization environment and continue to operate as if the suspicious data was within the targeted digital device. The role of the emulation environment and the virtualization environment and the order of using the environments may be swapped. 
     A control module  524  (or instructions) control module  524  synchronizes the virtualization module  520  and the emulation module  522 . For an embodiment, the control module  524  synchronizes the virtualization and emulation environments. For example, the control module  524  may direct the virtualization module  520  to instantiate a plurality of different virtualization environments with different resources. The control module  524  may compare the operations of different virtualization environments to each other in order to track points of divergence. For example, the control module  524  may identify suspicious data as operating in one manner when the virtualization environment includes, but is not limited to, Internet Explorer v.7.0 or v.8.0, but operating in a different manner when interacting with Internet Explorer v.9.0 (e.g., when the suspicious data exploits a vulnerability that may be present in one version of an application but not present in another version). 
     The control module  524  may track operations in one or more virtualization environments and one or more emulation environments. For example, the control module  524  may identify when the suspicious data behaves differently in a virtualization environment in comparison with an emulation environment. Divergence and correlation analysis is when operations performed by or for suspicious data in a virtual environment is compared to operations performed by or for suspicious data in a different virtual environment or emulation environment. For example, the control module  524  may compare monitored steps of suspicious data in a virtual environment to monitored steps of the same suspicious data in an emulation environment. The functions or steps of or for the suspicious data may be similar but suddenly diverge. In one example, the suspicious data may have not detected evidence of a virtual environment in the emulation environment and, unlike the virtualization environment where the suspicious data went benign, the suspicious data undertakes actions characteristic of malware (e.g., hijacks a formerly trusted data or processes). 
     When divergence is detected and further observation is needed, the control module  524  may re-provision or instantiate a virtualization environment with information from the emulation environment (e.g., switch between user-space API hooking and kernel tracing) that may not be previously present in the originally instantiation of the virtualization environment. The suspicious data may then be monitored in the new virtualization environment to further detect suspicious behavior or untrusted behavior. Those skilled in the art will appreciate that suspicious behavior of an object is behavior that may be untrusted or malicious. Untrusted behavior is behavior that indicates a significant threat. 
     For an embodiment, the control module  524  is configured to compare the operations of each virtualization environment in order to identify suspicious or untrusted behavior. For example, if the suspicious data takes different operations depending on the version of a browser or other specific resource when compared to other virtualization environments, the control module  524  may identify the suspicious data as malware. Once the control module  524  identifies the suspicious data as malware or otherwise untrusted, the control module  524  may continue to monitor the virtualization environment to determine the vector of attack of the malware, the payload of the malware, and the target (e.g., control of the digital device, password access, credit card information access, and/or ability to install a bot, keylogger, and/or rootkit). For example, the operations performed by and/or for the suspicious data may be monitored in order to further identify the malware, determine untrusted acts, and log the effect or probable effect. 
     A reporting module  526  (or instructions) is configured to generate a data model based on a generated list of events. Further a reporting module  526  is configured to generate reports such as an incident alert as describe herein. For an embodiment, the reporting module  526  generates a report to identify malware, one or more vectors of attack, one or more payloads, target of valuable data, vulnerabilities, command and control protocols, and/or behaviors that are characteristics of the malware. The reporting module  526  may also make recommendations to safeguard information based on the attack (e.g., move credit card information to a different digital device, require additional security such as VPN access only, or the like). 
     For an embodiment, the reporting module  526  generates malware information that may be used to identify malware or suspicious behavior. For example, the reporting module  526  may generate malware information based on the monitored information of the virtualization environment. The malware information may include a hash of the suspicious data or a characteristic of the operations of or for the suspicious data. In one example, the malware information may identify a class of suspicious behavior as being one or more steps being performed by or for suspicious data at specific times. As a result, suspicious data and/or malware may be identified based on the malware information without virtualizing or emulating an entire attack. 
     A signature module  528  (or instructions) is configured to classify network traffic/data based on said list of events. Further a signature module  528  is configured to store signature files that may be used to identify malware and/or traffic patterns. The signature files may be generated by the reporting module  312  and/or the signature module  528 . In various embodiments, the security server  108  may generate signatures, malware information, whitelist entries, and/or blacklist entries to share with other security servers. As a result, the signature module  528  may include signatures generated by other security servers or other digital devices. Those skilled in the art will appreciate that the signature module  528  may include signatures generated from a variety of different sources including, but not limited to, other security firms, antivirus companies, and/or other third-parties. 
     For an embodiment, the signature module  528  may provide signatures which are used to determine if network traffic/data is suspicious or is malware. For example, if network traffic/data matches the signature of known malware, then the network data may be classified as malware. If network data matches a signature that is suspicious, then the network data may be flagged as suspicious data. The malware and/or the suspicious data may be processed within a virtualization environment and/or the emulation environment as discussed herein. 
     A quarantine module  530  (or instructions) is configured to quarantine suspicious data and/or network traffic/data. For an embodiment, when the security server  108  identifies malware or probable malware, the quarantine module  530  may quarantine the suspicious data, network data, and/or any data associated with the suspicious data and/or network data. For example, the quarantine module  530  may quarantine all data from a particular digital device that has been identified as being infected or possibly infected. For an embodiment, the quarantine module  530  is configured to alert a security administrator or the like (e.g., via email, call, voicemail, or SMS text message) when malware or possible malware has been found. 
     Although  FIG. 5  illustrates system  502  as a computer it could be a distributed system, such as a server system. The figures are intended more as functional descriptions of the various features which may be present in a client and a set of servers than as structural schematics of the embodiments described herein. Thus, one of ordinary skill in the art would understand that items shown separately could be combined and some items could be separated. For example, some items illustrated as separate modules in  FIG. 5  could be implemented on a single server or client and a single item could be implemented by one or more servers or clients. The actual number of servers, clients, or modules used to implement a system  502  and how features are allocated among them will vary from one implementation to another, and may depend in part on the amount of data traffic that the system must handle during peak usage periods as well as during average usage periods. In addition, some modules or functions of modules illustrated in  FIG. 4  may be implemented on one or more one or more systems remotely located from other systems that implement other modules or functions of modules illustrated in  FIG. 5 . 
     In the foregoing specification, specific exemplary embodiments of the invention have been described. It will, however, be evident that various modifications and changes may be made thereto. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.