kirancodes.me
To Proof Maintenance & Beyond!

Machine-learning-guided selectively unsound static analysis

Kihong Heo, Hakjoo Oh, Kwangkeun Yi

Abstract

We present a machine-learning-based technique for selectively applying unsoundness in static analysis. Existing bug-finding static analyzers are unsound in order to be precise and scalable in practice. However, they are uniformly unsound and hence at the risk of missing a large amount of real bugs. By being sound, we can improve the detectability of the analyzer but it often suffers from a large number of false alarms. Our approach aims to strike a balance between these two approaches by selectively allowing unsoundness only when it is likely to reduce false alarms, while retaining true alarms. We use an anomaly-detection technique to learn such harmless unsoundness. We implemented our technique in two static analyzers for full C. One is for a taint analysis for detecting format-string vulnerabilities, and the other is for an interval analysis for buffer-overflow detection. The experimental results show that our approach significantly improves the recall of the original unsound analysis without sacrificing the precision.

BibTeX
@inproceedings{Heo-al:ICSE17,
  author    = {Kihong Heo and
               Hakjoo Oh and
               Kwangkeun Yi},
  title     = {Machine-learning-guided selectively unsound static analysis},
  booktitle = {ICSE},
  pages     = {519--529},
  publisher = {{IEEE} / {ACM}},
  year      = {2017},
}

Related papers