IP Library Granted Patent US 10,878,106
Granted Patent B2
US 10,878,106 · App. 16/693,929 · Granted Dec 29, 2020

Firmware verification

Inventors: Netanel Davidi (Tel Aviv, IL); Uri Alter (Tel Aviv, IL); Asaf Karas (Tel Aviv, IL); Omer Schory (Givatayim, IL)
Assignee: VDOO CONNECTED TRUST LTD.
G06F21/577G06F8/65G06F11/0793
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 10,878,106
App. No.
16/693,929
Granted
Dec 29, 2020
Kind
B2
Abstract

A method, apparatus and product for firmware verification. The method comprises obtaining a list of libraries utilized by a firmware. The method comprises determining a set of vulnerabilities of the firmware by identifying vulnerabilities corresponding to each library of the list of libraries. The method further comprises determining a set of remedial actions for the set of vulnerabilities, the set of remedial actions including an offline remedial action and an online remedial action. The method further comprises determining for the set of vulnerabilities a combination of remedial actions based on estimated costs and estimated runtime overheads of the set of remedial actions. The method further comprises providing an output based on the combination of remedial actions.

Claims (53)

1. A method comprising:

obtaining a list of libraries utilized by a firmware;

determining a set of vulnerabilities of the firmware based on a vulnerabilities database, wherein the vulnerabilities database comprises known vulnerabilities of libraries, wherein said determining comprises identifying in the vulnerabilities database vulnerabilities corresponding to each library of the list of libraries;

determining a set of remedial actions for the set of vulnerabilities, wherein each remedial action of the set of remedial actions is associated with at least one of an estimated cost and estimated runtime overhead, wherein the set of remedial actions comprises a remedial action that is adapted to remedy at least two vulnerabilities of the firmware, wherein the set of remedial actions comprises at least two alternative remedial actions for a vulnerability of the firmware, wherein the set of remedial actions comprises an offline remedial action and an online remedial action, wherein the offline remedial action is a remedial action that fixes a first vulnerability in the firmware prior to an execution of the firmware, wherein the online remedial action is a remedial action performed by a runtime component that protects the firmware from an exploitation of a second vulnerability during the execution of the firmware;

determining for the set of vulnerabilities a combination of remedial actions of the set of remedial actions, wherein the combination of remedial actions is determined based on estimated costs and estimated runtime overheads of the set of remedial actions; and

providing an output based on the combination of remedial actions.

2. The method of claim 1 , wherein the estimated cost is based at least in part on estimated development times of offline remedial actions.

3. The method of claim 1 , wherein said determining the combination of remedial actions is performed based on a limitation on a total development time and based on a limitation on an overall runtime overhead.

4. The method of claim 1 , wherein the offline remedial action comprises at least one of an automatic fix of the first vulnerability and a manual fix of the first vulnerability.

5. The method of claim 1 , wherein the offline remedial action comprises updating a library of the list of libraries to a different version of the library that is not vulnerable to the vulnerability.

6. The method of claim 1 comprising determining that a specific vulnerability of the firmware is not valid according to a predefined condition, wherein said determining the set of vulnerabilities comprises omitting the specific vulnerability to provide a valid set of vulnerabilities.

7. The method of claim 1 , wherein said obtaining comprises obtaining firmware code and detecting the list of libraries based on the firmware code.

8. The method of claim 7 comprising executing the firmware on a computing machine to obtain the firmware code from a memory of the computing machine.

9. The method of claim 8 , wherein said executing the firmware comprises querying a runtime system of the firmware to determine the list of libraries.

10. The method of claim 1 , wherein the output comprises a plurality of recommendations of remedial actions to be performed, each recommendation comprising at least one of an estimated cost of the recommendation and estimated runtime overhead for the recommendation.

11. The method of claim 1 , wherein the output comprises a recommendation of remedial actions to be performed, wherein, in response to a user acknowledging the recommendation, performing at least a portion of the remedial actions automatically.

12. The method of claim 1 , wherein said providing the output comprises:

updating the firmware to be immune from a first portion of the set of vulnerabilities; and

configuring the runtime component to protect against exploitation of a second portion of the set of vulnerabilities,

whereby during execution of the updated firmware together with the configured runtime component, the updated firmware is not susceptible to any vulnerability of the first and second portions of the set of vulnerabilities.

13. The method of claim 1 , wherein said determining the combination comprises:

defining a set cover problem based on the set of remedial actions and based on the set of vulnerabilities; and

automatically solving the set cover problem.

14. The method of claim 1 , wherein said determining the combination comprises minimizing an overall estimated cost of the combination.

15. The method of claim 1 , wherein said determining the combination comprises minimizing an overall estimated runtime overhead.

16. The method of claim 15 , wherein said minimizing the overall estimated runtime overhead is performed while adhering to a maximal threshold on an overall estimated cost of the combination.

17. The method of claim 1 , wherein said determining the set of vulnerabilities is determined to include vulnerabilities associated with a standard requirement or a certification requirement.

18. The method of claim 1 comprising, after said providing, determining a new set of vulnerabilities and corresponding new remedial actions comprising a first remedial action that fixes a third vulnerability in the firmware prior to the execution of the firmware, and a second remedial action that protects the firmware from the exploitation of the second vulnerability during the execution of the firmware.

19. The method of claim 1 comprising providing a work plan configured to certify the firmware, said work plan comprising an estimated total development time and a set of instructions to be performed manually by a developer for implementing at least one offline remedial action.

20. A computer program product comprising a non-transitory computer readable storage medium retaining program instructions, which program instructions when read by a processor, cause the processor to perform a method including:

obtaining a list of libraries utilized by a firmware;

determining a set of vulnerabilities of the firmware based on a vulnerabilities database, wherein the vulnerabilities database comprises known vulnerabilities of libraries, wherein said determining comprises identifying in the vulnerabilities database vulnerabilities corresponding to each library of the list of libraries;

determining a set of remedial actions for the set of vulnerabilities, wherein each remedial action of the set of remedial actions is associated with at least one of an estimated cost and estimated runtime overhead, wherein the set of remedial actions comprises a remedial action that is adapted to remedy at least two vulnerabilities of the firmware, wherein the set of remedial actions comprises at least two alternative remedial actions for a vulnerability of the firmware, wherein the set of remedial actions comprises an offline remedial action and an online remedial action, wherein the offline remedial action is a remedial action that fixes a first vulnerability in the firmware prior to an execution of the firmware, wherein the online remedial action is a remedial action performed by a runtime component that protects the firmware from an exploitation of a second vulnerability during the execution of the firmware;

determining for the set of vulnerabilities a combination of remedial actions of the set of remedial actions, wherein the combination of remedial actions is determined based on estimated costs and estimated runtime overheads of the set of remedial actions; and

providing an output based on the combination of remedial actions.

21. The computer program product of claim 20 , wherein the estimated cost is based at least in part on estimated development times of offline remedial actions.

22. The computer program product of claim 20 , wherein said determining the combination of remedial actions is performed based on a limitation on a total development time and based on a limitation on an overall runtime overhead.

23. The computer program product of claim 20 , wherein the offline remedial action comprises at least one of an automatic fix of the first vulnerability and a manual fix of the first vulnerability.

24. The computer program product of claim 20 , wherein the output comprises a plurality of recommendations of remedial actions to be performed, each recommendation comprising at least one of an estimated cost of the recommendation and estimated runtime overhead for the recommendation.

25. The computer program product of claim 20 , wherein the output comprises a recommendation of remedial actions to be performed, wherein, in response to a user acknowledging the recommendation, performing at least a portion of the remedial actions automatically.

26. The computer program product of claim 20 , wherein said providing the output comprises:

updating the firmware to be immune from a first portion of the set of vulnerabilities; and

configuring the runtime component to protect against exploitation of a second portion of the set of vulnerabilities,

whereby during execution of the updated firmware together with the configured runtime component, the updated firmware is not susceptible to any vulnerability of the first and second portions of the set of vulnerabilities.

27. The computer program product of claim 20 , wherein said determining the combination comprises minimizing an overall estimated cost of the combination.

28. The computer program product of claim 20 , wherein the instructions, when read by the processor, cause the processor to, after said providing, determine a new set of vulnerabilities and corresponding new remedial actions comprising a first remedial action that fixes a third vulnerability in the firmware prior to the execution of the firmware, and a second remedial action that protects the firmware from the exploitation of the second vulnerability during the execution of the firmware.

29. The computer program product of claim 20 , wherein the instructions, when read by the processor, cause the processor to provide a work plan configured to certify the firmware, the work plan comprising an estimated total development time and a set of instructions to be performed manually by a developer for implementing at least one offline remedial action.

30. A computerized apparatus having a processor and memory, the processor being adapted to perform the steps of:

obtaining a list of libraries utilized by a firmware;

determining a set of vulnerabilities of the firmware based on a vulnerabilities database, wherein the vulnerabilities database comprises known vulnerabilities of libraries, wherein said determining comprises identifying in the vulnerabilities database vulnerabilities corresponding to each library of the list of libraries;

determining a set of remedial actions for the set of vulnerabilities, wherein each remedial action of the set of remedial actions is associated with at least one of an estimated cost and estimated runtime overhead, wherein the set of remedial actions comprises a remedial action that is adapted to remedy at least two vulnerabilities of the firmware, wherein the set of remedial actions comprises at least two alternative remedial actions for a vulnerability of the firmware, wherein the set of remedial actions comprises an offline remedial action and an online remedial action, wherein the offline remedial action is a remedial action that fixes a first vulnerability in the firmware prior to an execution of the firmware, wherein the online remedial action is a remedial action performed by a runtime component that protects the firmware from an exploitation of a second vulnerability during the execution of the firmware;

determining for the set of vulnerabilities a combination of remedial actions of the set of remedial actions, wherein the combination of remedial actions is determined based on estimated costs and estimated runtime overheads of the set of remedial actions; and

providing an output based on the combination of remedial actions.

Assignments (2)
MERGER Recorded Jun 8, 2022
From: VDOO CONNECTED TRUST LTD
To: JFROG LTD
Reel/Frame 060132/0325 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 25, 2019
From: DAVIDI, NETANEL; ALTER, URI; KARAS, ASAF; SCHORY, OMER
To: VDOO CONNECTED TRUST LTD.
Reel/Frame 051113/0159 →
Continuity (3)
Continuation 16525884 · Jul 30, 2019
Provisional Application 62713083 · Aug 1, 2018
Related Publication 20200089893A1 · Mar 19, 2020
Cited By (1)
US 12,705,044