IP Library › Granted Patent US 9,391,954
Granted Patent B2
US 9,391,954 · App. 14/271,243 · Granted Jul 12, 2016

Security processing in active security devices

Inventors: Nir Zuk (Menlo Park, CA); Wilson Xu (San Jose, CA); Yuming Mao (Saratoga, CA)
Assignee: Palo Alto Networks, Inc.
H04L63/02H04L63/0236
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,391,954
App. No.
14/271,243
Granted
Jul 12, 2016
Kind
B2
Abstract

Methods, systems, and apparatus, including computer program products, featuring receiving at a first security device a packet. The first security device determines that the packet is associated with a flow assigned to a distinct second security device. The first security device sends the packet to the second security device. After the second security device performs security processing using the packet, the first security device receives from the second security device a message regarding the packet. The first security device transmits the packet.

Claims (126)

1. A method for processing packets at a first security device, the method comprising:

receiving a packet at the first security device;

determining whether the packet is associated with a flow assigned to a second security device, wherein the second security device is distinct from the first security device;

in the event that the packet is associated with the flow assigned to the second security device:

sending the packet to the second security device; and

after the second security device performs security processing using the packet, receiving from the second security device a message regarding the packet;

in the event that the packet is not associated with the flow assigned to the second security device:

determining whether the packet is associated with a previously assigned flow;

in the event that the packet is not associated with the previously assigned flow:

storing a new flow relating to the packet in the first security device; and

notifying the second security device that the new flow is stored in the first security device; and

performing, using the first security device, security processing using the packet; and

transmitting the packet from the first security device.

2. The method of claim 1 , wherein the message comprises the packet.

3. The method of claim 1 , wherein the packet is one of the following: an Internet Protocol (IP) packet, a Transmission Control Protocol (TCP) segment, and a User Datagram Protocol (UDP) datagram.

4. The method of claim 1 , wherein:

the first security device and the second security device are each a combination of one or more of the following: a firewall, a router, a switch, an Intrusion Detection System (IDS), and an Intrusion Protection System (IPS); and

security processing includes one or more of the following: determining whether to drop or allow the packet, logging or storing the packet, setting an alarm, detecting viruses, detecting spyware, Uniform Resource Locator (URL) filtering, and Data Leakage Prevention (DLP).

5. The method of claim 1 , wherein:

receiving the packet at the first security device comprises receiving the packet having been transmitted on a first route; and

transmitting the packet from the first security device comprises transmitting the packet so that it continues along the first route.

6. The method of claim 1 , wherein:

the packet is a response to an outbound packet associated with the flow;

the second security device performed security processing on the outbound packet; and

the second security device notified the first security device that the flow was assigned to the second security device.

7. The method of claim 1 , wherein:

the packet is a response to an outbound packet associated with the flow;

the outbound packet was sent from a client to a server through the second security device;

the second security device performed security processing on the outbound packet;

the second security device notified the first security device that the flow was assigned to the second security device; and

the packet was sent from the server to the first security device, wherein the packet is destined for the client.

8. The method of claim 1 , wherein determining that the packet is associated with a flow assigned to the second security device includes:

identifying state information associated with the packet; and

determining whether the state information associated with the packet is included in a flow table.

9. The method of claim 1 , further comprising:

receiving an additional packet at the first security device;

determining whether the additional packet is not associated with a flow;

associating the additional packet with a new session;

evaluating the new session to determine if received packets associated with the new session should be allowed;

if received packets associated with the new session should be allowed, creating a new flow record in a flow table; and

notifying the second security device that a new flow associated with the additional packet is assigned to the first security device.

10. A computer program product, encoded on a non-transitory computer-readable medium, comprising computer instructions that when executed cause a first security device to perform operations comprising:

receiving a packet at the first security device;

determining whether the packet is associated with a flow assigned to a second security device, wherein the second security device is distinct from the first security device;

in the event that the packet is associated with the flow assigned to the second security device:

sending the packet to the second security device; and

after the second security device performs security processing using the packet, receiving from the second security device a message regarding the packet;

in the event that the packet is not associated with the flow assigned to the distinct second security device:

determining whether the packet is associated with a previously assigned flow;

in the event that the packet is not associated with the previously assigned flow:

storing a new flow relating to the packet in the first security device; and

notifying the second security device that the new flow is stored in the first security device; and

performing, using the first security device, security processing using the packet; and

transmitting the packet from the first security device.

11. The computer program product recited in claim 10 , wherein the message comprises the packet.

12. The computer program product recited in claim 10 , wherein the packet is one of the following: an Internet Protocol (IP) packet, a Transmission Control Protocol (TCP) segment, and a User Datagram Protocol (UDP) datagram.

13. The computer program product recited in claim 10 , wherein:

the first security device and the second security device are each a combination of one or more of the following: a firewall, a router, a switch, an Intrusion Detection System (IDS), and an Intrusion Protection System (IPS); and

security processing includes one or more of the following: determining whether to drop or allow the packet, logging or storing the packet, setting an alarm, detecting viruses, detecting spyware, Uniform Resource Locator (URL) filtering, and Data Leakage Prevention (DLP).

14. The computer program product recited in claim 10 , wherein:

receiving the packet at the first security device comprises receiving the packet having been transmitted on a first route; and

transmitting the packet from the first security device comprises transmitting the packet so that it continues along the first route.

15. The computer program product recited in claim 10 , wherein:

the packet is a response to an outbound packet associated with the flow;

the second security device performed security processing on the outbound packet; and

the second security device notified the first security device that the flow was assigned to the second security device.

16. The computer program product recited in claim 10 , wherein:

the packet is a response to an outbound packet associated with the flow;

the outbound packet was sent from a client to a server through the second security device;

the second security device performed security processing on the outbound packet;

the second security device notified the first security device that the flow was assigned to the second security device; and

the packet was sent from the server to the first security device, wherein the packet is destined for the client.

17. The computer program product recited in claim 10 , where determining that the packet is associated with a flow assigned to the second security device includes:

identifying state information associated with the packet; and

determining whether the state information associated with the packet is included in a flow table.

18. The computer program product recited in claim 10 , the operations further comprising:

receiving an additional packet;

determining that the additional packet is not associated with a flow;

associating the additional packet with a new session;

evaluating the new session to determine if received packets associated with the new session should be allowed;

if received packets associated with the new session should be allowed, creating a new flow record in a flow table; and

notifying the second security device that a new flow associated with the additional packet is assigned to the first security device.

19. A system comprising:

a first security device comprising one or more processors and one or more network interfaces;

wherein the first security device has encoded on a computer-readable medium instructions operable to cause one or more of the processors of the first security device to perform operations comprising:

receiving a packet at the first security device using one of the network interfaces;

determining whether the packet is associated with a flow assigned to a second security device, wherein the second security device is distinct from the first security device;

in the event that the packet is associated with the flow assigned to the second security device:

sending the packet to the second security device; and

after the second security device performs security processing using the packet, receiving from the second security device a message regarding the packet;

in the event that the packet is not associated with the flow assigned to the second security device:

determining whether the packet is associated with a previously assigned flow;

in the event that the packet is not associated with the previously assigned flow:

storing a new flow relating to the packet in the first security device; and

notifying the second security device that the new flow is stored in the first security device; and

performing, using the first security device, security processing using the packet; and

transmitting the packet from the first security device using one of the network interfaces.

20. The system recited in claim 19 , wherein the message comprises the packet.

21. The system recited in claim 19 , wherein the packet is one of the following: an Internet Protocol (IP) packet, a Transmission Control Protocol (TCP) segment, and a User Datagram Protocol (UDP) datagram.

22. The system recited in claim 19 , wherein:

the first security device and the second security device are each a combination of one or more of the following: a firewall, a router, a switch, an Intrusion Detection System (IDS), and an Intrusion Protection System (IPS); and

security processing includes one or more of the following: determining whether to drop or allow the packet, logging or storing the packet, setting an alarm, detecting viruses, detecting spyware, Uniform Resource Locator (URL) filtering, and Data Leakage Prevention (DLP).

23. The system recited in claim 19 , wherein:

receiving the packet at the first security device comprises receiving the packet having been transmitted on a first route; and

transmitting the packet from the first security device comprises transmitting the packet so that it continues along the first route.

24. The system recited in claim 19 , wherein:

the packet is a response to an outbound packet associated with the flow;

the second security device performed security processing on the outbound packet; and

the second security device notified the first security device that the flow was assigned to the second security device.

25. The system recited in claim 19 , wherein:

the packet is a response to an outbound packet associated with the flow;

the outbound packet was sent from a client to a server through the second security device;

the second security device performed security processing on the outbound packet;

the second security device notified the first security device that the flow was assigned to the second security device; and

the packet was sent from the server to the first security device, wherein the packet is destined for the client.

26. The system recited in claim 19 , where determining that the packet is associated with a flow assigned to the second security device includes:

identifying state information associated with the packet; and

determining whether the state information associated with the packet is included in a flow table.

27. The system recited in claim 19 , the operations further comprising:

receiving an additional packet;

determining that the additional packet is not associated with a flow;

associating the additional packet with a new session;

evaluating the new session to determine if received packets associated with the new session should be allowed;

if received packets associated with the new session should be allowed, creating a new flow record in a flow table; and

notifying the second security device that a new flow associated with the additional packet is assigned to the first security device.

28. The system recited in claim 19 , further comprising the second security device.

Continuity (2)
Continuation 12363102 · Jan 30, 2009
Related Publication 20140331311A1 · Nov 6, 2014