IP Library Granted Patent US 10,050,935
Granted Patent B2
US 10,050,935 · App. 14/691,540 · Granted Aug 14, 2018

Using individualized APIs to block automated attacks on native apps and/or purposely exposed APIs with forced user interaction

Inventor: Marc Hansen (Mountain View, CA)
Assignee: Shape Security, Inc.
H04L63/0245H04L63/0227H04L63/1441H04L63/0442H04L63/10H04L63/20H04W12/08H04W12/12
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,050,935
App. No.
14/691,540
Granted
Aug 14, 2018
Kind
B2
Abstract

An API call filtering system filters responses to API call requests received, via a network, from UEs. The API call filtering system is configured to require personalized API call requests wherein each API call (except for some minor exceptions) includes a unique UE identifier (“UEIN”) of the UE making the request. Using the UEIN, the web service or other service protected by the API call filtering system can be secured against excessive request iterations from a set of rogue UEs while allowing for ordinary volumes of requests of requests the UEs, wherein one or more boundaries between what is deemed to be an ordinary volume of requests and what is deemed to be excessive request iterations are determined by predetermined criteria.

Claims (45)

1. A method comprising:

storing data regarding a plurality of unique end-point identifiers (UEINs) associated with a plurality of computing devices, wherein the plurality of UEINs includes a UEIN associated with a particular computing device;

receiving, from a computing device, a request comprising the UEIN and a challenge response;

based on the challenge response and the UEIN, verifying that the computing device is the particular computing device associated with the UEIN;

determining whether the UEIN is associated with a high volume of requests;

based on determining that the UEIN is associated with a high volume of requests, determining that the request is from an unauthorized user;

in response to determining that the request is from an unauthorized user, adding the UEIN to a plurality of unauthorized UEINs and blocking the request;

wherein requests received with a UEIN in the plurality of unauthorized UEINs are blocked;

wherein the method is performed by one or more computing devices.

2. The method of claim 1 ,

wherein the request is an application programming interface (API) call corresponding to an API service;

wherein one or more requests that are not blocked are forwarded to the API service.

3. The method of claim 1 , further comprising:

prior to receiving the request, receiving a set of data from the particular computing device indicating successful performance of a non-automatable step;

in response to the set of data indicating the successful performance of the non-automatable step, associating the UEIN with the particular computing device.

4. The method of claim 1 , wherein the UEIN is generated by the particular computing device.

5. The method of claim 1 , wherein determining whether the UEIN is associated with a high volume of requests includes applying a rule for distinguishing excessive request volumes from ordinary request volumes.

6. The method of claim 1 , wherein determining whether the UEIN is associated with a high volume of requests includes determining whether requests associated with the UEIN exceed a threshold.

7. The method of claim 1 , wherein the UEIN uniquely identifies a particular instance of an application running on the particular computing device.

8. The method of claim 7 , wherein the request comprises a modified API call, generated by the particular instance of the application, that uniquely identifies the particular instance of the application running on the particular computing device.

9. The method of claim 1 , further comprising:

receiving, from a second computing device, a second request, a second UEIN, and a second challenge response, wherein the second UEIN is associated with a second specific computing device prior to receiving the second request;

based on second challenge response, verifying that the second computing device is not the second specific computing device associated with the second UEIN;

blocking the second API call associated with the second UEIN.

10. A system for identifying and blocking unauthorized requests based on request volume comprising:

one or more hardware processors;

memory coupled to the one or more hardware processors and storing one or more instructions which, when executed by the one or more hardware processors, cause the one or more hardware processors to:

store data regarding a plurality of unique end-point identifiers (UEINs) associated with a plurality of computing devices, wherein the plurality of UEINs includes a UEIN associated with a particular computing device;

receive, from a computing device, a request comprising the UEIN and a challenge response;

based on the challenge response, verify that the computing device is the particular computing device associated with the UEIN;

determine whether the UEIN is associated with a high volume of requests;

based on determining that the UEIN is associated with a high volume of requests, determine that the request is from an unauthorized user;

in response to determining that the request is from an unauthorized user, add the UEIN to a plurality of unauthorized UEINs and block the request;

wherein requests received with a UEIN in the plurality of unauthorized UEINs are blocked.

11. The system of claim 10 ,

wherein the request is an application programming interface (API) call corresponding to an API service;

wherein one or more requests that are not blocked are forwarded to the API service.

12. The system of claim 10 , wherein the one or more instructions, when executed by the one or more hardware processors, cause the one or more processors to:

prior to receiving the request, receive a set of data from the particular computing device indicating successful performance of a non-automatable step;

in response to the set of data indicating the successful performance of the non-automatable step, associating the UEIN with the particular computing device.

13. The system of claim 10 , wherein the UEIN is generated by the particular computing device.

14. The system of claim 10 , wherein determining whether the UEIN is associated with a high volume of requests includes applying a rule for distinguishing excessive request volumes from ordinary request volumes.

15. The system of claim 10 , wherein determining whether the UEIN is associated with a high volume of requests includes determining whether requests associated with the UEIN exceed a threshold.

16. The system of claim 10 , wherein the UEIN uniquely identifies a particular instance of an application running on the particular computing device.

17. The system of claim 16 , wherein the request comprises a modified API call, generated by the particular instance of the application, that uniquely identifies the particular instance of the application running on the particular computing device.

Assignments (3)
RELEASE OF SECURITY INTEREST Recorded Mar 5, 2019
From: SILICON VALLEY BANK
To: SHAPE SECURITY, INC.
Reel/Frame 048501/0115 →
SECURITY INTEREST Recorded May 25, 2018
From: SHAPE SECURITY, INC.
To: SILICON VALLEY BANK
Reel/Frame 046243/0254 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 13, 2015
From: HANSEN, MARC
To: SHAPE SECURITY, INC.
Reel/Frame 037037/0004 →
Continuity (2)
Continuation In Part 14327461 · Jul 9, 2014
Related Publication 20160014084A1 · Jan 14, 2016
Cited By (1)
US 12,591,894