The disclosed embodiments relate to techniques for processing network data. More specifically, the disclosed embodiments relate to techniques for performing protocol-based capture of network data using remote capture agents in a distributed network environment.
Over the past decade, the age of virtualization has triggered a sea change in the world of network data capture. Almost every network capture product available today is a physical hardware appliance that customers have to purchase and configure. In addition, most network data capture technologies are built from scratch to serve a specific purpose and address the needs of a particular vertical market. For example, network capture systems may be customized to extract data for security and intrusion-detection purposes, collect network performance data, perform Quality of Service (QoS), redirect data, block network traffic, and/or perform other analysis or management of network traffic. Such targeted and/or fixed implementation and use of network capture technologies may preclude modification of the network capture technologies to address different and changing business needs.
Moreover, customers using conventional hardware-based network capture devices typically connect the devices to other hardware devices in a network. The connections may allow the network capture devices to access the network and monitor network traffic between two or more points in the network. Examples of such devices include a network Test Access Point (TAP) or Switched Port Analyzer (SPAN) port. After the network traffic is captured, cumbersome Extraction, Transform, and Load (“ETL”) processes may be performed to filter, transform, and/or aggregate data from the network traffic and enable the extraction of business value from the data.
However, customers are moving away from managing physical servers and data centers and toward public and private cloud computing environments that provide software, hardware, infrastructure, and/or platform resources as hosted services using computing, storage, and/or network devices at remote locations. For these customers, it is either impossible, or at best extremely challenging, to deploy physical network capture devices and infrastructure in the cloud computing environments.
Consequently, network data capture may be facilitated by mechanisms for streamlining the deployment and configuration of network capture technology at distributed and/or remote locations.
The disclosed embodiments provide a system that processes network data. During operation, the system obtains, at a remote capture agent, a first protocol classification for a first packet flow captured by the remote capture agent. Next, the system uses configuration information associated with the first protocol classification to build a first event stream from the first packet flow at the remote capture agent, wherein the first event stream includes time-series event data generated from network packets in the first packet flow based on the first protocol classification. The system then transmits the first event stream over a network for subsequent storage and processing of the first event stream by one or more components on the network.
In some embodiments, the system also obtains, at the remote capture agent, the configuration information from a configuration server over the network. Next, the system uses the configuration information to configure the generation of the time-series event data from the network packets during runtime of the remote capture agent.
In some embodiments, the system also obtains, at the remote capture agent, a second protocol classification for a second packet flow captured at the remote capture agent. Next, the system uses configuration information associated with the second protocol classification to build a second event stream from the second packet flow at the remote capture agent, wherein the second event stream includes time-series event data from network packets in the second packet flow based on the second protocol classification. The system then transmits the second event stream over the network.
In some embodiments, the system also identifies, at the remote capture agent, the network packets in the first packet flow based on control information in the network packets.
In some embodiments, the system also assembles the first packet flow from the network packets. Upon detecting encryption of the network packets in the first packet flow, the system decrypts the network packets in the first packet flow prior to obtaining the first protocol classification for the first packet flow.
In some embodiments, the network packets in the first packet flow are associated with at least one of a source, a destination, a network address, a port, and a transport layer protocol.
In some embodiments, using the configuration information associated with the first protocol classification to build the first event stream from the first packet flow at the remote capture agent includes:
In some embodiments, the first protocol classification comprises at least one of a transport layer protocol, a session layer protocol, a presentation layer protocol, and an application layer protocol.
In the figures, like reference numerals refer to the same figure elements.
The following description is presented to enable any person skilled in the art to make and use the embodiments, and is provided in the context of a particular application and its requirements. Various modifications to the disclosed embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the present disclosure. Thus, the present invention is not limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles and features disclosed herein.
The data structures and code described in this detailed description are typically stored on a computer-readable storage medium, which may be any device or medium that can store code and/or data for use by a computer system. The computer-readable storage medium includes, but is not limited to, volatile memory, non-volatile memory, magnetic and optical storage devices such as disk drives, magnetic tape, CDs (compact discs), DVDs (digital versatile discs or digital video discs), or other media capable of storing code and/or data now known or later developed.
The methods and processes described in the detailed description section can be embodied as code and/or data, which can be stored in a computer-readable storage medium as described above. When a computer system reads and executes the code and/or data stored on the computer-readable storage medium, the computer system performs the methods and processes embodied as data structures and code and stored within the computer-readable storage medium.
Furthermore, methods and processes described herein can be included in hardware modules or apparatus. These modules or apparatus may include, but are not limited to, an application-specific integrated circuit (ASIC) chip, a field-programmable gate array (FPGA), a dedicated or shared processor that executes a particular software module or a piece of code at a particular time, and/or other programmable-logic devices now known or later developed. When the hardware modules or apparatus are activated, they perform the methods and processes included within them.
The disclosed embodiments provide a method and system for facilitating the processing of network data. As shown in
Although system 100 only depicts three configuration servers 120 and three remote capture agents 151-153, any number of configuration servers 120 and/or remote capture agents 151-153 may be configured to operate and/or communicate with one another within the data-processing system. For example, a single physical and/or virtual server may perform the functions of configuration servers 120. Alternatively, multiple physical and/or virtual servers or network elements may be logically connected to provide the functionality of configuration servers 120. The configuration server(s) may direct the activity of multiple distributed remote capture agents 151-153 installed on various client computing devices across one or more networks. In turn, remote capture agents 151-153 may be used to capture network data from multiple remote network data sources.
Further, embodiments described herein can be configured to capture network data in a cloud-based environment, such as cloud 140 depicted in the illustrated embodiment, and to generate events such as timestamped records of network activity from the network data. Remote capture agents 151-153 may capture network data originating from numerous distributed network servers, whether they are physical hardware servers or virtual machines running in cloud 140. In cloud-based implementations, remote capture agents 151-153 will generally only have access to information that is communicated to and received from machines running in the cloud-based environment. This is because, in a cloud environment, there is generally no access to any of the physical network infrastructure, as cloud computing may utilize a “hosted services” delivery model where the physical network infrastructure is typically managed by a third party.
Embodiments further include the capability to separate the data capture technology into a standalone component that can be installed directly on client servers, which may be physical servers or virtual machines residing on a cloud-based network (e.g., cloud 140), and used to capture and generate events for all network traffic that is transmitted in and out of the client servers. This eliminates the need to deploy and connect physical hardware to network TAPS or SPAN ports, thus allowing users to configure and change their data capture configuration on-the-fly rather than in fixed formats.
In the illustrated embodiment, remote capture agents 152-153 are in communication with network servers 130 residing in cloud 140, and remote capture agent 151 is located in cloud 140. Cloud 140 may represent any number of public and private clouds, and is not limited to any particular cloud configuration. Network servers 130 residing in cloud 140 may be physical servers and/or virtual machines in cloud 140, and network traffic to and from network servers 130 may be monitored by remote capture agent 151 and/or other remote capture agents connected to network servers 130. Further, remote capture agents 152-153 may also run in cloud 140 on physical servers and/or virtual machines. Those skilled in the art will appreciate that any number of remote capture agents may be included inside or outside of cloud 140.
Remote capture agents 151-153 may analyze network packets received from the networks(s) to which remote capture agents 151-153 are connected to obtain network data from the network packets and generate a number of events from the network data. For example, each remote capture agent 151-153 may listen for network traffic on network interfaces available to the remote capture agent. Network packets transmitted to and/or from the network interfaces may be intercepted by the remote capture agent and analyzed, and relevant network data from the network packets may be used by the remote capture agent to create events related to the network data. Such events may be generated by aggregating network data from multiple network packets, or each event may be generated using the contents of only one network packet. A sequence of events from a remote capture agent may then be included in one or more event streams that are provided to other components of system 100.
Configuration servers 120, data storage servers 135, and/or other network components may receive event data (e.g., event streams) from remote capture agents 151-153 and further process the event data before the event data is stored by data storage servers 135. In the illustrated embodiment, configuration servers 120 may transmit event data to data storage servers 135 over a network 101 such as a local area network (LAN), wide area network (WAN), personal area network (PAN), virtual private network, intranet, mobile phone network (e.g., a cellular network), WiFi network, Ethernet network, and/or other type of network that enables communication among computing devices. The event data may be received over a network (e.g., network 101, network 190) at one or more event indexers (see
In addition, system 100 may include functionality to determine the types of network data collected and/or processed by each remote capture agent 151-153 to avoid data duplication at the indexers, data storage servers 135, and/or other components of system 100. For example, remote capture agents 152-153 may process network traffic from the same network. However, remote capture agent 152 may generate page view events from the network traffic, and remote capture agent 153 may generate request events (e.g., of HyperText Transfer Protocol (HTTP) requests and responses) from the network traffic.
In one or more embodiments, configuration servers 120 include configuration information that is used to configure the creation of events from network data on remote capture agents 151-153. In addition, such configuration may occur dynamically during event processing (e.g., at runtime). Conversely, because most conventional network capture technologies target specific end uses, they have been designed to operate in a fixed way and generally cannot be modified dynamically or easily to address different and changing business needs.
At least certain embodiments described herein are adapted to provide a distributed remote capture platform in which the times at which events are communicated to the configuration servers 120 and the fields to be included in the events are controlled by way of user-modifiable configuration rather than by “hard coding” fixed events with pre-determined fields for a given network capture mechanism. The remote configuration capability described herein also enables additional in-memory processing (e.g., filtering, transformation, normalization, aggregation, etc.) on events at the point of capture (e.g., remote capture agents 151-153) before the events are transmitted to other components of system 100.
Configuration information stored at each configuration server 120 may be created and/or updated manually at the configuration server and/or at a network element in communication with the configuration server. For example, a user may upload a configuration file containing configuration information for a remote capture agent to one or more configuration servers 120 for subsequent propagation to the remote capture agent. Alternatively, the user may use a GUI to provide the configuration information, as described in further detail below with respect to
Remote capture agents 151-153 may then use the configuration information to generate events from captured network packets. When changes in the configuration information at the configuration server are detected at the remote capture agents, logic in the remote capture agents may be automatically reconfigured in response. This means the remote capture agents may be configured dynamically to produce different events, transform the events, and/or communicate event streams to different components of system 100.
To detect changes in configuration information at configuration servers 120, remote capture agents 151-153 may poll configuration servers 120 at periodic intervals for updates to the configuration information. The updates may then be pulled from configuration servers 120 by remote capture agents 151-153. Conversely, updates to the configuration information may be pushed from configuration servers 120 to remote capture agents 151-153 at periodic intervals and/or when changes to the configuration information have been made.
In one embodiment, configuration servers 120 include a list of event streams generated by remote capture agents 151-153, as well as the configuration information used to generate the event streams at remote capture agents 151-153. The configuration information may include a unique identifier for each event stream, the types of events to be included in the event stream, one or more fields to be included in each event, and/or one or more filtering rules for filtering events to be included in the event stream. Using configuration information to dynamically modify network data capture by remote capture agents (e.g., remote capture agents 151-153) is described in a non-provisional application by inventor Michael Dickey, entitled “Distributed Processing of Network Data Using Remote Capture Agents,” having Ser. No. 14/253,713, and filing date 15 Apr. 2014, issued as U.S. Pat. No. 10,127,273, which is incorporated herein by reference.
In one or more embodiments, system 100 includes functionality to perform protocol-based capture and analysis of network data using remote capture agents 151-153. First, remote capture agents 151-153 may be configured to generate event streams from packet flows captured at remote capture agents 151-153 based on protocol classifications for the packet flows, as described below with respect to
Remote capture agent 250 includes a communications component 203 configured to communicate with network elements on one or more networks (e.g., network 101) and send and receive network data (e.g., network packets) over the network(s). As depicted, communications component 203 may communicate with configuration servers 120 over network 101. Communications component 203 may also communicate with one or more sources of network data, such as network servers 130 of
Network data received at communications component 203 may be captured by a capture component 205 coupled with communications component 203. Capture component 205 may capture some or all network data from communications component 203. For example, capture component 205 may capture network data based on the sources and/or destinations of the network data, the types of network data, the protocol associated with the network data, and/or other characteristics of the network data.
In addition, the network data may be captured based on configuration information stored in a configuration component 204 of remote capture agent 250. As mentioned above, the configuration information may be received from configuration servers 120 over network 101. The configuration information may then be used to dynamically configure or reconfigure remote capture agent 250 in real-time. For example, newly received configuration information in configuration component 204 may be used to configure the operation of remote capture agent 250 during processing of events from network data by remote capture agent 250.
To dynamically configure remote capture agent 250, configuration information received by configuration component 204 from configuration servers 120 may be provided to other components of remote capture agent 250. More specifically, remote capture agent 250 includes an events generator 207 that receives network data from network data capture component 205 and generates events from the network data based on configuration information from configuration component 204.
Using configuration information provided by configuration servers 120, remote capture agent 250 can be instructed to perform any number of event-based processing operations. For example, the configuration information may specify the generation of event streams associated with network (e.g., HTTP, Simple Mail Transfer Protocol (SMTP), Domain Name System (DNS)) transactions, business transactions, errors, alerts, clickstream events, and/or other types of events. The configuration information may also describe custom fields to be included in the events, such as values associated with specific clickstream terms. The configuration information may include additional parameters related to the generation of event data, such as an interval between consecutive events and/or the inclusion of transactions and/or errors matching a given event in event data for the event. Configuration information for configuring the generation of event streams from network data captured by remote capture agents is further described in the above-referenced application.
An events transformer 209 may further use the configuration information to transform some or all of the network data from capture component 205 and/or events from events generator 207 into one or more sets of transformed events. In one or more embodiments, transformations performed by events transformer 209 include aggregating, filtering, cleaning, and/or otherwise processing events from events generator 207. Configuration information for the transformations may thus include a number of parameters that specify the types of transformations to be performed, the types of data on which the transformations are to be performed, and/or the formatting of the transformed data.
A rules comparison engine 208 in remote capture agent 250 may receive events from event generator 207 and compare one or more fields from the events to a set of filtering rules in the configuration information to determine whether to include the events in an event stream. For example, the configuration information may specify packet-level, protocol-level, and/or application-level filtering of event data from event streams generated by remote capture agent 250.
Finally, a data enrichment component 211 may further transform event data to a different form or format based on the configuration information from configuration component 204. For example, data enrichment component 211 may use the configuration information to normalize the data so that multiple representations of the same value (e.g., timestamps, measurements, etc.) are converted into the same value in transformed event data.
Data can be transformed by data enrichment component 211 in any number of ways. For example, remote capture agent 250 may reside on a client server in Cupertino, Calif., where all the laptops associated with the client server have been registered with the hostname of the client server. Remote capture agent 250 may use the registration data to look up an Internet Protocol (IP) address in a look-up table (LUT) that is associated with one or more network elements of the client server's local network. Remote capture agent 250 may then resolve a user's IP address into the name of the user's laptop, thereby enabling inclusion of the user's laptop name in transformed event data associated with the IP address. The transformed event data may then be communicated to configuration servers 120 and/or a central transformation server residing in San Francisco for further processing, indexing, and/or storage.
As mentioned above, remote capture agent 250 may perform protocol-based generation of event streams from network data. As shown in
Protocol-specific configuration information from configuration component 204 may be used to configure the generation of event streams (e.g., event stream C 232, event stream D 234, event stream E 240, event stream F 242) based on protocol classifications of network packets (e.g., network packets C 216, network packets D 218) captured by capture component 205. For example, protocol-specific configuration information from configuration component 204 may specify the creation of event streams from the network packets based on the protocols used in the network packets, such as HTTP, DNS, SMTP, File Transfer Protocol (FTP), Server Message Block (SMB), Network File System (NFS), Internet Control Message Protocol (ICMP), email protocols, database protocols, and/or security protocols. Such event streams may include event attributes that are of interest to the respective protocols.
Before the event streams are generated from the network packets, capture component 205 may assemble the network packets into one or more packets flows (e.g., packet flow C 220, packet flow D 222). First, capture component 205 may identify the network packets in a given packet flow based on control information in the network packets. The packet flow may represent a communication path between a source and a destination (e.g., host, multicast group, broadcast domain, etc.) on the network. As a result, capture component 205 may identify network packets in the packet flow by examining network (e.g., IP) addresses, ports, sources, destinations, and/or transport protocols (e.g., Transmission Control Protocol (TCP), User Datagram Protocol (UDP), etc.) from the headers of the network packets.
Next, capture component 205 may assemble the packet flow from the network packets. For example, capture component 205 may assemble a TCP packet flow by rearranging out-of-order TCP packets. Conversely, capture component 205 may omit reordering of the network packets in the packet flow if the network packets use UDP and/or another protocol that does not provide for ordered packet transmission.
After the packet flow is assembled, capture component 205 and/or another component of remote capture agent 250 may detect encryption of the network packets in the packet flow by analyzing the byte signatures of the network packets' payloads. For example, the component may analyze the network packets' payloads for byte signatures that are indicative of Secure Sockets Layer (SSL) and/or Transport Layer Security (TLS) encryption. If the network packets are detected as encrypted, the component may decrypt the network packets. For example, the component may have access to private keys from an SSL server used by the network flow and perform decryption of the network packets to obtain plaintext payload data in the order in which the data was sent. Such access to private keys may be given to remote capture agent 250 by an administrator associated with the network flow, such as an administrator of the host from which the network packets are transmitted.
Events generator 207 may then obtain a protocol classification (e.g., protocol classification C 224, protocol classification D 226) for each packet flow identified, assembled, and/or decrypted by capture component 205. For example, events generator 207 may use a protocol-decoding mechanism to analyze the headers and/or payloads of the network packets in the packet flow and return protocol identifiers of one or more protocols used in the network packets. The protocol-decoding mechanism may additionally provide metadata related to the protocols, such as metadata related to traffic volume, application usage, application performance, user and/or host identifiers, content (e.g., media, files, etc.), and/or file metadata (e.g., video codecs and bit rates).
Once the protocol classification is obtained for a packet flow, events generator 207 may use protocol-specific configuration information associated with the protocol classification from configuration component 204 to build an event stream (e.g., event stream C 232, event stream D 234) from the packet flow. As mentioned above and in the above-referenced application, the event stream may include time-series event data generated from network packets in the packet flow. To create the event stream, events generator 207 may obtain one or more event attributes associated with the protocol classification from the configuration information. Next, event generator 207 may extract the event attribute(s) from the network packets in the first packet flow. Events generator 207 may then include the extracted event attribute(s) in the event stream.
For example, events generator 207 may obtain a protocol classification of DNS for a packet flow from capture component 205 and protocol-specific configuration information for generating event streams from DNS traffic from configuration component 204. The protocol-specific configuration information may specify the collection of event attributes such as the number of bytes transferred between the source and destination, network addresses and/or identifiers for the source and destination, DNS message type, DNS query type, return message, response time to a DNS request, DNS transaction identifier, and/or a transport layer protocol. In turn, events generator 207 may parse the protocol-specific configuration to identify the event attributes to be captured from the packet flow. Next, events generator 207 may extract the specified event attributes from the network packets in the packet flow and/or metadata received with the protocol classification of the packet flow and generate time-stamped event data from the extracted event attributes. Events generator 207 may then provide the time-stamped event data in an event stream to communications component 203 for transmission of the event stream over a network to one or more configuration servers, data storage servers, indexers, and/or other components for subsequent storage and processing of the event stream by the component(s).
As described above and in the above-referenced application, network data from capture component 205 and/or event data from events generator 207 may be transformed by events transformer 209 into transformed event data that is provided in lieu of or in addition to event data generated by events generator 207. For example, events transformer 209 may aggregate, filter, clean, and/or otherwise process event attributes from events generator 207 to produce one or more sets of transformed event attributes (e.g., transformed event attributes 1236, transformed event attributes z 238). Events transformer 209 may then include the transformed event attributes into one or more additional event streams (e.g., event stream 1240, event stream z 242) that may be transmitted over the network for subsequent storage and processing of the event stream(s) by other components on the network. Such transformation of event data at remote capture agent 250 may offload subsequent processing of the event data at configuration servers and/or other components on the network. Moreover, if the transformation reduces the size of the event data (e.g., by aggregating the event data), network traffic between remote capture agent 250 and the other components may be reduced, along with the storage requirements associated with storing the event data at the other components.
As with protocol-based generation of event data by events generator 207, events transformer 209 may use protocol-specific configuration information from configuration component 204 to transform network and/or event data from a given packet flow and/or event stream. For example, events transformer 209 may obtain protocol-specific configuration information for aggregating HTTP events and use the configuration information to generate aggregated HTTP events from HTTP events produced by events generator 207. The configuration information may include one or more key attributes used to generate a unique key representing an aggregated event from the configuration information. For example, key attributes for generating an aggregated HTTP event may include the source and destination IP addresses and ports in a set of HTTP events. A different unique key and aggregated HTTP event may thus be generated for each unique combination of source and destination IP addresses and ports in the HTTP events.
The configuration information may also specify one or more aggregation attributes to be aggregated prior to inclusion in the aggregated event. For example, aggregation attributes for generating an aggregated HTTP event from HTTP event data may include the number of bytes and packets sent in each direction between the source and destination. Data represented by the aggregation attributes may be included in the aggregated HTTP event by summing, averaging, and/or calculating a summary statistic from the number of bytes and packets sent in each direction between the source and destination. Aggregation of event data is described in further detail below with respect to
Configuration server 320 also includes a configuration component 304 that stores configuration information for remote capture agents 350. As described above, the configuration information may specify the types of events to produce, data to be included in the events, and/or transformations to be applied to the data and/or events to produce transformed events. Some or all of the transformations may be specified in a set of filtering rules 321 that may be applied to event data at remote capture agents 350 to determine a subset of the event data to be included in one or more event streams that are sent to configuration server 320 and/or other components.
Configuration server 320 may also include a data processing component 311 that performs additional processing of the event streams based on configuration information from configuration component 304. As discussed in the above example with respect to
Configuration server 320 may also provide a GUI 325 that can be used to configure or reconfigure the information contained in configuration component 304. The operation of GUI 325 is discussed in further detail below with respect to
Finally, configuration server 320 may provide a risk-identification mechanism 307 for identifying a security risk from time-series event data generated by remote capture agents 350, as well as a capture trigger 309 for generating additional time-series event data based on the security risk. For example, risk-identification mechanism 307 may allow a user to view and/or search for events that may represent security risks through GUI 325. Risk-identification mechanism 307 and/or GUI 325 may also allow the user to set and/or activate capture trigger 309 based on the events shown and/or found through risk-identification mechanism 307 and/or GUI 325.
In particular, risk-identification mechanism 307 and/or GUI 325 may allow the user to manually activate capture trigger 309 after discovering a potential security risk. In turn, the activated capture trigger 309 may modify configuration information in configuration component 304 that is propagated to remote capture agents 350 to trigger the capture of additional network data by remote capture agents 350.
Alternatively, risk-identification mechanism 307 may allow the user to create a search and/or recurring search for time-series event data that may match a security risk. If the search and/or recurring search finds time-series event data that matches the security risk, capture trigger 309 may automatically be activated to enable the generation of additional time-series event data, such as event data containing one or more attributes associated with one or more protocols that facilitate analysis of the security risk. Such automatic activation of capture trigger 309 may allow the additional event data to be generated immediately after a notable event is detected, thus averting the loss of captured network data that results from enabling additional network data capture only after a potential security risk is manually identified (e.g., by an analyst). Triggering the generation of additional time-series event data from network packets on remote agents based on potential security risks is described in further detail below with respect to
As shown in
Column 402 shows an alphabetized list of names of the event streams, and column 404 provides descriptions of the event streams. For example, columns 402-404 may include names and descriptions of event streams generated from HTTP, Dynamic Host Configuration Protocol (DHCP), DNS, FTP, email protocols, database protocols, NFS, Secure Message Block (SMB), security protocols, Session Initiation Protocol (SIP), TCP, and/or UDP network traffic. Columns 402-404 may thus indicate that event streams may be generated based on transport layer protocols, session layer protocols, presentation layer protocols, and/or application layer protocols.
A user may select a name of an event stream under column 402 to access and/or update configuration information for configuring the generation of the event stream. For example, the user may select “DemoHTTP” in column 402 to navigate to a screen of the GUI that allows the user to specify event attributes, filters, and/or aggregation information related to creating the “DemoHTTP” event stream, as discussed in further detail below with respect to
Column 406 specifies whether each event stream is enabled or disabled. For example, column 406 may indicate that the “AggregateHTTP,” “DemoHTTP,” “dns,” “ftp,” “mysql-query,” “sip,” “tcp,” and “udp” event streams are enabled. If an event stream is enabled, time-series event data may be included in the event stream based on the configuration information for the event stream.
Column 408 specifies whether each event stream is cloned from an existing event stream. For example, column 408 may indicate that the “AggregateHTTP” and “DemoHTTP” event streams have been cloned (e.g., copied) from other event streams, while the remaining event streams may be predefined with default event attributes.
The GUI also includes a user-interface element 410 (e.g., “Clone Stream”). A user may select user-interface element 410 to create a new event stream as a copy of an event stream listed in the GUI. After user-interface element 410 is selected, an overlay may be displayed that allows the user to specify a name for the new event stream, a description of the new event stream, and an existing event stream from which the new event stream is to be cloned. The new event stream may then be created with the same event attributes and/or configuration options as the existing event stream, and the user may use the GUI to customize the new event stream as a variant of the existing event stream (e.g., by adding or removing event attributes, filters, and/or aggregation information).
Like the GUI of
Columns 414-418 may provide information related to the event attributes. Column 414 may show the names of the event attributes, column 416 may provide a description of each event attribute, and column 418 may provide a term representing the event attribute. In other words, columns 414-418 may allow the user to identify the event attributes and decide whether the event attributes should be included in the event stream.
Column 420 may include a series of links labeled “Add.” The user may select one of the links to access a portion of the GUI that allows the user to set a filter for the corresponding event attribute. The filter may then be used in the generation of the event stream from network data. Creation of filters for generating event streams from network packets is described in further detail below with respect to
The GUI of
Finally, the GUI of
Next, the user may select user-interface element 428 (e.g., “Clone”) to clone the event stream and user-interface element 430 (e.g., “Delete”) to delete the event stream. If the user selects user-interface element 428, the GUI may obtain a name and description for the cloned event stream from the user. Next, the GUI may copy the content of columns 412-420, including configuration options (e.g., checkboxes in column 412 and filters added using links in column 420) that have been changed but not yet saved by the user, to a new screen for configuring the generation of the cloned event stream.
If the user selects user-interface element 430, the GUI may remove the event stream from the table in
The user may select user-interface element 432 (e.g., “Cancel”) to discharge changes to the configuration information made in the current screen of the GUI. Conversely, the user may select user-interface 434 (e.g., “Save”) to propagate the changes to the configuration information, and in turn, update the generation of event data from network packets captured by the remote capture agents based on the changes.
As shown in
Event attributes identified as key attributes in column 438 may be sorted at the top of the table, followed by event attributes identified as aggregation attributes. Event attributes that are not included in the event stream (e.g., event attributes with unchecked checkboxes in column 412) may be shown below the aggregation attributes in the table. Alternatively, event attributes may be displayed in the table according to other sortings and/or rankings.
While sums are the only type of aggregation shown in the GUI of
The GUI of
For example, column 438 may indicate that the “dest_ip,” “dest_port,” “src_ip,” “status,” and “uri_path” event attributes are specified as key attributes and the “bytes,” “bytes_in,” “bytes_out,” and “time_taken” event attributes are specified as aggregation attributes. Similarly, an aggregation interval of 60 seconds may be obtained from user-interface element 440. As a result, the aggregated event stream may include aggregated events generated from event data over a 60-second interval. After each 60-second interval has passed, a separate aggregated event with a unique key may be generated for each unique combination of “dest_ip,” “dest_port,” “src_ip,” “status,” and “uri_path” key attributes encountered during the interval. Values of “bytes,” “bytes_in,” “bytes_out,” and “time_taken” for events within the interval that match the unique combination of key attributes may also be summed and/or otherwise aggregated into the aggregated event. Aggregated events generated from the configuration options may then be shown in the same GUI, as described in further detail below with respect to
Such configuration of event streams and/or aggregated event streams may allow network data to be captured at different levels of granularity and/or for different purposes. For example, an aggregated event stream may include all possible event attributes for the event stream to enable overall monitoring of network traffic. On the other hand, one or more unaggregated event streams may be created to capture specific types of network data at higher granularities than the aggregated event stream. In addition, multiple event streams may be created from the same packet flow and/or event data to provide multiple “views” of the packet flow and/or event data.
As with the screenshots of
First, column 442 may provide a list of terms representing event attributes to which the filters are to be applied. For example, column 422 may specify an “http.status” term representing the “status” event attribute and an “http.uri-stem” term representing the “uripath” event attribute.
Column 444 may be used to provide a comparison associated with each filter. For example, a user may select a cell under column 444 to access a drop-down menu of possible comparisons for the corresponding filter. As shown in
Column 446 may allow the user to specify a value against which the comparison in column 444 is made. Cells in column 446 may be text-editable fields and/or other user-interface elements that accept user input. For example, the second cell of column 446 may include a value of “admin” that is entered by the user. Consequently, the values in the second cells of columns 444-446 may be used to generate a filter that determines if the “uri_path” event attribute from network data matches a regular expression of “admin.” If the network data matches the regular expression, the network data may be used to generate event data, which may subsequently be used to generate aggregated event data. If the network data does not match the regular expression, generation of event data from the network data may be omitted.
Column 448 may include a set of checkboxes with a “Match All” header. The user may check a checkbox in column 448 to require each value in a multi-value event attribute to match the filter. For example, the user may check a checkbox in column 448 for a filter that is applied to a checksum event attribute to ensure that each of multiple checksums in a given network packet and/or event satisfies the comparison in the filter.
Column 450 may allow the user to delete filters from the configuration information. For example, the user may select a user-interface (e.g., an icon) in a cell of column 450 to remove the corresponding filter from the configuration information.
The GUI also includes a set of user-interface elements 452-454 for determining the applicability of individual filters or all filters to the network data. For example, the user may select user-interface element 452 (e.g., “All”) to apply the filters so that only data that matches all filters in the table is used to generate events. Conversely, the user may select user-interface element 454 (e.g., “Any”) to apply the filters so that data matching any of the filters in the data is used to generate events. In other words, user-interface element 452 may be selected to apply a logical conjunction to the filters, while user-interface element 454 may be selected to apply a logical disjunction to the filters.
Within the GUI of
As shown in
The GUI of
On the other hand, the dashboard may lack data for other potential security risks because the data volume associated with capturing network data across all protocols and/or security risks may be too large to effectively store and/or consume. As a result, portion 502 may indicate that no data is available (e.g., “Search returned no results”) for the “HTTP Errors,” “Cloud Email,” “NFS Activity,” and “Threat List Activity” security risks.
The GUI may also include a portion 504 that represents a capture trigger for generating additional time-series event data based on identified security risks from portion 502. For example, portion 504 may include a checkbox that allows a user to activate the capture trigger upon identifying security risk 506 in portion 502. Portion 504 may also include a first drop-down menu that allows the user to specify one or more protocols (e.g., “HTTP,” “DNS,” “All Email,” “NFS/SMB,” “All Protocols”) of additional time-series event data to be captured with the capture trigger. Portion 504 may additionally include a second drop-down menu that allows the user to specify a period (e.g., “4 Hours”) over which the additional time-series event data is to be captured after the capture trigger is activated.
After the capture trigger is activated, configuration information on one or more remote capture agents used to generate the time-series event data may be updated to include the additional protocol(s) specified in portion 504. For example, configuration information for configuring the generation of additional event streams from the specified protocol(s) may be propagated to the remote capture agents, and the remote capture agents may use the configuration to create the event streams from network data and/or event data at the remote capture agents. The configuration information may include default event attributes for the protocol(s) and/or event attributes that may be of interest to the security assessment of network packet flows. For example, the configuration information may specify the generation of event data related to other security risks, such as the security risks shown in the dashboard. Once the event data is generated and/or indexed, the event data may be shown in the dashboard to facilitate verification, monitoring, and/or analysis of the security risk. After the pre-specified period obtained from portion 504 has passed, the configuration information on the remote capture agents may be updated to disable the generation of the additional event streams and reduce the volume of network data captured by the remote capture agents.
As with the user interfaces of
Portion 506 may allow a user to create a recurring search for time-series event data that matches a security risk. For example, portion 506 may include user-interface elements for obtaining a domain, application context, description, search terms, time range (e.g., start and end times), and/or frequency (e.g., daily, hourly, every five minutes, etc.) for the recurring search. The user may use the user-interface elements of portion 506 to specify a recurring search for an excessive number of failed login attempts in captured network and/or event data, which may represent brute force access behavior that constitutes a security risk.
Portion 508 may allow the user to provide the capture trigger, which is automatically activated if the recurring search finds time-series event data that matches the security risk. As with portion 504 of
After the user has finished defining the recurring search and capture trigger, the user may select a user-interface 510 (e.g., “Save”) to save the recurring search and capture trigger. The capture trigger may then be activated without additional input from the user once an iteration of the recurring search identifies the security risk. Conversely, the user may select a user-interface element 512 (e.g., “Cancel”) to exit the screen of
Initially, configuration information is obtained at a remote capture agent from a configuration server over a network (operation 602). The remote capture agent may be located on a separate network from that of the configuration server. For example, the remote capture agent may be installed on a physical and/or virtual machine on a remote network and/or cloud. As discussed above, the remote capture agent and other remote capture agents may be used to capture network data from a set of remote networks in a distributed manner.
Next, the configuration information is used to configure the generation of event data from network packets captured by the remote capture agent during the runtime of the remote capture agent (operation 604). For example, the configuration information may be used to configure the remote capture agent to identify certain types of network packets, extract network data from the network packets, and/or include the network data in the event data.
The remote capture agent may identify network packets in a packet flow based on control information in the network packets (operation 608). For example, network packets between a source and destination may be identified based on source and/or destination network addresses, source and/or destination ports, and/or transport layer protocols in the headers of the network packets.
The remote capture agent may also assemble the packet flow from the network packets (operation 608) and/or decrypt the network packets upon detecting encryption of the network packets (operation 610). For example, the remote capture agent may rearrange out-of-order TCP packets into a TCP stream. The remote capture agent may also analyze the byte signatures of the network packets' payloads to identify encryption of the network packets and use an available private key to decrypt the network packets.
After the packet flow is identified, assembled and/or decrypted, the remote capture agent may obtain a protocol classification for the packet flow (operation 612). For example, the remote capture agent may provide network packets in the packet flow to a protocol-decoding mechanism and receive one or more protocol identifiers representing the protocols used by the network packets from the protocol-decoding mechanism.
Next, the remote capture agent may use configuration information associated with the protocol classification to build an event stream from the packet flow (operation 614), as described in further detail below with respect to
An update to the configuration information may be received (operation 616). For example, the remote capture agent may receive an update to the configuration information after the configuration information is modified at a configuration server. If an update to the configuration information is received, the update is used to reconfigure the generation of time-series event data at the remote capture agent during runtime of the remote capture agent (operation 620). For example, the remote capture agent may be use the updated configuration information to generate one or more new event streams, discontinue the generation of one or more existing event streams, and/or modify the generation of one or more existing event streams.
The remote capture agent may continue to be used (operation 622) to capture network data. If the remote capture agent is to be used, packet flows captured by the remote capture agent are identified (operation 606), and network packets in the packet flows are assembled into the packet flows and/or decrypted (operations 608=610). Protocol classifications for the packet flows are also obtained and used, along with configuration information associated with the protocol classifications, to build event streams from the packet flows (operations 612-614). The event streams are then transmitted over the network (Operation 616), and any updates to the configuration information are used to reconfigure the operation of the remote capture agent (operations 618-620) during generation of the event streams. Capture of network data by the remote capture agent may continue until the remote capture agent is no longer used to generate event data from network data.
First, one or more event attributes associated with the protocol classification are obtained from the configuration information (operation 702). For example, the event attribute(s) may be obtained from a portion of the configuration information that specifies the generation of an event stream from network data matching the protocol classification.
Next, the event attribute(s) are extracted from network packets in the packet flow (operation 704). For example, the event attribute(s) may be used to generate event data from the network packets. The configuration information may optionally be used to transform the extracted event attribute(s) (operation 706). For example, the configuration information may be used to aggregate the event data into aggregated event data that reduces the volume of event data generated while retaining the important aspects of the event data.
Finally, the extracted and/or transformed event attributes are included in the event stream (operation 708). For example, the event stream may be include a series of events and/or aggregated events that contain event attributes that are relevant to the protocol classification of the network packets represented by the events.
First, a GUI for obtaining configuration information for configuring the generation of time-series event data from network packets captured by one or more remote agents is provided (operation 802). The GUI may include a number of user-interface elements for streamlining the creation and/or update of the configuration information. First, the GUI may provide a set of user-interface elements for including one or more event attributes in the time-series event data of an event stream associated with a protocol classification of the network packets (operation 804). For example, the GUI may include a set of checkboxes that enable the selection of individual event attributes for inclusion in the time-series event data.
Second, the GUI may provide a set of user-interface elements for managing the event stream (operation 806) and/or obtaining the protocol classification for the event stream. For example, the GUI may include one or more user-interface elements for cloning the event stream from an existing event stream, which imparts the protocol classification of the existing event stream on the cloned event stream. The GUI may also include user-interface elements for deleting the event stream, enabling the event stream, and/or disabling the event stream.
Third, the GUI may provide a set of user-interface elements for filtering the network packets (operation 808) prior to generating the time-series event data from the network packets. Each filter may identify an event attribute, a comparison to be performed on the event attribute, and/or a value to which the event attribute is to be compared. For example, the filter may match the event attribute to a Boolean value (e.g., true or false), perform a numeric comparison (e.g., equals, greater, less than, greater than or equal to, less than or equal to), and/or verify the definition of (e.g., the existence of) the event attribute in network data. The filter may also compare the event attribute to a regular expression, perform an exact match of the event attribute to the value, perform a partial match of the event attribute to the value, and/or determine the event attribute's position in an ordering.
Fourth, the GUI may provide a set of user-interface elements for aggregating the event attribute(s) into aggregated event data that is included in the event stream (operation 810). For example, the GUI may provide user-interface elements for identifying event attributes as key attributes used to generate a key representing the aggregated event data and/or aggregation attributes to be aggregated prior to inclusion in the aggregated event data. The GUI may also include one or more user-interface elements for obtaining an aggregation interval over which the one or more event attributes are aggregated into the aggregated event data.
Finally, the event attribute(s), protocol classification, filtering information, and/or aggregation information obtained from the GUI are included in the configuration information (operation 812). The configuration information may then be used to configure the protocol-based capture, filtering, and/or aggregation of network data at the remote capture agent(s).
Initially, a risk-identification mechanism for identifying a security risk from time-series event data generated from network packets captured by one or more remote capture agents distributed across a network is provided (operation 902). The risk-identification mechanism may include a GUI that displays an event of interest related to the security risk. For example, the GUI may show potential security risks in a dashboard and/or other visualization of the time-series event data. Alternatively, the risk-identification mechanism may include a search and/or recurring search for a subset of the time-series event data matching the security risk. For example, the risk-identification mechanism may include a search mechanism that allows a user to search for threats, attacks, errors, and/or other notable events in the time-series event data.
Next, a capture trigger for generation additional time-series data from the network packets on the remote capture agent(s) based on the security risk is provided (operation 904). The capture trigger may be received through one or more user-interface elements of a GUI, such as the same GUI used to provide the risk-identification mechanism. For example, the capture trigger may be activated in a portion of the GUI that is above, below, and/or next to a dashboard that displays security risks to the user. Alternatively, the capture trigger may be linked to a recurring search for time-series event data that matches a security risk. As a result, the capture trigger may automatically be activated once time-series event data matching the security risk is found.
After the capture trigger is activated, the capture trigger is used to configure the generation of the additional time-series event data from the network packets (operation 906). For example, activation of the capture trigger may result in the updating of configuration information for the remote capture agent(s), which causes the remote capture agent(s) to generate additional event streams containing event attributes associated with protocols that facilitate analysis of the security risk.
Finally, generation of the additional time-series event data is disabled after a pre-specified period has passed (operation 908). For example, generation of the additional time-series event data may be set to expire a number of hours or days after the capture trigger is activated. The expiry may be set by the user and/or based on a default expiration for security-based capture of additional network data from network packets.
Computer system 1000 may include functionality to execute various components of the disclosed embodiments. In particular, computer system 1000 may include an operating system (not shown) that coordinates the use of hardware and software resources on computer system 1000, as well as one or more applications that perform specialized tasks for the user. To perform tasks for the user, applications may obtain the use of hardware resources on computer system 1000 from the operating system, as well as interact with the user through a hardware and/or software framework provided by the operating system.
In one or more embodiments, computer system 1000 provides a system for facilitating the processing of network data. The system may include a remote capture agent. The remote capture agent may obtain a first protocol classification for a first packet flow captured at the remote capture agent and use configuration information associated with the first protocol classification to build a first event stream from the first packet flow at the remote capture agent. The remote capture agent may also transmit the first event stream over a network for subsequent storage and processing of the first event stream by one or more components on the network. The remote capture agent may further obtain a second protocol classification for a second packet flow captured at the remote capture agent, use configuration information associated with the second protocol classification to build a second event stream from the second packet flow at the remote capture agent, and transmit the second event stream over the network.
The system may also provide a configuration server that provides the configuration information to the remote capture agent. The configuration server may provide a GUI for obtaining configuration for configuring the generation of time-series event data from network packets captured by the remote capture agent. The GUI may include user-interface elements for including one or more event attributes in the time-series event data of an event stream associated with a protocol classification of the network packets. The GUI may also include user-interface elements for managing the event stream, filtering the network packets, and/or aggregating the event attributes into aggregated event data.
The system may additionally provide a risk-identification mechanism for identifying a security risk from the time-series event data generated by the remote capture agent. Finally, the system may provide a capture trigger for generating additional time-series event data from the network packets on the remote capture agent based on the security risk. The additional time-series data may include one or more event attributes for facilitating analysis of the security risk, such as an event attribute associated with a protocol that facilitates analysis of the security risk.
The foregoing descriptions of various embodiments have been presented only for purposes of illustration and description. They are not intended to be exhaustive or to limit the present invention to the forms disclosed. Accordingly, many modifications and variations will be apparent to practitioners skilled in the art. Additionally, the above disclosure is not intended to limit the present invention.
This application claims benefit under 35 U.S.C. § 120 as a continuation of U.S. application Ser. No. 15/665,268, filed Jul. 31, 2017, which is a continuation of U.S. application Ser. No. 14/528,898, filed Oct. 30, 2014, the entire contents of which are hereby incorporated by reference as if fully set forth herein. The applicant(s) hereby rescind any disclaimer of claim scope in the parent application(s) or the prosecution history thereof and advise the USPTO that the claims in this application may be broader than any claim in the parent application(s). The subject matter of this application is related to the subject matter in a non-provisional application by inventor Michael Dickey, entitled “Distributed Processing of Network Data Using Remote Capture Agents,” having Ser. No. 14/253,713, and filing date 15 Apr. 2014, issued as U.S. Pat. No. 10,127,273. The subject matter of this application is also related to the subject matter in a non-provisional application by inventors Vladimir A. Shcherbakov, Michael R. Dickey, Cary Glen Noel, Kishore R. Ramasayam and Mignon L. Belongie, entitled “Streamlining Configuration of Protocol-Based Network Data Capture by Remote Capture Agents,” having Ser. No. 14/528,932, and filed on 30 Oct. 2014. The subject matter of this application is also related to the subject matter in a co-pending non-provisional application by inventors Vijay Chauhan, Devendra M. Badhani, Luke K. Murphey and David Hazekamp, entitled “Capture Triggers for Capturing Network Data,” having Ser. No. 14/528,918, and filed on 30 Oct. 2014, issued as U.S. Pat. No. 9,596,253.
Number | Name | Date | Kind |
---|---|---|---|
5436618 | Van Steenbrugge | Jul 1995 | A |
5787253 | McCreery et al. | Jul 1998 | A |
5796942 | Esbensen | Aug 1998 | A |
5892903 | Klaus | Apr 1999 | A |
5920711 | Seawright et al. | Jul 1999 | A |
5983270 | Abraham et al. | Nov 1999 | A |
6044401 | Harvey | Mar 2000 | A |
6108782 | Fletcher et al. | Aug 2000 | A |
6418471 | Shelton et al. | Jul 2002 | B1 |
6542861 | Lyles, Jr. et al. | Apr 2003 | B1 |
6584501 | Cartsonis et al. | Jun 2003 | B1 |
6587969 | Weinberg et al. | Jul 2003 | B1 |
6594634 | Hampton et al. | Jul 2003 | B1 |
6643694 | Chernin | Nov 2003 | B1 |
6708292 | Mangasarian | Mar 2004 | B1 |
6792460 | Oulu et al. | Sep 2004 | B2 |
6810494 | Weinberg et al. | Oct 2004 | B2 |
6892167 | Polan et al. | May 2005 | B2 |
6898556 | Smocha et al. | May 2005 | B2 |
6915308 | Evans et al. | Jul 2005 | B1 |
6973489 | Levy | Dec 2005 | B1 |
6978301 | Tindal | Dec 2005 | B2 |
6985944 | Aggarwal | Jan 2006 | B2 |
6988141 | Motoyama et al. | Jan 2006 | B1 |
6996779 | Meandzija et al. | Feb 2006 | B2 |
7054924 | Harvey et al. | May 2006 | B1 |
7080399 | Yanagawa et al. | Jul 2006 | B1 |
7150037 | Wolf et al. | Dec 2006 | B2 |
7177441 | Condon et al. | Feb 2007 | B2 |
7197559 | Goldstein et al. | Mar 2007 | B2 |
7219138 | Straut et al. | May 2007 | B2 |
7228348 | Farley et al. | Jun 2007 | B1 |
7231445 | Aweya et al. | Jun 2007 | B1 |
7245623 | Cheriton | Jul 2007 | B1 |
7246101 | Fu et al. | Jul 2007 | B2 |
7246162 | Tindal | Jul 2007 | B2 |
7257719 | Pandit et al. | Aug 2007 | B2 |
7260846 | Day | Aug 2007 | B2 |
7277957 | Rowley et al. | Oct 2007 | B2 |
7299277 | Moran et al. | Nov 2007 | B1 |
7376896 | Ullmann et al. | May 2008 | B2 |
7376969 | Njemanze et al. | May 2008 | B1 |
7380272 | Sharp et al. | May 2008 | B2 |
7444263 | White et al. | Oct 2008 | B2 |
7539489 | Alexander | May 2009 | B1 |
7543051 | Greifeneder et al. | Jun 2009 | B2 |
7577623 | Genty et al. | Aug 2009 | B2 |
7594011 | Chandra | Sep 2009 | B2 |
7594269 | Durham et al. | Sep 2009 | B2 |
7607170 | Chesla | Oct 2009 | B2 |
7610344 | Mehr et al. | Oct 2009 | B2 |
7623463 | Chavda | Nov 2009 | B2 |
7644438 | Dash et al. | Jan 2010 | B1 |
7650396 | Tindal | Jan 2010 | B2 |
7650634 | Zuk | Jan 2010 | B2 |
7660892 | Choong et al. | Feb 2010 | B2 |
7702806 | Gil et al. | Apr 2010 | B2 |
7729240 | Crane et al. | Jun 2010 | B1 |
7738396 | Turner et al. | Jun 2010 | B1 |
7751393 | Chaskar et al. | Jul 2010 | B2 |
7761918 | Gula et al. | Jul 2010 | B2 |
7797443 | Pettigrew et al. | Sep 2010 | B1 |
RE41903 | Wenig et al. | Oct 2010 | E |
7814218 | Knee et al. | Oct 2010 | B1 |
7818370 | Piper et al. | Oct 2010 | B2 |
7836498 | Poletto et al. | Nov 2010 | B2 |
7869352 | Turner et al. | Jan 2011 | B1 |
7886054 | Nag et al. | Feb 2011 | B1 |
7899444 | Hans et al. | Mar 2011 | B2 |
7948889 | Lalonde et al. | May 2011 | B2 |
7953425 | Jordan | May 2011 | B2 |
7954109 | Durham et al. | May 2011 | B1 |
7962616 | Kupferman et al. | Jun 2011 | B2 |
7979555 | Rothstein et al. | Jul 2011 | B2 |
8019064 | Bedingfield, Sr. et al. | Sep 2011 | B2 |
8020211 | Keanini et al. | Sep 2011 | B2 |
8032564 | Muret et al. | Oct 2011 | B2 |
8037175 | Apte et al. | Oct 2011 | B1 |
8042055 | Wenig et al. | Oct 2011 | B2 |
8056130 | Njemanze et al. | Nov 2011 | B1 |
8064350 | Peterman et al. | Nov 2011 | B2 |
8068986 | Shahbazi et al. | Nov 2011 | B1 |
8095640 | Guingo et al. | Jan 2012 | B2 |
8103765 | Greifeneder et al. | Jan 2012 | B2 |
8122006 | De et al. | Feb 2012 | B2 |
8125908 | Rothstein et al. | Feb 2012 | B2 |
8127000 | Wenig et al. | Feb 2012 | B2 |
8140665 | Malloy et al. | Mar 2012 | B2 |
8144609 | Rao et al. | Mar 2012 | B2 |
8185953 | Rothstein et al. | May 2012 | B2 |
8191136 | Dudfield et al. | May 2012 | B2 |
8195661 | Kalavade | Jun 2012 | B2 |
8248958 | Tulasi et al. | Aug 2012 | B1 |
8255511 | Moore et al. | Aug 2012 | B1 |
8266271 | Oyadomari et al. | Sep 2012 | B2 |
8301745 | Wohlgemuth et al. | Oct 2012 | B1 |
8335848 | Wenig et al. | Dec 2012 | B2 |
8358591 | Chuang et al. | Jan 2013 | B2 |
8385532 | Geist et al. | Feb 2013 | B1 |
8386371 | Kittelsen et al. | Feb 2013 | B2 |
8386598 | Robinson | Feb 2013 | B2 |
8387076 | Thatte et al. | Feb 2013 | B2 |
8392553 | Petropoulakis et al. | Mar 2013 | B2 |
8473620 | Demmer et al. | Jun 2013 | B2 |
8498956 | Srinivasan et al. | Jul 2013 | B2 |
8522219 | Schwarzbauer et al. | Aug 2013 | B2 |
8533532 | Wenig et al. | Sep 2013 | B2 |
8543534 | Alves et al. | Sep 2013 | B2 |
8549650 | Hanson | Oct 2013 | B2 |
8578002 | Roesch et al. | Nov 2013 | B1 |
8582567 | Kurapati | Nov 2013 | B2 |
8583772 | Wenig et al. | Nov 2013 | B2 |
8589375 | Zhang et al. | Nov 2013 | B2 |
8589436 | Srinivasan et al. | Nov 2013 | B2 |
8589876 | Neeman | Nov 2013 | B1 |
8601122 | Malloy et al. | Dec 2013 | B2 |
8667121 | Ahuja et al. | Mar 2014 | B2 |
8676841 | Srinivasan et al. | Mar 2014 | B2 |
8682308 | De et al. | Mar 2014 | B2 |
8782787 | Willebeek-Lemair et al. | Jul 2014 | B2 |
8806361 | Noel et al. | Aug 2014 | B1 |
8842548 | Pleshek et al. | Sep 2014 | B2 |
8850064 | Mann et al. | Sep 2014 | B2 |
8850182 | Fritz et al. | Sep 2014 | B1 |
8874736 | Levi et al. | Oct 2014 | B2 |
8918430 | Fischer | Dec 2014 | B2 |
8958318 | Hastwell et al. | Feb 2015 | B1 |
8978034 | Goodson et al. | Mar 2015 | B1 |
8996668 | Tan et al. | Mar 2015 | B2 |
9043439 | Bicket et al. | May 2015 | B2 |
9098587 | Deshmukh et al. | Aug 2015 | B2 |
9110101 | Pietrowicz et al. | Aug 2015 | B2 |
9112915 | Su | Aug 2015 | B2 |
9118538 | Lekkalapudi et al. | Aug 2015 | B1 |
9189449 | Branson et al. | Nov 2015 | B2 |
9203707 | Hasija et al. | Dec 2015 | B1 |
9244978 | Alves et al. | Jan 2016 | B2 |
9305238 | Srinivasan et al. | Apr 2016 | B2 |
9330395 | Hauser | May 2016 | B2 |
9405854 | Jerzak et al. | Aug 2016 | B2 |
9542708 | Piper et al. | Jan 2017 | B2 |
9558225 | Skrzypczak et al. | Jan 2017 | B2 |
9736227 | Cook et al. | Aug 2017 | B2 |
9838512 | Shcherbakov et al. | Dec 2017 | B2 |
20020015387 | Houh | Feb 2002 | A1 |
20020069275 | Tindal | Jun 2002 | A1 |
20020093527 | Sherlock et al. | Jul 2002 | A1 |
20030061506 | Cooper et al. | Mar 2003 | A1 |
20030101449 | Bentolila et al. | May 2003 | A1 |
20030120619 | Osborn | Jun 2003 | A1 |
20030135612 | Huntington et al. | Jul 2003 | A1 |
20030191599 | Bartsch | Oct 2003 | A1 |
20030221000 | Cherkasova et al. | Nov 2003 | A1 |
20040015579 | Cooper et al. | Jan 2004 | A1 |
20040030796 | Cooper et al. | Feb 2004 | A1 |
20040042470 | Cooper et al. | Mar 2004 | A1 |
20040044912 | Connary et al. | Mar 2004 | A1 |
20040088405 | Aggarwal | May 2004 | A1 |
20040109453 | Wirth | Jun 2004 | A1 |
20040114576 | Itoh et al. | Jun 2004 | A1 |
20040152444 | Lialiamou et al. | Aug 2004 | A1 |
20040268150 | Aaron | Dec 2004 | A1 |
20050021715 | Dugatkin et al. | Jan 2005 | A1 |
20050027858 | Sloth et al. | Feb 2005 | A1 |
20050060402 | Oyadomari et al. | Mar 2005 | A1 |
20050120160 | Plouffe et al. | Jun 2005 | A1 |
20050131876 | Ahuja et al. | Jun 2005 | A1 |
20050138013 | Walker et al. | Jun 2005 | A1 |
20050138426 | Styslinger | Jun 2005 | A1 |
20050273593 | Seminaro et al. | Dec 2005 | A1 |
20050278731 | Cameron et al. | Dec 2005 | A1 |
20060047721 | Narang et al. | Mar 2006 | A1 |
20060077895 | Wright | Apr 2006 | A1 |
20060101101 | Pandit et al. | May 2006 | A1 |
20060198318 | Schondelmayer et al. | Sep 2006 | A1 |
20060256735 | Borowski | Nov 2006 | A1 |
20060279628 | Fleming et al. | Dec 2006 | A1 |
20070011309 | Brady et al. | Jan 2007 | A1 |
20070013936 | Ishimoto | Jan 2007 | A1 |
20070033408 | Morten | Feb 2007 | A1 |
20070043861 | Baron et al. | Feb 2007 | A1 |
20070050846 | Xie et al. | Mar 2007 | A1 |
20070067450 | Malloy et al. | Mar 2007 | A1 |
20070076312 | Jordan | Apr 2007 | A1 |
20070083644 | Miller et al. | Apr 2007 | A1 |
20070106692 | Klein | May 2007 | A1 |
20070121872 | Hans et al. | May 2007 | A1 |
20070150584 | Srinivasan | Jun 2007 | A1 |
20070156916 | Schiefer | Jul 2007 | A1 |
20070208852 | Wexler et al. | Sep 2007 | A1 |
20070260932 | Prichard et al. | Nov 2007 | A1 |
20080056139 | Liaqat | Mar 2008 | A1 |
20080082679 | Dobtchev | Apr 2008 | A1 |
20080159146 | Claudatos et al. | Jul 2008 | A1 |
20080184248 | Barua et al. | Jul 2008 | A1 |
20080209505 | Ghai et al. | Aug 2008 | A1 |
20080259910 | Bodin et al. | Oct 2008 | A1 |
20080281963 | Fletcher et al. | Nov 2008 | A1 |
20090070786 | Alves et al. | Mar 2009 | A1 |
20090129316 | Ramanathan et al. | May 2009 | A1 |
20090228474 | Chiu et al. | Sep 2009 | A1 |
20090238088 | Tan | Sep 2009 | A1 |
20090267953 | Sampsell et al. | Oct 2009 | A1 |
20090271504 | Ginter et al. | Oct 2009 | A1 |
20090319247 | Ratcliffe, III et al. | Dec 2009 | A1 |
20100031274 | Sim-Tang | Feb 2010 | A1 |
20100064307 | Malhotra et al. | Mar 2010 | A1 |
20100070929 | Behl et al. | Mar 2010 | A1 |
20100077286 | Guagenti et al. | Mar 2010 | A1 |
20100095370 | Lee et al. | Apr 2010 | A1 |
20100136943 | Hirvela | Jun 2010 | A1 |
20100153316 | Duffield et al. | Jun 2010 | A1 |
20100172246 | Adam et al. | Jul 2010 | A1 |
20100318665 | Demmer et al. | Dec 2010 | A1 |
20100318836 | Ness et al. | Dec 2010 | A1 |
20110026521 | Gamage et al. | Feb 2011 | A1 |
20110029665 | Wenig et al. | Feb 2011 | A1 |
20110106935 | Srinivasan | May 2011 | A1 |
20110145715 | Malloy et al. | Jun 2011 | A1 |
20110166982 | Cole et al. | Jul 2011 | A1 |
20110178775 | Schoening et al. | Jul 2011 | A1 |
20110231935 | Gula et al. | Sep 2011 | A1 |
20110238723 | Weintraub et al. | Sep 2011 | A1 |
20110246134 | Frishberg et al. | Oct 2011 | A1 |
20110256869 | Zhang et al. | Oct 2011 | A1 |
20110292818 | Zhytar et al. | Dec 2011 | A1 |
20110296015 | Chakravarty et al. | Dec 2011 | A1 |
20110302305 | Morimura et al. | Dec 2011 | A1 |
20120017270 | Bartholomay et al. | Jan 2012 | A1 |
20120054246 | Fischer | Mar 2012 | A1 |
20120084437 | Wenig et al. | Apr 2012 | A1 |
20120106354 | Pleshek et al. | May 2012 | A1 |
20120158987 | Greifeneder et al. | Jun 2012 | A1 |
20120173966 | Powell et al. | Jul 2012 | A1 |
20120179816 | Malloy et al. | Jul 2012 | A1 |
20120197934 | Zhang et al. | Aug 2012 | A1 |
20120198047 | Steuer et al. | Aug 2012 | A1 |
20120239681 | Zhang et al. | Sep 2012 | A1 |
20120309377 | De et al. | Dec 2012 | A1 |
20130024431 | Parthasarathy et al. | Jan 2013 | A1 |
20130039405 | Goto | Feb 2013 | A1 |
20130067034 | Degioanni et al. | Mar 2013 | A1 |
20130070622 | Degioanni et al. | Mar 2013 | A1 |
20130080620 | Cook | Mar 2013 | A1 |
20130091278 | Ludwig et al. | Apr 2013 | A1 |
20130111011 | Moulhaud et al. | May 2013 | A1 |
20130114456 | Dahod | May 2013 | A1 |
20130128742 | Yu | May 2013 | A1 |
20130132833 | White et al. | May 2013 | A1 |
20130136253 | Liberman et al. | May 2013 | A1 |
20130173782 | Ragutski et al. | Jul 2013 | A1 |
20130179855 | Elliott | Jul 2013 | A1 |
20130182700 | Figura et al. | Jul 2013 | A1 |
20130198391 | Weissblum | Aug 2013 | A1 |
20130212689 | Ben-Natan et al. | Aug 2013 | A1 |
20130227689 | Pietrowicz et al. | Aug 2013 | A1 |
20130232137 | Knott | Sep 2013 | A1 |
20130246925 | Ahuja et al. | Sep 2013 | A1 |
20130258995 | Skov et al. | Oct 2013 | A1 |
20130276000 | Neeman | Oct 2013 | A1 |
20130282892 | Levi et al. | Oct 2013 | A1 |
20130318236 | Coates et al. | Nov 2013 | A1 |
20130318514 | Neeman | Nov 2013 | A1 |
20130318536 | Fletcher et al. | Nov 2013 | A1 |
20130318603 | Merza | Nov 2013 | A1 |
20130318604 | Coates et al. | Nov 2013 | A1 |
20130326620 | Merza et al. | Dec 2013 | A1 |
20140012864 | Nakagawa | Jan 2014 | A1 |
20140013309 | Gounares | Jan 2014 | A1 |
20140046645 | White et al. | Feb 2014 | A1 |
20140068102 | Mann et al. | Mar 2014 | A1 |
20140173512 | Karpov et al. | Jun 2014 | A1 |
20140201375 | Beereddy et al. | Jul 2014 | A1 |
20140226817 | Von et al. | Aug 2014 | A1 |
20140230062 | Kumaran | Aug 2014 | A1 |
20140237292 | Chan | Aug 2014 | A1 |
20140280737 | Bicket et al. | Sep 2014 | A1 |
20140317228 | Dharmasanam | Oct 2014 | A1 |
20140317684 | Porras et al. | Oct 2014 | A1 |
20140325058 | Fletcher et al. | Oct 2014 | A1 |
20140325363 | Fletcher et al. | Oct 2014 | A1 |
20140328189 | Fallon et al. | Nov 2014 | A1 |
20140344708 | Carr et al. | Nov 2014 | A1 |
20140351415 | Harrigan et al. | Nov 2014 | A1 |
20150013006 | Shulman et al. | Jan 2015 | A1 |
20150062113 | Cannon et al. | Mar 2015 | A1 |
20150095359 | Duxbury | Apr 2015 | A1 |
20150120820 | Cook et al. | Apr 2015 | A1 |
20150125807 | Shipley | May 2015 | A1 |
20150156170 | Gurbani | Jun 2015 | A1 |
20150178342 | Seering et al. | Jun 2015 | A1 |
20150180891 | Seward et al. | Jun 2015 | A1 |
20150295766 | Dickey et al. | Oct 2015 | A1 |
20150319058 | Molinero et al. | Nov 2015 | A1 |
20160028758 | Ellis et al. | Jan 2016 | A1 |
20160112262 | Johnson et al. | Apr 2016 | A1 |
20160127517 | Shcherbakov et al. | May 2016 | A1 |
20160155314 | Snyder | Jun 2016 | A1 |
20160182283 | Mann et al. | Jun 2016 | A1 |
20160323172 | Friend | Nov 2016 | A1 |
20160330086 | Oda et al. | Nov 2016 | A1 |
20160350722 | Walker et al. | Dec 2016 | A1 |
20170142068 | Devarajan et al. | May 2017 | A1 |
20170150037 | Rathod | May 2017 | A1 |
20170286505 | Lamas et al. | Oct 2017 | A1 |
20170310741 | Cook | Oct 2017 | A1 |
20170322972 | Lee et al. | Nov 2017 | A1 |
20180013692 | Park et al. | Jan 2018 | A1 |
Number | Date | Country |
---|---|---|
2011134739 | Nov 2011 | WO |
Entry |
---|
Advisory Action from U.S. Appl. No. 14/253,753, dated Apr. 29, 2016, 2 pages. |
Advisory Action from U.S. Appl. No. 14/253,753, dated May 7, 2015, 2 pages. |
Advisory Action from U.S. Appl. No. 14/253,767, dated Mar. 1, 2016, 3 pages. |
Advisory Action from U.S. Appl. No. 14/528,932, dated Jul. 14, 2017, 8 pages. |
Advisory Action from U.S. Appl. No. 14/609,292, dated Dec. 8, 2017, 5 pages. |
Final Office action from U.S. Appl. No. 14/253,713, dated Dec. 22, 2017, 46 pages. |
Final Office Action from U.S. Appl. No. 14/253,713 dated Feb. 10, 2015, 15 pages. |
Final Office Action from U.S. Appl. No. 14/253,713 dated Feb. 12, 2016, 17 pages. |
Final Office Action from U.S. Appl. No. 14/253,744, dated Feb. 21, 2017, 41 pages. |
Final Office Action from U.S. Appl. No. 14/253,744, dated Jan. 9, 2015, 29 pages. |
Final Office Action from U.S. Appl. No. 14/253,744, dated Oct. 23, 2015, 51 pages. |
Final Office Action from U.S. Appl. No. 14/253,753, dated Feb. 4, 2016, 17 pages. |
Final Office Action from U.S. Appl. No. 14/253,753, dated Mar. 2, 2015, 19 pages. |
Final Office Action from U.S. Appl. No. 14/253,767, dated Apr. 18, 2017, 34 pages. |
Final Office Action from U.S. Appl. No. 14/253,767, dated Dec. 16, 2015, 21 pages. |
Final Office Action from U.S. Appl. No. 14/253,767, dated Jan. 7, 2015, 14 pages. |
Final Office Action from U.S. Appl. No. 14/528,898, dated Jun. 29, 2016, 18 pages. |
Final Office Action from U.S. Appl. No. 14/528,932, dated Jun. 28, 2018, 29 pages. |
Final Office Action from U.S. Appl. No. 14/528,932, dated May 5, 2017, 38 pages. |
Final Office Action from U.S. Appl. No. 14/609,292, dated Aug. 25, 2017, 39 pages. |
Final Office Action from U.S. Appl. No. 14/610,457, dated Jan. 22, 2018, 51 pages. |
Fiodin, et al., “Processing Object-Oriented Queries with Invertible Late Bound Functions,” Proceedings of the 21st VLDB Conference, 1995, pp. 335-344. |
Non-Final Office Action from U.S. Appl. No. 15/665,268, dated Oct. 29, 2018, 54 pages. |
Non-Final Office Action from U.S. Appl. No. 14/253,713 dated Aug. 12, 2015, 17 pages. |
Non-Final Office Action from U.S. Appl. No. 14/253,713 dated Jan. 19, 2017, 31 pages. |
Non-Final Office Action from U.S. Appl. No. 14/253,713 dated Sep. 3, 2014, 26 pages. |
Non-Final Office Action from U.S. Appl. No. 14/253,744, dated Jul. 5, 2016, 31 pages. |
Non-Final Office Action from U.S. Appl. No. 14/253,744, dated Jun. 10, 2015, 50 pages. |
Non-Final Office Action from U.S. Appl. No. 14/253,744, dated Jun. 16, 2017, 31 pages. |
Non-Final Office Action from U.S. Appl. No. 14/253,744, dated Oct. 6, 2014, 34 pages. |
Non-Final Office Action from U.S. Appl. No. 14/253,753, dated Jul. 1, 2016, 21 pages. |
Non-Final Office Action from U.S. Appl. No. 14/253,753, dated Jul. 28, 2015, 14 pages. |
Non-Final Office Action from U.S. Appl. No. 14/253,753, dated Sep. 5, 2014, 16 pages |
Non-Final Office Action from U.S. Appl. No. 14/253,767, dated Jul. 15, 2015, 17 pages. |
Non-Final Office Action from U.S. Appl. No. 14/253,767, dated Jun. 19, 2014, 13 pages. |
Non-Final Office Action from U.S. Appl. No. 14/253,767, dated Sep. 19, 2016, 21 pages. |
Non-Final Office Action from U.S. Appl. No. 14/528,898, dated Mar. 31, 2016, 17 pages. |
Non-Final Office Action from U.S. Appl. No. 14/528,918, dated Feb. 17, 2016, 17 pages. |
Non-Final Office Action from U.S. Appl. No. 14/528,932, dated Dec. 14, 2016, 19 pages. |
Non-Final Office Action from U.S. Appl. No. 14/528,932, dated Feb. 12, 2018, 45 pages. |
Non-Final Office Action from U.S. Appl. No. 14/609,292, dated Apr. 12, 2017, 43 pages. |
Non-Final Office Action from U.S. Appl. No. 14/610,457, dated Aug. 4, 2017, 79 pages. |
Non-Final Office Action from U.S. Appl. No. 14/699,787, dated Sep. 21, 2017, 67 pages. |
Non-Final Office action from U.S. Appl. No. 14/699,807, dated Dec. 28, 2017, 60 pages. |
Non-Final Office Action from U.S. Appl. No. 15/421,269, dated Jul. 10, 2017, 39 pages. |
Non-Final Office Action from U.S. Appl. No. 15/582,309, dated Sep. 22, 2017, 46 pages. |
Non-Final Office Action from U.S. Appl. No. 15/799,158, dated Aug. 8, 2018, 52 pages. |
Non-Final Office Action from U.S. Appl. No. 15/799,167, dated May 23, 2018, 54 pages. |
Notice of Allowance from U.S. Appl. No. 15/665,268, dated Apr. 1, 2019, 17 pages. |
Notice of Allowance from U.S. Appl. No. 15/799,158, dated Nov. 29, 2018, 9 pages. |
Notice of Allowance from U.S. Appl. No. 14/253,744, dated Nov. 15, 2017, 12 pages. |
Notice of Allowance from U.S. Appl. No. 14/253,744, dated Nov. 27, 2017, 12 pages. |
Notice of Allowance from U.S. Appl. No. 14/253,753, dated Feb. 27, 2017, 19 pages. |
Notice of Allowance from U.S. Appl. No. 14/253,753, dated Jun. 12, 2017, 16 pages. |
Notice of Allowance from U.S. Appl. No. 14/253,753, dated May 23, 2017, 2 pages. |
Notice of Allowance from U.S. Appl. No. 14/253,753, dated Nov. 8, 2016, 7 pages. |
Notice of Allowance from U.S. Appl. No. 14/528,898, dated May 8, 2017, 29 pages. |
Notice of allowance from U.S. Appl. No. 14/528,898, dated Nov. 28, 2016, 8 pages. |
Notice of Allowance from U.S. Appl. No. 14/528,898, dated Sep. 13, 2017, 22 pages. |
Notice of Allowance from U.S. Appl. No. 14/528,918, dated Aug. 18, 2016, 5 pages. |
Notice of Allowance from U.S. Appl. No. 14/528,918, dated Dec. 21, 2016, 26 pages. |
Notice of Allowance from U.S. Appl. No. 15/421,269, dated Nov. 13, 2017, 9 pages. |
Notice of Allowance from U.S. Appl. No. 15/421,269, dated Sep. 8, 2017, 12 pages. |
Notice of Allowance from U.S. Appl. No. 15/799,167, dated Sep. 14, 2018, 16 pages. |
Ulf L., et al., “Wires hark User's Guide for Wires hark 1.9,” 2004-2012, Retrieved from http://wayback.archive.org/web/20121018193345/http://www.wireshark.org/download/docs/user-guide-us.pdf on Oct. 18, 2012, 256 pages. |
“Zabbix Network Monitoring Essentials Tutorial Video,” Retrieved from https://www.youtube.com/watch?v=NLt_qR6yKWM&list=PL Yoq8isOGa_N7mT7t4k2191CFdg2064wj&index=17 on Oct. 22, 2013, 1 page. |
Number | Date | Country | |
---|---|---|---|
20190327348 A1 | Oct 2019 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 15665268 | Jul 2017 | US |
Child | 16459573 | US | |
Parent | 14528898 | Oct 2014 | US |
Child | 15665268 | US |