IP Library Granted Patent US 11,861,016
Granted Patent B2
US 11,861,016 · App. 17/223,675 · Granted Jan 2, 2024

Multi-stage training of machine learning models

Inventors: Michael Roytman (Chicago, IL); Jay Jacobs (St. Paul, MN)
G06F21/577G06N7/01G06N20/00G06F2221/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,861,016
App. No.
17/223,675
Granted
Jan 2, 2024
Kind
B2
Abstract

Generation of a first prediction model is caused based on first training data, where the first prediction model enables determining whether an exploit to be developed for software vulnerabilities will be used in an attack. For each training instance in the first training data, the first prediction model is used to generate a score. Each training instance is added to second training data if the score is greater than a threshold value. The second training data is a subset of the first training data. Generation of a second prediction model is caused based on the second training data, where the second prediction model enables determining whether an exploit to be developed for software vulnerabilities will be used in an attack.

Claims (72)

1. A system comprising:

storage media;

one or more processors; and

one or more programs stored in the storage media and configured for execution by the one or more processors, the one or more programs comprising instructions for:

storing a first prediction model that has been trained based on first training data, wherein the first prediction model enables determining a likelihood of whether exploits will be developed for software vulnerabilities;

storing a second prediction model that has been trained based on second training data consisting of training instances of said first training data which, when used to compute a corresponding score through the first prediction model, produced a score greater than a first threshold value, wherein the second prediction model enables determining a likelihood of whether exploits will be developed for software vulnerabilities;

receiving input data identifying a particular software vulnerability; and

using the second prediction model, computing a likelihood of whether exploits will be developed for the particular software vulnerability.

2. The system of claim 1 , wherein for each training instance, the corresponding score indicates a likelihood that an exploit will be developed for a software vulnerability corresponding to said each training instance.

3. The system of claim 2 , wherein scores below the first threshold value indicate that it is unlikely that an exploit will be developed for a software vulnerability.

4. The system of claim 1 , wherein the one or more programs further comprise instructions for:

causing application of the first prediction model to first input data that corresponds to a first plurality of software vulnerabilities, wherein each software vulnerability of the first plurality of software vulnerabilities has yet to have an exploit developed for said each software vulnerability;

receiving, based on the application of the first prediction model to the first input data, first output data that indicates, for each software vulnerability of the first plurality of software vulnerabilities, a prediction of whether an exploit will be developed for said each software vulnerability;

for each prediction indicated in the first output data, adding, to second input data, a software vulnerability corresponding to said each prediction only if said each prediction is above a second threshold value;

causing application of the second prediction model to the second input data; and

receiving, based on the application of the second prediction model to the second input data, second output data that indicates, for each software vulnerability in the second plurality of software vulnerabilities, a prediction of whether an exploit will be developed for said each software vulnerability.

5. The system of claim 4 , wherein the first threshold value is different from the second threshold value.

6. The system of claim 4 , wherein the one or more programs further comprise instructions for:

storing a third prediction model that has been trained based on third training data, wherein the third training data is a subset of the first training data, and wherein each training instance of the third training data is predicted to have an exploit developed, wherein the third prediction model enables determining a likelihood of whether exploits that have yet to be developed will be used in an attack; and

storing a fourth prediction model that has been trained based on fourth training data consisting of training instances of said third training data which, when used to compute a corresponding score through the third prediction model, produced a score greater than a third threshold value, wherein the fourth prediction model enables determining a likelihood of whether exploits that have yet to be developed will be used in an attack.

7. The system of claim 6 , wherein the one or more programs further comprise instructions for:

causing application of the third prediction model to third input data that corresponds to a third plurality of software vulnerabilities, wherein the third plurality of software vulnerabilities is a subset of the second plurality of software vulnerabilities, and wherein each software vulnerability of the third plurality of software vulnerabilities is predicted to have an exploit developed for said each software vulnerability of the third plurality of software vulnerabilities;

receiving, based on the application of the third prediction model to the third input data, third output data that indicates, for each software vulnerability of the third plurality of software vulnerabilities, a first prediction of whether a corresponding exploit that is predicted to be developed for said each software vulnerability is also predicted to be used in an attack;

causing application of the fourth prediction model to fourth input data that corresponds to a fourth plurality of software vulnerabilities, wherein the fourth plurality of software vulnerabilities is determined based on removing, from the third input data, data that corresponds to a subset of the third plurality of software vulnerabilities, wherein each software vulnerability in the subset of the third plurality of software vulnerabilities is predicted to have an exploit developed for said each software vulnerability in the subset, and wherein the corresponding exploit that is predicted to be developed for said each software vulnerability in the subset is predicted not to be used in an attack; and

receiving, based on the application of the fourth prediction model to the fourth input data, fourth output data that indicates, for each software vulnerability in the fourth plurality of software vulnerabilities, a second prediction of whether the corresponding exploit that is predicted to be developed for said each software vulnerability is also predicted to be used in an attack.

8. A system comprising:

storage media;

one or more processors; and

one or more programs stored in the storage media and configured for execution by the one or more processors, the one or more programs comprising instructions for:

storing a first prediction model that has been trained based on first training data, wherein the first prediction model enables determining a likelihood of whether exploits to be developed for software vulnerabilities will be used in an attack;

storing a second prediction model that has been trained based on second training data consisting of training instances of said first training data which, when used to compute a corresponding score through the first prediction model, produced a score greater than a first threshold value, wherein the second prediction model enables determining a likelihood of whether exploits to be developed for software vulnerabilities will be used in an attack;

receiving input data identifying a particular software vulnerability; and

using the second prediction model, computing a likelihood of whether exploits to be developed for the particular software vulnerability will be used in an attack.

9. The system of claim 8 , wherein the one or more programs further comprise instructions for:

causing application of the first prediction model to first input data that corresponds to a first plurality of software vulnerabilities, wherein each software vulnerability of the first plurality of software vulnerabilities has yet to have an exploit developed for said each software vulnerability;

receiving, based on the application of the first prediction model to the first input data, first output data that indicates, for each software vulnerability of the first plurality of software vulnerabilities, a prediction of whether an exploit to be developed for said each software vulnerability will be used in an attack;

for each prediction indicated in the first output data, adding, to second input data, a software vulnerability corresponding to said each prediction only if said each prediction is above a second threshold value;

causing application of the second prediction model to the second input data; and

receiving, based on the application of the second prediction model to the second input data, second output data that indicates, for each software vulnerability in the second plurality of software vulnerabilities, a prediction of whether an exploit to be developed for said each software vulnerability will be used in an attack.

10. A method comprising:

storing a first prediction model that has been trained based on first training data, wherein the first prediction model enables determining a likelihood of whether exploits will be developed for software vulnerabilities;

storing a second prediction model that has been trained based on second training data consisting of training instances of said first training data which, when used to compute a corresponding score through the first prediction model, produced a score greater than a first threshold value, wherein the second prediction model enables determining a likelihood of whether exploits will be developed for software vulnerabilities;

receiving input data identifying a particular software vulnerability; and

using the second prediction model, computing a likelihood of whether exploits will be developed for the particular software vulnerability.

11. The method of claim 10 , wherein for each training instance, the corresponding score indicates a likelihood that an exploit will be developed for a software vulnerability corresponding to said each training instance.

12. The method of claim 11 , wherein the first threshold value is a minimum score for which it is likely that an exploit will be developed for the software vulnerability corresponding to said each training instance.

13. The method of claim 10 , further comprising:

causing application of the first prediction model to first input data that corresponds to a first plurality of software vulnerabilities, wherein each software vulnerability of the first plurality of software vulnerabilities has yet to have an exploit developed for said each software vulnerability;

receiving, based on the application of the first prediction model to the first input data, first output data that indicates, for each software vulnerability of the first plurality of software vulnerabilities, a prediction of whether an exploit will be developed for said each software vulnerability;

for each prediction indicated in the first output data, adding, to second input data, a software vulnerability corresponding to said each prediction only if said each prediction is above a second threshold value;

causing application of the second prediction model to the second input data; and

receiving, based on the application of the second prediction model to the second input data, second output data that indicates, for each software vulnerability in the second plurality of software vulnerabilities, a prediction of whether an exploit will be developed for said each software vulnerability.

14. The method of claim 13 , wherein the first threshold value is different from the second threshold value.

15. The method of claim 13 , further comprising:

storing a third prediction model that has been trained based on third training data, wherein the third training data is a subset of the first training data, and wherein each training instance of the third training data is predicted to have an exploit developed, wherein the third prediction model enables determining a likelihood of whether exploits that have yet to be developed will be used in an attack; and

storing a fourth prediction model that has been trained based on fourth training data consisting of training instances of said third training data which, when used to compute a corresponding score through the third prediction model, produced a score greater than a third threshold value, wherein the fourth prediction model enables determining a likelihood of whether exploits that have yet to be developed will be used in an attack.

16. The method of claim 15 , further comprising:

causing application of the third prediction model to third input data that corresponds to a third plurality of software vulnerabilities, wherein the third plurality of software vulnerabilities is a subset of the second plurality of software vulnerabilities, and wherein each software vulnerability of the third plurality of software vulnerabilities is predicted to have an exploit developed for said each software vulnerability of the third plurality of software vulnerabilities;

receiving, based on the application of the third prediction model to the third input data, third output data that indicates, for each software vulnerability of the third plurality of software vulnerabilities, a first prediction of whether a corresponding exploit that is predicted to be developed for said each software vulnerability is also predicted to be used in an attack;

causing application of the fourth prediction model to fourth input data that corresponds to a fourth plurality of software vulnerabilities, wherein the fourth plurality of software vulnerabilities is determined based on removing, from the third input data, data that corresponds to a subset of the third plurality of software vulnerabilities, wherein each software vulnerability in the subset of the third plurality of software vulnerabilities is predicted to have an exploit developed for said each software vulnerability in the subset, and wherein the corresponding exploit that is predicted to be developed for said each software vulnerability in the subset is predicted not to be used in an attack; and

receiving, based on the application of the fourth prediction model to the fourth input data, fourth output data that indicates, for each software vulnerability in the fourth plurality of software vulnerabilities, a second prediction of whether the corresponding exploit that is predicted to be developed for said each software vulnerability is also predicted to be used in an attack.

17. A method comprising:

storing a first prediction model that has been trained based on first training data, wherein the first prediction model enables determining a likelihood of whether exploits to be developed for software vulnerabilities will be used in an attack;

storing a second prediction model that has been trained based on second training data consisting of training instances of said first training data which, when used to compute a corresponding score through the first prediction model, produced a score greater than a first threshold value, wherein the second prediction model enables determining a likelihood of whether exploits to be developed for software vulnerabilities will be used in an attack;

receiving input data identifying a particular software vulnerability; and

using the second prediction model, computing a likelihood of whether exploits to be developed for the particular software vulnerability will be used in an attack.

18. The method of claim 17 , further comprising:

causing application of the first prediction model to first input data that corresponds to a first plurality of software vulnerabilities, wherein each software vulnerability of the first plurality of software vulnerabilities has yet to have an exploit developed for said each software vulnerability;

receiving, based on the application of the first prediction model to the first input data, first output data that indicates, for each software vulnerability of the first plurality of software vulnerabilities, a prediction of whether an exploit to be developed for said each software vulnerability will be used in an attack;

for each prediction indicated in the first output data, adding, to second input data, a software vulnerability corresponding to said each prediction only if said each prediction is above a second threshold value;

causing application of the second prediction model to the second input data; and

receiving, based on the application of the second prediction model to the second input data, second output data that indicates, for each software vulnerability in the second plurality of software vulnerabilities, a prediction of whether an exploit to be developed for said each software vulnerability will be used in an attack.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 16, 2026
From: KENNA SECURITY LLC
To: CISCO TECHNOLOGY, INC.
Reel/Frame 074392/0677 →
CHANGE OF NAME Recorded Sep 9, 2021
From: KENNA SECURITY, INC.
To: KENNA SECURITY LLC
Reel/Frame 057559/0618 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 15, 2021
From: ROYTMAN, MICHAEL; JACOBS, JAY
To: KENNA SECURITY, INC.
Reel/Frame 055923/0569 →
Continuity (2)
Continuation 16103750 · Aug 14, 2018
Related Publication 20210248243A1 · Aug 12, 2021