IP Library Granted Patent US 11,431,677
Granted Patent B2
US 11,431,677 · App. 15/868,789 · Granted Aug 30, 2022

Mechanisms for layer 7 context accumulation for enforcing layer 4, layer 7 and verb-based rules

Inventors: Sushruth Gopal (Palo Alto, CA); Jayant Jain (Palo Alto, CA); Subrahmanyam Manuguri (San Jose, CA); Anirban Sengupta (Palo Alto, CA); Deepa Kalani (Fremont, CA); Alok Tiagi (Palo Alto, CA); Sushil Singh (Los Altos, CA)
Assignee: NICIRA, INC.
H04L63/0263G06F9/45533G06F9/45558H04L29/06H04L63/0218H04L63/0245G06F2009/45587H04L69/22H04L69/329
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 11,431,677
App. No.
15/868,789
Granted
Aug 30, 2022
Kind
B2
Abstract

The method for implementing mechanisms for Layer 7 context accumulation for enforcing Layers 4, 7, and verb-based rules is presented. The method comprises: receiving stream data, and identifying a packet in the stream. If the packet includes Layer 7 headers: for each Layer 7 header: determining content of the packet identified by a Layer 7 header's identifier; and parsing the content to extract firewall input data. If one or more rules at least partially match the firewall input data, determining that a particular rule also includes additional information that cannot be found in the firewall input data; performing a DPI on the content to determine whether at least a portion of the additional information is found in the content; extracting additional input data from the content and adding it to the firewall input data; and applying the rules to the firewall input data to process the packet.

Claims (80)

1. A method for a hypervisor to implement mechanisms for Layer 7 context accumulation for enforcing Layer 4, Layer 7, and verb-based rules, the method comprising:

receiving stream data intercepted along a data path;

identifying a data packet in the stream data;

parsing the data packet to determine whether the data packet includes a plurality of Layer 7 headers;

in response to determining that the data packet includes the plurality of Layer 7 headers:

for each Layer 7 header of the plurality of Layer 7 headers:

determining content of the data packet that is identified by an identifier included in a Layer 7 header;

parsing the content to extract firewall input data from the content;

determining whether one or more rules at least partially match the firewall input data, wherein each of the elements comprises a value to be compared with a corresponding value associated with the data packet and wherein a partial match occurs when at least a subset of the elements matches the corresponding values of the firewall input data;

in response to determining that the one or more rules include elements that at least partially match the firewall input data:

determining that a particular rule, of the one or more partially matched rules, includes additional information elements that require additional information that is not included in the firewall input data;

based on determining that the particular rule includes additional elements that require additional information that is not included in the firewall input data, selecting to perform a deep packet inspection (DPI) on the content to determine whether additional information obtained from the DPI matches the additional elements; and

in response to determining that the firewall input data along with the additional information satisfies all elements included in the particular rule, performing an action associated with the particular rule on the data packet, wherein the action is one of: a drop action or a pass action, wherein the pass action causes transmitting the data packet toward a destination of the data packet.

2. The method of claim 1 , wherein the firewall input data includes Layer 4 data and Layer 7 data;

wherein the Layer 4 data and the Layer 7 data is used to generate context data for determining whether the one or more rules apply to the firewall input data;

wherein the Layer 4 data includes one or more of: a source address, a source port, a destination address, a destination port, or a protocol identifier;

wherein the Layer 7 data includes one or more of: a Layer 7 protocol name, or one or more Layer 7 verbs; and

wherein the one or more Layer 7 verbs include one or more of: HTTP action verbs, FTP commands, or SQL commands.

3. The method of claim 1 , wherein the data packet that includes the plurality of Layer 7 headers is transmitted in compliance with an HTTP/2 protocol.

4. The method of claim 1 , wherein the particular rule, of the one or more rules that at least partially match the firewall input data, includes one or more of: Layer 4-specific data, Layer 7-specific data, or Layer 4-7-specific data.

5. The method of claim 1 , wherein performing the DPI on the content to determine whether at least the portion of the additional information is found in the content comprises: performing a full DPI to determine whether at least a second portion of the additional information is found in the content.

6. The method of claim 5 , wherein the full DPI is performed by a DPI engine; and

wherein performing the full DPI comprises generating a decrypted content by decrypting the content, analyzing Layer 7 data included in the decrypted content, and extracting Layer 7 data from the decrypted content; and

wherein performing the full DPI comprises analyzing all fields of the decrypted content.

7. The method of claim 1 , wherein parsing the content to extract firewall input data from the content is performed without DPI.

8. One or more non-transitory computer-readable storage media storing one or more computer instructions which, when executed by one or more processors, cause the one or more processors to perform:

receiving stream data intercepted along a data path;

identifying a data packet in the stream data;

parsing the data packet to determine whether the data packet includes a plurality of Layer 7 headers;

in response to determining that the data packet includes the plurality of Layer 7 headers:

for each Layer 7 header of the plurality of Layer 7 headers:

determining content of the data packet that is identified by an identifier included in a Layer 7 header;

parsing the content to extract firewall input data from the content;

determining whether one or more rules include elements that at least partially match the firewall input data, wherein each of the elements comprises a value to be compared with a corresponding value associated with the data packet and wherein a partial match occurs when at least a subset of the elements matches the corresponding values of the firewall input data;

in response to determining that the one or more rules include elements that at least partially match the firewall input data:

determining that a particular rule, of the one or more partially matched rules, includes additional elements that require additional information that is not included in the firewall input data;

based on determining that the particular rule includes additional elements that require additional information that is not included in the firewall input data, choosing to perform a deep packet inspection (DPI) on the content to determine whether additional information obtained from the DPI matches the additional elements; and

in response to determining that the firewall input data along with the additional information satisfies all elements included in the particular rule, performing an action associated with the particular rule on the data packet, wherein the action is one of: a drop action or a pass action, wherein the pass action causes transmitting the data packet toward a destination of the data packet.

9. The one or more non-transitory computer-readable storage media of claim 8 ,

wherein the firewall input data includes Layer 4 data and Layer 7 data;

wherein the Layer 4 data and the Layer 7 data is used to generate context data for determining whether the one or more rules apply to the firewall input data;

wherein the Layer 4 data includes one or more of: a source address, a source port, a destination address, a destination port, or a protocol identifier;

wherein the Layer 7 data includes one or more of: a Layer 7 protocol name, or one or more Layer 7 verbs; and

wherein the one or more Layer 7 verbs include one or more of: HTTP action verbs, FTP commands, or SQL commands.

10. The one or more non-transitory computer-readable storage media of claim 8 , wherein the data packet that includes the plurality of Layer 7 headers is transmitted in compliance with an HTTP/2 protocol.

11. The one or more non-transitory computer-readable storage media of claim 8 , wherein the particular rule, of the one or more rules that at least partially match the firewall input data, includes one or more of: Layer 4-specific data, Layer 7-specific data, or Layer 4-7-specific data.

12. The one or more non-transitory computer-readable storage media of claim 8 , storing additional instructions which, when executed by the one or more processors, cause the one or more processors to perform: performing a full DPI to determine whether at least a portion of the additional information is found in the content t.

13. The one or more non-transitory computer-readable storage media of claim 12 ,

wherein the full DPI are performed by a DPI engine; and

wherein performing the full DPI comprises generating a decrypted content by decrypting the content, analyzing Layer 7 data included in the decrypted content, and extracting Layer 7 data from the decrypted content; and

wherein performing the full DPI comprises analyzing all fields of the decrypted content.

14. The one or more non-transitory computer-readable storage media of claim 12 , storing additional instructions which, when executed by the one or more processors, cause the one or more processors to perform: applying the one or more rules to the firewall input data to determine a processing of the content of the data packet.

15. A hypervisor implemented in a host computer and configured to implement mechanisms for Layer 7 context accumulation for enforcing Layer 4, Layer 7, and verb-based rules, the hypervisor comprising:

one or more processors;

one or more memory units; and

one or more non-transitory computer-readable storage media storing one or more computer instructions which, when executed by the one or more processors, cause the one or more processors to perform:

receiving stream data intercepted along a data path;

identifying a data packet in the stream data;

parsing the data packet to determine whether the data packet includes a plurality of Layer 7 headers;

in response to determining that the data packet includes the plurality of Layer 7 headers;

for each Layer 7 header of the plurality of Layer 7 headers:

determining content of the data packet that is identified by an identifier included in a Layer 7 header:

parsing the content to extract firewall input data from the content;

determining whether one or more rules include elements that at least partially match the firewall input data, wherein each of the elements comprises a value to be compared with a corresponding value associated with the data packet and wherein a partial match occurs when at least a subset of the elements matches the corresponding values of the firewall input data;

in response to determining that the one or more rules include elements that at least partially match the firewall input data:

determining that a particular rule, of the one or more partially matched rules, includes additional elements that require additional information that is not included in the firewall input data;

based on determining that the particular rule includes additional elements that require additional information that is not included in the firewall input data, choosing to perform a deep packet inspection (DPI) on the content to determine whether additional information obtained from the DPI matches the additional elements; and

in response to determining that the firewall input data along with the additional information satisfies all elements included in the particular rule, performing an action associated with the particular rule on the data packet, wherein the action is one of: a drop action or a pass action, wherein the pass action causes transmitting the data packet toward a destination of the data packet.

16. The hypervisor of claim 15 , wherein the firewall input data includes Layer 4 data and Layer 7 data;

wherein the Layer 4 data and the Layer 7 data is used to generate context data for determining whether the one or more rules apply to the firewall input data;

wherein the Layer 4 data includes one or more of: a source address, a source port, a destination address, a destination port, or a protocol identifier;

wherein the Layer 7 data includes one or more of: a Layer 7 protocol name, or one or more Layer 7 verbs; and

wherein the one or more Layer 7 verbs include one or more of: HTTP action verbs, FTP commands, or SQL commands.

17. The hypervisor of claim 15 , wherein the data packet that includes the plurality of Layer 7 headers is transmitted in compliance with an HTTP/2 protocol.

18. The hypervisor of claim 15 , wherein the particular rule, of the one or more rules that at least partially match the firewall input data, includes one or more of: Layer 4-specific data, Layer 7-specific data, or Layer 4-7-specific data.

19. The hypervisor of claim 15 , wherein the one or more non-transitory computer-readable storage media store additional instructions which, when executed by the one or more processors, cause the one or more processors to perform:

performing a full DPI to determine whether at least a second portion of the additional information is found in the content.

20. The hypervisor of claim 19 , wherein the full DPI is performed by a DPI engine; and

wherein performing the full DPI comprises generating a decrypted content by decrypting the content, analyzing Layer 7 data included in the decrypted content, and extracting Layer 7 data from the decrypted content; and

wherein performing the full DPI comprises analyzing all fields of the decrypted content.

Assignments (2)
MERGER Recorded Jan 27, 2025
From: NICIRA, INC.
To: VMWARE LLC
Reel/Frame 070187/0487 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 11, 2018
From: GOPAL, SUSHRUTH; JAIN, JAYANT; MANUGURI, SUBRAHMANYAM; KALANI, DEEPA; SINGH, SUSHIL; SENGUPTA, ANIRBAN; TIAGI, ALOK
To: NICIRA, INC.
Reel/Frame 044603/0461 →
Continuity (1)
Related Publication 20190215307A1 · Jul 11, 2019