IP Library Granted Patent US 10,715,548
Granted Patent B2
US 10,715,548 · App. 15/784,532 · Granted Jul 14, 2020

Detecting device masquerading in application programming interface (API) transactions

Inventor: Sreenath Kurupati (Sunnyvale, CA)
Assignee: Akamai Technologies, Inc.
H04L63/1466H04L63/0876H04L63/1425
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,715,548
App. No.
15/784,532
Granted
Jul 14, 2020
Kind
B2
Abstract

This disclosure describes a technique to determine whether a client computing device accessing an API is masquerading its device type (i.e., pretending to be a device that it is not). To this end, and according to this disclosure, the client performs certain processing requested by the server to reveal its actual processing capabilities and thereby its true device type, whereupon—once the server learns the true nature of the client device—it can take appropriate actions to mitigate or prevent further damage. To this end, during the API transaction the server returns information to the client device that causes the client device to perform certain computations or actions. The resulting activity is captured on the client computing and then transmitted back to the server, which then analyzes the data to inform its decision about the true client device type. Thus, when the server detects the true client device type (as opposed to the device type that the device is masquerading to be), it can take appropriate action to defend the site.

Claims (22)

1. A method to mitigate automated attacks directed to a computing platform environment, comprising:

responsive to receipt of a request associated with an automated interaction between a requesting client and a server, wherein the request has associated therewith a device type as represented to the server by the requesting client, returning to the requesting client information that manipulates the client to perform client-side computations;

responsive to receipt during the automated interaction of data collected by the requesting client as a result of performing the client-side computations, determining whether the device type of the requesting client as represented to the server is correct; and

based on a determination that the device type as represented by the requesting client is not correct, taking a blocking or mitigation action.

2. The method as described in claim 1 wherein the automated interaction is an application programming interface (API) transaction.

3. The method as described in claim 1 wherein the data collected by the requesting client comprise performance statistics.

4. The method as described in claim 3 wherein the performance statistics are statistics regarding a computational efficiency of a central processing unit (CPU) of the requesting client.

5. The method as described in claim 3 wherein determining whether the device type is correct analyzes the performance statistics against a set of expected performance statistics associated with the requesting client.

6. The method as described in claim 1 further including receiving the device type as represented by the client device in a Hypertext Transfer Protocol (HTTP) request header.

7. The method as described in claim 1 wherein the server is one of: a web server, and a mobile server.

8. The method as described in claim 1 wherein the information is a client-side script.

9. A computer program product in a non-transitory computer readable medium comprising computer program instructions executable by a hardware processor and configured to:

respond to receipt of a request associated with an automated interaction between a requesting client and a server, wherein the request has associated therewith a device type as represented to the server by the requesting client, return to the requesting client information that manipulates the client to perform client-side computations;

respond to receipt during the automated interaction of data collected by the requesting client as a result of performing the client-side computations, determine whether the device type of the requesting client as represented to the server is correct; and

based on a determination that the device type as represented by the requesting client is correct, take a blocking or mitigation action.

10. The computer program product as described in claim 9 wherein the automated interaction is an application programming interface (API) transaction.

11. The computer program product as described in claim 9 wherein the data collected by the requesting client comprise performance statistics.

12. The computer program product as described in claim 11 wherein the performance statistics are statistics regarding a computational efficiency of a central processing unit (CPU) of the requesting client.

13. The computer program product as described in claim 11 wherein the computer program instructions configured to determine whether the device type is correct analyze the performance statistics against a set of expected performance statistics associated with the requesting client.

14. The computer program product as described in claim 9 wherein the computer program instructions are executed in an edge server of an overlay network.

15. The method as described in claim 1 wherein determining whether the device type of the requesting client as represented to the server is correct includes identifying a true device type of the requesting client.

16. The computer program product as described in claim 9 wherein the computer program instructions configured to determine whether the device type of the requesting client as represented to the server is correct identify a true device type of the requesting client.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 28, 2020
From: KURUPATI, SREENATH
To: AKAMAI TECHNOLOGIES, INC.
Reel/Frame 053328/0292 →
Continuity (2)
Provisional Application 62409240 · Oct 17, 2016
Related Publication 20180109559A1 · Apr 19, 2018