IP Library Granted Patent US 12,229,255
Granted Patent B2
US 12,229,255 · App. 17/740,110 · Granted Feb 18, 2025

Methods and systems for multi-tool orchestration

Inventors: Adam Youngberg (Allen, TX); David Filbey (Plano, TX); Kishore Prabakaran Fernando (Little Elm, TX); Stephen Kent (Fairfax, VA)
Assignee: CAPITAL ONE SERVICES, LLC
G06F21/554G06F9/44536G06F21/105G06F21/562G06F21/563G06F21/566G06F21/577G06F9/52G06F11/3604G06F2221/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 12,229,255
App. No.
17/740,110
Granted
Feb 18, 2025
Kind
B2
Abstract

A system for performing code security scan includes a non-transitory computer readable medium and a processor. The non-transitory computer readable medium stores a plurality of identifiers each identifying a software security analysis tool of one of several categories, including SAST, DAST and OSA tools. The processor receives an identification of code to be scanned. The processor selects at least two identifiers from the plurality of identifiers. The at least two identifiers identify at least two select software security analysis tools for execution on the identified code. The processor receives an execution result from each select software security analysis tool after performing execution on the identified code. The processor aggregates the execution result from each select software security analysis tool. A user interface displays an aggregation of the execution result from each select software security analysis tool.

Claims (85)

1. A system for performing code security scan, comprising:

one or more processors;

a graphical user interface (GUI); and

memory storing instructions that, when executed by the one or more processors, cause the one or more processors to:

receive code to be scanned;

analyze the code to be scanned with two or more software security analysis tools, each of the two or more software security analysis tools selected from a different category of a plurality of categories comprising a first category for performing Static Application Security Testing (SAST), a second category for performing Dynamic Application Security Testing (DAST), and a third category for performing Interactive Software Security Testing (IAST);

display, in the GUI, status information of the analysis from each of the two or more software security analysis tools, the status information comprising a selectable button to configure each of the two or more software security analysis tools;

receive a result from each of the two or more software security analysis tools; and

aggregate the result from each of the two or more software security analysis tools.

2. The system of claim 1 , wherein the instructions further cause the one or more processors to:

determine that a license status is expired for at least one of the two or more software security analysis tools;

generate a license renewal request for the at least one software security analysis tool;

send, to a licensor of the at least one software security analysis tool, the license renewal request;

receive, from the licensor, a license renewal for the at least one software security analysis tool; and

update the license status for the at least one software security analysis tool to a renewed license status.

3. The system of claim 2 , wherein the status information further comprises the license status, the licensor, and the renewed license status.

4. The system of claim 1 , wherein the instructions further cause the one or more processors to:

display a request on the GUI comprising the first category, the second category, and the third category for the two or more software security analysis tools selected from a different category; and

receive a selection of the two or more software security analysis tools for execution on the code.

5. The system of claim 1 , wherein the aggregation of the result from each of the two or more software security analysis tools displayed in the GUI comprises a severity, a category, and a name of the result.

6. The system of claim 1 , wherein the instructions further cause the one or more processors to:

display, on the GUI, (i) the aggregation from each of the two or more software security analysis tools, and (ii) a confidence score for each of the two or more software security analysis tools;

identify at least one false positive result; and

instruct an additional software security analysis tool from each category to perform a security scan on the code associated with the false positive result.

7. The system of claim 1 , wherein the aggregation of the result from each software security

analysis tool displayed in the GUI further comprises:

a first score for a combined static analysis result;

a second score for open source license analysis; and

a third score for open source known vulnerabilities.

8. The system of claim 1 , further comprising:

a scan database storing information of historical scan activity performed by each category of software security analysis tools.

9. The system of claim 8 , wherein the instructions further cause the one or more processors to: receive a request for historical scan activity corresponding to one software security analysis tool from the two or more software security analysis tools; and provide, on the GUI, the historical scan activity.

10. The system of claim 1 , wherein the status information comprises an execution progress for each of the two or more software security analysis tools, the execution progress comprising one or more of: completed, in progress, and queued.

11. A multi-tool orchestration system comprising:

one or more processors;

a graphical user interface (GUI); and

memory storing instructions that, when executed by the one or more processors, cause the one or more processors to:

receive, from a host server, an analysis request comprising software code to be scanned and two or more software security analysis tools to perform the scan, each of the two or more software security analysis tools selected from a different category of a plurality of categories comprising a first category for performing Static Application Security Testing (SAST), a second category for performing Dynamic Application Security Testing (DAST), and a third category for performing Interactive Software Security Testing (IAST);

analyze, with the two or more software security analysis tools, the software code;

display, on the GUI, status information of the analysis from each of the two or more software security analysis tools, the status information comprising a selectable button to configure each of the two or more software security analysis tools;

aggregate the analysis from each of the two or more software security analysis tools to create an aggregate result; and

provide, to the host server, the aggregate result for a presentation on a multi-tool security analysis website.

12. The system of claim 11 , wherein the instructions further cause the one or more processors to:

determine that a license status is expired for at least one of the two or more software security analysis tools;

generate a license renewal request for the at least one software security analysis tool;

send, to a licensor of the at least one software security analysis tool, the license renewal request;

receive, from the licensor, a license renewal for the at least one software security analysis tool; and

update the license status for the at least one software security analysis tool to a renewed license status.

13. The system of claim 12 , wherein the status information further comprises the license status, the licensor, and the renewed license status.

14. The system of claim 11 , wherein the aggregation of the analysis from each software

security analysis tool displayed on the GUI further comprises:

a first score for a combined static analysis result;

a second score for open source license analysis; and

a third score for open source known vulnerabilities.

15. The system of claim 11 , further comprising:

a scan database storing historical scan activity performed by each category of software security analysis tools.

16. The system of claim 15 , wherein the instructions further cause the one or more processors

to:

receive a request for historical scan activity corresponding to one software security analysis tool from the two or more software security analysis tools; and

provide, on the GUI, the historical scan activity.

17. The system of claim 11 , wherein the instructions further cause the one or more processors to:

receive, from the host server, user configuration settings corresponding to at least one of the two or more software security analysis tools; and

configure the at least one software security analysis tool based on the user configuration settings.

18. A multi-tool security analysis system comprising:

one or more processors;

a graphical user interface (GUI); and

memory storing instructions that, when executed by the one or more processors, cause the one or more processors to:

receive an analysis request comprising software code to be scanned and two or more software security analysis tools, each of the two or more software security analysis tools being selected from different categories of a plurality of categories comprising a first category for performing Static Application Security Testing (SAST), a second category for performing Dynamic Application Security Testing (DAST), and a third category for performing Interactive Software Security Testing (IAST);

analyze, with the two or more software security analysis tools, the software code;

display, in the GUI, status information of the analysis from each of the two or more software security analysis tools, the status information comprising a selectable button to configure each of the two or more software security analysis tools;

receive, from the GUI, user configuration settings corresponding to at least one of the two or more software security analysis tools;

configure the at least one of the two or more software security analysis tools based on the user configuration settings;

aggregate a vendor-specific output from each of the two or more software security analysis tools to create an aggregate result;

send the aggregate result to a multi-tool security analysis website for presentation; and

display, on the GUI, (i) the aggregate result and (ii) a confidence score for each of the two or more software security analysis tools.

19. The system of claim 18 , wherein the instructions further cause the one or more processors to:

determine that a license status is expired at least one of the two or more software security analysis tools;

generate a license renewal request for the at least one software security analysis tool;

send, to a licensor of the at least one software security analysis tool, the license renewal request;

receive, from the licensor, a license renewal for the at least one software security analysis tool; and

update the license status for the at least one software security analysis tool to a renewed license status.

20. The system of claim 18 , wherein the instructions further cause the one or more processors

to:

receive a request for historical scan activity corresponding to one software security analysis tool of the two or more software security analysis tools; and

provide, on the GUI, the historical scan activity.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 22, 2024
From: YOUNGBERG, ADAM; FILBEY, DAVID; FERNANDO, KISHORE PRABAKARAN
To: CAPITAL ONE SERVICES, LLC
Reel/Frame 069370/0428 →
Continuity (9)
Continuation In Part 17208658 · Mar 22, 2021
Continuation In Part 17181600 · Feb 22, 2021
Continuation In Part 16718777 · Dec 18, 2019
Continuation 16593412 · Oct 4, 2019
Continuation 16551563 · Aug 26, 2019
Continuation 16177236 · Oct 31, 2018
Continuation 16177275 · Oct 31, 2018
Continuation 16177178 · Oct 31, 2018
Related Publication 20220261480A1 · Aug 18, 2022
References Cited (80)
US 6944775B2 · Barton et al. · 2005 [cited by applicant]
US 7207065B2 · Chess et al. · 2007 [cited by applicant]
US 8661547B1 · Kononov et al. · 2014 [cited by applicant]
US 9208312B2 · Wiseman et al. · 2015 [cited by applicant]
US 9264395B1 · Stamos · 2016 [cited by applicant]
US 9418230B2 · Archer et al. · 2016 [cited by applicant]
US 9501345B1 · Lietz et al. · 2016 [cited by applicant]
US 9544327B1 · Sharma et al. · 2017 [cited by applicant]
US 9589560B1 · Vitaladevuni et al. · 2017 [cited by applicant]
US 9633182B2 · Scapa · 2017 [cited by applicant]
US 9749349B1 · Czarny et al. · 2017 [cited by applicant]
US 9781148B2 · Mahaffey · 2017 [cited by examiner]
US 9846781B2 · Kejriwal et al. · 2017 [cited by applicant]
US 9996693B2 · Sun et al. · 2018 [cited by applicant]
US 10116681B2 · Cornell et al. · 2018 [cited by applicant]
US 10581897B1 · Natanzon et al. · 2020 [cited by applicant]
US 20030051154A1 · Barton et al. · 2003 [cited by applicant]
US 20060124726A1 · Kotovich et al. · 2006 [cited by applicant]
US 20070162761A1 · Davis et al. · 2007 [cited by applicant]
US 20080235141A1 · Hilerio et al. · 2008 [cited by applicant]
US 20090024663A1 · McGovern · 2009 [cited by applicant]
US 20090044024A1 · Oberheide et al. · 2009 [cited by applicant]
US 20090249488A1 · Robinson et al. · 2009 [cited by applicant]
US 20100083240A1 · Siman · 2010 [cited by applicant]
US 20100218256A1 · Thomas et al. · 2010 [cited by applicant]
US 20100281248A1 · Lockhart et al. · 2010 [cited by applicant]
US 20100333069A1 · Chandra et al. · 2010 [cited by applicant]
US 20110231361A1 · Patchava et al. · 2011 [cited by applicant]
US 20120054857A1 · Bisso et al. · 2012 [cited by applicant]
US 20120084859A1 · Radinsky et al. · 2012 [cited by applicant]
US 20130097701A1 · Moyle et al. · 2013 [cited by applicant]
US 20130111592A1 · Zhu et al. · 2013 [cited by applicant]
US 20130227695A1 · Shankar · 2013 [cited by applicant]
US 20130247167A1 · Paul et al. · 2013 [cited by applicant]
US 20130312102A1 · Brake et al. · 2013 [cited by applicant]
US 20140181975A1 · Spernow et al. · 2014 [cited by applicant]
US 20140304818A1 · Li · 2014 [cited by applicant]
US 20140337982A1 · Crosby et al. · 2014 [cited by applicant]
US 20150020203A1 · Xie et al. · 2015 [cited by applicant]
US 20150052606A1 · Romero et al. · 2015 [cited by applicant]
US 20150096036A1 · Beskrovny et al. · 2015 [cited by applicant]
US 20150113332A1 · Fu · 2015 [cited by applicant]
US 20150180883A1 · Aktas et al. · 2015 [cited by applicant]
US 20150215332A1 · Curcic et al. · 2015 [cited by applicant]
US 20150237063A1 · Cotton et al. · 2015 [cited by applicant]
US 20150244737A1 · Siman · 2015 [cited by applicant]
US 20150309813A1 · Patel · 2015 [cited by applicant]
US 20150356280A1 · Lori · 2015 [cited by applicant]
US 20160092185A1 · Botti et al. · 2016 [cited by applicant]
US 20160099963A1 · Mahaffey et al. · 2016 [cited by applicant]
US 20160202972A1 · Sass et al. · 2016 [cited by applicant]
US 20160275116A1 · Shi et al. · 2016 [cited by applicant]
US 20160292066A1 · Stevens et al. · 2016 [cited by applicant]
US 20160373480A1 · Sridhar · 2016 [cited by applicant]
US 20170091459A1 · Childress et al. · 2017 [cited by applicant]
US 20170169228A1 · Brucker et al. · 2017 [cited by applicant]
US 20170212829A1 · Bales et al. · 2017 [cited by applicant]
US 20170244740A1 · Mahabir et al. · 2017 [cited by applicant]
US 20170249143A1 · Sass et al. · 2017 [cited by applicant]
US 20170270303A1 · Roichman et al. · 2017 [cited by applicant]
US 20180007077A1 · Boia et al. · 2018 [cited by applicant]
US 20180025154A1 · Cornell et al. · 2018 [cited by applicant]
US 20180144127A1 · Duer et al. · 2018 [cited by applicant]
US 20180157842A1 · Holz et al. · 2018 [cited by applicant]
US 20180176245A1 · Cornell et al. · 2018 [cited by applicant]
US 20180330102A1 · Siman et al. · 2018 [cited by applicant]
US 20190005206A1 · Sahoo et al. · 2019 [cited by applicant]
US 20190065833A1 · Wang et al. · 2019 [cited by applicant]
US 20190102286A1 · Duer et al. · 2019 [cited by applicant]
US 20190114435A1 · Bhalla et al. · 2019 [cited by applicant]
US 20190141075A1 · Gay et al. · 2019 [cited by applicant]
US 20190171550A1 · Eizenman et al. · 2019 [cited by applicant]
US 20190180035A1 · Esperer et al. · 2019 [cited by applicant]
US 20190180039A1 · Considine et al. · 2019 [cited by applicant]
US 20190205542A1 · Kao et al. · 2019 [cited by applicant]
US 20190325145A1 · Siman et al. · 2019 [cited by applicant]
US 20190354686A1 · Czaplewski et al. · 2019 [cited by applicant]
WO 2016018289A1 · 2016 [cited by applicant]
Codeburner—One static analysis tool to rule them all; http://groupon.github.io/codeburner/; Apr. 21, 2016 (Year: 2016). [cited by applicant]
SCALe: A Tool for Managing Output from Static Analysis Tools; https://insights.sei.cmu.edu/sei_blog/2018/09/scale-a-tool-for-managing-output-from-static-code-analyzers.html; Sep. 24, 2018 (Year: 2018). [cited by applicant]