IP Library Granted Patent US 9,215,212
Granted Patent B2
US 9,215,212 · App. 12/489,329 · Granted Dec 15, 2015

Systems and methods for providing a visualizer for rules of an application firewall

Inventors: Anoop Kandi Reddy (Santa Clara, CA); Stanley Wong (Santa Clara, CA); Raghu Goyal (Bangalore, IN); Sanjay Gupta (Bangalore, IN)
Assignee: CITRIX SYSTEMS, INC.
H04L63/0263G06F3/048G06F2221/2101G06F2221/2119G06F2221/2145
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,215,212
App. No.
12/489,329
Granted
Dec 15, 2015
Kind
B2
Abstract

The present invention is directed towards systems and methods for generating a representation a plurality of learned rules from a learning engine of an application firewall. The representation may be generated based on a history of URL communications with a web server. A learning engine of an application firewall may determine a plurality of learned rules based on a history of URL communications with a web server. Each of the plurality of learned rules mat be assigned a URL string. A visualizer can categorize a subset of the plurality of learned rules under a first check type of a plurality of check types. The visualizer may further generate a tree representation of URL strings of the subset of learned rules. Each node of the tree corresponds to a segment of the URL strings identified based on a delimiter for the URL strings.

Claims (27)

1. A method of generating a representation of a plurality of learned rules from a learning engine of an application firewall based on a history of uniform resource locator (URL) communications with a web server, the method comprising:

a) determining, by a learning engine of an application firewall, a plurality of learned rules based on a history of URL communications with a web server, each of the plurality of learned rules assigned a URL string;

b) categorizing, by a visualizer, a subset of the plurality of learned rules under a first check type of a plurality of check types;

c) generating, by the visualizer, a first tree representation of URL strings of the subset of learned rules, each node of the first tree corresponding to a segment of the URL strings identified based on application of a first selected delimiter to the URL strings to segment the URL strings into a first plurality of segments, each URL string comprising a path to a resource and comprising multiple segments identified based on application of the first selected delimiter;

d) changing, via the visualizer responsive to a user operating the visualizer, the first delimiter to a second selected delimiter for the same URL strings of the subset of learned rules; and

e) generating, by the visualizer, a second tree representation of the same URL strings responsive to the change to the second selected delimiter, each node of the second tree corresponding to a segment of the URL strings identified based on application of the second selected delimiter to the URL strings to segment the URL strings into a second plurality of segments, the change allowing a visual comparison of hierarchical distributions of the first plurality of segments and the second plurality of segments between the first tree and the second tree, and distributions of the subset of learned rules corresponding to the first plurality of segments and the second plurality of segments.

2. The method of claim 1 , wherein step (a) further comprises generating a first learned rule of the plurality of learned rules based on a plurality of URL communications having a first URL string in common, and assigning the first URL to the first learned rule.

3. The method of claim 1 , wherein step (b) further comprises generating a third tree representation for a second subset of the plurality of learned rules corresponding to a second check type of the plurality of check types.

4. The method of claim 1 , wherein step (c) further comprises generating the first tree representation based on the first delimiter, the first delimiter associated with the first check type.

5. The method of claim 1 , wherein step (c) further comprises specifying the first delimiter as belonging to a class of characters.

6. The method of claim 1 , wherein step (c) further comprises specifying the first delimiter as one of: a special character, a non-alphabetical character and a non-alphanumeric character.

7. The method of claim 1 , wherein step (c) further comprises determining, by the visualizer for the first tree representation, a count of learned rules associated with a node.

8. The method of claim 1 , wherein step (c) further comprises determining, by the visualizer for the first tree representation, an expression representative of URL strings of learned rules associated with a node.

9. The method of claim 1 , wherein step (c) further comprises determining, by the visualizer for the first tree representation, a regular expression representative of URL strings of learned rules associated with a node.

10. The method of claim 1 , wherein step (c) further comprises selecting, responsive to the user of the visualizer, the second delimiter based on one or more of: the first check type, an attribute of the first tree representation, and a characteristic of the URL strings.

11. A system of generating a representation of a plurality of learned rules from a learning engine of an application firewall based on a history of uniform resource locator (URL) communications with a web server, comprising:

a learning engine of an application firewall, determining a plurality of learned rules based on a history of URL communications with a web server, each of the plurality of learned rules assigned a URL string, each URL string comprising a path to a resource; and

a visualizer executing on a device, categorizing a subset of the plurality of learned rules under a first check type of a plurality of check types, generating a first tree representation of URL strings of the subset of learned rules, each node of the first tree representation corresponding to a segment of the URL strings identified based on application of a first delimiter to the URL strings to segment the URL strings into a first plurality of segments, each of the first plurality of URL strings comprising multiple segments identified based on application of the first selected delimiter, and generating, responsive to changing the first delimiter to a second selected delimiter for the same URL strings via the visualizer responsive to a user operating the visualizer, a second tree representation of the same URL strings of the subset of learned rules change, each node of the second tree corresponding to a segment of the URL strings identified based on application of the second selected delimiter to the URL strings to segment the URL strings into a second plurality of segments, the change allowing a visual comparison of hierarchical distributions of the first plurality of segments and the second plurality of segments between the first tree and the second tree, and distributions of the subset of learned rules corresponding to the first plurality of segments and the second plurality of segments.

12. The system of claim 11 , wherein the learning engine generates a first learned rule of the plurality of learned rules based on a plurality of URL communications having a first URL string in common and assigns the first URL to the first learned rule.

13. The system of claim 11 , wherein the visualizer generates a third tree representation for a second subset of the plurality of learned rules corresponding to a second check type of the plurality of check types.

14. The system of claim 11 , wherein the visualizer generates the first tree representation based on the first delimiter, the first delimiter associated with the first check type.

15. The system of claim 11 , wherein the first delimiter is specified as belonging to a class of characters.

16. The system of claim 11 , wherein the first delimiter is specified as one of: a special character, a non-alphabetical character and a non-alphanumeric character.

17. The system of claim 11 , wherein the visualizer determines, for the first tree representation, a count of learned rules associated with a node.

18. The system of claim 11 , wherein the visualizer determines, for the first tree representation, an expression representative of URL strings of learned rules associated with a node.

19. The system of claim 11 , wherein the visualizer determines, for the first tree representation, a regular expression representative of URL strings of learned rules associated with a node.

20. The system of claim 11 , wherein the visualizer generates the second tree representation of the URL strings responsive to changing the first delimiter to the second delimiter, the second delimiter selected based on one or more of: the first check type, an attribute of the first tree representation, and a characteristic of the URL strings.

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 22, 2009
From: REDDY, ANOOP KANDI; WONG, STANLEY; GOYAL, RAGHU; GUPTA, SANJAY
To: CITRIX SYSTEMS, INC.
Reel/Frame 022987/0157 →
Continuity (1)
Related Publication 20100325588A1 · Dec 23, 2010