IP Library Granted Patent US 10,762,206
Granted Patent B2
US 10,762,206 · App. 15/596,461 · Granted Sep 1, 2020

Automated behavioral and static analysis using an instrumented sandbox and machine learning classification for mobile security

Inventors: Theodora H. Titonis (Berkeley, CA); Nelson R. Manohar-Alers (Toledo, OH); Christopher J. Wysopal (Concord, MA)
Assignee: Veracode, Inc.
G06F21/56G06F21/562G06F21/566G06N20/00H04W12/12H04W12/1208H04L63/1433
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,762,206
App. No.
15/596,461
Granted
Sep 1, 2020
Kind
B2
Abstract

A method comprises, based on receiving a request to analyze at least a first mobile application, scheduling the request for a first sandbox. The first mobile application is analyzed based on the request, wherein the analysis of the first mobile application comprises performing a behavioral analysis of the first mobile application within the first sandbox and performing a static analysis of the first mobile application. A first feature vector is generated based on data resulting from the analysis of the first mobile application. The first mobile application is determined to comprise malware based, at least in part, on comparing the first feature vector with at least a second feature vector, wherein the second feature vector was generated based on at least one of a static analysis and a behavioral analysis of malware.

Claims (48)

1. A system comprising:

a processor;

a machine-readable medium having instructions stored thereon, the instructions executable by the processor to cause the system to,

based on receipt of a request to analyze at least a first mobile application, schedule the request for a first sandbox;

perform analysis of the first mobile application based on the request, wherein the instructions to perform the analysis of the first mobile application comprise instructions to perform behavioral analysis of the first mobile application within the first sandbox and perform static analysis of the first mobile application;

generate a first feature vector based on data resulting from the behavioral analysis and the static analysis of the first mobile application; and

determine whether the first mobile application comprises malware based, at least in part, on comparison of the first feature vector with at least a second feature vector, wherein the second feature vector was previously generated based on a static analysis and a behavioral analysis of known malware.

2. The system of claim 1 , further comprising instructions executable by the processor to cause the system to collect log files generated during the analysis of the first mobile application based on the request, wherein the instructions to generate the first feature vector comprise instructions to generate the first feature vector based on extraction of features from the log files.

3. The system of claim 1 , wherein the instructions executable by the processor to cause the system to determine whether the first mobile application comprises malware comprise instructions executable by the processor to cause the system to indicate at least a first predicted behavior of the first mobile application based on the determination.

4. The system of claim 1 , wherein the instructions executable by the processor to cause the system to perform the analysis of the first mobile application based on the request comprise instructions executable by the processor to cause the system to apply one or more risk assessment rules to binary code of the first mobile application during the analysis of the first mobile application based on the request.

5. The system of claim 1 , wherein the first feature vector comprises a behavioral feature and a static feature.

6. The system of claim 1 , wherein the instructions executable by the processor to cause the system to determine whether the first mobile application comprises malware comprise instructions to:

determine if the first feature vector and the second feature vector are sufficiently aligned; and

based on a determination that the first feature vector and the second feature vector are sufficiently aligned, determine that the first mobile application comprises malware.

7. The system of claim 6 , wherein the instructions executable by the processor to cause the system to determine if the first feature vector and the second feature vector are sufficiently aligned comprise instructions executable by the processor to cause the system to determine if a Euclidean distance between the first feature vector and the second feature vector does not exceed a threshold Euclidean distance.

8. The system of claim 1 , wherein the instructions executable by the processor to cause the system to determine whether the first mobile application comprises malware comprise instructions to:

cluster a plurality of feature vectors into at least a first cluster, wherein the plurality of feature vectors was generated based on analysis of a plurality of mobile applications;

based on a determination that a distance between the second feature vector and a centroid of the first cluster satisfies a membership criterion, assign the second feature vector to the first cluster;

determine a distance between the first feature vector and the centroid of the first cluster; and

based on a determination that the distance between the first feature vector and the centroid of the first cluster satisfies a membership criterion, map the first feature vector to the first cluster.

9. A method comprising:

based on receiving a request to analyze a first mobile application, scheduling the request for a first sandbox;

performing an analysis of the first mobile application based on the request, wherein performing the analysis of the first mobile application comprises performing a behavioral analysis of the first mobile application within the first sandbox and performing a static analysis of the first mobile application;

generating a first feature vector based on data resulting from the behavioral analysis and the static analysis of the first mobile application; and

determining that the first mobile application comprises malware based, at least in part, on comparing the first feature vector with at least a second feature vector, wherein the second feature vector was previously generated based on a static analysis and a behavioral analysis of known malware.

10. The method of claim 9 , further comprising collecting log files generated during the analysis of the first mobile application based on the request, wherein generating the first feature vector comprises generating the first feature vector based on extraction of features from the log files.

11. The method of claim 9 , wherein determining that the first mobile application comprises malware comprises indicating at least a first predicted behavior of the first mobile application based on the determining.

12. The method of claim 9 , wherein performing the analysis of the first mobile application based on the request comprises applying one or more risk assessment rules to binary code of the first mobile application during the analysis of the first mobile application.

13. The method of claim 9 , wherein determining that the first mobile application comprises malware comprises:

determining if the first feature vector and the second feature vector are sufficiently aligned; and

based on determining that the first feature vector and the second feature vector are sufficiently aligned, determining that the first mobile application comprises malware.

14. The method of claim 13 , wherein determining if the first feature vector and the second feature vector are sufficiently aligned comprises determining if a Euclidean distance between the first feature vector and the second feature vector does not exceed a threshold Euclidean distance.

15. The method of claim 9 , wherein determining that the first mobile application comprises malware comprises:

clustering a plurality of feature vectors into at least a first cluster, wherein the plurality of feature vectors was generated based on analysis of a plurality of mobile applications;

based on determining that a distance between the second feature vector and a centroid of the first cluster satisfies a membership criterion, assigning the second feature vector to the first cluster;

determining a distance between the first feature vector and the centroid of the first cluster; and

based on determining that the distance between the first feature vector and the centroid of the first cluster satisfies a membership criterion, mapping the first feature vector to the first cluster.

16. The method of claim 9 , wherein the first feature vector comprises a behavioral feature and a static feature.

17. A non-transitory, computer-readable medium having instructions stored thereon that are executable by a computing device to perform operations comprising:

based on receiving a request to analyze a first mobile application, scheduling the request for a first sandbox;

performing an analysis of the first mobile application based on the request, wherein performing the analysis of the first mobile application comprises performing a behavioral analysis of the first mobile application within the first sandbox and performing a static analysis of the first mobile application;

generating a first feature vector based on data resulting from the behavioral analysis and the static analysis of the first mobile application; and

determining whether the first mobile application comprises malware based, at least in part, on comparing the first feature vector with at least a second feature vector, wherein the second feature vector was previously generated based on a static analysis and a behavioral analysis of known malware.

18. The non-transitory, computer-readable medium of claim 17 , wherein the operations further comprise collecting log files generated during the behavioral analysis and the static analysis of the first mobile application, wherein generating the first feature vector comprises generating the first feature vector based on extraction of features from the log files.

19. The non-transitory, computer-readable medium of claim 17 , wherein determining whether the first mobile application comprises malware comprises:

determining if the first feature vector and the second feature vector are sufficiently aligned; and

based on determining that the first feature vector and the second feature vector are sufficiently aligned, determining that the first mobile application comprises malware.

20. The non-transitory, computer-readable medium of claim 19 , wherein determining if the first feature vector and the second feature vector are sufficiently aligned comprises determining if a Euclidean distance between the first feature vector and the second feature vector does not exceed a threshold Euclidean distance.

Assignments (4)
SECURITY INTEREST Recorded May 25, 2022
From: VERACODE, INC
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 060011/0351 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded May 2, 2022
From: BARCLAYS BANK PLC, AS AGENT
To: VERACODE, INC.
Reel/Frame 059846/0650 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Nov 5, 2020
From: VERACODE, INC.
To: BARCLAYS BANK PLC, AS COLLATERAL AGENT
Reel/Frame 054330/0624 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 28, 2018
From: TITONIS, THEODORA H.; MANOHAR-ALERS, NELSON R.; WYSOPAL, CHRISTOPHER J.
To: VERACODE, INC.
Reel/Frame 046232/0177 →
Continuity (3)
Division 13617568 · Sep 14, 2012
Provisional Application 61535804 · Sep 16, 2011
Related Publication 20180025157A1 · Jan 25, 2018
Cited By (14)
US 12,244,637 US 12,273,356 US 12,375,500 US 12,462,038 US 12,499,452 US 12,556,566 US 12,572,651 US 12,585,493 US 12,596,804 US 12,602,485 US 12,609,969 US 12,657,298 US 12,676,882 US 12,719,885