IP Library Granted Patent US 8,321,939
Granted Patent B1
US 8,321,939 · App. 12/547,860 · Granted Nov 27, 2012

Method and an apparatus to perform multiple packet payloads analysis

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 8,321,939
App. No.
12/547,860
Filed
Aug 26, 2009
Granted
Nov 27, 2012
Kind
B1
Art Unit
2436
USPC
726/23
Abstract

A method and an apparatus to perform multiple packet payload analysis have been disclosed. In one embodiment, the method includes receiving a plurality of data packets, each of the plurality of data packets containing a portion of a data pattern, determining whether each of the plurality of data packets is out of order, and making and storing a local copy of the corresponding data packet if the corresponding data packet is out of order. Other embodiments have been claimed and described.

Claims (44)

1. A method comprising:

representing a plurality of attack patterns to be matched in a plurality of deterministic finite automata, wherein a plurality of data packets are compared with one or more of the plurality of deterministic finite automata;

receiving the plurality of data packets at an intrusion detection/prevention system (IPS), each of the plurality of data packets containing a portion of a data pattern;

determining, for each of the plurality of data packets, whether a corresponding data packet is out of order;

if the corresponding data packet is out of order,

making and storing a local copy of the corresponding data packet, wherein the local copy is to be used in pattern matching to scan for an attack pattern of the plurality of attack patterns so that at least one of a plurality of packets containing portions of that attack pattern is blocked,

passing the corresponding data packet, and

performing pattern matching on the local copy and a subsequently received one of the plurality of data packets against at least a portion of the attack pattern to determine whether these data packets received so far contain the attack data pattern, wherein the local copy and the subsequently received one of the plurality of data packets are in a same sequence of data packets; and

if the corresponding data packet is in order,

performing pattern matching on the corresponding data packet against at least a portion of the attack pattern to determine whether one or more of the data packets received so far contain the attack data, and

passing the corresponding data packet if the one or more data packets compared partially match, but do not fully match, the attack pattern.

2. The method of claim 1 , wherein the passing the corresponding data packet if the corresponding data packet is out of order is after the making and storing of the local copy of the corresponding data packet.

3. The method of claim 1 , wherein the pattern matching is performed in a plurality of states, each of the plurality of states corresponds to one of a plurality of segments of the attack pattern.

4. The method of claim 3 , wherein performing the pattern matching comprises:

storing a current state of the pattern matching after performing the pattern matching on a data packet.

5. The method of claim 4 , further comprising:

looking up the stored state when a next data packet is received; and

performing pattern matching on the next data packet from the stored state.

6. The method of claim 1 , further comprising:

blocking the corresponding data packet if the one or more data packets compared so far contain the attack pattern.

7. The method of claim 6 , further comprising:

determining whether there is any in-order data packets stored locally; and

if there is one or more locally stored in-order data packets, performing pattern matching on the one or more locally stored in-order data packets against at least a portion of the attack pattern.

8. The method of claim 1 , wherein determining whether the corresponding data packet is out of order comprises checking a sequence number in the corresponding data packet.

9. An apparatus comprising:

an interface to receive data packets; and

a processor to represent a plurality of attack patterns to be matched in a plurality of deterministic finite automata, wherein the data packets are compared with one or more of the plurality of deterministic finite automata, to determine, for each of the data packets, whether a corresponding data packet is out of order, if the corresponding data packet is out of order, to make and store a local copy of the corresponding data packet, wherein the local copy is to be used in pattern matching to scan for an attack pattern of the plurality of attack patterns so that at least one of a plurality of packets containing portions of that attack pattern is blocked, to pass the corresponding data packet, and performing pattern matching on the local copy and a subsequently received one of the data packets against at least a portion of the attack pattern to determine whether these data packets received so far contain the attack data pattern, wherein the local copy and the subsequently received one of the data packets are in a same sequence of data packets, and if the corresponding data packet is in order, to perform pattern matching on the corresponding data packet against at least a portion of the attack pattern to determine whether one or more of the data packets received so far contain the attack data pattern, and to pass the corresponding data packet if the one or more data packets compared partially match, but do not fully match, the attack pattern.

10. The apparatus of claim 9 , further comprising a buffer to temporarily store a copy of the data packet if the data packet is out of order before allowing the data packet to pass.

11. The apparatus of claim 9 , wherein the attack pattern includes a plurality of data patterns and the processor is operable to represent each of the plurality of data patterns with a Deterministic Finite Automaton (DFA) and to perform the pattern matching on the received data packets against the attack pattern using the DFA.

12. The apparatus of claim 11 , further comprising a storage device to store a current state of the DFA such that the pattern matching is performed on a next data packet from the stored state if the next data packet is in order.

13. The apparatus of claim 12 , wherein the storage device comprises a logical pointer.

14. A system comprising:

at least one client application;

a network; and

an intrusion detection/prevention system (IPS) communicably coupled between the at least one client application and the network, the IPS comprising:

an interface to receive data packets; and

a processor to represent a plurality of attack patterns to be matched in a plurality of deterministic finite automata, wherein the data packets are compared with one or more of the plurality of deterministic finite automata, to determine, for each of the data packets, whether a corresponding data packet is out of order, if the corresponding data packet is out of order, to make and store a local copy of the corresponding data packet, wherein the local copy is to be used in pattern matching to scan for an attack pattern of the plurality of attack patterns so that at least one of a plurality of packets containing portions of that attack pattern is blocked, to pass the corresponding data packet, and to perform pattern matching on the local copy and a subsequently received one of the data packets against at least a portion of the attack pattern to determine whether these data packets received so far contain the attack data pattern, wherein the local copy and the subsequently received one of the data packets are in a same sequence of data packets, and if the corresponding data packet is in order, performing pattern matching on the corresponding data packet against at least a portion of the attack pattern to determine whether one or more of the data packets received so far contain the attack data pattern, and to pass the corresponding data packet if the one or more data packets compared partially match, but do not fully match, the attack pattern.

15. The system of claim 14 , wherein the IPS further comprises a buffer to temporarily store a copy of the data packet if the data packet is out of order before allowing the data packet to pass.

16. The system of claim 14 , wherein the attack pattern includes a plurality of data patterns and the processor is operable to represent each of the plurality of data patterns with a Deterministic Finite Automaton (DFA) and to perform the pattern matching on the received data packets against the attack pattern using the DFA.

17. The system of claim 16 , wherein the IPS further comprises a storage device to store a current state of the DFA such that the pattern matching is performed on a next data packet from the stored state if the next data packet is in order.

18. The system of claim 17 , wherein the storage device comprises a logical pointer.

19. The system of claim 14 , further comprising a client machine, wherein the IPS is operable to run on the client machine.

20. The system of claim 14 , further comprising a router, wherein the IPS is operable to run on the router.

21. The system of claim 14 , further comprising a server, wherein the IPS is operable to run on the server.

Assignments (21)
RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS RECORDED AT RF 046321/0393 Recorded Jun 16, 2025
From: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
To: SONICWALL US HOLDINGS INC.
Reel/Frame 071625/0887 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: SONICWALL US HOLDINGS INC.
To: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
Reel/Frame 046321/0414 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: SONICWALL US HOLDINGS INC.
To: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
Reel/Frame 046321/0393 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS RECORDED AT R/F 040581/0850 Recorded May 22, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 046211/0735 →
CHANGE OF NAME Recorded Apr 2, 2018
From: DELL SOFTWARE INC.
To: QUEST SOFTWARE INC.
Reel/Frame 045818/0566 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED AT REEL: 040587 FRAME: 0624. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 28, 2017
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 044811/0598 →
CORRECTIVE ASSIGNMENT TO CORRECT THE THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 041073 FRAME: 0001. ASSIGNOR(S) HEREBY CONFIRMS THE INTELLECTUAL PROPERTY ASSIGNMENT.. Recorded Apr 5, 2017
From: QUEST SOFTWARE INC.
To: SONICWALL US HOLDINGS INC.
Reel/Frame 042168/0114 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jan 23, 2017
From: QUEST SOFTWARE INC.
To: SONICWALL US HOLDINGS, INC.
Reel/Frame 041073/0001 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Nov 10, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040587/0624 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Nov 9, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040581/0850 →
RELEASE OF SECURITY INTEREST Recorded Oct 31, 2016
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0467 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040039/0642) Recorded Oct 31, 2016
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0016 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040030/0187 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040039/0642 →
MERGER Recorded Dec 14, 2015
From: SONICWALL L.L.C.
To: DELL SOFTWARE INC.
Reel/Frame 037284/0827 →
CONVERSION AND NAME CHANGE Recorded Dec 14, 2015
From: SONICWALL, INC.
To: SONICWALL L.L.C.
Reel/Frame 037289/0019 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2013
From: DUBROVSKY, ALEKSANDER; YANOVSKY, ROMAN; MORE, SCOTT AARON; YANOVSKY, BORIS
To: SONICWALL, INC.
Reel/Frame 031021/0163 →
RELEASE OF SECURITY INTEREST IN PATENTS RECORDED ON REEL/FRAME 024823/0280 Recorded May 8, 2012
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: AVENTAIL LLC; SONICWALL, INC.
Reel/Frame 028177/0126 →
RELEASE OF SECURITY INTEREST IN PATENTS RECORDED ON REEL/FRAME 024776/0337 Recorded May 8, 2012
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: AVENTAIL LLC; SONICWALL, INC.
Reel/Frame 028177/0115 →
SECURITY AGREEMENT Recorded Aug 3, 2010
From: AVENTAIL LLC; SONICWALL, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 024776/0337 →
PATENT SECURITY AGREEMENT (SECOND LIEN) Recorded Aug 3, 2010
From: AVENTAIL LLC; SONICWALL, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 024823/0280 →