IP Library Granted Patent US 7,617,531
Granted Patent B1
US 7,617,531 · App. 10/782,529 · Granted Nov 10, 2009

Inferencing data types of message components

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 7,617,531
App. No.
10/782,529
Granted
Nov 10, 2009
Kind
B1
Abstract

A security gateway receives messages and extracts components thereof, typically in the form of field name-value pairs. The security gateway determines a data type of the values for individual field names to infer the most restrictive data type of the values for that field. The security gateway may then generates rules, which would block messages that do not have values that match the most restrictive data type. Since the most restrictive data type defines a data type of values for the field as narrowly as possible, the generated rules will make it more difficult for an intruder to guess a valid data type of a value. Since messages that have values that do not match the most restrictive data type are likely to represent malicious attacks, the more narrowly the data type of values is defined, the greater the number of illegitimate messages that will be blocked.

Claims (42)

1. A method of a device for filtering messages routed across a network, the messages including field name-value pairs, the method comprising:

extracting, by a filter configured on a device, field name-value pairs from messages received via a network;

determining, by a learning engine configured on the device, a most restrictive data type of values from a plurality of data types of values for a field name of the extracted field name-value pairs;

determining, by the learning engine, a match factor for a data type, the match factor indicating a fraction of values for the same field name that match the data type;

selecting, by the learning engine, a data type having a match factor exceeding a threshold and having no child data types with a match factor exceeding the threshold; and

storing, by the device, the most restrictive data type in association with the field name.

2. The method of claim 1 , further comprising:

generating, by the learning engine, a rule which would allow messages having values of a field name that match the most restrictive data type.

3. The method of claim 2 , further comprising:

applying, by the learning engine, the rule to determine whether to allow messages having values for a field name that match the most restrictive data type.

4. The method of claim 1 , wherein the threshold is a fraction of values for the same field name which should match the data type.

5. A method of a device for filtering Uniform Resource Locator (URL) messages routed across a network, wherein the messages include URL components, the method comprising:

extracting, by a filter configured on a device, URL components from messages received via a network;

determining, by a learning engine configured on the device, for URL components at a same level, with a same root URL component, a most restrictive data type from a plurality of data types of extracted URL components at the same level;

determining, by the learning engine, a match factor for a data type the match factor indicating a fraction of URL components at the same level, with the same root URL component that matches the data type; and

selecting, by the learning engine, a data type having a match factor exceeding a threshold and having no child data types with a match factor exceeding the threshold; and

storing, by the learning engine, the most restrictive data type in association with the URL components at the same level.

6. The method of claim 5 , further comprising:

generating, by the learning engine, a rule which would allow messages having the URL components that match the most restrictive data type.

7. The method of claim 6 , further comprising:

applying, by the learning engine, the rule to determine whether to allow messages having the URL components that match the most restrictive data type.

8. The method of claim 5 , wherein the threshold is a fraction of URL components at the same level, with the same root URL component, which should match the data type.

9. A method of a device for inferencing a data type of scalar objects from messages routed across a network, the method comprising:

identifying, by a message filter configured on a device, scalar objects from messages received via a network, each of the scalar objects having a data type from a plurality of data types;

determining, by learning engine configured on the device, a match factor for a each data type of the scalar objects, the match factor indicating a fraction of the scalar objects that match the data type; and

selecting, by the learning engine, a most restrictive data type from the plurality of data types of the scalar objects, the most restrictive data type having a match factor exceeding a threshold and having no child data types with a match factor exceeding the threshold.

10. The method of claim 9 , wherein the threshold is a fraction of scalar objects which should match the data type.

11. A system for inferencing a data type of scalar objects from messages routed across a network, the system comprising:

a learning engine configured in a device for determining a match factor for each data type of the scalar objects, the match factor indicating a fraction of scalar objects identified from messages received via a network that match the data type; and

wherein the learning engine the device selects a most restrictive data type from a plurality of data types of the scalar objects, the most restrictive data type having a match factor exceeding a threshold and having no child data types with a match factor exceeding the threshold.

12. A system for filtering messages routed across a network, the messages including field name-value pairs, the system comprising:

a learning engine configured on a device, for extracting field name-value pairs from messages received via a network, determining, a most restrictive data type of values from a plurality of data types of values for a field name from the extracted field name-value pairs, and storing the most restrictive data type in association with the field name, determining a match factor for a data type, the match factor indicating a fraction of values for the same field name that match the data type, and selecting a data type having a match factor exceeding a threshold and having no child data types with a match factor exceeding the threshold; and

a message filter configured on the device, for generating a rule which would allow messages having values of a field name that match the most restrictive data type.

13. The system of claim 12 , wherein the learning engine is further adapted to generate a rule which would allow messages having values of a field name that match the most restrictive data type.

14. The system of claim 12 , wherein the message filter is further adapted to apply the rule to determine whether to allow messages having values for a field name that match the most restrictive data type.

15. The system of claim 12 , wherein the threshold is a fraction of values for the same field name which should match the data type.

16. A system for filtering Uniform Resource Locator (URL) messages routed across a network, wherein the messages include URL components, the system comprising:

a learning engine configured on a device, for extracting URL components from messages received from a network, determining, for URL components at a same level, with a same root URL component, a most restrictive data type from a plurality of data types of URL components at the same level, and storing the most restrictive data type in association with the URL components at the same level, determining a match factor for a data type the match factor indicating a fraction of URL components at the same level with the same root URL component, that match the data type, and selecting a data type having a match factor exceeding a threshold and having no child data types with a match factor exceeding the threshold; and

a message filter configured on the device, for generating a rule which would allow messages having the URL components that match the most restrictive data type.

17. The system of claim 16 , wherein the learning engine is further adapted to generate a rule which would allow messages having the URL components that match the most restrictive data type.

18. The system of claim 16 , wherein the message filter is further adapted to apply the rule to determine whether to allow messages having the URL components that match the most restrictive data type.

19. The system of claim 16 , wherein the threshold is a fraction of URL components at the same level, with the same root URL component, which should match the data type.

Assignments (10)
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 →
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 →
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 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 →
NUNC PRO TUNC ASSIGNMENT Recorded Dec 15, 2011
From: TEROS, INC.
To: CITRIX SYSTEMS, INC.
Reel/Frame 027388/0146 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2004
From: CHAUHAN, ABHISHEK; MIRANI, RAJIV; KOHLI, PRINCE; SIKKA, NAMIT
To: TEROS, INC.
Reel/Frame 015391/0688 →