IP Library Granted Patent US 9,577,983
Granted Patent B2
US 9,577,983 · App. 14/747,860 · Granted Feb 21, 2017

Method and apparatus to perform multiple packet payloads analysis

Inventors: Aleksandr Dubrovsky (San Mateo, CA); John Everett Gmuender (San Jose, CA); Boris Yanovsky (Saratoga, CA); Roman Yanovsky (Los Altos, CA); Shunhui Zhu (San Jose, CA)
Assignee: DELL SOFTWARE INC.
H04L63/0254H04L12/2874H04L47/34H04L47/365H04L63/145H04L63/1416H04L67/06
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 9,577,983
App. No.
14/747,860
Granted
Feb 21, 2017
Kind
B2
Abstract

A method and apparatus for identifying data patterns of a file are described herein. In one embodiment, an exemplary process includes, but is not limited to, receiving a data packet of a data stream containing a file segment of a file originated from an external host and destined to a protected host of a local area network (LAN), the file being transmitted via multiple file segments contained in multiple data packets of the data stream, and performing a data pattern analysis on the received data packet to determine whether the received data packet contains a predetermined data pattern, without waiting for a remainder of the data stream to arrive. Other methods and apparatuses are also described.

Claims (60)

1. A method for performing re-assembly free deep packet inspection, the method comprising:

receiving a data stream over a communication network, the received data stream comprising a plurality of data packets ordered in a predetermined order;

identifying that the plurality of data packets are not being received in the predetermined order, wherein at least one data packet is received before a precedent data packet in the predetermined order is received and is an out-of-order packet of a plurality of out-of-order data packets;

storing the plurality of out-of-order data packets in a buffer, such that the buffer includes each of the out-of-order packets including the at least one data packet;

transmitting each of the plurality of packets received out-of-order to a recipient except for the at least one data packet; and

receiving a first set of other data packets of the data stream;

identifying that the first set of other data packets and each of the data packets stored in the buffer can be scanned in order except for the at least one data packet;

scanning in order each of the data packets stored in the buffer and the first set of other data packets except for the at least one data packet; and

transmitting each of the each of the data packets stored in the buffer and the first set of other data packets to the recipient except for the at least one data packet, wherein the at least one data packet is prevented from being transmitted to the recipient until verification that previous scanned packets when combined with the at least one data packet do not contain an attack pattern.

2. The method of claim 1 , further comprising:

receiving a second set of data packets in the data stream;

identifying at least one data packet from the second set of data packets is a subsequent packet to the at least one data packet;

identifying that the second set of data packets and the at least one data packet can be scanned in order except for the at least one identified data packet from the second set of data packets;

scanning the second set of other data packets and the at least one data packet except for the at least one identified packet from the second set of data packets; and

transmitting the second set of data packets and the at least one data packet to the recipient except for the at least one identified packet from the second set of data packets, wherein the at least one identified data packet from the second set of data packets is prevented from being transmitted to the recipient until verification that other previously scanned packets when combined with the at least one identified data packet from the second set of data packets do not contain the attack pattern.

3. The method of claim 1 , wherein the a state of pattern matching is stored after one or more data packets of the plurality of data packets of the data stream are scanned.

4. The method of claim 3 , wherein each of the one or more data packets are decoded before they are scanned.

5. The method of claim 3 , wherein each of the one or more data packets are decompressed before they are scanned.

6. The method of claim 3 , wherein the state of pattern matching is tracked by a pointer that points to at least one state in a series of states where each of the states in the series of states from an initial state to an end state correspond to the attack pattern.

7. The method of claim 6 , wherein the attack pattern is detected when a current state of pattern matching corresponds to an end state of a series of states corresponding to a previously identified pattern including at least one of a digit or at least one character.

8. A non-transitory computer readable storage medium having embodied thereon a program executable by a processor to perform a method for re-assembly free deep packet inspection, the method comprising:

receiving a data stream over a communication network, the received data stream comprising a plurality of data packets ordered in a predetermined order;

identifying that the plurality of data packets are not being received in the predetermined order, wherein at least one data packet is received before a precedent data packet in the predetermined order is received and is an out-of-order packet of a plurality of out-of-order data packets;

storing the plurality of out-of-order data packets in a buffer, such that the buffer includes each of the out-of-order packets including the at least one data packet;

transmitting each of the plurality of packets received out-of-order to a recipient except for the at least one data packet; and

receiving a first set of other data packets of the data stream;

identifying that the first set of other data packets and each of the data packets stored in the buffer can be scanned in order except for the at least one data packet;

scanning in order each of the data packets stored in the buffer and the first set of other data packets except for the at least one data packet; and

transmitting each of the each of the data packets stored in the buffer and the first set of other data packets to the recipient except for the at least one data packet, wherein the at least one data packet is prevented from being transmitted to the recipient until verification that previous scanned packets when combined with the at least one data packet do not contain an attack pattern.

9. The non-transitory computer readable storage medium of claim 8 , further comprising instructions executable to:

receive a second set of data packets in the data stream;

identify at least one data packet from the second set of data packets is a subsequent packet to the at least one data packet;

identify that the second set of data packets and the at least one data packet can be scanned in order except for the at least one identified data packet from the second set of data packets;

scan the second set of data packets and the at least one data packet except for the at least one identified data packet from the second set of data packets; and

transmit the second set of data packets and the at least one data packet to the recipient except for the at least one identified data packet from the second set of data packets, wherein the at least one identified data packet from the second set of data packets is prevented from being transmitted to the recipient until verification that other previously scanned packets when combined with the at least one identified data packet from the second set of data packets do not contain the attack pattern.

10. The non-transitory computer readable storage medium of claim 8 , wherein the a state of pattern matching is stored after one or more data packets of the plurality of data packets of the data stream are scanned.

11. The non-transitory computer readable storage medium of claim 10 , wherein each of the one or more data packets are decoded before they are scanned.

12. The non-transitory computer readable storage medium of claim 10 , wherein each of the one or more data packets are decompressed before they are scanned.

13. The non-transitory computer readable storage medium of claim 10 , wherein the state of pattern matching is tracked by a pointer that points to at least one state in a series of states where each of the states in the series of states from an initial state to an end state correspond to the attack pattern.

14. The non-transitory computer readable storage medium of claim 13 , wherein the attack pattern is detected when a current state of pattern matching corresponds to an end state of a series of states corresponding to a previously identified pattern including at least one of a digit or at least one character.

15. An apparatus that performs re-assembly free deep packet inspection, the system comprising:

a first network communication interface that receives a data stream, the received data stream comprising a plurality of data packets ordered in a predetermined order;

a memory;

a processor executing instructions out of the memory to:

identify that the plurality of data packets are not being received in the predetermined order, wherein at least one data packet is received before a precedent data packet in the predetermined order is received and is an out-of-order packet of a plurality of out-of-order data packets, and

store the plurality of out-of-order data packets in a buffer, such that the buffer includes each of the out-of-order packets including the at least one data packet; and

a second network communication interface that transmits each of the plurality of packets received out-of-order to a recipient except for the at least one data packet, wherein:

a first set of other data packets of the data stream are received over the first data communication interface,

the processor executing the instructions out of the memory identifies that the first set of other data packets and each of the data packets stored in the buffer can be scanned in order except for the at least one data packet,

the processor executing the instructions out of the memory scans in order each of the data packets stored in the buffer and the first set of other data packets except for the at least one data packet,

each of the data packets stored in the buffer and the first set of other data packets except for the at least one data packet are transmitted to the recipient, wherein the at least one data packet is prevented from being transmitted to the recipient until verification that previous scanned packets when combined with the at least one data packet do not contain an attack pattern.

16. The apparatus of claim 15 , wherein:

a second set of data packets in the data stream is received;

at least one data packet from the second set of data packets is identified as a subsequent packet to the at least one data packet;

the second set of data packets and the at least one data packet except for the at least one identified data packet from the second set of data packets are scanned; and

the second set of data packets and the at least one data except for the at least one identified data packet from the second set of data packets are transmitted to the recipient, wherein the at least one identified data packet from the second set of data packets is prevented from being transmitted to the recipient until verification that other previously scanned packets when combined with the at least one identified data packet from the second set of data packets do not contain the attack pattern.

17. The apparatus of claim 15 , wherein the a state of pattern matching is stored after one or more data packets of the plurality of data packets of the data stream are scanned.

18. The apparatus of claim 17 , wherein each of the one or more data packets are decoded before they are scanned.

19. The apparatus of claim 17 , wherein each of the one or more data packets are decompressed before they are scanned.

20. The apparatus of claim 17 , wherein the state of pattern matching is tracked by a pointer that points to at least one state in a series of states where each of the states in the series of states from an initial state to an end state correspond to the attack pattern.

Assignments (28)
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 →
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 →
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 →
CHANGE OF NAME Recorded May 25, 2018
From: DELL SOFTWARE INC.
To: QUEST SOFTWARE INC.
Reel/Frame 046246/0059 →
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 May 16, 2018
From: DELL SOFTWARE INC.
To: QUEST SOFTWARE INC.
Reel/Frame 046169/0718 →
CHANGE OF NAME Recorded May 15, 2018
From: DELL SOFTWARE INC.
To: QUEST SOFTWARE INC.
Reel/Frame 046163/0137 →
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 →
RELEASE OF REEL 036502 FRAME 0237 (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040028/0088 →
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 →
RELEASE OF REEL 036502 FRAME 0291 (NOTE) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040027/0637 →
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 →
RELEASE OF REEL 036502 FRAME 0206 (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040017/0204 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 18, 2016
From: DUBROVSKY, ALEKSANDR; GMUENDER, JOHN EVERETT; YANOVSKY, BORIS; YANOVSKY, ROMAN; ZHU, SHUNHUI
To: SONICWALL, INC.
Reel/Frame 039474/0113 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 16, 2015
From: DUBROVSKY, ALEKSANDR; YANOVSKY, ROMAN; MORE, SCOTT AARON; YANOVSKY, BORIS
To: SONICWALL, INC.
Reel/Frame 037304/0269 →
MERGER Recorded Dec 16, 2015
From: SONICWALL L.L.C.
To: DELL SOFTWARE INC.
Reel/Frame 037304/0553 →
CHANGE OF NAME Recorded Dec 16, 2015
From: PSM MERGER SUB (DELAWARE), INC.
To: SONICWALL, INC.
Reel/Frame 037304/0429 →
MERGER Recorded Dec 16, 2015
From: SONICWALL, INC.
To: PSM MERGER SUB (DELAWARE), INC.
Reel/Frame 037304/0352 →
CONVERSION AND NAME CHANGE Recorded Dec 16, 2015
From: SONICWALL, INC.
To: SONICWALL L.L.C.
Reel/Frame 037311/0401 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Aug 27, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 036502/0237 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded Aug 27, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; WYSE TECHNOLOGY, L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 036502/0206 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded Aug 27, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 036502/0291 →
Continuity (6)
Continuation 14064597 · Oct 28, 2013
Continuation 13587748 · Aug 16, 2012
Continuation 12913668 · Oct 27, 2010
Continuation 11112252 · Apr 21, 2005
Continuation In Part 10964871 · Oct 13, 2004
Related Publication 20150295894A1 · Oct 15, 2015