IP Library Granted Patent US 9,160,768
Granted Patent B2
US 9,160,768 · App. 13/935,320 · Granted Oct 13, 2015

Systems and methods for managing application security profiles

Inventors: Namit Sikka (San Jose, CA); Anoop Reddy (San Jose, CA); Rajiv Mirani (San Jose, CA); Abhishek Chauhan (San Jose, CA)
Assignee: Citrix Systems, Inc.
H04L63/20H04L63/102
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,160,768
App. No.
13/935,320
Granted
Oct 13, 2015
Kind
B2
Abstract

Systems and methods for configuring and evaluating policies that direct processing of one or more data streams are described. A configuration interface is described for allowing users to specify object oriented policies. These object oriented policies may allow any data structures to be applied with respect to a payload of a received packet stream, including any portions of HTTP traffic. A configuration interface may also allow the user to control the order in which policies and policy groups are executed, in addition to specifying actions to be taken if one or more policies are undefined. Systems and methods for processing the policies may allow efficient processing of object-oriented policies by applying potentially complex data structures to unstructured data streams. A device may also interpret and process a number of flow control commands and policy group invocation statements to determine an order of execution among a number of policies and policy groups. These policy configurations and processing may allow configuration and processing of complex network behaviors relating to load balancing, VPNs, SSL offloading, content switching, application security, acceleration, and caching.

Claims (27)

1. A method for executing by an application firewall an application security profile for a type of network traffic, the method comprising:

(a) identifying, by an application firewall executing on a device intermediary to a plurality of clients and one or more servers, an application security profile specifying a type of network traffic the firewall profile applies to and one or more application firewall security checks selected from a plurality of application firewall security checks to apply to the type of network traffic;

(b) identifying, by the application firewall, a firewall policy that specifies the application security profile from a plurality of application security profiles instead of an action to take as a result of evaluating a rule of the firewall policy;

(c) applying, by the application firewall, the firewall policy to a packet received by the device corresponding to the type of network traffic; and

(d) processing, by the application firewall responsive to evaluation of the rule of the firewall policy, the one or more application firewall security checks of the application security profile to the packet.

2. The method of claim 1 , wherein the application security profile specifies for each of the one or more application firewall security checks whether to block or log corresponding network traffic.

3. The method of claim 2 , wherein step (d) further comprises one of blocking or logging, the application firewall, the packet in accordance with the one or more application firewall security checks.

4. The method of claim 1 , wherein the rule of the firewall policy comprises an object oriented expression that specifies a user selected data structure to explicitly typecast application layer data within a packet into a predetermined user selected data type.

5. The method of claim 4 , wherein step (c) further comprises determining, by the application firewall, that the packet evaluates the object oriented expression of the rule to true.

6. The method of claim 1 , wherein the rule of the firewall policy comprises an object oriented expression that specifies a device defined data structure to explicitly typecast application layer data within a packet into a predetermined device defined data type.

7. The method of claim 6 , wherein step (c) further comprises determining, by the application firewall, that the packet evaluates the object oriented expression of the rule to true.

8. The method of claim 1 , wherein each of the one or more application firewall security checks performs one of the following: SQL injection blocking, invalid starting URL blocking, cookie tampering blocking, inconsistent form field blocking, buffer overflow blocking, cross-site scripting blocking, credit card number blocking and invalid URL blocking.

9. The method of claim 1 , wherein step (d) further comprising determining, by the application firewall, that a uniform resource locator of a packet in the packet stream matches a setting in an application firewall security check of the one or more application firewall security checks.

10. The method of claim 1 , wherein step (d) further comprises processing, by the application firewall, each of the one or more application firewall security checks in accordance with user selected settings configured for each of the one or more application firewall security checks.

11. A system for executing by an application firewall an application security profile for a type of network traffic, the system comprising:

a device intermediary to a plurality of clients and one or more servers;

an application firewall executable on the device and configured to identify an application security profile specifying a type of network traffic the firewall profile applies to and one or more application firewall security checks selected from a plurality of application firewall security checks to apply to the type of network traffic, and to identify a firewall policy that specifies the application security profile from a plurality of application security profiles instead of an action to take as a result of evaluating a rule of the firewall policy;

wherein the application firewall is configured to apply the firewall policy to a packet received by the device corresponding to the type of network traffic and responsive to evaluation of the rule of the firewall policy process the one or more application firewall security checks of the application security profile to the packet.

12. The system of claim 11 , wherein the application security profile specifies for each of the one or more application firewall security checks whether to block or log corresponding network traffic.

13. The system of claim 12 , wherein the application firewall is configured to one of block or log the packet in accordance with the one or more application firewall security checks.

14. The system of claim 11 , wherein the rule of the firewall policy comprises an object oriented expression that specifies a user selected data structure to explicitly typecast application layer data within a packet into a predetermined user selected data type.

15. The system of claim 14 , wherein the application firewall is further configured to determine that the packet evaluates the object oriented expression of the rule to true.

16. The system of claim 11 , wherein the rule of the firewall policy comprises an object oriented expression that specifies a device defined data structure to explicitly typecast application layer data within a packet into a predetermined device defined data type.

17. The system of claim 16 , wherein the application firewall is further configured to determine that the packet evaluates the object oriented expression of the rule to true.

18. The system of claim 11 , wherein each of the one or more application firewall security checks is configured to perform one of the following: SQL injection blocking, invalid starting URL blocking, cookie tampering blocking, inconsistent form field blocking, buffer overflow blocking, cross-site scripting blocking, credit card number blocking and invalid URL blocking.

19. The system of claim 11 , wherein the application firewall is further configured to determine that a uniform resource locator of a packet in the packet stream matches a setting in an application firewall security check of the one or more application firewall security checks.

20. The system of claim 11 , wherein the application firewall is further configured to process each of the one or more application firewall security checks in accordance with user selected settings configured for each of the one or more application firewall security checks.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 8, 2013
From: SIKKA, NAMIT; REDDY, ANOOP; MIRANI, RAJIV; CHAUHAN, ABHISHEK
To: CITRIX SYSTEMS, INC.
Reel/Frame 030752/0262 →
Continuity (2)
Continuation 11685177 · Mar 12, 2007
Related Publication 20130298190A1 · Nov 7, 2013