IP Library Granted Patent US 12,641,111
Granted Patent B2
US 12,641,111 · App. 18/543,659 · Granted May 26, 2026

Automated security analysis of software libraries

Inventors: Jeremy W. Long (Herndon, VA); Mitch Moon (Plymouth, MN)
Assignee: Wells Fargo Bank, N.A.
H04L63/1433G06F21/577H04L63/20
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 12,641,111
App. No.
18/543,659
Granted
May 26, 2026
Kind
B2
Abstract

A method for identifying security vulnerabilities in a third party software component includes generating a test application for the third party software component. The test application is generated such that every externally accessible data path in the third party component is called. The test application and the third party software component are analyzed using a static application security testing (SAST) code analyzer. One or more test results are obtained from the SAST code analyzer. The one or more test results are used to identify security vulnerabilities in the third party component.

Claims (32)

1 . A method for enhanced security analysis of software components, the method comprising:

generating a non-executable test application that invokes methods within a third-party software component;

analyzing the third-party software component in conjunction with the non-executable test application using a Static Application Security Testing (SAST) code analyzer;

sequentially calling all accessible methods within the third-party software component according to an ordered sequence of method calls;

re-invoking the ordered sequence of method calls a second time to ensure that whereupon a first method modifies an internal state of an object, and a second method is subsequently invoked after the first method, any potential vulnerability arising due to the internal state of the object is identified; and

analyzing the potential vulnerability identified through the ordered sequence of method calls to ensure that all possible code paths within the third-party software component are evaluated.

2 . The method of claim 1 , further comprising integrating a taint checking process, wherein tainted data is injected into the third-party software component during the ordered sequence of method calls, and a presence of tainted data in an output is analyzed to identify potential security vulnerabilities.

3 . The method of claim 2 , further comprising analyzing results of each ordered sequence of method calls using the SAST code analyzer to determine whether the tainted data is generated or propagated by the third-party software component.

4 . The method of claim 1 , further including generating dynamic test data that is passed into the ordered sequence of method calls to simulate real-world data interactions that may arise during typical use.

5 . The method of claim 1 , wherein at least one method call in the ordered sequence of method calls is non-deterministic, to simulate varying execution paths and identify vulnerabilities that may not be apparent under deterministic conditions.

6 . The method of claim 1 , wherein the ordered sequence of method calls includes, in order, all accessible static methods, all accessible constructors, and all singleton style constructors.

7 . The method of claim 1 , wherein the analyzing includes identifying and segregating potential false positive vulnerabilities to refine an accuracy of the enhanced security analysis.

8 . The method of claim 1 , further comprising executing at least one method call in the ordered sequence of method calls more than once with different input parameters each time, to assess how varied inputs affect a behavior of the third-party software component.

9 . The method of claim 1 , wherein the ordered sequence of method calls includes all accessible getter and setter methods, to evaluate an integrity of data encapsulation and access control within the third-party software component.

10 . The method of claim 1 , further comprising compiling the non-executable test application with the third-party software component, and executing a compiled code to assess an integration and interaction between the non-executable test application and the third-party software component.

11 . A computer system for enhancing security analysis of software components, comprising:

one or more processors; and

non-transitory computer readable storage media encoding instructions which, when executed by the one or more processors, cause the computer system to:

generate a non-executable test application that invokes methods within a third-party software component;

analyze the third-party software component in conjunction with the non-executable test application using a Static Application Security Testing (SAST) code analyzer;

sequentially call all accessible methods within the third-party software component according to an ordered sequence of method calls;

re-invoke the ordered sequence of method calls a second time to ensure that whereupon a first method modifies an internal state of an object, and a second method is subsequently invoked after the first method, any potential vulnerability arising due to the internal state of the object is identified; and

analyze the potential vulnerability identified through the ordered sequence of method calls to ensure that all possible code paths within the third-party software component are evaluated.

12 . The computer system of claim 11 , wherein the non-transitory computer readable storage media encoding instructions further cause the computer system to integrate a taint checking process, wherein tainted data is injected into the third-party software component during the ordered sequence of method calls, and a presence of tainted data in an output is analyzed to identify potential security vulnerabilities.

13 . The computer system of claim 12 , wherein the non-transitory computer readable storage media encoding instructions further cause the computer system to analyze results of each ordered sequence of method calls using the SAST code analyzer to determine whether the tainted data is generated or propagated by the third-party software component.

14 . The computer system of claim 11 , wherein the non-transitory computer readable storage media encoding instructions further cause the computer system to generate dynamic test data that is passed into the ordered sequence of method calls to simulate real-world data interactions that may arise during typical use.

15 . The computer system of claim 11 , wherein at least one method call in the ordered sequence of method calls is non-deterministic, to simulate varying execution paths and identify vulnerabilities that may not be apparent under deterministic conditions.

16 . The computer system of claim 11 , wherein the ordered sequence of method calls includes, in order, all accessible static methods, all accessible constructors, and all singleton style constructors.

17 . The computer system of claim 11 , wherein the analyze includes identifying and segregating potential false positive vulnerabilities to refine an accuracy of the security analysis.

18 . The computer system of claim 11 , wherein the non-transitory computer readable storage media encoding instructions further cause the computer system to execute at least one method call in the ordered sequence of method calls more than once with different input parameters each time, to assess how varied inputs affect a behavior of the third-party software component.

19 . The computer system of claim 11 , wherein the ordered sequence of method calls includes all accessible getter and setter methods, to evaluate an integrity of data encapsulation and access control within the third-party software component.

20 . The computer system of claim 11 , wherein the non-transitory computer readable storage media encoding instructions further cause the computer system to compile the non-executable test application with the third-party software component, and execute a compiled code to assess an integration and interaction between the non-executable test application and the third-party software component.

Assignments (2)
STATEMENT OF CHANGE OF ADDRESS OF ASSIGNEE Recorded Jun 17, 2025
From: WELLS FARGO BANK, N.A.
To: WELLS FARGO BANK, N.A.
Reel/Frame 071644/0971 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 18, 2023
From: LONG, JEREMY W.; MOON, MITCH
To: WELLS FARGO BANK, N.A.
Reel/Frame 065899/0368 →
Continuity (5)
Continuation 16862135 · Apr 29, 2020
Division 15951949 · Apr 12, 2018
Continuation 14991256 · Jan 8, 2016
Provisional Application 62222463 · Sep 23, 2015
Related Publication 20240121261A1 · Apr 11, 2024
References Cited (28)
US 7849509B2 · Venkatapathy et al. · 2010 [cited by applicant]
US 7937692B2 · Drepper · 2011 [cited by applicant]
US 8381192B1 · Drewry et al. · 2013 [cited by applicant]
US 8561024B2 · Basler et al. · 2013 [cited by applicant]
US 8701198B2 · Greene et al. · 2014 [cited by applicant]
US 8726254B2 · Rohde et al. · 2014 [cited by applicant]
US 8844043B2 · Williams et al. · 2014 [cited by applicant]
US 9268670B1 · Lachwani et al. · 2016 [cited by applicant]
US 9471285B1 · Koohgoli et al. · 2016 [cited by applicant]
US 9569335B1 · Boehm et al. · 2017 [cited by applicant]
US 20020133807A1 · Sluiman · 2002 [cited by applicant]
US 20050081106A1 · Chang et al. · 2005 [cited by applicant]
US 20070220370A1 · Branda et al. · 2007 [cited by applicant]
US 20070240138A1 · Chess · 2007 [cited by examiner]
US 20090282474A1 · Chen et al. · 2009 [cited by applicant]
US 20100281248A1 · Lockhart et al. · 2010 [cited by applicant]
US 20130205399A1 · Kalman · 2013 [cited by examiner]
US 20130290786A1 · Artzi et al. · 2013 [cited by applicant]
US 20140173737A1 · Toback et al. · 2014 [cited by applicant]
US 20140359776A1 · Liu · 2014 [cited by examiner]
US 20140372985A1 · Levin et al. · 2014 [cited by applicant]
US 20140380486A1 · Brucker et al. · 2014 [cited by applicant]
US 20150237063A1 · Cotton et al. · 2015 [cited by applicant]
US 20150309813A1 · Patel · 2015 [cited by examiner]
US 20160180096A1 · Sharma · 2016 [cited by examiner]
US 20160315960A1 · Teilhet · 2016 [cited by examiner]
US 20170075738A1 · Han et al. · 2017 [cited by applicant]
EP 2259180A1 · 2010 [cited by applicant]