IP Library Granted Patent US 12675583
Granted Patent B1
US 12675583 · App. 19/393,957 · Granted Jul 7, 2026

Systems and methods for generating synthetic data for feature-based vulnerability testing

Inventors: Lince Lawrence (Trivandrum, IN); Venkatabapu Yeluri (Bengaluru, IN); Dhanith Krishna B (Trivandrum, IN); Lavanya Wadhwa (Bangalore, IN)
Assignee: EYGS LLP
G06F21/577G06N20/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 12675583
App. No.
19/393,957
Granted
Jul 7, 2026
Kind
B1
Abstract

A method includes receiving, at a processor, feature data that indicates a plurality of features. The method further includes generating, via the processor and based on the feature data, vulnerability data that indicates a vulnerability associated with the plurality of features. Additionally, the method includes generating, via the processor and based on the feature data and the vulnerability data, graph data that represents a plurality of edge weights representing a plurality of severities of the vulnerability. Based on the plurality of edge weights, the method also includes generating, via the processor, matrix data that represents an influence of the plurality of features on the vulnerability. The method further includes generating, via the processor, sorted vulnerability data that defines an order for a plurality of vulnerabilities that includes the vulnerability, based on the matrix data. Synthetic training data is generated, via the processor, based on the sorted vulnerability data.

Claims (65)

1 . A non-transitory, processor-readable medium storing instructions that, when executed by a processor, cause the processor to:

receive feature data that indicates a plurality of features of a first application;

generate, based on the feature data, vulnerability data that indicates a plurality of vulnerabilities associated with the plurality of features;

generate, based on the feature data and the vulnerability data, graph data that represents a directed graph having (1) a plurality of first nodes representing the plurality of features, (2) a plurality of second nodes representing the plurality of vulnerabilities, and (3) a plurality of directed edges (a) from the plurality of first nodes to the plurality of second nodes and (b) representing a plurality of correlations between the plurality of features and the plurality of vulnerabilities;

rank the plurality of vulnerabilities based on the graph data to produce sorted vulnerability data;

select, using a pseudorandom number generator, a portion of the sorted vulnerability data representing a subset of vulnerabilities from the plurality of vulnerabilities, to produce synthetic training data; and

cause a machine learning model to be trained based on the synthetic training data to produce a trained machine learning model that is configured to predict vulnerabilities associated with a second application different from the first application.

2 . The non-transitory, processor-readable medium of claim 1 , further storing instructions to cause the processor to:

define, based on a plurality of predefined metric values associated with the plurality of vulnerabilities, a plurality of edge weights for the plurality of directed edges, the plurality of vulnerabilities being ranked based on the plurality of edge weights.

3 . The non-transitory, processor-readable medium of claim 2 , wherein the plurality of predefined metric values is associated with a vulnerability evaluation standard.

4 . The non-transitory, processor-readable medium of claim 1 , further storing instructions to cause the processor to:

randomly select a first subset of features from the plurality of features; and

remove a feature from the first subset of features based on a constraint that defines a mutual exclusivity between the feature and a remaining feature from the first subset of features, to produce a second subset of features, the synthetic training data being produced based on the second subset of features.

5 . The non-transitory, processor-readable medium of claim 1 , wherein the instructions to cause the processor to select the portion of the sorted vulnerability data include instructions to cause the processor to:

determine a normalized metric value based on the graph data; and

for each vulnerability from the plurality of vulnerabilities:

use the pseudorandom number generator to generate an output for that vulnerability, and

one of select or reject data (1) from the sorted vulnerability data and (2) representing that vulnerability, based on a comparison between the normalized metric value and the output for that vulnerability, to result in the portion of the sorted vulnerability data.

6 . The non-transitory, processor-readable medium of claim 1 , wherein the instructions to cause the processor to rank the plurality of vulnerabilities include instructions to cause the processor to:

for each second node from the plurality of second nodes, determine a Hadamard product for that second node based on each directed edge from the plurality of directed edges that is connected to that second node; and

rank each vulnerability from the plurality of vulnerabilities based on the Hadamard product for a second node that is associated with that vulnerability and that is from the plurality of second nodes, to produce the sorted vulnerability data.

7 . The non-transitory, processor-readable medium of claim 1 , wherein the plurality of features is associated with at least one of a function of the first application, a use for the first application, a sensitivity of data accessible by the first application, an integration implemented by the first application, or a platform that implements the first application.

8 . The non-transitory, processor-readable medium of claim 1 , wherein the pseudorandom number generator is configured to generate an output based on a triangle probability distribution.

9 . The non-transitory, processor-readable medium of claim 1 , wherein the instructions to cause the processor to rank the plurality of vulnerabilities include instructions to cause the processor to:

define a characteristic matrix for each vulnerability from the plurality of vulnerabilities based on each directed edge from the plurality of directed edges that is connected to a second node from the plurality of second nodes that represents that vulnerability; and

determine a characteristic metric for each vulnerability from the plurality of vulnerabilities by performing a sum of elements based on the characteristic matrix for that vulnerability, that vulnerability being ranked based on that characteristic metric.

10 . The non-transitory, processor-readable medium of claim 1 , further storing instructions to cause the processor to:

receive a first feedback signal that encodes a first accuracy metric value for the machine learning model;

in response to the first accuracy metric value being below a predefined threshold value, iteratively produce the synthetic training data;

receive a second feedback signal that encodes a second accuracy metric value for the machine learning model; and

in response to the second accuracy metric value being above the predefined threshold value, stop producing the synthetic training data.

11 . A method, comprising:

receiving, at a processor, feature data that indicates a plurality of features of an application;

generating, via the processor and based on the feature data, vulnerability data that indicates a vulnerability associated with the plurality of features;

generating, via the processor and based on the feature data and the vulnerability data, graph data that represents (1) a plurality of first nodes representing the plurality of features, (2) a second node representing the vulnerability, and (3) a plurality of edges between the plurality of first nodes and the second node and having a plurality of edge weights that represents a plurality of severities of the vulnerability for the plurality of features;

generating, via the processor and based on the plurality of edge weights, matrix data that represents an influence of the plurality of features on the vulnerability;

generating, via the processor, sorted vulnerability data that defines an order for a plurality of vulnerabilities that includes the vulnerability, based on the matrix data; and

generating, via the processor, synthetic training data based on the sorted vulnerability data.

12 . The method of claim 11 , wherein the plurality of edge weights is defined based on a plurality of predefined metric values associated with (1) the vulnerability and (2) a vulnerability evaluation standard.

13 . The method of claim 11 , further comprising:

randomly selecting, via the processor, a first subset of features from the plurality of features; and

removing, via the processor, a feature from the first subset of features based on a constraint that defines a mutual exclusivity between the feature and a remaining feature from the first subset of features, to produce a second subset of features, the synthetic training data being produced based on the second subset of features.

14 . The method of claim 11 , further comprising:

determining, via the processor, a normalized metric value based on the graph data; and

for each vulnerability from the plurality of vulnerabilities:

using a pseudorandom number generator to generate, via the processor, an output for that vulnerability, and

one of selecting or rejecting, via the processor, data (1) from the sorted vulnerability data and (2) representing that vulnerability, based on a comparison between the normalized metric value and the output for that vulnerability, to result in a portion of the sorted vulnerability data, the synthetic training data being generated based on the portion of the sorted vulnerability data.

15 . The method of claim 11 , further comprising:

performing, via the processor, a Hadamard product operation on the matrix data to rank the vulnerability from the plurality of vulnerabilities, to produce the sorted vulnerability data.

16 . The method of claim 11 , wherein the plurality of features is associated with at least one of a function of the application, a use for the application, a sensitivity of data accessible by the application, an integration implemented by the application, or a platform that implements the application.

17 . The method of claim 11 , wherein the application is a first application, the method further comprising:

causing, via the processor, a machine learning model to be trained based on the synthetic training data to predict vulnerabilities associated with a second application different from the first application.

18 . A method, comprising:

providing, via a processor, first feature data associated with a first application as input to a machine learning model to predict a vulnerability associated with the first application, the machine learning model being trained based on synthetic training data that is generated by:

generating, based on second feature data associated with a second application, vulnerability data that indicates a plurality of vulnerabilities associated with a plurality of features represented by the second feature data,

determining, based on the second feature data and the vulnerability data, a plurality of correlations between the plurality of features and the plurality of vulnerabilities,

ranking the plurality of vulnerabilities based on the plurality of correlations, to produce sorted vulnerability data, and

selecting, using a pseudorandom number generator, a portion of the sorted vulnerability data representing a subset of vulnerabilities from the plurality of vulnerabilities, to produce the synthetic training data; and

modifying, via the processor, the first application based on the vulnerability.

19 . The method of claim 18 , wherein the ranking the plurality of vulnerabilities includes:

for each vulnerability from the plurality of vulnerabilities, determining a Hadamard product for that vulnerability based on at least one second feature that is associated with that vulnerability and that is from the plurality of features, to produce a plurality of Hadamard products; and

ranking each vulnerability from the plurality of vulnerabilities based on the Hadamard product for that vulnerability, to produce the sorted vulnerability data.

20 . The method of claim 18 , wherein the synthetic training data is generated further by:

randomly selecting a first subset of second features from the plurality of features; and

removing a feature from the first subset of second features based on a constraint that defines a mutual exclusivity between the feature and a remaining feature from the first subset of second features, to produce a second subset of second features, the synthetic training data being produced based on the second subset of second features.