IP Library Granted Patent US 10,242,200
Granted Patent B1
US 10,242,200 · App. 15/061,880 · Granted Mar 26, 2019

Static analysis of vulnerabilities in application packages

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,242,200
App. No.
15/061,880
Granted
Mar 26, 2019
Kind
B1
Abstract

Apparatus and methods are disclosed herein for analyzing computer programs for potential security vulnerabilities. In one computer-implemented embodiment of the disclosed technology, a method includes analyzing a package for an application (e.g., a mobile device application package) by disassembling at least a portion of executable code associated with the application, searching for a pattern associated with a potentially vulnerably function or method, and, if the function or method is defined, then analyzing disassembled code for the function to determine whether a vulnerability is present. In some examples, a number of packages are stored in an application store database and scanned periodically to statically analyze the package for vulnerabilities.

Claims (55)

1. A method performed by one or more processors for statically analyzing an application package for vulnerabilities, the method comprising:

disassembling at least a portion of executable code for an application;

searching the disassembled code for a definition of a potentially-vulnerable function;

determining that the potentially-vulnerable function is defined and analyzing a portion of the disassembled code associated with the potentially-vulnerable function, wherein the analyzing comprises:

searching the disassembled code associated with the potentially-vulnerable function for executable instructions associated with a non-vulnerable implementation of the potentially-vulnerable function, and

determining, based on an absence of the executable instructions that at least one vulnerability associated with the potentially-vulnerable function is present; and

based on the analysis, disabling the potentially-vulnerable function in the application and reporting a potential vulnerability in the potentially-vulnerable function.

2. The method of claim 1 , further comprising, if the searching does not find the function definition, then indicating that at least one vulnerability associated with the function is not present in the application.

3. The method of claim 1 , wherein the application package is an Android application package.

4. The method of claim 1 , wherein the disassembling is performed using at least one or more of the following tools: apktool, baksmali, or dedexer.

5. The method of claim 1 , wherein the application package is stored in an application store accessible via the Internet.

6. The method of claim 1 , wherein:

the application package is stored in an application store accessible via the Internet;

a plurality of applications are stored in the application store; and

the method further comprises, for each one of a respective two or more of the plurality of applications, repeating the disassembling, the searching, and the analyzing.

7. The method of claim 1 , wherein the potentially-vulnerable function is associated with Secure Socket Layer (SSL) communication, wherein the method further comprises disabling SSL protocol for the application package.

8. One or more non-transitory computer-readable storage media storing computer-readable instructions that, when executed by a computer, cause the computer to perform a method, comprising:

disassembling at least a portion of executable code for an application;

searching the disassembled code for a definition of a potentially-vulnerable function;

determining that the potentially-vulnerable function is defined in the disassembled portion of the executable code and analyzing the disassembled portion of the executable code, wherein the analyzing comprises:

searching the disassembled portion of the executable code for executable instructions associated with a non-vulnerable implementation of the potentially-vulnerable function, and

determining, based on an absence of the executable instructions that at least one vulnerability associated with the potentially-vulnerable function is present; and

based on the analysis, disabling the potentially-vulnerable function of the application and reporting a potential vulnerability in the potentially-vulnerable function.

9. A system, comprising:

memory;

one or more processors couple to the memory;

one or more non-transitory computer-readable media storing computer-readable instructions that, when executed by the processors, cause the processors to perform a method of statically analyzing an application package for vulnerabilities, the instructions comprising:

instructions for a disassembler, the disassembler being configure to disassemble executable code;

instructions for searching disassembled code for a definition of a potentially-vulnerable function

instructions for, determining that the potentially-vulnerable function is defined and analyzing a portion of the disassembled code associated with the potentially-vulnerable function, wherein the analyzing comprises:

searching the disassembled code associated with the potentially-vulnerable function for executable instructions associated with a non-vulnerable implementation of the potentially-vulnerable function, and

determining, based on an absence of the executable instructions that at least one vulnerability associated with the potentially-vulnerable function is present; and

instructions for disabling the potentially vulnerable function in the application based on the analysis and reporting a potential vulnerability in the potentially-vulnerable function.

10. The system of claim 9 , wherein the instructions further comprise:

instructions for, if the certain instructions are identified by the analyzing, then indicating that the at least one vulnerability associated with the potentially-vulnerable function is not present.

11. The system of claim 9 , wherein the instructions further comprise:

instructions for providing an application store accessible via a computer network.

12. The system of claim 9 , further comprising:

a database storing executable code for a plurality of application packages; and

wherein the instructions further comprise, for two or more application packages of the plurality of application packages, instructions for periodically repeating execution of the instructions for: the disassembler, performing the searching, and performing the analyzing.

13. The system of claim 9 , wherein the instructions further comprise:

instructions for, based on the analyzing, preventing distribution of the application package.

14. The system of claim 9 , wherein the instructions further comprise:

instructions for determining whether the potentially-vulnerable function is associated with a security implementation; and

based on the determining, disabling the potentially-vulnerable function.

15. The system of claim 9 , wherein the instructions for the disassembler comprise instructions for extracting at least one or more of the following:

a certificate associated with the application package;

a digest associated with components of the application package;

native compiled code;

bytecode;

a manifest in eXtensible Markup Language (XML) format; or

code compiled in dex format.

16. The system of claim 9 , wherein the instructions further comprise:

instructions for extracting function names from a symbol table of the application package.

17. The system of claim 9 , wherein the application package is a medical application, a home security application, a home automation application, or a smartphone application.

Assignments (11)
SECURITY INTEREST Recorded Jan 6, 2026
From: ALERT LOGIC, INC.; DIGITAL GUARDIAN LLC; ECRIME MANAGEMENT STRATEGIES, INC.; FORTRA, LLC; GLOBALSCAPE, INC.; TRIPWIRE, INC.
To: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
Reel/Frame 074233/0632 →
TERMINATION AND RELEASE OF SECOND LIEN INTELLECTUAL PROPERTY SECURITY INTEREST RECORDED AT REEL/FRAME 60306/0365 Recorded Nov 24, 2025
From: JEFFERIES FINANCE LLC
To: TRIPWIRE, INC.
Reel/Frame 074023/0235 →
TERMINATION AND RELEASE OF FIRST LIEN INTELLECTUAL PROPERTY SECURITY INTEREST RECORDED AT REEL/FRAME 60306/0555 Recorded Nov 24, 2025
From: JEFFERIES FINANCE LLC
To: TRIPWIRE, INC.
Reel/Frame 074023/0320 →
EXTENDED RCF FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Nov 21, 2025
From: TRIPWIRE, INC.
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 073663/0639 →
TERMINATION AND RELEASE OF SECOND LIEN INTELLECTUAL PROPERTY SECURITY INTEREST RECORDED AT REEL/FRAME 60306/0649 Recorded Nov 21, 2025
From: ACQUIOM AGENCY SERVICES LLC
To: TRIPWIRE, INC.
Reel/Frame 073663/0698 →
EXTENDED FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Nov 21, 2025
From: TRIPWIRE, INC.
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 073664/0124 →
NEW MONEY FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Nov 21, 2025
From: ALERT LOGIC, INC.; DIGITAL GUARDIAN LLC; ECRIME MANAGEMENT STRATEGIES, INC.; FORTRA, LLC; GLOBALSCAPE, INC.; TRIPWIRE, INC.; VERA SECURITY, INC.
To: ARES CAPITAL CORPORATION, AS COLLATERAL AGENT
Reel/Frame 073683/0534 →
ASSIGNMENT OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Aug 14, 2025
From: GOLUB CAPITAL MARKETS LLC (AS EXISTING AGENT)
To: ACQUIOM AGENCY SERVICES LLC (AS SUCCESSOR COLLATERAL AGENT)
Reel/Frame 072471/0665 →
FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jun 7, 2022
From: TRIPWIRE, INC.
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 060306/0365 →
SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jun 7, 2022
From: TRIPWIRE, INC.
To: GOLUB CAPITAL MARKETS LLC, AS COLLATERAL AGENT
Reel/Frame 060306/0649 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 22, 2016
From: YOUNG, CRAIG
To: TRIPWIRE, INC.
Reel/Frame 038985/0647 →
Cited By (1)
US 12,487,280