IP Library Granted Patent US 10,193,867
Granted Patent B2
US 10,193,867 · App. 15/164,587 · Granted Jan 29, 2019

Methods and systems for API proxy based adaptive security

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 10,193,867
App. No.
15/164,587
Granted
Jan 29, 2019
Kind
B2
Abstract

The invention concerns API proxy based adaptive security. The invention implements adaptive security for API servers, while avoiding data bottlenecks and maintaining client experience. The invention provides methods and configurations for API security that may be employed at proxies for implementing routing decisions involving client messages received at said proxies. The invention also involves generating or collecting at proxies, log information that captures data corresponding to received client messages and responses from API servers—which log information correlates communications between clients, proxies and backend API servers, and includes data relevant for purposes generating API metrics and identifying anomalies and/or indicators of compromise. The invention yet further provides security server clusters configured for generating API metrics and/or identify anomalies or indicators of compromise—which may be used by proxies to terminate existing connections and block subsequent requests or messages from clients associated with the identified anomalies or indicators of compromise.

Claims (42)

1. A method for securing one or more API servers, the method comprising:

receiving at a first security server within a cluster of security servers, a first set of information comprising proxy access log information from at least a first proxy within a proxy cluster;

analysing the first set of information for identifying a first set of indicators of compromise;

receiving at a second security server within the cluster of security servers, a second set of information comprising proxy access log information from at least a second proxy within the proxy cluster;

analysing the second set of information for identifying a second set of indicators of compromise;

responsive to receiving an indicator of compromise at a proxy within the proxy cluster, discarding a received client message corresponding to a client or connection id associated with the received indicator of compromise, without onward transmission to an API server identified in the received client message;

wherein the proxy cluster comprises a networked plurality of proxies, wherein each of the plurality of proxies is configured to extract information identifying a target API from data packets corresponding to a received client message, and to transmit the received client message to an API server implementing the target API; and

wherein at least one of the first set of information and the second set of information is acquired by:

capturing at each protocol specific data plane or TCP port specific data plane within the first proxy or second proxy, real time API traffic data routed through said data plane; and

for each data plane, generating a log uniquely corresponding to said data plane, wherein said log comprises captured real time API traffic data routed through said data plane; and persisting each generated log file along with a unique id associated with the generated log.

2. The method as claimed in claim 1 , wherein the first set of indicators of compromise and the second set of indicators of compromise are persisted to a database.

3. The method as claimed in claim 1 , further comprising receiving the first set of indicators of compromise and the second set of indicators of compromise at each of the first proxy and the second proxy.

4. The method as claimed in claim 1 , wherein:

the first set of information received from at least the first proxy includes one or more of API characteristics data definitions, configuration data, session data and security data associated with at least the first proxy; and

the second set of information received from at least the second proxy includes one or more of API characteristics data definitions, configuration data, session data and security data associated with at least the second proxy.

5. The method as claimed in claim 1 , further comprising one or more of generating API metrics, generating blocked connection metrics, generating back end error code metrics based on said first and second sets of information.

6. The method as claimed in claim 1 , wherein:

at least one data plane within the first proxy or second proxy has a plurality of sub-processes uniquely associated therewith; and

capturing real time API traffic data routed through said data plane comprises:

for each sub-process associated with said data plane, generating a log uniquely corresponding to said sub-process, wherein said log comprises real time API traffic data routed by said sub-process; and

assigning a unique id to each log associated with each sub-process.

7. A computer program product for securing one or more API servers, comprising a non-transitory computer usable medium having a computer readable program code embodied therein, the computer readable program code comprising instructions for:

receiving at a first security server within a cluster of security servers, a first set of information comprising proxy access log information from at least a first proxy within a proxy cluster;

analysing the first set of information for identifying a first set of indicators of compromise;

receiving at a second security server within the cluster of security servers, a second set of information comprising proxy access log information from at least a second proxy within the proxy cluster;

analysing the second set of information for identifying a second set of indicators of compromise;

responsive to receiving an indicator of compromise at a proxy within the proxy cluster, discarding a received client message corresponding to a client or connection id associated with the received indicator of compromise, without onward transmission to an API server identified in the received client message;

wherein the proxy cluster comprises a networked plurality of proxies, wherein each of the plurality of proxies is configured to extract from data packets corresponding to a received client message, information identifying a target API and to transmit the received client message to an API server implementing the target API; and

wherein at least one of the first set of information and the second set of information is acquired by:

capturing at each protocol specific data plane or TCP port specific data plane within the first proxy or second proxy, real time API traffic data routed through said data plane; and

for each data plane, generating a log uniquely corresponding to said data plane, wherein said log comprises captured real time API traffic data routed through said data plane; and persisting each generated log file along with a unique id associated with the generated log.

8. A system for securing one or more API servers, the system comprising:

a cluster of security servers comprising at least a first security server and a second security server, said cluster of security servers configured to:

receive at the first security server within the cluster of security servers, a first set of information comprising proxy access log information from at least a first proxy within a proxy cluster;

analyse the first set of information for identifying a first set of indicators of compromise;

receive at the second security server within the cluster of security servers, a second set of information comprising proxy access log information from at least a second proxy within the proxy cluster;

analyse the second set of information for identifying a second set of indicators of compromise;

responsive to receiving an indicator of compromise at a proxy within the proxy cluster, initiate discarding of a received client message corresponding to a client or connection id associated with the received indicator of compromise, without onward transmission to an API server identified in the received client message;

wherein the proxy cluster comprises a networked plurality of proxies, wherein each of the plurality of proxies is configured to extract information identifying a target API from data packets corresponding to a received client message, and to transmit the received client message to an API server implementing the target API; and

wherein at least one of the first set of information and the second set of information is acquired by:

capturing at each protocol specific data plane or TCP port specific data plane within the first proxy or second proxy, real time API traffic data routed through said data plane; and

for each data plane, generating a log uniquely corresponding to said data plane, wherein said log comprises captured real time API traffic data routed through said data plane; and persisting each generated log file along with a unique id associated with the generated log.

Assignments (10)
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 →
RELEASE OF SECURITY INTEREST Recorded Nov 23, 2021
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: PING IDENTITY CORPORATION
Reel/Frame 058195/0557 →
PATENT SECURITY AGREEMENT Recorded Dec 12, 2019
From: PING IDENTITY CORPORATION
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 051271/0247 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 2, 2018
From: ELASTIC BEAM, LLC
To: PING IDENTITY CORPORATION
Reel/Frame 045693/0014 →
ENTITY CONVERSION Recorded Apr 12, 2018
From: ELASTIC BEAM INC.
To: ELASTIC BEAM, LLC
Reel/Frame 045932/0120 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 29, 2018
From: SUBBARAYAN, UDAYAKUMAR; HARGUINDEGUY, BERNARD; GOPALAKRISHNAN, ANOOP KRISHNAN; POONTHIRUTHI, ABDU RAHEEM
To: ELASTIC BEAM, INC.
Reel/Frame 045781/0648 →