IP Library Granted Patent US 11,550,919
Granted Patent B2
US 11,550,919 · App. 16/798,705 · Granted Jan 10, 2023

Prioritizing patching of vulnerable components

Inventors: Danny V. Dhillon (Bothell, WA); Charles W. Kaufman (Redmond, WA); Eric Baize (Sudbury, MA)
Assignee: EMC IP Holding Company LLC
G06F21/572G06F8/65G06F21/577G06F2221/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 11,550,919
App. No.
16/798,705
Granted
Jan 10, 2023
Kind
B2
Abstract

Methods, apparatus, and processor-readable storage media for prioritizing patching of vulnerable components are provided herein. An example computer-implemented method includes obtaining information indicative of a first set of components embedded in a software package; determining risk levels for respective ones of the components in the first set based on a data flow representation of the software package; and assigning a priority for patching a software vulnerability in a given component of the first set based at least in part on the risk level of the given component.

Claims (57)

1. A computer-implemented method comprising:

obtaining information indicative of a first set of components embedded in a software package;

obtaining a data flow representation generated for the software package, wherein the data flow representation is indicative of a second set of components embedded in the software package;

determining risk levels for respective ones of the components in the first set based on the data flow representation of the software package, wherein the determining the risk level for a given component in the first set comprises: (i) verifying that the second set of components comprises the given component and (ii) determining, from the data flow representation, that the given component in the first set both receives input data that originates from an external source, relative to the given component, and one or more of: reads and writes sensitive data; and

assigning a priority for patching a software vulnerability in the given component of the first set based at least in part on the risk level of the given component;

wherein the method is performed by at least one processing device comprising a processor coupled to a memory.

2. The computer-implemented method of claim 1 , wherein the verifying comprises:

verifying that the second set of components comprises each component in the first set.

3. The computer-implemented method of claim 2 , wherein the data flow representation of the software package is generated based on one or more of a static analysis and a threat-model analysis.

4. The computer-implemented method of claim 1 , wherein the obtained information is generated using a software composition analysis mechanism.

5. The computer-implemented method of claim 1 , wherein each of the risk levels comprises a modifier value based on one or more characteristics of the corresponding component in the data flow representation.

6. The computer-implemented method of claim 5 , wherein the one or more characteristics comprise at least one of:

whether or not the component enforces a security control;

whether or not the component received a tainted input data flow;

whether or not the tainted input data flow originates from a trusted user;

whether or not sensitive information is read;

whether or not sensitive information is written;

whether or not the component spawns a process that reads and/or writes sensitive information;

whether or not the component communicates with a process that reads and/or writes sensitive information;

whether or not the component is hardened to reduce an attack surface; or

whether or not the component is deployed in a least privilege manner.

7. The computer-implemented method of claim 5 , wherein assigning the priority for patching the software vulnerability in the given component comprises:

adjusting a score associated with a type of the software vulnerability by the modifier value of the given component.

8. The computer-implemented method of claim 1 , wherein the information comprises a software bill of materials, and wherein the method comprises augmenting the software bill of materials with the determined risk levels.

9. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device causes the at least one processing device:

to obtain information indicative of a first set of components embedded in a software package;

to obtain a data flow representation generated for the software package, wherein the data flow representation is indicative of a second set of components embedded in the software package;

to determine risk levels for respective ones of the components in the first set based on the data flow representation of the software package, wherein the determining the risk level for a given component in the first set comprises: (i) verifying that the second set of components comprises the given component and (ii) determining, from the data flow representation, that the given component in the first set both receives input data that originates from an external source, relative to the given component, and one or more of: reads and writes sensitive data; and

to assign a priority for patching a software vulnerability in the given component of the first set based at least in part on the risk level of the given component.

10. The computer program product of claim 9 , wherein the verifying comprises: verifying that the second set of components comprises each component in the first set.

11. The computer program product of claim 10 , wherein the data flow representation of the software package is generated based on one or more of a static analysis and a threat-model analysis.

12. The computer program product of claim 9 , wherein the obtained information is generated using a software composition analysis mechanism.

13. The computer program product of claim 9 , wherein each of the risk levels comprises a modifier value based on one or more characteristics of the corresponding component in the data flow representation.

14. The computer program product of claim 13 , wherein the one or more characteristics comprise at least one of:

whether or not the component enforces a security control;

whether or not the component received a tainted input data flow;

whether or not the tainted input data flow originates from a trusted user;

whether or not sensitive information is read;

whether or not sensitive information is written;

whether or not the component spawns a process that reads and/or writes sensitive information;

whether or not the component communicates with a process that reads and/or writes sensitive information;

whether or not the component is hardened to reduce an attack surface; or

whether or not the component is deployed in a least privilege manner.

15. The computer program product of claim 13 , wherein assigning the priority for patching the software vulnerability in the given component comprises:

adjusting a score associated with a type of the software vulnerability by the modifier value of the given component.

16. The computer program product of claim 9 , wherein the information comprises a software bill of materials, and wherein the at least one processing device is further caused to augment the software bill of materials with the determined risk levels.

17. An apparatus comprising:

at least one processing device comprising a processor coupled to a memory;

the at least one processing device being configured:

to obtain information indicative of a first set of components embedded in a software package;

to obtain a data flow representation generated for the software package, wherein the data flow representation is indicative of a second set of components embedded in the software package;

to determine risk levels for respective ones of the components in the first set based on the data flow representation of the software package, wherein the determining the risk level for a given component in the first set comprises: (i) verifying that the second set of components comprises the given component and (ii) determining, from the data flow representation, that the given component in the first set both receives input data that originates from an external source, relative to the given component, and one or more of: reads and writes sensitive data; and

to assign a priority for patching a software vulnerability in the given component of the first set based at least in part on the risk level of the given component.

18. The apparatus of claim 17 , wherein the verifying comprises:

verifying that the second set of components comprises each component in the first set.

19. The apparatus of claim 18 , wherein the data flow representation of the software package is generated based on one or more of a static analysis and a threat-model analysis.

20. The apparatus of claim 17 , wherein the obtained information is generated using a software composition analysis mechanism.

Assignments (14)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052852/0022) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0582 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0917) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0509 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0081) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0441 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST AT REEL 052771 FRAME 0906 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0298 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 2, 2021
From: KAUFMAN, CHARLES W.; BAIZE, ERIC
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 055805/0983 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 2, 2021
From: DHILLON, DANNY
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 055806/0506 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0917 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0081 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052852/0022 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded May 28, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052771/0906 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →