IP Library › Granted Patent US 10,073,975
Granted Patent B2
US 10,073,975 · App. 15/234,833 · Granted Sep 11, 2018

Application integrity verification in multi-tier architectures

Inventors: Pietro Ferrara (White Plains, NY); Marco Pistoia (Amawalk, NY); John Ponzo (Yorktown Heights, NY); Omer Tripp (Bronx, NY)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F21/577H04L63/1433G06F2221/033
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,073,975
App. No.
15/234,833
Granted
Sep 11, 2018
Kind
B2
Abstract

A method and system of determining a vulnerability of software are provided. In a setup phase, an authorized application is received from an authorized source. Static analysis is performed to identify a plurality of structural characteristics, which are stored. During an active phase, a call is received from a user device having a target application purporting to be a version of the authorized application, during a runtime of the target application. One or more structural characteristics are selected from the plurality of structural characteristics. The user device is requested to provide the selected one or more structural characteristics from the target application. Upon determining that the report does not provide a match between the selected one or more structural characteristic of the authorized application and the target application, the version of the target application is identified to be unsecure.

Claims (97)

1. A computing device comprising:

a processor;

a network interface coupled to the processor to enable communication over a network;

a storage device for content and programming coupled to the processor;

a security engine software stored in the storage device, wherein an execution of the security engine software by the processor configures the computing device to perform acts comprising:

in a setup phase:

receiving an authorized application from an authorized source;

performing static analysis on the authorized application to identify a plurality of structural characteristics; and

storing the plurality of structural characteristics; and

in an active phase:

receiving a call from a user device having a target application purporting to be a version of the authorized application, during a runtime of the target application;

selecting one or more structural characteristics from the plurality of structural characteristics;

requesting from the user device to provide the selected one or more structural characteristics from the target application;

receiving a report from an analysis engine of the user device in response to the request;

upon determining that the report does not provide a match between the selected one or more structural characteristic of the authorized application and the target application, identifying the version of the target application to be unsecure; and

upon determining that the report does provide the match between the selected one or more structural characteristic of the authorized application and the target application, identifying the version of the target application to be secure;

wherein:

during the setup phase, the plurality of structural characteristics of the authorized application are stored in a reference table of a reference database; and

during the active phase, the plurality of structural characteristics of the authorized application are retrieved from the reference table in response to receiving the call from the user device.

2. The computing device of claim 1 , wherein the plurality of structural characteristics includes one or more of the following characteristics:

a number of statements in a function of the authorized application;

a length of a call stack at a predetermined line in the authorized application;

a type and number of parameters passed to a function of the authorized application;

a number of functions used in the authorized application;

a number of times each function is used in the authorized application; and

an order of an invocation of each function in the authorized application.

3. The computing device of claim 1 , wherein execution of the security engine software further configures the computing device to perform acts comprising:

upon identifying that the version of the target application to be unsecure, sending a notification over the network interface to an analysis engine of the user device to at least one of:

provide a warning on a user interface of the user device indicative that the target application is unsecure; and

deactivate the target application.

4. The computing device of claim 1 , wherein the call is initiated by an analysis engine application of the user device.

5. The computing device of claim 1 , wherein execution of the security engine software further configures the computing device to perform acts comprising: upon identifying that the version of the target application is secure, sending a notification to an analysis engine of the user device indicative that the target application is secure.

6. The computing device of claim 1 , wherein execution of the security engine software further configures the computing device to perform acts comprising, in a setup phase:

upon receiving the authorized application, injecting a structural characteristic into the authorized application; and

sending the authorized application to the authorized source for distribution.

7. The computer device of claim 1 , wherein the one or more structural characteristics from the plurality of structural characteristics are selected randomly by the security engine in the active phase.

8. A non-transitory computer readable storage medium tangibly embodying a computer readable program code having computer readable instructions that, when executed, causes a computer device to carry out a method of verifying an integrity of an application, the method comprising:

in a setup phase:

receiving an authorized application from an authorized source;

performing static analysis on the authorized application to identify a plurality of structural characteristics; and

storing the plurality of structural characteristics; and

in an active phase:

receiving a call from a user device having a target application purporting to be a version of the authorized application, during a runtime of the target application;

selecting one or more structural characteristics from the plurality of structural characteristics;

requesting from the user device to provide the selected one or more structural characteristics from the target application;

receiving a report from an analysis engine of the user device in response to the request;

upon determining that the report does not provide a match between the selected one or more structural characteristic of the authorized application and the target application, identifying the version of the target application to be unsecure; and

upon determining that the report does provide the match between the selected one or more structural characteristic of the authorized application and the target application, identifying the version of the target application to be secure;

wherein:

during the setup phase, the plurality of structural characteristics of the authorized application are stored in a reference table of a reference database; and

during the active phase, the plurality of structural characteristics of the authorized application are retrieved from the reference table in response to receiving the call from the user device.

9. The non-transitory computer readable storage medium of claim 8 , wherein the plurality of structural characteristics includes one or more of the following characteristics:

a number of statements in a function of the authorized application;

a length of a call stack at a predetermined line in the authorized application;

a type and number of parameters passed to a function of the authorized application;

a number of functions used in the authorized application;

a number of times each function is used in the authorized application; and

an order of an invocation of each function in the authorized application.

10. The non-transitory computer readable storage medium of claim 8 , the method further comprising:

upon identifying that the version of the target application to be unsecure, sending a notification over a network interface to an analysis engine of the user device to at least one of:

providing a warning on a user interface of the user device indicative that the target application is unsecure; and

deactivating the target application.

11. The non-transitory computer readable storage medium of claim 8 , the method further comprising: upon identifying that the version of the target application is secure, sending a notification to an analysis engine of the user device indicative that the target application is secure.

12. The non-transitory computer readable storage medium of claim 8 , the method further comprising, in a setup phase:

upon receiving the authorized application, injecting a structural characteristic into the authorized application; and

sending the authorized application to the authorized source for distribution.

13. The non-transitory computer readable storage medium of claim 8 , wherein the one or more structural characteristics from the plurality of structural characteristics are selected randomly by the security engine in the active phase.

14. A method of verifying an integrity of an application, the method comprising:

in a setup phase:

receiving an authorized application from an authorized source;

performing static analysis on the authorized application to identify a plurality of structural characteristics; and

storing the plurality of structural characteristics; and

in an active phase:

receiving a call from a user device having a target application purporting to be a version of the authorized application, during a runtime of the target application;

selecting one or more structural characteristics from the plurality of structural characteristics;

requesting from the user device to provide the selected one or more structural characteristics from the target application;

receiving a report from an analysis engine of the user device in response to the request;

upon determining that the report does not provide a match between the selected one or more structural characteristic of the authorized application and the target application, identifying the version of the target application to be unsecure; and

upon determining that the report does provide the match between the selected one or more structural characteristic of the authorized application and the target application, identifying the version of the target application to be secure;

wherein:

during the setup phase, the plurality of structural characteristics of the authorized application are stored in a reference table of a reference database; and

during the active phase, the plurality of structural characteristics of the authorized application are retrieved from the reference table in response to receiving the call from the user device.

15. The method of claim 14 , wherein the plurality of structural characteristics includes one or more of the following characteristics:

a number of statements in a function of the authorized application;

a length of a call stack at a predetermined line in the authorized application;

a type and number of parameters passed to a function of the authorized application;

a number of functions used in the authorized application;

a number of times each function is used in the authorized application; and

an order of an invocation of each function in the authorized application.

16. The method of claim 14 , further comprising:

upon identifying that the version of the target application to be unsecure, sending a notification over a network interface to an analysis engine of the user device to at least one of:

providing a warning on a user interface of the user device indicative that the target application is unsecure; and

deactivating the target application.

17. The method of claim 14 , further comprising, in a setup phase:

upon receiving the authorized application, injecting a structural characteristic into the authorized application; and

sending the authorized application to the authorized source for distribution.

18. The method of claim 14 , wherein the one or more structural characteristics from the plurality of structural characteristics are selected randomly by the security engine in the active phase.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 11, 2016
From: FERRARA, PIETRO; PISTOIA, MARCO; PONZO, JOHN; TRIPP, OMER
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 039411/0646 →
Continuity (1)
Related Publication 20180046810A1 · Feb 15, 2018