Heap-based bug identification using anomaly detection
First Claim
1. A method of identifying heap-based bugs, comprising:
- building a model of the program'"'"'s heap behavior from observing heap behavior of the program during execution;
detecting anomalous heap behavior deviating from the model; and
reporting information of the anomalous heap behavior indicative of a heap-based bug in the program.
2 Assignments
0 Petitions
Accused Products
Abstract
A dynamic analysis tool uses anomaly detection to find heap-based bugs. In spite of the evolving nature of the heap, programs generally exhibit several of properties of their heap usage that remain stable. Periodically, during the execution of the program, the analysis tool computes a suite of metrics which are sensitive to the state of the heap. These metrics track heap behavior, and the stability of the heap reflects quantitatively in the values of these metrics. The ranges of stable metrics, obtained by running a program on a multiple input training set, are then treated as indicators of correct behavior, and are used in conjunction with an anomaly detector to find heap-based bugs.
107 Citations
20 Claims
-
1. A method of identifying heap-based bugs, comprising:
-
building a model of the program'"'"'s heap behavior from observing heap behavior of the program during execution;
detecting anomalous heap behavior deviating from the model; and
reporting information of the anomalous heap behavior indicative of a heap-based bug in the program. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A computer system programmed as a dynamic analysis tool for identifying heap-based bugs in programs, comprising:
-
a model constructor for building a model of a program'"'"'s heap behavior; and
an execution checker for detecting anomalies occurring in an execution of the program in which the program'"'"'s heap behavior deviates from the model. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
19. A set of computer-readable software-storing media having computer-executable software of a dynamic program analysis tool stored thereon, the dynamic program analysis tool comprising:
-
executable code for computing a suite of heap-related metrics from one or more execution runs of a program on a training set of inputs;
executable code for calculating a rate of change of the heap-related metrics across the execution runs;
executable code for comparing the rate of change to a threshold rate;
executable code for identifying slowly changing heap-related metrics from the suite whose rate of change remains lower than the threshold rate to be stable metrics;
executable code for establishing ranges of the stable metrics;
executable code for computing the stable metrics from a subsequent execution of the program; and
executable code for detecting anomalies where the stable metrics deviate from their respective ranges. - View Dependent Claims (20)
-
Specification