IP Library Granted Patent US 11,075,885
Granted Patent B2
US 11,075,885 · App. 16/788,059 · Granted Jul 27, 2021

Methods and systems for API deception environment and API traffic control and security

Inventors: Udayakumar Subbarayan (Bangalore, IN); Bernard Harguindeguy (Atherton, CA); Anoop Krishnan Gopalakrishnan (Bangalore, IN); Nagabhushana Angadi (Bengaluru, IN); Ashwani Kumar (Bengaluru, IN); Santosh Sahu (Bangalore, IN); Abdu Raheem Poonthiruthi (Bangalore, IN); Avinash Kumar Sahu (Bangalore, IN); Yasar Kundottil (Bangalore, IN)
Assignee: Ping Identity Corporation
H04L63/0281G06F21/55G06F21/554G06F21/6281G06N20/00H04L63/02H04L63/04H04L63/0807H04L63/0876H04L63/1425H04L63/1458H04L63/1491
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 11,075,885
App. No.
16/788,059
Granted
Jul 27, 2021
Kind
B2
Abstract

The present invention relates to the field of networking and API/application security. In particular, the invention is directed towards methods, systems and computer program products for Application Programming Interface (API) based flow control and API based security at the application layer of the networking protocol stack. The invention additionally provides an API deception environment to protect a server backend from threats, attacks and unauthorized access.

Claims (48)

1. An apparatus, comprising:

a memory; and

a processor of a proxy configured to receive application programing interface (API) requests from a plurality of client devices and directed to a plurality of APIs, the processor operatively coupled to the memory, the processor configured to:

receive, from a client device from the plurality of client devices, a message associated with an API request;

extract API layer data from the message to identify an API from the plurality of APIs and associated with the API request;

update, based at least in part on the API layer data, a set of client side parameters associated with a behavior of the client device; and

discard the message without sending the message to a server associated with the API when sending the message to the server would cause a value of at least one client side parameter from the set of client side parameters to exceed a threshold.

2. The apparatus of claim 1 , wherein the processor is configured to receive the message at a time, the processor is configured to define the set of client side parameters associated with the behavior of the client device based on a set of messages received from the client device prior to the time.

3. The apparatus of claim 1 , wherein the threshold is a first threshold, the processor is configured to define a set of server side parameters, the processor is configured to discard the message without sending the message to the server associated with the API when sending the message to the server would cause a value of at least one server side parameter from the set of server side parameters to exceed a second threshold.

4. The apparatus of claim 1 , wherein the processor is configured to send the message to the server associated with the API when sending the message to the server would not cause a value of at least one client side parameter from the set of client side parameters to exceed the threshold.

5. The apparatus of claim 1 , wherein the set of client side parameters includes at least one of client spike, bytes-in-spike, TCP connection spike, message spike or wild card topic substitution.

6. The apparatus of claim 1 , wherein the threshold is a first threshold, the processor is configured to define a set of server side parameters, the processor is configured to discard the message without sending the message to the server associated with the API when sending the message to the server would cause a value of at least one server side parameter from the set of server side parameters to exceed a second threshold, the set of server side parameters includes at least one of server spike, server connection, server connection queuing, bytes-out spike, or topic publisher and subscriber quota.

7. The apparatus of claim 1 , wherein the threshold is a first threshold, the processor is configured to define a set of server side parameters, the processor is configured to discard the message without sending the message to the server associated with the API when receiving a response to the message from the server would cause a value of at least one server side parameter from the set of server side parameters to exceed a second threshold.

8. A non-transitory processor-readable medium storing code representing instructions to be executed by a processor, the instructions comprising code to cause the processor to:

receive, at a proxy configured to receive application programing interface (API) requests from a plurality of client devices and directed to a plurality of APIs, a message associated with an API request from a client device from the plurality of client devices;

extract API layer data from the message to identify an API associated with the API request;

dynamically generate a decoy API associated with the API in response to identifying that the API is not from the plurality of APIs; and

route the message via the decoy API such that network communication is initiated with the client device via the decoy API and information associated with the network communication with the client device is recorded.

9. The non-transitory processor-readable medium of claim 8 , wherein the message is a first message and the API request is a first API request, the code further comprising code to cause the processor to:

receive a second message associated with a second API request;

extract API layer data from the second message to identify the API as associated the second API request; and

route the second message via the decoy API based on the second message being associated with the API.

10. The non-transitory processor-readable medium of claim 8 , further comprising code to cause the processor to:

identify the client device as suspicious in response to identifying that the API is not from the plurality of APIs.

11. The non-transitory processor-readable medium of claim 8 , wherein the message is a first message and the code to cause the processor to receive the first message includes code to cause the processor to receive the first message at a first time, the code further comprising code to cause the processor to:

identify the client device as suspicious in response to identifying that the API is not from the plurality of APIs;

receive a second message from the client device at a second time after the first time;

extract API layer data from the second message to identify an API from the plurality of APIs as associated with the second API request; and

discard the second message based on the client device being identified as suspicious.

12. The non-transitory processor-readable medium of claim 8 , wherein the decoy API is communicably isolated from a secured server backend hosting the plurality of APIs.

13. The non-transitory processor-readable medium of claim 8 , wherein the decoy API is configured to be used to identify an attack pattern associated with the client device such that an indication of the attack pattern is stored in a library of attack patterns.

14. The non-transitory processor-readable medium of claim 8 , wherein the decoy API is at least one of a representational state transfer (REST)/hypertext transfer protocol (HTTP) API, a Web Socket API, an MQ Telemetry Transport (MQTT) API, a Constrained Application Protocol (COAP) API, or an Advanced Message Queuing Protocol (AMQP) API.

15. A method, comprising:

receiving, at a proxy configured to receive application programing interface (API) requests from a plurality of client devices and directed to a plurality of APIs, a message associated with an API request from a client device from the plurality of client devices;

extracting API layer data from the message to identify an API from the plurality of APIs and associated with the API request;

updating, based at least in part on the API layer data, a set of server side parameters; and

routing the message to a server associated with the API when:

forwarding the message to the server would not cause a value of at least one server side parameter from the set of server side parameters to exceed a first threshold; and

receiving a response to the message from the server would not cause a value of at least one server side parameter from the set of server side parameters to exceed a second threshold.

16. The method of claim 15 , wherein the set of server side parameters includes at least one of server spike, server connection, server connection queuing, bytes-out spike, or topic publisher and subscriber quota.

17. The method of claim 15 , wherein the receiving is at a time, the method further comprising:

defining the set of server side parameters based on a set of messages received, prior to the time, from the plurality of client devices and a set of responses received, prior to the time, from the server.

18. The method of claim 15 , further comprising:

defining a set of client side parameters associated with a behavior of the client device, the routing including routing the message to the server associated with the API when forwarding the message to the server would not cause a value of at least one client side parameter from the set of client side parameters to exceed a third threshold.

19. The method of claim 15 , further comprising:

discarding the message without forwarding the message to the server associated with the API when forwarding the message to the server would cause a value of at least one server side parameter from the set of server side parameters to exceed the first threshold.

20. The method of claim 15 , further comprising:

discarding the message without forwarding the message to the server associated with the API when receiving the response to the message from the server would cause a value of at least one server side parameter from the set of server side parameters to exceed the second threshold.

Assignments (8)
RELEASE OF SECURITY INTEREST AT R/F 61703/0988 Recorded Nov 14, 2025
From: BLUE OWL CAPITAL CORPORATION
To: PING IDENTITY CORPORATION
Reel/Frame 073570/0777 →
SECURITY INTEREST Recorded Nov 13, 2025
From: PING IDENTITY CORPORATION; PING IDENTITY INTERNATIONAL, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 073557/0093 →
RELEASE OF SECURITY INTEREST Recorded Oct 19, 2022
From: BANK OF AMERICA, N.A.
To: PING IDENTITY CORPORATION
Reel/Frame 061709/0527 →
GRANT OF SECURITY INTEREST IN PATENT RIGHTS Recorded Oct 18, 2022
From: PING IDENTITY CORPORATION
To: OWL ROCK CAPITAL CORPORATION, AS COLLATERAL AGENT
Reel/Frame 061703/0988 →
SECURITY INTEREST Recorded Nov 23, 2021
From: PING IDENTITY CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 058944/0687 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 12, 2020
From: ELASTIC BEAM, LLC
To: PING IDENTITY CORPORATION
Reel/Frame 051800/0205 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 12, 2020
From: SUBBARAYAN, UDAYAKUMAR; HARGUINDEGUY, BERNARD; GOPALAKRISHNAN, ANOOP KRISHNAN; POONTHIRUTHI, ABDU RAHEEM; KUMAR, ASHWANI; ANGADI, NAGABHUSHANA; SAHU, SANTOSH; SAHU, AVINASH KUMAR; KUNDOTTIL, YASAR
To: ELASTIC BEAM, INC.
Reel/Frame 051910/0798 →
CHANGE OF NAME Recorded Feb 12, 2020
From: ELASTIC BEAM INC.
To: ELASTIC BEAM, LLC
Reel/Frame 051910/0903 →
Priority Claims (1)
IN 201611036787 · Oct 26, 2016 · national
Continuity (2)
Continuation 15792850 · Oct 25, 2017
Related Publication 20200177556A1 · Jun 4, 2020