IP Library Granted Patent US 7,788,718
Granted Patent B1
US 7,788,718 · App. 10/171,937 · Granted Aug 31, 2010

Method and apparatus for detecting a distributed denial of service attack

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,788,718
App. No.
10/171,937
Granted
Aug 31, 2010
Kind
B1
Abstract

A method of identifying a distributed denial of service attack is described in which a rate profile is determined, where the rate profile corresponds to information transfer rates at which information is received from a network. A burst magnitude threshold based on this rate profile is then established. A burst duration profile characterizing periods of time during which the information transfer rate exceeds this burst magnitude threshold is also calculated, and a burst duration threshold is then defined based upon this burst duration profile. A distributed denial of service attack is identified when the information transfer rate exceeds the burst magnitude threshold for a period of time exceeding the burst duration threshold.

Claims (99)

1. A method of identifying a distributed denial of service attack executed by a computer programmed to perform the steps of:

determining a rate profile corresponding to information transfer rates at which information is received from a network, utilizing a processor, said rate profile including a plurality of information transfer rate values, each information transfer rate value representing a sampled rate at which information is transferred, and said rate profile including a plurality of bins each representative of a different information transfer rate magnitude, wherein each information transfer rate value is added to one of the bins based on a magnitude of the information transfer rate value such that each bin represents a number of occurrences of information transfer rates with magnitudes that match the information transfer rate magnitude represented by the bin;

establishing a burst magnitude threshold based upon said rate profile;

calculating a burst duration profile characterizing periods of time during which said information transfer rate exceeds said burst magnitude threshold;

defining a burst duration threshold based upon said burst duration profile;

identifying a distributed denial of service attack when said information transfer rate exceeds said burst magnitude threshold for a period of time exceeding said burst duration threshold;

updating said rate profile to reflect a change in said information transfer rate, so as to create an updated rate profile; and

revising said burst magnitude threshold based upon said updated rate profile;

wherein said rate profile is updated based on a rate percentile profile, the rate percentile profile including a same number of bins as said rate profile, each of the bins of the rate percentile profile assigned to one of the bins of said rate profile and storing a percentage of identified information transfer rate values that are equal to or less than the information transfer rate magnitude of the one of the bins of said rate profile to which the bin of the percentile profile is assigned.

2. The method of claim 1 wherein said updating further includes updating a rate profile comprising a plurality of rate categories, and dividing one or more categories of said plurality of rate categories.

3. The method of claim 1 wherein said updating further includes updating a rate profile comprising a plurality of rate categories, and combining two or more categories of said plurality of rate categories.

4. The method of claim 1 further including the steps of updating said burst duration profile by incorporating into said burst duration profile information on the duration of an increase in said information transfer rate, so as to create an updated burst duration profile, and revising said burst duration threshold based upon said updated burst duration profile.

5. The method of claim 4 wherein said updating further includes updating a burst duration profile comprising a plurality of burst duration categories, and dividing one or more categories of said plurality of burst duration categories.

6. The method of claim 4 wherein said updating further includes updating a burst duration profile comprising a plurality of burst duration categories, and combining two or more categories of said plurality of burst duration categories.

7. A method of identifying a distributed denial of service attack executed by a computer programmed to perform the steps of:

establishing a rate profile describing a range over which an information transfer rate may vary, utilizing a processor, said information transfer rate being a rate at which information is received from a network, said rate profile including a plurality of information transfer rate values, each information transfer rate value representing a sampled rate at which information is transferred, and said rate profile including a plurality of bins each representative of a different information transfer rate magnitude, wherein each information transfer rate value is added to one of the bins based on a magnitude of the information transfer rate value such that each bin represents a number of occurrences of information transfer rates with magnitudes that match the information transfer rate magnitude represented by the bin;

calculating a burst magnitude threshold from said rate profile, said burst magnitude threshold generally defining an increase in said information transfer rate;

determining a burst duration profile characterizing periods of time over which said increase may be maintained;

assessing a burst duration threshold from said burst duration profile;

identifying when said information transfer rate exceeds said burst magnitude threshold for a length of time exceeding said burst duration threshold;

updating said rate profile to reflect a change in said information transfer rate, so as to create an updated rate profile; and

revising said burst magnitude threshold based upon said updated rate profile;

wherein said rate profile is updated based on a rate percentile profile, the rate percentile profile including a same number of bins as said rate profile, each of the bins of the rate percentile profile assigned to one of the bins of said rate profile and storing a percentage of identified information transfer rate values that are equal to or less than the information transfer rate magnitude of the one of the bins of said rate profile to which the bin of the percentile profile is assigned.

8. The method of claim 7 wherein said updating further includes updating a rate profile comprising a plurality of rate categories, and dividing one or more categories of said plurality of rate categories.

9. The method of claim 7 wherein said updating further includes updating a rate profile comprising a plurality of rate categories, and combining two or more categories of said plurality of rate categories.

10. The method of claim 7 further including the steps of updating said burst duration profile by incorporating into said burst duration profile information on the duration of said increase in said information transfer rate, so as to create an updated burst duration profile, and revising said burst duration threshold based upon said updated burst duration profile.

11. The method of claim 10 wherein said updating further includes updating a burst duration profile comprising a plurality of burst duration categories, and dividing one or more categories of said plurality of burst duration categories.

12. The method of claim 10 wherein said updating further includes updating a burst duration profile comprising a plurality of burst duration categories, and combining two or more categories of said plurality of burst duration categories.

13. A non-transitory computer readable medium encoded with a computer program, comprising:

instructions to determine a rate profile corresponding to information transfer rates at which information is received from a network, said rate profile including a plurality of information transfer rate values, each information transfer rate value representing a sampled rate at which information is transferred, and said rate profile including a plurality of bins each representative of a different information transfer rate magnitude, wherein each information transfer rate value is added to one of the bins based on a magnitude of the information transfer rate value such that each bin represents a number of occurrences of information transfer rates with magnitudes that match the information transfer rate magnitude represented by the bin;

instructions to establish a burst magnitude threshold based upon said rate profile;

instructions to calculate a burst duration profile characterizing periods of time during which said information transfer rate exceeds said burst magnitude threshold;

instructions to define a burst duration threshold based upon said burst duration profile;

instructions to identify a distributed denial of service attack when said information transfer rate exceeds said burst magnitude threshold for a period of time exceeding said burst duration threshold;

instructions to update said rate profile to reflect a change in said information transfer rate, so as to create an updated rate profile; and

instructions to revise said burst magnitude threshold based upon said updated rate profile;

wherein the computer program is operable such that said rate profile is updated based on a rate percentile profile, the rate percentile profile including a same number of bins as said rate profile, each of the bins of the rate percentile profile assigned to one of the bins of said rate profile and storing a percentage of identified information transfer rate values that are equal to or less than the information transfer rate magnitude of the one of the bins of said rate profile to which the bin of the percentile profile is assigned.

14. The non-transitory computer readable medium of claim 13 wherein said instructions to update further include instructions to update a rate profile comprising a plurality of rate categories, and instructions to divide one or more categories of said plurality of rate categories.

15. The non-transitory computer readable medium of claim 13 wherein said instructions to update further include instructions to update a rate profile comprising a plurality of rate categories, and instructions to combine two or more categories of said plurality of rate categories.

16. The non-transitory computer readable medium of claim 13 further including instructions to update said burst duration profile by incorporating into said burst duration profile information on the duration of an increase in said information transfer rate, so as to create an updated burst duration profile, and instructions to revise said burst duration threshold based upon said updated burst duration profile.

17. The non-transitory computer readable medium of claim 16 wherein said instructions to update further include instructions to update a burst duration profile comprising a plurality of burst duration categories, and instructions to divide one or more categories of said plurality of burst duration categories.

18. The non-transitory computer readable medium of claim 16 wherein said instructions to update further include instructions to update a burst duration profile comprising a plurality of burst duration categories, and instructions to combine two or more categories of said plurality of burst duration categories.

19. A non-transitory computer readable medium encoded with a computer program, comprising:

instructions to establish a rate profile describing a range over which an information transfer rate may vary, said information transfer rate being a rate at which information is received from a network, said rate profile including a plurality of information transfer rate values, each information transfer rate value representing a sampled rate at which information is transferred, and said rate profile including a plurality of bins each representative of a different information transfer rate magnitude, wherein each information transfer rate value is added to one of the bins based on a magnitude of the information transfer rate value such that each bin represents a number of occurrences of information transfer rates with magnitudes that match the information transfer rate magnitude represented by the bin;

instructions to calculate a burst magnitude threshold from said rate profile, said burst magnitude threshold generally defining an increase in said information transfer rate;

instructions to determine a burst duration profile characterizing periods of time over which said increase may be maintained;

instructions to assess a burst duration threshold from said burst duration profile;

instructions to identify when said information transfer rate exceeds said burst magnitude threshold for a length of time exceeding said burst duration threshold;

instructions to update said rate profile to reflect a change in said information transfer rate, so as to create an updated rate profile; and

instructions to revise said burst magnitude threshold based upon said updated rate profile;

wherein the computer program is operable such that said rate profile is updated based on a rate percentile profile, the rate percentile profile including a same number of bins as said rate profile, each of the bins of the rate percentile profile assigned to one of the bins of said rate profile and storing a percentage of identified information transfer rate values that are equal to or less than the information transfer rate magnitude of the one of the bins of said rate profile to which the bin of the percentile profile is assigned.

20. The non-transitory computer readable medium of claim 19 wherein said instructions to update further include instructions to update a rate profile comprising a plurality of rate categories, and instructions to divide one or more categories of said plurality of rate categories.

21. The non-transitory computer readable medium of claim 19 wherein said instructions to update further include instructions to update a rate profile comprising a plurality of rate categories, and instructions to combine two or more categories of said plurality of rate categories.

22. The non-transitory computer readable medium of claim 19 further including instructions to update said burst duration profile by incorporating into said burst duration profile information on the duration of said increase in said information transfer rate, so as to create an updated burst duration profile, and instructions to revise said burst duration threshold based upon said updated burst duration profile.

23. The non-transitory computer readable medium of claim 22 wherein said instructions to update further include instructions to update a burst duration profile comprising a plurality of burst duration categories, and instructions to divide one or more categories of said plurality of burst duration categories.

24. The non-transitory computer readable medium of claim 22 wherein said instructions to update further include instructions to update a burst duration profile comprising a plurality of burst duration categories, and instructions to combine two or more categories of said plurality of burst duration categories.

25. The method of claim 1 , wherein exceeding said burst magnitude threshold with a predetermined duration raises said burst duration profile and raises said burst duration threshold.

26. The method of claim 1 , wherein the bins are included in an array and the information transfer rate magnitudes of the bins are set at a uniformly increasing information transfer rate magnitude.

27. The method of claim 1 , wherein the bins are included in an array and the information transfer rate magnitudes of the bins are set in an increasing order based on identified information transfer rate values, such that a first one of the bins in the array represents a lowest identified information transfer rate value and a last one of the bins in the array represents a highest identified information transfer rate value.

28. The method of claim 1 , wherein a bin of the rate percentile profile that is assigned to a bin of said rate profile with a highest information transfer rate magnitude contains a value of 100% if all identified information transfer rate values are below the information transfer rate magnitude of the bin of said rate profile.

29. The method of claim 1 , wherein the percentage is calculated based on a counter which counts a total number of identified information transfer rate values.

30. A method of identifying a distributed denial of service attack executed by a computer programmed to perform the steps of:

determining a rate profile corresponding to information transfer rates at which information is received from a network, utilizing a processor, said rate profile including a plurality of information transfer rate values, each information transfer rate value representing a sampled rate at which information is transferred, and said rate profile including a plurality of bins each representative of a different information transfer rate magnitude, wherein each information transfer rate value is added to one of the bins based on a magnitude of the information transfer rate value such that each bin represents a number of occurrences of information transfer rates with magnitudes that match the information transfer rate magnitude represented by the bin;

establishing a burst magnitude threshold based upon said rate profile;

calculating a burst duration profile characterizing periods of time during which said information transfer rate exceeds said burst magnitude threshold;

defining a burst duration threshold based upon said burst duration profile;

identifying a distributed denial of service attack when said information transfer rate exceeds said burst magnitude threshold for a period of time exceeding said burst duration threshold;

updating said rate profile to reflect a change in said information transfer rate, so as to create an updated rate profile; and

revising said burst magnitude threshold based upon said updated rate profile;

wherein said rate profile is updated utilizing a short-term array and a long-term array, the short-term array storing more recently identified information transfer rates and the long-term array storing less recently identified information transfer rates, and wherein the information transfer rates stored in the long-term array are discounted such that a weight given to the more recent information transfer rates is greater than a weight given to the less recent information transfer rates.

31. The method of claim 1 , wherein said rate profile is updated by dividing a bin with the largest number of occurrences.

32. The method of claim 1 , wherein said rate profile is updated by combining two of the bins of said rate profile and adding a new bin to said rate profile, the new bin representative of a lowest information transfer rate magnitude among all of the bins.

33. A method of identifying a distributed denial of service attack executed by a computer programmed to perform the steps of:

establishing a rate profile describing a range over which an information transfer rate may vary, utilizing a processor, said information transfer rate being a rate at which information is received from a network, said rate profile including a plurality of information transfer rate values, each information transfer rate value representing a sampled rate at which information is transferred, and said rate profile including a plurality of bins each representative of a different information transfer rate magnitude, wherein each information transfer rate value is added to one of the bins based on a magnitude of the information transfer rate value such that each bin represents a number of occurrences of information transfer rates with magnitudes that match the information transfer rate magnitude represented by the bin;

calculating a burst magnitude threshold from said rate profile, said burst magnitude threshold generally defining an increase in said information transfer rate;

determining a burst duration profile characterizing periods of time over which said increase may be maintained;

assessing a burst duration threshold from said burst duration profile;

identifying when said information transfer rate exceeds said burst magnitude threshold for a length of time exceeding said burst duration threshold;

updating said rate profile to reflect a change in said information transfer rate, so as to create an updated rate profile; and

revising said burst magnitude threshold based upon said updated rate profile;

wherein said rate profile is updated utilizing a short-term array and a long-term array, the short-term array storing more recently identified information transfer rates and the long-term array storing less recently identified information transfer rates, and wherein the information transfer rates stored in the long-term array are discounted such that a weight given to the more recent information transfer rates is greater than a weight given to the less recent information transfer rates.

34. A non-transitory computer readable medium encoded with a computer program, comprising:

instructions to determine a rate profile corresponding to information transfer rates at which information is received from a network, said rate profile including a plurality of information transfer rate values, each information transfer rate value representing a sampled rate at which information is transferred, and said rate profile including a plurality of bins each representative of a different information transfer rate magnitude, wherein each information transfer rate value is added to one of the bins based on a magnitude of the information transfer rate value such that each bin represents a number of occurrences of information transfer rates with magnitudes that match the information transfer rate magnitude represented by the bin;

instructions to establish a burst magnitude threshold based upon said rate profile;

instructions to calculate a burst duration profile characterizing periods of time during which said information transfer rate exceeds said burst magnitude threshold;

instructions to define a burst duration threshold based upon said burst duration profile;

instructions to identify a distributed denial of service attack when said information transfer rate exceeds said burst magnitude threshold for a period of time exceeding said burst duration threshold;

instructions to update said rate profile to reflect a change in said information transfer rate, so as to create an updated rate profile; and

instructions to revise said burst magnitude threshold based upon said updated rate profile;

wherein the computer program is operable such that said rate profile is updated utilizing a short-term array and a long-term array, the short-term array storing more recently identified information transfer rates and the long-term array storing less recently identified information transfer rates, and wherein the information transfer rates stored in the long-term array are discounted such that a weight given to the more recent information transfer rates is greater than a weight given to the less recent information transfer rates.

35. A non-transitory computer readable medium encoded with a computer program, comprising:

instructions to establish a rate profile describing a range over which an information transfer rate may vary, said information transfer rate being a rate at which information is received from a network, said rate profile including a plurality of information transfer rate values, each information transfer rate value representing a sampled rate at which information is transferred, and said rate profile including a plurality of bins each representative of a different information transfer rate magnitude, wherein each information transfer rate value is added to one of the bins based on a magnitude of the information transfer rate value such that each bin represents a number of occurrences of information transfer rates with magnitudes that match the information transfer rate magnitude represented by the bin;

instructions to calculate a burst magnitude threshold from said rate profile, said burst magnitude threshold generally defining an increase in said information transfer rate;

instructions to determine a burst duration profile characterizing periods of time over which said increase may be maintained;

instructions to assess a burst duration threshold from said burst duration profile;

instructions to identify when said information transfer rate exceeds said burst magnitude threshold for a length of time exceeding said burst duration threshold;

instructions to update said rate profile to reflect a change in said information transfer rate, so as to create an updated rate profile; and

instructions to revise said burst magnitude threshold based upon said updated rate profile;

wherein the computer program is operable such that said rate profile is updated utilizing a short-term array and a long-term array, the short-term array storing more recently identified information transfer rates and the long-term array storing less recently identified information transfer rates, and wherein the information transfer rates stored in the long-term array are discounted such that a weight given to the more recent information transfer rates is greater than a weight given to the less recent information transfer rates.

Assignments (12)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE PATENT TITLES AND REMOVE DUPLICATES IN THE SCHEDULE PREVIOUSLY RECORDED AT REEL: 059354 FRAME: 0335. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 23, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 060792/0307 →
SECURITY INTEREST Recorded Mar 3, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
Reel/Frame 059354/0335 →
RELEASE OF INTELLECTUAL PROPERTY COLLATERAL - REEL/FRAME 045056/0676 Recorded Mar 2, 2022
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MCAFEE, LLC
Reel/Frame 059354/0213 →
RELEASE OF INTELLECTUAL PROPERTY COLLATERAL - REEL/FRAME 045055/0786 Recorded Oct 26, 2020
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MCAFEE, LLC
Reel/Frame 054238/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT 6336186 PREVIOUSLY RECORDED ON REEL 045056 FRAME 0676. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Oct 22, 2020
From: MCAFEE, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 054206/0593 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT 6336186 PREVIOUSLY RECORDED ON REEL 045055 FRAME 786. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Oct 22, 2020
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 055854/0047 →
SECURITY INTEREST Recorded Jan 12, 2018
From: MCAFEE, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 045056/0676 →
SECURITY INTEREST Recorded Jan 12, 2018
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 045055/0786 →
CHANGE OF NAME AND ENTITY CONVERSION Recorded Aug 24, 2017
From: MCAFEE, INC.
To: MCAFEE, LLC
Reel/Frame 043665/0918 →
MERGER Recorded Jun 23, 2005
From: NETWORKS ASSOCIATES TECHNOLOGY, INC.
To: MCAFEE, INC.
Reel/Frame 016646/0513 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 8, 2003
From: INTRU VERT NETWORKS INC.
To: NETWORKS ASSOCIATES TECHNOLOGY, INC.
Reel/Frame 014036/0071 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 13, 2002
From: FEI, AIGUO; SUN, KAI; GONG, FENGMIN
To: INTRUVERT NETWORKS, INC.
Reel/Frame 013008/0519 →