IP Library Granted Patent US 11,443,046
Granted Patent B2
US 11,443,046 · App. 15/676,044 · Granted Sep 13, 2022

Entry point finder

Inventors: Sergio Javier Abraham (Ciudad Autónoma de Buenos Aires, AR); Pablo Agustin Artuso (Olivos, AR); Alejandro Gabriel Burzyn (Ciudad Autónoma de Buenos aires, AR)
Assignee: Onapsis, Inc.
G06F21/60G06F16/23G06F16/33G06F16/34G06F21/563G06F21/577H04L63/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 11,443,046
App. No.
15/676,044
Granted
Sep 13, 2022
Kind
B2
Abstract

A computer-based method of analyzing a business-critical application computer system includes extracting a plurality of software objects from the business-critical application computer system, storing the extracted software objects in a computer-based search platform, finding relationships between the extracted software objects that are stored in the computer-based search platform, and creating a database that represents the extracted software objects and the relationships between the extracted software objects. Each software object (a unique piece of code, a file, a data string, or other aspect of the business-critical application computer system) may represent an element of the business-critical application computer system whose graphical representation as a node connected to another node based on relationships, functional or otherwise, between the corresponding elements is desirable in view of a particular goal of the analysis.

Claims (65)

1. A computer-based method of analyzing a business-critical application computer system to find relationships among software objects associated with the business-critical application computer system, the method comprising:

extracting a plurality of software objects from the business-critical application computer system;

storing the extracted software objects in a computer-based search platform;

finding relationships between the extracted software objects that are stored in the computer-based search platform;

creating a database that represents the extracted software objects and the relationships between the extracted software objects;

producing a graphical user interface for the created database that displays each respective of the extracted software objects as a single node and displays one or more of the relationships as one or more connectors between the nodes that correspond to the related software objects;

identifying a plurality of entry points based on the database or the graphical user interface, wherein each of the entry points comprises one of the extracted software objects or one of the relationships that can be accessed by an end user, wherein the extracted software objects and the relationships that cannot be accessed by the end user are not identified as an entry point;

receiving, from the end user, a specified period of time for the analyzing that is prompted in the graphical user interface for selection by the end user;

receiving end user activities over the specified period of time, wherein the identifying of the entry points is over the specified period of time;

cross-referencing the end user activities against the identified entry points to further identify any of the entry points being modified and being used as part of the end user activities during the specified period of time; and

determining vulnerabilities based on the cross-referencing, wherein the determined vulnerabilities are the identified entry points being modified and being used as part of the end user activities during the specified period of time.

2. The computer-based method of claim 1 , wherein the software objects are elements of the business-critical application computer system whose graphical representation as nodes connected to one another based on relationships between the corresponding elements is based on a particular goal of the analysis, further wherein each respective one of the elements of the business-critical application computer system is a unique piece of code, a software file, or other aspect of the business-critical application computer system.

3. The computer-based method of claim 1 , further comprising:

producing a list of functions impacted by the determined vulnerability;

producing a list of end users that are using the functions;

determining which functions were not used.

4. The computer-based method of claim 1 , wherein the modification comprises a patch that modifies one or more of the software objects.

5. The computer-based method of claim 1 , wherein some of the software objects include source code from the business-critical application computer system, and other some of the software objects do not include source code from the business-critical application computer system.

6. The computer-based method of claim 5 , wherein the extracting of the software objects that include source code comprises:

querying the business-critical application computer system for names of packages associated with the business-critical application computer system;

receiving a list of package names associated with the business-critical application computer system in response to the query; and

storing the list of package names in a first queue.

7. The computer-based method of claim 6 , wherein extracting the software objects that include source code further comprises:

selecting one package name from the first queue;

extracting, with a particular one of a plurality of extractors, the source code associated with the selected package name from the business-critical application computer system.

8. The computer-based method of claim 7 , further comprising:

saving a compressed version of the extracted source code at a first computer-based memory location; and

pushing the location of the stored compressed version of the extracted source code to a second queue.

9. The computer-based method of claim 7 , further comprising:

saving a decompressed version of the extracted source code at a second computer-based memory location; and

pushing the location of the stored decompressed version of the extracted source code to a third queue.

10. The computer-based method of claim 5 , wherein extracting the software objects that do not include source code comprises:

pushing the software objects that do not include source code to queues, each of which is for a particular type of software object that does not include source code.

11. The computer-based method of claim 1 , wherein storing the extracted software objects in a computer-based search platform comprises:

reading, with one or more search platform uploaders, source code from a computer-based memory storage, based on the location information in a queue,

reading, with the one or more search platform uploaders, non-source code-based objects from one or more software object queues; and

storing what the one or more search platform uploaders read into the search platform with an intelligent structure.

12. The computer-based method of claim 1 , wherein finding relationships between the extracted software objects that are stored in the computer-based search platform comprises:

for software objects that have source code:

reading each statement of the source code; and

determining whether any statements in the source code define a relationship between any of the software objects; and

for software objects that do not have source code:

executing one or more queries regarding possible relationships between any of the software objects.

13. The computer-based method of claim 1 , wherein the graphical user interface is the database created and comprises a graph database to facilitate visualization of the software objects of the business-critical application computer system and their respective relationships to one another.

14. An entry point finder (EPF) comprising:

a plurality of worker modules;

a plurality of queues, wherein each one of the queues is communicatively coupled to a corresponding one or more of the worker modules;

a plurality of computer-based memory storage locations, wherein each one of the computer-based memory storage locations is communicatively coupled to a corresponding one or more of the worker modules; and

a computer-based search platform communicatively coupled to at least one of the worker modules, wherein the entry point finder is configured to:

extract, with execution of one or more of the worker modules, a plurality of software objects from a business-critical application computer system;

store the extracted software objects in the computer-based search platform;

find relationships, with execution of one or more of the worker modules, between the extracted software objects that are stored in the computer-based search platform;

create a database that represents the extracted software objects and the relationships between the extracted software objects; and

identify an entry point that is at least one of the extracted software objects or at least one of the relationships which an end user can execute;

receive, from the end user through a graphical user interface, a specified period of time for analyzing;

extract end user activities executed by the identified entry point over the specified period of time, wherein the identifying of the entry point is over the specified period of time;

cross-referencing the end user activities against the identified entry point to further identify any entry point being modified and being used as part of the end user activities during the specified period of time; and

determine vulnerabilities based on the cross-referencing, wherein the determined vulnerabilities are any of the identified entry point being modified and being used as part of the end user activity during the specified period of time.

15. The entry point finder claim 14 , wherein the entry point finder is configured to display each respective of the extracted software objects as a single node and display one or more of the relationships as one or more connectors between the nodes that correspond to the related software objects, wherein the software objects are elements of the business-critical application computer system whose graphical representation as the nodes connected to one another based on the relationships between the corresponding elements is based on a particular goal of the analysis.

16. The entry point finder of claim 15 , wherein each respective one of the elements of the business-critical application computer system is a unique piece of code, a software file, or other aspect of the business-critical application computer system.

17. The entry point finder of claim 15 , wherein the database is configured to facilitate a graphical display that shows:

each respective software object as a single node in the graph database; and

one or more relationships between the software objects by one or more connectors between the nodes that correspond to the related software objects.

18. The entry point finder of claim 14 , wherein the entry point finder is further configured to

determine a vulnerability based on the end user activity.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded Aug 14, 2024
From: FIRST-CITIZENS BANK & TRUST COMPANY
To: ONAPSIS, INC.
Reel/Frame 068289/0125 →
SECURITY INTEREST Recorded Oct 6, 2022
From: ONAPSIS INC.
To: SILICON VALLEY BANK
Reel/Frame 061332/0063 →
RELEASE OF SECURITY INTEREST Recorded Nov 16, 2021
From: GOLUB CAPITAL LLC, AS AGENT
To: ONAPSIS, INC.
Reel/Frame 058129/0338 →
SECURITY INTEREST Recorded Sep 8, 2021
From: ONAPSIS INC.
To: SILICON VALLEY BANK
Reel/Frame 057407/0920 →
SECURITY INTEREST Recorded Oct 15, 2019
From: ONAPSIS INC.
To: GOLUB CAPITAL LLC, AS AGENT
Reel/Frame 050723/0914 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2017
From: ABRAHAM, SERGIO JAVIER; ARTUSO, PABLO AGUSTÍN; BURZYN, ALEJANDRO GABRIEL
To: ONAPSIS, INC.
Reel/Frame 043995/0339 →
Continuity (1)
Related Publication 20190050579A1 · Feb 14, 2019