IP Library Granted Patent US 10,853,457
Granted Patent B2
US 10,853,457 · App. 15/889,715 · Granted Dec 1, 2020

System and method for program security protection

Inventor: Wu Zhou (Mountain View, CA)
Assignee: DiDi Research America, LLC
G06F21/12G06F21/52G06F21/552G06K9/6201H04L63/12H04L63/123H04L63/126H04L63/1441H04L63/1466H04L63/1483G06F9/547G06K9/6215H04L63/0281
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,853,457
App. No.
15/889,715
Granted
Dec 1, 2020
Kind
B2
Abstract

Systems and methods are provided for program security protection. An exemplary method for program security protection may comprise obtaining data packets transceived by a first program, analyzing similarities among the obtained data packets for a plurality of transmissions, and determining a security threat to the first program based on the analyzed similarities.

Claims (62)

1. A method for program security protection, comprising:

obtaining information of Application Programming Interface (API) calls to be executed by a first program via a prelog algorithm, wherein the prelog algorithm is configured to obtain the API call information, the prelog algorithm being executed before the API call is executed;

analyzing similarities among the obtained API call information; and

determining a security threat to the first program based on the analyzed similarities, wherein:

the obtained API call information comprises a plurality of API call information strings;

analyzing the similarities among the obtained API calls comprises determining a number of atomic operations required to change the plurality of API call information strings to a same string;

a first API call information string S has a length i;

a second API call information string T has a length j;

the number of atomic operations required to change the first API call information string S to the second API call information string T is D(Si, Tj); and

determining the number of atomic operations required to change the plurality of API call information strings to the same string comprises:

(1) in response to determining the ith string character of the first string is the same as the jth string character of the second string, obtaining D(Si−1, Tj−1) as equal to D(Si, Tj);

(2) in response to determining the ith string character of the first string is different from the jth string character of the second string, obtaining the minimum value of [D(Si−1, Tj−1)+1], [D(Si, Tj−1)+1], and [D(Si−1, Tj)+1] as equal to D(Si, Tj);

(3) recursively applying steps (1) and (2) to the first and second strings from their last string characters to obtain D(Si, Tj); and

(4) recursively applying steps (1) to (3) to all pairs of API call information strings in the plurality of API call information strings.

2. The method of claim 1 , wherein:

obtaining information of the API calls executed by the first program comprises obtaining the API call information for the API calls via the prelog and an epilog algorithms;

the prelog and the epilog algorithms are configured to obtain the API call information; and

the epilog algorithm is executed after the API call is executed.

3. The method of claim 2 , wherein:

the first program comprises a software application installed on a computing device; and

the prelog algorithm and the epilog algorithm are incorporated into an operating system of the computing device.

4. The method of claim 1 , wherein:

the obtained API call information for each API call comprises at least one of an unencrypted file, a size of data, a start position, a key, or an encrypted file.

5. The method of claim 1 , wherein:

the API calls comprise a plurality of API calls each comprising a key; and

analyzing the similarities among the obtained API calls comprises obtaining a similarity among the keys.

6. The method of claim 5 , wherein:

determining the security threat to the first program based on the analyzed similarities comprises determining the plurality of API calls as associated with the security threat, in response to the obtained similarity exceeding a threshold.

7. The method of claim 1 , wherein:

the atomic operation is selected from: inserting, deleting, or exchanging a string character.

8. A system for program security protection, comprising:

a processor; and

a non-transitory computer-readable storage medium storing instructions that, when executed by the processor, cause the system to perform a method for security protection, the method comprising:

obtaining information of Application Programming Interface (API) calls to be executed by a first program via a prelog algorithm, wherein the prelog algorithm is configured to obtain the API call information, the prelog algorithm being executed before the API call is executed;

analyzing similarities among the obtained API call information; and

determining a security threat to the first program based on the analyzed similarities, wherein:

the obtained API call information comprises a plurality of API call information strings;

analyzing the similarities among the obtained API calls comprises determining a number of atomic operations required to change the plurality of API call information strings to a same string;

a first API call information string S has a length i;

a second API call information string T has a length j;

the number of atomic operations required to change the first API call information string S to the second API call information string T is D(Si, Tj); and

determining the number of atomic operations required to change the plurality of API call information strings to the same string comprises:

(1) in response to determining the ith string character of the first string is the same as the jth string character of the second string, obtaining D(Si−1, Tj−1) as equal to D(Si, Tj);

(2) in response to determining the ith string character of the first string is different from the jth string character of the second string, obtaining the minimum value of [D(Si−1, Tj−1)+1], [D(Si, Tj−1)+1], and [D(Si−1, Tj)+1] as equal to D(Si, Tj);

(3) recursively applying steps (1) and (2) to the first and second strings from their last string characters to obtain D(Si, Tj); and

(4) recursively applying steps (1) to (3) to all pairs of API call information strings in the plurality of API call information strings.

9. The system of claim 8 , wherein:

obtaining information of the API calls executed by the first program comprises obtaining the API call information for the API calls via the prelog and an epilog algorithms;

the prelog and the epilog algorithms are configured to obtain the API call information; and

the epilog algorithm is executed after the API call is executed.

10. The system of claim 9 , wherein:

the first program comprises a software application installed on the system; and

the prelog algorithm and the epilog algorithm are incorporated into an operating system of the system.

11. The system of claim 8 , wherein:

the obtained API call information for each API call comprises at least one of an unencrypted file, a size of data, a start position, a key, or an encrypted file.

12. The system of claim 8 , wherein:

the API calls comprise a plurality of API calls each comprising a key; and

analyzing the similarities among the obtained API calls comprises obtaining a similarity among the keys.

13. The system of claim 8 , wherein:

determining the security threat to the first program based on the analyzed similarities comprises determining the plurality of API calls as associated with the security threat, in response to the obtained similarity exceeding a threshold.

14. The system of claim 8 , wherein:

the atomic operation is selected from: inserting, deleting, or exchanging a string character.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 9, 2020
From: DIDI (HK) SCIENCE AND TECHNOLOGY LIMITED
To: BEIJING DIDI INFINITY TECHNOLOGY AND DEVELOPMENT CO., LTD.
Reel/Frame 053180/0456 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 29, 2020
From: DIDI RESEARCH AMERICA, LLC
To: DIDI (HK) SCIENCE AND TECHNOLOGY LIMITED
Reel/Frame 053081/0934 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 6, 2018
From: ZHOU, WU
To: DIDI RESEARCH AMERICA, LLC
Reel/Frame 044844/0273 →
Continuity (1)
Related Publication 20200028873A1 · Jan 23, 2020