IP Library Granted Patent US 9,166,942
Granted Patent B2
US 9,166,942 · App. 13/958,174 · Granted Oct 20, 2015

Identification of patterns in stateful transactions

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,166,942
App. No.
13/958,174
Granted
Oct 20, 2015
Kind
B2
Abstract

A system for the identification of patterns in stateful transactions may include a message interceptor, a message pattern processor, a message handler, and a memory. The message interceptor may be operative to intercept messages transmitted by a first device over a network to a recipient. The message interceptor may be operative to intercept the messages before the messages are received by the recipient. The message pattern processor may be operative to add the message to a message pattern and store the message pattern in a memory. The message pattern processor may compare the message pattern to a plurality of exemplary message patterns and identify when the message pattern matches at least one of the exemplary message patterns. The message handler may be operative to determine an action to take with respect to the message based on the at least one matching exemplary message pattern identified by the message pattern processor.

Claims (57)

1. A method of identifying a pattern in a plurality of messages, the method comprising:

for each message of the plurality of messages transmitted by a first device to a recipient over a network:

(a) intercepting the message prior to receipt by the recipient;

(b) adding, with a processor as each message of the plurality of messages is intercepted, a descriptor representative of the message to a message pattern;

(c) comparing the message pattern to a plurality of exemplary message patterns;

(d) identifying when the message pattern matches at least one of the exemplary message patterns; and

(e) determining an action to take with respect to the message based on the identifying.

2. The method of claim 1 , further comprising:

(f) intercepting a response sent by the recipient to the first device in response to the message, prior to receipt by the first device;

(g) adding a descriptor representative of the response to the message pattern;

(c) comparing the message pattern to the plurality of exemplary message patterns;

(d) identifying when the message pattern matches at least one of the exemplary message patterns; and

(e) determining an action to take with respect to the response based on the identifying.

3. The method of claim 1 , wherein the plurality of exemplary message patterns comprise valid message patterns, the action comprising allowing the message to continue to the recipient when the message pattern matches at least one of the exemplary message patterns and preventing the message from reaching the recipient when the message pattern fails to match at least one of the exemplary message patterns.

4. The method of claim 1 , wherein the plurality of exemplary message patterns comprise invalid message patterns, the action comprising allowing the message to continue to the recipient when the message pattern fails to match at least one of the exemplary message patterns and preventing the message from reaching the recipient when the message pattern matches at least one of the exemplary message patterns.

5. The method of claim 1 , wherein each of the plurality of exemplary message patterns comprises a regular expression.

6. The method of claim 1 , wherein the plurality of messages comprises a session initiation protocol.

7. The method of claim 1 , wherein the plurality of messages establish a session between the first device and the recipient, the session being characterized by a state, each message of the plurality of messages being capable of altering the state of the session, the identifying further determining when the state of the session changes from a first state to a second state based on the message.

8. A system for identifying a pattern in a plurality of messages, the system comprising:

(a) means for intercepting each message of the plurality of messages transmitted by a first device to a recipient over a network prior to receipt by the recipient;

(b) means for adding, as each message of the plurality of messages is intercepted, a descriptor representative of the message to a message pattern;

(c) means for comparing the message pattern to a plurality of exemplary message patterns after each addition;

(d) means for identifying when the message pattern matches at least one of the exemplary message patterns after each comparison; and

(e) means for determining an action to take with respect to the message based on the identifying after each identification.

9. The system of claim 8 , further comprising:

(f) means for intercepting a response sent by the recipient to the first device in response to the message, prior to receipt by the first device;

(g) means for adding a descriptor representative of the response to the message pattern;

(c) means for comparing the message pattern to the plurality of exemplary message patterns;

(d) means for identifying when the message pattern matches at least one of the exemplary message patterns; and

(e) means for determining an action to take with respect to the response based on the identifying.

10. The system of claim 8 , wherein the plurality of exemplary message patterns comprise valid message patterns, the action comprising means for allowing the message to continue to the recipient when the message pattern matches at least one of the exemplary message patterns and means for preventing the message from reaching the recipient when the message pattern fails to match at least one of the exemplary message patterns.

11. The system of claim 8 , wherein the plurality of exemplary message patterns comprise invalid message patterns, the action comprising means for allowing the message to continue to the recipient when the message pattern fails to match at least one of the exemplary message patterns and means for preventing the message from reaching the recipient when the message pattern matches at least one of the exemplary message patterns.

12. A method for the identification of patterns in stateful transactions, the method comprising:

(a) identifying a plurality of exemplary message patterns, wherein each exemplary message pattern comprises a specification describing a sequence of messages for a transaction over a network;

(b) intercepting a message from a first device intended to be communicated over the network to a second device;

(c) adding a descriptor of the message as the message is intercepted to a current message pattern, wherein the current message pattern comprises a specification describing a sequence of intercepted messages associated with a current transaction over the network between the first device and the second device;

(d) determining whether the current message pattern matches an exemplary message pattern of the plurality of exemplary message patterns; and

(e) communicating the message to the second device or preventing the message from being communicated to the second device based on the determining.

13. The method of claim 12 further comprising:

(f) removing the descriptor of the message from the current message pattern if the current message pattern does not match one of the plurality of exemplary message patterns; and

(g) repeating steps (b)-(f).

14. The method of claim 12 wherein the plurality of exemplary message patterns comprises a plurality of exemplary session initiation protocol message patterns.

15. The method of claim 12 wherein determining whether the current message pattern matches one of the plurality of exemplary message patterns further comprises using a regular expression engine to determine whether the current message pattern matches one of the plurality of exemplary message patterns.

16. A method of preventing fraudulent signals in session initiation protocol transactions, the method comprising:

providing a packet monitoring device to intercept a plurality of packets intended to be communicated to a session initiation protocol proxy server;

intercepting the plurality of packets intended to be communicated to the session initiation protocol proxy server;

performing a deep packet inspection on the plurality of packets to identify a session initiation protocol signal;

processing the session initiation protocol signal to determine whether the session initiation protocol signal is fraudulent; and

dropping the plurality of packets if the session initiation protocol signal is determined to be fraudulent, otherwise allowing the plurality of packets to be communicated to the intended session initiation protocol proxy server,

wherein a header of the session initiation protocol signal comprises a uniform resource identifier, a branch parameter and a command sequence parameter, and a transaction identifier of the session initiation protocol signal is determined by calculating a 32-bit hash of the uniform resource identifier, the branch parameter and the command sequence parameter.

17. The method of claim 16 further comprising storing the session initiation protocol signal in a data store.

18. The method of claim 16 further comprising:

processing a header of the session initiation protocol signal to determine a transaction identifier of the session initiation protocol signal;

determining whether the transaction identifier of the session initiation protocol signal matches a transaction identifier of at least one session initiation protocol signal stored in a data store; and

allowing the plurality of packets to be communicated to the intended session initiation protocol proxy server if the transaction identifier matches the transaction identifier of at least one session initiation protocol signal stored in the data store, otherwise dropping the plurality of packets.

19. The method of claim 17 further comprising:

determining a number of session initiation protocol signals in the data store received over a period of time having a transaction identifier matching the transaction identifier of an intercepted signal dropping the plurality of packets if the determined number of session initiation protocol signals exceeds a rate limit, otherwise allowing the plurality of packets to be communicated to the intended session initiation protocol proxy server.

Assignments (11)
RELEASE OF SECURITY INTEREST Recorded May 16, 2024
From: STIFEL BANK
To: LOOKINGGLASS CYBER SOLUTIONS, LLC
Reel/Frame 067429/0361 →
RELEASE OF SECURITY INTEREST Recorded Apr 17, 2024
From: EASTWARD FUND MANAGEMENT, LLC
To: LOOKINGGLASS CYBER SOLUTIONS, INC.; CLOUDSHIELD TECHNOLOGIES, LLC; CYVEILLANCE, INC.
Reel/Frame 067131/0715 →
RELEASE OF SECURITY INTEREST Recorded Apr 17, 2024
From: EASTWARD FUND MANAGEMENT, LLC
To: LOOKINGGLASS CYBER SOLUTIONS, INC.; CLOUDSHIELD TECHNOLOGIES, LLC; CYVEILLANCE, INC.
Reel/Frame 067131/0803 →
RELEASE OF SECURITY INTEREST Recorded Mar 3, 2023
From: SILICON VALLEY BANK
To: CLOUDSHIELD TECHNOLOGIES, LLC
Reel/Frame 062872/0851 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 1, 2023
From: CLOUDSHIELD TECHNOLOGIES, LLC
To: LOOKINGGLASS CYBER SOLUTIONS, INC.
Reel/Frame 062847/0569 →
SECURITY INTEREST Recorded May 11, 2022
From: CLOUDSHIELD TECHNOLOGIES, LLC
To: EASTWARD FUND MANAGEMENT, LLC
Reel/Frame 059892/0963 →
SECURITY INTEREST Recorded Aug 24, 2021
From: CLOUDSHIELD TECHNOLOGIES, LLC
To: SILICON VALLEY BANK
Reel/Frame 057274/0638 →
SECURITY INTEREST Recorded Jul 12, 2021
From: CLOUDSHIELD TECHNOLOGIES, LLC
To: EASTWARD FUND MANAGEMENT
Reel/Frame 056823/0269 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 8, 2018
From: CLOUDSHIELD TECHNOLOGIES, LLC
To: LOOKINGGLASS CYBER SOLUTIONS, INC.
Reel/Frame 047205/0192 →
RELEASE OF SECURITY INTEREST Recorded Jul 21, 2016
From: PACIFIC WESTERN BANK
To: CLOUDSHIELD TECHNOLOGIES, LLC
Reel/Frame 039214/0024 →
SECURITY INTEREST Recorded Nov 19, 2015
From: CLOUDSHIELD TECHNOLOGIES, LLC
To: PACIFIC WESTERN BANK
Reel/Frame 037094/0199 →