In an embodiment, a computer implemented method receives flow data for one or more flows that correspond to a device-circuit pair. The method calculates a time difference for each flow that corresponds to a device-circuit pair. Based on the calculated time differences and the received flow data, the method updates a probability distribution model associated with the device-circuit pair. Then, the method determines whether a time bucket is complete or open based on the updated probability distribution model.
|
9. A system for processing network flow data over a time series associated with a device-circuit pair, comprising:
a memory; and
at least one processor coupled to the memory and configured to:
receive flow data for one or more flows that correspond to the device-circuit pair;
calculate a time difference for each flow of the one or more flows that correspond to the device-circuit pair, wherein calculating the time difference for each flow is based on a start time and an end time of each flow at one of the device-circuit pair and a file stamp time of a network flow record indicating each flow received by the server;
based on the calculated time differences and the received flow data, update a probability distribution model associated with the device-circuit pair;
determine whether a time bucket, of the time series, is complete or open based on the updated probability distribution model; and
when the time bucket is determined to be complete, determine, based on the received flow data corresponding to the time bucket of the time series, that a denial of service attack is occurring based on a number of network flows being too high for a specific time period.
1. A computer implemented method for processing network flow data over a time series associated with a device-circuit pair, comprising:
receiving, by a server, flow data for one or more flows that correspond to the device-circuit pair;
calculating, by the server, a time difference for each flow of the one or more flows that correspond to the device-circuit pair, wherein calculating the time difference for each flow is based on a start time and an end time of each flow at one of the device-circuit pair and a file stamp time of a network flow record indicating each flow received by the server;
based on the calculated time differences and the received flow data, updating a probability distribution model associated with the device-circuit pair;
determining, by the server, whether a time bucket, of the time series, is complete or open based on the updated probability distribution model; and
when the time bucket is determined to be complete, determining, by the server, based on the received flow data corresponding to the time bucket of the time series, that a denial of service attack is occurring based on a number of network flows being too high for a specific time period.
17. A non-transitory computer-readable medium having instructions stored thereon that, when executed by at least one computing device, causes the at least one computing device to perform operations for processing network flow data over a time series associated with a device-circuit pair, comprising:
receiving flow data for one or more flows that correspond to the device-circuit pair;
calculating a time difference for each flow of the one or more flows that correspond to the device-circuit pair, wherein calculating the time difference for each flow is based on a start time and an end time of each flow at one of the device-circuit pair and a file stamp time of a network flow record indicating each flow received by the server;
based on the calculated time differences and the received flow data, updating a probability distribution model associated with the device-circuit pair;
determining whether a time bucket, of the time series, is complete or open based on the updated probability distribution model; and
when the time bucket is determined to be complete, determining, based on the received flow data corresponding to the time bucket of the time series, that a denial of service attack is occurring based on a number of network flows being too high for a specific time period.
2. The method of
when the time bucket is determined to be complete, ignoring further flow data that corresponds to the time bucket; and
when the time bucket is determined to be open, incorporating further flow data that corresponds to the time bucket.
3. The method of
4. The method of
incorporating the received flow data and the calculated time differences into the probability distribution model;
calculating a mean value based on the time differences and the flow data included in the probability distribution model; and
calculating a standard deviation value based the time differences and the flow data included in the probability distribution model.
5. The method of
calculating a time delay value based on the standard deviation value; and
determining whether the time bucket is complete or open based on the time delay value and a file stamp time value of a network flow record containing the received flow data.
6. The method of
7. The method of
creating an expiry time based on an end time of the time bucket and the calculated time delay value;
determining that the time bucket is complete if the file stamp time is beyond the created expiry time; and
determining that the time bucket is open if the file stamp time is not beyond the created expiry time.
8. The method of
10. The system of
when the time bucket is determined to be complete, ignore further flow data that corresponds to the time bucket; and
when the time bucket is determined to be open, incorporate further flow data that corresponds to the time bucket.
11. The system of
12. The system of
incorporating the received flow data and the calculated time differences into the probability distribution model;
calculating a mean value based on the time differences and the flow data included in the probability distribution model; and
calculating a standard deviation value based the time differences and the flow data included in the probability distribution model.
13. The system of
calculating a time delay value based on the standard deviation value; and
determining whether the time bucket is complete or open based on the time delay value and a file stamp time value of a network flow record containing the received flow data.
14. The system of
15. The system of
creating an expiry time based on an end time of the time bucket and the calculated time delay value;
determining that the time bucket is complete if the file stamp time is beyond the created expiry time; and
determining that the time bucket is open if the file stamp time is not beyond the created expiry time.
16. The system of
18. The non-transitory computer-readable medium of
when the time bucket is determined to be complete, ignoring further flow data that corresponds to the time bucket; and
when the time bucket is determined to be open, incorporating further flow data that corresponds to the time bucket.
|
This field generally relates to monitoring network activities. More specifically, embodiments relate to network anomaly detection.
A communication network may, for example, provide a network connection that allows data to be transferred between two geographically remote locations. A network may include network elements connected by links. The network elements may be any type of managed device on the network, including routers, access servers, switches, bridges, hubs, IP telephones, IP video cameras, computer hosts, and printers. Network elements can be physical or logical and can communicate with one another via interconnected links.
Network anomalies in a communication network may occur for various reasons. For example, the number of network flows created by an individual user may appear usually high on a network device. Such high number of network flows could be an indication that the user has initiated a denial-of-service (DOS) attack.
In an embodiment, a computer implemented method receives flow data for one or more flows that correspond to a device-circuit pair. The method calculates a time difference for each flow that corresponds to a device-circuit pair. Based on the calculated time differences and the received flow data, the method updates a probability distribution model associated with the device-circuit pair. Then, the method determines whether a time bucket is complete or open based on the updated probability distribution model.
System and computer-readable medium embodiments are also disclosed.
Further embodiments and features, as well as the structure and operation of the various embodiments, are described in detail below with reference to accompanying drawings.
The accompanying drawings are incorporated herein and form a part of the specification.
In the drawings, like reference numbers generally indicate identical or similar elements. Generally, the left-most digit(s) of a reference number identifies the drawing in which the reference number first appears.
Network anomaly detection (AD) systems monitor networks for unusual events or trends. Some network anomaly detection systems rely on network flow data (e.g., netflow data) to detect anomalies. These detection systems have to take into account that network flow records, such as netflow records, collected from network devices are controlled by timeout settings (or their default values) on the network devices. For a network anomaly detection system to start processing network flow data for a specific time period (i.e., a time bucket), the AD system usually introduces a time delay after which the AD system can assume that the time bucket is complete and that the AD system does not expect further network flow data for the time bucket.
Choosing a timeout delay value can become a complicated and difficult task. If the AD system uses a single timeout delay value for the whole monitored network (e.g., the longest timeout value of all the monitored network devices), the AD system could start lagging in detecting network anomalies. For example, if a network contains many network devices, but only a few devices have the longest timeout value, then using the single longest timeout value would unnecessarily delay the processing of network flow data for the rest of network devices of the network.
On the other hand, maintaining different timeout delay values for each network device of the network has its own drawbacks. Keeping track of individual timeout delay values for many devices can be complex and does not add much improvement to a detection system's responsiveness.
Additional factors that could complicate uniform creation of network flow time series: (1) network flow is configured on each device and includes network flow version, timeout settings (or their defaults); (2) human configuration could lead to configuration errors; (3) different network device vendors have different network flow implementations; and (4) network flow data patterns can vary.
Accordingly, there is a need for determination of appropriate timeout delay values that addresses the above problems so that AD systems can process the network flow data more efficiently and more effectively.
To overcome the problems of the conventional systems discussed above, embodiments utilize statistical approaches and treat network flow records as probability events. AD systems do not have to analyze every single piece of flow data to detect network anomalies because a certain amount of trailing flow data may be statistically insignificant for the AD systems to detect anomalies. Determination of when some trailing flow data becomes statistically insignificant depends on the flow patterns. Embodiments here may maintain statistical values, such as standard deviation, mean, variance, and skewness, and use these values to determine appropriate timeout delay values. In this way, the determined timeout delay values can properly address different network flow patterns.
Method 100 begins at step 102 where the time series module receives flow data for one or more flows that correspond to a device-circuit pair. The time series module may receive a network flow record (e.g., netflow record) containing flow data. A network flow record may contain data related to one or more network flows. For example, the time series module may receive a network flow record from one or more flow collector servers that collect network flow data from network devices. Network flow data, as the term is used herein, is not limited to data from a particular brand or type of router. The network flow data may include a record for each data flow. Each data flow may be one or more packets in time proximity with one another having a common protocol identified via Internet Protocol (IP) addresses and Transport Control Protocol (TCP) or User Datagram Protocol (UDP) ports. When a certain amount of time passes after receipt of a packet having these characteristics, the network device determines that the flow has ended, and if the network device receives any additional packets with these characteristics, the network device regards the packets as belonging to a new data flow and represents them with a new network flow data record. Each network flow record, such as a netflow record, may include, but is not limited to, the data flow's (1) source and destination IP addresses, (2) source port number and destination port number, (3) type of layer 3 protocol (e.g., TCP or UDP), (4) start and end times, (5) size (e.g., number of bytes), and (6) input logical interface (ifIndex). The last field, input logical interface, is also called a circuit, which can be used to identify a user (e.g., a subscriber to the network services provided by a service provider). Network flow data collection functionality may be configured on a per-interface basis on a network device. For instance, for some versions of Cisco routers, the ip flow ingress command can be used to enable netflow on an interface. The ip flow-export destination <address> <port> command may be used to configure where the netflow data is exported.
In this way, network flow data summarizes certain characteristics of a data flow. Each flow record is created by identifying packets with similar flow characteristics and counting or tracking the packets and bytes per flow. The flow details or caches information is exported to a flow collector server periodically based upon flow timers. Expired flows may be grouped together into datagrams, such as “netflow export” datagrams, for export.
From the received network flow record, the time series module may identify flow data for one or more flows that correspond to the device-circuit pair. As described above, a circuit (i.e., input logical interface) can be used to identify a user. Further, when the time series module receives a network flow record that a network device exports to a collector server, the time series module can identify the network device that exports the network flow record. In this way, the time series module may determine a device-circuit pair that corresponds to a user for a network device.
At step 104, the time series module calculates a time difference for each flow of the one or more flows that correspond to the device-circuit pair. For example, if a network flow record contains flow data for two device-circuit pairs, the first pair including 10 flows, and the second pair including 20 flows, the time series module would calculate 10 time differences for the first device-circuit pair, and calculate 20 time differences for the second device-circuit pair.
In one embodiment, the time series module may calculate the time difference for a flow based on the start time of the flow and the current time (e.g., the start time of the flow minus the current time). In another embodiment, the time series module may calculate the time difference for a flow based on the end time of the flow and the current time (e.g., the end time of the flow minus the current time). In yet another embodiment, the time series module may calculate the time difference for a flow based on a combination of the time differences described in the first two embodiments. In some embodiments, the time series module may use the file stamp time of a received network flow record as the current time.
At step 108, the time series module updates a probability distribution model based on the calculated time differences and the received flow data. In some embodiments, a probability distribution model is associated with a device-circuit pair. A probability distribution model may include flow data that corresponds to the device-circuit pair, and time differences for flows that correspond to the device-circuit pair. For example, a probability distribution model may have time differences in one dimension (e.g., X-axis) and flow data in another dimension (e.g., Y-axis). The flow data in the probability distribution model may be one or more types of data in the network flow records described above. In one embodiment, the time series module may use the number of flows as the flow data (e.g., Y-axis) in the probability distribution model.
In other embodiments, the time series module may use other types of data (e.g., the number of bytes) in the network flow records as the flow data in the probability distribution model. The probability distribution model may also maintain one or more statistical values such as, a mean value, a standard deviation value, a variance value, and/or a skewness value. The time series module may calculate the statistical values (the mean value, the standard deviation value, the variance value, and/or the skewness value) from the time differences and the flow data of the probability distribution model.
In some embodiments, to update the probability distribution model, the time series module incorporates the received flow data from the received network flow record and the calculated time differences into the probability distribution model. For illustration purpose, assume that the probability distribution model has the number of flows as the flow data on the Y-axis. Also for illustration purpose, assume the received network flow record contains data for 100 flows with a calculated time difference value of 0 second, and 200 flows with a calculated time difference value of 2 seconds. The time series module would update the probability distribution model by incrementing the number of flows by 100 that corresponds to time difference at 0 second and incrementing the number of flows by 200 that corresponds to time difference at 2 seconds.
The incorporation of the new data in the probability distribution model could impact the statistical values (e.g., the mean value and the standard deviation value) for the probability distribution model. Thus, after the incorporation of the received flow data from the received network flow record and the calculated time differences into the probability distribution model, the time series module can update the statistical values. For example, the time series module can update the mean value by calculating the mean value based on the time differences and the flow data included in the updated probability distribution model. The time series module can also update the standard deviation value by calculating the standard deviation value based the time differences and the flow data included in the probability distribution model.
As described above, the time series module may calculate a time difference with respect to the start time of a flow. Thus, in one embodiment, the time series module may calculate the mean value and the standard deviation value with respect to the start times of the flows in the probability distribution model. The time series module may also calculate a time difference with respect to the end time of a flow. Thus, in another embodiment, the time series module may calculate the mean value and the standard deviation value with respect to the end times of the flows in the probability distribution model. In a third embodiment, the time series module may calculate the mean value and the standard deviation value with respect to a combination of the start times and the end times of the flows in the probability distribution model. In yet another embodiment, the probability distribution model may maintain the flow data with respect to multiple types of time differences (e.g., one with respect to the start times of the flows and another with respect to the end times of the flows). Accordingly, the time series module may calculate multiple sets of mean values and standard deviation values (e.g., one set with respect to the start times of the flows and another set with respect to the end times of the flows) for a probability distribution model.
At step 108, the time series module determines whether a time bucket, of the time series, is complete or open based on the updated probability distribution model. When the time bucket is determined to be complete, the time series module would ignore further flow data that corresponds to the time bucket. For a completed time bucket, even if there is further flow data for this time bucket afterwards, the further flow data would be statistically insignificant to impact the network anomaly analysis. Thus, in some embodiments, when the time series module determines a time bucket to be complete, the time series module would send the flow data corresponding to the time bucket to a detection module so that the detection module could process and analyze the flow data, and detect possible network anomalies based on the analysis. On the other hand, when a time bucket is determined open (i.e., not complete), the time series module would continue to incorporate further network flow data for the corresponding time bucket.
To determine whether a time bucket is complete, the time series module may first calculate a time delay value for the device-circuit pair based on data from the probability distribution model associated with the device-circuit pair. For example, the time series module may calculate the time delay value based on the standard deviation value described above. In another example, the time series module may calculate the time delay value based on the standard deviation value and the mean value described above. For instance, the time series module may calculate the time delay value to be [2×(standard deviation value)−(mean value)]. In various embodiments, the time series module may calculate a time delay value based on one or more of the statistical values (e.g., mean, standard deviation, variance, and skewness) from the probability distribution model.
As described above, the time differences in the probability distribution model can be calculated with respect to the start times of the flows, or the end times of the flows. Thus, in one embodiment, the time series module may calculate the time delay value based on the standard deviation value and the mean value with respect to the start times of the flows. In another embodiment, the time series module may calculate the time delay value based on the standard deviation value and the mean value with respect to the end times of the flows. In yet another embodiment, the time series module may calculate the time delay value based on multiple sets of standard deviation values and the mean values (e.g., one set with respect to the start times of the flows, and another set with respect to the end times of the flows).
After the time series module determines the time delay value for the time series associated with a device-circuit pair, the time series module may add the time delay value to the end time of a time bucket to create an expiry time for the time bucket. If the current time is beyond the expiry time for the time bucket, the time series module would determine that the time bucket is complete. Otherwise, the time bucket is determined to be open (i.e., not complete).
As described above, in some embodiments, the time series module may utilize the file stamp time of the received network flow record as the current time. Thus, using a simple example for illustration purpose, assume the file stamp time of the received network flow record is 8:06 pm and the calculated time delay value is +5 minutes. For a time bucket starting at 7:50 pm and ending at 8:00 pm, the time series module would add the time delay value (+5 minutes) to the end time (8:00 pm) to create an expiry time (8:05 pm) for the time bucket. Because the file stamp time (8:06 pm) is beyond the expiry time (8:05 pm), the time series module would determine that the time bucket is complete (i.e., the time bucket is closed for update). That means, the time series module would ignore further flow data corresponding the time bucket starting at 7:50 pm and ending at 8:00 pm.
On the other hand, for a second time bucket starting at 8:00 pm and ending at 8:10 pm, the time series module would also add the time delay value (+5 minutes) to the end time (8:10 pm) to create an expiry time (8:15 pm) for the second time bucket. Because the file stamp time (8:06 pm) is not beyond the expiry time (8:15 pm) for the second time bucket, the time series module would determine that the second time bucket is open. That means, the time series module would continue to take further flow data corresponding the second time bucket.
The time series module may receive network flow records, such as netflow records, from one or more collector servers. For example, after the time series module receives network flow record 218, the time series module identifies flow data for flows that correspond to the device-circuit pair. For the received flow data, the time series module determines a time period covered by the received flow data. For instance, vertical time bar 214 represents the first recorded time for the received flow data. Vertical time bar 216 represents the last recorded time for the received flow data. Accordingly, the time period from vertical time bar 214 to vertical time bar 216 represents a time period covered by the received flow data, contained in network flow record 218, for one or more flows that correspond to the device-circuit pair.
As
For time bucket 208, the time series module would add the time delay value (tΔ) to the end time (tn+2) of time bucket 208 to calculate an expiry time (tn+2+tΔ). In the example shown in
In
For illustration purpose, assume vertical bar 310 represents 295 flows, which is calculated based on many previous network flow records. When the time series module receives a new network flow record and identifies a flow whose calculated time difference with respect to the flow start time equals −1, the time series module may increment vertical bar 310 by 1 to 296 flows.
After the time series module updates a probability distribution model, the time series module may calculate statistical values (e.g., a mean value and a standard deviation value). For example, in
After network devices 402a-402f are configured to enable network flow data collection, network devices 402a-402f may send network flow data (e.g., netflow data) to one or more collector servers 404. One or more collector servers 404 may analyze the network flow data and forward the network flow records (e.g., network flow records) to AD server 410 for network anomaly detection. AD server 410 includes two modules, time series module 406 and detection module 408. Time series module 406 may operate as described above with respect to
Each of the blocks and modules in
Each of the blocks and modules in
Identifiers, such as “(a),” “(b),” “(i),” “(ii),” etc., are sometimes used for different elements or steps. These identifiers are used for clarity and do not necessarily designate an order for the elements or steps.
The present invention has been described above with the aid of functional building blocks illustrating the implementation of specified functions and relationships thereof. The boundaries of these functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternate boundaries can be defined so long as the specified functions and relationships thereof are appropriately performed.
The foregoing description of the specific embodiments will so fully reveal the general nature of the invention that others can, by applying knowledge within the skill of the art, readily modify and/or adapt for various applications such specific embodiments, without undue experimentation, without departing from the general concept of the present invention. Therefore, such adaptations and modifications are intended to be within the meaning and range of equivalents of the disclosed embodiments, based on the teaching and guidance presented herein. It is to be understood that the phraseology or terminology herein is for the purpose of description and not of limitation, such that the terminology or phraseology of the present specification is to be interpreted by the skilled artisan in light of the teachings and guidance.
The breadth and scope of the present embodiments should not be limited by any of the above-described examples, but should be defined only in accordance with the following claims and their equivalents.
While the invention is described herein with reference to illustrative embodiments for particular applications, it should be understood that the invention is not limited thereto. Those skilled in the art with access to the teachings provided herein will recognize additional modifications, applications, and embodiments within the scope thereof and additional fields in which the invention would be of significant utility.
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
7376080, | May 11 2004 | CA, INC | Packet load shedding |
8396451, | Feb 17 2010 | T-MOBILE INNOVATIONS LLC | Telecom fraud detection using social pattern |
20040098485, | |||
20070180526, | |||
20100085891, | |||
20100257133, | |||
20120079101, | |||
20120117254, | |||
20130041934, | |||
20130347103, | |||
20150023170, | |||
20150195381, | |||
20160219067, | |||
20170149666, | |||
20170317899, | |||
20180227176, | |||
20180288081, | |||
20190306183, | |||
20220191228, | |||
20230127578, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Mar 30 2017 | YERMAKOV, SERGEY | Level 3 Communications, LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 064862 | /0050 | |
Sep 08 2023 | Level 3 Communications, LLC | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Sep 08 2023 | BIG: Entity status set to Undiscounted (note the period is included in the code). |
Date | Maintenance Schedule |
Aug 13 2027 | 4 years fee payment window open |
Feb 13 2028 | 6 months grace period start (w surcharge) |
Aug 13 2028 | patent expiry (for year 4) |
Aug 13 2030 | 2 years to revive unintentionally abandoned end. (for year 4) |
Aug 13 2031 | 8 years fee payment window open |
Feb 13 2032 | 6 months grace period start (w surcharge) |
Aug 13 2032 | patent expiry (for year 8) |
Aug 13 2034 | 2 years to revive unintentionally abandoned end. (for year 8) |
Aug 13 2035 | 12 years fee payment window open |
Feb 13 2036 | 6 months grace period start (w surcharge) |
Aug 13 2036 | patent expiry (for year 12) |
Aug 13 2038 | 2 years to revive unintentionally abandoned end. (for year 12) |