IP Library Granted Patent US 7,203,963
Granted Patent B1
US 7,203,963 · App. 10/172,740 · Granted Apr 10, 2007

Method and apparatus for adaptively classifying network traffic

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,203,963
App. No.
10/172,740
Granted
Apr 10, 2007
Kind
B1
Abstract

A method of adaptively classifying information using a binary tree comprises establishing a binary tree including a set of binary sequences each representing one or more network addresses. Once network traffic is received having identifiers describing network traffic sources, the identifiers are correlated to binary sequences within the binary tree. A revision metric is formed based on this correlating, and the binary tree is then revised according to this revision metric. A method of blocking a DDOS attack comprises establishing a binary tree including a set of binary sequences, each of these binary sequences representing one or more network addresses. When network traffic is received having identifiers describing network traffic sources, the identifiers are correlated to binary sequences within the binary tree. Once a DDOS attack notification signal is received, a selected binary tree path within the binary tree is identified as a low cost blocking path within the binary tree. Network traffic correlated to a binary sequence corresponding to the selected binary tree path is blocked.

Claims (65)

1. A computer implemented method of adaptively classifying information using a binary tree, comprising:

establishing a binary tree including a set of binary sequences, each binary sequence of said set of binary sequences representing one or more network addresses;

receiving network traffic having identifiers describing network traffic sources;

correlating said identifiers to binary sequences within said binary tree;

forming a revision metric based upon said correlating; and

revising said binary tree according to said revision metric;

wherein said revising includes updating a particular binary sequence of said set of binary sequences so as to reduce the number of network addresses represented;

wherein said updating includes determining said revision metric based upon the percentage of said network traffic having said identifiers correlating to said particular binary sequence, and based upon the number of network addresses within said one or more network addresses, said updating further including lengthening said particular binary sequence according to an evaluation of said revision metric.

2. The computer implemented method of claim 1 wherein said establishing includes establishing binary sequences each having a long term count value for noting an amount of said network traffic received from said one or more network addresses and a short term count value for updating said long term count value, and wherein said correlating includes incrementing said short term count value and periodically incorporating said short term count value into said long term count value.

3. The computer implemented method of claim 1 wherein said revising includes revising said set of binary sequences so as to correlate a greater number of said identifiers to a smaller number of said network addresses.

4. The computer implemented method of claim 1 further including the step of blocking said network traffic upon correlating said identifiers to selected binary sequences within said binary tree.

5. The computer implemented method of claim 4 wherein said receiving includes receiving malicious network traffic involved in a distributed denial of service attack and benign network traffic not involved in a distributed denial of service attack, and wherein said blocking includes identifying selected binary sequences for blocking a large amount of said malicious network traffic while blocking a small amount of said benign network traffic.

6. The computer implemented method of claim 4 wherein said correlating includes correlating said identifiers so as to produce identified network traffic, and said blocking includes blocking said identified network traffic according to the rate at which said identified network traffic is received.

7. The computer implemented method of claim 6 wherein said blocking includes blocking said identified network traffic according to a token bucket rate limiting scheme.

8. The computer implemented method of claim 6 wherein said blocking includes blocking said identified network traffic according to a dual token bucket rate limiting scheme.

9. A computer implemented method of blocking a distributed denial of service attack, comprising:

establishing a binary tree including a set of binary sequences, each binary sequence of said set of binary sequences representing one or more network addresses;

receiving network traffic having identifiers describing network traffic sources;

correlating said identifiers to binary sequences within said binary tree;

receiving a distributed denial of service attack notification signal;

identifying a selected binary tree path within said binary tree, said identifying including identifying said selected binary tree path as a low cost blocking path within said binary tree;

blocking network traffic correlated to a binary sequence corresponding to said selected binary tree path; and

dynamically revising said set of binary sequences to reflect changes in said network traffic;

wherein said dynamically revising includes updating a particular binary sequence of said set of binary sequences so as to increase the number of said network addresses represented;

wherein said updating includes determining a revision metric based upon the percentage of said network traffic having said identifiers correlating to said particular binary sequence, and based upon the number of network addresses within said one or more network addresses, said updating further including shortening said particular binary sequence according to an evaluation of said revision metric.

10. A computer implemented method of blocking a distributed denial of service attack, comprising:

establishing a binary tree including a set of binary sequences, each binary sequence of said set of binary sequences representing one or more network addresses;

receiving network traffic having identifiers describing network traffic sources;

correlating said identifiers to binary sequences within said binary tree;

receiving a distributed denial of service attack notification signal;

identifying a selected binary tree path within said binary tree, said identifying including identifying said selected binary tree path as a low cost blocking path within said binary tree;

blocking network traffic correlated to a binary sequence corresponding to said selected binary tree path; and

dynamically revising said set of binary sequences to reflect changes in said network traffic;

wherein said dynamically revising includes updating a particular binary sequence of said set of binary sequences so as to reduce the number of network addresses represented;

wherein said updating includes determining a revision metric based upon the percentage of said network traffic having said identifiers correlating to said particular binary sequence, and based upon the number of network addresses within said one or more network addresses, said updating further including lengthening said particular binary sequence according to an evaluation of said revision metric.

11. The computer implemented method of claim 9 wherein said blocking includes discarding said network traffic based upon the result of said correlating.

12. A computer readable memory that can direct a computer to function in a specified manner, comprising:

instructions to establish a binary tree including a set of binary sequences, each binary sequence of said set of binary sequences representing one or more network addresses;

instructions to receive network traffic having identifiers describing network traffic sources;

instructions to correlate said identifiers to binary sequences within said binary tree;

instructions to form a revision metric based upon said correlating; and

instructions to revise said binary tree according to said revision metric;

wherein said instructions to revise include instructions to update a particular binary sequence of said set of binary sequences so as to increase the number of said network addresses represented;

wherein said instructions to update include instructions to determine said revision metric based upon the percentage of said network traffic having said identifiers correlating to said particular binary sequence, and based upon the number of network addresses within said one or more network addresses, said instructions to update further including instructions to shorten said particular binary sequence according to an evaluation of said revision metric.

13. The computer readable memory of claim 12 wherein said instructions to establish include instructions to establish binary sequences each having a long term count value for noting an amount of said network traffic received from said one or more network addresses and a short term count value for updating said long term count value, and wherein said instructions to correlate include instructions to increment said short term count value and instructions to periodically incorporate said short term count value into said long term count value.

14. The computer readable memory of claim 12 wherein said instructions to revise include instructions to revise said set of binary sequences so as to correlate a greater number of said identifiers to a smaller number of said network addresses.

15. The computer readable memory of claim 12 further including instructions to block said network traffic upon correlating said identifiers to selected binary sequences within said binary tree.

16. The computer readable memory of claim 15 wherein said instructions to receive include instructions to receive malicious network traffic involved in a distributed denial of service attack and benign network traffic not involved in a distributed denial of service attack, and wherein said instructions to block include instructions to identify selected binary sequences for blocking a large amount of said malicious network traffic while blocking a small amount of said benign network traffic.

17. The computer readable memory of claim 15 wherein said instructions to correlate include instructions to correlate said identifiers so as to produce identified network traffic, and said instructions to block include instructions to block said identified network traffic according to the rate at which said identified network traffic is received.

18. The computer readable memory of claim 17 wherein said instructions to block include instructions to block said identified network traffic according to a token bucket rate limiting scheme.

19. The computer readable memory of claim 17 wherein said instructions to block include instructions to block said identified network traffic according to a dual token bucket rate limiting scheme.

20. A computer implemented method of classifying information utilizing a binary tree for identifying a distributed denial of service attack, comprising:

establishing a binary tree including a set of binary sequences, each binary sequence of said set of binary sequences representing one or more network addresses;

receiving network traffic;

identifying a distributed denial of service attack associated with said network traffic utilizing said binary tree; and

dynamically revising said set of binary sequences to reflect changes in said network traffic;

wherein said dynamically revising includes updating a particular binary sequence of said set of binary sequences so as to increase the number of said network addresses represented;

wherein said updating includes determining a revision metric based upon the percentage of said network traffic having identifiers correlating to said particular binary sequence, and based upon the number of network addresses within said one or more network addresses, said updating further including shortening said particular binary sequence according to an evaluation of said revision metric.

21. A computer program product embodied on a computer readable medium for classifying information utilizing a binary tree for identifying a distributed denial of service attack, comprising:

computer code of establishing a binary tree including a set of binary sequences, each binary sequence of said set of binary sequences representing one or more network addresses;

computer code for receiving network traffic;

computer code for identifying a distributed denial of service attack associated with said network traffic utilizing said binary tree; and

computer code for dynamically revising said set of binary sequences to reflect changes in said network traffic;

wherein said dynamically revising includes updating a particular binary sequence of said set of binary sequences so as to reduce the number of network addresses represented;

wherein said updating includes determining a revision metric based upon the percentage of said network traffic having identifiers correlating to said particular binary sequence, and based upon the number of network addresses within said one or more network addresses, said updating further including lengthening said particular binary sequence according to an evaluation of said revision metric.

Assignments (9)
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 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 →
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 →
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 →