IP Library Granted Patent US 8,578,489
Granted Patent B1
US 8,578,489 · App. 13/491,484 · Granted Nov 5, 2013

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,578,489
App. No.
13/491,484
Granted
Nov 5, 2013
Kind
B1
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 (55)

1. A method of performing re-assembly free deep packet inspection of a data stream corresponding to a client application at a network element, the method comprising:

receiving the data stream that corresponds to the client application, the data stream including a plurality of data packets communicated with the client application, each of the plurality of data packets containing a portion of a data pattern in a payload of that data packet; and

performing the re-assembly free deep packet inspection on the data stream, wherein each packet is inspected by:

determining, whether a corresponding data packet is out of order, and

if the corresponding data packet is out of order,

checking whether one or more local copies of previously received data packets is next in order,

wherein a local copy determined to be next in order is compared to a corresponding portion of an attack pattern, and

wherein there is no local copy next in order, and storing a local copy of the corresponding data packet, wherein the local copy is used when determined to be next in order after another one of the plurality of data packets in pattern matching to a corresponding portion of the attack pattern, and

if the corresponding data packet is in-order,

performing pattern matching on the payload of 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.

2. The method of claim 1 , further comprising passing the corresponding data packet if the corresponding data packet is out of order after making and storing 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:

passing the corresponding data packet if the one or more data packets compared so far do not contain the attack pattern; and

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 to perform re-assembly free deep packet inspection of a data stream corresponding to a client application at a network element, the apparatus comprising:

an interface to receive a data stream including a plurality of data packets, the data stream associated with a client application communicably coupled to the interface; and

a processor to perform re-assembly free deep packet inspection by pattern matching on payloads of the plurality of data packets on a packet-by-packet basis without reassembling the plurality of data packets in order to scan for an attack pattern, wherein the plurality of data packets include in-order data packets and out-of-order data packets, and wherein each data packet is inspected by:

determining whether a corresponding data packet is in-order or out-of-order,

for each of the in-order data packets, pattern matching on a payload of that in-order 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 an attack data pattern, and

for each of the out-of-order data packets:

checking whether one or more local copies of previously received data packets is next in order,

wherein a local copy determined to be next in order is compared to a corresponding portion of an attack pattern, and

wherein there is no local copy next in order, storing a local copy of that out-of-order data packet, wherein the local copy is used when determined to be next in order after another one of the plurality of data packets in pattern matching to a corresponding portion of the attack pattern.

10. The apparatus of claim 9 , further comprising a buffer to temporarily store a copy of each of the out-of-order data packets before allowing that 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 plurality of 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 in the data stream 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 that performs re-assembly free deep packet inspection of a plurality of data streams, the system comprising:

a plurality of client applications that communicate the plurality of data streams, wherein each of the plurality of data streams includes a plurality of data packets;

a network; and

a network security module communicably coupled to the plurality of client applications via the network, the network security module comprising:

an interface coupled to the network, wherein the interface receives the plurality of data streams; and

a processor coupled to the interface, wherein the processor performs the re-assembly free deep packet inspection by pattern matching on each of the data streams on a packet-by-packet basis for the plurality of data packets in that data stream and without reassembling the data packets in order to scan for an attack pattern, wherein the plurality of data streams include in-order data packets and out-of-order data packets and wherein each data packet is inspected by:

determining whether a corresponding data packet is in-order or out-of-order,

for each of the in-order data packets, pattern matching on the payload of that in-order 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 an attack data pattern, and

for each of the out-of-order data packets:

checking whether one or more local copies of previously received data packets is next in order,

wherein a local copy determined to be next in order is compared to a corresponding portion of an attack pattern, and

wherein there is no local copy next in order, storing a local copy of that out-of-order data packet, wherein the local copy is used in pattern matching to a corresponding portion of the attack pattern.

15. The system of claim 14 , wherein the network security module further comprises a buffer coupled to the processor, wherein the buffer temporarily stores a copy of each of the out-of-order data packets before allowing that data packet to pass.

16. The system of claim 15 , further comprising a server, wherein the network security module is operable to run on the server.

17. The system of claim 14 , wherein the attack pattern includes a plurality of data patterns and the processor represents each of the plurality of data patterns with a Deterministic Finite Automaton (DFA) and performs the pattern matching on the received data packets against the attack pattern using the DFA.

18. The system of claim 17 , wherein the network security module further comprises a storage device coupled to the processor, wherein the storage device 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.

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

20. The system of claim 14 , further comprising a client machine, wherein the network security module is operable to run on the client machine.

21. The system of claim 14 , further comprising a router, wherein the network security module is operable to run on the router.

Assignments (19)
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 →
CONVERSION AND NAME CHANGE Recorded Dec 14, 2015
From: SONICWALL, INC.
To: SONICWALL L.L.C.
Reel/Frame 037289/0019 →
MERGER Recorded Dec 14, 2015
From: SONICWALL L.L.C.
To: DELL SOFTWARE INC.
Reel/Frame 037284/0827 →
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/0222 →
MERGER Recorded Aug 15, 2013
From: SONICWALL, INC.
To: PSM MERGER SUB (DELAWARE), INC. C/O THOMA BRAVO, LLC
Reel/Frame 031021/0266 →
CHANGE OF NAME Recorded Aug 15, 2013
From: PSM MERGER SUB (DELAWARE), INC.
To: SONICWALL, INC.
Reel/Frame 031021/0324 →