IP Library Granted Patent US 11,422,799
Granted Patent B1
US 11,422,799 · App. 17/125,069 · Granted Aug 23, 2022

Organizing software packages based on identification of unique attributes

Inventors: Damon A. Weinstein (Arlington, MA); Mayur Anil Kadu (Burlington, MA); Jay E. Ricco (Arlington, MA); Kathleen E. Corbett (Lowell, MA); Jagat Prakashchandra Parekh (Andover, MA); Sai Keerthy Kakarla (Burlington, MA)
Assignee: Synopsys, Inc.
G06F8/75G06F8/71G06N5/003G06N20/00
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,422,799
App. No.
17/125,069
Granted
Aug 23, 2022
Kind
B1
Abstract

A set of attributes of software packages may be determined by analyzing a first set of software packages, where the set of attributes of software packages may be useful for uniquely identifying software packages in the first set of software packages. A heuristic may be created or a machine learning model may be trained that combines the set of attributes of software packages to uniquely identify software packages in the first set of software packages. The heuristic or the trained machine learning model may be used to categorize a second set of software packages, or determine relationships among a second set of software packages.

Claims (53)

1. A method, comprising:

determining a set of attributes of software packages by analyzing a first set of software packages, wherein the set of attributes of software packages are useful for uniquely identifying software packages in the first set of software packages, wherein the set of attributes of software packages includes a first set of attributes based on package manager metadata of the first set of software packages, and wherein the first set of attributes is determined by:

tokenizing one or more components of package manager metadata of the first set of software packages to obtain a set of tokens,

determining a frequency of occurrence of each token in the set of tokens, and

selecting one or more tokens from the set of tokens as the first set of attributes based on the frequency of occurrences of tokens;

creating, by a processing device, a heuristic that combines the set of attributes of software packages to uniquely identify software packages in the first set of software packages; and

categorizing a second set of software packages by using the heuristic.

2. The method of claim 1 , wherein the set of attributes of software packages includes a second set of attributes based on version and release metadata of the first set of software packages.

3. The method of claim 2 , wherein the second set of attributes is determined by:

extracting version and release date metadata of the first set of software packages to obtain a set of version and release date tuples;

determining a frequency of occurrence of each version and release date tuple in the set of version and release date tuples; and

selecting one or more version and release date tuples from the set of version and release date tuples as the second set of attributes based on the frequency of occurrences of version and release date tuples.

4. The method of claim 1 , wherein the set of attributes of software packages includes a third set of attributes based on signatures computed using contents of the first set of software packages.

5. The method of claim 4 , wherein the third set of attributes is determined by:

computing signatures based on contents of the first set of software packages to obtain a set of signatures;

determining a frequency of occurrence of each signature in the set of signatures; and

selecting one or more signatures from the set of signatures as the third set of attributes based on the frequency of occurrences of signatures.

6. A system, comprising:

a memory storing instructions; and

a processor, coupled with the memory and to execute the instructions, the instructions when executed cause the processor to:

determine a set of attributes of software packages by analyzing a first set of software packages, wherein the set of attributes of software packages are associated with identifying software packages in the first set of software packages, wherein the set of attributes of software packages includes a second set of attributes based on version and release metadata of the first set of software packages, and wherein the second set of attributes is determined by:

extracting version and release date metadata of the first set of softwate packages to obtain a set of version and release date tuples;

determining a frequency of occurrence of each version and release date tuple in the set of version and release date tuples; and

selecting one or more version and release date tuples from the set of version and release date tuples as the second set of attributes based on the frequency of occurrences of version and release date tuples;

create a heuristic that combines the set of attributes of software packages to identify software packages in the first set of software packages; and

determine relationships among a second set of software packages by using the heuristic.

7. The system of claim 6 , wherein the set of attributes of software packages includes a first set of attributes based on package manager metadata of the first set of software packages.

8. The system of claim 7 , wherein the first set of attributes is determined by:

tokenizing one or more components of package manager metadata of the first set of software packages to obtain a set of tokens;

determining a frequency of occurrence of each token in the set of tokens; and

selecting one or more tokens from the set of tokens as the first set of attributes based on the frequency of occurrences of tokens.

9. The system of claim 6 , wherein the set of attributes of software packages includes a third set of attributes based on signatures computed using contents of the first set of software packages.

10. The system of claim 9 , wherein the third set of attributes is determined by:

computing signatures based on contents of the first set of software packages to obtain a set of signatures;

determining a frequency of occurrence of each signature in the set of signatures; and

selecting one or more signatures from the set of signatures as the third set of attributes based on the frequency of occurrences of signatures.

11. A non-transitory computer-readable medium comprising stored instructions, which when executed by a processor, cause the processor to:

determine a set of attributes of software packages by analyzing a first set of software packages, wherein the set of attributes of software packages are useful for uniquely identifying software packages in the first set of software packages, wherein the set of attributes of software packages includes a third set of attributes based on signatures computed using contents of the first set of software packages, and wherein the third set of attributes is determined by:

computing signatures based on contents of the first set of software packages to obtain a set of signatures;

determining a frequency of occurrence of each signature in the set of signatures; and

selecting one or more signatures from the set of signatures as the third set of attributes based on the frequency of occurrences of tokens;

train a machine learning model that combines the set of attributes of software packages to uniquely identify software packages in the first set of software packages; and

categorize a second set of software packages by using the machine learning model.

12. The non-transitory computer-readable medium of claim 11 , wherein the set of attributes of software packages includes a first set of attributes based on package manager metadata of the first set of software packages.

13. The non-transitory computer-readable medium of claim 12 , wherein the first set of attributes is determined by:

tokenizing one or more components of package manager metadata of the first set of software packages to obtain a set of tokens;

determining a frequency of occurrence of each token in the set of tokens; and

selecting one or more tokens from the set of tokens as the first set of attributes based on the frequency of occurrences of tokens.

14. The non-transitory computer-readable medium of claim 11 , wherein the set of attributes of software packages includes a second set of attributes based on version and release metadata of the first set of software packages.

15. The non-transitory computer-readable medium of claim 14 , wherein the second set of attributes is determined by:

extracting version and release date metadata of the first set of software packages to obtain a set of version and release date tuples;

determining a frequency of occurrence of each version and release date tuple in the set of version and release date tuples; and

selecting one or more version and release date tuples from the set of version and release date tuples as the second set of attributes based on the frequency of occurrences of version and release date tuples.

Assignments (4)
SECURITY INTEREST Recorded Sep 30, 2024
From: BLACK DUCK SOFTWARE, INC.
To: ARES CAPITAL CORPORATION, AS COLLATERAL AGENT
Reel/Frame 069083/0149 →
CHANGE OF NAME Recorded Jul 30, 2024
From: SOFTWARE INTEGRITY GROUP, INC.
To: BLACK DUCK SOFTWARE, INC.
Reel/Frame 068191/0490 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2024
From: SYNOPSYS, INC.
To: SOFTWARE INTEGRITY GROUP, INC.
Reel/Frame 066664/0821 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2021
From: WEINSTEIN, DAMON A.; KADU, MAYUR ANIL; RICCO, JAY E.; CORBETT, KATHLEEN E.; PAREKH, JAGAT PRAKASHCHANDRA; KAJKARLA, SAI KEERTHY
To: SYNOPSYS, INC.
Reel/Frame 054893/0817 →