IP Library Granted Patent US 12,730,896
Granted Patent B1
US 12,730,896 · App. 17/389,700 · Granted Sep 8, 2026

Refining a machine learning model for calculating confidence scores associated with potential security vulnerabilities

Inventors: Stuart Millar (Belfast, GB); Denis Podgurskii (Belfast, GB)
Assignee: Rapid7, Inc.
G06F21/577G06N20/00G06F2221/034
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 12,730,896
App. No.
17/389,700
Granted
Sep 8, 2026
Kind
B1
Abstract

Various embodiments include systems and methods of implementing a machine learning (ML) model for calculating confidence scores associated with potential security vulnerabilities. In some embodiments, the ML model may be used to determine a confidence score for a particular potential security vulnerability. According to some embodiments, input indicative of a change of verification status for the particular potential security vulnerability may be received via a vulnerability details graphical user interface. Responsive to determining that the confidence score generated by the ML model is inconsistent with the change of verification status, the change of verification status may be sent as analyst feedback data to one or model training components of the ML model. The model training component(s) may be utilized to refine the ML model based at least in part on the analyst feedback data.

Claims (62)

1 . A system, comprising:

one or more hardware processors with associated memory that implement a machine learning (ML) model for calculating confidence scores associated with potential security vulnerabilities detected via application security testing of an application accessible over a network, wherein the one or more hardware processors are configured to:

obtain scan traffic data associated with a particular scan finding generated by one or more scan engines that a particular potential security vulnerability is detected in the application during application security testing based on the scan traffic data, wherein the scan traffic data is generated as a result of one or more requests sent to the application over the network and includes one or more responses of the application received over the network in response to the one or more requests;

use the ML model to evaluate the scan traffic data and generate a confidence score for the particular scan finding, wherein the ML model is trained using training data that includes (a) previous scan traffic data for the application, (b) previous scan findings indicating different previous detections of potential security vulnerabilities in the application based on the previous scan traffic data, and (c) labels reflecting previous analyst determinations of whether individual ones of the previous detections of potential security vulnerabilities were true positives or false positives after manual investigation of the previous scan findings;

generate a vulnerability analysis graphical user interface that displays a list of scan findings indicating potential security vulnerabilities in the application detected by the one or more scan engines, wherein the list is ranked based on respective confidence scores and severity levels of the potential security vulnerabilities;

responsive to a selection of the particular potential security vulnerability via the vulnerability analysis graphical user interface, generate a vulnerability details graphical user interface that contains vulnerability information including the confidence score generated by the ML model for the particular potential security vulnerability and the severity score of the particular potential security vulnerability;

receive, via the vulnerability details graphical user interface, input indicative of a change of verification status for the particular potential security vulnerability;

responsive to determining that the confidence score generated by the ML model is inconsistent with the change of verification status, send the change of verification status as analyst feedback data to one or more model training components of the ML model; and

utilize the one or more model training components to refine the ML model based at least in part on the analyst feedback data, including to perform additional training of the ML model using the analyst feedback data.

2 . The system of claim 1 , wherein the one or more hardware processors are configured to:

responsive to user input received via the vulnerability analysis graphical user interface, sort or filter the list of scan findings indicating potential security vulnerabilities in the application based on the respective confidence scores and severity levels of the potential security vulnerabilities.

3 . The system of claim 1 , wherein the confidence score generated by the ML model for the particular potential security vulnerability corresponds to a percentage value within a range of zero percent to one-hundred percent.

4 . The system of claim 1 , wherein the ML model is retrained based on additional training data on a weekly, fortnightly, or monthly basis.

5 . The system of claim 1 , wherein the ML model is retrained based on additional training data when a sufficient number of scan findings have been reviewed by security analysts.

6 . The system of claim 1 , wherein:

the vulnerability details graphical user interface includes a selectable option to change the verification status of the particular potential security vulnerability to identify the particular potential security vulnerability as a true positive; and

the change of verification status is sent as analyst feedback data to the one or more model training components of the ML model responsive to determining that the confidence score is indicative of the ML model having determined that the particular potential security vulnerability is most likely to be a false positive.

7 . The system of claim 6 , wherein the confidence score for the particular potential security vulnerability corresponds to a percentage value that is less than fifty percent.

8 . The system of claim 6 , wherein the one or more hardware processors are configured to generate an alert to notify an analyst that the confidence score is indicative of the ML model having determined that the particular potential security vulnerability is most likely to be a false positive prior to sending the change of verification status as analyst feedback data.

9 . The system of claim 1 , wherein:

the vulnerability details graphical user interface includes a selectable option to change the verification status of the particular potential security vulnerability to identify the particular potential security vulnerability as a false positive; and

the change of verification status is sent as analyst feedback data to the one or more model training components of the ML model responsive to determining that the confidence score is indicative of the ML model having determined that the particular potential security vulnerability is most likely to be a true positive.

10 . The system of claim 9 , wherein the confidence score for the particular potential security vulnerability corresponds to a percentage value that is at least fifty percent.

11 . A method comprising:

implementing, using one or more hardware processors, a machine learning (ML) model for calculating confidence scores associated with potential security vulnerabilities detected via application security testing of an application accessible over a network, wherein the implementing comprises:

obtaining scan traffic data associated with a particular scan finding generated by one or more scan engines that a particular potential security vulnerability is detected in the application during application security testing based on the scan traffic data, wherein the scan traffic data is generated as a result of one or more requests sent to the application over the network and includes one or more responses of the application received over the network in response to the one or more requests;

using the ML model to evaluate the scan traffic data and generate a confidence score for the particular scan finding, wherein the ML model is trained using training data that includes (a) previous scan traffic data for the application, (b) previous scan findings indicating different previous detections of potential security vulnerabilities in the application based on the previous scan traffic data, and (c) labels reflecting previous analyst determinations of whether individual ones of the previous detections of potential security vulnerabilities were true positives or false positives after manual investigation of the previous scan findings;

generating a vulnerability analysis graphical user interface that displays a list of scan findings indicating potential security vulnerabilities in the application detected by the one or more scan engines, wherein the list is ranked based on respective confidence scores and severity levels of the potential security vulnerabilities;

responsive to a selection of the particular potential security vulnerability via the vulnerability analysis graphical user interface, generating a vulnerability details graphical user interface that contains vulnerability information including the confidence score generated by the ML model for the particular potential security vulnerability and the severity score of the particular potential security vulnerability;

receiving, via the vulnerability details graphical user interface, input indicative of a change of verification status for the particular potential security vulnerability;

responsive to determining that the confidence score generated by the ML model is inconsistent with the change of verification status, sending the change of verification status as analyst feedback data to one or more model training components of the ML model; and

utilizing the one or more model training components to refine the ML model based at least in part on the analyst feedback data, including performing additional training of the ML model using the analyst feedback data.

12 . The method of claim 11 , wherein the method further comprises:

monitoring a performance metric of the one or more scan engines, wherein the performance metrics is based on the confidence score; and

responsive to a determination that the performance metric has dropped below a threshold, generating a message indicating to update the one or more scan engines or a regular expression pattern used by the one or more scan engines to detect the particular potential security vulnerability.

13 . The method of claim 11 , wherein:

the confidence score generated by the ML model for the particular potential security vulnerability corresponds to a percentage value within a range of zero percent to one-hundred percent;

the confidence score having a percentage value of zero percent is indicative of the ML model having determined that the particular potential security vulnerability is most likely to be a false positive; and

the confidence score having a percentage value of one-hundred percent is indicative of the ML model having determined that the particular potential security vulnerability is most likely to be a true positive.

14 . The method of claim 11 , wherein:

the vulnerability details graphical user interface includes a selectable option to change the verification status of the particular potential security vulnerability to identify the particular potential security vulnerability as a true positive; and

the change of verification status is sent as analyst feedback data to the one or more model training components of the ML model responsive to determining that the confidence score is indicative of the ML model having determined that the particular potential security vulnerability is most likely to be a false positive based at least in part on the confidence score corresponding to a percentage value that is less than fifty percent.

15 . The method of claim 14 , wherein the method further comprises generating an alert to notify an analyst that the confidence score is indicative of the ML model having determined that the particular potential security vulnerability is most likely to be a false positive prior to sending the change of verification status as analyst feedback data.

16 . The method of claim 11 , wherein:

the vulnerability details graphical user interface includes a selectable option to change the verification status of the particular potential security vulnerability to identify the particular potential security vulnerability as a false positive; and

the change of verification status is sent as analyst feedback data to the one or more model training components of the ML model responsive to determining that the confidence score is indicative of the ML model having determined that the particular potential security vulnerability is most likely to be a true positive based at least in part on the confidence score corresponding to a percentage value that is at least fifty percent.

17 . One or more non-transitory computer-accessible storage media storing program instructions that, when executed on or across one or more processors, implement at least a portion of a system that implements a machine learning (ML) model for calculating confidence scores associated with potential security vulnerabilities detected via application security testing of an application accessible over a network and cause the system to:

obtain scan traffic data associated with a particular scan finding generated by one or more scan engines that a particular potential security vulnerability is detected in the application during application security testing based on the scan traffic data, wherein the scan traffic data is generated as a result of one or more requests sent to the application over the network and includes one or more responses of the application received over the network in response to the one or more requests;

use the ML model to evaluate the scan traffic data and generate a confidence score for the particular scan finding, wherein the ML model is trained using training data that includes (a) previous scan traffic data for the application, (b) previous scan findings indicating different previous detections of potential security vulnerabilities in the application based on the previous scan traffic data, and (c) labels reflecting previous analyst determinations of whether individual ones of the previous detections of potential security vulnerabilities were true positives or false positives after manual investigation of the previous scan findings;

generate a vulnerability analysis graphical user interface that displays a list of scan findings indicating potential security vulnerabilities in the application detected by the one or more scan engines, wherein the list is ranked based on respective confidence scores and severity levels of the potential security vulnerabilities;

responsive to a selection of the particular potential security vulnerability via the vulnerability analysis graphical user interface, generate a vulnerability details graphical user interface that contains vulnerability information including the confidence score generated by the ML model for the particular potential security vulnerability and the severity score of the particular potential security vulnerability;

receive, via the vulnerability details graphical user interface, input indicative of a change of verification status for the particular potential security vulnerability;

responsive to determining that the confidence score generated by the ML model is inconsistent with the change of verification status, send the change of verification status as analyst feedback data to one or more model training components of the ML model; and

utilize the one or more model training components to refine the ML model based at least in part on the analyst feedback data, including to perform additional training of the ML model using the analyst feedback data.

18 . The one or more non-transitory computer-accessible storage media of claim 17 , wherein the program instructions when executed on or across one or more processors cause the system to:

responsive to user input received via the vulnerability analysis graphical user interface, sort or filter the list of scan findings indicating potential security vulnerabilities in the application based on the respective confidence scores and severity levels of the potential security vulnerabilities.

19 . The one or more non-transitory computer-accessible storage media of claim 17 , wherein:

the application security testing simulates an attack on the application to exploit the particular potential security vulnerability; and

the vulnerability details graphical user interface includes a selectable option to replay the attack, wherein the analyst feedback is generated based on a result of the replay.

20 . The one or more non-transitory computer-accessible storage media of claim 17 , wherein:

the vulnerability details graphical user interface includes a selectable option to change the verification status of the particular potential security vulnerability to identify the particular potential security vulnerability as a false positive; and

the change of verification status is sent as analyst feedback data to the one or more model training components of the ML model responsive to determining that the confidence score corresponds to a percentage value that is at least fifty percent which is indicative of the ML model having determined that the particular potential security vulnerability is most likely to be a true positive based at least in part on the confidence score corresponding to a percentage value that is at least fifty percent.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 15, 2021
From: MILLAR, STUART; PODGURSKII, DENIS
To: RAPID7, INC.
Reel/Frame 058397/0186 →
References Cited (69)
US 8136163B2 · Birt · 2012 [cited by examiner]
US 8745746B1 · Jain · 2014 [cited by examiner]
US 9436829B2 · Tripp · 2016 [cited by examiner]
US 9516053B1 · Muddu · 2016 [cited by examiner]
US 9923916B1 · McClintock · 2018 [cited by examiner]
US 10097574B2 · Tripp · 2018 [cited by examiner]
US 10318740B2 · Toledano · 2019 [cited by examiner]
US 10735272B1 · Saurabh · 2020 [cited by examiner]
US 10924503B1 · Pereira · 2021 [cited by examiner]
US 11023590B2 · Ionescu · 2021 [cited by examiner]
US 11030318B1 · Shavro · 2021 [cited by examiner]
US 11106801B1 · Levine · 2021 [cited by examiner]
US 11637862B1 · Sopan · 2023 [cited by examiner]
US 11763007B1 · Nalluri · 2023 [cited by examiner]
US 11876821B1 · Pratt · 2024 [cited by examiner]
US 12093397B1 · Lin · 2024 [cited by examiner]
US 12118095B1 · Millar · 2024 [cited by examiner]
US 20090038014A1 · Force · 2009 [cited by examiner]
US 20090320137A1 · White · 2009 [cited by examiner]
US 20120198549A1 · Antonakakis · 2012 [cited by examiner]
US 20130160130A1 · Mendelev · 2013 [cited by examiner]
US 20130205398A1 · Kalman · 2013 [cited by examiner]
US 20140075560A1 · Guy · 2014 [cited by examiner]
US 20140082733A1 · Benefield · 2014 [cited by examiner]
US 20140082737A1 · Beskrovny · 2014 [cited by examiner]
US 20140090064A1 · Pistoia · 2014 [cited by examiner]
US 20150163242A1 · Laidlaw · 2015 [cited by examiner]
US 20150254555A1 · Williams, Jr. · 2015 [cited by examiner]
US 20160315961A1 · Duer · 2016 [cited by examiner]
US 20170093902A1 · Roundy · 2017 [cited by examiner]
US 20170116421A1 · M C · 2017 [cited by examiner]
US 20170244737A1 · Kuperman · 2017 [cited by examiner]
US 20170286671A1 · Chari · 2017 [cited by examiner]
US 20180145995A1 · Roeh · 2018 [cited by examiner]
US 20180183827A1 · Zorlular · 2018 [cited by examiner]
US 20180219881A1 · Kayacik · 2018 [cited by examiner]
US 20180234435A1 · Cohen · 2018 [cited by examiner]
US 20180367561A1 · Givental · 2018 [cited by examiner]
US 20190166149A1 · Gerrick · 2019 [cited by examiner]
US 20190377880A1 · Kolychev · 2019 [cited by examiner]
US 20200050760A1 · El-Moussa · 2020 [cited by examiner]
US 20200057858A1 · Sharma · 2020 [cited by examiner]
US 20200089848A1 · Abdelaziz · 2020 [cited by examiner]
US 20200134188A1 · Bagheri · 2020 [cited by examiner]
US 20200304534A1 · Rakesh · 2020 [cited by examiner]
US 20200327222A1 · Chhabra · 2020 [cited by examiner]
US 20200401702A1 · Karabatis · 2020 [cited by examiner]
US 20200412757A1 · Siddiq · 2020 [cited by examiner]
US 20210157919A1 · Stockdale · 2021 [cited by examiner]
US 20210168165A1 · Alsaeed · 2021 [cited by examiner]
US 20210211450A1 · Aleidan · 2021 [cited by examiner]
US 20210264025A1 · Givental · 2021 [cited by examiner]
US 20210273967A1 · Vela · 2021 [cited by examiner]
US 20210279644A1 · Givental · 2021 [cited by examiner]
US 20210314296A1 · O'Hara · 2021 [cited by examiner]
US 20210342742A1 · G Rao · 2021 [cited by examiner]
US 20210352093A1 · Hassanzadeh · 2021 [cited by examiner]
US 20210400058A1 · Filonov · 2021 [cited by examiner]
US 20220014554A1 · Vasu · 2022 [cited by examiner]
US 20220108020A1 · Dang · 2022 [cited by examiner]
US 20220321590A1 · Sharma · 2022 [cited by examiner]
US 20220329630A1 · Li · 2022 [cited by examiner]
US 20220368700A1 · Bagaria · 2022 [cited by examiner]
US 20230210472A1 · Berckmans · 2023 [cited by examiner]
US 20230281317A1 · Clement · 2023 [cited by examiner]
US 20230388788A1 · Kunz · 2023 [cited by examiner]
US 20240330602A1 · Lamba · 2024 [cited by examiner]
US 20250335601A1 · Fujita · 2025 [cited by examiner]
CA 3039795A1 · 2018 [cited by examiner]