Auto-tuning program analysis tools using machine learning
First Claim
1. A method to reduce false alarms generated by an automated analysis tool performing static security analysis on a software system, comprising:
- receiving a set of data representing findings generated by the automated analysis tool, wherein the automated analysis tool generates findings by static security analysis of a call-tree representing call stacks of an application under analysis, and wherein at least one of the findings represents a vulnerability in the form of an unvalidated flow from a source to a sink in the application;
with respect to each of one or more particular findings in the set of data, automatically generating a classification for each of the one or more particular findings, wherein the classification is that a particular finding either is true or false and is based at least in part on a characteristic associated with the particular finding;
based on the automatically-generated classifications for the particular findings, computing a machine learning classifier using software executing in a hardware element by;
reducing each finding to a feature vector comprising a set of features common to each finding, wherein the set of features include one of;
witness length, source type, sink type, witness type, conditional statements, method calls and string operations generated by the automated analysis tool performing the static security analysis;
assigning weights to each of the set of features; and
based on the assigned weights, computing a weighting function having a threshold value that determines a correctness of a new finding; and
applying the machine learning classifier to a set of data representing findings generated by the static security analysis to reduce false alarms generated by the automated analysis tool.
1 Assignment
0 Petitions
Accused Products
Abstract
Machine learning (ML) significantly reduces false alarms generated by an automated analysis tool performing static security analysis. Using either user-supplied or system-generated annotation of particular findings, a “hypothesis” is generated about how to classify other static analysis findings. The hypothesis is implemented as a machine learning classifier. To generate the classifier, a set of features are abstracted from a typical witness, and the system compares feature sets against one another to determine a set of weights for the classifier. The initial hypothesis is then validated against a second set of findings, and the classifier is adjusted as necessary based on how close it fits the new data. Once the approach converges on a final classifier, it is used to filter remaining findings in the report.
-
Citations
15 Claims
-
1. A method to reduce false alarms generated by an automated analysis tool performing static security analysis on a software system, comprising:
-
receiving a set of data representing findings generated by the automated analysis tool, wherein the automated analysis tool generates findings by static security analysis of a call-tree representing call stacks of an application under analysis, and wherein at least one of the findings represents a vulnerability in the form of an unvalidated flow from a source to a sink in the application; with respect to each of one or more particular findings in the set of data, automatically generating a classification for each of the one or more particular findings, wherein the classification is that a particular finding either is true or false and is based at least in part on a characteristic associated with the particular finding; based on the automatically-generated classifications for the particular findings, computing a machine learning classifier using software executing in a hardware element by; reducing each finding to a feature vector comprising a set of features common to each finding, wherein the set of features include one of;
witness length, source type, sink type, witness type, conditional statements, method calls and string operations generated by the automated analysis tool performing the static security analysis;assigning weights to each of the set of features; and based on the assigned weights, computing a weighting function having a threshold value that determines a correctness of a new finding; and applying the machine learning classifier to a set of data representing findings generated by the static security analysis to reduce false alarms generated by the automated analysis tool. - View Dependent Claims (2, 3, 4, 5)
-
-
6. Apparatus, comprising:
-
a processor; computer memory holding computer program instructions executed by the processor to reduce false alarms generated by an automated analysis tool performing static security analysis on a software system, the computer program instructions operative to; receive a set of data representing findings generated by the automated analysis tool, wherein the automated analysis tool generates findings by static security analysis of a call-tree representing call stacks of an application under analysis, and wherein at least one of the findings represents a vulnerability in the form of an unvalidated flow from a source to a sink in the application; with respect to each of one or more particular findings in the set of data, automatically generate a classification for each of the one or more particular findings, wherein the classification is that a particular finding either is true or false and is based at least in part on a characteristic associated with the particular finding; based on the automatically-generated classifications for the particular findings, compute a machine learning classifier by; reducing each finding to a feature vector comprising a set of features common to each finding, wherein the set of features include one of;
witness length, source type, sink type, witness type, conditional statements, method calls and string operations generated by the automated analysis tool performing the static security analysis;assigning weights to each of the set of features; and based on the assigned weights, computing a weighting function having a threshold value that determines a correctness of a new finding; and apply the machine learning classifier to a set of data representing findings generated by the static security analysis to reduce false alarms generated by the automated analysis tool. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A computer program product in a non-transitory computer readable medium for use in a data processing system, the computer program product holding computer program instructions executed by the data processing system to reduce false alarms generated by an automated analysis tool performing static security analysis on a software system, the computer program instructions operative to:
-
receive a set of data representing findings generated by the automated analysis tool, wherein the automated analysis tool generates findings by static security analysis of a call-tree representing call stacks of an application under analysis, and wherein at least one of the findings represents a vulnerability in the form of an unvalidated flow from a source to a sink in the application; with respect to each of one or more particular findings in the set of data, automatically generate a classification for each of the one or more particular findings, wherein the classification is that a particular finding either is true or false and is based at least in part on a characteristic associated with the particular finding; based on the automatically-generated classifications for the particular findings, compute a machine learning classifier by; reducing each finding to a feature vector comprising a set of features common to each finding, wherein the set of features include one of;
witness length, source type, sink type, witness type, conditional statements, method calls and string operations generated by the automated analysis tool performing the static security analysis;assigning weights to each of the set of features; and based on the assigned weights, computing a weighting function having a threshold value that determines a correctness of a new finding; and apply the machine learning classifier to a set of data representing findings generated by the static security analysis to reduce false alarms generated by the automated analysis tool. - View Dependent Claims (12, 13, 14, 15)
-
Specification