IP Library › Granted Patent US 11,886,590
Granted Patent B2
US 11,886,590 · App. 17/473,490 · Granted Jan 30, 2024

Emulator detection using user agent and device model learning

Inventors: Zhe Chen (Singapore, SG); Hewen Wang (Singapore, SG); Quan Jin Ferdinand Tang (Singapore, SG); Solomon kok how Teo (Singapore, SG); Yuzhen Zhuo (Singapore, SG); Serafin Trujillo (San Jose, CA); Mandar Ganaba Gaonkar (San Jose, CA); Omkumar Mahalingam (Santa Clara, CA); Kenneth Bradley Snyder (San Jose, CA)
Assignee: PAYPAL, INC.
G06F21/566G06F18/2148G06F18/2413G06F40/205G06F2221/034
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,886,590
App. No.
17/473,490
Granted
Jan 30, 2024
Kind
B2
Abstract

Systems and methods for emulator detection are disclosed. In one embodiment, a user agent string may be embedded into a first numerical data vector representation. Hardware characteristics of a client device corresponding to the user agent may be embedded into a second numerical data vector representation. Based on the first numerical data vector representation of the user agent and the second numerical data vector representation of the hardware characteristics, and their consistency, the client device may be determined to be an emulator or a non-emulator device.

Claims (63)

1. A computer system comprising:

a non-transitory memory storing instructions; and

one or more hardware processors configured to read the instructions and cause the computer system to perform operations comprising:

receiving, from a client device, a user agent string corresponding to a user agent computer application that has requested access to a resource associated with the computer system;

embedding the user agent string into a first numerical data vector representation of the user agent computer application;

obtaining, from the client device, one or more hardware characteristics of the client device;

predicting a device model for the client device based on the one or more hardware characteristics;

embedding device model features extracted from the device model prediction into a second numerical data vector representation; and

determining whether the client device is using an emulator based on the first numerical data vector representation and the second numerical data vector representation.

2. The computer system of claim 1 , wherein the operations further comprise:

combining the first numerical data vector representation and the second numerical data vector representation into a third numerical data vector representation; and

providing the third numerical data vector representation to a classifier trained to predict whether a client device is using an emulator.

3. The computer system of claim 2 , wherein the first numerical data vector representation and the second numerical data vector representation are combined using concatenation.

4. The computer system of claim 2 , wherein the predicting the device model and the embedding the device model prediction into the second numerical data vector representation are performed by an artificial neural network prior to an activation function of the artificial neural network.

5. The computer system of claim 1 , wherein the one or more hardware characteristics comprises at least one of battery characteristics, central processing unit (CPU) characteristics, memory characteristics, screen characteristics, disk characteristics, or sensor characteristics.

6. The computer system of claim 1 , wherein the operations further comprise training a device model embedder by:

extracting hardware data from non-emulator payloads;

extracting device model data by parsing user agent strings of the non-emulator payloads;

labeling the extracted hardware data with the corresponding extracted device model data to generate training data; and

providing the training data to a machine learning model that teaches the machine learning model how to predict the device model for the client device based on the one or more hardware characteristics.

7. The computer system of claim 1 , wherein the embedding the user agent string into a first numerical data vector representation of the user agent computer application is performed using a sentence embedding algorithm.

8. A method comprising

receiving, by a computer system from a client device, a user agent string corresponding to a user agent computer application that has requested access to a resource associated with the computer system;

embedding, by the computer system, the user agent string into a first numerical data vector representation of the user agent computer application;

obtaining, from the client device, one or more hardware characteristics of the client device;

providing the one or more hardware characteristics to a prediction model;

extracting a second numerical data vector representation output from the prediction model corresponding to features of a predicted device model for the client device; and

determining whether the client device is using an emulator based on the first numerical data vector representation and the second numerical data vector representation.

9. The method of claim 8 , further comprising extracting, by the computer system, the user agent string from a Hypertext Transfer Protocol (HTTP) request.

10. The method of claim 8 , further comprising preventing the client device from accessing the resource in response to determining that the client device is using an emulator.

11. The method of claim 8 , wherein the embedding the user agent string into the first numerical data vector representation comprises:

generating a plurality of character n-grams based on the user agent string;

hashing, via a hashing function, each of the plurality of character n-grams; and

embedding the hashed character n-grams into the first numerical data vector representation of the user agent computer application.

12. The method of claim 8 , wherein the embedding the user agent string into the first numerical data vector representation is performed using a FastText sentence embedding algorithm.

13. The method of claim 8 , wherein the determining whether the client device is using an emulator comprises:

concatenating the second numerical data vector representation to the first numerical data vector representation to form a third numerical data vector representation; and

providing the third numerical data vector representation to a classifier trained to predict whether a client device is using an emulator.

14. The method of claim 13 , further comprising:

extracting hardware data from non-emulator payloads;

extracting device model data by parsing user agent strings from the non-emulator payloads;

labeling the extracted hardware data with the corresponding extracted device model data to generate training data; and

training the classifier, using the generated training data, to predict the device model for the client device.

15. The method of claim 8 , further comprising blocking an IP address associated with the user agent in response to determining that the client device is using an emulator.

16. A non-transitory machine-readable medium having instructions stored thereon, wherein the instructions are executable to cause a machine of a system to perform operations comprising:

receiving, from a client device, a user agent string corresponding to a user agent computer application that has requested access to a resource of the system;

embedding the user agent string into a first numerical data vector representation of the user agent computer application;

obtaining, from the client device, one or more hardware characteristics of the client device;

predicting a device model for the client device based on the one or more hardware characteristics;

embedding device model features extracted from the device model prediction into a second numerical data vector representation; and

determining whether the client device is using an emulator based on the first numerical data vector representation and the second numerical data vector representation.

17. The non-transitory machine-readable medium of claim 16 , wherein the operations further comprise:

combining the first numerical data vector representation and the second numerical data vector representation to generate a third numerical data vector representation; and

providing the third numerical data vector representation to a classifier trained to predict whether a client device is using an emulator.

18. The non-transitory machine-readable medium of claim 16 , wherein the one or more hardware characteristics comprises at least one of:

battery characteristics comprising a battery voltage, a battery temperature, a battery capacity, and a battery state;

central processing unit (CPU) characteristics comprising a number of CPU cores;

memory characteristics comprising a memory size;

screen characteristics comprising a screen width, a screen height, and a screen brightness;

disk characteristics comprising a type of disk drive; or

sensor characteristics comprising a presence of an accelerometer or a presence of a gyroscope.

19. The non-transitory machine-readable medium of claim 16 , wherein the embedding the device model prediction into the second numerical data vector representation comprises extracting the second numerical data vector representation from an artificial neural network prior to an activation function of the neural network as the artificial neural network performs the predicting the device model.

20. The non-transitory machine-readable medium of claim 16 , wherein the user agent string is received from another machine of the system, the other machine configured to prevent the user agent computer application from accessing the resource of a service provider in response to receiving a message from the machine indicating that the client device is using the emulator.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 13, 2021
From: GAONKAR, MANDAR GANABA; CHEN, ZHE; TRUJILLO, SERAFIN; TANG, QUAN JIN FERDINAND; WANG, HEWEN; ZHUO, YUZHEN; SNYDER, KENNETH BRADLEY; MAHALINGAM, OMKUMAR; TEO, SOLOMON KOK HOW
To: PAYPAL, INC.
Reel/Frame 058372/0108 →
Continuity (1)
Related Publication 20230084532A1 · Mar 16, 2023